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

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

Issue 1180713008: Move blend enums into GrBlend.h (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: relative include Created 5 years, 6 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 2014 Google Inc. 2 * Copyright 2014 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 GrXferProcessor_DEFINED 8 #ifndef GrXferProcessor_DEFINED
9 #define GrXferProcessor_DEFINED 9 #define GrXferProcessor_DEFINED
10 10
11 #include "GrBlend.h"
11 #include "GrColor.h" 12 #include "GrColor.h"
12 #include "GrProcessor.h" 13 #include "GrProcessor.h"
13 #include "GrTexture.h" 14 #include "GrTexture.h"
14 #include "GrTypes.h" 15 #include "GrTypes.h"
15 #include "SkXfermode.h" 16 #include "SkXfermode.h"
16 17
17 class GrShaderCaps; 18 class GrShaderCaps;
18 class GrGLSLCaps; 19 class GrGLSLCaps;
19 class GrGLXferProcessor; 20 class GrGLXferProcessor;
20 class GrProcOptInfo; 21 class GrProcOptInfo;
21 22
22 /** 23 /**
23 * Equations for alpha-blending.
24 */
25 enum GrBlendEquation {
26 // Basic blend equations.
27 kAdd_GrBlendEquation, //<! Cs*S + Cd*D
28 kSubtract_GrBlendEquation, //<! Cs*S - Cd*D
29 kReverseSubtract_GrBlendEquation, //<! Cd*D - Cs*S
30
31 // Advanced blend equations. These are described in the SVG and PDF specs.
32 kScreen_GrBlendEquation,
33 kOverlay_GrBlendEquation,
34 kDarken_GrBlendEquation,
35 kLighten_GrBlendEquation,
36 kColorDodge_GrBlendEquation,
37 kColorBurn_GrBlendEquation,
38 kHardLight_GrBlendEquation,
39 kSoftLight_GrBlendEquation,
40 kDifference_GrBlendEquation,
41 kExclusion_GrBlendEquation,
42 kMultiply_GrBlendEquation,
43 kHSLHue_GrBlendEquation,
44 kHSLSaturation_GrBlendEquation,
45 kHSLColor_GrBlendEquation,
46 kHSLLuminosity_GrBlendEquation,
47
48 kFirstAdvancedGrBlendEquation = kScreen_GrBlendEquation,
49 kLast_GrBlendEquation = kHSLLuminosity_GrBlendEquation
50 };
51
52 static const int kGrBlendEquationCnt = kLast_GrBlendEquation + 1;
53
54 /**
55 * Coeffecients for alpha-blending.
56 */
57 enum GrBlendCoeff {
58 kZero_GrBlendCoeff, //<! 0
59 kOne_GrBlendCoeff, //<! 1
60 kSC_GrBlendCoeff, //<! src color
61 kISC_GrBlendCoeff, //<! one minus src color
62 kDC_GrBlendCoeff, //<! dst color
63 kIDC_GrBlendCoeff, //<! one minus dst color
64 kSA_GrBlendCoeff, //<! src alpha
65 kISA_GrBlendCoeff, //<! one minus src alpha
66 kDA_GrBlendCoeff, //<! dst alpha
67 kIDA_GrBlendCoeff, //<! one minus dst alpha
68 kConstC_GrBlendCoeff, //<! constant color
69 kIConstC_GrBlendCoeff, //<! one minus constant color
70 kConstA_GrBlendCoeff, //<! constant color alpha
71 kIConstA_GrBlendCoeff, //<! one minus constant color alpha
72 kS2C_GrBlendCoeff,
73 kIS2C_GrBlendCoeff,
74 kS2A_GrBlendCoeff,
75 kIS2A_GrBlendCoeff,
76
77 kLast_GrBlendCoeff = kIS2A_GrBlendCoeff
78 };
79
80 static const int kGrBlendCoeffCnt = kLast_GrBlendCoeff + 1;
81
82 /**
83 * Barriers for blending. When a shader reads the dst directly, an Xfer barrier is sometimes 24 * Barriers for blending. When a shader reads the dst directly, an Xfer barrier is sometimes
84 * required after a pixel has been written, before it can be safely read again. 25 * required after a pixel has been written, before it can be safely read again.
85 */ 26 */
86 enum GrXferBarrierType { 27 enum GrXferBarrierType {
87 kTexture_GrXferBarrierType, //<! Required when a shader reads and renders to the same texture. 28 kTexture_GrXferBarrierType, //<! Required when a shader reads and renders to the same texture.
88 kBlend_GrXferBarrierType, //<! Required by certain blend extensions. 29 kBlend_GrXferBarrierType, //<! Required by certain blend extensions.
89 }; 30 };
90 31
91 /** 32 /**
92 * GrXferProcessor is responsible for implementing the xfer mode that blends the src color and dst 33 * GrXferProcessor is responsible for implementing the xfer mode that blends the src color and dst
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 enum { 400 enum {
460 kIllegalXPFClassID = 0, 401 kIllegalXPFClassID = 0,
461 }; 402 };
462 static int32_t gCurrXPFClassID; 403 static int32_t gCurrXPFClassID;
463 404
464 typedef GrProgramElement INHERITED; 405 typedef GrProgramElement INHERITED;
465 }; 406 };
466 407
467 #endif 408 #endif
468 409
OLDNEW
« include/gpu/GrBlend.h ('K') | « include/gpu/GrBlend.h ('k') | src/gpu/GrBlend.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698