diff options
Diffstat (limited to 'src/utils/SkLua.cpp')
-rw-r--r-- | src/utils/SkLua.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/utils/SkLua.cpp b/src/utils/SkLua.cpp index 307e5f6152..d85fb91a03 100644 --- a/src/utils/SkLua.cpp +++ b/src/utils/SkLua.cpp @@ -13,6 +13,7 @@ #include "SkBlurImageFilter.h" #include "SkCanvas.h" +#include "SkColorFilter.h" #include "SkData.h" #include "SkDocument.h" #include "SkGradientShader.h" @@ -42,6 +43,7 @@ template <typename T> const char* get_mtname(); } DEF_MTNAME(SkCanvas) +DEF_MTNAME(SkColorFilter) DEF_MTNAME(SkDocument) DEF_MTNAME(SkImage) DEF_MTNAME(SkImageFilter) @@ -1079,6 +1081,22 @@ static int lpaint_getEffects(lua_State* L) { return 1; } +static int lpaint_getColorFilter(lua_State* L) { + const SkPaint* paint = get_obj<SkPaint>(L, 1); + SkColorFilter* cf = paint->getColorFilter(); + if (cf) { + push_ref(L, cf); + return 1; + } + return 0; +} + +static int lpaint_setColorFilter(lua_State* L) { + SkPaint* paint = get_obj<SkPaint>(L, 1); + paint->setColorFilter(get_ref<SkColorFilter>(L, 2)); + return 0; +} + static int lpaint_getImageFilter(lua_State* L) { const SkPaint* paint = get_obj<SkPaint>(L, 1); SkImageFilter* imf = paint->getImageFilter(); @@ -1170,6 +1188,8 @@ static const struct luaL_Reg gSkPaint_Methods[] = { { "measureText", lpaint_measureText }, { "getFontMetrics", lpaint_getFontMetrics }, { "getEffects", lpaint_getEffects }, + { "getColorFilter", lpaint_getColorFilter }, + { "setColorFilter", lpaint_setColorFilter }, { "getImageFilter", lpaint_getImageFilter }, { "setImageFilter", lpaint_setImageFilter }, { "getShader", lpaint_getShader }, @@ -1294,6 +1314,18 @@ static const struct luaL_Reg gSkPathEffect_Methods[] = { /////////////////////////////////////////////////////////////////////////////// +static int lpcolorfilter_gc(lua_State* L) { + get_ref<SkColorFilter>(L, 1)->unref(); + return 0; +} + +static const struct luaL_Reg gSkColorFilter_Methods[] = { + { "__gc", lpcolorfilter_gc }, + { nullptr, nullptr } +}; + +/////////////////////////////////////////////////////////////////////////////// + static int lpimagefilter_gc(lua_State* L) { get_ref<SkImageFilter>(L, 1)->unref(); return 0; @@ -2048,6 +2080,7 @@ static void register_Sk(lua_State* L) { void SkLua::Load(lua_State* L) { register_Sk(L); REG_CLASS(L, SkCanvas); + REG_CLASS(L, SkColorFilter); REG_CLASS(L, SkDocument); REG_CLASS(L, SkImage); REG_CLASS(L, SkImageFilter); |