From 030aee3a156b70a64c4865a9711cab7d86648632 Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 17 May 2021 22:34:18 +0100 Subject: [PATCH] Fix ImageKnob after last couple of changes Signed-off-by: falkTX --- dgl/OpenGL.hpp | 22 ++++++++++++++++++++++ dgl/src/ImageWidgets.cpp | 5 +++-- dgl/src/OpenGL.cpp | 19 ------------------- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/dgl/OpenGL.hpp b/dgl/OpenGL.hpp index f7dc1e4e..29c9018f 100644 --- a/dgl/OpenGL.hpp +++ b/dgl/OpenGL.hpp @@ -117,6 +117,28 @@ struct OpenGLGraphicsContext : GraphicsContext // ----------------------------------------------------------------------- +static inline +GLenum asOpenGLImageFormat(const ImageFormat format) +{ + switch (format) + { + case kImageFormatNull: + break; + case kImageFormatBGR: + return GL_BGR; + case kImageFormatBGRA: + return GL_BGRA; + case kImageFormatRGB: + return GL_RGB; + case kImageFormatRGBA: + return GL_RGBA; + } + + return 0x0; +} + +// ----------------------------------------------------------------------- + /** OpenGL Image class. diff --git a/dgl/src/ImageWidgets.cpp b/dgl/src/ImageWidgets.cpp index 37061969..e71e1069 100644 --- a/dgl/src/ImageWidgets.cpp +++ b/dgl/src/ImageWidgets.cpp @@ -358,13 +358,14 @@ void ImageKnob::onDisplay() const uint& v1(fIsImgVertical ? fImgLayerWidth : fImgLayerHeight); const uint& v2(fIsImgVertical ? fImgLayerHeight : fImgLayerWidth); - const uint layerDataSize = v1 * v2 * ((fImage.getFormat() == GL_BGRA || fImage.getFormat() == GL_RGBA) ? 4 : 3); + const uint layerDataSize = v1 * v2 * ((fImage.getFormat() == kImageFormatBGRA || + fImage.getFormat() == kImageFormatRGBA) ? 4 : 3); /* */ imageDataOffset = layerDataSize * uint(normValue * float(fImgLayerCount-1)); } glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, static_cast(getWidth()), static_cast(getHeight()), 0, - fImage.getFormat(), fImage.getType(), fImage.getRawData() + imageDataOffset); + asOpenGLImageFormat(fImage.getFormat()), GL_UNSIGNED_BYTE, fImage.getRawData() + imageDataOffset); fIsReady = true; } diff --git a/dgl/src/OpenGL.cpp b/dgl/src/OpenGL.cpp index 4b23758b..f96a6ae6 100644 --- a/dgl/src/OpenGL.cpp +++ b/dgl/src/OpenGL.cpp @@ -270,25 +270,6 @@ template class Rectangle; // ----------------------------------------------------------------------- // OpenGLImage -static GLenum asOpenGLImageFormat(const ImageFormat format) -{ - switch (format) - { - case kImageFormatNull: - break; - case kImageFormatBGR: - return GL_BGR; - case kImageFormatBGRA: - return GL_BGRA; - case kImageFormatRGB: - return GL_RGB; - case kImageFormatRGBA: - return GL_RGBA; - } - - return 0x0; -} - static void setupOpenGLImage(const OpenGLImage& image, GLuint textureId) { DISTRHO_SAFE_ASSERT_RETURN(image.isValid(),);