diff options
| author | hachem <im@hachem.wtf> | 2026-08-30 17:59:14 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-30 17:59:14 +0200 |
| commit | f099a82eb2b2a6bb64cd51d98ab027f4ce45078c (patch) | |
| tree | ac83cedd80afb500b63ff8e517f6e24939742f9c /src/ui/image_renderer.h | |
| parent | 5074ae48a95f96ec3370e464bb3c7242a3455411 (diff) | |
feat: little pepe
Diffstat (limited to 'src/ui/image_renderer.h')
| -rw-r--r-- | src/ui/image_renderer.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/ui/image_renderer.h b/src/ui/image_renderer.h new file mode 100644 index 0000000..3f4c129 --- /dev/null +++ b/src/ui/image_renderer.h @@ -0,0 +1,33 @@ +#pragma once + +namespace Hsdbg +{ + class ImageRenderer + { + public: + ImageRenderer() = default; + ~ImageRenderer(); + + ImageRenderer(const ImageRenderer&) = delete; + ImageRenderer(ImageRenderer&&) = delete; + auto operator=(const ImageRenderer&) -> ImageRenderer& = delete; + auto operator=(ImageRenderer&&) -> ImageRenderer& = delete; + + auto init() -> bool; + auto shutdown() -> void; + + auto ready() const -> bool { return m_program != 0; } + + // draws the texture into the given rectangle, in framebuffer pixels with + // the origin at the top-left, blended over whatever is already there + auto draw(unsigned int texture, + float x0, float y0, float x1, float y1, + int framebuffer_width, int framebuffer_height) -> void; + + private: + unsigned int m_program = 0; + unsigned int m_vao = 0; + unsigned int m_vbo = 0; + int m_texture_uniform = -1; + }; +} |
