diff options
author | Stephan Unverwerth <s.unverwerth@serenityos.org> | 2021-12-22 23:11:35 +0100 |
---|---|---|
committer | Brian Gianforcaro <b.gianfo@gmail.com> | 2021-12-24 05:10:28 -0800 |
commit | c720cd00db9c931eefc657d9b2179605067a0f0a (patch) | |
tree | 4a40db47a75ed16bc0314664c19cf01edee2cde9 /Userland/Libraries/LibGL | |
parent | 40bd73bdef80d69d72cbc0699ea3690adc677ed3 (diff) | |
download | serenity-c720cd00db9c931eefc657d9b2179605067a0f0a.zip |
LibSoftGPU: Remove OpenGL type for alpha blend factors
Replaces the GLenum used for configuring alpha blend factors in the
SoftGPU device with out own enum.
Diffstat (limited to 'Userland/Libraries/LibGL')
-rw-r--r-- | Userland/Libraries/LibGL/SoftwareGLContext.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/Userland/Libraries/LibGL/SoftwareGLContext.cpp b/Userland/Libraries/LibGL/SoftwareGLContext.cpp index 7eee9d985b..b75de83362 100644 --- a/Userland/Libraries/LibGL/SoftwareGLContext.cpp +++ b/Userland/Libraries/LibGL/SoftwareGLContext.cpp @@ -1130,9 +1130,39 @@ void SoftwareGLContext::gl_blend_func(GLenum src_factor, GLenum dst_factor) m_blend_source_factor = src_factor; m_blend_destination_factor = dst_factor; + auto map_gl_blend_factor_to_device = [](GLenum factor) constexpr + { + switch (factor) { + case GL_ZERO: + return SoftGPU::BlendFactor::Zero; + case GL_ONE: + return SoftGPU::BlendFactor::One; + case GL_SRC_ALPHA: + return SoftGPU::BlendFactor::SrcAlpha; + case GL_ONE_MINUS_SRC_ALPHA: + return SoftGPU::BlendFactor::OneMinusSrcAlpha; + case GL_SRC_COLOR: + return SoftGPU::BlendFactor::SrcColor; + case GL_ONE_MINUS_SRC_COLOR: + return SoftGPU::BlendFactor::OneMinusSrcColor; + case GL_DST_ALPHA: + return SoftGPU::BlendFactor::DstAlpha; + case GL_ONE_MINUS_DST_ALPHA: + return SoftGPU::BlendFactor::OneMinusDstAlpha; + case GL_DST_COLOR: + return SoftGPU::BlendFactor::DstColor; + case GL_ONE_MINUS_DST_COLOR: + return SoftGPU::BlendFactor::OneMinusDstColor; + case GL_SRC_ALPHA_SATURATE: + return SoftGPU::BlendFactor::SrcAlphaSaturate; + default: + VERIFY_NOT_REACHED(); + } + }; + auto options = m_rasterizer.options(); - options.blend_source_factor = m_blend_source_factor; - options.blend_destination_factor = m_blend_destination_factor; + options.blend_source_factor = map_gl_blend_factor_to_device(m_blend_source_factor); + options.blend_destination_factor = map_gl_blend_factor_to_device(m_blend_destination_factor); m_rasterizer.set_options(options); } |