|
@@ -366,7 +366,7 @@ DEFINE_PRIM(_BYTES, detect_keyboard_layout, _NO_ARG);
|
|
|
|
|
|
// Window
|
|
|
|
|
|
-HL_PRIM SDL_Window *HL_NAME(win_create)(int width, int height) {
|
|
|
+HL_PRIM SDL_Window *HL_NAME(win_create_ex)(int width, int height, bool resizable) {
|
|
|
SDL_Window *w;
|
|
|
// force window to match device resolution on mobile
|
|
|
#ifdef HL_MOBILE
|
|
@@ -374,7 +374,7 @@ HL_PRIM SDL_Window *HL_NAME(win_create)(int width, int height) {
|
|
|
SDL_GetDesktopDisplayMode(0, &displayMode);
|
|
|
w = SDL_CreateWindow("", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS);
|
|
|
#else
|
|
|
- w = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE);
|
|
|
+ w = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN | (resizable ? SDL_WINDOW_RESIZABLE : 0));
|
|
|
#endif
|
|
|
# ifdef HL_WIN
|
|
|
// force window to show even if the debugger force process windows to be hidden
|
|
@@ -386,6 +386,10 @@ HL_PRIM SDL_Window *HL_NAME(win_create)(int width, int height) {
|
|
|
return w;
|
|
|
}
|
|
|
|
|
|
+HL_PRIM SDL_Window *HL_NAME(win_create)(int width, int height) {
|
|
|
+ return HL_NAME(win_create_ex)(width, height, false);
|
|
|
+}
|
|
|
+
|
|
|
HL_PRIM SDL_GLContext HL_NAME(win_get_glcontext)(SDL_Window *win) {
|
|
|
return SDL_GL_CreateContext(win);
|
|
|
}
|
|
@@ -445,6 +449,18 @@ HL_PRIM void HL_NAME(win_set_title)(SDL_Window *win, vbyte *title) {
|
|
|
SDL_SetWindowTitle(win, (char*)title);
|
|
|
}
|
|
|
|
|
|
+HL_PRIM void HL_NAME(win_set_position)(SDL_Window *win, int x, int y) {
|
|
|
+ SDL_SetWindowPosition(win, x, y);
|
|
|
+}
|
|
|
+
|
|
|
+HL_PRIM void HL_NAME(win_get_position)(SDL_Window *win, int *x, int *y) {
|
|
|
+ SDL_GetWindowPosition(win, x, y);
|
|
|
+}
|
|
|
+
|
|
|
+HL_PRIM void HL_NAME(win_center)(SDL_Window *win) {
|
|
|
+ SDL_SetWindowPosition(win, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
|
|
|
+}
|
|
|
+
|
|
|
HL_PRIM void HL_NAME(win_set_size)(SDL_Window *win, int width, int height) {
|
|
|
SDL_SetWindowSize(win, width, height);
|
|
|
}
|
|
@@ -499,11 +515,15 @@ HL_PRIM void HL_NAME(win_destroy)(SDL_Window *win, SDL_GLContext gl) {
|
|
|
|
|
|
#define TWIN _ABSTRACT(sdl_window)
|
|
|
#define TGL _ABSTRACT(sdl_gl)
|
|
|
+DEFINE_PRIM(TWIN, win_create_ex, _I32 _I32 _BOOL);
|
|
|
DEFINE_PRIM(TWIN, win_create, _I32 _I32);
|
|
|
DEFINE_PRIM(TGL, win_get_glcontext, TWIN);
|
|
|
DEFINE_PRIM(_BOOL, win_set_fullscreen, TWIN _I32);
|
|
|
DEFINE_PRIM(_VOID, win_resize, TWIN _I32);
|
|
|
DEFINE_PRIM(_VOID, win_set_title, TWIN _BYTES);
|
|
|
+DEFINE_PRIM(_VOID, win_set_position, TWIN _I32 _I32);
|
|
|
+DEFINE_PRIM(_VOID, win_get_position, TWIN _REF(_I32) _REF(_I32));
|
|
|
+DEFINE_PRIM(_VOID, win_center, TWIN);
|
|
|
DEFINE_PRIM(_VOID, win_set_size, TWIN _I32 _I32);
|
|
|
DEFINE_PRIM(_VOID, win_get_size, TWIN _REF(_I32) _REF(_I32));
|
|
|
DEFINE_PRIM(_VOID, win_swap_window, TWIN);
|