Add window.scale, let window width/height and mouse events be in logical points
This commit is contained in:
@@ -536,9 +536,8 @@ namespace lime {
|
||||
case SDL_WINDOWEVENT_SIZE_CHANGED:
|
||||
|
||||
windowEvent.type = WINDOW_RESIZE;
|
||||
SDL_GL_GetDrawableSize (SDL_GetWindowFromID (event->window.windowID), &windowEvent.width, &windowEvent.height);
|
||||
//windowEvent.width = event->window.data1;
|
||||
//windowEvent.height = event->window.data2;
|
||||
windowEvent.width = event->window.data1;
|
||||
windowEvent.height = event->window.data2;
|
||||
break;
|
||||
|
||||
case SDL_WINDOWEVENT_RESTORED: windowEvent.type = WINDOW_RESTORE; break;
|
||||
|
||||
@@ -85,6 +85,24 @@ namespace lime {
|
||||
}
|
||||
|
||||
|
||||
double SDLRenderer::GetScale () {
|
||||
|
||||
int outputWidth;
|
||||
int outputHeight;
|
||||
|
||||
SDL_GetRendererOutputSize (sdlRenderer, &outputWidth, &outputHeight);
|
||||
|
||||
int width;
|
||||
int height;
|
||||
|
||||
SDL_GetWindowSize (sdlWindow, &width, &height);
|
||||
|
||||
double scale = outputWidth / width;
|
||||
return scale;
|
||||
|
||||
}
|
||||
|
||||
|
||||
value SDLRenderer::Lock () {
|
||||
|
||||
int width;
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace lime {
|
||||
|
||||
virtual void Flip ();
|
||||
virtual void* GetContext ();
|
||||
virtual double GetScale ();
|
||||
virtual value Lock ();
|
||||
virtual void MakeCurrent ();
|
||||
virtual const char* Type ();
|
||||
|
||||
@@ -173,19 +173,7 @@ namespace lime {
|
||||
int width;
|
||||
int height;
|
||||
|
||||
SDL_GL_GetDrawableSize (sdlWindow, &width, &height);
|
||||
|
||||
SDL_Renderer* sdlRenderer = SDL_GetRenderer (sdlWindow);
|
||||
|
||||
if (sdlRenderer) {
|
||||
|
||||
SDL_GetRendererOutputSize (sdlRenderer, &width, &height);
|
||||
|
||||
} else {
|
||||
|
||||
SDL_GetWindowSize (sdlWindow, &width, &height);
|
||||
|
||||
}
|
||||
SDL_GetWindowSize (sdlWindow, &width, &height);
|
||||
|
||||
return height;
|
||||
|
||||
@@ -204,17 +192,7 @@ namespace lime {
|
||||
int width;
|
||||
int height;
|
||||
|
||||
SDL_Renderer* sdlRenderer = SDL_GetRenderer (sdlWindow);
|
||||
|
||||
if (sdlRenderer) {
|
||||
|
||||
SDL_GetRendererOutputSize (sdlRenderer, &width, &height);
|
||||
|
||||
} else {
|
||||
|
||||
SDL_GetWindowSize (sdlWindow, &width, &height);
|
||||
|
||||
}
|
||||
SDL_GetWindowSize (sdlWindow, &width, &height);
|
||||
|
||||
return width;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user