diff --git a/readme.md b/readme.md index 7349d8fd0..b0c42434b 100644 --- a/readme.md +++ b/readme.md @@ -61,7 +61,7 @@ Dependencies ------------ - SDL2 -- OpenGL +- OpenGL 2.1+ / OpenGL ES 2+ - OpenAL - Lua / LuaJIT / LLVM-lua - jpeg-turbo diff --git a/src/modules/event/sdl/Event.cpp b/src/modules/event/sdl/Event.cpp index be6e3a067..cdcc5615b 100644 --- a/src/modules/event/sdl/Event.cpp +++ b/src/modules/event/sdl/Event.cpp @@ -352,7 +352,7 @@ Message *Event::convert(const SDL_Event &e) const Proxy proxy; proxy.object = new love::filesystem::DroppedFile(e.drop.file); proxy.type = FILESYSTEM_DROPPED_FILE_ID; - vargs.push_back(new Variant(FILESYSTEM_DROPPED_FILE_ID, &proxy)); + vargs.push_back(new Variant(proxy.type, &proxy)); msg = new Message("filedropped", vargs); proxy.object->release(); } @@ -406,7 +406,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const if (!proxy.object) break; - vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy)); + vargs.push_back(new Variant(proxy.type, (void *) &proxy)); vargs.push_back(new Variant((double)(e.jbutton.button+1))); msg = new Message((e.type == SDL_JOYBUTTONDOWN) ? "joystickpressed" : "joystickreleased", @@ -419,7 +419,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const if (!proxy.object) break; - vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy)); + vargs.push_back(new Variant(proxy.type, (void *) &proxy)); vargs.push_back(new Variant((double)(e.jaxis.axis+1))); float value = joystick::Joystick::clampval(e.jaxis.value / 32768.0f); vargs.push_back(new Variant((double) value)); @@ -435,7 +435,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const if (!proxy.object) break; - vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy)); + vargs.push_back(new Variant(proxy.type, (void *) &proxy)); vargs.push_back(new Variant((double)(e.jhat.hat+1))); vargs.push_back(new Variant(txt, strlen(txt))); msg = new Message("joystickhat", vargs); @@ -453,7 +453,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const if (!proxy.object) break; - vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy)); + vargs.push_back(new Variant(proxy.type, (void *) &proxy)); vargs.push_back(new Variant(txt, strlen(txt))); msg = new Message(e.type == SDL_CONTROLLERBUTTONDOWN ? "gamepadpressed" : "gamepadreleased", vargs); @@ -469,7 +469,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const if (!proxy.object) break; - vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy)); + vargs.push_back(new Variant(proxy.type, (void *) &proxy)); vargs.push_back(new Variant(txt, strlen(txt))); float value = joystick::Joystick::clampval(e.caxis.value / 32768.0f); @@ -483,7 +483,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const proxy.type = JOYSTICK_JOYSTICK_ID; if (proxy.object) { - vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy)); + vargs.push_back(new Variant(proxy.type, (void *) &proxy)); msg = new Message("joystickadded", vargs); } break; @@ -494,7 +494,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const if (proxy.object) { joymodule->removeJoystick((joystick::Joystick *) proxy.object); - vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy)); + vargs.push_back(new Variant(proxy.type, (void *) &proxy)); msg = new Message("joystickremoved", vargs); } break; diff --git a/src/modules/graphics/opengl/wrap_Graphics.cpp b/src/modules/graphics/opengl/wrap_Graphics.cpp index dae71db08..8c9c21157 100644 --- a/src/modules/graphics/opengl/wrap_Graphics.cpp +++ b/src/modules/graphics/opengl/wrap_Graphics.cpp @@ -632,6 +632,7 @@ int w_newText(lua_State *L) } luax_pushtype(L, GRAPHICS_TEXT_ID, t); + t->release(); return 1; } diff --git a/src/modules/mouse/sdl/Mouse.cpp b/src/modules/mouse/sdl/Mouse.cpp index 72ed2e787..4a84a79e9 100644 --- a/src/modules/mouse/sdl/Mouse.cpp +++ b/src/modules/mouse/sdl/Mouse.cpp @@ -146,7 +146,7 @@ void Mouse::getPosition(double &x, double &y) const void Mouse::setPosition(double x, double y) { - love::window::Window *window = love::window::sdl::Window::getSingleton(); + window::Window *window = Module::getInstance(Module::M_WINDOW); SDL_Window *handle = nullptr; if (window) @@ -196,14 +196,14 @@ bool Mouse::isVisible() const void Mouse::setGrabbed(bool grab) { - love::window::Window *window = love::window::sdl::Window::getSingleton(); + window::Window *window = Module::getInstance(Module::M_WINDOW); if (window) window->setMouseGrab(grab); } bool Mouse::isGrabbed() const { - love::window::Window *window = love::window::sdl::Window::getSingleton(); + window::Window *window = Module::getInstance(Module::M_WINDOW); if (window) return window->isMouseGrabbed(); else diff --git a/src/modules/window/Window.h b/src/modules/window/Window.h index d451c63e0..5fe8a59da 100644 --- a/src/modules/window/Window.h +++ b/src/modules/window/Window.h @@ -172,8 +172,7 @@ public: virtual int showMessageBox(const MessageBoxData &data) = 0; //virtual static Window *createSingleton() = 0; - //virtual static Window *getSingleton() = 0; - // No virtual statics, of course, but you are supposed to implement these statics. + // No virtual statics, of course, but you are supposed to implement this static. static bool getConstant(const char *in, Setting &out); static bool getConstant(Setting in, const char *&out); diff --git a/src/modules/window/sdl/Window.cpp b/src/modules/window/sdl/Window.cpp index 8982ce0b5..66d165711 100644 --- a/src/modules/window/sdl/Window.cpp +++ b/src/modules/window/sdl/Window.cpp @@ -970,11 +970,6 @@ love::window::Window *Window::createSingleton() return singleton; } -love::window::Window *Window::getSingleton() -{ - return singleton; -} - const char *Window::getName() const { return "love.window.sdl"; diff --git a/src/modules/window/sdl/Window.h b/src/modules/window/sdl/Window.h index 7635b7467..994408e89 100644 --- a/src/modules/window/sdl/Window.h +++ b/src/modules/window/sdl/Window.h @@ -101,7 +101,6 @@ public: int showMessageBox(const MessageBoxData &data); static love::window::Window *createSingleton(); - static love::window::Window *getSingleton(); const char *getName() const;