Serenity Operating System
1/*
2 * Copyright (c) 2021, Stephan Unverwerth <s.unverwerth@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <AK/Types.h>
10
11namespace GPU {
12
13enum class AlphaTestFunction {
14 Never,
15 Always,
16 Less,
17 LessOrEqual,
18 Equal,
19 NotEqual,
20 GreaterOrEqual,
21 Greater,
22};
23
24enum class BlendFactor {
25 Zero,
26 One,
27 SrcAlpha,
28 OneMinusSrcAlpha,
29 SrcColor,
30 OneMinusSrcColor,
31 DstAlpha,
32 OneMinusDstAlpha,
33 DstColor,
34 OneMinusDstColor,
35 SrcAlphaSaturate,
36};
37
38enum class ColorControl {
39 SingleColor,
40 SeparateSpecularColor,
41};
42
43enum class ColorMaterialFace {
44 Front,
45 Back,
46 FrontAndBack,
47};
48
49enum class ColorMaterialMode {
50 Ambient,
51 AmbientAndDiffuse,
52 Diffuse,
53 Emissive,
54 Specular,
55};
56
57enum class DepthTestFunction {
58 Never,
59 Always,
60 Less,
61 LessOrEqual,
62 Equal,
63 NotEqual,
64 GreaterOrEqual,
65 Greater,
66};
67
68enum Face {
69 Front = 0,
70 Back = 1,
71};
72
73enum FogMode {
74 Linear,
75 Exp,
76 Exp2
77};
78
79enum class PolygonMode {
80 Point,
81 Line,
82 Fill,
83};
84
85enum class WindingOrder {
86 Clockwise,
87 CounterClockwise,
88};
89
90enum class PrimitiveType {
91 Lines,
92 LineLoop,
93 LineStrip,
94 Points,
95 TriangleFan,
96 Triangles,
97 TriangleStrip,
98 Quads,
99};
100
101enum StencilOperation {
102 Decrement,
103 DecrementWrap,
104 Increment,
105 IncrementWrap,
106 Invert,
107 Keep,
108 Replace,
109 Zero,
110};
111
112enum StencilTestFunction {
113 Always,
114 Equal,
115 Greater,
116 GreaterOrEqual,
117 Less,
118 LessOrEqual,
119 Never,
120 NotEqual,
121};
122
123enum TexCoordGenerationCoordinate : u8 {
124 None = 0x0,
125 S = 0x1,
126 T = 0x2,
127 R = 0x4,
128 Q = 0x8,
129 All = 0xF,
130};
131
132enum class TexCoordGenerationMode {
133 ObjectLinear,
134 EyeLinear,
135 SphereMap,
136 ReflectionMap,
137 NormalMap,
138};
139
140}