aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkRemote.h
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2015-10-20 15:04:22 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-10-20 15:04:22 -0700
commit98f015431bc39a722d1ad25e5a2daa9ff9536193 (patch)
tree3dd454a84b74c52d5846f8e29d9fd2496de4b3be /src/core/SkRemote.h
parentb1dda9b4cd4488b01fb043ec9a937c42f5e71a2d (diff)
SkRemote: shaders
Diffstat (limited to 'src/core/SkRemote.h')
-rw-r--r--src/core/SkRemote.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/core/SkRemote.h b/src/core/SkRemote.h
index ed99c0f866..6e95f3a158 100644
--- a/src/core/SkRemote.h
+++ b/src/core/SkRemote.h
@@ -11,6 +11,7 @@
#include "SkCanvas.h"
#include "SkPaint.h"
#include "SkRemote_protocol.h"
+#include "SkShader.h"
#include "SkTHash.h"
#include "SkTypes.h"
@@ -45,6 +46,7 @@ namespace SkRemote {
virtual void define(ID, const Misc&) = 0;
virtual void define(ID, const SkPath&) = 0;
virtual void define(ID, const Stroke&) = 0;
+ virtual void define(ID, SkShader*) = 0;
virtual void define(ID, SkXfermode*) = 0;
virtual void undefine(ID) = 0;
@@ -54,12 +56,12 @@ namespace SkRemote {
virtual void setMatrix(ID matrix) = 0;
- // TODO: struct CommonIDs { ID misc; ID xfermode; ... }
+ // TODO: struct CommonIDs { ID misc, shader, xfermode; ... }
// for IDs that affect both fill + stroke?
- virtual void clipPath(ID path, SkRegion::Op, bool aa) = 0;
- virtual void fillPath(ID path, ID misc, ID xfermode) = 0;
- virtual void strokePath(ID path, ID misc, ID xfermode, ID stroke) = 0;
+ virtual void clipPath(ID path, SkRegion::Op, bool aa) = 0;
+ virtual void fillPath(ID path, ID misc, ID shader, ID xfermode) = 0;
+ virtual void strokePath(ID path, ID misc, ID shader, ID xfermode, ID stroke) = 0;
};
class LookupScope;
@@ -84,6 +86,7 @@ namespace SkRemote {
virtual bool lookup(const Misc&, ID*, LookupScope*) = 0;
virtual bool lookup(const SkPath&, ID*, LookupScope*) = 0;
virtual bool lookup(const Stroke&, ID*, LookupScope*) = 0;
+ virtual bool lookup(const SkShader*, ID*, LookupScope*) = 0;
virtual bool lookup(const SkXfermode*, ID*, LookupScope*) = 0;
virtual void cleanup(Encoder*) = 0;
@@ -134,6 +137,7 @@ namespace SkRemote {
void define(ID, const Misc&) override;
void define(ID, const SkPath&) override;
void define(ID, const Stroke&) override;
+ void define(ID, SkShader*) override;
void define(ID, SkXfermode*) override;
void undefine(ID) override;
@@ -143,9 +147,9 @@ namespace SkRemote {
void setMatrix(ID matrix) override;
- void clipPath(ID path, SkRegion::Op, bool aa) override;
- void fillPath(ID path, ID misc, ID xfermode) override;
- void strokePath(ID path, ID misc, ID xfermode, ID stroke) override;
+ void clipPath(ID path, SkRegion::Op, bool aa) override;
+ void fillPath(ID path, ID misc, ID shader, ID xfermode) override;
+ void strokePath(ID path, ID misc, ID shader, ID xfermode, ID stroke) override;
// Maps ID -> T.
template <typename T, Type kType>
@@ -218,6 +222,7 @@ namespace SkRemote {
IDMap<Misc , Type::kMisc > fMisc;
IDMap<SkPath , Type::kPath > fPath;
IDMap<Stroke , Type::kStroke> fStroke;
+ ReffedIDMap<SkShader, Type::kShader> fShader;
ReffedIDMap<SkXfermode, Type::kXfermode> fXfermode;
SkCanvas* fCanvas;