X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=theme.cpp;h=ca4de4fdb22029037438bcedde53769ae03276c6;hb=6ffaabac0a523617b686f40c154a25cb548cc561;hp=cea91726e7dfa0730fc6ea17a6d5d156f1f5cc63;hpb=4c144e82c20912463cf7268723e564fa6eb8f1c0;p=nageru diff --git a/theme.cpp b/theme.cpp index cea9172..ca4de4f 100644 --- a/theme.cpp +++ b/theme.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -219,6 +220,7 @@ Effect *get_effect(lua_State *L, int idx) luaL_testudata(L, idx, "ResizeEffect") || luaL_testudata(L, idx, "MultiplyEffect") || luaL_testudata(L, idx, "MixEffect") || + luaL_testudata(L, idx, "LiftGammaGainEffect") || luaL_testudata(L, idx, "ImageInput")) { return *(Effect **)lua_touserdata(L, idx); } @@ -617,6 +619,12 @@ int MixEffect_new(lua_State* L) return wrap_lua_object_nonowned(L, "MixEffect"); } +int LiftGammaGainEffect_new(lua_State* L) +{ + assert(lua_gettop(L) == 0); + return wrap_lua_object_nonowned(L, "LiftGammaGainEffect"); +} + int InputStateInfo_get_width(lua_State* L) { assert(lua_gettop(L) == 2); @@ -865,6 +873,15 @@ const luaL_Reg MixEffect_funcs[] = { { NULL, NULL } }; +const luaL_Reg LiftGammaGainEffect_funcs[] = { + { "new", LiftGammaGainEffect_new }, + { "set_float", Effect_set_float }, + { "set_int", Effect_set_int }, + { "set_vec3", Effect_set_vec3 }, + { "set_vec4", Effect_set_vec4 }, + { NULL, NULL } +}; + const luaL_Reg InputStateInfo_funcs[] = { { "get_width", InputStateInfo_get_width }, { "get_height", InputStateInfo_get_height }, @@ -1007,6 +1024,9 @@ void LiveInputWrapper::connect_signal_raw(int signal_num, const InputState &inpu const PBOFrameAllocator::Userdata *userdata = (const PBOFrameAllocator::Userdata *)first_frame.frame->userdata; width = userdata->last_width[first_frame.field_number]; height = userdata->last_height[first_frame.field_number]; + if (userdata->last_interlaced) { + height *= 2; + } } movit::YCbCrLumaCoefficients ycbcr_coefficients = input_state.ycbcr_coefficients[signal_num]; @@ -1196,6 +1216,7 @@ Theme::Theme(const string &filename, const vector &search_dirs, Resource register_class("ResizeEffect", ResizeEffect_funcs); register_class("MultiplyEffect", MultiplyEffect_funcs); register_class("MixEffect", MixEffect_funcs); + register_class("LiftGammaGainEffect", LiftGammaGainEffect_funcs); register_class("InputStateInfo", InputStateInfo_funcs); register_class("ThemeMenu", ThemeMenu_funcs);