1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 11:57:34 +00:00

LibGL: Convert stencil front/back function and operation to Arrays

This commit is contained in:
Jelle Raaijmakers 2022-01-16 02:13:07 +01:00 committed by Andreas Kling
parent 3609ffc450
commit 6386671944
2 changed files with 6 additions and 8 deletions

View file

@ -2635,9 +2635,9 @@ void SoftwareGLContext::gl_stencil_func_separate(GLenum face, GLenum func, GLint
StencilFunctionOptions new_options = { func, ref, mask }; StencilFunctionOptions new_options = { func, ref, mask };
if (face == GL_FRONT || face == GL_FRONT_AND_BACK) if (face == GL_FRONT || face == GL_FRONT_AND_BACK)
m_stencil_frontfacing_func = new_options; m_stencil_function[Face::Front] = new_options;
if (face == GL_BACK || face == GL_FRONT_AND_BACK) if (face == GL_BACK || face == GL_FRONT_AND_BACK)
m_stencil_backfacing_func = new_options; m_stencil_function[Face::Back] = new_options;
} }
void SoftwareGLContext::gl_stencil_op_separate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) void SoftwareGLContext::gl_stencil_op_separate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
@ -2677,9 +2677,9 @@ void SoftwareGLContext::gl_stencil_op_separate(GLenum face, GLenum sfail, GLenum
StencilOperationOptions new_options = { sfail, dpfail, dppass }; StencilOperationOptions new_options = { sfail, dpfail, dppass };
if (face == GL_FRONT || face == GL_FRONT_AND_BACK) if (face == GL_FRONT || face == GL_FRONT_AND_BACK)
m_stencil_frontfacing_op = new_options; m_stencil_operation[Face::Front] = new_options;
if (face == GL_BACK || face == GL_FRONT_AND_BACK) if (face == GL_BACK || face == GL_FRONT_AND_BACK)
m_stencil_backfacing_op = new_options; m_stencil_operation[Face::Back] = new_options;
} }
void SoftwareGLContext::gl_normal(GLfloat nx, GLfloat ny, GLfloat nz) void SoftwareGLContext::gl_normal(GLfloat nx, GLfloat ny, GLfloat nz)

View file

@ -231,16 +231,14 @@ private:
GLint reference_value { 0 }; GLint reference_value { 0 };
GLuint mask { NumericLimits<GLuint>::max() }; GLuint mask { NumericLimits<GLuint>::max() };
}; };
StencilFunctionOptions m_stencil_backfacing_func; Array<StencilFunctionOptions, 2u> m_stencil_function;
StencilFunctionOptions m_stencil_frontfacing_func;
struct StencilOperationOptions { struct StencilOperationOptions {
GLenum op_fail { GL_KEEP }; GLenum op_fail { GL_KEEP };
GLenum op_depth_fail { GL_KEEP }; GLenum op_depth_fail { GL_KEEP };
GLenum op_pass { GL_KEEP }; GLenum op_pass { GL_KEEP };
}; };
StencilOperationOptions m_stencil_backfacing_op; Array<StencilOperationOptions, 2u> m_stencil_operation;
StencilOperationOptions m_stencil_frontfacing_op;
GLenum m_current_read_buffer = GL_BACK; GLenum m_current_read_buffer = GL_BACK;
GLenum m_current_draw_buffer = GL_BACK; GLenum m_current_draw_buffer = GL_BACK;