Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to SDL 2.0 #135

Merged
merged 3 commits into from
Nov 19, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,7 @@

# Temporary local Visual Studio settings and cached stuff eg precompiled headers that should not be committed
/src/vcDave/.vs/

davegnukem
src/*.o
src/sdl/*.o
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ CC = gcc


# dj2016-10 Add L -I/usr/local/include/SDL in process of getting this working on Mac OS X - not sure if this is 'bad' to just have both /usr/include and /usr/local/include??
INCLUDEDIRS= -I/usr/include/SDL -I/usr/local/include/SDL
INCLUDEDIRS= -I/usr/include/SDL2 -I/usr/local/include/SDL2

#CCFLAGS = -O -Wall $(INCLUDEDIRS)

Expand All @@ -25,7 +25,7 @@ CCFLAGS = -Wall -Wno-switch -DDEBUG $(INCLUDEDIRS)
#Release version:
#CCFLAGS = -O -Wall -I/usr/local/include -DHAVE_SOUND $(INCLUDEDIRS)

LIBS = -lSDL -lSDLmain -lSDL_mixer -lpthread
LIBS = -lSDL2 -lSDL2_mixer -lpthread
BIN = davegnukem


Expand All @@ -50,7 +50,7 @@ else
ifeq ($(UNAME_S),Haiku)
INCLUDEDIRS=`sdl-config --cflags`
CCFLAGS=-Wall -Wno-switch -DDEBUG $(INCLUDEDIRS)
LIBS=`sdl-config --libs` -lSDLmain -lSDL_mixer -lpthread
LIBS=`sdl-config --libs` -lSDL2 -lSDL2_mixer -lpthread
endif
ifeq ($(UNAME_S),Darwin)
LIBS += -framework Cocoa
Expand Down
2 changes: 2 additions & 0 deletions src/djgraph.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ class djVisual
m_bFullscreen = false;
}
SDL_Surface *pSurface;
SDL_Renderer *pRenderer;
SDL_Texture *pTexture;
djColor colorfore;
djColor colorback;
int width;
Expand Down
14 changes: 14 additions & 0 deletions src/ed_common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,13 @@ static djImage *pFont = NULL;

void ED_CommonInit ()
{
SDL_FreeSurface(pVisMain->pSurface);
SDL_DestroyTexture(pVisMain->pTexture);
SDL_RenderSetLogicalSize(pVisMain->pRenderer, pVisMain->width, pVisMain->height);
pVisMain->pSurface = SDL_CreateRGBSurface(0, pVisMain->width, pVisMain->height, pVisMain->bpp,
0, 0, 0, 0);
pVisMain->pTexture = SDL_CreateTextureFromSurface(pVisMain->pRenderer, pVisMain->pSurface);

// rtfb:
// i don't know how and why it worked before i set this,
// but when i first tried to put my hands on Editor,
Expand Down Expand Up @@ -77,6 +84,13 @@ void ED_CommonKill ()
pFont = NULL;
DeleteMacros ();
djiClearBuffer ();

SDL_FreeSurface(pVisMain->pSurface);
SDL_DestroyTexture(pVisMain->pTexture);
SDL_RenderSetLogicalSize(pVisMain->pRenderer, CFG_APPLICATION_RENDER_RES_W, CFG_APPLICATION_RENDER_RES_H);
pVisMain->pSurface = SDL_CreateRGBSurface(0, CFG_APPLICATION_RENDER_RES_W, CFG_APPLICATION_RENDER_RES_H, pVisMain->bpp,
0, 0, 0, 0);
pVisMain->pTexture = SDL_CreateTextureFromSurface(pVisMain->pRenderer, pVisMain->pSurface);
}


Expand Down
18 changes: 7 additions & 11 deletions src/graph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ void GraphFlip(bool bScaleView)
// leaving text looking messed up [dj2016-10]
if (pVisBack!=NULL && g_pFont8x8!=NULL && (!g_sMsg.empty() || bShowFrameRate))
{
pVisTemp = SDL_CreateRGBSurface(SDL_HWSURFACE, CFG_APPLICATION_RENDER_RES_W, 8, pVisBack->pSurface->format->BitsPerPixel,
pVisTemp = SDL_CreateRGBSurface(0, CFG_APPLICATION_RENDER_RES_W, 8, pVisBack->pSurface->format->BitsPerPixel,
pVisBack->pSurface->format->Rmask,
pVisBack->pSurface->format->Gmask,
pVisBack->pSurface->format->Bmask,
Expand Down Expand Up @@ -144,14 +144,15 @@ bool GraphInit( bool bFullScreen, int iWidth, int iHeight, int nForceScale )
// tries to set a 'true' 320x200 fullscreen display mode, IIRC - dj2017-08.)
// No that doesn't seem to be what happens, press F5 when running with "-f" and see.
// [low/future] - if 2 monitors, will this behave 'correct'
const SDL_VideoInfo* vidinfo = SDL_GetVideoInfo();
SDL_DisplayMode dm;
int err = SDL_GetCurrentDisplayMode(0, &dm);
int max_w = -1;
int max_h = -1;
if (vidinfo)
if (!err)
{
// THIS MUST BE TESTED ON LINUX [dj2016-10]
max_w = vidinfo->current_w;
max_h = vidinfo->current_h;
max_w = dm.w;
max_h = dm.h;
if (max_w>iWidth && max_h>iHeight)
{
int nMultiple = djMAX(1, djMIN( max_w / iWidth, max_h / iHeight ) );
Expand All @@ -166,22 +167,17 @@ bool GraphInit( bool bFullScreen, int iWidth, int iHeight, int nForceScale )
iWidth *= nMultiple;
iHeight *= nMultiple;
}

Log( "GraphInit(): DisplayResolution(%d,%d).\n", max_w, max_h );
}
#endif

SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);

// Window dressing crap
SDL_WM_SetCaption("Dave Gnukem", NULL);
SDL_WM_SetIcon(SDL_LoadBMP(DATA_DIR "icon.bmp"), NULL);
// Hide mouse cursor
SDL_ShowCursor(0);

//--- (1) - Front buffer
Log( "GraphInit(): djgOpenVisual(w,h=%d,%d).\n", iWidth, iHeight );
if (NULL == (pVisMain = djgOpenVisual( bFullScreen?"fullscreen":NULL, iWidth, iHeight )))
if (NULL == (pVisMain = djgOpenVisual( bFullScreen?"fullscreen":NULL, iWidth, iHeight, 32 )))
{
printf( "GraphInit(): COULDN'T OPEN GMAIN\n" );
return false;
Expand Down
128 changes: 15 additions & 113 deletions src/keys.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -144,112 +144,16 @@ void InitialiseGameKeySystem()
g_anValidGameKeys.push_back(SDLK_y);
g_anValidGameKeys.push_back(SDLK_z);
g_anValidGameKeys.push_back(SDLK_DELETE);
g_anValidGameKeys.push_back(SDLK_WORLD_0);
g_anValidGameKeys.push_back(SDLK_WORLD_1);
g_anValidGameKeys.push_back(SDLK_WORLD_2);
g_anValidGameKeys.push_back(SDLK_WORLD_3);
g_anValidGameKeys.push_back(SDLK_WORLD_4);
g_anValidGameKeys.push_back(SDLK_WORLD_5);
g_anValidGameKeys.push_back(SDLK_WORLD_6);
g_anValidGameKeys.push_back(SDLK_WORLD_7);
g_anValidGameKeys.push_back(SDLK_WORLD_8);
g_anValidGameKeys.push_back(SDLK_WORLD_9);
g_anValidGameKeys.push_back(SDLK_WORLD_10);
g_anValidGameKeys.push_back(SDLK_WORLD_11);
g_anValidGameKeys.push_back(SDLK_WORLD_12);
g_anValidGameKeys.push_back(SDLK_WORLD_13);
g_anValidGameKeys.push_back(SDLK_WORLD_14);
g_anValidGameKeys.push_back(SDLK_WORLD_15);
g_anValidGameKeys.push_back(SDLK_WORLD_16);
g_anValidGameKeys.push_back(SDLK_WORLD_17);
g_anValidGameKeys.push_back(SDLK_WORLD_18);
g_anValidGameKeys.push_back(SDLK_WORLD_19);
g_anValidGameKeys.push_back(SDLK_WORLD_20);
g_anValidGameKeys.push_back(SDLK_WORLD_21);
g_anValidGameKeys.push_back(SDLK_WORLD_22);
g_anValidGameKeys.push_back(SDLK_WORLD_23);
g_anValidGameKeys.push_back(SDLK_WORLD_24);
g_anValidGameKeys.push_back(SDLK_WORLD_25);
g_anValidGameKeys.push_back(SDLK_WORLD_26);
g_anValidGameKeys.push_back(SDLK_WORLD_27);
g_anValidGameKeys.push_back(SDLK_WORLD_28);
g_anValidGameKeys.push_back(SDLK_WORLD_29);
g_anValidGameKeys.push_back(SDLK_WORLD_30);
g_anValidGameKeys.push_back(SDLK_WORLD_31);
g_anValidGameKeys.push_back(SDLK_WORLD_32);
g_anValidGameKeys.push_back(SDLK_WORLD_33);
g_anValidGameKeys.push_back(SDLK_WORLD_34);
g_anValidGameKeys.push_back(SDLK_WORLD_35);
g_anValidGameKeys.push_back(SDLK_WORLD_36);
g_anValidGameKeys.push_back(SDLK_WORLD_37);
g_anValidGameKeys.push_back(SDLK_WORLD_38);
g_anValidGameKeys.push_back(SDLK_WORLD_39);
g_anValidGameKeys.push_back(SDLK_WORLD_40);
g_anValidGameKeys.push_back(SDLK_WORLD_41);
g_anValidGameKeys.push_back(SDLK_WORLD_42);
g_anValidGameKeys.push_back(SDLK_WORLD_43);
g_anValidGameKeys.push_back(SDLK_WORLD_44);
g_anValidGameKeys.push_back(SDLK_WORLD_45);
g_anValidGameKeys.push_back(SDLK_WORLD_46);
g_anValidGameKeys.push_back(SDLK_WORLD_47);
g_anValidGameKeys.push_back(SDLK_WORLD_48);
g_anValidGameKeys.push_back(SDLK_WORLD_49);
g_anValidGameKeys.push_back(SDLK_WORLD_50);
g_anValidGameKeys.push_back(SDLK_WORLD_51);
g_anValidGameKeys.push_back(SDLK_WORLD_52);
g_anValidGameKeys.push_back(SDLK_WORLD_53);
g_anValidGameKeys.push_back(SDLK_WORLD_54);
g_anValidGameKeys.push_back(SDLK_WORLD_55);
g_anValidGameKeys.push_back(SDLK_WORLD_56);
g_anValidGameKeys.push_back(SDLK_WORLD_57);
g_anValidGameKeys.push_back(SDLK_WORLD_58);
g_anValidGameKeys.push_back(SDLK_WORLD_59);
g_anValidGameKeys.push_back(SDLK_WORLD_60);
g_anValidGameKeys.push_back(SDLK_WORLD_61);
g_anValidGameKeys.push_back(SDLK_WORLD_62);
g_anValidGameKeys.push_back(SDLK_WORLD_63);
g_anValidGameKeys.push_back(SDLK_WORLD_64);
g_anValidGameKeys.push_back(SDLK_WORLD_65);
g_anValidGameKeys.push_back(SDLK_WORLD_66);
g_anValidGameKeys.push_back(SDLK_WORLD_67);
g_anValidGameKeys.push_back(SDLK_WORLD_68);
g_anValidGameKeys.push_back(SDLK_WORLD_69);
g_anValidGameKeys.push_back(SDLK_WORLD_70);
g_anValidGameKeys.push_back(SDLK_WORLD_71);
g_anValidGameKeys.push_back(SDLK_WORLD_72);
g_anValidGameKeys.push_back(SDLK_WORLD_73);
g_anValidGameKeys.push_back(SDLK_WORLD_74);
g_anValidGameKeys.push_back(SDLK_WORLD_75);
g_anValidGameKeys.push_back(SDLK_WORLD_76);
g_anValidGameKeys.push_back(SDLK_WORLD_77);
g_anValidGameKeys.push_back(SDLK_WORLD_78);
g_anValidGameKeys.push_back(SDLK_WORLD_79);
g_anValidGameKeys.push_back(SDLK_WORLD_80);
g_anValidGameKeys.push_back(SDLK_WORLD_81);
g_anValidGameKeys.push_back(SDLK_WORLD_82);
g_anValidGameKeys.push_back(SDLK_WORLD_83);
g_anValidGameKeys.push_back(SDLK_WORLD_84);
g_anValidGameKeys.push_back(SDLK_WORLD_85);
g_anValidGameKeys.push_back(SDLK_WORLD_86);
g_anValidGameKeys.push_back(SDLK_WORLD_87);
g_anValidGameKeys.push_back(SDLK_WORLD_88);
g_anValidGameKeys.push_back(SDLK_WORLD_89);
g_anValidGameKeys.push_back(SDLK_WORLD_90);
g_anValidGameKeys.push_back(SDLK_WORLD_91);
g_anValidGameKeys.push_back(SDLK_WORLD_92);
g_anValidGameKeys.push_back(SDLK_WORLD_93);
g_anValidGameKeys.push_back(SDLK_WORLD_94);
g_anValidGameKeys.push_back(SDLK_WORLD_95);
g_anValidGameKeys.push_back(SDLK_KP0);
g_anValidGameKeys.push_back(SDLK_KP1);
g_anValidGameKeys.push_back(SDLK_KP2);
g_anValidGameKeys.push_back(SDLK_KP3);
g_anValidGameKeys.push_back(SDLK_KP4);
g_anValidGameKeys.push_back(SDLK_KP5);
g_anValidGameKeys.push_back(SDLK_KP6);
g_anValidGameKeys.push_back(SDLK_KP7);
g_anValidGameKeys.push_back(SDLK_KP8);
g_anValidGameKeys.push_back(SDLK_KP9);
g_anValidGameKeys.push_back(SDLK_KP_0);
g_anValidGameKeys.push_back(SDLK_KP_1);
g_anValidGameKeys.push_back(SDLK_KP_2);
g_anValidGameKeys.push_back(SDLK_KP_3);
g_anValidGameKeys.push_back(SDLK_KP_4);
g_anValidGameKeys.push_back(SDLK_KP_5);
g_anValidGameKeys.push_back(SDLK_KP_6);
g_anValidGameKeys.push_back(SDLK_KP_7);
g_anValidGameKeys.push_back(SDLK_KP_8);
g_anValidGameKeys.push_back(SDLK_KP_9);
g_anValidGameKeys.push_back(SDLK_KP_PERIOD);
g_anValidGameKeys.push_back(SDLK_KP_DIVIDE);
g_anValidGameKeys.push_back(SDLK_KP_MULTIPLY);
Expand Down Expand Up @@ -290,19 +194,17 @@ void InitialiseGameKeySystem()
g_anValidGameKeys.push_back(SDLK_LCTRL);
g_anValidGameKeys.push_back(SDLK_RALT);
g_anValidGameKeys.push_back(SDLK_LALT);
g_anValidGameKeys.push_back(SDLK_RMETA);
g_anValidGameKeys.push_back(SDLK_LMETA);
g_anValidGameKeys.push_back(SDLK_LSUPER);
g_anValidGameKeys.push_back(SDLK_RSUPER);
g_anValidGameKeys.push_back(SDLK_RGUI);
g_anValidGameKeys.push_back(SDLK_LGUI);
g_anValidGameKeys.push_back(SDLK_MODE);
g_anValidGameKeys.push_back(SDLK_COMPOSE);
g_anValidGameKeys.push_back(SDLK_APPLICATION);
g_anValidGameKeys.push_back(SDLK_HELP);
g_anValidGameKeys.push_back(SDLK_PRINT);
g_anValidGameKeys.push_back(SDLK_PRINTSCREEN);
//g_anValidGameKeys.push_back(SDLK_SYSREQ);
//g_anValidGameKeys.push_back(SDLK_BREAK);
g_anValidGameKeys.push_back(SDLK_MENU);
//g_anValidGameKeys.push_back(SDLK_POWER);
g_anValidGameKeys.push_back(SDLK_EURO);
g_anValidGameKeys.push_back(SDLK_CURRENCYSUBUNIT);
}

bool IsGameKey(int nKeyCode)
Expand Down
2 changes: 1 addition & 1 deletion src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -784,7 +784,7 @@ bool GetHighScoreUserName(char *szBuffer)
DialogBoxEffect(nXLeft-12, 64, nDX+24, 64);

djiPollBegin();
SDLMod ModState = SDL_GetModState();
SDL_Keymod ModState = SDL_GetModState();
SDL_Event Event;
while (djiPollEvents(Event))
{
Expand Down
Loading