comparison tests/blittest.c @ 2046:186cf6a7d634

Cosmetics.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 03 Dec 2018 10:53:32 +0200
parents 985225a93aeb
children b7cd5dd0b82e
comparison
equal deleted inserted replaced
2045:1662730053d0 2046:186cf6a7d634
42 break; 42 break;
43 43
44 case 2: 44 case 2:
45 dmVerbosity++; 45 dmVerbosity++;
46 break; 46 break;
47 47
48 case 3: 48 case 3:
49 optVFlags |= SDL_FULLSCREEN; 49 optVFlags |= SDL_FULLSCREEN;
50 break; 50 break;
51 51
52 case 6: 52 case 6:
65 return FALSE; 65 return FALSE;
66 } 66 }
67 optScrWidth = w; 67 optScrWidth = w;
68 optScrHeight = h; 68 optScrHeight = h;
69 } 69 }
70 else 70 else
71 { 71 {
72 dmErrorMsg("Invalid size argument '%s'.\n", optArg); 72 dmErrorMsg("Invalid size argument '%s'.\n", optArg);
73 return FALSE; 73 return FALSE;
74 } 74 }
75 } 75 }
81 81
82 default: 82 default:
83 dmErrorMsg("Unknown option '%s'.\n", currArg); 83 dmErrorMsg("Unknown option '%s'.\n", currArg);
84 return FALSE; 84 return FALSE;
85 } 85 }
86 86
87 return TRUE; 87 return TRUE;
88 } 88 }
89 89
90 90
91 void DM_MakePalette(SDL_Surface *scr) 91 void DM_MakePalette(SDL_Surface *scr)
136 136
137 void DM_Random(SDL_Surface *screen, int q) 137 void DM_Random(SDL_Surface *screen, int q)
138 { 138 {
139 Uint8 *pix = screen->pixels; 139 Uint8 *pix = screen->pixels;
140 int xc, yc; 140 int xc, yc;
141 141
142 for (yc = 0; yc < screen->h; yc++) 142 for (yc = 0; yc < screen->h; yc++)
143 { 143 {
144 Uint8 *dp = pix; 144 Uint8 *dp = pix;
145 145
146 for (xc = 0; xc < screen->w; xc++) 146 for (xc = 0; xc < screen->w; xc++)
189 // Perform shadow occlusion via simplistic raytracing 189 // Perform shadow occlusion via simplistic raytracing
190 vr.x = i; 190 vr.x = i;
191 vr.y = j; 191 vr.y = j;
192 vr.z = light->z; // - 10.0; 192 vr.z = light->z; // - 10.0;
193 // vr.z = pheightMap[j][i]; 193 // vr.z = pheightMap[j][i];
194 194
195 // Calculate light vector vector 195 // Calculate light vector vector
196 dm_vector_sub_r(&vl, &vr, light); 196 dm_vector_sub_r(&vl, &vr, light);
197 vrayLen = dm_vector_length(&vl); 197 vrayLen = dm_vector_length(&vl);
198 198
199 #if 1 199 #if 1
200 dm_vector_copy(&va, &vl); 200 dm_vector_copy(&va, &vl);
201 dm_vector_normalize(&va); 201 dm_vector_normalize(&va);
202 dm_vector_scale(&va, 0.6f); 202 dm_vector_scale(&va, 0.6f);
203 dm_vector_copy(&vr, light); 203 dm_vector_copy(&vr, light);
205 vlen = 0; 205 vlen = 0;
206 wasHit = FALSE; 206 wasHit = FALSE;
207 do 207 do
208 { 208 {
209 float h; 209 float h;
210 210
211 // If ray is inside the heightmap, get value 211 // If ray is inside the heightmap, get value
212 if (vr.x >= 0 && vr.y >= 0 && vr.x < QWIDTH && vr.y < QHEIGHT) 212 if (vr.x >= 0 && vr.y >= 0 && vr.x < QWIDTH && vr.y < QHEIGHT)
213 h = pheightMap[(int) vr.y][(int) vr.x]; 213 h = pheightMap[(int) vr.y][(int) vr.x];
214 else 214 else
215 break; 215 break;
216 216
217 // Check for hits 217 // Check for hits
218 if (h > vr.z) 218 if (h > vr.z)
219 wasHit = TRUE; 219 wasHit = TRUE;
220 else 220 else
221 { 221 {
323 if (screen == NULL) 323 if (screen == NULL)
324 { 324 {
325 dmErrorMsg("Could not create screen surface.\n"); 325 dmErrorMsg("Could not create screen surface.\n");
326 goto error_exit; 326 goto error_exit;
327 } 327 }
328 328
329 dmMsg(0, "Benchmark mode, not opening window.\n"); 329 dmMsg(0, "Benchmark mode, not opening window.\n");
330 } 330 }
331 else 331 else
332 { 332 {
333 if (!DM_InitializeVideo(&screen)) 333 if (!DM_InitializeVideo(&screen))
339 dmPerlinInit(&perlinCtx, 1234); 339 dmPerlinInit(&perlinCtx, 1234);
340 340
341 bmap = SDL_CreateRGBSurface(SDL_SWSURFACE, QWIDTH, QHEIGHT, 8, 0, 0, 0, 0); 341 bmap = SDL_CreateRGBSurface(SDL_SWSURFACE, QWIDTH, QHEIGHT, 8, 0, 0, 0, 0);
342 DM_MakePalette(bmap); 342 DM_MakePalette(bmap);
343 DM_Random(bmap, 15); 343 DM_Random(bmap, 15);
344 344
345 DMVector light; 345 DMVector light;
346 DMBlockMap heightMap; 346 DMBlockMap heightMap;
347 light.x = light.y = 128; 347 light.x = light.y = 128;
348 light.z = 128; 348 light.z = 128;
349 dmMakeBumpMap(heightMap, 0.06, 254); 349 dmMakeBumpMap(heightMap, 0.06, 254);
366 { 366 {
367 case SDL_KEYDOWN: 367 case SDL_KEYDOWN:
368 switch (event.key.keysym.sym) 368 switch (event.key.keysym.sym)
369 { 369 {
370 case SDLK_ESCAPE: exitFlag = TRUE; break; 370 case SDLK_ESCAPE: exitFlag = TRUE; break;
371 371
372 case SDLK_F5: 372 case SDLK_F5:
373 showMap = !showMap; 373 showMap = !showMap;
374 break; 374 break;
375 375
376 default: 376 default:
377 break; 377 break;
378 } 378 }
379 379
380 break; 380 break;
381 381
382 case SDL_VIDEORESIZE: 382 case SDL_VIDEORESIZE:
383 optScrWidth = event.resize.w; 383 optScrWidth = event.resize.w;
384 optScrHeight = event.resize.h; 384 optScrHeight = event.resize.h;
385 385
386 if (!DM_InitializeVideo(&screen)) 386 if (!DM_InitializeVideo(&screen))
387 goto error_exit; 387 goto error_exit;
388 388
389 break; 389 break;
390 390
391 case SDL_VIDEOEXPOSE: 391 case SDL_VIDEOEXPOSE:
392 break; 392 break;
393 393
394 case SDL_QUIT: 394 case SDL_QUIT:
395 exit(0); 395 exit(0);
409 409
410 if (showMap) 410 if (showMap)
411 memcpy(bmap->pixels, heightMap, QWIDTH * QHEIGHT); 411 memcpy(bmap->pixels, heightMap, QWIDTH * QHEIGHT);
412 else 412 else
413 dmShadowTraceHeightMap(bmap->pixels, heightMap, &light); 413 dmShadowTraceHeightMap(bmap->pixels, heightMap, &light);
414 414
415 dmScaledBlitSurfaceAny(bmap, 0, 0, screen->w, screen->h, screen, DMD_NONE); 415 dmScaledBlitSurfaceAny(bmap, 0, 0, screen->w, screen->h, screen, DMD_NONE);
416 416
417 if (!optBenchmark) 417 if (!optBenchmark)
418 { 418 {
419 dmDrawTTFText(screen, font, fontcol, 0, 0, "%3.1f FPS", 419 dmDrawTTFText(screen, font, fontcol, 0, 0, "%3.1f FPS",
420 (float) (numFrames * 1000.0f) / (float) (endTime - startTime)); 420 (float) (numFrames * 1000.0f) / (float) (endTime - startTime));
421 421
422 if (SDL_MUSTLOCK(screen) != 0) 422 if (SDL_MUSTLOCK(screen) != 0)
423 SDL_UnlockSurface(screen); 423 SDL_UnlockSurface(screen);
424 424