diff options
Diffstat (limited to 'ui/svgIcon.cpp')
| -rw-r--r-- | ui/svgIcon.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/ui/svgIcon.cpp b/ui/svgIcon.cpp index 499d9cc..2c73b5d 100644 --- a/ui/svgIcon.cpp +++ b/ui/svgIcon.cpp @@ -1,5 +1,4 @@ #include "svgIcon.h" -#include "gl_traits.h" #include <resource.h> SvgIcon::SvgIcon(ImageDimensions dim, const std::filesystem::path & path) @@ -15,20 +14,18 @@ SvgIcon::SvgIcon(ImageDimensions dim, const std::filesystem::path & path) } bitmap.convertToRGBA(); - glBindTexture(GL_TEXTURE_2D, texture); - - glTexParameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); - glTexParameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); - - glTexParameter(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameter(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, dim.x, dim.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, bitmap.data()); + texture.storage(1, GL_RGBA8, dim); + texture.parameter(GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); + texture.parameter(GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); + texture.parameter(GL_TEXTURE_MIN_FILTER, GL_LINEAR); + texture.parameter(GL_TEXTURE_MAG_FILTER, GL_LINEAR); + texture.image(dim, GL_RGBA, GL_UNSIGNED_BYTE, bitmap.data()); } ImTextureID SvgIcon::operator*() const { - static_assert(sizeof(glTexture) <= sizeof(ImTextureID)); + static_assert(sizeof(glTexture<GL_TEXTURE_2D>) <= sizeof(ImTextureID)); // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast,performance-no-int-to-ptr) This is how ImGui works return reinterpret_cast<ImTextureID>(*texture); } |
