mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-16 01:11:44 +00:00
RENDERTYPE=SDL on Windows, part 2.
This introduces winbits.[ch] in the engine, containing layer-independent code migrated from winlayer, including nedmalloc, ebacktrace1, OS version detection, and high-resolution profiling timers. sdlayer has been expanded to include the code from winbits under _WIN32. All uses of RENDERTYPEWIN in the source have been examined and changed to _WIN32 (or removed) where the block in question is layer-independent. git-svn-id: https://svn.eduke32.com/eduke32@3221 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
9a75f0b88c
commit
5e0ffb93b3
21 changed files with 421 additions and 274 deletions
|
@ -121,6 +121,7 @@ endif
|
||||||
ifeq ($(PLATFORM),WINDOWS)
|
ifeq ($(PLATFORM),WINDOWS)
|
||||||
OURCOMMONFLAGS+= -DUNDERSCORES # -I$(ENETROOT)/include
|
OURCOMMONFLAGS+= -DUNDERSCORES # -I$(ENETROOT)/include
|
||||||
OURASFLAGS+= -DUNDERSCORES -f win32
|
OURASFLAGS+= -DUNDERSCORES -f win32
|
||||||
|
ENGINEOBJS+= $(OBJ)/winbits.$o
|
||||||
EDITOROBJS+= $(OBJ)/startwin.editor.$o
|
EDITOROBJS+= $(OBJ)/startwin.editor.$o
|
||||||
endif
|
endif
|
||||||
ifeq ($(PLATFORM),BEOS)
|
ifeq ($(PLATFORM),BEOS)
|
||||||
|
|
|
@ -24,12 +24,13 @@ $(OBJ)/osd.$o: $(SRC)/osd.c $(INC)/build.h $(INC)/osd.h $(INC)/compat.h $(INC)/b
|
||||||
$(OBJ)/pragmas.$o: $(SRC)/pragmas.c $(INC)/compat.h
|
$(OBJ)/pragmas.$o: $(SRC)/pragmas.c $(INC)/compat.h
|
||||||
$(OBJ)/scriptfile.$o: $(SRC)/scriptfile.c $(INC)/scriptfile.h $(INC)/cache1d.h $(INC)/compat.h
|
$(OBJ)/scriptfile.$o: $(SRC)/scriptfile.c $(INC)/scriptfile.h $(INC)/cache1d.h $(INC)/compat.h
|
||||||
$(OBJ)/sdlayer.$o: $(SRC)/sdlayer.c $(INC)/compat.h $(INC)/sdlayer.h $(INC)/baselayer.h $(INC)/cache1d.h $(INC)/pragmas.h $(INC)/a.h $(INC)/build.h $(INC)/osd.h $(INC)/glbuild.h
|
$(OBJ)/sdlayer.$o: $(SRC)/sdlayer.c $(INC)/compat.h $(INC)/sdlayer.h $(INC)/baselayer.h $(INC)/cache1d.h $(INC)/pragmas.h $(INC)/a.h $(INC)/build.h $(INC)/osd.h $(INC)/glbuild.h
|
||||||
$(OBJ)/winlayer.$o: $(SRC)/winlayer.c $(INC)/compat.h $(INC)/winlayer.h $(INC)/baselayer.h $(INC)/pragmas.h $(INC)/build.h $(INC)/a.h $(INC)/osd.h $(INC)/dxdidf.h $(INC)/glbuild.h $(INC)/rawinput.h
|
$(OBJ)/winlayer.$o: $(SRC)/winlayer.c $(INC)/compat.h $(INC)/winlayer.h $(INC)/baselayer.h $(INC)/pragmas.h $(INC)/build.h $(INC)/a.h $(INC)/osd.h $(INC)/dxdidf.h $(INC)/glbuild.h $(INC)/rawinput.h $(INC)/winbits.h
|
||||||
$(OBJ)/gtkbits.$o: $(SRC)/gtkbits.c $(INC)/baselayer.h $(INC)/build.h $(INC)/dynamicgtk.h
|
$(OBJ)/gtkbits.$o: $(SRC)/gtkbits.c $(INC)/baselayer.h $(INC)/build.h $(INC)/dynamicgtk.h
|
||||||
$(OBJ)/dynamicgtk.$o: $(SRC)/dynamicgtk.c $(INC)/dynamicgtk.h
|
$(OBJ)/dynamicgtk.$o: $(SRC)/dynamicgtk.c $(INC)/dynamicgtk.h
|
||||||
$(OBJ)/polymer.$o: $(SRC)/polymer.c $(INC)/polymer.h $(INC)/compat.h $(INC)/build.h $(INC)/glbuild.h $(INC)/osd.h $(INC)/pragmas.h $(INC)/mdsprite.h $(INC)/polymost.h
|
$(OBJ)/polymer.$o: $(SRC)/polymer.c $(INC)/polymer.h $(INC)/compat.h $(INC)/build.h $(INC)/glbuild.h $(INC)/osd.h $(INC)/pragmas.h $(INC)/mdsprite.h $(INC)/polymost.h
|
||||||
$(OBJ)/mutex.$o: $(SRC)/mutex.c $(INC)/mutex.h
|
$(OBJ)/mutex.$o: $(SRC)/mutex.c $(INC)/mutex.h
|
||||||
$(OBJ)/rawinput.$o: $(SRC)/rawinput.c $(INC)/rawinput.h
|
$(OBJ)/rawinput.$o: $(SRC)/rawinput.c $(INC)/rawinput.h
|
||||||
|
$(OBJ)/winbits.$o: $(SRC)/winbits.c $(INC)/winbits.h
|
||||||
|
|
||||||
$(OBJ)/lunatic.$o: $(SRC)/lunatic.c $(INC)/lunatic.h $(INC)/cache1d.h $(INC)/osd.h
|
$(OBJ)/lunatic.$o: $(SRC)/lunatic.c $(INC)/lunatic.h $(INC)/cache1d.h $(INC)/osd.h
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,8 @@ ENGINEOBJS= \
|
||||||
$(OBJ)\winlayer.$o \
|
$(OBJ)\winlayer.$o \
|
||||||
$(OBJ)\polymer.$o \
|
$(OBJ)\polymer.$o \
|
||||||
$(OBJ)\mutex.$o \
|
$(OBJ)\mutex.$o \
|
||||||
$(OBJ)\rawinput.$o
|
$(OBJ)\rawinput.$o \
|
||||||
|
$(OBJ)\winbits.$o
|
||||||
|
|
||||||
EDITOROBJS=$(OBJ)\build.$o \
|
EDITOROBJS=$(OBJ)\build.$o \
|
||||||
$(OBJ)\startwin.editor.$o \
|
$(OBJ)\startwin.editor.$o \
|
||||||
|
|
|
@ -21,6 +21,8 @@ extern char quitevent, appactive;
|
||||||
|
|
||||||
extern int32_t vsync;
|
extern int32_t vsync;
|
||||||
|
|
||||||
|
extern void app_crashhandler(void);
|
||||||
|
|
||||||
// NOTE: these are implemented in game-land so they may be overridden in game specific ways
|
// NOTE: these are implemented in game-land so they may be overridden in game specific ways
|
||||||
extern int32_t startwin_open(void);
|
extern int32_t startwin_open(void);
|
||||||
extern int32_t startwin_close(void);
|
extern int32_t startwin_close(void);
|
||||||
|
|
6
polymer/eduke32/build/include/renderlayer.h
Normal file
6
polymer/eduke32/build/include/renderlayer.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
#ifdef RENDERTYPEWIN
|
||||||
|
# include "winlayer.h"
|
||||||
|
#else
|
||||||
|
# include "sdlayer.h"
|
||||||
|
#endif
|
28
polymer/eduke32/build/include/winbits.h
Normal file
28
polymer/eduke32/build/include/winbits.h
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
// Windows layer-independent code
|
||||||
|
|
||||||
|
#include <compat.h>
|
||||||
|
|
||||||
|
#define WindowClass "buildapp"
|
||||||
|
|
||||||
|
extern int32_t backgroundidle; // set to 1 to tell winlayer to go to idle priority when inactive
|
||||||
|
|
||||||
|
extern int64_t win_timerfreq;
|
||||||
|
|
||||||
|
extern char silentvideomodeswitch;
|
||||||
|
|
||||||
|
extern BOOL CheckWinVersion(void);
|
||||||
|
extern void win_allowtaskswitching(int32_t onf);
|
||||||
|
extern int32_t win_checkinstance(void);
|
||||||
|
|
||||||
|
extern int32_t win_inittimer(void);
|
||||||
|
extern uint64_t win_gethiticks(void);
|
||||||
|
|
||||||
|
extern void win_open(void);
|
||||||
|
extern void win_init(void);
|
||||||
|
extern void win_setvideomode(int32_t c);
|
||||||
|
extern void win_uninit(void);
|
||||||
|
extern void win_close(void);
|
||||||
|
|
||||||
|
extern void ShowErrorBox(const char *m);
|
||||||
|
|
||||||
|
extern LPTSTR GetWindowsErrorMsg(DWORD code);
|
|
@ -1,11 +1,9 @@
|
||||||
// Windows DIB/DirectDraw interface layer
|
// Windows DIB/DirectDraw interface layer for the Build Engine
|
||||||
// for the Build Engine
|
// Originally by Jonathon Fowler (jf@jonof.id.au)
|
||||||
// by Jonathon Fowler (jf@jonof.id.au)
|
|
||||||
|
|
||||||
#ifndef __build_interface_layer__
|
#ifndef __build_interface_layer__
|
||||||
#define __build_interface_layer__ WIN
|
#define __build_interface_layer__ WIN
|
||||||
|
|
||||||
extern int32_t backgroundidle; // set to 1 to tell winlayer to go to idle priority when inactive
|
|
||||||
extern uint32_t maxrefreshfreq;
|
extern uint32_t maxrefreshfreq;
|
||||||
|
|
||||||
extern int32_t glusecds;
|
extern int32_t glusecds;
|
||||||
|
@ -15,9 +13,6 @@ extern char di_disabled;
|
||||||
int32_t win_gethwnd(void);
|
int32_t win_gethwnd(void);
|
||||||
int32_t win_gethinstance(void);
|
int32_t win_gethinstance(void);
|
||||||
|
|
||||||
void win_allowtaskswitching(int32_t onf);
|
|
||||||
int32_t win_checkinstance(void);
|
|
||||||
|
|
||||||
extern void idle_waitevent_timeout(uint32_t timeout);
|
extern void idle_waitevent_timeout(uint32_t timeout);
|
||||||
|
|
||||||
static inline void idle_waitevent(void)
|
static inline void idle_waitevent(void)
|
||||||
|
|
|
@ -3,9 +3,7 @@
|
||||||
#include "build.h"
|
#include "build.h"
|
||||||
#include "baselayer.h"
|
#include "baselayer.h"
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
#include "renderlayer.h"
|
||||||
#include "winlayer.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "polymost.h"
|
#include "polymost.h"
|
||||||
|
|
||||||
|
|
|
@ -14,12 +14,13 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#include "baselayer.h"
|
#include "baselayer.h"
|
||||||
#ifdef RENDERTYPEWIN
|
#include "renderlayer.h"
|
||||||
#include "winlayer.h"
|
|
||||||
#else
|
#ifdef _WIN32
|
||||||
#include "sdlayer.h"
|
# include "winbits.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#include "m32script.h"
|
#include "m32script.h"
|
||||||
|
|
||||||
#define TIMERINTSPERSECOND 120
|
#define TIMERINTSPERSECOND 120
|
||||||
|
@ -493,7 +494,7 @@ void M32_DrawRoomsAndMasks(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef STARTUP_SETUP_WINDOW
|
#undef STARTUP_SETUP_WINDOW
|
||||||
#if defined RENDERTYPEWIN || (defined RENDERTYPESDL && ((defined __APPLE__ && defined OSX_STARTUPWINDOW) || defined HAVE_GTK2))
|
#if defined _WIN32 || (defined RENDERTYPESDL && ((defined __APPLE__ && defined OSX_STARTUPWINDOW) || defined HAVE_GTK2))
|
||||||
# define STARTUP_SETUP_WINDOW
|
# define STARTUP_SETUP_WINDOW
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -520,7 +521,7 @@ int32_t app_main(int32_t argc, const char **argv)
|
||||||
|
|
||||||
if ((i = ExtPreInit(argc,argv)) < 0) return -1;
|
if ((i = ExtPreInit(argc,argv)) < 0) return -1;
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
#ifdef _WIN32
|
||||||
backgroundidle = 1;
|
backgroundidle = 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -6,10 +6,8 @@
|
||||||
#include "editor.h"
|
#include "editor.h"
|
||||||
#include "osd.h"
|
#include "osd.h"
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
|
||||||
#include "winlayer.h"
|
|
||||||
#endif
|
|
||||||
#include "baselayer.h"
|
#include "baselayer.h"
|
||||||
|
#include "renderlayer.h"
|
||||||
|
|
||||||
static int32_t vesares[13][2] = {{320,200},{360,200},{320,240},{360,240},{320,400},
|
static int32_t vesares[13][2] = {{320,200},{360,200},{320,240},{360,240},{320,400},
|
||||||
{360,400},{640,350},{640,400},{640,480},{800,600},
|
{360,400},{640,350},{640,400},{640,480},{800,600},
|
||||||
|
|
|
@ -27,7 +27,11 @@
|
||||||
# include "glbuild.h"
|
# include "glbuild.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __APPLE__
|
#if defined _WIN32
|
||||||
|
# define WIN32_LEAN_AND_MEAN
|
||||||
|
# include <windows.h>
|
||||||
|
# include "winbits.h"
|
||||||
|
#elif defined __APPLE__
|
||||||
# include "osxbits.h"
|
# include "osxbits.h"
|
||||||
# include <mach/mach.h>
|
# include <mach/mach.h>
|
||||||
# include <mach/mach_time.h>
|
# include <mach/mach_time.h>
|
||||||
|
@ -211,6 +215,17 @@ int32_t main(int32_t argc, char *argv[])
|
||||||
|
|
||||||
buildkeytranslationtable();
|
buildkeytranslationtable();
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
if (!CheckWinVersion())
|
||||||
|
{
|
||||||
|
MessageBox(0, "This application requires Windows XP or better to run.",
|
||||||
|
apptitle, MB_OK|MB_ICONSTOP);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
win_open();
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_GTK2
|
#ifdef HAVE_GTK2
|
||||||
gtkbuild_init(&argc, &argv);
|
gtkbuild_init(&argc, &argv);
|
||||||
#endif
|
#endif
|
||||||
|
@ -250,6 +265,10 @@ int32_t main(int32_t argc, char *argv[])
|
||||||
#ifdef HAVE_GTK2
|
#ifdef HAVE_GTK2
|
||||||
gtkbuild_exit(r);
|
gtkbuild_exit(r);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef _WIN32
|
||||||
|
win_close();
|
||||||
|
#endif
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -291,6 +310,7 @@ static void sighandler(int signum)
|
||||||
// usleep(15000000);
|
// usleep(15000000);
|
||||||
#endif
|
#endif
|
||||||
attach_debugger_here();
|
attach_debugger_here();
|
||||||
|
app_crashhandler();
|
||||||
uninitsystem();
|
uninitsystem();
|
||||||
exit(8);
|
exit(8);
|
||||||
}
|
}
|
||||||
|
@ -320,6 +340,10 @@ int32_t initsystem(void)
|
||||||
|
|
||||||
mutex_init(&m_initprintf);
|
mutex_init(&m_initprintf);
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
win_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
initprintf("Initializing SDL system interface "
|
initprintf("Initializing SDL system interface "
|
||||||
"(compiled against SDL version %d.%d.%d, found version %d.%d.%d)\n",
|
"(compiled against SDL version %d.%d.%d, found version %d.%d.%d)\n",
|
||||||
compiled.major, compiled.minor, compiled.patch,
|
compiled.major, compiled.minor, compiled.patch,
|
||||||
|
@ -438,6 +462,10 @@ void uninitsystem(void)
|
||||||
|
|
||||||
SDL_Quit();
|
SDL_Quit();
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
win_uninit();
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
unloadgldriver();
|
unloadgldriver();
|
||||||
#endif
|
#endif
|
||||||
|
@ -728,7 +756,7 @@ void grabmouse(char a)
|
||||||
{
|
{
|
||||||
if (a != mousegrab)
|
if (a != mousegrab)
|
||||||
{
|
{
|
||||||
#if !defined __ANDROID__ && (!defined DEBUGGINGAIDS || defined __APPLE__)
|
#if !defined __ANDROID__ && (!defined DEBUGGINGAIDS || defined _WIN32 || defined __APPLE__)
|
||||||
SDL_GrabMode g;
|
SDL_GrabMode g;
|
||||||
|
|
||||||
g = SDL_WM_GrabInput(a ? SDL_GRAB_ON : SDL_GRAB_OFF);
|
g = SDL_WM_GrabInput(a ? SDL_GRAB_ON : SDL_GRAB_OFF);
|
||||||
|
@ -802,6 +830,14 @@ int32_t inittimer(int32_t tickspersecond)
|
||||||
|
|
||||||
// initprintf("Initializing timer\n");
|
// initprintf("Initializing timer\n");
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
{
|
||||||
|
int32_t t = win_inittimer();
|
||||||
|
if (t < 0)
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
timerfreq = 1000;
|
timerfreq = 1000;
|
||||||
timerticspersec = tickspersecond;
|
timerticspersec = tickspersecond;
|
||||||
timerlastsample = SDL_GetTicks() * timerticspersec / timerfreq;
|
timerlastsample = SDL_GetTicks() * timerticspersec / timerfreq;
|
||||||
|
@ -822,6 +858,10 @@ void uninittimer(void)
|
||||||
|
|
||||||
timerfreq=0;
|
timerfreq=0;
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
win_timerfreq=0;
|
||||||
|
#endif
|
||||||
|
|
||||||
msperhitick = 0;
|
msperhitick = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -868,6 +908,8 @@ uint64_t gethiticks(void)
|
||||||
ticks *= 1000000000;
|
ticks *= 1000000000;
|
||||||
ticks += now.tv_nsec;
|
ticks += now.tv_nsec;
|
||||||
return (ticks);
|
return (ticks);
|
||||||
|
# elif defined _WIN32
|
||||||
|
return win_gethiticks();
|
||||||
# elif defined __APPLE__
|
# elif defined __APPLE__
|
||||||
return mach_absolute_time();
|
return mach_absolute_time();
|
||||||
# else
|
# else
|
||||||
|
@ -886,6 +928,8 @@ uint64_t gethitickspersec(void)
|
||||||
#if (SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION < 3) // SDL 1.2
|
#if (SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION < 3) // SDL 1.2
|
||||||
# if _POSIX_TIMERS>0 && defined _POSIX_MONOTONIC_CLOCK
|
# if _POSIX_TIMERS>0 && defined _POSIX_MONOTONIC_CLOCK
|
||||||
return 1000000000;
|
return 1000000000;
|
||||||
|
# elif defined _WIN32
|
||||||
|
return win_timerfreq;
|
||||||
# elif defined __APPLE__
|
# elif defined __APPLE__
|
||||||
static mach_timebase_info_data_t ti;
|
static mach_timebase_info_data_t ti;
|
||||||
if (ti.denom == 0)
|
if (ti.denom == 0)
|
||||||
|
@ -1255,6 +1299,10 @@ int32_t setvideomode(int32_t x, int32_t y, int32_t c, int32_t fs)
|
||||||
|
|
||||||
if (nogl) return -1;
|
if (nogl) return -1;
|
||||||
|
|
||||||
|
# ifdef _WIN32
|
||||||
|
win_setvideomode(c);
|
||||||
|
# endif
|
||||||
|
|
||||||
initprintf("Setting video mode %dx%d (%d-bpp %s)\n",
|
initprintf("Setting video mode %dx%d (%d-bpp %s)\n",
|
||||||
x,y,c, ((fs&1) ? "fullscreen" : "windowed"));
|
x,y,c, ((fs&1) ? "fullscreen" : "windowed"));
|
||||||
do
|
do
|
||||||
|
@ -1967,22 +2015,30 @@ int32_t handleevents(void)
|
||||||
{
|
{
|
||||||
case SDL_WINDOWEVENT_FOCUS_GAINED:
|
case SDL_WINDOWEVENT_FOCUS_GAINED:
|
||||||
appactive = 1;
|
appactive = 1;
|
||||||
# ifndef DEBUGGINGAIDS
|
# if !defined DEBUGGINGAIDS || defined _WIN32
|
||||||
if (mousegrab && moustat)
|
if (mousegrab && moustat)
|
||||||
{
|
{
|
||||||
SDL_WM_GrabInput(SDL_GRAB_ON);
|
SDL_WM_GrabInput(SDL_GRAB_ON);
|
||||||
SDL_ShowCursor(SDL_DISABLE);
|
SDL_ShowCursor(SDL_DISABLE);
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
|
# ifdef _WIN32
|
||||||
|
if (backgroundidle)
|
||||||
|
SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS);
|
||||||
# endif
|
# endif
|
||||||
break;
|
break;
|
||||||
case SDL_WINDOWEVENT_FOCUS_LOST:
|
case SDL_WINDOWEVENT_FOCUS_LOST:
|
||||||
appactive = 0;
|
appactive = 0;
|
||||||
# ifndef DEBUGGINGAIDS
|
# if !defined DEBUGGINGAIDS || defined _WIN32
|
||||||
if (mousegrab && moustat)
|
if (mousegrab && moustat)
|
||||||
{
|
{
|
||||||
SDL_WM_GrabInput(SDL_GRAB_OFF);
|
SDL_WM_GrabInput(SDL_GRAB_OFF);
|
||||||
SDL_ShowCursor(SDL_ENABLE);
|
SDL_ShowCursor(SDL_ENABLE);
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
|
# ifdef _WIN32
|
||||||
|
if (backgroundidle)
|
||||||
|
SetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS);
|
||||||
# endif
|
# endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -2058,7 +2114,7 @@ int32_t handleevents(void)
|
||||||
if (ev.active.state & SDL_APPINPUTFOCUS)
|
if (ev.active.state & SDL_APPINPUTFOCUS)
|
||||||
{
|
{
|
||||||
appactive = ev.active.gain;
|
appactive = ev.active.gain;
|
||||||
# ifndef DEBUGGINGAIDS
|
# if !defined DEBUGGINGAIDS || defined _WIN32
|
||||||
if (mousegrab && moustat)
|
if (mousegrab && moustat)
|
||||||
{
|
{
|
||||||
if (appactive)
|
if (appactive)
|
||||||
|
@ -2072,6 +2128,11 @@ int32_t handleevents(void)
|
||||||
SDL_ShowCursor(SDL_ENABLE);
|
SDL_ShowCursor(SDL_ENABLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
|
# ifdef _WIN32
|
||||||
|
if (backgroundidle)
|
||||||
|
SetPriorityClass(GetCurrentProcess(),
|
||||||
|
appactive ? NORMAL_PRIORITY_CLASS : IDLE_PRIORITY_CLASS);
|
||||||
# endif
|
# endif
|
||||||
rv=-1;
|
rv=-1;
|
||||||
}
|
}
|
||||||
|
|
247
polymer/eduke32/build/src/winbits.c
Normal file
247
polymer/eduke32/build/src/winbits.c
Normal file
|
@ -0,0 +1,247 @@
|
||||||
|
// Windows layer-independent code
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
#include "build.h"
|
||||||
|
#include "baselayer.h"
|
||||||
|
#include "winbits.h"
|
||||||
|
|
||||||
|
|
||||||
|
int32_t backgroundidle = 1;
|
||||||
|
|
||||||
|
int64_t win_timerfreq = 0;
|
||||||
|
|
||||||
|
char silentvideomodeswitch = 0;
|
||||||
|
|
||||||
|
static char taskswitching = 1;
|
||||||
|
|
||||||
|
static HANDLE instanceflag = NULL;
|
||||||
|
|
||||||
|
static OSVERSIONINFOEX osv;
|
||||||
|
|
||||||
|
static HMODULE nedhandle = NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CheckWinVersion() -- check to see what version of Windows we happen to be running under
|
||||||
|
//
|
||||||
|
BOOL CheckWinVersion(void)
|
||||||
|
{
|
||||||
|
ZeroMemory(&osv, sizeof(osv));
|
||||||
|
osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
|
||||||
|
|
||||||
|
// we don't like anything older than Windows XP
|
||||||
|
|
||||||
|
if (!GetVersionEx((LPOSVERSIONINFOA)&osv)) return FALSE;
|
||||||
|
|
||||||
|
if (osv.dwMajorVersion >= 6) return TRUE;
|
||||||
|
if (osv.dwMajorVersion == 5 && osv.dwMinorVersion >= 1) return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void win_printversion(void)
|
||||||
|
{
|
||||||
|
const char *ver = "";
|
||||||
|
|
||||||
|
switch (osv.dwPlatformId)
|
||||||
|
{
|
||||||
|
case VER_PLATFORM_WIN32_NT:
|
||||||
|
if (osv.dwMajorVersion == 5)
|
||||||
|
{
|
||||||
|
switch (osv.dwMinorVersion)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
ver = "XP";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
ver = osv.wProductType == VER_NT_WORKSTATION ? "XP x64" : "Server 2003";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (osv.dwMajorVersion == 6)
|
||||||
|
{
|
||||||
|
switch (osv.dwMinorVersion)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
ver = osv.wProductType == VER_NT_WORKSTATION ? "Vista" : "Server 2008";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
ver = osv.wProductType == VER_NT_WORKSTATION ? "7" : "Server 2008 R2";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
ver = osv.wProductType == VER_NT_WORKSTATION ? "8" : "Server 2012";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
initprintf("Windows %s %s (build %lu.%lu.%lu)\n", ver, osv.szCSDVersion,
|
||||||
|
osv.dwMajorVersion, osv.dwMinorVersion, osv.dwBuildNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// win_allowtaskswitching() -- captures/releases alt+tab hotkeys
|
||||||
|
//
|
||||||
|
void win_allowtaskswitching(int32_t onf)
|
||||||
|
{
|
||||||
|
if (onf == taskswitching) return;
|
||||||
|
|
||||||
|
if (onf)
|
||||||
|
{
|
||||||
|
UnregisterHotKey(0,0);
|
||||||
|
UnregisterHotKey(0,1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RegisterHotKey(0,0,MOD_ALT,VK_TAB);
|
||||||
|
RegisterHotKey(0,1,MOD_ALT|MOD_SHIFT,VK_TAB);
|
||||||
|
}
|
||||||
|
|
||||||
|
taskswitching = onf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// win_checkinstance() -- looks for another instance of a Build app
|
||||||
|
//
|
||||||
|
int32_t win_checkinstance(void)
|
||||||
|
{
|
||||||
|
if (!instanceflag) return 0;
|
||||||
|
return (WaitForSingleObject(instanceflag,0) == WAIT_TIMEOUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// high-resolution timers for profiling
|
||||||
|
//
|
||||||
|
int32_t win_inittimer(void)
|
||||||
|
{
|
||||||
|
int64_t t;
|
||||||
|
|
||||||
|
if (win_timerfreq) return 0; // already installed
|
||||||
|
|
||||||
|
// OpenWatcom seems to want us to query the value into a local variable
|
||||||
|
// instead of the global 'win_timerfreq' or else it gets pissed with an
|
||||||
|
// access violation
|
||||||
|
if (!QueryPerformanceFrequency((LARGE_INTEGER *)&t))
|
||||||
|
{
|
||||||
|
ShowErrorBox("Failed fetching timer frequency");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
win_timerfreq = t;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t win_gethiticks(void)
|
||||||
|
{
|
||||||
|
uint64_t i;
|
||||||
|
if (win_timerfreq == 0) return 0;
|
||||||
|
QueryPerformanceCounter((LARGE_INTEGER *)&i);
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void ToggleDesktopComposition(BOOL compEnable)
|
||||||
|
{
|
||||||
|
static HMODULE hDWMApiDLL = NULL;
|
||||||
|
static HRESULT(WINAPI *aDwmEnableComposition)(UINT);
|
||||||
|
|
||||||
|
if (!hDWMApiDLL && (hDWMApiDLL = LoadLibrary("DWMAPI.DLL")))
|
||||||
|
aDwmEnableComposition = (HRESULT(WINAPI *)(UINT))GetProcAddress(hDWMApiDLL, "DwmEnableComposition");
|
||||||
|
|
||||||
|
if (aDwmEnableComposition)
|
||||||
|
{
|
||||||
|
aDwmEnableComposition(compEnable);
|
||||||
|
if (!silentvideomodeswitch)
|
||||||
|
initprintf("%sabling desktop composition...\n", (compEnable) ? "En" : "Dis");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// win_open(), win_init(), win_setvideomode(), win_uninit(), win_close() -- shared code
|
||||||
|
//
|
||||||
|
void win_open(void)
|
||||||
|
{
|
||||||
|
#ifndef DEBUGGINGAIDS
|
||||||
|
if ((nedhandle = LoadLibrary("nedmalloc.dll")))
|
||||||
|
{
|
||||||
|
#ifdef __cplusplus
|
||||||
|
nedalloc::nedpool_t *(WINAPI *nedcreatepool)(size_t, int);
|
||||||
|
if ((nedcreatepool = (nedalloc::nedpool_t *(WINAPI *)(size_t, int))GetProcAddress(nedhandle, "nedcreatepool")))
|
||||||
|
#else
|
||||||
|
nedpool *(WINAPI *nedcreatepool)(size_t, int);
|
||||||
|
if ((nedcreatepool = (void *)GetProcAddress(nedhandle, "nedcreatepool")))
|
||||||
|
#endif
|
||||||
|
nedcreatepool(SYSTEM_POOL_SIZE, -1);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
LoadLibraryA("ebacktrace1.dll");
|
||||||
|
/*
|
||||||
|
wm_msgbox("boo","didn't load backtrace DLL (code %d)\n", (int)GetLastError());
|
||||||
|
else
|
||||||
|
wm_msgbox("yay","loaded backtrace DLL\n");
|
||||||
|
*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
instanceflag = CreateSemaphore(NULL, 1,1, WindowClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
void win_init(void)
|
||||||
|
{
|
||||||
|
win_printversion();
|
||||||
|
|
||||||
|
if (nedhandle)
|
||||||
|
initprintf("Initialized nedmalloc\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void win_setvideomode(int32_t c)
|
||||||
|
{
|
||||||
|
if (osv.dwMajorVersion >= 6)
|
||||||
|
ToggleDesktopComposition(c < 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
void win_uninit(void)
|
||||||
|
{
|
||||||
|
win_allowtaskswitching(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void win_close(void)
|
||||||
|
{
|
||||||
|
if (instanceflag) CloseHandle(instanceflag);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ShowErrorBox() -- shows an error message box
|
||||||
|
//
|
||||||
|
void ShowErrorBox(const char *m)
|
||||||
|
{
|
||||||
|
TCHAR msg[1024];
|
||||||
|
|
||||||
|
wsprintf(msg, "%s: %s", m, GetWindowsErrorMsg(GetLastError()));
|
||||||
|
MessageBox(0, msg, apptitle, MB_OK|MB_ICONSTOP);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// GetWindowsErrorMsg() -- gives a pointer to a static buffer containing the Windows error message
|
||||||
|
//
|
||||||
|
LPTSTR GetWindowsErrorMsg(DWORD code)
|
||||||
|
{
|
||||||
|
static TCHAR lpMsgBuf[1024];
|
||||||
|
|
||||||
|
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||||
|
NULL, code,
|
||||||
|
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||||
|
(LPTSTR)lpMsgBuf, 1024, NULL);
|
||||||
|
|
||||||
|
return lpMsgBuf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,8 @@
|
||||||
#endif
|
#endif
|
||||||
#include "mutex.h"
|
#include "mutex.h"
|
||||||
|
|
||||||
|
#include "winbits.h"
|
||||||
|
|
||||||
// undefine to restrict windowed resolutions to conventional sizes
|
// undefine to restrict windowed resolutions to conventional sizes
|
||||||
#define ANY_WINDOWED_SIZE
|
#define ANY_WINDOWED_SIZE
|
||||||
|
|
||||||
|
@ -79,17 +81,12 @@ int32_t _buildargc = 0;
|
||||||
const char **_buildargv = NULL;
|
const char **_buildargv = NULL;
|
||||||
static char *argvbuf = NULL;
|
static char *argvbuf = NULL;
|
||||||
extern int32_t app_main(int32_t argc, const char **argv);
|
extern int32_t app_main(int32_t argc, const char **argv);
|
||||||
extern void app_crashhandler(void);
|
|
||||||
|
|
||||||
// Windows crud
|
// Windows crud
|
||||||
static HINSTANCE hInstance = 0;
|
static HINSTANCE hInstance = 0;
|
||||||
static HWND hWindow = 0;
|
static HWND hWindow = 0;
|
||||||
#define WINDOW_STYLE (WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX)
|
#define WINDOW_STYLE (WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX)
|
||||||
#define WindowClass "buildapp"
|
|
||||||
static BOOL window_class_registered = FALSE;
|
static BOOL window_class_registered = FALSE;
|
||||||
static HANDLE instanceflag = NULL;
|
|
||||||
|
|
||||||
int32_t backgroundidle = 1;
|
|
||||||
|
|
||||||
static WORD sysgamma[3][256];
|
static WORD sysgamma[3][256];
|
||||||
extern int32_t curbrightness, gammabrightness;
|
extern int32_t curbrightness, gammabrightness;
|
||||||
|
@ -102,13 +99,10 @@ char nogl=0;
|
||||||
char forcegl=0;
|
char forcegl=0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static LPTSTR GetWindowsErrorMsg(DWORD code);
|
|
||||||
static const char *GetDDrawError(HRESULT code);
|
static const char *GetDDrawError(HRESULT code);
|
||||||
static const char *GetDInputError(HRESULT code);
|
static const char *GetDInputError(HRESULT code);
|
||||||
static void ShowErrorBox(const char *m);
|
|
||||||
static void ShowDDrawErrorBox(const char *m, HRESULT r);
|
static void ShowDDrawErrorBox(const char *m, HRESULT r);
|
||||||
static void ShowDInputErrorBox(const char *m, HRESULT r);
|
static void ShowDInputErrorBox(const char *m, HRESULT r);
|
||||||
static inline BOOL CheckWinVersion(void);
|
|
||||||
static LRESULT CALLBACK WndProcCallback(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
static LRESULT CALLBACK WndProcCallback(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||||
static BOOL InitDirectDraw(void);
|
static BOOL InitDirectDraw(void);
|
||||||
static void UninitDirectDraw(void);
|
static void UninitDirectDraw(void);
|
||||||
|
@ -154,7 +148,6 @@ char modechange=1;
|
||||||
char repaintneeded=0;
|
char repaintneeded=0;
|
||||||
char offscreenrendering=0;
|
char offscreenrendering=0;
|
||||||
char videomodereset = 0;
|
char videomodereset = 0;
|
||||||
char silentvideomodeswitch = 0;
|
|
||||||
|
|
||||||
// input and events
|
// input and events
|
||||||
char quitevent=0;
|
char quitevent=0;
|
||||||
|
@ -163,12 +156,6 @@ char realfs=0;
|
||||||
char regrabmouse=0;
|
char regrabmouse=0;
|
||||||
uint32_t mousewheel[2] = { 0,0 };
|
uint32_t mousewheel[2] = { 0,0 };
|
||||||
|
|
||||||
static char taskswitching=1;
|
|
||||||
|
|
||||||
static OSVERSIONINFOEX osv;
|
|
||||||
|
|
||||||
static HMODULE nedhandle = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
// DINPUT (JOYSTICK)
|
// DINPUT (JOYSTICK)
|
||||||
|
@ -225,37 +212,6 @@ int32_t win_gethinstance(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// win_allowtaskswitching() -- captures/releases alt+tab hotkeys
|
|
||||||
//
|
|
||||||
void win_allowtaskswitching(int32_t onf)
|
|
||||||
{
|
|
||||||
if (onf == taskswitching) return;
|
|
||||||
|
|
||||||
if (onf)
|
|
||||||
{
|
|
||||||
UnregisterHotKey(0,0);
|
|
||||||
UnregisterHotKey(0,1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
RegisterHotKey(0,0,MOD_ALT,VK_TAB);
|
|
||||||
RegisterHotKey(0,1,MOD_ALT|MOD_SHIFT,VK_TAB);
|
|
||||||
}
|
|
||||||
|
|
||||||
taskswitching = onf;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// win_checkinstance() -- looks for another instance of a Build app
|
|
||||||
//
|
|
||||||
int32_t win_checkinstance(void)
|
|
||||||
{
|
|
||||||
if (!instanceflag) return 0;
|
|
||||||
return (WaitForSingleObject(instanceflag,0) == WAIT_TIMEOUT);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// wm_msgbox/wm_ynbox() -- window-manager-provided message boxes
|
// wm_msgbox/wm_ynbox() -- window-manager-provided message boxes
|
||||||
|
@ -378,26 +334,7 @@ int32_t WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, in
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef DEBUGGINGAIDS
|
win_open();
|
||||||
if ((nedhandle = LoadLibrary("nedmalloc.dll")))
|
|
||||||
{
|
|
||||||
#ifdef __cplusplus
|
|
||||||
nedalloc::nedpool_t *(WINAPI *nedcreatepool)(size_t, int);
|
|
||||||
if ((nedcreatepool = (nedalloc::nedpool_t *(WINAPI *)(size_t, int))GetProcAddress(nedhandle, "nedcreatepool")))
|
|
||||||
#else
|
|
||||||
nedpool *(WINAPI *nedcreatepool)(size_t, int);
|
|
||||||
if ((nedcreatepool = (void *)GetProcAddress(nedhandle, "nedcreatepool")))
|
|
||||||
#endif
|
|
||||||
nedcreatepool(SYSTEM_POOL_SIZE, -1);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
LoadLibraryA("ebacktrace1.dll");
|
|
||||||
/*
|
|
||||||
wm_msgbox("boo","didn't load backtrace DLL (code %d)\n", (int)GetLastError());
|
|
||||||
else
|
|
||||||
wm_msgbox("yay","loaded backtrace DLL\n");
|
|
||||||
*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
hdc = GetDC(NULL);
|
hdc = GetDC(NULL);
|
||||||
r = GetDeviceCaps(hdc, BITSPIXEL);
|
r = GetDeviceCaps(hdc, BITSPIXEL);
|
||||||
|
@ -518,8 +455,6 @@ int32_t WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, in
|
||||||
|
|
||||||
// atexit(uninitsystem);
|
// atexit(uninitsystem);
|
||||||
|
|
||||||
instanceflag = CreateSemaphore(NULL, 1,1, WindowClass);
|
|
||||||
|
|
||||||
startwin_open();
|
startwin_open();
|
||||||
baselayer_init();
|
baselayer_init();
|
||||||
|
|
||||||
|
@ -530,7 +465,8 @@ int32_t WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, in
|
||||||
if (r) Sleep(3000);
|
if (r) Sleep(3000);
|
||||||
|
|
||||||
startwin_close();
|
startwin_close();
|
||||||
if (instanceflag) CloseHandle(instanceflag);
|
|
||||||
|
win_close();
|
||||||
|
|
||||||
if (argvbuf) Bfree(argvbuf);
|
if (argvbuf) Bfree(argvbuf);
|
||||||
|
|
||||||
|
@ -579,51 +515,6 @@ static int32_t set_windowpos(const osdfuncparm_t *parm)
|
||||||
// initsystem() -- init systems
|
// initsystem() -- init systems
|
||||||
//
|
//
|
||||||
|
|
||||||
static void win_printversion(void)
|
|
||||||
{
|
|
||||||
const char *ver = "";
|
|
||||||
|
|
||||||
switch (osv.dwPlatformId)
|
|
||||||
{
|
|
||||||
case VER_PLATFORM_WIN32_NT:
|
|
||||||
if (osv.dwMajorVersion == 5)
|
|
||||||
{
|
|
||||||
switch (osv.dwMinorVersion)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
ver = "XP";
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
ver = osv.wProductType == VER_NT_WORKSTATION ? "XP x64" : "Server 2003";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (osv.dwMajorVersion == 6)
|
|
||||||
{
|
|
||||||
switch (osv.dwMinorVersion)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
ver = osv.wProductType == VER_NT_WORKSTATION ? "Vista" : "Server 2008";
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
ver = osv.wProductType == VER_NT_WORKSTATION ? "7" : "Server 2008 R2";
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
ver = osv.wProductType == VER_NT_WORKSTATION ? "8" : "Server 2012";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
initprintf("Windows %s %s (build %lu.%lu.%lu)\n", ver, osv.szCSDVersion,
|
|
||||||
osv.dwMajorVersion, osv.dwMinorVersion, osv.dwBuildNumber);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// http://www.gamedev.net/topic/47021-how-to-determine-video-card-with-win32-api
|
// http://www.gamedev.net/topic/47021-how-to-determine-video-card-with-win32-api
|
||||||
static void determine_ATI(void)
|
static void determine_ATI(void)
|
||||||
{
|
{
|
||||||
|
@ -671,10 +562,7 @@ int32_t initsystem(void)
|
||||||
frameplace=0;
|
frameplace=0;
|
||||||
lockcount=0;
|
lockcount=0;
|
||||||
|
|
||||||
win_printversion();
|
win_init();
|
||||||
|
|
||||||
if (nedhandle)
|
|
||||||
initprintf("Initialized nedmalloc\n");
|
|
||||||
|
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
if (loadgldriver(getenv("BUILD_GLDRV")))
|
if (loadgldriver(getenv("BUILD_GLDRV")))
|
||||||
|
@ -726,7 +614,7 @@ void uninitsystem(void)
|
||||||
uninitinput();
|
uninitinput();
|
||||||
uninittimer();
|
uninittimer();
|
||||||
|
|
||||||
win_allowtaskswitching(1);
|
win_uninit();
|
||||||
|
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
unloadgldriver();
|
unloadgldriver();
|
||||||
|
@ -1546,7 +1434,6 @@ static const char *GetDInputError(HRESULT code)
|
||||||
// TIMER
|
// TIMER
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
|
|
||||||
static int64_t timerfreq=0;
|
|
||||||
static int32_t timerlastsample=0;
|
static int32_t timerlastsample=0;
|
||||||
int32_t timerticspersec=0;
|
int32_t timerticspersec=0;
|
||||||
static double msperhitick = 0;
|
static double msperhitick = 0;
|
||||||
|
@ -1575,22 +1462,17 @@ int32_t inittimer(int32_t tickspersecond)
|
||||||
{
|
{
|
||||||
int64_t t;
|
int64_t t;
|
||||||
|
|
||||||
if (timerfreq) return 0; // already installed
|
if (win_timerfreq) return 0; // already installed
|
||||||
|
|
||||||
// initprintf("Initializing timer\n");
|
// initprintf("Initializing timer\n");
|
||||||
|
|
||||||
// OpenWatcom seems to want us to query the value into a local variable
|
t = win_inittimer();
|
||||||
// instead of the global 'timerfreq' or else it gets pissed with an
|
if (t < 0)
|
||||||
// access violation
|
return t;
|
||||||
if (!QueryPerformanceFrequency((LARGE_INTEGER *)&t))
|
|
||||||
{
|
|
||||||
ShowErrorBox("Failed fetching timer frequency");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
timerfreq = t;
|
|
||||||
timerticspersec = tickspersecond;
|
timerticspersec = tickspersecond;
|
||||||
QueryPerformanceCounter((LARGE_INTEGER *)&t);
|
QueryPerformanceCounter((LARGE_INTEGER *)&t);
|
||||||
timerlastsample = (int32_t)(t*timerticspersec / timerfreq);
|
timerlastsample = (int32_t)(t*timerticspersec / win_timerfreq);
|
||||||
|
|
||||||
usertimercallback = NULL;
|
usertimercallback = NULL;
|
||||||
|
|
||||||
|
@ -1604,9 +1486,9 @@ int32_t inittimer(int32_t tickspersecond)
|
||||||
//
|
//
|
||||||
void uninittimer(void)
|
void uninittimer(void)
|
||||||
{
|
{
|
||||||
if (!timerfreq) return;
|
if (!win_timerfreq) return;
|
||||||
|
|
||||||
timerfreq=0;
|
win_timerfreq=0;
|
||||||
timerticspersec = 0;
|
timerticspersec = 0;
|
||||||
|
|
||||||
msperhitick = 0;
|
msperhitick = 0;
|
||||||
|
@ -1620,10 +1502,10 @@ inline void sampletimer(void)
|
||||||
int64_t i;
|
int64_t i;
|
||||||
int32_t n;
|
int32_t n;
|
||||||
|
|
||||||
if (!timerfreq) return;
|
if (!win_timerfreq) return;
|
||||||
|
|
||||||
QueryPerformanceCounter((LARGE_INTEGER *)&i);
|
QueryPerformanceCounter((LARGE_INTEGER *)&i);
|
||||||
n = (int32_t)((i*timerticspersec / timerfreq) - timerlastsample);
|
n = (int32_t)((i*timerticspersec / win_timerfreq) - timerlastsample);
|
||||||
|
|
||||||
if (n <= 0) return;
|
if (n <= 0) return;
|
||||||
|
|
||||||
|
@ -1640,23 +1522,20 @@ inline void sampletimer(void)
|
||||||
uint32_t getticks(void)
|
uint32_t getticks(void)
|
||||||
{
|
{
|
||||||
int64_t i;
|
int64_t i;
|
||||||
if (timerfreq == 0) return 0;
|
if (win_timerfreq == 0) return 0;
|
||||||
QueryPerformanceCounter((LARGE_INTEGER *)&i);
|
QueryPerformanceCounter((LARGE_INTEGER *)&i);
|
||||||
return (uint32_t)(i*longlong(1000)/timerfreq);
|
return (uint32_t)(i*longlong(1000)/win_timerfreq);
|
||||||
}
|
}
|
||||||
|
|
||||||
// high-resolution timers for profiling
|
// high-resolution timers for profiling
|
||||||
uint64_t gethiticks(void)
|
uint64_t gethiticks(void)
|
||||||
{
|
{
|
||||||
uint64_t i;
|
return win_gethiticks();
|
||||||
if (timerfreq == 0) return 0;
|
|
||||||
QueryPerformanceCounter((LARGE_INTEGER *)&i);
|
|
||||||
return i;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t gethitickspersec(void)
|
uint64_t gethitickspersec(void)
|
||||||
{
|
{
|
||||||
return timerfreq;
|
return win_timerfreq;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the time since an unspecified starting time in milliseconds.
|
// Returns the time since an unspecified starting time in milliseconds.
|
||||||
|
@ -1701,22 +1580,6 @@ static VOID *lpPixels = NULL;
|
||||||
static int32_t setgammaramp(WORD gt[3][256]);
|
static int32_t setgammaramp(WORD gt[3][256]);
|
||||||
static int32_t getgammaramp(WORD gt[3][256]);
|
static int32_t getgammaramp(WORD gt[3][256]);
|
||||||
|
|
||||||
static void ToggleDesktopComposition(BOOL compEnable)
|
|
||||||
{
|
|
||||||
static HMODULE hDWMApiDLL = NULL;
|
|
||||||
static HRESULT(WINAPI *aDwmEnableComposition)(UINT);
|
|
||||||
|
|
||||||
if (!hDWMApiDLL && (hDWMApiDLL = LoadLibrary("DWMAPI.DLL")))
|
|
||||||
aDwmEnableComposition = (HRESULT(WINAPI *)(UINT))GetProcAddress(hDWMApiDLL, "DwmEnableComposition");
|
|
||||||
|
|
||||||
if (aDwmEnableComposition)
|
|
||||||
{
|
|
||||||
aDwmEnableComposition(compEnable);
|
|
||||||
if (!silentvideomodeswitch)
|
|
||||||
initprintf("%sabling desktop composition...\n", (compEnable) ? "En" : "Dis");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// checkvideomode() -- makes sure the video mode passed is legal
|
// checkvideomode() -- makes sure the video mode passed is legal
|
||||||
//
|
//
|
||||||
|
@ -1814,8 +1677,7 @@ int32_t setvideomode(int32_t x, int32_t y, int32_t c, int32_t fs)
|
||||||
gammabrightness = 0;
|
gammabrightness = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (osv.dwMajorVersion >= 6)
|
win_setvideomode(c);
|
||||||
ToggleDesktopComposition(c < 16);
|
|
||||||
|
|
||||||
if (!silentvideomodeswitch)
|
if (!silentvideomodeswitch)
|
||||||
initprintf("Setting video mode %dx%d (%d-bit %s)\n",
|
initprintf("Setting video mode %dx%d (%d-bit %s)\n",
|
||||||
|
@ -3631,35 +3493,6 @@ static const char *GetDDrawError(HRESULT code)
|
||||||
// MOSTLY STATIC INTERNAL WINDOWS THINGS
|
// MOSTLY STATIC INTERNAL WINDOWS THINGS
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
|
|
||||||
//
|
|
||||||
// ShowErrorBox() -- shows an error message box
|
|
||||||
//
|
|
||||||
static void ShowErrorBox(const char *m)
|
|
||||||
{
|
|
||||||
TCHAR msg[1024];
|
|
||||||
|
|
||||||
wsprintf(msg, "%s: %s", m, GetWindowsErrorMsg(GetLastError()));
|
|
||||||
MessageBox(0, msg, apptitle, MB_OK|MB_ICONSTOP);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// CheckWinVersion() -- check to see what version of Windows we happen to be running under
|
|
||||||
//
|
|
||||||
static inline BOOL CheckWinVersion(void)
|
|
||||||
{
|
|
||||||
ZeroMemory(&osv, sizeof(osv));
|
|
||||||
osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
|
|
||||||
|
|
||||||
// we don't like anything older than Windows XP
|
|
||||||
|
|
||||||
if (!GetVersionEx((LPOSVERSIONINFOA)&osv)) return FALSE;
|
|
||||||
|
|
||||||
if (osv.dwMajorVersion >= 6) return TRUE;
|
|
||||||
if (osv.dwMajorVersion == 5 && osv.dwMinorVersion >= 1) return TRUE;
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -3854,19 +3687,3 @@ static BOOL RegisterWindowClass(void)
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// GetWindowsErrorMsg() -- gives a pointer to a static buffer containing the Windows error message
|
|
||||||
//
|
|
||||||
static LPTSTR GetWindowsErrorMsg(DWORD code)
|
|
||||||
{
|
|
||||||
static TCHAR lpMsgBuf[1024];
|
|
||||||
|
|
||||||
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
|
|
||||||
NULL, code,
|
|
||||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
|
||||||
(LPTSTR)lpMsgBuf, 1024, NULL);
|
|
||||||
|
|
||||||
return lpMsgBuf;
|
|
||||||
}
|
|
||||||
|
|
|
@ -77,6 +77,7 @@
|
||||||
<ClInclude Include="build\include\build.h" />
|
<ClInclude Include="build\include\build.h" />
|
||||||
<ClInclude Include="build\include\cache1d.h" />
|
<ClInclude Include="build\include\cache1d.h" />
|
||||||
<ClInclude Include="build\include\compat.h" />
|
<ClInclude Include="build\include\compat.h" />
|
||||||
|
<ClInclude Include="build\include\common.h" />
|
||||||
<ClInclude Include="build\include\crc32.h" />
|
<ClInclude Include="build\include\crc32.h" />
|
||||||
<ClInclude Include="build\include\dxdidf.h" />
|
<ClInclude Include="build\include\dxdidf.h" />
|
||||||
<ClInclude Include="build\include\dynamicgtk.h" />
|
<ClInclude Include="build\include\dynamicgtk.h" />
|
||||||
|
@ -108,15 +109,19 @@
|
||||||
<ClInclude Include="build\include\tracker.hpp" />
|
<ClInclude Include="build\include\tracker.hpp" />
|
||||||
<ClInclude Include="build\include\tracker_operator.hpp" />
|
<ClInclude Include="build\include\tracker_operator.hpp" />
|
||||||
<ClInclude Include="build\include\tracker_operators.hpp" />
|
<ClInclude Include="build\include\tracker_operators.hpp" />
|
||||||
|
<ClInclude Include="build\include\winbits.h" />
|
||||||
<ClInclude Include="build\include\winlayer.h" />
|
<ClInclude Include="build\include\winlayer.h" />
|
||||||
<ClInclude Include="build\include\msvc\inttypes.h" />
|
<ClInclude Include="build\include\msvc\inttypes.h" />
|
||||||
<ClInclude Include="build\include\msvc\stdint.h" />
|
<ClInclude Include="build\include\msvc\stdint.h" />
|
||||||
<ClInclude Include="build\src\engine_priv.h" />
|
<ClInclude Include="build\src\engine_priv.h" />
|
||||||
<ClInclude Include="source\actors.h" />
|
<ClInclude Include="source\actors.h" />
|
||||||
|
<ClInclude Include="source\actors_inline.h" />
|
||||||
<ClInclude Include="source\anim.h" />
|
<ClInclude Include="source\anim.h" />
|
||||||
<ClInclude Include="source\animvpx.h" />
|
<ClInclude Include="source\animvpx.h" />
|
||||||
|
<ClInclude Include="source\common_game.h" />
|
||||||
<ClInclude Include="source\demo.h" />
|
<ClInclude Include="source\demo.h" />
|
||||||
<ClInclude Include="source\game.h" />
|
<ClInclude Include="source\game.h" />
|
||||||
|
<ClInclude Include="source\game_inline.h" />
|
||||||
<ClInclude Include="source\gameexec.h" />
|
<ClInclude Include="source\gameexec.h" />
|
||||||
<ClInclude Include="source\gamevars.h" />
|
<ClInclude Include="source\gamevars.h" />
|
||||||
<ClInclude Include="source\global.h" />
|
<ClInclude Include="source\global.h" />
|
||||||
|
@ -129,6 +134,7 @@
|
||||||
<ClInclude Include="source\quotes.h" />
|
<ClInclude Include="source\quotes.h" />
|
||||||
<ClInclude Include="source\savegame.h" />
|
<ClInclude Include="source\savegame.h" />
|
||||||
<ClInclude Include="source\sector.h" />
|
<ClInclude Include="source\sector.h" />
|
||||||
|
<ClInclude Include="source\sector_inline.h" />
|
||||||
<ClInclude Include="source\_functio.h" />
|
<ClInclude Include="source\_functio.h" />
|
||||||
<ClInclude Include="source\_rts.h" />
|
<ClInclude Include="source\_rts.h" />
|
||||||
<ClInclude Include="source\config.h" />
|
<ClInclude Include="source\config.h" />
|
||||||
|
@ -212,15 +218,19 @@
|
||||||
<ClCompile Include="build\src\startgtk.editor.c" />
|
<ClCompile Include="build\src\startgtk.editor.c" />
|
||||||
<ClCompile Include="build\src\startwin.editor.c" />
|
<ClCompile Include="build\src\startwin.editor.c" />
|
||||||
<ClCompile Include="build\src\textfont.c" />
|
<ClCompile Include="build\src\textfont.c" />
|
||||||
|
<ClCompile Include="build\src\winbits.c" />
|
||||||
<ClCompile Include="build\src\winlayer.c" />
|
<ClCompile Include="build\src\winlayer.c" />
|
||||||
<ClCompile Include="source\actors.c" />
|
<ClCompile Include="source\actors.c" />
|
||||||
|
<ClCompile Include="source\actors_inline.c" />
|
||||||
<ClCompile Include="source\anim.c" />
|
<ClCompile Include="source\anim.c" />
|
||||||
<ClCompile Include="source\animvpx.c" />
|
<ClCompile Include="source\animvpx.c" />
|
||||||
<ClCompile Include="source\astub.c" />
|
<ClCompile Include="source\astub.c" />
|
||||||
<ClCompile Include="source\config.c" />
|
<ClCompile Include="source\config.c" />
|
||||||
|
<ClCompile Include="source\common.c" />
|
||||||
<ClCompile Include="source\demo.c" />
|
<ClCompile Include="source\demo.c" />
|
||||||
<ClCompile Include="source\enet\src\compress.c" />
|
<ClCompile Include="source\enet\src\compress.c" />
|
||||||
<ClCompile Include="source\game.c" />
|
<ClCompile Include="source\game.c" />
|
||||||
|
<ClCompile Include="source\game_inline.c" />
|
||||||
<ClCompile Include="source\gamedef.c" />
|
<ClCompile Include="source\gamedef.c" />
|
||||||
<ClCompile Include="source\gameexec.c" />
|
<ClCompile Include="source\gameexec.c" />
|
||||||
<ClCompile Include="source\gamestructures.c" />
|
<ClCompile Include="source\gamestructures.c" />
|
||||||
|
@ -247,6 +257,7 @@
|
||||||
<ClCompile Include="source\savegame.c" />
|
<ClCompile Include="source\savegame.c" />
|
||||||
<ClCompile Include="source\sdlmusic.c" />
|
<ClCompile Include="source\sdlmusic.c" />
|
||||||
<ClCompile Include="source\sector.c" />
|
<ClCompile Include="source\sector.c" />
|
||||||
|
<ClCompile Include="source\sector_inline.c" />
|
||||||
<ClCompile Include="source\sounds.c" />
|
<ClCompile Include="source\sounds.c" />
|
||||||
<ClCompile Include="source\sounds_mapster32.c" />
|
<ClCompile Include="source\sounds_mapster32.c" />
|
||||||
<ClCompile Include="source\startgtk.game.c" />
|
<ClCompile Include="source\startgtk.game.c" />
|
||||||
|
|
|
@ -25,13 +25,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "editor.h"
|
#include "editor.h"
|
||||||
#include "pragmas.h"
|
#include "pragmas.h"
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
|
||||||
#include "winlayer.h"
|
|
||||||
#else
|
|
||||||
#include "sdlayer.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "baselayer.h"
|
#include "baselayer.h"
|
||||||
|
#include "renderlayer.h"
|
||||||
|
|
||||||
#include "osd.h"
|
#include "osd.h"
|
||||||
#include "cache1d.h"
|
#include "cache1d.h"
|
||||||
|
@ -8477,7 +8472,7 @@ static void G_ShowParameterHelp(void)
|
||||||
#endif
|
#endif
|
||||||
"-namesfile [file.h]\t\tLoad a custom NAMES.H for tile names\n"
|
"-namesfile [file.h]\t\tLoad a custom NAMES.H for tile names\n"
|
||||||
"-nocheck\t\t\tDisables map pointer checking when saving (default)\n" // kept for script compat
|
"-nocheck\t\t\tDisables map pointer checking when saving (default)\n" // kept for script compat
|
||||||
#if defined RENDERTYPEWIN || (defined RENDERTYPESDL && ((defined __APPLE__ && defined OSX_STARTUPWINDOW) || defined HAVE_GTK2))
|
#if defined _WIN32 || (defined RENDERTYPESDL && ((defined __APPLE__ && defined OSX_STARTUPWINDOW) || defined HAVE_GTK2))
|
||||||
"-setup\t\t\tDisplays the configuration dialog\n"
|
"-setup\t\t\tDisplays the configuration dialog\n"
|
||||||
#endif
|
#endif
|
||||||
#if !defined(_WIN32)
|
#if !defined(_WIN32)
|
||||||
|
@ -10576,7 +10571,6 @@ int32_t ExtInit(void)
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
|
||||||
void app_crashhandler(void)
|
void app_crashhandler(void)
|
||||||
{
|
{
|
||||||
if (levelname[0])
|
if (levelname[0])
|
||||||
|
@ -10590,7 +10584,6 @@ void app_crashhandler(void)
|
||||||
SaveBoard(f, 1);
|
SaveBoard(f, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void ExtUnInit(void)
|
void ExtUnInit(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,11 +22,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "duke3d.h"
|
#include "duke3d.h"
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
#include "baselayer.h"
|
||||||
#include "winlayer.h"
|
#include "renderlayer.h"
|
||||||
#else
|
|
||||||
#include "sdlayer.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "scriplib.h"
|
#include "scriplib.h"
|
||||||
#include "file_lib.h"
|
#include "file_lib.h"
|
||||||
|
@ -76,17 +73,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include "winlayer.h"
|
# include "winlayer.h"
|
||||||
#define WIN32_LEAN_AND_MEAN
|
# define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
# include <windows.h>
|
||||||
#include <shellapi.h>
|
# include <shellapi.h>
|
||||||
extern int32_t G_GetVersionFromWebsite(char *buffer);
|
extern int32_t G_GetVersionFromWebsite(char *buffer);
|
||||||
#define UPDATEINTERVAL 604800 // 1w
|
# define UPDATEINTERVAL 604800 // 1w
|
||||||
|
# include "winbits.h"
|
||||||
#else
|
#else
|
||||||
static int32_t usecwd = 0;
|
static int32_t usecwd = 0;
|
||||||
#ifndef GEKKO
|
# ifndef GEKKO
|
||||||
#include <sys/ioctl.h>
|
# include <sys/ioctl.h>
|
||||||
#endif
|
# endif
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
int32_t g_quitDeadline = 0;
|
int32_t g_quitDeadline = 0;
|
||||||
|
@ -8115,7 +8113,7 @@ static void G_ShowParameterHelp(void)
|
||||||
"-r\t\tRecord demo\n"
|
"-r\t\tRecord demo\n"
|
||||||
"-s#\t\tSet skill level (1-4)\n"
|
"-s#\t\tSet skill level (1-4)\n"
|
||||||
"-server\t\tStart a multiplayer game for other players to join\n"
|
"-server\t\tStart a multiplayer game for other players to join\n"
|
||||||
#if defined RENDERTYPEWIN || (defined RENDERTYPESDL && ((defined __APPLE__ && defined OSX_STARTUPWINDOW) || defined HAVE_GTK2))
|
#if defined _WIN32 || (defined RENDERTYPESDL && ((defined __APPLE__ && defined OSX_STARTUPWINDOW) || defined HAVE_GTK2))
|
||||||
"-setup/nosetup\tEnables/disables startup window\n"
|
"-setup/nosetup\tEnables/disables startup window\n"
|
||||||
#endif
|
#endif
|
||||||
"-t#\t\tSet respawn mode: 1 = Monsters, 2 = Items, 3 = Inventory, x = All\n"
|
"-t#\t\tSet respawn mode: 1 = Monsters, 2 = Items, 3 = Inventory, x = All\n"
|
||||||
|
@ -8737,7 +8735,7 @@ static void G_CheckCommandLine(int32_t argc, const char **argv)
|
||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#if defined _WIN32 && defined RENDERTYPEWIN
|
#if defined RENDERTYPEWIN
|
||||||
if (!Bstrcasecmp(c+1,"nodinput"))
|
if (!Bstrcasecmp(c+1,"nodinput"))
|
||||||
{
|
{
|
||||||
initprintf("DirectInput (joystick) support disabled\n");
|
initprintf("DirectInput (joystick) support disabled\n");
|
||||||
|
@ -9842,14 +9840,12 @@ static int32_t G_EndOfLevel(void)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
|
||||||
void app_crashhandler(void)
|
void app_crashhandler(void)
|
||||||
{
|
{
|
||||||
G_CloseDemoWrite();
|
G_CloseDemoWrite();
|
||||||
VM_ScriptInfo();
|
VM_ScriptInfo();
|
||||||
G_GameQuit();
|
G_GameQuit();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
// See FILENAME_CASE_CHECK in cache1d.c
|
// See FILENAME_CASE_CHECK in cache1d.c
|
||||||
|
@ -9898,7 +9894,7 @@ int32_t app_main(int32_t argc, const char **argv)
|
||||||
fatInit(28, true);
|
fatInit(28, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
#ifdef _WIN32
|
||||||
if (argc > 1)
|
if (argc > 1)
|
||||||
{
|
{
|
||||||
for (; i<argc; i++)
|
for (; i<argc; i++)
|
||||||
|
@ -9920,11 +9916,9 @@ int32_t app_main(int32_t argc, const char **argv)
|
||||||
initprintf("An error occurred while initializing ENet.\n");
|
initprintf("An error occurred while initializing ENet.\n");
|
||||||
else atexit(enet_deinitialize);
|
else atexit(enet_deinitialize);
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
|
||||||
backgroundidle = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
backgroundidle = 0;
|
||||||
|
|
||||||
{
|
{
|
||||||
extern int32_t (*check_filename_casing_fn)(void);
|
extern int32_t (*check_filename_casing_fn)(void);
|
||||||
check_filename_casing_fn = check_filename_casing;
|
check_filename_casing_fn = check_filename_casing;
|
||||||
|
@ -10170,7 +10164,7 @@ int32_t app_main(int32_t argc, const char **argv)
|
||||||
else if (!fg) g_gameNamePtr = "Unknown GRP";
|
else if (!fg) g_gameNamePtr = "Unknown GRP";
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (defined RENDERTYPEWIN || (defined RENDERTYPESDL && ((defined __APPLE__ && defined OSX_STARTUPWINDOW) || defined HAVE_GTK2)))
|
#if (defined _WIN32 || (defined RENDERTYPESDL && ((defined __APPLE__ && defined OSX_STARTUPWINDOW) || defined HAVE_GTK2)))
|
||||||
if (i < 0 || (!g_noSetup && (ud.configversion != BYTEVERSION_JF || ud.config.ForceSetup)) || g_commandSetup)
|
if (i < 0 || (!g_noSetup && (ud.configversion != BYTEVERSION_JF || ud.config.ForceSetup)) || g_commandSetup)
|
||||||
{
|
{
|
||||||
if (quitevent || !startwin_run())
|
if (quitevent || !startwin_run())
|
||||||
|
|
|
@ -312,12 +312,9 @@ static inline int32_t G_GetTeamPalette(int32_t team)
|
||||||
int32_t G_GetVersionFromWebsite(char *buffer);
|
int32_t G_GetVersionFromWebsite(char *buffer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
|
||||||
void app_crashhandler(void);
|
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
extern char forcegl;
|
extern char forcegl;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#define minitextshade(x, y, t, s, p, sb) minitext_(x,y,t,s,p,sb)
|
#define minitextshade(x, y, t, s, p, sb) minitext_(x,y,t,s,p,sb)
|
||||||
#define minitext(x, y, t, p, sb) minitext_(x,y,t,0,p,sb)
|
#define minitext(x, y, t, p, sb) minitext_(x,y,t,0,p,sb)
|
||||||
|
|
|
@ -5992,7 +5992,7 @@ void C_Compile(const char *filenam)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if (defined RENDERTYPEWIN || (defined RENDERTYPESDL && ((defined __APPLE__ && defined OSX_STARTUPWINDOW) || defined HAVE_GTK2)))
|
#if (defined _WIN32 || (defined RENDERTYPESDL && ((defined __APPLE__ && defined OSX_STARTUPWINDOW) || defined HAVE_GTK2)))
|
||||||
while (!quitevent) // keep the window open so people can copy CON errors out of it
|
while (!quitevent) // keep the window open so people can copy CON errors out of it
|
||||||
handleevents();
|
handleevents();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -57,7 +57,7 @@ void S_SoundStartup(void)
|
||||||
else return;
|
else return;
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
#ifdef RENDERTYPEWIN
|
||||||
initdata = (void *) win_gethwnd();
|
initdata = (void *) win_gethwnd(); // used for DirectSound
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
initprintf("Initializing sound... ");
|
initprintf("Initializing sound... ");
|
||||||
|
|
|
@ -79,7 +79,7 @@ int32_t S_SoundStartup(void)
|
||||||
fxdevicetype = ASS_AutoDetect;
|
fxdevicetype = ASS_AutoDetect;
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
#ifdef RENDERTYPEWIN
|
||||||
initdata = (void *) win_gethwnd();
|
initdata = (void *) win_gethwnd(); // used for DirectSound
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
status = FX_Init(fxdevicetype, NumVoices, NumChannels, NumBits, MixRate, initdata);
|
status = FX_Init(fxdevicetype, NumVoices, NumChannels, NumBits, MixRate, initdata);
|
||||||
|
|
|
@ -32,11 +32,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
#include "renderlayer.h"
|
||||||
#include "winlayer.h"
|
|
||||||
#else
|
|
||||||
#include "sdlayer.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int32_t G_GetVersionFromWebsite(char *buffer)
|
int32_t G_GetVersionFromWebsite(char *buffer)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue