Пример #1
0
	int w_newFontData(lua_State * L)
	{
		Rasterizer * r = luax_checkrasterizer(L, 1);
		FontData * f = instance->newFontData(r);
		luax_newtype(L, "FontData", FONT_FONT_DATA_T, (void*)f);
		return 1;
	}
Пример #2
0
	int w_newGlyphData(lua_State * L)
	{
		Rasterizer * r = luax_checkrasterizer(L, 1);
		unsigned short g = (unsigned short)luaL_checkint(L, 2);

		GlyphData * t = instance->newGlyphData(r, g);
		luax_newtype(L, "GlyphData", FONT_GLYPH_DATA_T, t);
		return 1;
	}
Пример #3
0
int w_newGlyphData(lua_State *L)
{
	Rasterizer *r = luax_checkrasterizer(L, 1);
	GlyphData *t = nullptr;

	// newGlyphData accepts a unicode character or a codepoint number.
	if (lua_type(L, 2) == LUA_TSTRING)
	{
		std::string glyph = luax_checkstring(L, 2);
		luax_catchexcept(L, [&](){ t = instance()->newGlyphData(r, glyph); });
	}
	else
	{
		uint32 g = (uint32) luaL_checknumber(L, 2);
		t = instance()->newGlyphData(r, g);
	}

	luax_pushtype(L, FONT_GLYPH_DATA_ID, t);
	t->release();
	return 1;
}