1#[repr(u8)]
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
6#[doc(alias = "GPU_TESTFUNC")]
7pub enum TestFunction {
8 #[doc(alias = "GPU_NEVER")]
10 Never = ctru_sys::GPU_NEVER,
11
12 #[doc(alias = "GPU_ALWAYS")]
14 Always = ctru_sys::GPU_ALWAYS,
15
16 #[doc(alias = "GPU_EQUAL")]
18 Equal = ctru_sys::GPU_EQUAL,
19
20 #[doc(alias = "GPU_NOTEQUAL")]
22 NotEqual = ctru_sys::GPU_NOTEQUAL,
23
24 #[doc(alias = "GPU_LESS")]
26 Less = ctru_sys::GPU_LESS,
27
28 #[doc(alias = "GPU_LEQUAL")]
30 LessOrEqual = ctru_sys::GPU_LEQUAL,
31
32 #[doc(alias = "GPU_GREATER")]
34 Greater = ctru_sys::GPU_GREATER,
35
36 #[doc(alias = "GPU_GEQUAL")]
38 GreaterOrEqual = ctru_sys::GPU_GEQUAL,
39}
40
41impl TryFrom<u8> for TestFunction {
42 type Error = String;
43
44 fn try_from(value: u8) -> Result<Self, Self::Error> {
45 match value {
46 ctru_sys::GPU_NEVER => Ok(Self::Never),
47 ctru_sys::GPU_ALWAYS => Ok(Self::Always),
48 ctru_sys::GPU_EQUAL => Ok(Self::Equal),
49 ctru_sys::GPU_NOTEQUAL => Ok(Self::NotEqual),
50 ctru_sys::GPU_LESS => Ok(Self::Less),
51 ctru_sys::GPU_LEQUAL => Ok(Self::LessOrEqual),
52 ctru_sys::GPU_GREATER => Ok(Self::Greater),
53 ctru_sys::GPU_GEQUAL => Ok(Self::GreaterOrEqual),
54 _ => Err("invalid value for TestFunction".to_string()),
55 }
56 }
57}
58#[repr(u8)]
60#[derive(Debug, Clone, Copy, PartialEq, Eq)]
61#[doc(alias = "GPU_EARLYDEPTHFUNC")]
62pub enum EarlyDepthFunction {
63 #[doc(alias = "GPU_EARLYDEPTH_GEQUAL")]
65 GreaterOrEqual = ctru_sys::GPU_EARLYDEPTH_GEQUAL,
66
67 #[doc(alias = "GPU_EARLYDEPTH_GREATER")]
69 Greater = ctru_sys::GPU_EARLYDEPTH_GREATER,
70
71 #[doc(alias = "GPU_EARLYDEPTH_LEQUAL")]
73 LessOrEqual = ctru_sys::GPU_EARLYDEPTH_LEQUAL,
74
75 #[doc(alias = "GPU_EARLYDEPTH_LESS")]
77 Less = ctru_sys::GPU_EARLYDEPTH_LESS,
78}
79
80impl TryFrom<u8> for EarlyDepthFunction {
81 type Error = String;
82
83 fn try_from(value: u8) -> Result<Self, Self::Error> {
84 match value {
85 ctru_sys::GPU_EARLYDEPTH_GEQUAL => Ok(Self::GreaterOrEqual),
86 ctru_sys::GPU_EARLYDEPTH_GREATER => Ok(Self::Greater),
87 ctru_sys::GPU_EARLYDEPTH_LEQUAL => Ok(Self::LessOrEqual),
88 ctru_sys::GPU_EARLYDEPTH_LESS => Ok(Self::Less),
89 _ => Err("invalid value for EarlyDepthFunction".to_string()),
90 }
91 }
92}
93
94#[repr(u8)]
96#[derive(Debug, Clone, Copy, PartialEq, Eq)]
97#[doc(alias = "GPU_SCISSORMODE")]
98pub enum ScissorMode {
99 #[doc(alias = "GPU_SCISSOR_DISABLE")]
101 Disable = ctru_sys::GPU_SCISSOR_DISABLE,
102
103 #[doc(alias = "GPU_SCISSOR_INVERT")]
105 Invert = ctru_sys::GPU_SCISSOR_INVERT,
106
107 #[doc(alias = "GPU_SCISSOR_NORMAL")]
109 Normal = ctru_sys::GPU_SCISSOR_NORMAL,
110}
111
112impl TryFrom<u8> for ScissorMode {
113 type Error = String;
114 fn try_from(value: u8) -> Result<Self, Self::Error> {
115 match value {
116 ctru_sys::GPU_SCISSOR_DISABLE => Ok(Self::Disable),
117 ctru_sys::GPU_SCISSOR_INVERT => Ok(Self::Invert),
118 ctru_sys::GPU_SCISSOR_NORMAL => Ok(Self::Normal),
119 _ => Err("invalid value for ScissorMode".to_string()),
120 }
121 }
122}
123
124#[repr(u8)]
126#[derive(Debug, Clone, Copy, PartialEq, Eq)]
127#[doc(alias = "GPU_STENCILOP")]
128pub enum StencilOperation {
129 #[doc(alias = "GPU_STENCIL_KEEP")]
131 Keep = ctru_sys::GPU_STENCIL_KEEP,
132
133 #[doc(alias = "GPU_STENCIL_ZERO")]
135 Zero = ctru_sys::GPU_STENCIL_ZERO,
136
137 #[doc(alias = "GPU_STENCIL_REPLACE")]
139 Replace = ctru_sys::GPU_STENCIL_REPLACE,
140
141 #[doc(alias = "GPU_STENCIL_INCR")]
143 Increment = ctru_sys::GPU_STENCIL_INCR,
144
145 #[doc(alias = "GPU_STENCIL_DECR")]
147 Decrement = ctru_sys::GPU_STENCIL_DECR,
148
149 #[doc(alias = "GPU_STENCIL_INVERT")]
151 Invert = ctru_sys::GPU_STENCIL_INVERT,
152
153 #[doc(alias = "GPU_STENCIL_INCR_WRAP")]
155 IncrementWrap = ctru_sys::GPU_STENCIL_INCR_WRAP,
156
157 #[doc(alias = "GPU_STENCIL_DECR_WRAP")]
159 DecrementWrap = ctru_sys::GPU_STENCIL_DECR_WRAP,
160}
161
162impl TryFrom<u8> for StencilOperation {
163 type Error = String;
164 fn try_from(value: u8) -> Result<Self, Self::Error> {
165 match value {
166 ctru_sys::GPU_STENCIL_KEEP => Ok(Self::Keep),
167 ctru_sys::GPU_STENCIL_ZERO => Ok(Self::Zero),
168 ctru_sys::GPU_STENCIL_REPLACE => Ok(Self::Replace),
169 ctru_sys::GPU_STENCIL_INCR => Ok(Self::Increment),
170 ctru_sys::GPU_STENCIL_DECR => Ok(Self::Decrement),
171 ctru_sys::GPU_STENCIL_INVERT => Ok(Self::Invert),
172 ctru_sys::GPU_STENCIL_INCR_WRAP => Ok(Self::IncrementWrap),
173 ctru_sys::GPU_STENCIL_DECR_WRAP => Ok(Self::DecrementWrap),
174 _ => Err("invalid value for StencilOperation".to_string()),
175 }
176 }
177}
178
179#[repr(u8)]
181#[derive(Debug, Clone, Copy, PartialEq, Eq)]
182#[doc(alias = "GPU_WRITEMASK")]
183pub enum WriteMask {
184 #[doc(alias = "GPU_WRITE_RED")]
186 Red = ctru_sys::GPU_WRITE_RED,
187
188 #[doc(alias = "GPU_WRITE_GREEN")]
190 Green = ctru_sys::GPU_WRITE_GREEN,
191
192 #[doc(alias = "GPU_WRITE_BLUE")]
194 Blue = ctru_sys::GPU_WRITE_BLUE,
195
196 #[doc(alias = "GPU_WRITE_ALPHA")]
198 Alpha = ctru_sys::GPU_WRITE_ALPHA,
199
200 #[doc(alias = "GPU_WRITE_DEPTH")]
202 Depth = ctru_sys::GPU_WRITE_DEPTH,
203
204 #[doc(alias = "GPU_WRITE_COLOR")]
206 Color = ctru_sys::GPU_WRITE_COLOR,
207
208 #[doc(alias = "GPU_WRITE_ALL")]
210 All = ctru_sys::GPU_WRITE_ALL,
211}
212
213impl TryFrom<u8> for WriteMask {
214 type Error = String;
215 fn try_from(value: u8) -> Result<Self, Self::Error> {
216 match value {
217 ctru_sys::GPU_WRITE_RED => Ok(Self::Red),
218 ctru_sys::GPU_WRITE_GREEN => Ok(Self::Green),
219 ctru_sys::GPU_WRITE_BLUE => Ok(Self::Blue),
220 ctru_sys::GPU_WRITE_ALPHA => Ok(Self::Alpha),
221 ctru_sys::GPU_WRITE_DEPTH => Ok(Self::Depth),
222 ctru_sys::GPU_WRITE_COLOR => Ok(Self::Color),
223 ctru_sys::GPU_WRITE_ALL => Ok(Self::All),
224 _ => Err("invalid value for WriteMask".to_string()),
225 }
226 }
227}
228
229#[repr(u8)]
231#[derive(Debug, Clone, Copy, PartialEq, Eq)]
232#[doc(alias = "GPU_BLENDEQUATION")]
233pub enum BlendEquation {
234 #[doc(alias = "GPU_BLEND_ADD")]
236 Add = ctru_sys::GPU_BLEND_ADD,
237
238 #[doc(alias = "GPU_BLEND_SUBTRACT")]
240 Subtract = ctru_sys::GPU_BLEND_SUBTRACT,
241
242 #[doc(alias = "GPU_BLEND_REVERSE_SUBTRACT")]
244 ReverseSubtract = ctru_sys::GPU_BLEND_REVERSE_SUBTRACT,
245
246 #[doc(alias = "GPU_BLEND_MIN")]
248 Min = ctru_sys::GPU_BLEND_MIN,
249
250 #[doc(alias = "GPU_BLEND_MAX")]
252 Max = ctru_sys::GPU_BLEND_MAX,
253}
254
255impl TryFrom<u8> for BlendEquation {
256 type Error = String;
257 fn try_from(value: u8) -> Result<Self, Self::Error> {
258 match value {
259 ctru_sys::GPU_BLEND_ADD => Ok(Self::Add),
260 ctru_sys::GPU_BLEND_SUBTRACT => Ok(Self::Subtract),
261 ctru_sys::GPU_BLEND_REVERSE_SUBTRACT => Ok(Self::ReverseSubtract),
262 ctru_sys::GPU_BLEND_MIN => Ok(Self::Min),
263 ctru_sys::GPU_BLEND_MAX => Ok(Self::Max),
264 _ => Err("invalid value for BlendEquation".to_string()),
265 }
266 }
267}
268
269#[repr(u8)]
271#[derive(Debug, Clone, Copy, PartialEq, Eq)]
272#[doc(alias = "GPU_BLENDFACTOR")]
273pub enum BlendFactor {
274 #[doc(alias = "GPU_ZERO")]
276 Zero = ctru_sys::GPU_ZERO,
277
278 #[doc(alias = "GPU_ONE")]
280 One = ctru_sys::GPU_ONE,
281
282 #[doc(alias = "GPU_SRC_COLOR")]
284 SrcColor = ctru_sys::GPU_SRC_COLOR,
285
286 #[doc(alias = "GPU_ONE_MINUS_SRC_COLOR")]
288 OneMinusSrcColor = ctru_sys::GPU_ONE_MINUS_SRC_COLOR,
289
290 #[doc(alias = "GPU_DST_COLOR")]
292 DstColor = ctru_sys::GPU_DST_COLOR,
293
294 #[doc(alias = "GPU_ONE_MINUS_DST_COLOR")]
296 OneMinusDstColor = ctru_sys::GPU_ONE_MINUS_DST_COLOR,
297
298 #[doc(alias = "GPU_SRC_ALPHA")]
300 SrcAlpha = ctru_sys::GPU_SRC_ALPHA,
301
302 #[doc(alias = "GPU_ONE_MINUS_SRC_ALPHA")]
304 OneMinusSrcAlpha = ctru_sys::GPU_ONE_MINUS_SRC_ALPHA,
305
306 #[doc(alias = "GPU_DST_ALPHA")]
308 DstAlpha = ctru_sys::GPU_DST_ALPHA,
309
310 #[doc(alias = "GPU_ONE_MINUS_DST_ALPHA")]
312 OneMinusDstAlpha = ctru_sys::GPU_ONE_MINUS_DST_ALPHA,
313
314 #[doc(alias = "GPU_CONSTANT_COLOR")]
316 ConstantColor = ctru_sys::GPU_CONSTANT_COLOR,
317
318 #[doc(alias = "GPU_ONE_MINUS_CONSTANT_COLOR")]
320 OneMinusConstantColor = ctru_sys::GPU_ONE_MINUS_CONSTANT_COLOR,
321
322 #[doc(alias = "GPU_CONSTANT_ALPHA")]
324 ConstantAlpha = ctru_sys::GPU_CONSTANT_ALPHA,
325
326 #[doc(alias = "GPU_ONE_MINUS_CONSTANT_ALPHA")]
328 OneMinusConstantAlpha = ctru_sys::GPU_ONE_MINUS_CONSTANT_ALPHA,
329
330 #[doc(alias = "GPU_SRC_ALPHA_SATURATE")]
332 SrcAlphaSaturate = ctru_sys::GPU_SRC_ALPHA_SATURATE,
333}
334
335impl TryFrom<u8> for BlendFactor {
336 type Error = String;
337 fn try_from(value: u8) -> Result<Self, Self::Error> {
338 match value {
339 ctru_sys::GPU_ZERO => Ok(Self::Zero),
340 ctru_sys::GPU_ONE => Ok(Self::One),
341 ctru_sys::GPU_SRC_COLOR => Ok(Self::SrcColor),
342 ctru_sys::GPU_ONE_MINUS_SRC_COLOR => Ok(Self::OneMinusSrcColor),
343 ctru_sys::GPU_DST_COLOR => Ok(Self::DstColor),
344 ctru_sys::GPU_ONE_MINUS_DST_COLOR => Ok(Self::OneMinusDstColor),
345 ctru_sys::GPU_SRC_ALPHA => Ok(Self::SrcAlpha),
346 ctru_sys::GPU_ONE_MINUS_SRC_ALPHA => Ok(Self::OneMinusSrcAlpha),
347 ctru_sys::GPU_DST_ALPHA => Ok(Self::DstAlpha),
348 ctru_sys::GPU_ONE_MINUS_DST_ALPHA => Ok(Self::OneMinusDstAlpha),
349 ctru_sys::GPU_CONSTANT_COLOR => Ok(Self::ConstantColor),
350 ctru_sys::GPU_ONE_MINUS_CONSTANT_COLOR => Ok(Self::OneMinusConstantColor),
351 ctru_sys::GPU_CONSTANT_ALPHA => Ok(Self::ConstantAlpha),
352 ctru_sys::GPU_ONE_MINUS_CONSTANT_ALPHA => Ok(Self::OneMinusConstantAlpha),
353 ctru_sys::GPU_SRC_ALPHA_SATURATE => Ok(Self::SrcAlphaSaturate),
354 _ => Err("invalid value for BlendFactor".to_string()),
355 }
356 }
357}
358
359#[repr(u8)]
361#[derive(Debug, Clone, Copy, PartialEq, Eq)]
362#[doc(alias = "GPU_LOGICOP")]
363pub enum LogicOperation {
364 #[doc(alias = "GPU_LOGICOP_CLEAR")]
366 Clear = ctru_sys::GPU_LOGICOP_CLEAR,
367
368 #[doc(alias = "GPU_LOGICOP_AND")]
370 And = ctru_sys::GPU_LOGICOP_AND,
371
372 #[doc(alias = "GPU_LOGICOP_AND_REVERSE")]
374 AndReverse = ctru_sys::GPU_LOGICOP_AND_REVERSE,
375
376 #[doc(alias = "GPU_LOGICOP_COPY")]
378 Copy = ctru_sys::GPU_LOGICOP_COPY,
379
380 #[doc(alias = "GPU_LOGICOP_SET")]
382 Set = ctru_sys::GPU_LOGICOP_SET,
383
384 #[doc(alias = "GPU_LOGICOP_COPY_INVERTED")]
386 CopyInverted = ctru_sys::GPU_LOGICOP_COPY_INVERTED,
387
388 #[doc(alias = "GPU_LOGICOP_NOOP")]
390 Noop = ctru_sys::GPU_LOGICOP_NOOP,
391
392 #[doc(alias = "GPU_LOGICOP_INVERT")]
394 Invert = ctru_sys::GPU_LOGICOP_INVERT,
395
396 #[doc(alias = "GPU_LOGICOP_NAND")]
398 Nand = ctru_sys::GPU_LOGICOP_NAND,
399
400 #[doc(alias = "GPU_LOGICOP_OR")]
402 Or = ctru_sys::GPU_LOGICOP_OR,
403
404 #[doc(alias = "GPU_LOGICOP_NOR")]
406 Nor = ctru_sys::GPU_LOGICOP_NOR,
407
408 #[doc(alias = "GPU_LOGICOP_XOR")]
410 Xor = ctru_sys::GPU_LOGICOP_XOR,
411
412 #[doc(alias = "GPU_LOGICOP_EQUIV")]
414 Equiv = ctru_sys::GPU_LOGICOP_EQUIV,
415
416 #[doc(alias = "GPU_LOGICOP_AND_INVERTED")]
418 AndInverted = ctru_sys::GPU_LOGICOP_AND_INVERTED,
419
420 #[doc(alias = "GPU_LOGICOP_OR_REVERSE")]
422 OrReverse = ctru_sys::GPU_LOGICOP_OR_REVERSE,
423
424 #[doc(alias = "GPU_LOGICOP_OR_INVERTED")]
426 OrInverted = ctru_sys::GPU_LOGICOP_OR_INVERTED,
427}
428
429impl TryFrom<u8> for LogicOperation {
430 type Error = String;
431 fn try_from(value: u8) -> Result<Self, Self::Error> {
432 match value {
433 ctru_sys::GPU_LOGICOP_CLEAR => Ok(Self::Clear),
434 ctru_sys::GPU_LOGICOP_AND => Ok(Self::And),
435 ctru_sys::GPU_LOGICOP_AND_REVERSE => Ok(Self::AndReverse),
436 ctru_sys::GPU_LOGICOP_COPY => Ok(Self::Copy),
437 ctru_sys::GPU_LOGICOP_SET => Ok(Self::Set),
438 ctru_sys::GPU_LOGICOP_COPY_INVERTED => Ok(Self::CopyInverted),
439 ctru_sys::GPU_LOGICOP_NOOP => Ok(Self::Noop),
440 ctru_sys::GPU_LOGICOP_INVERT => Ok(Self::Invert),
441 ctru_sys::GPU_LOGICOP_NAND => Ok(Self::Nand),
442 ctru_sys::GPU_LOGICOP_OR => Ok(Self::Or),
443 ctru_sys::GPU_LOGICOP_NOR => Ok(Self::Nor),
444 ctru_sys::GPU_LOGICOP_XOR => Ok(Self::Xor),
445 ctru_sys::GPU_LOGICOP_EQUIV => Ok(Self::Equiv),
446 ctru_sys::GPU_LOGICOP_AND_INVERTED => Ok(Self::AndInverted),
447 ctru_sys::GPU_LOGICOP_OR_REVERSE => Ok(Self::OrReverse),
448 ctru_sys::GPU_LOGICOP_OR_INVERTED => Ok(Self::OrInverted),
449 _ => Err("invalid value for LogicOperation".to_string()),
450 }
451 }
452}
453
454#[repr(u8)]
456#[derive(Debug, Clone, Copy, PartialEq, Eq)]
457#[doc(alias = "GPU_CULLMODE")]
458pub enum CullMode {
459 #[doc(alias = "GPU_CULL_NONE")]
461 None = ctru_sys::GPU_CULL_NONE,
462
463 #[doc(alias = "GPU_CULL_FRONT_CCW")]
465 FrontCounterClockwise = ctru_sys::GPU_CULL_FRONT_CCW,
466
467 #[doc(alias = "GPU_CULL_BACK_CCW")]
469 BackCounterClockwise = ctru_sys::GPU_CULL_BACK_CCW,
470}
471
472impl TryFrom<u8> for CullMode {
473 type Error = String;
474 fn try_from(value: u8) -> Result<Self, Self::Error> {
475 match value {
476 ctru_sys::GPU_CULL_NONE => Ok(Self::None),
477 ctru_sys::GPU_CULL_FRONT_CCW => Ok(Self::FrontCounterClockwise),
478 ctru_sys::GPU_CULL_BACK_CCW => Ok(Self::BackCounterClockwise),
479 _ => Err("invalid value for CullMode".to_string()),
480 }
481 }
482}
483
484#[repr(u8)]
486#[derive(Debug, Clone, Copy, PartialEq, Eq)]
487#[doc(alias = "GPU_FRAGOPMODE")]
488pub enum FragmentOperationMode {
489 #[doc(alias = "GPU_FRAGOPMODE_GL")]
491 Gl = ctru_sys::GPU_FRAGOPMODE_GL,
492
493 #[doc(alias = "GPU_FRAGOPMODE_GAS_ACC")]
495 GasAcc = ctru_sys::GPU_FRAGOPMODE_GAS_ACC,
496
497 #[doc(alias = "GPU_FRAGOPMODE_SHADOW")]
499 Shadow = ctru_sys::GPU_FRAGOPMODE_SHADOW,
500}
501
502impl TryFrom<u8> for FragmentOperationMode {
503 type Error = String;
504 fn try_from(value: u8) -> Result<Self, Self::Error> {
505 match value {
506 ctru_sys::GPU_FRAGOPMODE_GL => Ok(Self::Gl),
507 ctru_sys::GPU_FRAGOPMODE_GAS_ACC => Ok(Self::GasAcc),
508 ctru_sys::GPU_FRAGOPMODE_SHADOW => Ok(Self::Shadow),
509 _ => Err("invalid value for FragmentOperationMode".to_string()),
510 }
511 }
512}