Hi all,
I’m trying to show a simple png image, using the documentation on imgui.cpp and modifying example_glfw_opengl3, but probably I’d doing something very stupid because instead of the image I see a black box.
My code:
int my_image_width, my_image_height;
unsigned char* my_image_data = stbi_load("test.png", &my_image_width, &my_image_height, NULL, 4);
// Turn the RGBA pixel data into an OpenGL texture:
GLuint my_opengl_texture;
glGenTextures(1, &my_opengl_texture);
glBindTexture(GL_TEXTURE_2D, my_opengl_texture);
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, my_image_width, my_image_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, my_image_data);
// Now that we have an OpenGL texture, assuming our imgui rendering function (imgui_impl_xxx.cpp file) takes GLuint as ImTextureID, we can display it:
ImGui::Image((void*)(intptr_t)my_opengl_texture, ImVec2(my_image_width, my_image_height));
The image data seems to be read properly from the filesystem, since the box size is the correct one. I’ve attached also a screenshot of the metric window for reference.
Thanks for your help.
Andrea