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;
}
RB_METHOD(graphicsMaximizeWindow)
{
RB_UNUSED_PARAM;
shState->eThread().requestWindowMaximize();
return Qnil;
}
DEF_GRA_PROP_I(FrameRate)
DEF_GRA_PROP_I(FrameCount)
DEF_GRA_PROP_I(Brightness)
@ -268,4 +277,5 @@ void graphicsBindingInit()
INIT_GRA_PROP_BIND( ShowCursor, "show_cursor" );
_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>
typedef void (ALC_APIENTRY *LPALCDEVICEPAUSESOFT) (ALCdevice *device);
typedef void (ALC_APIENTRY *LPALCDEVICERESUMESOFT) (ALCdevice *device);
typedef void (ALC_APIENTRY *_LPALCDEVICEPAUSESOFT) (ALCdevice *device);
typedef void (ALC_APIENTRY *_LPALCDEVICERESUMESOFT) (ALCdevice *device);
#define AL_DEVICE_PAUSE_FUN \
AL_FUN(DevicePause, LPALCDEVICEPAUSESOFT) \
AL_FUN(DeviceResume, LPALCDEVICERESUMESOFT)
AL_FUN(DevicePause, _LPALCDEVICEPAUSESOFT) \
AL_FUN(DeviceResume, _LPALCDEVICERESUMESOFT)
struct ALCFunctions
{
@ -80,6 +80,7 @@ enum
{
REQUEST_SETFULLSCREEN = 0,
REQUEST_WINRESIZE,
REQUEST_WINMAXIMIZE,
REQUEST_MESSAGEBOX,
REQUEST_SETCURSORVISIBLE,
@ -459,6 +460,10 @@ void EventThread::process(RGSSThreadData &rtData)
updateCursorState(cursorInWindow, gameScreen);
break;
case REQUEST_WINMAXIMIZE :
SDL_MaximizeWindow(win);
break;
case UPDATE_FPS :
if (rtData.config.printFPS)
Debug() << "FPS:" << event.user.code;
@ -622,6 +627,13 @@ void EventThread::requestWindowResize(int width, int height, bool recenter)
SDL_PushEvent(&event);
}
void EventThread::requestWindowMaximize()
{
SDL_Event event;
event.type = usrIdStart + REQUEST_WINMAXIMIZE;
SDL_PushEvent(&event);
}
void EventThread::requestShowCursor(bool mode)
{
SDL_Event event;

View file

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