hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/rendering/renderer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/rendering/renderer.h')
-rw-r--r--src/rendering/renderer.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/rendering/renderer.h b/src/rendering/renderer.h
index 6212b21..4a028e5 100644
--- a/src/rendering/renderer.h
+++ b/src/rendering/renderer.h
@@ -26,14 +26,17 @@ namespace Donut
virtual void set_clear_color(const glm::vec4& color) = 0;
virtual void clear() = 0;
virtual void enable_depth_test() = 0;
+ virtual void disable_depth_test() = 0;
virtual void set_face_culling(bool enabled) = 0;
+ virtual void enable_blending() = 0;
+ virtual void disable_blending() = 0;
virtual void draw_indexed(const Ref<VertexArray>& vertex_array,
uint32_t index_count = 0) = 0;
inline static API get_api() { return s_api; }
inline static void set_api(API api) { s_api = api; }
- static Scope<RendererAPI> create();
+ static Ref<RendererAPI> create();
private:
static API s_api;
};
@@ -66,18 +69,33 @@ namespace Donut
s_renderer_api->enable_depth_test();
}
+ inline static void disable_depth_test()
+ {
+ s_renderer_api->disable_depth_test();
+ }
+
inline static void set_face_culling(bool enabled)
{
s_renderer_api->set_face_culling(enabled);
}
+ inline static void enable_blending()
+ {
+ s_renderer_api->enable_blending();
+ }
+
+ inline static void disable_blending()
+ {
+ s_renderer_api->disable_blending();
+ }
+
inline static void draw_indexed(const Ref<VertexArray>& vertex_array, uint32_t index_count = 0)
{
s_renderer_api->draw_indexed(vertex_array, index_count);
}
private:
- static Scope<RendererAPI> s_renderer_api;
+ static Ref<RendererAPI> s_renderer_api;
};
class Renderer