Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(846)

Unified Diff: src/utils/SkLua.cpp

Issue 1498293002: report back colorfilters in lua (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/lua/filter-counter.lua » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/utils/SkLua.cpp
diff --git a/src/utils/SkLua.cpp b/src/utils/SkLua.cpp
index 307e5f6152d0e72d445f3b051d7a3a6ea686d8af..d85fb91a033a4164046f934e7b6e1f2dbb8232eb 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);
« no previous file with comments | « no previous file | tools/lua/filter-counter.lua » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698