support direct writing to top layer, and hide getTopLayer()
this should remove many of the chrome callers that today call
accessBitmap on the toplayer, so they can read/write those pixels.
The ultimate fix will be to support custom allocation of raster layers
(via GDI/cairo/mac) so we can remove PlatformDevice subclassing in
skia/ext
BUG=skia:
R=bsalomon@google.com, scroggo@google.com
Review URL: https://codereview.chromium.org/197433002
git-svn-id: http://skia.googlecode.com/svn/trunk@13774 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp
index aebf6fb..e80853c 100644
--- a/gm/beziereffects.cpp
+++ b/gm/beziereffects.cpp
@@ -60,8 +60,7 @@
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
- SkBaseDevice* device = canvas->getTopDevice();
- GrRenderTarget* rt = device->accessRenderTarget();
+ GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget();
if (NULL == rt) {
return;
}
@@ -219,8 +218,7 @@
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
- SkBaseDevice* device = canvas->getTopDevice();
- GrRenderTarget* rt = device->accessRenderTarget();
+ GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget();
if (NULL == rt) {
return;
}
@@ -411,8 +409,7 @@
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
- SkBaseDevice* device = canvas->getTopDevice();
- GrRenderTarget* rt = device->accessRenderTarget();
+ GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget();
if (NULL == rt) {
return;
}
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp
index ac8ec72..4e79500 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -103,8 +103,7 @@
}
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
- SkBaseDevice* device = canvas->getTopDevice();
- GrRenderTarget* rt = device->accessRenderTarget();
+ GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget();
if (NULL == rt) {
return;
}
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index a79ff54..6c63af9 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -66,12 +66,8 @@
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
#if SK_SUPPORT_GPU
- SkBaseDevice* device = canvas->getTopDevice();
- GrContext* context = NULL;
- GrRenderTarget* rt = device->accessRenderTarget();
- if (NULL != rt) {
- context = rt->getContext();
- }
+ GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget();
+ GrContext* context = rt ? rt->getContext() : NULL;
if (kEffect_Type == fType && NULL == context) {
return;
}
diff --git a/gm/texdata.cpp b/gm/texdata.cpp
index a87684e..72735a1 100644
--- a/gm/texdata.cpp
+++ b/gm/texdata.cpp
@@ -14,7 +14,6 @@
#include "GrContext.h"
#include "effects/GrSimpleTextureEffect.h"
#include "SkColorPriv.h"
-#include "SkDevice.h"
namespace skiagm {
@@ -38,8 +37,7 @@
virtual uint32_t onGetFlags() const SK_OVERRIDE { return kGPUOnly_Flag; }
virtual void onDraw(SkCanvas* canvas) {
- SkBaseDevice* device = canvas->getTopDevice();
- GrRenderTarget* target = device->accessRenderTarget();
+ GrRenderTarget* target = canvas->internal_private_accessTopLayerRenderTarget();
GrContext* ctx = canvas->getGrContext();
if (ctx && target) {
SkAutoTArray<SkPMColor> gTextureData((2 * S) * (2 * S));