diff --git a/polymer/eduke32/build/include/baselayer.h b/polymer/eduke32/build/include/baselayer.h index ab30b10c0..a19e51df4 100644 --- a/polymer/eduke32/build/include/baselayer.h +++ b/polymer/eduke32/build/include/baselayer.h @@ -42,6 +42,7 @@ extern uint32_t r_screenxy; extern int32_t xres, yres, bpp, fullscreen, bytesperline; extern intptr_t frameplace; extern char offscreenrendering; +extern int32_t nofog; void calc_ylookup(int32_t bpl, int32_t lastyidx); diff --git a/polymer/eduke32/build/src/glbuild_android.c b/polymer/eduke32/build/src/glbuild_android.c index 0c8eb65b3..afe1d2cfe 100644 --- a/polymer/eduke32/build/src/glbuild_android.c +++ b/polymer/eduke32/build/src/glbuild_android.c @@ -5,7 +5,9 @@ #include #include +#ifdef EDUKE32_GLES #include "jwzgles.h" +#endif #ifdef RENDERTYPESDL #include "sdl_inc.h" diff --git a/polymer/eduke32/build/src/jwzgles.c b/polymer/eduke32/build/src/jwzgles.c index b202252ff..9cbdfeaf2 100644 --- a/polymer/eduke32/build/src/jwzgles.c +++ b/polymer/eduke32/build/src/jwzgles.c @@ -97,6 +97,7 @@ #include #define LOG_TAG "JWZGLES" +#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__) #undef Assert @@ -251,22 +252,22 @@ typedef struct { /* global state */ static jwzgles_state *state = 0; #ifdef DEBUG -# define LOG(A) LOGE("jwzgles: " A "\n") -# define LOG1(A,B) LOGE("jwzgles: " A "\n",B) -# define LOG2(A,B,C) LOGE("jwzgles: " A "\n",B,C) -# define LOG3(A,B,C,D) LOGE("jwzgles: " A "\n",B,C,D) -# define LOG4(A,B,C,D,E) LOGE("jwzgles: " A "\n",B,C,D,E) -# define LOG5(A,B,C,D,E,F) LOGE("jwzgles: " A "\n",B,C,D,E,F) -# define LOG6(A,B,C,D,E,F,G) LOGE("jwzgles: " A "\n",B,C,D,E,F,G) -# define LOG7(A,B,C,D,E,F,G,H) LOGE("jwzgles: " A "\n",B,C,D,E,F,G,H) +# define LOG(A) LOGD("jwzgles: " A "\n") +# define LOG1(A,B) LOGD("jwzgles: " A "\n",B) +# define LOG2(A,B,C) LOGD("jwzgles: " A "\n",B,C) +# define LOG3(A,B,C,D) LOGD("jwzgles: " A "\n",B,C,D) +# define LOG4(A,B,C,D,E) LOGD("jwzgles: " A "\n",B,C,D,E) +# define LOG5(A,B,C,D,E,F) LOGD("jwzgles: " A "\n",B,C,D,E,F) +# define LOG6(A,B,C,D,E,F,G) LOGD("jwzgles: " A "\n",B,C,D,E,F,G) +# define LOG7(A,B,C,D,E,F,G,H) LOGD("jwzgles: " A "\n",B,C,D,E,F,G,H) # define LOG8(A,B,C,D,E,F,G,H,I)\ - LOGE("jwzgles: "A "\n",B,C,D,E,F,G,H,I) + LOGD("jwzgles: "A "\n",B,C,D,E,F,G,H,I) # define LOG9(A,B,C,D,E,F,G,H,I,J)\ - LOGE("jwzgles: "A "\n",B,C,D,E,F,G,H,I,J) + LOGD("jwzgles: "A "\n",B,C,D,E,F,G,H,I,J) # define LOG10(A,B,C,D,E,F,G,H,I,J,K)\ - LOGE("jwzgles: "A "\n",B,C,D,E,F,G,H,I,J,K) + LOGD("jwzgles: "A "\n",B,C,D,E,F,G,H,I,J,K) # define LOG17(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)\ - LOGE("jwzgles: "A "\n",B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R) + LOGD("jwzgles: "A "\n",B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R) # define CHECK(S) check_gl_error(S) #else // "" defeats -Wempty-body @@ -484,7 +485,8 @@ check_gl_error (const char *s) { GLenum i = glGetError(); if (i == GL_NO_ERROR) return; - fprintf (stderr, "jwzgles: GL ERROR: %s: %s\n", s, mode_desc(i)); + + LOGE("jwzgles: GL ERROR: %s: %s\n", s, mode_desc(i)); } #endif /* DEBUG */ diff --git a/polymer/eduke32/build/src/sdlayer.c b/polymer/eduke32/build/src/sdlayer.c index 2226446ab..e54b0823a 100644 --- a/polymer/eduke32/build/src/sdlayer.c +++ b/polymer/eduke32/build/src/sdlayer.c @@ -1245,7 +1245,10 @@ void sdlayer_setvideomode_opengl(void) bglClearColor(0, 0, 0, 0.5); // Black Background bglHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Use FASTEST for ortho! // bglHint(GL_LINE_SMOOTH_HINT, GL_NICEST); + +#ifndef EDUKE32_GLES bglDisable(GL_DITHER); +#endif glinfo.vendor = (const char *) bglGetString(GL_VENDOR); glinfo.renderer = (const char *) bglGetString(GL_RENDERER); @@ -1288,7 +1291,6 @@ void sdlayer_setvideomode_opengl(void) // process the extensions string and flag stuff we recognize - glinfo.bgra = !!Bstrstr(glinfo.extensions, "GL_EXT_bgra") || !!Bstrstr(glinfo.extensions, "GL_EXT_texture_format_BGRA8888"); glinfo.texcompr = !!Bstrstr(glinfo.extensions, "GL_ARB_texture_compression") && Bstrcmp(glinfo.vendor, "ATI Technologies Inc."); glinfo.texnpot = !!Bstrstr(glinfo.extensions, "GL_ARB_texture_non_power_of_two") || !!Bstrstr(glinfo.extensions, "GL_OES_texture_npot"); glinfo.multisample = !!Bstrstr(glinfo.extensions, "GL_ARB_multisample"); @@ -1299,6 +1301,7 @@ void sdlayer_setvideomode_opengl(void) glinfo.fbos = !!Bstrstr(glinfo.extensions, "GL_EXT_framebuffer_object") || !!Bstrstr(glinfo.extensions, "GL_OES_framebuffer_object"); #ifndef __ANDROID__ + glinfo.bgra = !!Bstrstr(glinfo.extensions, "GL_EXT_bgra"); glinfo.clamptoedge = !!Bstrstr(glinfo.extensions, "GL_EXT_texture_edge_clamp") || !!Bstrstr(glinfo.extensions, "GL_SGIS_texture_edge_clamp"); glinfo.rect = @@ -1438,8 +1441,12 @@ int32_t setvideomode(int32_t x, int32_t y, int32_t c, int32_t fs) #ifdef USE_OPENGL if (c > 8) { - int32_t i, j, multisamplecheck = (glmultisample > 0); - + int32_t i, j; +#ifndef EDUKE32_GLES + int32_t multisamplecheck = (glmultisample > 0); +#else + int32_t multisamplecheck = 0; +#endif if (nogl) return -1; @@ -1457,8 +1464,10 @@ int32_t setvideomode(int32_t x, int32_t y, int32_t c, int32_t fs) { SDL_GL_CONTEXT_MINOR_VERSION, 1 }, #endif { SDL_GL_DOUBLEBUFFER, 1 }, +#ifndef EDUKE32_GLES { SDL_GL_MULTISAMPLEBUFFERS, glmultisample > 0 }, { SDL_GL_MULTISAMPLESAMPLES, glmultisample }, +#endif { SDL_GL_STENCIL_SIZE, 1 }, { SDL_GL_ACCELERATED_VISUAL, 1 }, }; diff --git a/polymer/eduke32/build/src/texcache.c b/polymer/eduke32/build/src/texcache.c index 2855c8e8b..0abba5ba4 100644 --- a/polymer/eduke32/build/src/texcache.c +++ b/polymer/eduke32/build/src/texcache.c @@ -11,6 +11,10 @@ #include "xxhash.h" #include "kplib.h" +#ifdef EDUKE32_GLES +#include "jwzgles.h" +#endif + #define CLEAR_GL_ERRORS() while(bglGetError() != GL_NO_ERROR) { } #define TEXCACHE_FREEBUFS() { Bfree(pic), Bfree(packbuf), Bfree(midbuf); } diff --git a/polymer/eduke32/build/src/voxmodel.c b/polymer/eduke32/build/src/voxmodel.c index 64fc7df54..9e0c76ae7 100644 --- a/polymer/eduke32/build/src/voxmodel.c +++ b/polymer/eduke32/build/src/voxmodel.c @@ -954,10 +954,11 @@ int32_t polymost_voxdraw(voxmodel_t *m, const tspritetype *tspr) if (tspr->cstat&CSTAT_SPRITE_MDHACK) { bglDepthFunc(GL_LESS); //NEVER,LESS,(,L)EQUAL,GREATER,(NOT,G)EQUAL,ALWAYS - bglDepthRange(0.0, 0.9999); +// bglDepthRange(0.0, 0.9999); } - bglPushAttrib(GL_POLYGON_BIT); +// bglPushAttrib(GL_POLYGON_BIT); + if ((grhalfxdown10x >= 0) /*^ ((globalorientation&8) != 0) ^ ((globalorientation&4) != 0)*/) bglFrontFace(GL_CW); else @@ -1053,11 +1054,11 @@ int32_t polymost_voxdraw(voxmodel_t *m, const tspritetype *tspr) //------------ bglDisable(GL_CULL_FACE); - bglPopAttrib(); +// bglPopAttrib(); if (tspr->cstat&CSTAT_SPRITE_MDHACK) { bglDepthFunc(GL_LESS); //NEVER,LESS,(,L)EQUAL,GREATER,(NOT,G)EQUAL,ALWAYS - bglDepthRange(0.0, 0.99999); +// bglDepthRange(0.0, 0.99999); } bglLoadIdentity(); diff --git a/polymer/eduke32/eduke32.vcxproj b/polymer/eduke32/eduke32.vcxproj index 4e2d1fca6..98d9f654a 100644 --- a/polymer/eduke32/eduke32.vcxproj +++ b/polymer/eduke32/eduke32.vcxproj @@ -255,6 +255,8 @@ + + @@ -288,6 +290,21 @@ + + + + + + + + + + + + + + + @@ -381,8 +398,10 @@ + + @@ -401,9 +420,23 @@ + + + + + + + + + + + + + + diff --git a/polymer/eduke32/eduke32.vcxproj.filters b/polymer/eduke32/eduke32.vcxproj.filters index 9816ee6c5..4484803ec 100644 --- a/polymer/eduke32/eduke32.vcxproj.filters +++ b/polymer/eduke32/eduke32.vcxproj.filters @@ -73,6 +73,15 @@ {d3b67b4f-6b78-43e0-88ab-f081b977499a} + + {e7398716-03fa-4baf-b8dc-a8c734386ae7} + + + {503b9776-fb3e-4abe-a47c-11395b7f249a} + + + {ed032f74-5d34-4314-9579-6a031cf615f1} + @@ -459,6 +468,57 @@ eduke32\headers + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + touchcontrols\headers + + + build\headers + + + build\headers + @@ -794,6 +854,54 @@ eduke32\source + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + touchcontrols\source + + + build\source + + + build\source + + + eduke32\source\android + diff --git a/polymer/eduke32/source/common_game.h b/polymer/eduke32/source/common_game.h index 2ee3b07cb..40675161e 100644 --- a/polymer/eduke32/source/common_game.h +++ b/polymer/eduke32/source/common_game.h @@ -107,8 +107,8 @@ extern void G_CleanupSearchPaths(void); extern void G_ExtPreInit(int32_t argc,const char **argv); extern void G_ExtInit(void); -extern void G_ExtPreStartupWindow(void); -extern void G_ExtPostStartupWindow(int32_t autoload); +extern void G_ScanGroups(void); +extern void G_LoadGroups(int32_t autoload); extern const char * G_GetInstallPath(int32_t insttype); diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index 449351349..17774a36c 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -2868,7 +2868,7 @@ static void fadepaltile(int32_t r, int32_t g, int32_t b, int32_t start, int32_t do { #ifdef __ANDROID__ //Needed for N7 2013 to stop corruption while fading video - clearallviews(0); + clearview(0); #endif if (KB_KeyPressed(sc_Space)) { @@ -4438,7 +4438,7 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio) { #ifdef __ANDROID__ // HACK: this is needed or else we get leftover UI texture crap where we'd get HOM on PC - clearallviews(0L); + clearview(0L); #endif #ifndef EDUKE32_TOUCH_DEVICES @@ -11437,7 +11437,7 @@ int32_t app_main(int32_t argc, const char **argv) } #endif -#ifdef USE_OPENGL +#if defined(USE_OPENGL) && !defined(EDUKE32_GLES) if (glusetexcache == -1) { ud.config.useprecache = glusetexcompr = 1; diff --git a/polymer/eduke32/source/grpscan.c b/polymer/eduke32/source/grpscan.c index fde74a0ba..69b15b9bc 100644 --- a/polymer/eduke32/source/grpscan.c +++ b/polymer/eduke32/source/grpscan.c @@ -362,7 +362,7 @@ int32_t ScanGroups(void) continue; } // failed to stat the file Bfree(fn); - if (fg->size == st.st_size && fg->mtime == st.st_mtime) + if (fg->size == (int32_t)st.st_size && fg->mtime == (int32_t)st.st_mtime) { grp = (struct grpfile *)Xcalloc(1, sizeof(struct grpfile)); grp->name = Xstrdup(sidx->name); diff --git a/polymer/eduke32/source/jaudiolib/src/driver_sdl.c b/polymer/eduke32/source/jaudiolib/src/driver_sdl.c index c51929822..be41910b1 100644 --- a/polymer/eduke32/source/jaudiolib/src/driver_sdl.c +++ b/polymer/eduke32/source/jaudiolib/src/driver_sdl.c @@ -24,6 +24,7 @@ #include #define _NEED_SDLMIXER +#include "compat.h" #include "sdl_inc.h" #include "driver_sdl.h" #include "multivoc.h" diff --git a/polymer/eduke32/source/menus.c b/polymer/eduke32/source/menus.c index 045f235ff..b809fff29 100644 --- a/polymer/eduke32/source/menus.c +++ b/polymer/eduke32/source/menus.c @@ -822,8 +822,10 @@ static char *MEOSN_RENDERERSETUP_TEXCACHE[] = { "Off", "On", "Compress", }; static MenuOptionSet_t MEOS_RENDERERSETUP_TEXCACHE = MAKE_MENUOPTIONSET( MEOSN_RENDERERSETUP_TEXCACHE, NULL, 0x2 ); static MenuOption_t MEO_RENDERERSETUP_TEXCACHE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_RENDERERSETUP_TEXCACHE, &glusetexcache ); static MenuEntry_t ME_RENDERERSETUP_TEXCACHE = MAKE_MENUENTRY( "On disk texture cache", &MF_BluefontRed, &MEF_SmallOptions, &MEO_RENDERERSETUP_TEXCACHE, Option ); +#ifndef EDUKE32_GLES static MenuOption_t MEO_RENDERERSETUP_DETAILTEX = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NoYes, &r_detailmapping ); static MenuEntry_t ME_RENDERERSETUP_DETAILTEX = MAKE_MENUENTRY( "Detail textures:", &MF_BluefontRed, &MEF_SmallOptions, &MEO_RENDERERSETUP_DETAILTEX, Option ); +#endif static MenuOption_t MEO_RENDERERSETUP_MODELS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NoYes, &usemodels ); static MenuEntry_t ME_RENDERERSETUP_MODELS = MAKE_MENUENTRY( "Models:", &MF_BluefontRed, &MEF_SmallOptions, &MEO_RENDERERSETUP_MODELS, Option ); #endif @@ -833,8 +835,10 @@ static MenuEntry_t *MEL_RENDERERSETUP[] = { &ME_RENDERERSETUP_HIGHTILE, &ME_RENDERERSETUP_TEXQUALITY, &ME_RENDERERSETUP_PRECACHE, +#ifndef EDUKE32_GLES &ME_RENDERERSETUP_TEXCACHE, &ME_RENDERERSETUP_DETAILTEX, +#endif &ME_Space4, &ME_RENDERERSETUP_MODELS, }; @@ -1534,8 +1538,10 @@ static void M_PreMenu(MenuID_t cm) case MENU_RENDERERSETUP: MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_TEXQUALITY, !usehightile); MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_PRECACHE, !usehightile); +#ifndef EDUKE32_GLES MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_TEXCACHE, !(glusetexcompr && usehightile)); MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_DETAILTEX, !usehightile); +#endif break; #endif diff --git a/polymer/eduke32/source/osdfuncs.c b/polymer/eduke32/source/osdfuncs.c index abfb52360..24eadf5eb 100644 --- a/polymer/eduke32/source/osdfuncs.c +++ b/polymer/eduke32/source/osdfuncs.c @@ -19,9 +19,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ //------------------------------------------------------------------------- - -#include #include "compat.h" +#include #include "duke3d.h" #include "build.h" #include "namesdyn.h" @@ -127,7 +126,7 @@ void GAME_onshowosd(int32_t shown) { G_UpdateScreenArea(); - AppGrabMouse((!shown) | 2); + AppGrabMouse((!shown) + 2); osdshown = shown; @@ -144,17 +143,18 @@ void GAME_clearbackground(int32_t numcols, int32_t numrows) if (getrendermode() >= REND_POLYMOST && qsetmode==200) { const int32_t i8n8 = OSD_SCALE(8*numrows); - bglPushAttrib(GL_FOG_BIT); +// bglPushAttrib(GL_FOG_BIT); bglDisable(GL_FOG); setpolymost2dview(); bglColor4f(0.f, 0.f, 0.f, 0.67f); bglEnable(GL_BLEND); bglRecti(0, 0, xdim, i8n8+8); - bglColor3f(0.f, 0.f, 0.f); + bglColor4f(0.f, 0.f, 0.f, 1.f); bglRecti(0, i8n8+4, xdim, i8n8+8); - - bglPopAttrib(); + if (!nofog) + bglEnable(GL_FOG); +// bglPopAttrib(); return; } diff --git a/polymer/eduke32/source/premap.c b/polymer/eduke32/source/premap.c index d2b14f590..9a14ca499 100644 --- a/polymer/eduke32/source/premap.c +++ b/polymer/eduke32/source/premap.c @@ -446,9 +446,7 @@ void G_CacheMapData(void) } #ifdef EDUKE32_TOUCH_DEVICES - gltexinvalidatetype(INVALIDATE_ALL); -#else - gltexinvalidatetype(INVALIDATE_ART); + polymost_glreset(); #endif starttime = getticks(); @@ -517,10 +515,12 @@ void G_CacheMapData(void) polymost_precache(i,k,type); } +#ifndef EDUKE32_GLES if (r_detailmapping && !KB_KeyPressed(sc_Space)) polymost_precache(i,DETAILPAL,type); if (r_glowmapping && !KB_KeyPressed(sc_Space)) polymost_precache(i,GLOWPAL,type); +#endif #ifdef POLYMER if (getrendermode() == REND_POLYMER) { diff --git a/polymer/eduke32/source/sdlmusic.c b/polymer/eduke32/source/sdlmusic.c index 6afb1ebd5..74e3165be 100644 --- a/polymer/eduke32/source/sdlmusic.c +++ b/polymer/eduke32/source/sdlmusic.c @@ -28,14 +28,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #define _NEED_SDLMIXER 1 +#include "compat.h" + #include #include -#if defined __APPLE__ && defined __BIG_ENDIAN__ -// is* hacks for ppc... -# include "compat.h" -#endif - #include "duke3d.h" #include "cache1d.h"