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

Side by Side Diff: include/gpu/GrTypesPriv.h

Issue 2289363005: Improve usage of window rectangles (Closed) Base URL: https://skia.googlesource.com/skia.git@upload_drawsinreducedclip
Patch Set: Improve usage of window rectangles Created 4 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 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 GrTypesPriv_DEFINED 8 #ifndef GrTypesPriv_DEFINED
9 #define GrTypesPriv_DEFINED 9 #define GrTypesPriv_DEFINED
10 10
11 #include "GrTypes.h" 11 #include "GrTypes.h"
12 #include "SkRect.h"
13 #include "SkRefCnt.h" 12 #include "SkRefCnt.h"
14 13
15 /** 14 /**
16 * Types of shader-language-specific boxed variables we can create. (Currently only GrGLShaderVars, 15 * Types of shader-language-specific boxed variables we can create. (Currently only GrGLShaderVars,
17 * but should be applicable to other shader languages.) 16 * but should be applicable to other shader languages.)
18 */ 17 */
19 enum GrSLType { 18 enum GrSLType {
20 kVoid_GrSLType, 19 kVoid_GrSLType,
21 kFloat_GrSLType, 20 kFloat_GrSLType,
22 kVec2f_GrSLType, 21 kVec2f_GrSLType,
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 412
414 /** 413 /**
415 * Indicates the type of pending IO operations that can be recorded for gpu reso urces. 414 * Indicates the type of pending IO operations that can be recorded for gpu reso urces.
416 */ 415 */
417 enum GrIOType { 416 enum GrIOType {
418 kRead_GrIOType, 417 kRead_GrIOType,
419 kWrite_GrIOType, 418 kWrite_GrIOType,
420 kRW_GrIOType 419 kRW_GrIOType
421 }; 420 };
422 421
423 struct GrScissorState {
424 GrScissorState() : fEnabled(false) {}
425 GrScissorState(const SkIRect& rect) : fEnabled(true), fRect(rect) {}
426 void setDisabled() { fEnabled = false; }
427 void set(const SkIRect& rect) { fRect = rect; fEnabled = true; }
428 bool SK_WARN_UNUSED_RESULT intersect(const SkIRect& rect) {
429 if (!fEnabled) {
430 this->set(rect);
431 return true;
432 }
433 return fRect.intersect(rect);
434 }
435 bool operator==(const GrScissorState& other) const {
436 return fEnabled == other.fEnabled &&
437 (false == fEnabled || fRect == other.fRect);
438 }
439 bool operator!=(const GrScissorState& other) const { return !(*this == other ); }
440
441 bool enabled() const { return fEnabled; }
442 const SkIRect& rect() const { return fRect; }
443
444 private:
445 bool fEnabled;
446 SkIRect fRect;
447 };
448
449 /** 422 /**
450 * Indicates the type of data that a GPU buffer will be used for. 423 * Indicates the type of data that a GPU buffer will be used for.
451 */ 424 */
452 enum GrBufferType { 425 enum GrBufferType {
453 kVertex_GrBufferType, 426 kVertex_GrBufferType,
454 kIndex_GrBufferType, 427 kIndex_GrBufferType,
455 kTexel_GrBufferType, 428 kTexel_GrBufferType,
456 kDrawIndirect_GrBufferType, 429 kDrawIndirect_GrBufferType,
457 kXferCpuToGpu_GrBufferType, 430 kXferCpuToGpu_GrBufferType,
458 kXferGpuToCpu_GrBufferType, 431 kXferGpuToCpu_GrBufferType,
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 /** Holder destroys the backend object. */ 476 /** Holder destroys the backend object. */
504 kOwned = true 477 kOwned = true
505 }; 478 };
506 479
507 template <typename T> T * const * sk_sp_address_as_pointer_address(sk_sp<T> cons t * sp) { 480 template <typename T> T * const * sk_sp_address_as_pointer_address(sk_sp<T> cons t * sp) {
508 static_assert(sizeof(T*) == sizeof(sk_sp<T>), "sk_sp not expected size."); 481 static_assert(sizeof(T*) == sizeof(sk_sp<T>), "sk_sp not expected size.");
509 return reinterpret_cast<T * const *>(sp); 482 return reinterpret_cast<T * const *>(sp);
510 } 483 }
511 484
512 #endif 485 #endif
OLDNEW
« no previous file with comments | « gyp/gpu.gypi ('k') | src/gpu/GrAppliedClip.h » ('j') | src/gpu/GrAppliedClip.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698