srp
software rendering pipeline
Loading...
Searching...
No Matches
context.h
Go to the documentation of this file.
1// Software Rendering Pipeline (SRP) library
2// Licensed under GNU GPLv3
3
8#pragma once
9
10#include <stdbool.h>
11#include <stddef.h>
12#include <stdint.h>
14#include "srp/arena.h"
15
27
34
44
52
54typedef enum SRPCompareOp
55{
56 SRP_COMPARE_NEVER,
57 SRP_COMPARE_ALWAYS,
58 SRP_COMPARE_LESS,
59 SRP_COMPARE_LEQUAL,
60 SRP_COMPARE_GREATER,
61 SRP_COMPARE_GEQUAL,
62 SRP_COMPARE_EQUAL,
63 SRP_COMPARE_NOTEQUAL
65
77
78
79
88
90typedef struct SRPScissorState {
91 bool enabled;
92 size_t x;
93 size_t y;
94 size_t width;
95 size_t height;
97
108
115
124
125
144
145
148void srpNewContext(SRPContext* pContext);
149
152
155
157void srpRasterCullFace(SRPFace face);
163void srpRasterPointSize(float size);
164
166void srpScissorTest(bool enable);
168void srpScissorOptions(size_t x, size_t y, size_t width, size_t height);
169
171void srpStencilTest(bool enable);
173void srpStencilFunc(SRPCompareOp func, uint8_t ref, uint8_t mask);
175void srpStencilFuncSeparate(SRPFace face, SRPCompareOp func, uint8_t ref, uint8_t mask);
177void srpStencilOp(SRPStencilOp sfail, SRPStencilOp dfail, SRPStencilOp pass);
181void srpStencilWriteMask(uint8_t mask);
183void srpStencilWriteMaskSeparate(SRPFace face, uint8_t mask);
184
186void srpDepthTest(bool enable);
188void srpDepthWrite(bool enable);
191
192
195
// ingroup Context
@ SRP_FACE_FRONT
Definition context.h:39
@ SRP_FACE_BACK
Definition context.h:41
@ SRP_FACE_FRONT_AND_BACK
Definition context.h:42
@ SRP_FACE_NONE
Definition context.h:38
@ SRP_STENCIL_DECR
Definition context.h:73
@ SRP_STENCIL_INCR_WRAP
Definition context.h:72
@ SRP_STENCIL_KEEP
Definition context.h:68
@ SRP_STENCIL_INVERT
Definition context.h:75
@ SRP_STENCIL_ZERO
Definition context.h:69
@ SRP_STENCIL_DECR_WRAP
Definition context.h:74
@ SRP_STENCIL_REPLACE
Definition context.h:70
@ SRP_STENCIL_INCR
Definition context.h:71
@ SRP_WINDING_CCW
Definition context.h:31
@ SRP_WINDING_CW
Definition context.h:32
@ SRP_POLYGON_MODE_LINE
Definition context.h:49
@ SRP_POLYGON_MODE_POINT
Definition context.h:50
@ SRP_POLYGON_MODE_FILL
Definition context.h:48
void srpStencilTest(bool enable)
Definition context.c:96
void srpDepthWrite(bool enable)
Definition context.c:172
void srpStencilFuncSeparate(SRPFace face, SRPCompareOp func, uint8_t ref, uint8_t mask)
Definition context.c:111
void srpStencilWriteMask(uint8_t mask)
Definition context.c:149
void srpDepthCompareOp(SRPCompareOp op)
Definition context.c:177
void srpRasterCullFace(SRPFace face)
Definition context.c:63
void srpStencilOp(SRPStencilOp sfail, SRPStencilOp dfail, SRPStencilOp pass)
Definition context.c:125
void srpNewContext(SRPContext *pContext)
Definition context.c:15
void srpDepthTest(bool enable)
Definition context.c:167
void srpRasterPointSize(float size)
Definition context.c:78
void srpSetMessageCallback(SRPMessageCallback callback)
Definition context.c:53
SRPCompareOp
Definition context.h:55
SRPFace
Definition context.h:37
void srpProvokingVertexMode(SRPProvokingVertexMode mode)
Definition context.c:58
void srpRasterPolygonMode(SRPPolygonMode mode)
Definition context.c:73
void srpStencilFunc(SRPCompareOp func, uint8_t ref, uint8_t mask)
Definition context.c:101
void srpStencilOpSeparate(SRPFace face, SRPStencilOp sfail, SRPStencilOp dfail, SRPStencilOp pass)
Definition context.c:135
void srpStencilWriteMaskSeparate(SRPFace face, uint8_t mask)
Definition context.c:155
SRPProvokingVertexMode
Definition context.h:21
void srpRasterFrontFace(SRPWinding face)
Definition context.c:68
SRPStencilOp
Definition context.h:67
SRPWinding
Definition context.h:30
SRPPolygonMode
Definition context.h:47
void srpScissorOptions(size_t x, size_t y, size_t width, size_t height)
Definition context.c:88
SRPContext srpContext
void srpScissorTest(bool enable)
Definition context.c:83
@ SRP_PROVOKING_VERTEX_LAST
Definition context.h:25
@ SRP_PROVOKING_VERTEX_FIRST
Definition context.h:23
Definition arena_p.h:28
Definition context.h:129
SRPMessageCallback messageCallback
Definition context.h:131
SRPStencilState stencil
Definition context.h:138
SRPArena * arena
Definition context.h:142
SRPProvokingVertexMode provokingVertexMode
Definition context.h:134
SRPScissorState scissor
Definition context.h:137
SRPDepthState depth
Definition context.h:139
SRPRasterState raster
Definition context.h:136
Definition context.h:118
SRPCompareOp compareOp
Definition context.h:122
bool writeEnable
Definition context.h:120
bool testEnable
Definition context.h:119
Definition message_callback.h:42
Definition context.h:82
SRPWinding frontFace
Definition context.h:83
float pointSize
Definition context.h:86
SRPPolygonMode polygonMode
Definition context.h:85
SRPFace cullFace
Definition context.h:84
Definition context.h:90
bool enabled
Definition context.h:91
size_t width
Definition context.h:94
size_t height
Definition context.h:95
size_t x
Definition context.h:92
size_t y
Definition context.h:93
Definition context.h:99
SRPStencilOp sfailOp
Definition context.h:104
uint8_t mask
Definition context.h:102
SRPCompareOp func
Definition context.h:100
uint8_t ref
Definition context.h:101
SRPStencilOp passOp
Definition context.h:106
uint8_t writeMask
Definition context.h:103
SRPStencilOp dfailOp
Definition context.h:105
Definition context.h:110
SRPStencilFaceState front
Definition context.h:112
bool enabled
Definition context.h:111
SRPStencilFaceState back
Definition context.h:113