X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=theme.cpp;h=4843b0cd3fff65519d2eaea3243c9eb69dd64271;hb=9c824f7164eeecaa1aa904d69c5bb64fb3a6a27b;hp=c1a25bab8171c06ae0fded9f563b0186fc8cab0a;hpb=1a40f407d1941d3b000ace3057aa0249e39ed1d5;p=nageru diff --git a/theme.cpp b/theme.cpp index c1a25ba..4843b0c 100644 --- a/theme.cpp +++ b/theme.cpp @@ -78,10 +78,11 @@ int EffectChain_new(lua_State* L) int EffectChain_add_live_input(lua_State* L) { - assert(lua_gettop(L) == 1); + assert(lua_gettop(L) == 2); Theme *theme = get_theme_updata(L); EffectChain *chain = (EffectChain *)luaL_checkudata(L, 1, "EffectChain"); - return wrap_lua_object(L, "LiveInputWrapper", theme, chain); + bool override_bounce = checkbool(L, 2); + return wrap_lua_object(L, "LiveInputWrapper", theme, chain, override_bounce); } int EffectChain_add_effect(lua_State* L) @@ -311,7 +312,7 @@ const luaL_Reg MixEffect_funcs[] = { } // namespace -LiveInputWrapper::LiveInputWrapper(Theme *theme, EffectChain *chain) +LiveInputWrapper::LiveInputWrapper(Theme *theme, EffectChain *chain, bool override_bounce) : theme(theme) { ImageFormat inout_format; @@ -328,7 +329,11 @@ LiveInputWrapper::LiveInputWrapper(Theme *theme, EffectChain *chain) input_ycbcr_format.luma_coefficients = YCBCR_REC_601; input_ycbcr_format.full_range = false; - input = new YCbCrInput(inout_format, input_ycbcr_format, WIDTH, HEIGHT, YCBCR_INPUT_SPLIT_Y_AND_CBCR); + if (override_bounce) { + input = new NonBouncingYCbCrInput(inout_format, input_ycbcr_format, WIDTH, HEIGHT, YCBCR_INPUT_SPLIT_Y_AND_CBCR); + } else { + input = new YCbCrInput(inout_format, input_ycbcr_format, WIDTH, HEIGHT, YCBCR_INPUT_SPLIT_Y_AND_CBCR); + } chain->add_input(input); }