diff options
Diffstat (limited to 'src/ogl.cpp')
-rw-r--r-- | src/ogl.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/ogl.cpp b/src/ogl.cpp index a7b2dfa..19e49cc 100644 --- a/src/ogl.cpp +++ b/src/ogl.cpp @@ -2,8 +2,16 @@ #include <imgui_impl_opengl3_loader.h> +// These constants are omitted from the ImGui loader +#define GL_NEAREST 0x2600 + OglImage::OglImage() { glGenTextures(1, &glHandle); + glBindTexture(GL_TEXTURE_2D, glHandle); + + // Setup filtering parameters for display + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); } OglImage::~OglImage() { @@ -14,3 +22,7 @@ void OglImage::upload(const char* data, int w, int h) { glBindTexture(GL_TEXTURE_2D, glHandle); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); } + +ImTextureID OglImage::as_imgui() const { + return static_cast<ImTextureID>(reinterpret_cast<uint32_t>(glHandle)); +} |