summaryrefslogtreecommitdiff
path: root/src/image.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/image.cpp')
-rw-r--r--src/image.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/image.cpp b/src/image.cpp
index e7df8b8..091a128 100644
--- a/src/image.cpp
+++ b/src/image.cpp
@@ -1,5 +1,6 @@
#include "image.h"
#include "definitions.h"
+#include "../imfiledialog/ImFileDialog.h"
#define STB_IMAGE_IMPLEMENTATION
#include "../stb_image.h"
@@ -64,4 +65,22 @@ void ts_load_images() {
size = _binary_misc_folder_png_end - _binary_misc_folder_png_start;
data = (unsigned char *)_binary_misc_folder_png_start;
img_folder = _ts_load_image(data, size);
+
+ ifd::FileDialog::Instance().CreateTexture = [](uint8_t* data, int w, int h, char fmt) -> void* {
+ GLuint tex;
+
+ glGenTextures(1, &tex);
+ glBindTexture(GL_TEXTURE_2D, tex);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
+ //glGenerateMipmap(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, 0);
+
+ return (void*)(intptr_t)tex;
+ };
+ ifd::FileDialog::Instance().DeleteTexture = [](void* tex) {
+ GLuint texID = (GLuint)tex;
+ glDeleteTextures(1, &texID);
+ };
} \ No newline at end of file