Compare commits

..

2 commits

Author SHA1 Message Date
2f86d9e3d0 Add Graphics#maximize_window
Works even if the window is not resizable by user.
Requested by matias1lol.
2025-10-27 12:17:20 +01:00
de43f7da92 EventThread: Fix compilation with newer OpenAL headers
Should remove the local typedefs eventually.
2025-10-27 12:12:55 +01:00
3 changed files with 27 additions and 4 deletions

View file

@ -209,6 +209,15 @@ RB_METHOD(graphicsResizeWindow)
return Qnil; return Qnil;
} }
RB_METHOD(graphicsMaximizeWindow)
{
RB_UNUSED_PARAM;
shState->eThread().requestWindowMaximize();
return Qnil;
}
DEF_GRA_PROP_I(FrameRate) DEF_GRA_PROP_I(FrameRate)
DEF_GRA_PROP_I(FrameCount) DEF_GRA_PROP_I(FrameCount)
DEF_GRA_PROP_I(Brightness) DEF_GRA_PROP_I(Brightness)
@ -268,4 +277,5 @@ void graphicsBindingInit()
INIT_GRA_PROP_BIND( ShowCursor, "show_cursor" ); INIT_GRA_PROP_BIND( ShowCursor, "show_cursor" );
_rb_define_module_function(module, "resize_window", graphicsResizeWindow); _rb_define_module_function(module, "resize_window", graphicsResizeWindow);
_rb_define_module_function(module, "maximize_window", graphicsMaximizeWindow);
} }

View file

@ -40,12 +40,12 @@
#include <string.h> #include <string.h>
typedef void (ALC_APIENTRY *LPALCDEVICEPAUSESOFT) (ALCdevice *device); typedef void (ALC_APIENTRY *_LPALCDEVICEPAUSESOFT) (ALCdevice *device);
typedef void (ALC_APIENTRY *LPALCDEVICERESUMESOFT) (ALCdevice *device); typedef void (ALC_APIENTRY *_LPALCDEVICERESUMESOFT) (ALCdevice *device);
#define AL_DEVICE_PAUSE_FUN \ #define AL_DEVICE_PAUSE_FUN \
AL_FUN(DevicePause, LPALCDEVICEPAUSESOFT) \ AL_FUN(DevicePause, _LPALCDEVICEPAUSESOFT) \
AL_FUN(DeviceResume, LPALCDEVICERESUMESOFT) AL_FUN(DeviceResume, _LPALCDEVICERESUMESOFT)
struct ALCFunctions struct ALCFunctions
{ {
@ -80,6 +80,7 @@ enum
{ {
REQUEST_SETFULLSCREEN = 0, REQUEST_SETFULLSCREEN = 0,
REQUEST_WINRESIZE, REQUEST_WINRESIZE,
REQUEST_WINMAXIMIZE,
REQUEST_MESSAGEBOX, REQUEST_MESSAGEBOX,
REQUEST_SETCURSORVISIBLE, REQUEST_SETCURSORVISIBLE,
@ -459,6 +460,10 @@ void EventThread::process(RGSSThreadData &rtData)
updateCursorState(cursorInWindow, gameScreen); updateCursorState(cursorInWindow, gameScreen);
break; break;
case REQUEST_WINMAXIMIZE :
SDL_MaximizeWindow(win);
break;
case UPDATE_FPS : case UPDATE_FPS :
if (rtData.config.printFPS) if (rtData.config.printFPS)
Debug() << "FPS:" << event.user.code; Debug() << "FPS:" << event.user.code;
@ -622,6 +627,13 @@ void EventThread::requestWindowResize(int width, int height, bool recenter)
SDL_PushEvent(&event); SDL_PushEvent(&event);
} }
void EventThread::requestWindowMaximize()
{
SDL_Event event;
event.type = usrIdStart + REQUEST_WINMAXIMIZE;
SDL_PushEvent(&event);
}
void EventThread::requestShowCursor(bool mode) void EventThread::requestShowCursor(bool mode)
{ {
SDL_Event event; SDL_Event event;

View file

@ -89,6 +89,7 @@ public:
/* Called from RGSS thread */ /* Called from RGSS thread */
void requestFullscreenMode(bool mode); void requestFullscreenMode(bool mode);
void requestWindowResize(int width, int height, bool recenter = false); void requestWindowResize(int width, int height, bool recenter = false);
void requestWindowMaximize();
void requestShowCursor(bool mode); void requestShowCursor(bool mode);
void requestTerminate(); void requestTerminate();