DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit 8137eacc16efe9bd2ba43f016fb6e02c13737a8e
parent 3cab16194504b070f1252ac1449cfeb14ff03005
Author: falkTX <falktx@gmail.com>
Date:   Tue,  6 May 2014 22:31:25 +0200

Simplify ImageKnob drawing

Diffstat:
Mdgl/src/ImageKnob.cpp | 24+++++++-----------------
1 file changed, 7 insertions(+), 17 deletions(-)

diff --git a/dgl/src/ImageKnob.cpp b/dgl/src/ImageKnob.cpp @@ -185,7 +185,7 @@ void ImageKnob::setRotationAngle(int angle) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); - float trans[] = { 0.0f, 0.0f, 0.0f, 0.0f }; + static const float trans[] = { 0.0f, 0.0f, 0.0f, 0.0f }; glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, trans); glBindTexture(GL_TEXTURE_2D, 0); @@ -207,8 +207,8 @@ void ImageKnob::onDisplay() glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, fTextureId); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glPixelStorei(GL_PACK_ALIGNMENT, 1); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWidth(), getHeight(), 0, fImage.getFormat(), fImage.getType(), fImage.getRawData()); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); @@ -216,7 +216,7 @@ void ImageKnob::onDisplay() glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); - float trans[] = { 0.0f, 0.0f, 0.0f, 0.0f }; + static const float trans[] = { 0.0f, 0.0f, 0.0f, 0.0f }; glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, trans); glPushMatrix(); @@ -227,19 +227,7 @@ void ImageKnob::onDisplay() glTranslatef(static_cast<float>(getX()+w2), static_cast<float>(getY()+h2), 0.0f); glRotatef(normValue*static_cast<float>(fRotationAngle), 0.0f, 0.0f, 1.0f); - glBegin(GL_QUADS); - glTexCoord2f(0.0f, 0.0f); - glVertex2i(-w2, -h2); - - glTexCoord2f(1.0f, 0.0f); - glVertex2i(getWidth()-w2, -h2); - - glTexCoord2f(1.0f, 1.0f); - glVertex2i(getWidth()-w2, getHeight()-h2); - - glTexCoord2f(0.0f, 1.0f); - glVertex2i(-w2, getHeight()-h2); - glEnd(); + Rectangle<int>(-w2, -h2, getWidth(), getHeight()).draw(); glPopMatrix(); @@ -248,12 +236,14 @@ void ImageKnob::onDisplay() } else { + // FIXME - DO NOT USE glDrawPixels! + const int layerDataSize = fImgLayerSize * fImgLayerSize * ((fImage.getFormat() == GL_BGRA || fImage.getFormat() == GL_RGBA) ? 4 : 3); const int imageDataSize = layerDataSize * fImgLayerCount; const int imageDataOffset = imageDataSize - layerDataSize - (layerDataSize * int(normValue * float(fImgLayerCount-1))); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glPixelStorei(GL_PACK_ALIGNMENT, 1); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glRasterPos2i(getX(), getY()+getHeight()); glDrawPixels(fImgLayerSize, fImgLayerSize, fImage.getFormat(), fImage.getType(), fImage.getRawData() + imageDataOffset); }