From 8a5a966cd0ad7fccceccd785718b461ec159d180 Mon Sep 17 00:00:00 2001 From: Plagman <Plagman@1a8010ca-5511-0410-912e-c29ae57300e0> Date: Sun, 14 Jan 2007 07:00:29 +0000 Subject: [PATCH] Restored fullbrights, improved depth peeling, tweaked MSVC support for JFAud. git-svn-id: https://svn.eduke32.com/eduke32@454 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/build/include/glbuild.h | 2 + polymer/build/src/engine.c | 60 ++++++++----- polymer/build/src/glbuild.c | 18 ++-- polymer/build/src/polymost.c | 112 ++++++++++++++++-------- polymer/eduke32/Makefile.msvc | 19 ++-- polymer/eduke32/eduke32.sln | 55 ++++++++++++ polymer/eduke32/eduke32.vcproj | 86 +++++++++++++++++- polymer/eduke32/source/jfaud_sounds.cpp | 2 +- polymer/jfaud/Makefile.msvc | 10 +-- polymer/jfaud/mpadec/Makefile.msvc | 2 +- polymer/jfaud/src/dynlib.cpp | 2 +- polymer/jfaud/src/jfaud.cpp | 2 +- 12 files changed, 289 insertions(+), 81 deletions(-) diff --git a/polymer/build/include/glbuild.h b/polymer/build/include/glbuild.h index 780e5c69c..806c55641 100644 --- a/polymer/build/include/glbuild.h +++ b/polymer/build/include/glbuild.h @@ -56,6 +56,8 @@ extern void (APIENTRY * bglPopAttrib)( void ); extern GLenum (APIENTRY * bglGetError)( void ); extern const GLubyte* (APIENTRY * bglGetString)( GLenum name ); extern void (APIENTRY * bglHint)( GLenum target, GLenum mode ); +extern void (APIENTRY * bglDrawBuffer)(GLenum mode); +extern void (APIENTRY * bglReadBuffer)(GLenum mode); // Depth extern void (APIENTRY * bglDepthFunc)( GLenum func ); diff --git a/polymer/build/src/engine.c b/polymer/build/src/engine.c index 6d8d51f5f..ecd3db151 100644 --- a/polymer/build/src/engine.c +++ b/polymer/build/src/engine.c @@ -3151,9 +3151,9 @@ static void drawsprite(long snum) #ifdef POLYMOST if (rendmode == 3) { polymost_drawsprite(snum); -#ifdef USE_OPENGL - //bglDepthMask(1); -#endif +# ifdef USE_OPENGL + bglDisable(GL_POLYGON_OFFSET_FILL); +# endif return; } if (rendmode == 4) { polymer_drawsprite(snum); return; } @@ -6120,7 +6120,6 @@ if ((!r_depthpeeling) || (rendmode < 3)) if ((sameside(&maskeq, &spr, &pos) == 0) && sameside(&p1eq, &middle, &spr) && sameside(&p2eq, &middle, &spr)) { - bglDisable(GL_POLYGON_OFFSET_FILL); drawsprite(i); tspriteptr[i] = NULL; } @@ -6133,48 +6132,66 @@ if ((!r_depthpeeling) || (rendmode < 3)) { spritesortcnt--; if (tspriteptr[spritesortcnt] != NULL) - { - bglDisable(GL_POLYGON_OFFSET_FILL); drawsprite(spritesortcnt); - } } - bglDisable(GL_POLYGON_OFFSET_FILL); } /* depthpeeling */ #ifdef USE_OPENGL else { curpolygonoffset = 0; - while (spritesortcnt > 0) - { - bglDisable(GL_POLYGON_OFFSET_FILL); - drawsprite(--spritesortcnt); - } - bglDisable(GL_POLYGON_OFFSET_FILL); - while (maskwallcnt > 0) drawmaskwall(--maskwallcnt); + j = spritesortcnt; + k = maskwallcnt; + + while (j > 0) drawsprite(--j); + while (k > 0) drawmaskwall(--k); } #endif #ifdef USE_OPENGL if ((r_depthpeeling) && (rendmode >= 3)) { - bglEndList(); + bglPopAttrib(); + bglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + + bglNewList(1, GL_COMPILE); + + peelcompiling = 1; + curpolygonoffset = 0; + + while (spritesortcnt > 0) drawsprite(--spritesortcnt); + while (maskwallcnt > 0) drawmaskwall(--maskwallcnt); + peelcompiling = 0; + bglEndList(); + bglDisable(GL_BLEND); bglEnable(GL_ALPHA_TEST); bglAlphaFunc(GL_GREATER, 0.0f); + bglEnable(GL_FRAGMENT_PROGRAM_ARB); i = 0; while (i < r_peelscount) { + if (i > 0) { - bglEnable(GL_FRAGMENT_PROGRAM_ARB); + bglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, peelprogram[1]); bglActiveTextureARB(GL_TEXTURE1_ARB); bglBindTexture(GL_TEXTURE_RECTANGLE, ztexture[(i - 1) % 2]); + bglActiveTextureARB(GL_TEXTURE2_ARB); + bglBindTexture(GL_TEXTURE_RECTANGLE, ztexture[2]); bglActiveTextureARB(GL_TEXTURE0_ARB); } + else + { + bglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, peelprogram[0]); + bglActiveTextureARB(GL_TEXTURE1_ARB); + bglBindTexture(GL_TEXTURE_RECTANGLE, ztexture[2]); + bglActiveTextureARB(GL_TEXTURE0_ARB); + } + if (i == (r_peelscount - 1)) bglEnable(GL_BLEND); @@ -6188,14 +6205,10 @@ else bglPopAttrib(); bglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); - if (i > 0) - bglDisable(GL_FRAGMENT_PROGRAM_ARB); - i++; } - bglClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - + bglDisable(GL_FRAGMENT_PROGRAM_ARB); bglEnable(GL_BLEND); bglDisable(GL_DEPTH_TEST); @@ -6211,6 +6224,9 @@ else bglEnable(GL_TEXTURE_RECTANGLE); + // backbuffer + drawpeel(r_peelscount); + if (r_curpeel == -1) { i = r_peelscount - 1; diff --git a/polymer/build/src/glbuild.c b/polymer/build/src/glbuild.c index f4dcef032..8593b9e13 100644 --- a/polymer/build/src/glbuild.c +++ b/polymer/build/src/glbuild.c @@ -33,6 +33,8 @@ void (APIENTRY * bglPopAttrib)( void ); GLenum (APIENTRY * bglGetError)( void ); const GLubyte* (APIENTRY * bglGetString)( GLenum name ); void (APIENTRY * bglHint)( GLenum target, GLenum mode ); +void (APIENTRY * bglDrawBuffer)(GLenum mode); +void (APIENTRY * bglReadBuffer)(GLenum mode); // Depth void (APIENTRY * bglDepthFunc)( GLenum func ); @@ -213,23 +215,25 @@ int loadgldriver(const char *driver) #endif bglClearColor = GETPROC("glClearColor"); - bglClear = GETPROC("glClear"); + bglClear = GETPROC("glClear"); bglColorMask = GETPROC("glColorMask"); bglAlphaFunc = GETPROC("glAlphaFunc"); bglBlendFunc = GETPROC("glBlendFunc"); - bglCullFace = GETPROC("glCullFace"); + bglCullFace = GETPROC("glCullFace"); bglFrontFace = GETPROC("glFrontFace"); bglPolygonOffset = GETPROC("glPolygonOffset"); bglPolygonMode = GETPROC("glPolygonMode"); - bglEnable = GETPROC("glEnable"); - bglDisable = GETPROC("glDisable"); + bglEnable = GETPROC("glEnable"); + bglDisable = GETPROC("glDisable"); bglGetFloatv = GETPROC("glGetFloatv"); bglGetIntegerv = GETPROC("glGetIntegerv"); bglPushAttrib = GETPROC("glPushAttrib"); bglPopAttrib = GETPROC("glPopAttrib"); - bglGetError = GETPROC("glGetError"); + bglGetError = GETPROC("glGetError"); bglGetString = GETPROC("glGetString"); - bglHint = GETPROC("glHint"); + bglHint = GETPROC("glHint"); + bglDrawBuffer = GETPROC("glDrawBuffer"); + bglReadBuffer = GETPROC("glDrawBuffer"); // Depth bglDepthFunc = GETPROC("glDepthFunc"); @@ -375,6 +379,8 @@ int unloadgldriver(void) bglGetError = NULL; bglGetString = NULL; bglHint = NULL; + bglDrawBuffer = NULL; + bglReadBuffer = NULL; // Depth bglDepthFunc = NULL; diff --git a/polymer/build/src/polymost.c b/polymer/build/src/polymost.c index 70f9c03ea..eab03f757 100644 --- a/polymer/build/src/polymost.c +++ b/polymer/build/src/polymost.c @@ -144,10 +144,10 @@ long peelcompiling = 0; // internal control var to disable blending when com long newpeelscount = 0; // temporary var for peels count changing during the game // Depth peeling data -GLuint ztexture[2]; // secondary Z-buffer identifier -GLuint *peels; // peels identifiers -GLuint *peelfbos; // peels FBOs identifiers -GLuint peelprogram; // ARBfp peeling fragment program +GLuint ztexture[3]; // secondary Z-buffers identifier +GLuint *peels; // peels identifiers +GLuint *peelfbos; // peels FBOs identifiers +GLuint peelprogram[2]; // ARBfp peeling fragment program float fogresult, ofogresult; @@ -610,10 +610,10 @@ void polymost_glreset () // Depth peeling cleanup if (peels) { - bglDeleteProgramsARB(1, &peelprogram); - bglDeleteFramebuffersEXT(r_peelscount, peelfbos); - bglDeleteTextures(r_peelscount, peels); - bglDeleteTextures(2, ztexture); + bglDeleteProgramsARB(2, peelprogram); + bglDeleteFramebuffersEXT(r_peelscount + 1, peelfbos); + bglDeleteTextures(r_peelscount + 1, peels); + bglDeleteTextures(3, ztexture); free(peels); free(peelfbos); @@ -626,21 +626,34 @@ void polymost_glinit() { GLfloat col[4]; int i; - char peelprogramstring[] = + char notpeeledprogramstring[] = "!!ARBfp1.0\n" "OPTION ARB_fog_exp2;\n" "OPTION ARB_fragment_program_shadow;\n" "TEMP texsample;\n" "TEMP depthresult;\n" - "TEMP tempresult;\n" + "TEX depthresult, fragment.position, texture[1], SHADOWRECT;\n" + "ADD depthresult.a, depthresult.a, -0.5;\n" + "KIL depthresult.a;\n" "TEX texsample, fragment.texcoord[0], texture[0], 2D;\n" - "TEX depthresult, fragment.position, texture[1], SHADOWRECT;\n" - "MUL tempresult, fragment.color, texsample;\n" - "MUL tempresult.a, tempresult.a, depthresult.a;\n" - "MOV result.color, tempresult;\n" + "MUL result.color, fragment.color, texsample;\n" + "END\n"; + char peeledprogramstring[] = + "!!ARBfp1.0\n" + "OPTION ARB_fog_exp2;\n" + "OPTION ARB_fragment_program_shadow;\n" + "TEMP texsample;\n" + "TEMP depthresult;\n" + "TEX depthresult, fragment.position, texture[2], SHADOWRECT;\n" + "ADD depthresult.a, depthresult.a, -0.5;\n" + "KIL depthresult.a;\n" + "TEX depthresult, fragment.position, texture[1], SHADOWRECT;\n" + "ADD depthresult.a, depthresult.a, -0.5;\n" + "KIL depthresult.a;\n" + "TEX texsample, fragment.texcoord[0], texture[0], 2D;\n" + "MUL result.color, fragment.color, texsample;\n" "END\n"; - bglGetIntegerv(GL_ALPHA_BITS, &i); #if 1 if (!Bstrcmp(glinfo.vendor, "ATI Technologies Inc.")) { @@ -687,11 +700,11 @@ void polymost_glinit() r_peelscount = newpeelscount; newpeelscount = 0; } - // create the secondary Z-buffer - bglGenTextures(2, ztexture); + // create the secondary Z-buffers and the Z-backbuffer + bglGenTextures(3, ztexture); i = 0; - while (i < 2) + while (i < 3) { bglBindTexture(GL_TEXTURE_RECTANGLE, ztexture[i]); bglCopyTexImage2D(GL_TEXTURE_RECTANGLE, 0, GL_DEPTH_COMPONENT, 0, 0, xdim, ydim, 0); @@ -700,21 +713,24 @@ void polymost_glinit() bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_WRAP_S, GL_CLAMP); bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_WRAP_T, GL_CLAMP); bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_COMPARE_MODE_ARB, GL_COMPARE_R_TO_TEXTURE_ARB); - bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_COMPARE_FUNC_ARB, GL_GREATER); + if (i < 2) + bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_COMPARE_FUNC_ARB, GL_GREATER); + else + bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_COMPARE_FUNC_ARB, GL_LESS); bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_DEPTH_TEXTURE_MODE_ARB, GL_ALPHA); i++; } // create the various peeling layers as well as the FBOs to render to them - peels = malloc(r_peelscount * sizeof(GLuint)); - bglGenTextures(r_peelscount, peels); + peels = malloc((r_peelscount + 1) * sizeof(GLuint)); + bglGenTextures(r_peelscount + 1, peels); - peelfbos = malloc(r_peelscount * sizeof(GLuint)); - bglGenFramebuffersEXT(r_peelscount, peelfbos); + peelfbos = malloc((r_peelscount + 1) * sizeof(GLuint)); + bglGenFramebuffersEXT(r_peelscount + 1, peelfbos); i = 0; - while (i < r_peelscount) + while (i <= r_peelscount) { bglBindTexture(GL_TEXTURE_RECTANGLE, peels[i]); bglCopyTexImage2D(GL_TEXTURE_RECTANGLE, 0, GL_RGBA, 0, 0, xdim, ydim, 0); @@ -725,7 +741,9 @@ void polymost_glinit() bglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, peelfbos[i]); bglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_RECTANGLE, peels[i], 0); - if (i < (r_peelscount - 1)) + if (i == r_peelscount) // bakcbuffer + bglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_RECTANGLE, ztexture[2], 0); + else if (i < (r_peelscount - 1)) bglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_RECTANGLE, ztexture[i % 2], 0); if (bglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) != GL_FRAMEBUFFER_COMPLETE_EXT) @@ -738,10 +756,12 @@ void polymost_glinit() i++; } - // create the peeling fragment program - bglGenProgramsARB(1, &peelprogram); - bglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, peelprogram); - bglProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, strlen(peelprogramstring), peelprogramstring); + // create the peeling fragment programs + bglGenProgramsARB(2, peelprogram); + bglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, peelprogram[0]); + bglProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, strlen(notpeeledprogramstring), notpeeledprogramstring); + bglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, peelprogram[1]); + bglProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, strlen(peeledprogramstring), peeledprogramstring); } } @@ -3567,12 +3587,6 @@ void polymost_drawrooms () #ifdef USE_OPENGL if (rendmode >= 3) { - if (r_depthpeeling) - { - bglNewList(1, GL_COMPILE); - peelcompiling = 1; - } - resizeglcheck(); //bglClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); @@ -3605,6 +3619,13 @@ void polymost_drawrooms () globalposy += cosglobalang/1024; } } + if (r_depthpeeling) + { + bglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, peelfbos[r_peelscount]); + bglPushAttrib(GL_VIEWPORT_BIT); + bglViewport(0, 0, xdim, ydim); + //bglClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); + } } #endif @@ -3786,7 +3807,7 @@ void polymost_drawrooms () #ifdef USE_OPENGL if (rendmode >= 3) { - bglDepthFunc(GL_LESS); //NEVER,LESS,(,L)EQUAL,GREATER,(NOT,G)EQUAL,ALWAYS + bglDepthFunc(GL_LEQUAL); //NEVER,LESS,(,L)EQUAL,GREATER,(NOT,G)EQUAL,ALWAYS //bglPolygonOffset(0,0); bglDepthRange(0.0,0.99999); //<- this is more widely supported than glPolygonOffset @@ -3818,6 +3839,16 @@ void polymost_drawmaskwall (long damaskwallcnt) globalpal = (long)((unsigned char)wal->pal); globalorientation = (long)wal->cstat; +#ifdef USE_OPENGL + if (r_depthpeeling) + { + if ((((wal->cstat&128) || (gltexmayhavealpha(globalpicnum,globalpal)))) && !peelcompiling) + return; // discard translucent sprite if drawing the backbuffer when doing depth peeling + if (!(((wal->cstat&128) || (gltexmayhavealpha(globalpicnum,globalpal)))) && peelcompiling) + return; // discard opaque sprite when composing the depth peels + } +#endif + sx0 = (float)(wal->x-globalposx); sx1 = (float)(wal2->x-globalposx); sy0 = (float)(wal->y-globalposy); sy1 = (float)(wal2->y-globalposy); yp0 = sx0*gcosang2 + sy0*gsinang2; @@ -3995,7 +4026,15 @@ void polymost_drawsprite (long snum) method = 1+4; if (tspr->cstat&2) { if (!(tspr->cstat&512)) method = 2+4; else method = 3+4; } + #ifdef USE_OPENGL + if (r_depthpeeling) + { + if ((((tspr->cstat&2) || (gltexmayhavealpha(globalpicnum,tspr->pal)))) && !peelcompiling) + return; // discard translucent sprite if drawing the backbuffer when doing depth peeling + if (!(((tspr->cstat&2) || (gltexmayhavealpha(globalpicnum,tspr->pal)))) && peelcompiling) + return; // discard opaque sprite when composing the depth peels + } if (!nofog && rendmode >= 3) { float col[4]; col[0] = (float)palookupfog[sector[tspr->sectnum].floorpal].r / 63.f; @@ -4027,7 +4066,6 @@ if (tspr->cstat&2) { if (!(tspr->cstat&512)) method = 2+4; else method = 3+4; } curpolygonoffset += 0.01f; bglEnable(GL_POLYGON_OFFSET_FILL); bglPolygonOffset(-curpolygonoffset, -curpolygonoffset); - //bglDepthMask(0); } #endif diff --git a/polymer/eduke32/Makefile.msvc b/polymer/eduke32/Makefile.msvc index b97808a30..a870d782a 100644 --- a/polymer/eduke32/Makefile.msvc +++ b/polymer/eduke32/Makefile.msvc @@ -37,6 +37,11 @@ CFLAGS= /MD /J /nologo $(flags_cl) \ /I$(DXROOT)\include /DRENDERTYPEWIN=1 LIBS=user32.lib gdi32.lib shell32.lib dxguid.lib winmm.lib wsock32.lib comctl32.lib \ /NODEFAULTLIB:libFLAC.lib glu32.lib + +!ifdef JFAUD +LIBS=$(LIBS) ../jfaud/jfaud.lib ../jfaud/mpadec/mpadec.lib +CFLAGS=$(CFLAGS) /DJFAUD +!endif ASFLAGS=/nologo /coff ASFLAGS=/nologo /coff @@ -50,8 +55,8 @@ JMACTOBJ=$(OBJ)\util_lib.$o \ $(OBJ)\mathutil.$o \ $(OBJ)\scriplib.$o -#AUDIOLIB_FX=$(OBJ)\jaudiolib_fxstub.$o -#AUDIOLIB_MUSIC=$(OBJ)\jaudiolib_musicstub.$o +AUDIOLIB_FX_STUB=$(OBJ)\jaudiolib_fxstub.$o +AUDIOLIB_MUSIC_STUB=$(OBJ)\jaudiolib_musicstub.$o #AUDIOLIB_FX=$(OBJ)\jaudiolib_fx_fmod.$o AUDIOLIB_JFAUD=$(OBJ)\jfaud_sounds.$o AUDIOLIB_FX=$(OBJ)\mv_mix.$o \ @@ -64,9 +69,13 @@ AUDIOLIB_FX=$(OBJ)\mv_mix.$o \ $(OBJ)\dsoundout.$o AUDIOLIB_MUSIC=$(OBJ)\midi.$o \ $(OBJ)\mpu401.$o \ - $(OBJ)\music.$o -AUDIOLIBOBJ=$(AUDIOLIB_MUSIC) $(AUDIOLIB_FX) $(OBJ)\sounds.$o -#AUDIOLIBOBJ=$(AUDIOLIB_JFAUD) + $(OBJ)\music.$o + +!ifdef JFAUD +AUDIOLIBOBJ=$(AUDIOLIB_JFAUD) +!else +AUDIOLIBOBJ=$(AUDIOLIB_MUSIC) $(AUDIOLIB_FX) $(OBJ)\sounds.$o +!endif GAMEOBJS=$(OBJ)\game.$o \ $(OBJ)\actors.$o \ diff --git a/polymer/eduke32/eduke32.sln b/polymer/eduke32/eduke32.sln index b6d9d80f7..549b538df 100644 --- a/polymer/eduke32/eduke32.sln +++ b/polymer/eduke32/eduke32.sln @@ -2,23 +2,78 @@ Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eduke32", "eduke32.vcproj", "{8E7A6179-0B72-4073-8A4C-E8682D481DAE}" + ProjectSection(ProjectDependencies) = postProject + {CD149A75-4507-404D-856C-E9DBC2E0B286} = {CD149A75-4507-404D-856C-E9DBC2E0B286} + {862365FE-811C-46B8-BB1E-B7189DA8D858} = {862365FE-811C-46B8-BB1E-B7189DA8D858} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jfaud", "..\jfaud\jfaud.vcproj", "{CD149A75-4507-404D-856C-E9DBC2E0B286}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpadec", "..\jfaud\mpadec\mpadec.vcproj", "{862365FE-811C-46B8-BB1E-B7189DA8D858}" + ProjectSection(ProjectDependencies) = postProject + {CD149A75-4507-404D-856C-E9DBC2E0B286} = {CD149A75-4507-404D-856C-E9DBC2E0B286} + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Classic JFAud|Win32 = Classic JFAud|Win32 + Classic Release JFAud|Win32 = Classic Release JFAud|Win32 Classic Release|Win32 = Classic Release|Win32 Classic|Win32 = Classic|Win32 + HRP SD JFAud|Win32 = HRP SD JFAud|Win32 + HRP SD Release JFAud|Win32 = HRP SD Release JFAud|Win32 HRP SD Release|Win32 = HRP SD Release|Win32 HRP SD|Win32 = HRP SD|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.Classic JFAud|Win32.ActiveCfg = Classic JFAud|Win32 + {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.Classic JFAud|Win32.Build.0 = Classic JFAud|Win32 + {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.Classic Release JFAud|Win32.ActiveCfg = Classic Release JFAud|Win32 + {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.Classic Release JFAud|Win32.Build.0 = Classic Release JFAud|Win32 {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.Classic Release|Win32.ActiveCfg = Classic Release|Win32 {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.Classic Release|Win32.Build.0 = Classic Release|Win32 {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.Classic|Win32.ActiveCfg = Classic|Win32 {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.Classic|Win32.Build.0 = Classic|Win32 + {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.HRP SD JFAud|Win32.ActiveCfg = HRP SD JFAud|Win32 + {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.HRP SD JFAud|Win32.Build.0 = HRP SD JFAud|Win32 + {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.HRP SD Release JFAud|Win32.ActiveCfg = HRP SD Release JFAud|Win32 + {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.HRP SD Release JFAud|Win32.Build.0 = HRP SD Release JFAud|Win32 {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.HRP SD Release|Win32.ActiveCfg = HRP SD Release|Win32 {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.HRP SD Release|Win32.Build.0 = HRP SD Release|Win32 {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.HRP SD|Win32.ActiveCfg = HRP SD|Win32 {8E7A6179-0B72-4073-8A4C-E8682D481DAE}.HRP SD|Win32.Build.0 = HRP SD|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.Classic JFAud|Win32.ActiveCfg = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.Classic JFAud|Win32.Build.0 = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.Classic Release JFAud|Win32.ActiveCfg = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.Classic Release JFAud|Win32.Build.0 = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.Classic Release|Win32.ActiveCfg = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.Classic Release|Win32.Build.0 = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.Classic|Win32.ActiveCfg = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.Classic|Win32.Build.0 = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.HRP SD JFAud|Win32.ActiveCfg = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.HRP SD JFAud|Win32.Build.0 = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.HRP SD Release JFAud|Win32.ActiveCfg = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.HRP SD Release JFAud|Win32.Build.0 = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.HRP SD Release|Win32.ActiveCfg = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.HRP SD Release|Win32.Build.0 = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.HRP SD|Win32.ActiveCfg = Release|Win32 + {CD149A75-4507-404D-856C-E9DBC2E0B286}.HRP SD|Win32.Build.0 = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.Classic JFAud|Win32.ActiveCfg = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.Classic JFAud|Win32.Build.0 = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.Classic Release JFAud|Win32.ActiveCfg = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.Classic Release JFAud|Win32.Build.0 = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.Classic Release|Win32.ActiveCfg = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.Classic Release|Win32.Build.0 = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.Classic|Win32.ActiveCfg = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.Classic|Win32.Build.0 = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.HRP SD JFAud|Win32.ActiveCfg = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.HRP SD JFAud|Win32.Build.0 = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.HRP SD Release JFAud|Win32.ActiveCfg = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.HRP SD Release JFAud|Win32.Build.0 = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.HRP SD Release|Win32.ActiveCfg = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.HRP SD Release|Win32.Build.0 = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.HRP SD|Win32.ActiveCfg = Release|Win32 + {862365FE-811C-46B8-BB1E-B7189DA8D858}.HRP SD|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/polymer/eduke32/eduke32.vcproj b/polymer/eduke32/eduke32.vcproj index 75dd50231..37a222f0b 100644 --- a/polymer/eduke32/eduke32.vcproj +++ b/polymer/eduke32/eduke32.vcproj @@ -97,6 +97,88 @@ CompileAsManaged="" /> </Configuration> + <Configuration + Name="Classic JFAud|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="0" + BuildLogFile="" + > + <Tool + Name="VCNMakeTool" + BuildCommandLine="nmake /f Makefile.msvc DEBUG=1 JFAUD=1" + ReBuildCommandLine="nmake /f Makefile.msvc veryclean all DEBUG=1 JFAUD=1" + CleanCommandLine="nmake /f Makefile.msvc veryclean" + Output="eduke32.exe" + PreprocessorDefinitions="WIN32;_DEBUG;SUPERBUILD;POLYMOST;USE_OPENGL;NOCOPYPROTECT;RENDERTYPEWIN" + IncludeSearchPath="" + ForcedIncludes="" + AssemblySearchPath="" + ForcedUsingAssemblies="" + CompileAsManaged="" + /> + </Configuration> + <Configuration + Name="HRP SD JFAud|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="0" + > + <Tool + Name="VCNMakeTool" + BuildCommandLine="nmake /f Makefile.msvc DEBUG=1 JFAUD=1" + ReBuildCommandLine="nmake /f Makefile.msvc veryclean all DEBUG=1 JFAUD=1" + CleanCommandLine="nmake /f Makefile.msvc veryclean" + Output="eduke32.exe" + PreprocessorDefinitions="WIN32;_DEBUG;SUPERBUILD;POLYMOST;USE_OPENGL;NOCOPYPROTECT;RENDERTYPEWIN" + IncludeSearchPath="" + ForcedIncludes="" + AssemblySearchPath="" + ForcedUsingAssemblies="" + CompileAsManaged="" + /> + </Configuration> + <Configuration + Name="Classic Release JFAud|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="0" + BuildLogFile="" + > + <Tool + Name="VCNMakeTool" + BuildCommandLine="nmake /f Makefile.msvc JFAUD=1" + ReBuildCommandLine="nmake /f Makefile.msvc veryclean all JFAUD=1" + CleanCommandLine="nmake /f Makefile.msvc veryclean" + Output="eduke32.exe" + PreprocessorDefinitions="WIN32;_DEBUG;SUPERBUILD;POLYMOST;USE_OPENGL;NOCOPYPROTECT;RENDERTYPEWIN" + IncludeSearchPath="" + ForcedIncludes="" + AssemblySearchPath="" + ForcedUsingAssemblies="" + CompileAsManaged="" + /> + </Configuration> + <Configuration + Name="HRP SD Release JFAud|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="0" + > + <Tool + Name="VCNMakeTool" + BuildCommandLine="nmake /f Makefile.msvc JFAUD=1" + ReBuildCommandLine="nmake /f Makefile.msvc veryclean all JFAUD=1" + CleanCommandLine="nmake /f Makefile.msvc veryclean" + Output="eduke32.exe" + PreprocessorDefinitions="WIN32;_DEBUG;SUPERBUILD;POLYMOST;USE_OPENGL;NOCOPYPROTECT;RENDERTYPEWIN" + IncludeSearchPath="" + ForcedIncludes="" + AssemblySearchPath="" + ForcedUsingAssemblies="" + CompileAsManaged="" + /> + </Configuration> </Configurations> <References> </References> @@ -612,11 +694,11 @@ > </File> <File - RelativePath=".\source\develop.h" + RelativePath=".\source\jmact\develop.h" > </File> <File - RelativePath=".\source\jmact\develop.h" + RelativePath=".\source\develop.h" > </File> <File diff --git a/polymer/eduke32/source/jfaud_sounds.cpp b/polymer/eduke32/source/jfaud_sounds.cpp index 9fa2d772a..27c994d65 100644 --- a/polymer/eduke32/source/jfaud_sounds.cpp +++ b/polymer/eduke32/source/jfaud_sounds.cpp @@ -311,7 +311,7 @@ void playmusic(const char *fn) if (!MusicToggle) return; if (!jfaud) return; - dotpos = Bstrrchr(fn,'.'); + dotpos = Bstrrchr((char *)fn,'.'); if (dotpos && Bstrcasecmp(dotpos,".mid")) { // has extension but isn't midi jfaud->PlayMusic(fn, NULL); diff --git a/polymer/jfaud/Makefile.msvc b/polymer/jfaud/Makefile.msvc index c69211fc2..b5be37dd2 100755 --- a/polymer/jfaud/Makefile.msvc +++ b/polymer/jfaud/Makefile.msvc @@ -21,7 +21,7 @@ VORBISDL=vorbisfile.dll # FLAC # http://flac.sf.net/ -USEFLAC=1 +USEFLAC=0 LINKFLAC=0 FLACCFLAGS= FLACLIBS=libflac.lib @@ -30,7 +30,7 @@ FLACDL=libflac.dll # MPEG Audio via mpadec # http://mpadec.sf.net/ USEMPADEC=1 -LINKMPADEC=0 +LINKMPADEC=1 MPADECCFLAGS=/Impadec MPADECLIBS=mpadec\mpadec.lib MPADECDL=mpadec.dll @@ -42,9 +42,9 @@ SDLLIBS=/LIBPATH:C:\sdks\SDL-msvc\lib SDL.lib # Directories for library SDKs on Windows # I keep my third-party libraries each in a directory on their own. -SDKDIRECTX=c:\sdks\directx\dx7 +SDKDIRECTX=c:\sdks\dx6 SDKOPENAL=c:\sdks\OpenAL -SDKVORBIS=c:\sdks\oggvorbis-win32sdk-1.0.1 +SDKVORBIS=c:\sdks\oggvorbis SDKFLAC=c:\sdks\flac obj=obj @@ -69,7 +69,7 @@ FLACLIBS=/LIBPATH:$(SDKFLAC)\bin $(FLACLIBS) MPADECCFLAGS=$(MPADECCFLAGS) /DMPADECDL=\"$(MPADECDL)\" -CFLAGS=/G6Fy /Ox /MD /DDEBUG /nologo /I$(inc) $(platformcflags) +CFLAGS=/O2 /Ox /MD /DDEBUG /nologo /D "_CRT_SECURE_NO_DEPRECATE" -W0 /I$(inc) $(platformcflags) LIBS=$(platformlibs) dependencies= diff --git a/polymer/jfaud/mpadec/Makefile.msvc b/polymer/jfaud/mpadec/Makefile.msvc index c56235110..cb7f9799d 100755 --- a/polymer/jfaud/mpadec/Makefile.msvc +++ b/polymer/jfaud/mpadec/Makefile.msvc @@ -1,4 +1,4 @@ -CFLAGS=/I.. /I..\include /MD /Ox +CFLAGS=/I.. /I..\include /MD /Ox /D "_CRT_SECURE_NO_DEPRECATE" -W0 OBJS=layer1.obj layer2.obj layer3.obj synth.obj tables.obj mpadec.obj mp3dec.obj diff --git a/polymer/jfaud/src/dynlib.cpp b/polymer/jfaud/src/dynlib.cpp index fbf16c405..426cb2ef2 100755 --- a/polymer/jfaud/src/dynlib.cpp +++ b/polymer/jfaud/src/dynlib.cpp @@ -17,7 +17,7 @@ #endif #ifndef SCREWED_UP_CPP -using namespace std; +//using namespace std; #endif DynamicLibrary::DynamicLibrary(const char *name) diff --git a/polymer/jfaud/src/jfaud.cpp b/polymer/jfaud/src/jfaud.cpp index b5eadaae2..9afa00740 100755 --- a/polymer/jfaud/src/jfaud.cpp +++ b/polymer/jfaud/src/jfaud.cpp @@ -115,7 +115,7 @@ bool JFAud::InitWave(const char *name, int numvoices, int frequency) if (wavemixer) return false; if (numvoices < 1) numvoices = 1; - if (name) devid = strchr(name, ':'); + if (name) devid = strchr((char *)name, ':'); if (devid) devid++; if (!name) drv = 0;