diff --git a/src/modules/image/ImageData.cpp b/src/modules/image/ImageData.cpp index 48a59a657..030e43c89 100644 --- a/src/modules/image/ImageData.cpp +++ b/src/modules/image/ImageData.cpp @@ -130,22 +130,18 @@ void ImageData::paste(ImageData *src, int dx, int dy, int sx, int sy, int sw, in dy -= sy; sy = 0; } + if (dx + sw > getWidth()) - { sw = getWidth() - dx; - } + if (dy + sh > getHeight()) - { sh = getHeight() - dy; - } + if (sx + sw > src->getWidth()) - { sw = src->getWidth() - sx; - } + if (sy + sh > src->getHeight()) - { sh = src->getHeight() - sy; - } // If the dimensions match up, copy the entire memory stream in one go if (sw == getWidth() && getWidth() == src->getWidth() diff --git a/src/modules/touch/Touch.h b/src/modules/touch/Touch.h index 433059243..70fe33144 100644 --- a/src/modules/touch/Touch.h +++ b/src/modules/touch/Touch.h @@ -57,7 +57,7 @@ public: /** * Gets a list of the IDs of all currently active touches. **/ - virtual std::vector getIDs() const = 0; + virtual std::vector getTouches() const = 0; /** * Gets the position in pixels of a specific touch, using its ID. diff --git a/src/modules/touch/sdl/Touch.cpp b/src/modules/touch/sdl/Touch.cpp index 5330f51d8..6c1fee489 100644 --- a/src/modules/touch/sdl/Touch.cpp +++ b/src/modules/touch/sdl/Touch.cpp @@ -30,7 +30,7 @@ namespace touch namespace sdl { -std::vector Touch::getIDs() const +std::vector Touch::getTouches() const { std::vector ids; ids.reserve(touches.size()); diff --git a/src/modules/touch/sdl/Touch.h b/src/modules/touch/sdl/Touch.h index 56d862a57..00b51a271 100644 --- a/src/modules/touch/sdl/Touch.h +++ b/src/modules/touch/sdl/Touch.h @@ -43,7 +43,7 @@ public: virtual ~Touch() {} - std::vector getIDs() const override; + std::vector getTouches() const override; void getPosition(int64 id, double &x, double &y) const override; double getPressure(int64 id) const override; diff --git a/src/modules/touch/wrap_Touch.cpp b/src/modules/touch/wrap_Touch.cpp index e8e8900b2..37059a168 100644 --- a/src/modules/touch/wrap_Touch.cpp +++ b/src/modules/touch/wrap_Touch.cpp @@ -40,9 +40,9 @@ int64 luax_checktouchid(lua_State *L, int idx) return (int64) (intptr_t) lua_touserdata(L, 1); } -int w_getIDs(lua_State *L) +int w_getTouches(lua_State *L) { - std::vector ids = instance()->getIDs(); + std::vector ids = instance()->getTouches(); lua_createtable(L, (int) ids.size(), 0); @@ -85,7 +85,7 @@ int w_getPressure(lua_State *L) static const luaL_Reg functions[] = { - { "getIDs", w_getIDs }, + { "getTouches", w_getTouches }, { "getPosition", w_getPosition }, { "getPressure", w_getPressure }, { 0, 0 } diff --git a/src/modules/touch/wrap_Touch.h b/src/modules/touch/wrap_Touch.h index 6b715d2eb..161a4b1f6 100644 --- a/src/modules/touch/wrap_Touch.h +++ b/src/modules/touch/wrap_Touch.h @@ -32,7 +32,7 @@ namespace touch { int64 luax_checktouchid(lua_State *L, int idx); -int w_getIDs(lua_State *L); +int w_getTouches(lua_State *L); int w_getPosition(lua_State *L); int w_getPressure(lua_State *L); extern "C" LOVE_EXPORT int luaopen_love_touch(lua_State *L);