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

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

Issue 862933005: remove drawtype (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 11 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/GrGeometryProcessor.cpp ('k') | src/gpu/GrInOrderDrawBuffer.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 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 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 // a billion years. 295 // a billion years.
296 typedef uint64_t ResetTimestamp; 296 typedef uint64_t ResetTimestamp;
297 297
298 // This timestamp is always older than the current timestamp 298 // This timestamp is always older than the current timestamp
299 static const ResetTimestamp kExpiredTimestamp = 0; 299 static const ResetTimestamp kExpiredTimestamp = 0;
300 // Returns a timestamp based on the number of times the context was reset. 300 // Returns a timestamp based on the number of times the context was reset.
301 // This timestamp can be used to lazily detect when cached 3D context state 301 // This timestamp can be used to lazily detect when cached 3D context state
302 // is dirty. 302 // is dirty.
303 ResetTimestamp getResetTimestamp() const { return fResetTimestamp; } 303 ResetTimestamp getResetTimestamp() const { return fResetTimestamp; }
304 304
305 enum DrawType {
306 kDrawPoints_DrawType,
307 kDrawLines_DrawType,
308 kDrawTriangles_DrawType,
309 kDrawPath_DrawType,
310 kDrawPaths_DrawType,
311 };
312
313 static bool IsPathRenderingDrawType(DrawType type) {
314 return kDrawPath_DrawType == type || kDrawPaths_DrawType == type;
315 }
316
317 GrContext::GPUStats* gpuStats() { return &fGPUStats; } 305 GrContext::GPUStats* gpuStats() { return &fGPUStats; }
318 306
319 virtual void buildProgramDesc(GrProgramDesc*, 307 virtual void buildProgramDesc(GrProgramDesc*,
320 const GrPrimitiveProcessor&, 308 const GrPrimitiveProcessor&,
321 const GrOptDrawState&, 309 const GrOptDrawState&,
322 const GrProgramDesc::DescInfo&, 310 const GrProgramDesc::DescInfo&,
323 GrGpu::DrawType,
324 const GrBatchTracker&) const = 0; 311 const GrBatchTracker&) const = 0;
325 312
326 /** 313 /**
327 * Called at start and end of gpu trace marking 314 * Called at start and end of gpu trace marking
328 * GR_CREATE_GPU_TRACE_MARKER(marker_str, target) will automatically call th ese at the start 315 * GR_CREATE_GPU_TRACE_MARKER(marker_str, target) will automatically call th ese at the start
329 * and end of a code block respectively 316 * and end of a code block respectively
330 */ 317 */
331 void addGpuTraceMarker(const GrGpuTraceMarker* marker); 318 void addGpuTraceMarker(const GrGpuTraceMarker* marker);
332 void removeGpuTraceMarker(const GrGpuTraceMarker* marker); 319 void removeGpuTraceMarker(const GrGpuTraceMarker* marker);
333 320
(...skipping 25 matching lines...) Expand all
359 virtual bool copySurface(GrSurface* dst, 346 virtual bool copySurface(GrSurface* dst,
360 GrSurface* src, 347 GrSurface* src,
361 const SkIRect& srcRect, 348 const SkIRect& srcRect,
362 const SkIPoint& dstPoint) = 0; 349 const SkIPoint& dstPoint) = 0;
363 350
364 struct DrawArgs { 351 struct DrawArgs {
365 typedef GrDrawTarget::DrawInfo DrawInfo; 352 typedef GrDrawTarget::DrawInfo DrawInfo;
366 DrawArgs(const GrPrimitiveProcessor* primProc, 353 DrawArgs(const GrPrimitiveProcessor* primProc,
367 const GrOptDrawState* optState, 354 const GrOptDrawState* optState,
368 const GrProgramDesc* desc, 355 const GrProgramDesc* desc,
369 const GrBatchTracker* batchTracker, 356 const GrBatchTracker* batchTracker)
370 DrawType drawType)
371 : fPrimitiveProcessor(primProc) 357 : fPrimitiveProcessor(primProc)
372 , fOptState(optState) 358 , fOptState(optState)
373 , fDesc(desc) 359 , fDesc(desc)
374 , fBatchTracker(batchTracker) 360 , fBatchTracker(batchTracker) {
375 , fDrawType(drawType) {
376 SkASSERT(primProc && optState && desc && batchTracker); 361 SkASSERT(primProc && optState && desc && batchTracker);
377 } 362 }
378 const GrPrimitiveProcessor* fPrimitiveProcessor; 363 const GrPrimitiveProcessor* fPrimitiveProcessor;
379 const GrOptDrawState* fOptState; 364 const GrOptDrawState* fOptState;
380 const GrProgramDesc* fDesc; 365 const GrProgramDesc* fDesc;
381 const GrBatchTracker* fBatchTracker; 366 const GrBatchTracker* fBatchTracker;
382 DrawType fDrawType;
383 }; 367 };
384 368
385 void draw(const DrawArgs&, const GrDrawTarget::DrawInfo&); 369 void draw(const DrawArgs&, const GrDrawTarget::DrawInfo&);
386 370
387 /** None of these params are optional, pointers used just to avoid making co pies. */ 371 /** None of these params are optional, pointers used just to avoid making co pies. */
388 struct StencilPathState { 372 struct StencilPathState {
389 bool fUseHWAA; 373 bool fUseHWAA;
390 GrRenderTarget* fRenderTarget; 374 GrRenderTarget* fRenderTarget;
391 const SkMatrix* fViewMatrix; 375 const SkMatrix* fViewMatrix;
392 const GrStencilSettings* fStencil; 376 const GrStencilSettings* fStencil;
393 const GrScissorState* fScissor; 377 const GrScissorState* fScissor;
394 }; 378 };
395 379
396 void stencilPath(const GrPath*, const StencilPathState&); 380 void stencilPath(const GrPath*, const StencilPathState&);
397 381
398 void drawPath(const DrawArgs&, const GrPath*, const GrStencilSettings&); 382 void drawPath(const DrawArgs&, const GrPath*, const GrStencilSettings&);
399 void drawPaths(const DrawArgs&, 383 void drawPaths(const DrawArgs&,
400 const GrPathRange*, 384 const GrPathRange*,
401 const void* indices, 385 const void* indices,
402 GrDrawTarget::PathIndexType, 386 GrDrawTarget::PathIndexType,
403 const float transformValues[], 387 const float transformValues[],
404 GrDrawTarget::PathTransformType, 388 GrDrawTarget::PathTransformType,
405 int count, 389 int count,
406 const GrStencilSettings&); 390 const GrStencilSettings&);
407 391
408 static DrawType PrimTypeToDrawType(GrPrimitiveType type) {
409 switch (type) {
410 case kTriangles_GrPrimitiveType:
411 case kTriangleStrip_GrPrimitiveType:
412 case kTriangleFan_GrPrimitiveType:
413 return kDrawTriangles_DrawType;
414 case kPoints_GrPrimitiveType:
415 return kDrawPoints_DrawType;
416 case kLines_GrPrimitiveType:
417 case kLineStrip_GrPrimitiveType:
418 return kDrawLines_DrawType;
419 default:
420 SkFAIL("Unexpected primitive type");
421 return kDrawTriangles_DrawType;
422 }
423 }
424
425 protected: 392 protected:
426 // Functions used to map clip-respecting stencil tests into normal 393 // Functions used to map clip-respecting stencil tests into normal
427 // stencil funcs supported by GPUs. 394 // stencil funcs supported by GPUs.
428 static GrStencilFunc ConvertStencilFunc(bool stencilInClip, 395 static GrStencilFunc ConvertStencilFunc(bool stencilInClip,
429 GrStencilFunc func); 396 GrStencilFunc func);
430 static void ConvertStencilFuncAndMask(GrStencilFunc func, 397 static void ConvertStencilFuncAndMask(GrStencilFunc func,
431 bool clipInStencil, 398 bool clipInStencil,
432 unsigned int clipBit, 399 unsigned int clipBit,
433 unsigned int userBits, 400 unsigned int userBits,
434 unsigned int* ref, 401 unsigned int* ref,
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 int fGpuTrac eMarkerCount; 503 int fGpuTrac eMarkerCount;
537 GrTraceMarkerSet fActiveT raceMarkers; 504 GrTraceMarkerSet fActiveT raceMarkers;
538 GrTraceMarkerSet fStoredT raceMarkers; 505 GrTraceMarkerSet fStoredT raceMarkers;
539 // The context owns us, not vice-versa, so this ptr is not ref'ed by Gpu. 506 // The context owns us, not vice-versa, so this ptr is not ref'ed by Gpu.
540 GrContext* fContext ; 507 GrContext* fContext ;
541 508
542 typedef SkRefCnt INHERITED; 509 typedef SkRefCnt INHERITED;
543 }; 510 };
544 511
545 #endif 512 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrGeometryProcessor.cpp ('k') | src/gpu/GrInOrderDrawBuffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698