X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Ftheme.cpp;h=53b7543cee3a9f5fe07b1d9c8dc441633fd5b171;hb=14b28982a33cb9bea818446217e69fdf4de13dab;hp=fb1fa2fd7380c5422fc00dba6eb221dccc350f8c;hpb=337e2d06624b4b46eb2e7e5365e2ece219f9f100;p=nageru diff --git a/nageru/theme.cpp b/nageru/theme.cpp index fb1fa2f..53b7543 100644 --- a/nageru/theme.cpp +++ b/nageru/theme.cpp @@ -791,7 +791,7 @@ const luaL_Reg Scene_funcs[] = { const luaL_Reg Block_funcs[] = { { "display", Block_display }, - { "choose_alternative", Block_choose_alternative }, + { "choose", Block_choose }, { "enable", Block_enable }, { "disable", Block_disable }, { "set_int", Block_set_int }, @@ -1237,16 +1237,16 @@ Theme::Theme(const string &filename, const vector &search_dirs, Resource register_class("ImageInput", ImageInput_funcs); register_class("VideoInput", VideoInput_funcs); register_class("HTMLInput", HTMLInput_funcs); - register_class("IdentityEffect", IdentityEffect_funcs); - register_class("WhiteBalanceEffect", WhiteBalanceEffect_funcs); - register_class("ResampleEffect", ResampleEffect_funcs); - register_class("PaddingEffect", PaddingEffect_funcs); - register_class("IntegralPaddingEffect", IntegralPaddingEffect_funcs); - register_class("OverlayEffect", OverlayEffect_funcs); - register_class("ResizeEffect", ResizeEffect_funcs); - register_class("MultiplyEffect", MultiplyEffect_funcs); - register_class("MixEffect", MixEffect_funcs); - register_class("LiftGammaGainEffect", LiftGammaGainEffect_funcs); + register_class("IdentityEffect", IdentityEffect_funcs, IDENTITY_EFFECT); + register_class("WhiteBalanceEffect", WhiteBalanceEffect_funcs, WHITE_BALANCE_EFFECT); + register_class("ResampleEffect", ResampleEffect_funcs, RESAMPLE_EFFECT); + register_class("PaddingEffect", PaddingEffect_funcs, PADDING_EFFECT); + register_class("IntegralPaddingEffect", IntegralPaddingEffect_funcs, INTEGRAL_PADDING_EFFECT); + register_class("OverlayEffect", OverlayEffect_funcs, OVERLAY_EFFECT); + register_class("ResizeEffect", ResizeEffect_funcs, RESIZE_EFFECT); + register_class("MultiplyEffect", MultiplyEffect_funcs, MULTIPLY_EFFECT); + register_class("MixEffect", MixEffect_funcs, MIX_EFFECT); + register_class("LiftGammaGainEffect", LiftGammaGainEffect_funcs, LIFT_GAMMA_GAIN_EFFECT); register_class("InputStateInfo", InputStateInfo_funcs); register_class("ThemeMenu", ThemeMenu_funcs); @@ -1296,7 +1296,7 @@ void Theme::register_constants() assert(lua_gettop(L) == 0); } -void Theme::register_class(const char *class_name, const luaL_Reg *funcs) +void Theme::register_class(const char *class_name, const luaL_Reg *funcs, EffectType effect_type) { assert(lua_gettop(L) == 0); luaL_newmetatable(L, class_name); // mt = {} @@ -1304,6 +1304,10 @@ void Theme::register_class(const char *class_name, const luaL_Reg *funcs) luaL_setfuncs(L, funcs, 1); // for (name,f in funcs) { mt[name] = f, with upvalue {theme} } lua_pushvalue(L, -1); lua_setfield(L, -2, "__index"); // mt.__index = mt + if (effect_type != NO_EFFECT_TYPE) { + lua_pushnumber(L, effect_type); + lua_setfield(L, -2, "__effect_type_id"); // mt.__effect_type_id = effect_type + } lua_setglobal(L, class_name); // ClassName = mt assert(lua_gettop(L) == 0); }