Day 32 done.

This commit is contained in:
2026-03-22 14:47:09 -07:00
parent b6f7e027b6
commit 907d4e9dde
2 changed files with 25 additions and 7 deletions
+1 -1
View File
@@ -63,7 +63,7 @@ $(EXE): sdl_handmade.c libhandmade
$(FRAMEWORKS) -o $@ $(FRAMEWORKS) -o $@
run: run:
./$(EXE) @ ./$(EXE)
tags: $(OBJS) tags: $(OBJS)
ctags -R *.h *.c ctags -R *.h *.c
+24 -6
View File
@@ -254,6 +254,13 @@ static void SDLProcessInputDigitalButton(SDL_GameController *Controller,
static void HandleEvent(SDL_Event *Event) static void HandleEvent(SDL_Event *Event)
{ {
/* TODO: Should this be below scopes? */
SDL_Window *Window;
SDL_Renderer *Renderer;
Window = SDL_GetWindowFromID(Event->window.windowID);
Renderer = SDL_GetRenderer(Window);
switch(Event->type) { switch(Event->type) {
case SDL_QUIT: { case SDL_QUIT: {
GlobalRunning = FALSE; GlobalRunning = FALSE;
@@ -262,13 +269,8 @@ static void HandleEvent(SDL_Event *Event)
case SDL_WINDOWEVENT: { case SDL_WINDOWEVENT: {
switch(Event->window.event) { switch(Event->window.event) {
case SDL_WINDOWEVENT_SIZE_CHANGED: { case SDL_WINDOWEVENT_SIZE_CHANGED: {
SDL_Window *Window;
SDL_Renderer *Renderer;
sdl_window_dimension Dimension; sdl_window_dimension Dimension;
Window = SDL_GetWindowFromID(Event->window.windowID);
Renderer = SDL_GetRenderer(Window);
Dimension = SDLGetWindowDimension(Window); Dimension = SDLGetWindowDimension(Window);
SDLResizeTexture(&GlobalBackbuffer, Renderer, SDLResizeTexture(&GlobalBackbuffer, Renderer,
Dimension.Width, Dimension.Height); Dimension.Width, Dimension.Height);
@@ -276,6 +278,18 @@ static void HandleEvent(SDL_Event *Event)
case SDL_WINDOWEVENT_EXPOSED: { case SDL_WINDOWEVENT_EXPOSED: {
} break; } break;
case SDL_WINDOWEVENT_FOCUS_GAINED: {
if(SDL_SetWindowOpacity(Window, 1.0f) != 0) {
/* TODO: This didn't work . . . SDL_GetError() */
}
} break;
case SDL_WINDOWEVENT_FOCUS_LOST: {
if(SDL_SetWindowOpacity(Window, 0.5f) != 0) {
/* TODO: This didn't work . . . SDL_GetError() */
}
} break;
} }
} break; } break;
} }
@@ -611,9 +625,13 @@ S32 main(S32 argc, char *argv[])
SDLInitControllers(); SDLInitControllers();
/* NOTE: Floating windows are not supported oficially by Wayland
* protocol. However, SDL_WINDOW_ALWAYS_ON_TOP does work on KDE
* under Wayland. I have not tested GNOME. */
Window = SDL_CreateWindow("Handmade Hero", SDL_WINDOWPOS_UNDEFINED, Window = SDL_CreateWindow("Handmade Hero", SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED, 700, 500, SDL_WINDOWPOS_UNDEFINED, 700, 500,
SDL_WINDOW_RESIZABLE); SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALWAYS_ON_TOP);
if(Window) { if(Window) {
SDL_Renderer *Renderer; SDL_Renderer *Renderer;