diff --git a/src/common/runtime.h b/src/common/runtime.h index 36e335221..d45e73524 100644 --- a/src/common/runtime.h +++ b/src/common/runtime.h @@ -43,6 +43,9 @@ class Object; class Module; class Reference; +template +class StrongRef; + /** * Registries represent special tables which can be accessed with * luax_insistregistry and luax_getregistry. @@ -285,6 +288,18 @@ int luax_register_searcher(lua_State *L, lua_CFunction f, int pos = -1); **/ void luax_pushtype(lua_State *L, love::Type &type, love::Object *object); +template +void luax_pushtype(lua_State *L, T *object) +{ + luax_pushtype(L, T::type, object); +} + +template +void luax_pushtype(lua_State *L, StrongRef &object) +{ + luax_pushtype(L, T::type, object); +} + /** * Creates a new Lua representation of the given object *without* checking if it * exists yet, and *without* storing it in a weak table. diff --git a/src/modules/audio/wrap_Audio.cpp b/src/modules/audio/wrap_Audio.cpp index 5079d399b..3bbd5b974 100644 --- a/src/modules/audio/wrap_Audio.cpp +++ b/src/modules/audio/wrap_Audio.cpp @@ -70,7 +70,7 @@ int w_newSource(lua_State *L) if (t != nullptr) { - luax_pushtype(L, love::audio::Source::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -88,7 +88,7 @@ int w_newQueueableSource(lua_State *L) if (t != nullptr) { - luax_pushtype(L, love::audio::Source::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -150,7 +150,7 @@ int w_pause(lua_State *L) lua_createtable(L, (int) sources.size(), 0); for (int i = 0; i < (int) sources.size(); i++) { - luax_pushtype(L, love::audio::Source::type, sources[i]); + luax_pushtype(L, sources[i]); lua_rawseti(L, -2, i+1); } return 1; @@ -270,7 +270,7 @@ int w_getRecordedData(lua_State *L) lua_pushnil(L); else { - luax_pushtype(L, love::sound::SoundData::type, sd); + luax_pushtype(L, sd); sd->release(); } return 1; @@ -285,7 +285,7 @@ int w_stopRecording(lua_State *L) lua_pushnil(L); else { - luax_pushtype(L, love::sound::SoundData::type, sd); + luax_pushtype(L, sd); sd->release(); } return 1; diff --git a/src/modules/audio/wrap_Source.cpp b/src/modules/audio/wrap_Source.cpp index 2328f58a3..f80317dd8 100644 --- a/src/modules/audio/wrap_Source.cpp +++ b/src/modules/audio/wrap_Source.cpp @@ -38,7 +38,7 @@ int w_Source_clone(lua_State *L) Source *t = luax_checksource(L, 1); Source *clone = nullptr; luax_catchexcept(L, [&](){ clone = t->clone(); }); - luax_pushtype(L, love::audio::Source::type, clone); + luax_pushtype(L, clone); clone->release(); return 1; } diff --git a/src/modules/filesystem/wrap_Filesystem.cpp b/src/modules/filesystem/wrap_Filesystem.cpp index a37404dd4..3d68aecd3 100644 --- a/src/modules/filesystem/wrap_Filesystem.cpp +++ b/src/modules/filesystem/wrap_Filesystem.cpp @@ -166,7 +166,7 @@ int w_newFile(lua_State *L) } } - luax_pushtype(L, File::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -246,7 +246,7 @@ int w_newFileData(lua_State *L) { return luax_ioError(L, "%s", e.what()); } - luax_pushtype(L, FileData::type, data); + luax_pushtype(L, data); return 1; } else @@ -260,7 +260,7 @@ int w_newFileData(lua_State *L) FileData *t = nullptr; luax_catchexcept(L, [&](){ t = instance()->newFileData(str, length, filename); }); - luax_pushtype(L, FileData::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -474,7 +474,7 @@ int w_lines(lua_State *L) return luaL_error(L, "Could not open file."); } - luax_pushtype(L, File::type, file); + luax_pushtype(L, file); file->release(); } else diff --git a/src/modules/font/wrap_Font.cpp b/src/modules/font/wrap_Font.cpp index 7a1d471dc..d26bd4b04 100644 --- a/src/modules/font/wrap_Font.cpp +++ b/src/modules/font/wrap_Font.cpp @@ -53,7 +53,7 @@ int w_newRasterizer(lua_State *L) [&](bool) { d->release(); } ); - luax_pushtype(L, Rasterizer::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -104,7 +104,7 @@ int w_newTrueTypeRasterizer(lua_State *L) ); } - luax_pushtype(L, Rasterizer::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -152,7 +152,7 @@ int w_newBMFontRasterizer(lua_State *L) [&](bool) { d->release(); for (auto id : images) id->release(); } ); - luax_pushtype(L, Rasterizer::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -169,7 +169,7 @@ int w_newImageRasterizer(lua_State *L) luax_catchexcept(L, [&](){ t = instance()->newImageRasterizer(d, glyphs, extraspacing); }); - luax_pushtype(L, Rasterizer::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -191,7 +191,7 @@ int w_newGlyphData(lua_State *L) t = instance()->newGlyphData(r, g); } - luax_pushtype(L, GlyphData::type, t); + luax_pushtype(L, t); t->release(); return 1; } diff --git a/src/modules/font/wrap_Rasterizer.cpp b/src/modules/font/wrap_Rasterizer.cpp index c090e0f8a..040203102 100644 --- a/src/modules/font/wrap_Rasterizer.cpp +++ b/src/modules/font/wrap_Rasterizer.cpp @@ -86,7 +86,7 @@ int w_Rasterizer_getGlyphData(lua_State *L) } }); - luax_pushtype(L, GlyphData::type, g); + luax_pushtype(L, g); g->release(); return 1; } diff --git a/src/modules/graphics/opengl/wrap_Canvas.cpp b/src/modules/graphics/opengl/wrap_Canvas.cpp index f7f4ad1a7..df18bf0eb 100644 --- a/src/modules/graphics/opengl/wrap_Canvas.cpp +++ b/src/modules/graphics/opengl/wrap_Canvas.cpp @@ -77,7 +77,7 @@ int w_Canvas_newImageData(lua_State *L) love::image::ImageData *img = nullptr; luax_catchexcept(L, [&](){ img = canvas->newImageData(image, x, y, w, h); }); - luax_pushtype(L, love::image::ImageData::type, img); + luax_pushtype(L, img); img->release(); return 1; } diff --git a/src/modules/graphics/opengl/wrap_Graphics.cpp b/src/modules/graphics/opengl/wrap_Graphics.cpp index b2a1533e6..45055618b 100644 --- a/src/modules/graphics/opengl/wrap_Graphics.cpp +++ b/src/modules/graphics/opengl/wrap_Graphics.cpp @@ -402,7 +402,7 @@ int w_newImage(lua_State *L) return luaL_error(L, "Could not load image."); // Push the type. - luax_pushtype(L, Image::type, image); + luax_pushtype(L, image); image->release(); return 1; } @@ -421,7 +421,7 @@ int w_newQuad(lua_State *L) double sh = luaL_checknumber(L, 6); Quad *quad = instance()->newQuad(v, sw, sh); - luax_pushtype(L, Quad::type, quad); + luax_pushtype(L, quad); quad->release(); return 1; } @@ -449,7 +449,7 @@ int w_newFont(lua_State *L) ); // Push the type. - luax_pushtype(L, Font::type, font); + luax_pushtype(L, font); font->release(); return 1; } @@ -469,7 +469,7 @@ int w_newImageFont(lua_State *L) const auto &idlevels = i->getImageData(); if (idlevels.empty()) return luaL_argerror(L, 1, "Image must not be compressed."); - luax_pushtype(L, love::image::ImageData::type, idlevels[0].get()); + luax_pushtype(L, idlevels[0].get()); lua_replace(L, 1); } @@ -491,7 +491,7 @@ int w_newImageFont(lua_State *L) Font *font = instance()->newFont(rasterizer, filter); // Push the type. - luax_pushtype(L, Font::type, font); + luax_pushtype(L, font); font->release(); return 1; } @@ -515,7 +515,7 @@ int w_newSpriteBatch(lua_State *L) [&](){ t = instance()->newSpriteBatch(texture, size, usage); } ); - luax_pushtype(L, SpriteBatch::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -534,7 +534,7 @@ int w_newParticleSystem(lua_State *L) [&](){ t = instance()->newParticleSystem(texture, int(size)); } ); - luax_pushtype(L, ParticleSystem::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -561,7 +561,7 @@ int w_newCanvas(lua_State *L) if (canvas == nullptr) return luaL_error(L, "Canvas not created, but no error thrown. I don't even..."); - luax_pushtype(L, Canvas::type, canvas); + luax_pushtype(L, canvas); canvas->release(); return 1; } @@ -654,7 +654,7 @@ int w_newShader(lua_State *L) try { Shader *shader = instance()->newShader(source); - luax_pushtype(L, Shader::type, shader); + luax_pushtype(L, shader); shader->release(); } catch (love::Exception &e) @@ -886,7 +886,7 @@ int w_newMesh(lua_State *L) else t = newStandardMesh(L); - luax_pushtype(L, Mesh::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -908,7 +908,7 @@ int w_newText(lua_State *L) luax_catchexcept(L, [&](){ t = instance()->newText(font, text); }); } - luax_pushtype(L, Text::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -924,7 +924,7 @@ int w_newVideo(lua_State *L) Video *video = nullptr; luax_catchexcept(L, [&]() { video = instance()->newVideo(stream); }); - luax_pushtype(L, Video::type, video); + luax_pushtype(L, video); video->release(); return 1; } @@ -1021,7 +1021,7 @@ int w_getFont(lua_State *L) Font *f = nullptr; luax_catchexcept(L, [&](){ f = instance()->getFont(); }); - luax_pushtype(L, Font::type, f); + luax_pushtype(L, f); return 1; } @@ -1254,7 +1254,7 @@ int w_newScreenshot(lua_State *L) luax_catchexcept(L, [&](){ i = instance()->newScreenshot(image, copyAlpha); }); - luax_pushtype(L, love::image::ImageData::type, i); + luax_pushtype(L, i); i->release(); return 1; } @@ -1306,7 +1306,7 @@ int w_getCanvas(lua_State *L) for (Canvas *c : canvases) { - luax_pushtype(L, Canvas::type, c); + luax_pushtype(L, c); n++; } @@ -1336,7 +1336,7 @@ int w_getShader(lua_State *L) { Shader *shader = instance()->getShader(); if (shader) - luax_pushtype(L, Shader::type, shader); + luax_pushtype(L, shader); else lua_pushnil(L); diff --git a/src/modules/graphics/opengl/wrap_Image.cpp b/src/modules/graphics/opengl/wrap_Image.cpp index d2444bd98..11599e6f2 100644 --- a/src/modules/graphics/opengl/wrap_Image.cpp +++ b/src/modules/graphics/opengl/wrap_Image.cpp @@ -98,7 +98,7 @@ int w_Image_getData(lua_State *L) { for (const auto &cdata : i->getCompressedData()) { - luax_pushtype(L, love::image::CompressedImageData::type, cdata.get()); + luax_pushtype(L, cdata.get()); n++; } } @@ -106,7 +106,7 @@ int w_Image_getData(lua_State *L) { for (const auto &data : i->getImageData()) { - luax_pushtype(L, love::image::ImageData::type, data.get()); + luax_pushtype(L, data.get()); n++; } } diff --git a/src/modules/graphics/opengl/wrap_ParticleSystem.cpp b/src/modules/graphics/opengl/wrap_ParticleSystem.cpp index 8f7e1884f..46d9d39e8 100644 --- a/src/modules/graphics/opengl/wrap_ParticleSystem.cpp +++ b/src/modules/graphics/opengl/wrap_ParticleSystem.cpp @@ -51,7 +51,7 @@ int w_ParticleSystem_clone(lua_State *L) ParticleSystem *clone = nullptr; luax_catchexcept(L, [&](){ clone = t->clone(); }); - luax_pushtype(L, ParticleSystem::type, clone); + luax_pushtype(L, clone); clone->release(); return 1; } @@ -612,7 +612,7 @@ int w_ParticleSystem_getQuads(lua_State *L) for (int i = 0; i < (int) quads.size(); i++) { - luax_pushtype(L, Quad::type, quads[i]); + luax_pushtype(L, quads[i]); lua_rawseti(L, -2, i + 1); } diff --git a/src/modules/graphics/opengl/wrap_Text.cpp b/src/modules/graphics/opengl/wrap_Text.cpp index 048965fc3..01067e792 100644 --- a/src/modules/graphics/opengl/wrap_Text.cpp +++ b/src/modules/graphics/opengl/wrap_Text.cpp @@ -199,7 +199,7 @@ int w_Text_getFont(lua_State *L) { Text *t = luax_checktext(L, 1); Font *f = t->getFont(); - luax_pushtype(L, Font::type, f); + luax_pushtype(L, f); return 1; } diff --git a/src/modules/graphics/opengl/wrap_Video.cpp b/src/modules/graphics/opengl/wrap_Video.cpp index e846b0a10..d48c9514b 100644 --- a/src/modules/graphics/opengl/wrap_Video.cpp +++ b/src/modules/graphics/opengl/wrap_Video.cpp @@ -40,7 +40,7 @@ Video *luax_checkvideo(lua_State *L, int idx) int w_Video_getStream(lua_State *L) { Video *video = luax_checkvideo(L, 1); - luax_pushtype(L, love::video::VideoStream::type, video->getStream()); + luax_pushtype(L, video->getStream()); return 1; } @@ -49,7 +49,7 @@ int w_Video_getSource(lua_State *L) Video *video = luax_checkvideo(L, 1); auto source = video->getSource(); if (source) - luax_pushtype(L, love::audio::Source::type, video->getSource()); + luax_pushtype(L, video->getSource()); else lua_pushnil(L); return 1; diff --git a/src/modules/image/wrap_Image.cpp b/src/modules/image/wrap_Image.cpp index 57928f2a0..b7b1c5d0a 100644 --- a/src/modules/image/wrap_Image.cpp +++ b/src/modules/image/wrap_Image.cpp @@ -73,7 +73,7 @@ int w_newImageData(lua_State *L) memcpy(t->getData(), bytes, t->getSize()); } - luax_pushtype(L, ImageData::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -87,7 +87,7 @@ int w_newImageData(lua_State *L) [&](bool) { data->release(); } ); - luax_pushtype(L, ImageData::type, t); + luax_pushtype(L, t); t->release(); return 1; } diff --git a/src/modules/image/wrap_ImageData.cpp b/src/modules/image/wrap_ImageData.cpp index 6fa1d2836..716bc7beb 100644 --- a/src/modules/image/wrap_ImageData.cpp +++ b/src/modules/image/wrap_ImageData.cpp @@ -282,7 +282,7 @@ int w_ImageData_encode(lua_State *L) love::filesystem::FileData *filedata = nullptr; luax_catchexcept(L, [&](){ filedata = t->encode(format, filename.c_str()); }); - luax_pushtype(L, love::filesystem::FileData::type, filedata); + luax_pushtype(L, filedata); filedata->release(); if (hasfilename) diff --git a/src/modules/joystick/wrap_JoystickModule.cpp b/src/modules/joystick/wrap_JoystickModule.cpp index d9f3965ac..5a2e5845a 100644 --- a/src/modules/joystick/wrap_JoystickModule.cpp +++ b/src/modules/joystick/wrap_JoystickModule.cpp @@ -40,7 +40,7 @@ int w_getJoysticks(lua_State *L) for (int i = 0; i < stickcount; i++) { Joystick *stick = instance()->getJoystick(i); - luax_pushtype(L, Joystick::type, stick); + luax_pushtype(L, stick); lua_rawseti(L, -2, i + 1); } diff --git a/src/modules/math/wrap_BezierCurve.cpp b/src/modules/math/wrap_BezierCurve.cpp index 3b3fb397a..1ae91dbad 100644 --- a/src/modules/math/wrap_BezierCurve.cpp +++ b/src/modules/math/wrap_BezierCurve.cpp @@ -44,7 +44,7 @@ int w_BezierCurve_getDerivative(lua_State *L) { BezierCurve *curve = luax_checkbeziercurve(L, 1); BezierCurve *deriv = new BezierCurve(curve->getDerivative()); - luax_pushtype(L, BezierCurve::type, deriv); + luax_pushtype(L, deriv); deriv->release(); return 1; } @@ -165,7 +165,7 @@ int w_BezierCurve_getSegment(lua_State *L) BezierCurve *segment; luax_catchexcept(L, [&](){ segment = curve->getSegment(t1, t2); }); - luax_pushtype(L, BezierCurve::type, segment); + luax_pushtype(L, segment); segment->release(); return 1; diff --git a/src/modules/math/wrap_Math.cpp b/src/modules/math/wrap_Math.cpp index a21e52d1e..5736ff93b 100644 --- a/src/modules/math/wrap_Math.cpp +++ b/src/modules/math/wrap_Math.cpp @@ -43,7 +43,7 @@ namespace math int w__getRandomGenerator(lua_State *L) { RandomGenerator *t = Math::instance.getRandomGenerator(); - luax_pushtype(L, RandomGenerator::type, t); + luax_pushtype(L, t); return 1; } @@ -74,7 +74,7 @@ int w_newRandomGenerator(lua_State *L) return luaL_error(L, "%s", lua_tostring(L, -1)); } - luax_pushtype(L, RandomGenerator::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -113,7 +113,7 @@ int w_newBezierCurve(lua_State *L) } BezierCurve *curve = Math::instance.newBezierCurve(points); - luax_pushtype(L, BezierCurve::type, curve); + luax_pushtype(L, curve); curve->release(); return 1; } @@ -342,7 +342,7 @@ int w_compress(lua_State *L) luax_catchexcept(L, [&](){ cdata = compress(format, rawdata, level); }); } - luax_pushtype(L, CompressedData::type, cdata); + luax_pushtype(L, cdata); return 1; } diff --git a/src/modules/mouse/wrap_Mouse.cpp b/src/modules/mouse/wrap_Mouse.cpp index 998d66417..bc50fbf7e 100644 --- a/src/modules/mouse/wrap_Mouse.cpp +++ b/src/modules/mouse/wrap_Mouse.cpp @@ -46,7 +46,7 @@ int w_newCursor(lua_State *L) luax_catchexcept(L, [&](){ cursor = instance()->newCursor(data, hotx, hoty); }); - luax_pushtype(L, Cursor::type, cursor); + luax_pushtype(L, cursor); cursor->release(); return 1; } @@ -62,7 +62,7 @@ int w_getSystemCursor(lua_State *L) Cursor *cursor = 0; luax_catchexcept(L, [&](){ cursor = instance()->getSystemCursor(systemCursor); }); - luax_pushtype(L, Cursor::type, cursor); + luax_pushtype(L, cursor); return 1; } @@ -85,7 +85,7 @@ int w_getCursor(lua_State *L) Cursor *cursor = instance()->getCursor(); if (cursor) - luax_pushtype(L, Cursor::type, cursor); + luax_pushtype(L, cursor); else lua_pushnil(L); diff --git a/src/modules/physics/box2d/Body.cpp b/src/modules/physics/box2d/Body.cpp index 3f2d23557..7895d2f9a 100644 --- a/src/modules/physics/box2d/Body.cpp +++ b/src/modules/physics/box2d/Body.cpp @@ -435,7 +435,7 @@ int Body::getFixtureList(lua_State *L) const Fixture *fixture = (Fixture *)Memoizer::find(f); if (!fixture) throw love::Exception("A fixture has escaped Memoizer!"); - luax_pushtype(L, Fixture::type, fixture); + luax_pushtype(L, fixture); lua_rawseti(L, -2, i); i++; } @@ -483,7 +483,7 @@ int Body::getContactList(lua_State *L) const else contact->retain(); - luax_pushtype(L, Contact::type, contact); + luax_pushtype(L, contact); contact->release(); lua_rawseti(L, -2, i); i++; diff --git a/src/modules/physics/box2d/Physics.cpp b/src/modules/physics/box2d/Physics.cpp index d2a82b799..4723815e7 100644 --- a/src/modules/physics/box2d/Physics.cpp +++ b/src/modules/physics/box2d/Physics.cpp @@ -146,7 +146,7 @@ int Physics::newPolygonShape(lua_State *L) } PolygonShape *p = new PolygonShape(s); - luax_pushtype(L, PolygonShape::type, p); + luax_pushtype(L, p); p->release(); return 1; } @@ -208,7 +208,7 @@ int Physics::newChainShape(lua_State *L) delete[] vecs; ChainShape *c = new ChainShape(s); - luax_pushtype(L, ChainShape::type, c); + luax_pushtype(L, c); c->release(); return 1; } diff --git a/src/modules/physics/box2d/World.cpp b/src/modules/physics/box2d/World.cpp index c51ea3d09..90ddeae35 100644 --- a/src/modules/physics/box2d/World.cpp +++ b/src/modules/physics/box2d/World.cpp @@ -59,7 +59,7 @@ void World::ContactCallback::process(b2Contact *contact, const b2ContactImpulse { Fixture *a = (Fixture *)Memoizer::find(contact->GetFixtureA()); if (a != nullptr) - luax_pushtype(L, Fixture::type, a); + luax_pushtype(L, a); else throw love::Exception("A fixture has escaped Memoizer!"); } @@ -68,7 +68,7 @@ void World::ContactCallback::process(b2Contact *contact, const b2ContactImpulse { Fixture *b = (Fixture *)Memoizer::find(contact->GetFixtureB()); if (b != nullptr) - luax_pushtype(L, Fixture::type, b); + luax_pushtype(L, b); else throw love::Exception("A fixture has escaped Memoizer!"); } @@ -79,7 +79,7 @@ void World::ContactCallback::process(b2Contact *contact, const b2ContactImpulse else cobj->retain(); - luax_pushtype(L, Contact::type, cobj); + luax_pushtype(L, cobj); cobj->release(); int args = 3; @@ -130,8 +130,8 @@ bool World::ContactFilter::process(Fixture *a, Fixture *b) if (ref != nullptr && L != nullptr) { ref->push(L); - luax_pushtype(L, Fixture::type, a); - luax_pushtype(L, Fixture::type, b); + luax_pushtype(L, a); + luax_pushtype(L, b); lua_call(L, 2, 1); return luax_toboolean(L, -1); } @@ -157,7 +157,7 @@ bool World::QueryCallback::ReportFixture(b2Fixture *fixture) Fixture *f = (Fixture *)Memoizer::find(fixture); if (!f) throw love::Exception("A fixture has escaped Memoizer!"); - luax_pushtype(L, Fixture::type, f); + luax_pushtype(L, f); lua_call(L, 1, 1); bool cont = luax_toboolean(L, -1); lua_pop(L, 1); @@ -186,7 +186,7 @@ float32 World::RayCastCallback::ReportFixture(b2Fixture *fixture, const b2Vec2 & Fixture *f = (Fixture *)Memoizer::find(fixture); if (!f) throw love::Exception("A fixture has escaped Memoizer!"); - luax_pushtype(L, Fixture::type, f); + luax_pushtype(L, f); b2Vec2 scaledPoint = Physics::scaleUp(point); lua_pushnumber(L, scaledPoint.x); lua_pushnumber(L, scaledPoint.y); @@ -475,7 +475,7 @@ int World::getBodyList(lua_State *L) const Body *body = (Body *)Memoizer::find(b); if (!body) throw love::Exception("A body has escaped Memoizer!"); - luax_pushtype(L, Body::type, body); + luax_pushtype(L, body); lua_rawseti(L, -2, i); i++; } @@ -493,7 +493,7 @@ int World::getJointList(lua_State *L) const if (!j) break; Joint *joint = (Joint *)Memoizer::find(j); if (!joint) throw love::Exception("A joint has escaped Memoizer!"); - luax_pushtype(L, Joint::type, joint); + luax_pushtype(L, joint); lua_rawseti(L, -2, i); i++; } @@ -514,7 +514,7 @@ int World::getContactList(lua_State *L) const contact = new Contact(c); else contact->retain(); - luax_pushtype(L, Contact::type, contact); + luax_pushtype(L, contact); contact->release(); lua_rawseti(L, -2, i); i++; diff --git a/src/modules/physics/box2d/wrap_Body.cpp b/src/modules/physics/box2d/wrap_Body.cpp index 3fc1d1ccd..267c26ce7 100644 --- a/src/modules/physics/box2d/wrap_Body.cpp +++ b/src/modules/physics/box2d/wrap_Body.cpp @@ -526,7 +526,7 @@ int w_Body_getWorld(lua_State *L) { Body *t = luax_checkbody(L, 1); World *world = t->getWorld(); - luax_pushtype(L, World::type, world); + luax_pushtype(L, world); return 1; } diff --git a/src/modules/physics/box2d/wrap_ChainShape.cpp b/src/modules/physics/box2d/wrap_ChainShape.cpp index ad1bba38e..390e43200 100644 --- a/src/modules/physics/box2d/wrap_ChainShape.cpp +++ b/src/modules/physics/box2d/wrap_ChainShape.cpp @@ -68,7 +68,7 @@ int w_ChainShape_getChildEdge(lua_State *L) int index = (int) luaL_checknumber(L, 2) - 1; // Convert from 1-based index EdgeShape *e = 0; luax_catchexcept(L, [&](){ e = c->getChildEdge(index); }); - luax_pushtype(L, EdgeShape::type, e); + luax_pushtype(L, e); e->release(); return 1; } diff --git a/src/modules/physics/box2d/wrap_Contact.cpp b/src/modules/physics/box2d/wrap_Contact.cpp index f00f75864..8b48c9af2 100644 --- a/src/modules/physics/box2d/wrap_Contact.cpp +++ b/src/modules/physics/box2d/wrap_Contact.cpp @@ -146,8 +146,8 @@ int w_Contact_getFixtures(lua_State *L) Fixture *b = nullptr; luax_catchexcept(L, [&](){ t->getFixtures(a, b); }); - luax_pushtype(L, Fixture::type, a); - luax_pushtype(L, Fixture::type, b); + luax_pushtype(L, a); + luax_pushtype(L, b); return 2; } diff --git a/src/modules/physics/box2d/wrap_Fixture.cpp b/src/modules/physics/box2d/wrap_Fixture.cpp index 5f443b1fa..bdd6de676 100644 --- a/src/modules/physics/box2d/wrap_Fixture.cpp +++ b/src/modules/physics/box2d/wrap_Fixture.cpp @@ -111,7 +111,7 @@ int w_Fixture_getBody(lua_State *L) Body *body = t->getBody(); if (body == 0) return 0; - luax_pushtype(L, Body::type, body); + luax_pushtype(L, body); return 1; } @@ -124,19 +124,19 @@ int w_Fixture_getShape(lua_State *L) switch (shape->getType()) { case Shape::SHAPE_EDGE: - luax_pushtype(L, EdgeShape::type, shape); + luax_pushtype(L, shape); break; case Shape::SHAPE_CHAIN: - luax_pushtype(L, ChainShape::type, shape); + luax_pushtype(L, shape); break; case Shape::SHAPE_CIRCLE: - luax_pushtype(L, CircleShape::type, shape); + luax_pushtype(L, shape); break; case Shape::SHAPE_POLYGON: - luax_pushtype(L, PolygonShape::type, shape); + luax_pushtype(L, shape); break; default: - luax_pushtype(L, Shape::type, shape); + luax_pushtype(L, shape); break; } return 1; diff --git a/src/modules/physics/box2d/wrap_Joint.cpp b/src/modules/physics/box2d/wrap_Joint.cpp index 1c1aebf47..28b21afa3 100644 --- a/src/modules/physics/box2d/wrap_Joint.cpp +++ b/src/modules/physics/box2d/wrap_Joint.cpp @@ -103,8 +103,8 @@ int w_Joint_getBodies(lua_State *L) b2 = t->getBodyB(); }); - luax_pushtype(L, Body::type, b1); - luax_pushtype(L, Body::type, b2); + luax_pushtype(L, b1); + luax_pushtype(L, b2); return 2; } diff --git a/src/modules/physics/box2d/wrap_Physics.cpp b/src/modules/physics/box2d/wrap_Physics.cpp index ce993d2b7..afd798386 100644 --- a/src/modules/physics/box2d/wrap_Physics.cpp +++ b/src/modules/physics/box2d/wrap_Physics.cpp @@ -59,7 +59,7 @@ int w_newWorld(lua_State *L) World *w; luax_catchexcept(L, [&](){ w = instance()->newWorld(gx, gy, sleep); }); - luax_pushtype(L, World::type, w); + luax_pushtype(L, w); w->release(); return 1; @@ -78,7 +78,7 @@ int w_newBody(lua_State *L) Body *body; luax_catchexcept(L, [&](){ body = instance()->newBody(world, x, y, btype); }); - luax_pushtype(L, Body::type, body); + luax_pushtype(L, body); body->release(); return 1; } @@ -90,7 +90,7 @@ int w_newFixture(lua_State *L) float density = (float)luaL_optnumber(L, 3, 1.0f); Fixture *fixture; luax_catchexcept(L, [&](){ fixture = instance()->newFixture(body, shape, density); }); - luax_pushtype(L, Fixture::type, fixture); + luax_pushtype(L, fixture); fixture->release(); return 1; } @@ -104,7 +104,7 @@ int w_newCircleShape(lua_State *L) float radius = (float)luaL_checknumber(L, 1); CircleShape *shape; luax_catchexcept(L, [&](){ shape = instance()->newCircleShape(radius); }); - luax_pushtype(L, CircleShape::type, shape); + luax_pushtype(L, shape); shape->release(); return 1; } @@ -115,7 +115,7 @@ int w_newCircleShape(lua_State *L) float radius = (float)luaL_checknumber(L, 3); CircleShape *shape; luax_catchexcept(L, [&](){ shape = instance()->newCircleShape(x, y, radius); }); - luax_pushtype(L, CircleShape::type, shape); + luax_pushtype(L, shape); shape->release(); return 1; } @@ -133,7 +133,7 @@ int w_newRectangleShape(lua_State *L) float h = (float)luaL_checknumber(L, 2); PolygonShape *shape; luax_catchexcept(L, [&](){ shape = instance()->newRectangleShape(w, h); }); - luax_pushtype(L, PolygonShape::type, shape); + luax_pushtype(L, shape); shape->release(); return 1; } @@ -146,7 +146,7 @@ int w_newRectangleShape(lua_State *L) float angle = (float)luaL_optnumber(L, 5, 0); PolygonShape *shape; luax_catchexcept(L, [&](){ shape = instance()->newRectangleShape(x, y, w, h, angle); }); - luax_pushtype(L, PolygonShape::type, shape); + luax_pushtype(L, shape); shape->release(); return 1; } @@ -162,7 +162,7 @@ int w_newEdgeShape(lua_State *L) float y2 = (float)luaL_checknumber(L, 4); EdgeShape *shape; luax_catchexcept(L, [&](){ shape = instance()->newEdgeShape(x1, y1, x2, y2); }); - luax_pushtype(L, EdgeShape::type, shape); + luax_pushtype(L, shape); shape->release(); return 1; } @@ -194,7 +194,7 @@ int w_newDistanceJoint(lua_State *L) luax_catchexcept(L, [&]() { j = instance()->newDistanceJoint(body1, body2, x1, y1, x2, y2, collideConnected); }); - luax_pushtype(L, DistanceJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } @@ -206,7 +206,7 @@ int w_newMouseJoint(lua_State *L) float y = (float)luaL_checknumber(L, 3); MouseJoint *j; luax_catchexcept(L, [&](){ j = instance()->newMouseJoint(body, x, y); }); - luax_pushtype(L, MouseJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } @@ -237,7 +237,7 @@ int w_newRevoluteJoint(lua_State *L) luax_catchexcept(L, [&]() { j = instance()->newRevoluteJoint(body1, body2, xA, yA, xB, yB, collideConnected, referenceAngle); }); - luax_pushtype(L, RevoluteJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } @@ -272,7 +272,7 @@ int w_newPrismaticJoint(lua_State *L) luax_catchexcept(L, [&]() { j = instance()->newPrismaticJoint(body1, body2, xA, yA, xB, yB, ax, ay, collideConnected, referenceAngle); }); - luax_pushtype(L, PrismaticJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } @@ -296,7 +296,7 @@ int w_newPulleyJoint(lua_State *L) luax_catchexcept(L, [&]() { j = instance()->newPulleyJoint(body1, body2, b2Vec2(gx1,gy1), b2Vec2(gx2,gy2), b2Vec2(x1,y1), b2Vec2(x2,y2), ratio, collideConnected); }); - luax_pushtype(L, PulleyJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } @@ -312,7 +312,7 @@ int w_newGearJoint(lua_State *L) luax_catchexcept(L, [&]() { j = instance()->newGearJoint(joint1, joint2, ratio, collideConnected); }); - luax_pushtype(L, GearJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } @@ -341,7 +341,7 @@ int w_newFrictionJoint(lua_State *L) luax_catchexcept(L, [&]() { j = instance()->newFrictionJoint(body1, body2, xA, yA, xB, yB, collideConnected); }); - luax_pushtype(L, FrictionJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } @@ -372,7 +372,7 @@ int w_newWeldJoint(lua_State *L) luax_catchexcept(L, [&]() { j = instance()->newWeldJoint(body1, body2, xA, yA, xB, yB, collideConnected, referenceAngle); }); - luax_pushtype(L, WeldJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } @@ -406,7 +406,7 @@ int w_newWheelJoint(lua_State *L) luax_catchexcept(L, [&]() { j = instance()->newWheelJoint(body1, body2, xA, yA, xB, yB, ax, ay, collideConnected); }); - luax_pushtype(L, WheelJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } @@ -425,7 +425,7 @@ int w_newRopeJoint(lua_State *L) luax_catchexcept(L, [&]() { j = instance()->newRopeJoint(body1, body2, x1, y1, x2, y2, maxLength, collideConnected); }); - luax_pushtype(L, RopeJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } @@ -447,7 +447,7 @@ int w_newMotorJoint(lua_State *L) { luax_catchexcept(L, [&](){ j = instance()->newMotorJoint(body1, body2); }); } - luax_pushtype(L, MotorJoint::type, j); + luax_pushtype(L, j); j->release(); return 1; } diff --git a/src/modules/sound/wrap_Decoder.cpp b/src/modules/sound/wrap_Decoder.cpp index 7b79b5f5b..a93e5a50b 100644 --- a/src/modules/sound/wrap_Decoder.cpp +++ b/src/modules/sound/wrap_Decoder.cpp @@ -74,7 +74,7 @@ int w_Decoder_decode(lua_State *L) decoded / (t->getBitDepth() / 8 * t->getChannels()), t->getSampleRate(), t->getBitDepth(), t->getChannels()); - luax_pushtype(L, SoundData::type, s); + luax_pushtype(L, s); s->release(); }); } diff --git a/src/modules/sound/wrap_Sound.cpp b/src/modules/sound/wrap_Sound.cpp index 50656602e..c0f00ee85 100644 --- a/src/modules/sound/wrap_Sound.cpp +++ b/src/modules/sound/wrap_Sound.cpp @@ -46,7 +46,7 @@ int w_newDecoder(lua_State *L) if (t == nullptr) return luaL_error(L, "Extension \"%s\" not supported.", data->getExtension().c_str()); - luax_pushtype(L, Decoder::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -77,7 +77,7 @@ int w_newSoundData(lua_State *L) luax_catchexcept(L, [&](){ t = instance()->newSoundData(luax_checkdecoder(L, 1)); }); } - luax_pushtype(L, SoundData::type, t); + luax_pushtype(L, t); t->release(); return 1; } diff --git a/src/modules/thread/wrap_ThreadModule.cpp b/src/modules/thread/wrap_ThreadModule.cpp index aeaff4c97..5ea591d8f 100644 --- a/src/modules/thread/wrap_ThreadModule.cpp +++ b/src/modules/thread/wrap_ThreadModule.cpp @@ -76,7 +76,7 @@ int w_newThread(lua_State *L) } LuaThread *t = instance()->newThread(name, data); - luax_pushtype(L, LuaThread::type, t); + luax_pushtype(L, t); t->release(); return 1; } @@ -84,7 +84,7 @@ int w_newThread(lua_State *L) int w_newChannel(lua_State *L) { Channel *c = instance()->newChannel(); - luax_pushtype(L, Channel::type, c); + luax_pushtype(L, c); c->release(); return 1; } @@ -93,7 +93,7 @@ int w_getChannel(lua_State *L) { std::string name = luax_checkstring(L, 1); Channel *c = instance()->getChannel(name); - luax_pushtype(L, Channel::type, c); + luax_pushtype(L, c); c->release(); return 1; } diff --git a/src/modules/video/wrap_Video.cpp b/src/modules/video/wrap_Video.cpp index fcb2d0619..d69318088 100644 --- a/src/modules/video/wrap_Video.cpp +++ b/src/modules/video/wrap_Video.cpp @@ -45,7 +45,7 @@ int w_newVideoStream(lua_State *L) stream = instance()->newVideoStream(file); }); - luax_pushtype(L, VideoStream::type, stream); + luax_pushtype(L, stream); stream->release(); return 1; } diff --git a/src/modules/window/wrap_Window.cpp b/src/modules/window/wrap_Window.cpp index c3b6f31b9..968d84d7c 100644 --- a/src/modules/window/wrap_Window.cpp +++ b/src/modules/window/wrap_Window.cpp @@ -359,7 +359,7 @@ int w_setIcon(lua_State *L) int w_getIcon(lua_State *L) { image::ImageData *i = instance()->getIcon(); - luax_pushtype(L, image::ImageData::type, i); + luax_pushtype(L, i); return 1; }