OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "GrTest.h" | 9 #include "GrTest.h" |
10 | 10 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 | 46 |
47 #include "GrBufferAllocPool.h" | 47 #include "GrBufferAllocPool.h" |
48 #include "GrInOrderDrawBuffer.h" | 48 #include "GrInOrderDrawBuffer.h" |
49 #include "GrGpu.h" | 49 #include "GrGpu.h" |
50 | 50 |
51 class GrOptDrawState; | 51 class GrOptDrawState; |
52 | 52 |
53 class MockGpu : public GrGpu { | 53 class MockGpu : public GrGpu { |
54 public: | 54 public: |
55 MockGpu(GrContext* context) : INHERITED(context) { fCaps.reset(SkNEW(GrDrawT
argetCaps)); } | 55 MockGpu(GrContext* context) : INHERITED(context) { fCaps.reset(SkNEW(GrDrawT
argetCaps)); } |
56 ~MockGpu() SK_OVERRIDE {} | 56 virtual ~MockGpu() { } |
57 bool canWriteTexturePixels(const GrTexture*, GrPixelConfig srcConfig) const
SK_OVERRIDE { | 57 virtual bool canWriteTexturePixels(const GrTexture*, |
| 58 GrPixelConfig srcConfig) const SK_OVERRID
E { |
58 return true; | 59 return true; |
59 } | 60 } |
60 | 61 |
61 bool readPixelsWillPayForYFlip(GrRenderTarget* renderTarget, | 62 virtual bool readPixelsWillPayForYFlip(GrRenderTarget* renderTarget, |
62 int left, int top, | 63 int left, int top, |
63 int width, int height, | 64 int width, int height, |
64 GrPixelConfig config, | 65 GrPixelConfig config, |
65 size_t rowBytes) const SK_OVERRIDE { return f
alse; } | 66 size_t rowBytes) const SK_OVERRIDE {
return false; } |
66 void buildProgramDesc(const GrOptDrawState&, | 67 virtual void buildProgramDesc(const GrOptDrawState&, |
67 const GrProgramDesc::DescInfo&, | 68 const GrProgramDesc::DescInfo&, |
68 GrGpu::DrawType, | 69 GrGpu::DrawType, |
69 GrProgramDesc* desc) SK_OVERRIDE {} | 70 GrProgramDesc* desc) SK_OVERRIDE { } |
70 | 71 |
71 void discard(GrRenderTarget*) SK_OVERRIDE {} | 72 virtual void discard(GrRenderTarget*) SK_OVERRIDE { } |
72 | 73 |
73 bool canCopySurface(const GrSurface* dst, | 74 virtual bool canCopySurface(const GrSurface* dst, |
74 const GrSurface* src, | 75 const GrSurface* src, |
75 const SkIRect& srcRect, | 76 const SkIRect& srcRect, |
76 const SkIPoint& dstPoint) SK_OVERRIDE { return false; }; | 77 const SkIPoint& dstPoint) SK_OVERRIDE { return f
alse; }; |
77 | 78 |
78 bool copySurface(GrSurface* dst, | 79 virtual bool copySurface(GrSurface* dst, |
79 GrSurface* src, | 80 GrSurface* src, |
80 const SkIRect& srcRect, | 81 const SkIRect& srcRect, |
81 const SkIPoint& dstPoint) SK_OVERRIDE { return false; }; | 82 const SkIPoint& dstPoint) SK_OVERRIDE { return fals
e; }; |
82 | 83 |
83 bool initCopySurfaceDstDesc(const GrSurface* src, GrSurfaceDesc* desc) SK_OV
ERRIDE { | 84 private: |
| 85 virtual void onResetContext(uint32_t resetBits) { }; |
| 86 virtual GrTexture* onCreateTexture(const GrSurfaceDesc& desc, |
| 87 const void* srcData, |
| 88 size_t rowBytes) SK_OVERRIDE { |
| 89 return NULL; |
| 90 } |
| 91 |
| 92 virtual GrTexture* onCreateCompressedTexture(const GrSurfaceDesc& desc, |
| 93 const void* srcData) SK_OVERRI
DE { |
| 94 return NULL; |
| 95 } |
| 96 |
| 97 virtual GrTexture* onWrapBackendTexture(const GrBackendTextureDesc&) SK_OVE
RRIDE { |
| 98 return NULL; |
| 99 } |
| 100 |
| 101 virtual GrRenderTarget* onWrapBackendRenderTarget( |
| 102 const GrBackendRenderTargetDesc&) SK_OVERRID
E { |
| 103 return NULL; |
| 104 } |
| 105 |
| 106 virtual GrVertexBuffer* onCreateVertexBuffer(size_t size, bool dynamic) SK_
OVERRIDE { |
| 107 return NULL; |
| 108 } |
| 109 |
| 110 virtual GrIndexBuffer* onCreateIndexBuffer(size_t size, bool dynamic) SK_OV
ERRIDE { |
| 111 return NULL; |
| 112 } |
| 113 |
| 114 virtual void onClear(GrRenderTarget*, const SkIRect* rect, GrColor color, |
| 115 bool canIgnoreRect) SK_OVERRIDE { } |
| 116 |
| 117 virtual void onClearStencilClip(GrRenderTarget*, |
| 118 const SkIRect& rect, |
| 119 bool insideClip) SK_OVERRIDE { } |
| 120 |
| 121 virtual void onDraw(const GrOptDrawState&, const GrDrawTarget::DrawInfo&) S
K_OVERRIDE { } |
| 122 virtual bool onReadPixels(GrRenderTarget* target, |
| 123 int left, int top, int width, int height, |
| 124 GrPixelConfig, |
| 125 void* buffer, |
| 126 size_t rowBytes) SK_OVERRIDE { |
84 return false; | 127 return false; |
85 } | 128 } |
86 | 129 |
87 private: | 130 virtual bool onWriteTexturePixels(GrTexture* texture, |
88 void onResetContext(uint32_t resetBits) SK_OVERRIDE {} | 131 int left, int top, int width, int height, |
89 | 132 GrPixelConfig config, const void* buffer, |
90 GrTexture* onCreateTexture(const GrSurfaceDesc& desc, | 133 size_t rowBytes) SK_OVERRIDE { |
91 const void* srcData, | |
92 size_t rowBytes) SK_OVERRIDE { | |
93 return NULL; | |
94 } | |
95 | |
96 GrTexture* onCreateCompressedTexture(const GrSurfaceDesc& desc, | |
97 const void* srcData) SK_OVERRIDE { | |
98 return NULL; | |
99 } | |
100 | |
101 GrTexture* onWrapBackendTexture(const GrBackendTextureDesc&) SK_OVERRIDE { r
eturn NULL; } | |
102 | |
103 GrRenderTarget* onWrapBackendRenderTarget(const GrBackendRenderTargetDesc&)
SK_OVERRIDE { | |
104 return NULL; | |
105 } | |
106 | |
107 GrVertexBuffer* onCreateVertexBuffer(size_t size, bool dynamic) SK_OVERRIDE
{ return NULL; } | |
108 | |
109 GrIndexBuffer* onCreateIndexBuffer(size_t size, bool dynamic) SK_OVERRIDE {
return NULL; } | |
110 | |
111 void onClear(GrRenderTarget*, const SkIRect* rect, GrColor color, | |
112 bool canIgnoreRect) SK_OVERRIDE {} | |
113 | |
114 void onClearStencilClip(GrRenderTarget*, const SkIRect& rect, bool insideCli
p) SK_OVERRIDE {} | |
115 | |
116 void onDraw(const GrOptDrawState&, const GrDrawTarget::DrawInfo&) SK_OVERRID
E {} | |
117 | |
118 bool onReadPixels(GrRenderTarget* target, | |
119 int left, int top, int width, int height, | |
120 GrPixelConfig, | |
121 void* buffer, | |
122 size_t rowBytes) SK_OVERRIDE { | |
123 return false; | 134 return false; |
124 } | 135 } |
125 | 136 |
126 bool onWriteTexturePixels(GrTexture* texture, | 137 virtual void onResolveRenderTarget(GrRenderTarget* target) SK_OVERRIDE { |
127 int left, int top, int width, int height, | 138 return; |
128 GrPixelConfig config, const void* buffer, | 139 } |
129 size_t rowBytes) SK_OVERRIDE { | 140 |
| 141 virtual bool createStencilBufferForRenderTarget(GrRenderTarget*, int width, |
| 142 int height) SK_OVERRIDE { |
130 return false; | 143 return false; |
131 } | 144 } |
132 | 145 |
133 void onResolveRenderTarget(GrRenderTarget* target) SK_OVERRIDE { return; } | 146 virtual bool attachStencilBufferToRenderTarget(GrStencilBuffer*, GrRenderTar
get*) SK_OVERRIDE { |
134 | |
135 bool createStencilBufferForRenderTarget(GrRenderTarget*, int width, int heig
ht) SK_OVERRIDE { | |
136 return false; | 147 return false; |
137 } | 148 } |
138 | 149 |
139 bool attachStencilBufferToRenderTarget(GrStencilBuffer*, GrRenderTarget*) SK
_OVERRIDE { | 150 virtual bool flushGraphicsState(const GrOptDrawState&, DrawType) SK_OVERRID
E { |
140 return false; | 151 return false; |
141 } | 152 } |
142 | 153 |
143 bool flushGraphicsState(const GrOptDrawState&, DrawType) SK_OVERRIDE { retur
n false; } | 154 virtual void clearStencil(GrRenderTarget* target) SK_OVERRIDE { } |
144 | 155 |
145 void clearStencil(GrRenderTarget* target) SK_OVERRIDE {} | 156 virtual void didAddGpuTraceMarker() SK_OVERRIDE { } |
146 | 157 virtual void didRemoveGpuTraceMarker() SK_OVERRIDE { } |
147 void didAddGpuTraceMarker() SK_OVERRIDE { } | |
148 | |
149 void didRemoveGpuTraceMarker() SK_OVERRIDE { } | |
150 | 158 |
151 typedef GrGpu INHERITED; | 159 typedef GrGpu INHERITED; |
152 }; | 160 }; |
153 | 161 |
154 GrContext* GrContext::CreateMockContext() { | 162 GrContext* GrContext::CreateMockContext() { |
155 GrContext* context = SkNEW_ARGS(GrContext, (Options())); | 163 GrContext* context = SkNEW_ARGS(GrContext, (Options())); |
156 | 164 |
157 context->initMockContext(); | 165 context->initMockContext(); |
158 return context; | 166 return context; |
159 } | 167 } |
160 | 168 |
161 void GrContext::initMockContext() { | 169 void GrContext::initMockContext() { |
162 SkASSERT(NULL == fGpu); | 170 SkASSERT(NULL == fGpu); |
163 fGpu = SkNEW_ARGS(MockGpu, (this)); | 171 fGpu = SkNEW_ARGS(MockGpu, (this)); |
164 SkASSERT(fGpu); | 172 SkASSERT(fGpu); |
165 this->initCommon(); | 173 this->initCommon(); |
166 | 174 |
167 // We delete these because we want to test the cache starting with zero reso
urces. Also, none of | 175 // We delete these because we want to test the cache starting with zero reso
urces. Also, none of |
168 // these objects are required for any of tests that use this context. TODO:
make stop allocating | 176 // these objects are required for any of tests that use this context. TODO:
make stop allocating |
169 // resources in the buffer pools. | 177 // resources in the buffer pools. |
170 SkDELETE(fDrawBuffer); | 178 SkDELETE(fDrawBuffer); |
171 SkDELETE(fDrawBufferVBAllocPool); | 179 SkDELETE(fDrawBufferVBAllocPool); |
172 SkDELETE(fDrawBufferIBAllocPool); | 180 SkDELETE(fDrawBufferIBAllocPool); |
173 | 181 |
174 fDrawBuffer = NULL; | 182 fDrawBuffer = NULL; |
175 fDrawBufferVBAllocPool = NULL; | 183 fDrawBufferVBAllocPool = NULL; |
176 fDrawBufferIBAllocPool = NULL; | 184 fDrawBufferIBAllocPool = NULL; |
177 } | 185 } |
OLD | NEW |