diff --git a/libs/directx/dx/Window.hx b/libs/directx/dx/Window.hx index a0c5b7872..dba321a58 100644 --- a/libs/directx/dx/Window.hx +++ b/libs/directx/dx/Window.hx @@ -28,6 +28,7 @@ class Window { public var title(default, set) : String; public var width(get, never) : Int; public var height(get, never) : Int; + public var windowToPixelRatio(get, never) : Float; public var minWidth(get, never) : Int; public var minHeight(get, never) : Int; public var maxWidth(get, never) : Int; @@ -112,6 +113,11 @@ class Window { return h; } + function get_windowToPixelRatio() { + // Not yet implemented + return 1.0; + } + function get_minWidth() { var w = 0; winGetMinSize(win, w, null); diff --git a/libs/sdl/sdl.c b/libs/sdl/sdl.c index bbcfb3f3e..dea66f25d 100644 --- a/libs/sdl/sdl.c +++ b/libs/sdl/sdl.c @@ -526,6 +526,10 @@ HL_PRIM void HL_NAME(win_set_max_size)(SDL_Window *win, int width, int height) { SDL_SetWindowMaximumSize(win, width, height); } +HL_PRIM void HL_NAME(win_get_pixel_size)(SDL_Window *win, int *width, int *height) { + SDL_GL_GetDrawableSize(win, width, height); +} + HL_PRIM void HL_NAME(win_get_size)(SDL_Window *win, int *width, int *height) { SDL_GetWindowSize(win, width, height); } @@ -605,6 +609,7 @@ DEFINE_PRIM(_VOID, win_get_position, TWIN _REF(_I32) _REF(_I32)); DEFINE_PRIM(_VOID, win_set_size, TWIN _I32 _I32); DEFINE_PRIM(_VOID, win_set_min_size, TWIN _I32 _I32); DEFINE_PRIM(_VOID, win_set_max_size, TWIN _I32 _I32); +DEFINE_PRIM(_VOID, win_get_pixel_size, TWIN _REF(_I32) _REF(_I32)); DEFINE_PRIM(_VOID, win_get_size, TWIN _REF(_I32) _REF(_I32)); DEFINE_PRIM(_VOID, win_get_min_size, TWIN _REF(_I32) _REF(_I32)); DEFINE_PRIM(_VOID, win_get_max_size, TWIN _REF(_I32) _REF(_I32)); diff --git a/libs/sdl/sdl/Window.hx b/libs/sdl/sdl/Window.hx index 899307101..e9b2dd7fe 100644 --- a/libs/sdl/sdl/Window.hx +++ b/libs/sdl/sdl/Window.hx @@ -50,6 +50,7 @@ class Window { public var vsync(default, set) : Bool; public var width(get, never) : Int; public var height(get, never) : Int; + public var windowToPixelRatio(get, never) : Float; public var minWidth(get, never) : Int; public var minHeight(get, never) : Int; public var maxWidth(get, never) : Int; @@ -176,6 +177,14 @@ class Window { return w; } + function get_windowToPixelRatio() { + var pixelHeight = 0; + winGetPixelSize(win, null, pixelHeight); + var h : Float = height; + + return h / pixelHeight; + } + function get_height() { var h = 0; winGetSize(win, null, h); @@ -312,6 +321,9 @@ class Window { static function winGetSize( win : WinPtr, width : hl.Ref, height : hl.Ref ) { } + static function winGetPixelSize( win : WinPtr, width : hl.Ref, height : hl.Ref ) { + } + static function winGetMinSize( win : WinPtr, width : hl.Ref, height : hl.Ref ) { }