summaryrefslogtreecommitdiff
path: root/apps/plugins/sdl/progs/duke3d/Engine/src
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2018-01-05 17:25:03 -0500
committerFranklin Wei <git@fwei.tk>2018-01-15 19:45:28 -0500
commitcf07bb328deb71cf2dc602f435b5340b0b55a2e5 (patch)
treee90dc67756cedabb0e857ad2f44309791a92e38b /apps/plugins/sdl/progs/duke3d/Engine/src
parent69ff35ac497abddd0559412f82682d717888eb03 (diff)
downloadrockbox-cf07bb328deb71cf2dc602f435b5340b0b55a2e5.tar.gz
rockbox-cf07bb328deb71cf2dc602f435b5340b0b55a2e5.zip
duke3d: further optimize audio mixing
Rather than holding intermediate results as fixed-point, this converts them directly to normal integers (in the range of the PCM sample) while mixing, instead of waiting till the end to perform a separate shifting step. Also, this precalculates some constants in the reverb code. Change-Id: Ie04e444d145bc28ce67eef9ae0ead6d328acf28a
Diffstat (limited to 'apps/plugins/sdl/progs/duke3d/Engine/src')
-rw-r--r--apps/plugins/sdl/progs/duke3d/Engine/src/display.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/apps/plugins/sdl/progs/duke3d/Engine/src/display.c b/apps/plugins/sdl/progs/duke3d/Engine/src/display.c
index 3883803bce..501ffa411c 100644
--- a/apps/plugins/sdl/progs/duke3d/Engine/src/display.c
+++ b/apps/plugins/sdl/progs/duke3d/Engine/src/display.c
@@ -1368,9 +1368,13 @@ int VBE_setPalette(uint8_t *palettebuffer)
1368 memcpy(lastPalette, palettebuffer, 768); 1368 memcpy(lastPalette, palettebuffer, 768);
1369 1369
1370 for (i = 0; i < 256; i++){ 1370 for (i = 0; i < 256; i++){
1371 sdlp->b = (Uint8) ((((float) *p++) / 63.0) * 255.0); 1371 /* doesn't map perfectly */
1372 sdlp->g = (Uint8) ((((float) *p++) / 63.0) * 255.0); 1372 sdlp->b = (Uint8) (*p << 2) | (*p >> 4);
1373 sdlp->r = (Uint8) ((((float) *p++) / 63.0) * 255.0); 1373 p++;
1374 sdlp->g = (Uint8) (*p << 2) | (*p >> 4);
1375 p++;
1376 sdlp->r = (Uint8) (*p << 2) | (*p >> 4);
1377 p++;
1374 sdlp->unused = *p++; /* This byte is unused in BUILD, too. */ 1378 sdlp->unused = *p++; /* This byte is unused in BUILD, too. */
1375 sdlp++; 1379 sdlp++;
1376 } 1380 }