#include "ogl.hpp" #include // 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() { glDeleteTextures(1, &glHandle); } 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(reinterpret_cast(glHandle)); }