Skip to content

Commit

Permalink
Merge pull request #135 from matteobin/master
Browse files Browse the repository at this point in the history
Migrate to SDL 2.0
  • Loading branch information
davidjoffe authored Nov 19, 2022
2 parents 4e0d03f + 443fb52 commit 96dbe5d
Show file tree
Hide file tree
Showing 9 changed files with 93 additions and 336 deletions.
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

0 comments on commit 96dbe5d

Please sign in to comment.