Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(339)

Side by Side Diff: src/gpu/GrTargetCommands.h

Issue 1037793002: C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla} (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: git cl web Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/gpu/GrStencilAndCoverTextContext.h ('k') | src/gpu/GrTessellatingPathRenderer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 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 #ifndef GrTargetCommands_DEFINED 8 #ifndef GrTargetCommands_DEFINED
9 #define GrTargetCommands_DEFINED 9 #define GrTargetCommands_DEFINED
10 10
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 bool SK_WARN_UNUSED_RESULT setupPipelineAndShouldDraw(GrInOrderDrawBuffer*, 139 bool SK_WARN_UNUSED_RESULT setupPipelineAndShouldDraw(GrInOrderDrawBuffer*,
140 const GrPrimitiveProce ssor*, 140 const GrPrimitiveProce ssor*,
141 const GrDrawTarget::Pi pelineInfo&); 141 const GrDrawTarget::Pi pelineInfo&);
142 bool SK_WARN_UNUSED_RESULT setupPipelineAndShouldDraw(GrInOrderDrawBuffer*, 142 bool SK_WARN_UNUSED_RESULT setupPipelineAndShouldDraw(GrInOrderDrawBuffer*,
143 GrBatch*, 143 GrBatch*,
144 const GrDrawTarget::Pi pelineInfo&); 144 const GrDrawTarget::Pi pelineInfo&);
145 145
146 struct Draw : public Cmd { 146 struct Draw : public Cmd {
147 Draw(const GrDrawTarget::DrawInfo& info) : Cmd(kDraw_CmdType), fInfo(inf o) {} 147 Draw(const GrDrawTarget::DrawInfo& info) : Cmd(kDraw_CmdType), fInfo(inf o) {}
148 148
149 void execute(GrGpu*, const SetState*) SK_OVERRIDE; 149 void execute(GrGpu*, const SetState*) override;
150 150
151 GrDrawTarget::DrawInfo fInfo; 151 GrDrawTarget::DrawInfo fInfo;
152 }; 152 };
153 153
154 struct StencilPath : public Cmd { 154 struct StencilPath : public Cmd {
155 StencilPath(const GrPath* path, GrRenderTarget* rt) 155 StencilPath(const GrPath* path, GrRenderTarget* rt)
156 : Cmd(kStencilPath_CmdType) 156 : Cmd(kStencilPath_CmdType)
157 , fRenderTarget(rt) 157 , fRenderTarget(rt)
158 , fPath(path) {} 158 , fPath(path) {}
159 159
160 const GrPath* path() const { return fPath.get(); } 160 const GrPath* path() const { return fPath.get(); }
161 161
162 void execute(GrGpu*, const SetState*) SK_OVERRIDE; 162 void execute(GrGpu*, const SetState*) override;
163 163
164 SkMatrix fViewMatrix; 164 SkMatrix fViewMatrix;
165 bool fUseHWAA; 165 bool fUseHWAA;
166 GrStencilSettings fStencil; 166 GrStencilSettings fStencil;
167 GrScissorState fScissor; 167 GrScissorState fScissor;
168 private: 168 private:
169 GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget; 169 GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget;
170 GrPendingIOResource<const GrPath, kRead_GrIOType> fPath; 170 GrPendingIOResource<const GrPath, kRead_GrIOType> fPath;
171 }; 171 };
172 172
173 struct DrawPath : public Cmd { 173 struct DrawPath : public Cmd {
174 DrawPath(const GrPath* path) : Cmd(kDrawPath_CmdType), fPath(path) {} 174 DrawPath(const GrPath* path) : Cmd(kDrawPath_CmdType), fPath(path) {}
175 175
176 const GrPath* path() const { return fPath.get(); } 176 const GrPath* path() const { return fPath.get(); }
177 177
178 void execute(GrGpu*, const SetState*) SK_OVERRIDE; 178 void execute(GrGpu*, const SetState*) override;
179 179
180 GrStencilSettings fStencilSettings; 180 GrStencilSettings fStencilSettings;
181 181
182 private: 182 private:
183 GrPendingIOResource<const GrPath, kRead_GrIOType> fPath; 183 GrPendingIOResource<const GrPath, kRead_GrIOType> fPath;
184 }; 184 };
185 185
186 struct DrawPaths : public Cmd { 186 struct DrawPaths : public Cmd {
187 DrawPaths(const GrPathRange* pathRange) : Cmd(kDrawPaths_CmdType), fPath Range(pathRange) {} 187 DrawPaths(const GrPathRange* pathRange) : Cmd(kDrawPaths_CmdType), fPath Range(pathRange) {}
188 188
189 const GrPathRange* pathRange() const { return fPathRange.get(); } 189 const GrPathRange* pathRange() const { return fPathRange.get(); }
190 190
191 void execute(GrGpu*, const SetState*) SK_OVERRIDE; 191 void execute(GrGpu*, const SetState*) override;
192 192
193 char* fIndices; 193 char* fIndices;
194 GrDrawTarget::PathIndexType fIndexType; 194 GrDrawTarget::PathIndexType fIndexType;
195 float* fTransforms; 195 float* fTransforms;
196 GrDrawTarget::PathTransformType fTransformType; 196 GrDrawTarget::PathTransformType fTransformType;
197 int fCount; 197 int fCount;
198 GrStencilSettings fStencilSettings; 198 GrStencilSettings fStencilSettings;
199 199
200 private: 200 private:
201 GrPendingIOResource<const GrPathRange, kRead_GrIOType> fPathRange; 201 GrPendingIOResource<const GrPathRange, kRead_GrIOType> fPathRange;
202 }; 202 };
203 203
204 // This is also used to record a discard by setting the color to GrColor_ILL EGAL 204 // This is also used to record a discard by setting the color to GrColor_ILL EGAL
205 struct Clear : public Cmd { 205 struct Clear : public Cmd {
206 Clear(GrRenderTarget* rt) : Cmd(kClear_CmdType), fRenderTarget(rt) {} 206 Clear(GrRenderTarget* rt) : Cmd(kClear_CmdType), fRenderTarget(rt) {}
207 207
208 GrRenderTarget* renderTarget() const { return fRenderTarget.get(); } 208 GrRenderTarget* renderTarget() const { return fRenderTarget.get(); }
209 209
210 void execute(GrGpu*, const SetState*) SK_OVERRIDE; 210 void execute(GrGpu*, const SetState*) override;
211 211
212 SkIRect fRect; 212 SkIRect fRect;
213 GrColor fColor; 213 GrColor fColor;
214 bool fCanIgnoreRect; 214 bool fCanIgnoreRect;
215 215
216 private: 216 private:
217 GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget; 217 GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget;
218 }; 218 };
219 219
220 // This command is ONLY used by the clip mask manager to clear the stencil c lip bits 220 // This command is ONLY used by the clip mask manager to clear the stencil c lip bits
221 struct ClearStencilClip : public Cmd { 221 struct ClearStencilClip : public Cmd {
222 ClearStencilClip(GrRenderTarget* rt) : Cmd(kClear_CmdType), fRenderTarge t(rt) {} 222 ClearStencilClip(GrRenderTarget* rt) : Cmd(kClear_CmdType), fRenderTarge t(rt) {}
223 223
224 GrRenderTarget* renderTarget() const { return fRenderTarget.get(); } 224 GrRenderTarget* renderTarget() const { return fRenderTarget.get(); }
225 225
226 void execute(GrGpu*, const SetState*) SK_OVERRIDE; 226 void execute(GrGpu*, const SetState*) override;
227 227
228 SkIRect fRect; 228 SkIRect fRect;
229 bool fInsideClip; 229 bool fInsideClip;
230 230
231 private: 231 private:
232 GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget; 232 GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget;
233 }; 233 };
234 234
235 struct CopySurface : public Cmd { 235 struct CopySurface : public Cmd {
236 CopySurface(GrSurface* dst, GrSurface* src) 236 CopySurface(GrSurface* dst, GrSurface* src)
237 : Cmd(kCopySurface_CmdType) 237 : Cmd(kCopySurface_CmdType)
238 , fDst(dst) 238 , fDst(dst)
239 , fSrc(src) { 239 , fSrc(src) {
240 } 240 }
241 241
242 GrSurface* dst() const { return fDst.get(); } 242 GrSurface* dst() const { return fDst.get(); }
243 GrSurface* src() const { return fSrc.get(); } 243 GrSurface* src() const { return fSrc.get(); }
244 244
245 void execute(GrGpu*, const SetState*) SK_OVERRIDE; 245 void execute(GrGpu*, const SetState*) override;
246 246
247 SkIPoint fDstPoint; 247 SkIPoint fDstPoint;
248 SkIRect fSrcRect; 248 SkIRect fSrcRect;
249 249
250 private: 250 private:
251 GrPendingIOResource<GrSurface, kWrite_GrIOType> fDst; 251 GrPendingIOResource<GrSurface, kWrite_GrIOType> fDst;
252 GrPendingIOResource<GrSurface, kRead_GrIOType> fSrc; 252 GrPendingIOResource<GrSurface, kRead_GrIOType> fSrc;
253 }; 253 };
254 254
255 // TODO: rename to SetPipeline once pp, batch tracker, and desc are removed 255 // TODO: rename to SetPipeline once pp, batch tracker, and desc are removed
256 struct SetState : public Cmd { 256 struct SetState : public Cmd {
257 // TODO get rid of the prim proc parameter when we use batch everywhere 257 // TODO get rid of the prim proc parameter when we use batch everywhere
258 SetState(const GrPrimitiveProcessor* primProc = NULL) 258 SetState(const GrPrimitiveProcessor* primProc = NULL)
259 : Cmd(kSetState_CmdType) 259 : Cmd(kSetState_CmdType)
260 , fPrimitiveProcessor(primProc) {} 260 , fPrimitiveProcessor(primProc) {}
261 261
262 ~SetState() { reinterpret_cast<GrPipeline*>(fPipeline.get())->~GrPipelin e(); } 262 ~SetState() { reinterpret_cast<GrPipeline*>(fPipeline.get())->~GrPipelin e(); }
263 263
264 // This function is only for getting the location in memory where we wil l create our 264 // This function is only for getting the location in memory where we wil l create our
265 // pipeline object. 265 // pipeline object.
266 GrPipeline* pipelineLocation() { return reinterpret_cast<GrPipeline*>(fP ipeline.get()); } 266 GrPipeline* pipelineLocation() { return reinterpret_cast<GrPipeline*>(fP ipeline.get()); }
267 267
268 const GrPipeline* getPipeline() const { 268 const GrPipeline* getPipeline() const {
269 return reinterpret_cast<const GrPipeline*>(fPipeline.get()); 269 return reinterpret_cast<const GrPipeline*>(fPipeline.get());
270 } 270 }
271 271
272 void execute(GrGpu*, const SetState*) SK_OVERRIDE; 272 void execute(GrGpu*, const SetState*) override;
273 273
274 typedef GrPendingProgramElement<const GrPrimitiveProcessor> ProgramPrimi tiveProcessor; 274 typedef GrPendingProgramElement<const GrPrimitiveProcessor> ProgramPrimi tiveProcessor;
275 ProgramPrimitiveProcessor fPrimitiveProcessor; 275 ProgramPrimitiveProcessor fPrimitiveProcessor;
276 SkAlignedSStorage<sizeof(GrPipeline)> fPipeline; 276 SkAlignedSStorage<sizeof(GrPipeline)> fPipeline;
277 GrProgramDesc fDesc; 277 GrProgramDesc fDesc;
278 GrBatchTracker fBatchTracker; 278 GrBatchTracker fBatchTracker;
279 }; 279 };
280 280
281 struct DrawBatch : public Cmd { 281 struct DrawBatch : public Cmd {
282 DrawBatch(GrBatch* batch, GrBatchTarget* batchTarget) 282 DrawBatch(GrBatch* batch, GrBatchTarget* batchTarget)
283 : Cmd(kDrawBatch_CmdType) 283 : Cmd(kDrawBatch_CmdType)
284 , fBatch(SkRef(batch)) 284 , fBatch(SkRef(batch))
285 , fBatchTarget(batchTarget) { 285 , fBatchTarget(batchTarget) {
286 SkASSERT(!batch->isUsed()); 286 SkASSERT(!batch->isUsed());
287 } 287 }
288 288
289 void execute(GrGpu*, const SetState*) SK_OVERRIDE; 289 void execute(GrGpu*, const SetState*) override;
290 290
291 // TODO it wouldn't be too hard to let batches allocate in the cmd buffe r 291 // TODO it wouldn't be too hard to let batches allocate in the cmd buffe r
292 SkAutoTUnref<GrBatch> fBatch; 292 SkAutoTUnref<GrBatch> fBatch;
293 293
294 private: 294 private:
295 GrBatchTarget* fBatchTarget; 295 GrBatchTarget* fBatchTarget;
296 }; 296 };
297 297
298 static const int kCmdBufferInitialSizeInBytes = 8 * 1024; 298 static const int kCmdBufferInitialSizeInBytes = 8 * 1024;
299 299
300 typedef void* TCmdAlign; // This wouldn't be enough align if a command used long double. 300 typedef void* TCmdAlign; // This wouldn't be enough align if a command used long double.
301 typedef GrTRecorder<Cmd, TCmdAlign> CmdBuffer; 301 typedef GrTRecorder<Cmd, TCmdAlign> CmdBuffer;
302 302
303 CmdBuffer fCmdBuffer; 303 CmdBuffer fCmdBuffer;
304 SetState* fPrevState; 304 SetState* fPrevState;
305 GrBatchTarget fBatchTarget; 305 GrBatchTarget fBatchTarget;
306 // TODO hack until batch is everywhere 306 // TODO hack until batch is everywhere
307 GrTargetCommands::DrawBatch* fDrawBatch; 307 GrTargetCommands::DrawBatch* fDrawBatch;
308 308
309 // This will go away when everything uses batch. However, in the short ter m anything which 309 // This will go away when everything uses batch. However, in the short ter m anything which
310 // might be put into the GrInOrderDrawBuffer needs to make sure it closes t he last batch 310 // might be put into the GrInOrderDrawBuffer needs to make sure it closes t he last batch
311 void closeBatch(); 311 void closeBatch();
312 }; 312 };
313 313
314 #endif 314 #endif
315 315
OLDNEW
« no previous file with comments | « src/gpu/GrStencilAndCoverTextContext.h ('k') | src/gpu/GrTessellatingPathRenderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698