| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "PictureRenderer.h" | 8 #include "PictureRenderer.h" |
| 9 #include "picture_utils.h" | 9 #include "picture_utils.h" |
| 10 #include "SamplePipeControllers.h" | 10 #include "SamplePipeControllers.h" |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 sk_tools::setup_bitmap(&bitmap, width, height); | 105 sk_tools::setup_bitmap(&bitmap, width, height); |
| 106 canvas = SkNEW_ARGS(SkCanvas, (bitmap)); | 106 canvas = SkNEW_ARGS(SkCanvas, (bitmap)); |
| 107 } | 107 } |
| 108 break; | 108 break; |
| 109 #if SK_SUPPORT_GPU | 109 #if SK_SUPPORT_GPU |
| 110 #if SK_ANGLE | 110 #if SK_ANGLE |
| 111 case kAngle_DeviceType: | 111 case kAngle_DeviceType: |
| 112 // fall through | 112 // fall through |
| 113 #endif | 113 #endif |
| 114 case kGPU_DeviceType: { | 114 case kGPU_DeviceType: { |
| 115 SkAutoTUnref<GrRenderTarget> rt; | 115 SkAutoTUnref<GrSurface> target; |
| 116 bool grSuccess = false; | |
| 117 if (fGrContext) { | 116 if (fGrContext) { |
| 118 // create a render target to back the device | 117 // create a render target to back the device |
| 119 GrTextureDesc desc; | 118 GrTextureDesc desc; |
| 120 desc.fConfig = kSkia8888_GrPixelConfig; | 119 desc.fConfig = kSkia8888_GrPixelConfig; |
| 121 desc.fFlags = kRenderTarget_GrTextureFlagBit; | 120 desc.fFlags = kRenderTarget_GrTextureFlagBit; |
| 122 desc.fWidth = width; | 121 desc.fWidth = width; |
| 123 desc.fHeight = height; | 122 desc.fHeight = height; |
| 124 desc.fSampleCnt = 0; | 123 desc.fSampleCnt = 0; |
| 125 GrTexture* tex = fGrContext->createUncachedTexture(desc, NULL, 0
); | 124 target.reset(fGrContext->createUncachedTexture(desc, NULL, 0)); |
| 126 if (tex) { | |
| 127 rt.reset(tex->asRenderTarget()); | |
| 128 rt.get()->ref(); | |
| 129 tex->unref(); | |
| 130 grSuccess = NULL != rt.get(); | |
| 131 } | |
| 132 } | 125 } |
| 133 if (!grSuccess) { | 126 if (NULL == target.get()) { |
| 134 SkASSERT(0); | 127 SkASSERT(0); |
| 135 return NULL; | 128 return NULL; |
| 136 } | 129 } |
| 137 | 130 |
| 138 SkAutoTUnref<SkGpuDevice> device(SkNEW_ARGS(SkGpuDevice, (fGrContext
, rt))); | 131 SkAutoTUnref<SkGpuDevice> device(SkGpuDevice::Create(target)); |
| 139 canvas = SkNEW_ARGS(SkCanvas, (device.get())); | 132 canvas = SkNEW_ARGS(SkCanvas, (device.get())); |
| 140 break; | 133 break; |
| 141 } | 134 } |
| 142 #endif | 135 #endif |
| 143 default: | 136 default: |
| 144 SkASSERT(0); | 137 SkASSERT(0); |
| 145 return NULL; | 138 return NULL; |
| 146 } | 139 } |
| 147 setUpFilter(canvas, fDrawFilters); | 140 setUpFilter(canvas, fDrawFilters); |
| 148 this->scaleToScaleFactor(canvas); | 141 this->scaleToScaleFactor(canvas); |
| (...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 849 virtual SkString getConfigNameInternal() SK_OVERRIDE { | 842 virtual SkString getConfigNameInternal() SK_OVERRIDE { |
| 850 return SkString("picture_clone"); | 843 return SkString("picture_clone"); |
| 851 } | 844 } |
| 852 }; | 845 }; |
| 853 | 846 |
| 854 PictureRenderer* CreatePictureCloneRenderer() { | 847 PictureRenderer* CreatePictureCloneRenderer() { |
| 855 return SkNEW(PictureCloneRenderer); | 848 return SkNEW(PictureCloneRenderer); |
| 856 } | 849 } |
| 857 | 850 |
| 858 } // namespace sk_tools | 851 } // namespace sk_tools |
| OLD | NEW |