aboutsummaryrefslogtreecommitdiff
path: root/samplecode/SampleApp.cpp
diff options
context:
space:
mode:
authorbsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-03-29 20:52:23 +0000
committerbsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-03-29 20:52:23 +0000
commit11f0b519766dabed4ce882f3ee7c07a68d3ccb52 (patch)
treea24df14209f74dac930584f0cc22d8e72ae06517 /samplecode/SampleApp.cpp
parentcf3edc9c972ce1696d1fe21dcddbabbca2999361 (diff)
Fix ref leak on GrGpu.
Review URL: http://codereview.appspot.com/4323043/ git-svn-id: http://skia.googlecode.com/svn/trunk@1015 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode/SampleApp.cpp')
-rw-r--r--samplecode/SampleApp.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index 0cc85fef01..c71326bb74 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -342,6 +342,13 @@ bool SampleWindow::make3DReady() {
#if defined(SK_SUPPORT_GL)
if (attachGL()) {
+#if 0
+ if (NULL != fGrContext) {
+ GrAssert(1 == fGrContext->refcnt());
+ fGrContext->unref();
+ fGrContext = NULL;
+ }
+#endif
if (NULL == fGrContext) {
#if defined(SK_USE_SHADERS)
fGrContext = GrContext::Create(GrGpu::kOpenGL_Shaders_Engine, NULL);
@@ -490,14 +497,14 @@ void SampleWindow::draw(SkCanvas* canvas) {
m.mapXY(cx, cy, &center);
cx = center.fX;
cy = center.fY;
-
+
m.setTranslate(-cx, -cy);
m.postScale(fZoomScale, fZoomScale);
m.postTranslate(cx, cy);
-
+
canvas->concat(m);
}
-
+
// Apply any gesture matrix
if (true) {
const SkMatrix& localM = fGesture.localM();
@@ -506,12 +513,12 @@ void SampleWindow::draw(SkCanvas* canvas) {
}
canvas->concat(localM);
canvas->concat(fGesture.globalM());
-
+
if (fGesture.isActive()) {
this->inval(NULL);
}
}
-
+
if (fNClip) {
this->INHERITED::draw(canvas);
SkBitmap orig = capture_bitmap(canvas);
@@ -684,7 +691,7 @@ SkCanvas* SampleWindow::beforeChildren(SkCanvas* canvas) {
bitmap.width(), bitmap.height(),
false, false);
fGpuCanvas->setDevice(device)->unref();
-
+
fGpuCanvas->concat(canvas->getTotalMatrix());
canvas = fGpuCanvas;