mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-26 03:30:46 +00:00
- this is the state I want to build.
This commit is contained in:
parent
21217585c9
commit
aecdd9b4c5
7 changed files with 183 additions and 7387 deletions
|
@ -5,7 +5,7 @@
|
||||||
<PropertyGroup />
|
<PropertyGroup />
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;RENDERTYPESDL=1;MIXERTYPEWIN=1;SDL_USEFOLDER;SDL_TARGET=2;USE_OPENGL=1;POLYMER=1;STARTUP_WINDOW;USE_LIBVPX;HAVE_VORBIS;HAVE_XMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;RENDERTYPESDL=1;MIXERTYPEWIN=1;SDL_USEFOLDER;SDL_TARGET=2;USE_OPENGL=1;STARTUP_WINDOW;USE_LIBVPX;HAVE_VORBIS;HAVE_XMP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>./include;./include/vpx/;./include/sdl2/;../../source/build/include;../../source/mact/include;../../source/audiolib/include;../../source/enet/include;../../source/glad/include;../../source/libxmp-lite/include;../../source/libxmp-lite/include/libxmp-lite</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./include;./include/vpx/;./include/sdl2/;../../source/build/include;../../source/mact/include;../../source/audiolib/include;../../source/enet/include;../../source/glad/include;../../source/libxmp-lite/include;../../source/libxmp-lite/include/libxmp-lite</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4244;4018;4267</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4244;4018;4267</DisableSpecificWarnings>
|
||||||
<AdditionalOptions>/J %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/J %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
|
|
@ -902,7 +902,7 @@ int32_t mdloadskin(md2model_t *m, int32_t number, int32_t pal, int32_t surf)
|
||||||
if (pal < (MAXPALOOKUPS - RESERVEDPALS))
|
if (pal < (MAXPALOOKUPS - RESERVEDPALS))
|
||||||
m->usesalpha = hasalpha;
|
m->usesalpha = hasalpha;
|
||||||
if ((doalloc&3)==1)
|
if ((doalloc&3)==1)
|
||||||
glGenTextures(1, texidx);
|
GetTextureHandle(texidx);
|
||||||
|
|
||||||
glBindTexture(GL_TEXTURE_2D, *texidx);
|
glBindTexture(GL_TEXTURE_2D, *texidx);
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1763,14 +1763,26 @@ void videoShowFrame(int32_t w)
|
||||||
glsurface_blitBuffer();
|
glsurface_blitBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t lastSwapTime = 0;
|
||||||
|
#ifdef TIMING
|
||||||
|
cycle_t clock;
|
||||||
|
clock.Reset();
|
||||||
|
clock.Clock();
|
||||||
|
#endif
|
||||||
|
glFinish();
|
||||||
|
#ifdef TIMING
|
||||||
|
clock.Unclock();
|
||||||
|
OSD_Printf("glfinish time: %2.3f\n", clock.TimeMS());
|
||||||
|
#endif
|
||||||
SDL_GL_SwapWindow(sdl_window);
|
SDL_GL_SwapWindow(sdl_window);
|
||||||
|
/*
|
||||||
if (vsync)
|
if (vsync)
|
||||||
{
|
{
|
||||||
static uint32_t lastSwapTime = 0;
|
|
||||||
// busy loop until we're ready to update again
|
// busy loop until we're ready to update again
|
||||||
while (SDL_GetTicks()-lastSwapTime < currentVBlankInterval) {}
|
while (SDL_GetTicks()-lastSwapTime < currentVBlankInterval) {}
|
||||||
lastSwapTime = SDL_GetTicks();
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
lastSwapTime = SDL_GetTicks();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -76,7 +76,17 @@ static pthtyp *texcache_tryart(int32_t const dapicnum, int32_t const dapalnum, i
|
||||||
|
|
||||||
pth = (pthtyp *)Xcalloc(1,sizeof(pthtyp));
|
pth = (pthtyp *)Xcalloc(1,sizeof(pthtyp));
|
||||||
|
|
||||||
|
#ifdef TIMING
|
||||||
|
cycle_t clock;
|
||||||
|
clock.Reset();
|
||||||
|
clock.Clock();
|
||||||
|
#endif
|
||||||
gloadtile_art(dapicnum, searchpalnum, tintpalnum, dashade, dameth, pth, 1);
|
gloadtile_art(dapicnum, searchpalnum, tintpalnum, dashade, dameth, pth, 1);
|
||||||
|
//thl.AddToCache(dapicnum, dapalnum, dameth);
|
||||||
|
#ifdef TIMING
|
||||||
|
clock.Unclock();
|
||||||
|
OSD_Printf("Loaded texture %d, palnum %d, meth %d -> %2.3f\n", dapicnum, dapalnum, dameth, clock.TimeMS());
|
||||||
|
#endif
|
||||||
|
|
||||||
pth->palnum = dapalnum;
|
pth->palnum = dapalnum;
|
||||||
pth->next = texcache.list[j];
|
pth->next = texcache.list[j];
|
||||||
|
@ -181,9 +191,16 @@ pthtyp *texcache_fetch(int32_t dapicnum, int32_t dapalnum, int32_t dashade, int3
|
||||||
if (dapalnum == DETAILPAL && texcache_fetchmulti(pth, si, dapicnum, dameth))
|
if (dapalnum == DETAILPAL && texcache_fetchmulti(pth, si, dapicnum, dameth))
|
||||||
return pth;
|
return pth;
|
||||||
|
|
||||||
int32_t tilestat =
|
#ifdef TIMING
|
||||||
gloadtile_hi(dapicnum, dapalnum, drawingskybox, si, dameth, pth, 1, (checktintpal > 0) ? 0 : tintflags);
|
cycle_t clock;
|
||||||
|
clock.Reset();
|
||||||
|
clock.Clock();
|
||||||
|
#endif
|
||||||
|
int32_t tilestat = gloadtile_hi(dapicnum, dapalnum, drawingskybox, si, dameth, pth, 1, (checktintpal > 0) ? 0 : tintflags);
|
||||||
|
#ifdef TIMING
|
||||||
|
clock.Unclock();
|
||||||
|
OSD_Printf("Loaded texture %d, palnum %d, meth %d -> %2.3f\n", dapicnum, dapalnum, dameth, clock.TimeMS());
|
||||||
|
#endif
|
||||||
if (!tilestat)
|
if (!tilestat)
|
||||||
{
|
{
|
||||||
pth->next = texcache.list[j];
|
pth->next = texcache.list[j];
|
||||||
|
|
|
@ -253,10 +253,11 @@ void win_close(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Keyboard layout switching
|
// Keyboard layout switching (disable because this is rude.)
|
||||||
|
|
||||||
static void switchlayout(char const * layout)
|
static void switchlayout(char const * layout)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
char layoutname[KL_NAMELENGTH];
|
char layoutname[KL_NAMELENGTH];
|
||||||
|
|
||||||
GetKeyboardLayoutName(layoutname);
|
GetKeyboardLayoutName(layoutname);
|
||||||
|
@ -266,17 +267,19 @@ static void switchlayout(char const * layout)
|
||||||
|
|
||||||
initprintf("Switching keyboard layout from %s to %s\n", layoutname, layout);
|
initprintf("Switching keyboard layout from %s to %s\n", layoutname, layout);
|
||||||
LoadKeyboardLayout(layout, KLF_ACTIVATE|KLF_SETFORPROCESS|KLF_SUBSTITUTE_OK);
|
LoadKeyboardLayout(layout, KLF_ACTIVATE|KLF_SETFORPROCESS|KLF_SUBSTITUTE_OK);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static char OriginalLayoutName[KL_NAMELENGTH];
|
static char OriginalLayoutName[KL_NAMELENGTH];
|
||||||
|
|
||||||
void Win_GetOriginalLayoutName(void)
|
void Win_GetOriginalLayoutName(void)
|
||||||
{
|
{
|
||||||
GetKeyboardLayoutName(OriginalLayoutName);
|
//GetKeyboardLayoutName(OriginalLayoutName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Win_SetKeyboardLayoutUS(int const toggle)
|
void Win_SetKeyboardLayoutUS(int const toggle)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
static int currentstate;
|
static int currentstate;
|
||||||
|
|
||||||
if (toggle != currentstate)
|
if (toggle != currentstate)
|
||||||
|
@ -293,6 +296,7 @@ void Win_SetKeyboardLayoutUS(int const toggle)
|
||||||
currentstate = toggle;
|
currentstate = toggle;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -411,6 +415,78 @@ int32_t win_buildargs(char **argvbuf)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
// CalculateCPUSpeed
|
||||||
|
//
|
||||||
|
// Make a decent guess at how much time elapses between TSC steps. This can
|
||||||
|
// vary over runtime depending on power management settings, so should not
|
||||||
|
// be used anywhere that truely accurate timing actually matters.
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
double PerfToSec, PerfToMillisec;
|
||||||
|
#include "stats.h"
|
||||||
|
|
||||||
|
static void CalculateCPUSpeed()
|
||||||
|
{
|
||||||
|
LARGE_INTEGER freq;
|
||||||
|
|
||||||
|
QueryPerformanceFrequency(&freq);
|
||||||
|
|
||||||
|
if (freq.QuadPart != 0)
|
||||||
|
{
|
||||||
|
LARGE_INTEGER count1, count2;
|
||||||
|
cycle_t ClockCalibration;
|
||||||
|
DWORD min_diff;
|
||||||
|
|
||||||
|
ClockCalibration.Reset();
|
||||||
|
|
||||||
|
// Count cycles for at least 55 milliseconds.
|
||||||
|
// The performance counter may be very low resolution compared to CPU
|
||||||
|
// speeds today, so the longer we count, the more accurate our estimate.
|
||||||
|
// On the other hand, we don't want to count too long, because we don't
|
||||||
|
// want the user to notice us spend time here, since most users will
|
||||||
|
// probably never use the performance statistics.
|
||||||
|
min_diff = freq.LowPart * 11 / 200;
|
||||||
|
|
||||||
|
// Minimize the chance of task switching during the testing by going very
|
||||||
|
// high priority. This is another reason to avoid timing for too long.
|
||||||
|
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
|
||||||
|
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
|
||||||
|
|
||||||
|
// Make sure we start timing on a counter boundary.
|
||||||
|
QueryPerformanceCounter(&count1);
|
||||||
|
do
|
||||||
|
{
|
||||||
|
QueryPerformanceCounter(&count2);
|
||||||
|
} while (count1.QuadPart == count2.QuadPart);
|
||||||
|
|
||||||
|
// Do the timing loop.
|
||||||
|
ClockCalibration.Clock();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
QueryPerformanceCounter(&count1);
|
||||||
|
} while ((count1.QuadPart - count2.QuadPart) < min_diff);
|
||||||
|
ClockCalibration.Unclock();
|
||||||
|
|
||||||
|
SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS);
|
||||||
|
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_NORMAL);
|
||||||
|
|
||||||
|
PerfToSec = double(count1.QuadPart - count2.QuadPart) / (double(ClockCalibration.GetRawCounter()) * freq.QuadPart);
|
||||||
|
PerfToMillisec = PerfToSec * 1000.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Initer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Initer() { CalculateCPUSpeed(); }
|
||||||
|
};
|
||||||
|
|
||||||
|
static Initer initer;
|
||||||
|
|
||||||
|
|
||||||
// Workaround for a bug in mingwrt-4.0.0 and up where a function named main() in misc/src/libcrt/gdtoa/qnan.c takes precedence over the proper one in src/libcrt/crt/main.c.
|
// Workaround for a bug in mingwrt-4.0.0 and up where a function named main() in misc/src/libcrt/gdtoa/qnan.c takes precedence over the proper one in src/libcrt/crt/main.c.
|
||||||
#if (defined __MINGW32__ && EDUKE32_GCC_PREREQ(4,8)) || EDUKE32_CLANG_PREREQ(3,4)
|
#if (defined __MINGW32__ && EDUKE32_GCC_PREREQ(4,8)) || EDUKE32_CLANG_PREREQ(3,4)
|
||||||
# undef main
|
# undef main
|
||||||
|
|
Loading…
Reference in a new issue