diff options
Diffstat (limited to 'gm/dftext.cpp')
-rwxr-xr-x | gm/dftext.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gm/dftext.cpp b/gm/dftext.cpp index acaffb2e1c..e36d58e845 100755 --- a/gm/dftext.cpp +++ b/gm/dftext.cpp @@ -56,10 +56,11 @@ protected: SkSurfaceProps::kLegacyFontHost_InitType); SkAutoTUnref<SkSurface> surface(SkSurface::NewRenderTarget(ctx, info, 0, &props)); SkCanvas* canvas = surface.get() ? surface->getCanvas() : inputCanvas; + // init our new canvas with the old canvas's matrix + canvas->setMatrix(inputCanvas->getTotalMatrix()); #else SkCanvas* canvas = inputCanvas; #endif - // apply global scale to test glyph positioning canvas->scale(1.05f, 1.05f); canvas->clear(0xffffffff); @@ -187,6 +188,9 @@ protected: #if SK_SUPPORT_GPU // render offscreen buffer if (surface) { + SkAutoCanvasRestore acr(inputCanvas, true); + // since we prepended this matrix already, we blit using identity + inputCanvas->resetMatrix(); SkImage* image = surface->newImageSnapshot(); inputCanvas->drawImage(image, 0, 0, NULL); image->unref(); |