]> git.sesse.net Git - nageru/commitdiff
Expose BlurEffect and UnsharpMaskEffect.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 21 Jul 2022 22:23:50 +0000 (00:23 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 21 Jul 2022 22:23:50 +0000 (00:23 +0200)
This was mostly so that people could sharpen the input if they wanted to
(even though unsharp mask is not the best sharpener). BlurEffect was added
mainly because it felt wrong that one could only use a compound effect and not
the underlying one.

nageru/theme.cpp
nageru/theme.h

index a88c6f61c70034bcf1c104804852b1e5364aaeca..937043f7ca72e96ad60bf7a4611857091bf13730 100644 (file)
@@ -6,6 +6,7 @@
 #include <stdarg.h>
 #include <lauxlib.h>
 #include <lua.hpp>
+#include <movit/blur_effect.h>
 #include <movit/deinterlace_effect.h>
 #include <movit/effect.h>
 #include <movit/effect_chain.h>
@@ -19,6 +20,7 @@
 #include <movit/resample_effect.h>
 #include <movit/resize_effect.h>
 #include <movit/util.h>
+#include <movit/unsharp_mask_effect.h>
 #include <movit/white_balance_effect.h>
 #include <movit/ycbcr.h>
 #include <movit/ycbcr_input.h>
@@ -140,6 +142,10 @@ Effect *instantiate_effect(EffectChain *chain, EffectType effect_type)
                return new MixEffect;
        case LIFT_GAMMA_GAIN_EFFECT:
                return new LiftGammaGainEffect;
+       case BLUR_EFFECT:
+               return new BlurEffect;
+       case UNSHARP_MASK_EFFECT:
+               return new UnsharpMaskEffect;
        default:
                fprintf(stderr, "Unhandled effect type %d\n", effect_type);
                abort();
@@ -622,6 +628,18 @@ int LiftGammaGainEffect_new(lua_State* L)
        return wrap_lua_object_nonowned<EffectBlueprint>(L, "EffectBlueprint", LIFT_GAMMA_GAIN_EFFECT);
 }
 
+int BlurEffect_new(lua_State* L)
+{
+       assert(lua_gettop(L) == 0);
+       return wrap_lua_object_nonowned<EffectBlueprint>(L, "EffectBlueprint", BLUR_EFFECT);
+}
+
+int UnsharpMaskEffect_new(lua_State* L)
+{
+       assert(lua_gettop(L) == 0);
+       return wrap_lua_object_nonowned<EffectBlueprint>(L, "EffectBlueprint", UNSHARP_MASK_EFFECT);
+}
+
 int InputStateInfo_get_width(lua_State* L)
 {
        assert(lua_gettop(L) == 2);
@@ -997,6 +1015,16 @@ const luaL_Reg LiftGammaGainEffect_funcs[] = {
        { NULL, NULL }
 };
 
+const luaL_Reg BlurEffect_funcs[] = {
+       { "new", BlurEffect_new },
+       { NULL, NULL }
+};
+
+const luaL_Reg UnsharpMaskEffect_funcs[] = {
+       { "new", UnsharpMaskEffect_new },
+       { NULL, NULL }
+};
+
 // End of effects.
 
 const luaL_Reg InputStateInfo_funcs[] = {
@@ -1558,6 +1586,8 @@ Theme::Theme(const string &filename, const vector<string> &search_dirs, Resource
        register_class("ResizeEffect", ResizeEffect_funcs, RESIZE_EFFECT);
        register_class("MultiplyEffect", MultiplyEffect_funcs, MULTIPLY_EFFECT);
        register_class("MixEffect", MixEffect_funcs, MIX_EFFECT);
+       register_class("BlurEffect", BlurEffect_funcs, BLUR_EFFECT);
+       register_class("UnsharpMaskEffect", UnsharpMaskEffect_funcs, UNSHARP_MASK_EFFECT);
        register_class("LiftGammaGainEffect", LiftGammaGainEffect_funcs, LIFT_GAMMA_GAIN_EFFECT);
        register_class("InputStateInfo", InputStateInfo_funcs);
        register_class("ThemeMenu", ThemeMenu_funcs);
index 024df7a378c2ba50fb1a054068fa8e39087667d4..8a0a92af7361d1cb50de5a1e9ee9f802f48c172c 100644 (file)
@@ -49,6 +49,8 @@ enum EffectType {
        MULTIPLY_EFFECT,
        MIX_EFFECT,
        LIFT_GAMMA_GAIN_EFFECT,
+       BLUR_EFFECT,
+       UNSHARP_MASK_EFFECT,
 
        NO_EFFECT_TYPE
 };