48 lines
876 B
C++
48 lines
876 B
C++
#include "imgui.h"
|
|
#include <sstream>
|
|
#include <string_view>
|
|
|
|
#if defined(__APPLE__)
|
|
#include <SDL2/SDL.h>
|
|
#if defined(IMGUI_IMPL_OPENGL_ES2)
|
|
#include <SDL2/SDL_opengles.h>
|
|
#else
|
|
#include <SDL2/SDL_opengl.h>
|
|
#endif
|
|
#else
|
|
#include <SDL.h>
|
|
#if defined(IMGUI_IMPL_OPENGL_ES2)
|
|
#include <SDL_opengles2.h>
|
|
#else
|
|
#include <SDL_opengl.h>
|
|
#endif
|
|
#endif
|
|
|
|
class ImageBundle {
|
|
public:
|
|
int width;
|
|
int height;
|
|
int channels;
|
|
ImTextureID texture;
|
|
GLuint *glTextureID;
|
|
std::string_view raw_buffer;
|
|
uint8_t *image;
|
|
bool loaded;
|
|
std::string fname;
|
|
|
|
ImageBundle() {
|
|
fname = "";
|
|
loaded = false;
|
|
}
|
|
|
|
float aspectRatio() { return (float)width / (float)height; }
|
|
|
|
int calcResizedWidth(int newHeight) {
|
|
return (int)((float)newHeight * (1.0 / aspectRatio()));
|
|
}
|
|
|
|
int calcResizedHeight(int newWidth) {
|
|
return (int)((float)newWidth * (aspectRatio()));
|
|
}
|
|
};
|