mirror of
https://github.com/love2d/love.git
synced 2026-08-16 08:11:02 +02:00
Improved the performance of love.window.getPixelScale / toPixels / fromPixels by caching some values. Made some coordinate space-sensitive code use the proper conversions to get to the correct coordinate space.
--HG-- branch : minor
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
**/
|
||||
|
||||
#include "Keyboard.h"
|
||||
#include "window/Window.h"
|
||||
|
||||
namespace love
|
||||
{
|
||||
@@ -117,11 +118,18 @@ void Keyboard::setTextInput(bool enable)
|
||||
SDL_StopTextInput();
|
||||
}
|
||||
|
||||
void Keyboard::setTextInput(bool enable, int x, int y, int w, int h)
|
||||
void Keyboard::setTextInput(bool enable, double x, double y, double w, double h)
|
||||
{
|
||||
// TODO: SetTextInputRect expects coordinates in window-space, but
|
||||
// setTextInput uses pixels. We should convert here.
|
||||
SDL_Rect rect = {x, y, w, h};
|
||||
// SDL_SetTextInputRect expects coordinates in window-space but setTextInput
|
||||
// takes pixels, so we should convert.
|
||||
window::Window *window = Module::getInstance<window::Window>(M_WINDOW);
|
||||
if (window)
|
||||
{
|
||||
window->pixelToWindowCoords(&x, &y);
|
||||
window->pixelToWindowCoords(&w, &h);
|
||||
}
|
||||
|
||||
SDL_Rect rect = {(int) x, (int) y, (int) w, (int) h};
|
||||
SDL_SetTextInputRect(&rect);
|
||||
|
||||
setTextInput(enable);
|
||||
|
||||
Reference in New Issue
Block a user