Signed-off-by: falkTX <falktx@falktx.com>pull/272/head
@@ -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. | OpenGL Image class. | ||||
@@ -358,13 +358,14 @@ void ImageKnob::onDisplay() | |||||
const uint& v1(fIsImgVertical ? fImgLayerWidth : fImgLayerHeight); | const uint& v1(fIsImgVertical ? fImgLayerWidth : fImgLayerHeight); | ||||
const uint& v2(fIsImgVertical ? fImgLayerHeight : fImgLayerWidth); | 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)); | /* */ imageDataOffset = layerDataSize * uint(normValue * float(fImgLayerCount-1)); | ||||
} | } | ||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, | glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, | ||||
static_cast<GLsizei>(getWidth()), static_cast<GLsizei>(getHeight()), 0, | static_cast<GLsizei>(getWidth()), static_cast<GLsizei>(getHeight()), 0, | ||||
fImage.getFormat(), fImage.getType(), fImage.getRawData() + imageDataOffset); | |||||
asOpenGLImageFormat(fImage.getFormat()), GL_UNSIGNED_BYTE, fImage.getRawData() + imageDataOffset); | |||||
fIsReady = true; | fIsReady = true; | ||||
} | } | ||||
@@ -270,25 +270,6 @@ template class Rectangle<ushort>; | |||||
// ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
// OpenGLImage | // 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) | static void setupOpenGLImage(const OpenGLImage& image, GLuint textureId) | ||||
{ | { | ||||
DISTRHO_SAFE_ASSERT_RETURN(image.isValid(),); | DISTRHO_SAFE_ASSERT_RETURN(image.isValid(),); | ||||