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

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

Issue 777673003: move program descriptor generation to flush (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: more cleanup Created 6 years 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 | « no previous file | src/gpu/GrGpu.cpp » ('j') | src/gpu/GrInOrderDrawBuffer.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 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 GrGpu_DEFINED 8 #ifndef GrGpu_DEFINED
9 #define GrGpu_DEFINED 9 #define GrGpu_DEFINED
10 10
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 kDrawPaths_DrawType, 308 kDrawPaths_DrawType,
309 }; 309 };
310 310
311 static bool IsPathRenderingDrawType(DrawType type) { 311 static bool IsPathRenderingDrawType(DrawType type) {
312 return kDrawPath_DrawType == type || kDrawPaths_DrawType == type; 312 return kDrawPath_DrawType == type || kDrawPaths_DrawType == type;
313 } 313 }
314 314
315 GrContext::GPUStats* gpuStats() { return &fGPUStats; } 315 GrContext::GPUStats* gpuStats() { return &fGPUStats; }
316 316
317 virtual void buildProgramDesc(const GrOptDrawState&, 317 virtual void buildProgramDesc(const GrOptDrawState&,
318 const GrProgramDesc::DescInfo&,
319 GrGpu::DrawType, 318 GrGpu::DrawType,
320 GrProgramDesc*) = 0; 319 GrProgramDesc*) = 0;
321 320
322 /** 321 /**
323 * Called at start and end of gpu trace marking 322 * Called at start and end of gpu trace marking
324 * GR_CREATE_GPU_TRACE_MARKER(marker_str, target) will automatically call th ese at the start 323 * GR_CREATE_GPU_TRACE_MARKER(marker_str, target) will automatically call th ese at the start
325 * and end of a code block respectively 324 * and end of a code block respectively
326 */ 325 */
327 void addGpuTraceMarker(const GrGpuTraceMarker* marker); 326 void addGpuTraceMarker(const GrGpuTraceMarker* marker);
328 void removeGpuTraceMarker(const GrGpuTraceMarker* marker); 327 void removeGpuTraceMarker(const GrGpuTraceMarker* marker);
(...skipping 21 matching lines...) Expand all
350 349
351 // Called to perform a surface to surface copy. Fallbacks to issuing a draw from the src to dst 350 // Called to perform a surface to surface copy. Fallbacks to issuing a draw from the src to dst
352 // take place at the GrDrawTarget level and this function implement faster c opy paths. The rect 351 // take place at the GrDrawTarget level and this function implement faster c opy paths. The rect
353 // and point are pre-clipped. The src rect and implied dst rect are guarante ed to be within the 352 // and point are pre-clipped. The src rect and implied dst rect are guarante ed to be within the
354 // src/dst bounds and non-empty. 353 // src/dst bounds and non-empty.
355 virtual bool copySurface(GrSurface* dst, 354 virtual bool copySurface(GrSurface* dst,
356 GrSurface* src, 355 GrSurface* src,
357 const SkIRect& srcRect, 356 const SkIRect& srcRect,
358 const SkIPoint& dstPoint) = 0; 357 const SkIPoint& dstPoint) = 0;
359 358
360 virtual void draw(const GrOptDrawState&, const GrDrawTarget::DrawInfo&); 359 virtual void draw(const GrOptDrawState&, const GrProgramDesc&, const GrDrawT arget::DrawInfo&);
361 virtual void stencilPath(const GrOptDrawState&, 360 virtual void stencilPath(const GrOptDrawState&,
361 const GrProgramDesc&,
362 const GrPath*, 362 const GrPath*,
363 const GrStencilSettings&); 363 const GrStencilSettings&);
364 virtual void drawPath(const GrOptDrawState&, 364 virtual void drawPath(const GrOptDrawState&,
365 const GrProgramDesc&,
365 const GrPath*, 366 const GrPath*,
366 const GrStencilSettings&); 367 const GrStencilSettings&);
367 virtual void drawPaths(const GrOptDrawState&, 368 virtual void drawPaths(const GrOptDrawState&,
369 const GrProgramDesc&,
368 const GrPathRange*, 370 const GrPathRange*,
369 const void* indices, 371 const void* indices,
370 GrDrawTarget::PathIndexType, 372 GrDrawTarget::PathIndexType,
371 const float transformValues[], 373 const float transformValues[],
372 GrDrawTarget::PathTransformType, 374 GrDrawTarget::PathTransformType,
373 int count, 375 int count,
374 const GrStencilSettings&); 376 const GrStencilSettings&);
375 377
376 static DrawType PrimTypeToDrawType(GrPrimitiveType type) { 378 static DrawType PrimTypeToDrawType(GrPrimitiveType type) {
377 switch (type) { 379 switch (type) {
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 // not be created. 464 // not be created.
463 virtual bool createStencilBufferForRenderTarget(GrRenderTarget*, int width, int height) = 0; 465 virtual bool createStencilBufferForRenderTarget(GrRenderTarget*, int width, int height) = 0;
464 466
465 // attaches an existing SB to an existing RT. 467 // attaches an existing SB to an existing RT.
466 virtual bool attachStencilBufferToRenderTarget(GrStencilBuffer*, GrRenderTar get*) = 0; 468 virtual bool attachStencilBufferToRenderTarget(GrStencilBuffer*, GrRenderTar get*) = 0;
467 469
468 // The GrGpu typically records the clients requested state and then flushes 470 // The GrGpu typically records the clients requested state and then flushes
469 // deltas from previous state at draw time. This function does the 471 // deltas from previous state at draw time. This function does the
470 // backend-specific flush of the state. 472 // backend-specific flush of the state.
471 // returns false if current state is unsupported. 473 // returns false if current state is unsupported.
472 virtual bool flushGraphicsState(const GrOptDrawState&, DrawType) = 0; 474 virtual bool flushGraphicsState(const GrOptDrawState&, const GrProgramDesc&, DrawType) = 0;
473 475
474 // clears target's entire stencil buffer to 0 476 // clears target's entire stencil buffer to 0
475 virtual void clearStencil(GrRenderTarget* target) = 0; 477 virtual void clearStencil(GrRenderTarget* target) = 0;
476 478
477 // Given a rt, find or create a stencil buffer and attach it 479 // Given a rt, find or create a stencil buffer and attach it
478 bool attachStencilBufferToRenderTarget(GrRenderTarget* target); 480 bool attachStencilBufferToRenderTarget(GrRenderTarget* target);
479 481
480 virtual void didAddGpuTraceMarker() = 0; 482 virtual void didAddGpuTraceMarker() = 0;
481 virtual void didRemoveGpuTraceMarker() = 0; 483 virtual void didRemoveGpuTraceMarker() = 0;
482 484
(...skipping 17 matching lines...) Expand all
500 int fGpuTrac eMarkerCount; 502 int fGpuTrac eMarkerCount;
501 GrTraceMarkerSet fActiveT raceMarkers; 503 GrTraceMarkerSet fActiveT raceMarkers;
502 GrTraceMarkerSet fStoredT raceMarkers; 504 GrTraceMarkerSet fStoredT raceMarkers;
503 // The context owns us, not vice-versa, so this ptr is not ref'ed by Gpu. 505 // The context owns us, not vice-versa, so this ptr is not ref'ed by Gpu.
504 GrContext* fContext ; 506 GrContext* fContext ;
505 507
506 typedef SkRefCnt INHERITED; 508 typedef SkRefCnt INHERITED;
507 }; 509 };
508 510
509 #endif 511 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/GrGpu.cpp » ('j') | src/gpu/GrInOrderDrawBuffer.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698