Mercurial > hg > dmlib
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 |