Share retained RTT clear dispatch
This commit is contained in:
@@ -38,6 +38,11 @@ inline void set_opengl_color_mask(std::uint8_t r, std::uint8_t g, std::uint8_t b
|
||||
glColorMask(r, g, b, a);
|
||||
}
|
||||
|
||||
inline void get_opengl_boolean(std::uint32_t name, std::uint8_t* value) noexcept
|
||||
{
|
||||
glGetBooleanv(static_cast<GLenum>(name), reinterpret_cast<GLboolean*>(value));
|
||||
}
|
||||
|
||||
inline void set_opengl_clear_color(float r, float g, float b, float a) noexcept
|
||||
{
|
||||
glClearColor(r, g, b, a);
|
||||
|
||||
37
src/rtt.cpp
37
src/rtt.cpp
@@ -7,34 +7,11 @@
|
||||
#include "legacy_gl_pixel_buffer_dispatch.h"
|
||||
#include "legacy_gl_renderbuffer_dispatch.h"
|
||||
#include "legacy_gl_texture_dispatch.h"
|
||||
#include "legacy_ui_gl_dispatch.h"
|
||||
#include "renderer_gl/opengl_capabilities.h"
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
namespace {
|
||||
|
||||
void query_opengl_boolean(std::uint32_t name, std::uint8_t* value) noexcept
|
||||
{
|
||||
glGetBooleanv(static_cast<GLenum>(name), reinterpret_cast<GLboolean*>(value));
|
||||
}
|
||||
|
||||
void set_opengl_clear_color(float r, float g, float b, float a) noexcept
|
||||
{
|
||||
glClearColor(r, g, b, a);
|
||||
}
|
||||
|
||||
void clear_opengl_buffers(std::uint32_t mask) noexcept
|
||||
{
|
||||
glClear(static_cast<GLbitfield>(mask));
|
||||
}
|
||||
|
||||
void set_opengl_color_mask(std::uint8_t r, std::uint8_t g, std::uint8_t b, std::uint8_t a) noexcept
|
||||
{
|
||||
glColorMask(r, g, b, a);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
RTT& RTT::operator=(RTT&& other)
|
||||
{
|
||||
int_fmt = other.int_fmt;
|
||||
@@ -403,8 +380,8 @@ void RTT::clear(glm::vec4 color)
|
||||
| pp::renderer::gl::framebuffer_depth_buffer_mask(),
|
||||
},
|
||||
pp::renderer::gl::OpenGlClearDispatch {
|
||||
.clear_color = set_opengl_clear_color,
|
||||
.clear = clear_opengl_buffers,
|
||||
.clear_color = pp::legacy::ui_gl::set_opengl_clear_color,
|
||||
.clear = pp::legacy::ui_gl::clear_opengl_buffer,
|
||||
});
|
||||
if (!status.ok())
|
||||
LOG("RTT::clear() failed because: %s", status.message);
|
||||
@@ -424,10 +401,10 @@ void RTT::clear_mask(glm::bool4 mask, glm::vec4 color)
|
||||
.color = { color.r, color.g, color.b, color.a },
|
||||
},
|
||||
pp::renderer::gl::OpenGlColorMaskedClearDispatch {
|
||||
.get_boolean = query_opengl_boolean,
|
||||
.color_mask = set_opengl_color_mask,
|
||||
.clear_color = set_opengl_clear_color,
|
||||
.clear = clear_opengl_buffers,
|
||||
.get_boolean = pp::legacy::ui_gl::get_opengl_boolean,
|
||||
.color_mask = pp::legacy::ui_gl::set_opengl_color_mask,
|
||||
.clear_color = pp::legacy::ui_gl::set_opengl_clear_color,
|
||||
.clear = pp::legacy::ui_gl::clear_opengl_buffer,
|
||||
});
|
||||
if (!status.ok())
|
||||
LOG("RTT::clear_mask() failed because: %s", status.message);
|
||||
|
||||
Reference in New Issue
Block a user