Skip to content
Snippets Groups Projects
Commit f445ceba authored by Petr Babič's avatar Petr Babič
Browse files

provide blending configuration in Renderer


Signed-off-by: default avatarPetr Babic <xbabic@fi.muni.cz>
parent b6e7d633
No related branches found
No related tags found
1 merge request!2Bachelor Thesis Contribution Showcase
...@@ -63,6 +63,16 @@ struct Renderer : public com::Library { ...@@ -63,6 +63,16 @@ struct Renderer : public com::Library {
*/ */
static void gather_lights(const com::Folder *collection, std::vector<const com::Folder*> &lights); static void gather_lights(const com::Folder *collection, std::vector<const com::Folder*> &lights);
/**
* Configures blending options in OpenGL.
* Can be used to render (partially) transparent objects.
* For more info, see https://docs.gl/gl3/glBlendFunc.
* @param enable determines whether to enable or disable blending.
* @param sfactor is passed to glBlendFunc.
* @param dfactor is passed to glBlendFunc.
*/
static void configure_blending(bool enable, GLenum sfactor = GL_SRC_ALPHA, GLenum dfactor = GL_ONE_MINUS_SRC_ALPHA);
protected: protected:
void initialize() override; void initialize() override;
void release() override; void release() override;
......
...@@ -139,6 +139,15 @@ void Renderer::gather_lights(const com::Folder *collection, std::vector<const co ...@@ -139,6 +139,15 @@ void Renderer::gather_lights(const com::Folder *collection, std::vector<const co
} }
} }
void Renderer::configure_blending(bool enable, GLenum sfactor, GLenum dfactor) {
if (enable) {
GL_ASSUME_SUCCESS(glEnable(GL_BLEND));
GL_ASSUME_SUCCESS(glBlendFunc(sfactor, dfactor));
} else {
GL_ASSUME_SUCCESS(glDisable(GL_BLEND));
}
}
void Renderer::copy_depth_buffer() const { void Renderer::copy_depth_buffer() const {
auto [width, height] = detail::window_size(); auto [width, height] = detail::window_size();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment