summaryrefslogtreecommitdiff
path: root/libs/dgl/src/ImageKnob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/dgl/src/ImageKnob.cpp')
-rw-r--r--libs/dgl/src/ImageKnob.cpp47
1 files changed, 43 insertions, 4 deletions
diff --git a/libs/dgl/src/ImageKnob.cpp b/libs/dgl/src/ImageKnob.cpp
index be34b58..0fc8c69 100644
--- a/libs/dgl/src/ImageKnob.cpp
+++ b/libs/dgl/src/ImageKnob.cpp
@@ -45,7 +45,8 @@ ImageKnob::ImageKnob(Window& parent, const Image& image, Orientation orientation
fImgLayerCount(fIsImgVertical ? image.getHeight()/fImgLayerSize : image.getWidth()/fImgLayerSize),
fKnobArea(0, 0, fImgLayerSize, fImgLayerSize),
fTextureId(0),
- fIsReady(false)
+ fIsReady(false),
+ leakDetector_ImageKnob()
{
glGenTextures(1, &fTextureId);
setSize(fImgLayerSize, fImgLayerSize);
@@ -74,7 +75,8 @@ ImageKnob::ImageKnob(Widget* widget, const Image& image, Orientation orientation
fImgLayerCount(fIsImgVertical ? image.getHeight()/fImgLayerSize : image.getWidth()/fImgLayerSize),
fKnobArea(0, 0, fImgLayerSize, fImgLayerSize),
fTextureId(0),
- fIsReady(false)
+ fIsReady(false),
+ leakDetector_ImageKnob()
{
glGenTextures(1, &fTextureId);
setSize(fImgLayerSize, fImgLayerSize);
@@ -103,12 +105,49 @@ ImageKnob::ImageKnob(const ImageKnob& imageKnob)
fImgLayerCount(imageKnob.fImgLayerCount),
fKnobArea(imageKnob.fKnobArea),
fTextureId(0),
- fIsReady(false)
+ fIsReady(false),
+ leakDetector_ImageKnob()
{
glGenTextures(1, &fTextureId);
setSize(fImgLayerSize, fImgLayerSize);
}
+ImageKnob& ImageKnob::operator=(const ImageKnob& imageKnob)
+{
+ fImage = imageKnob.fImage;
+ fId = imageKnob.fId;
+ fMinimum = imageKnob.fMinimum;
+ fMaximum = imageKnob.fMaximum;
+ fStep = imageKnob.fStep;
+ fValue = imageKnob.fValue;
+ fValueDef = imageKnob.fValueDef;
+ fValueTmp = fValue;
+ fUsingDefault = imageKnob.fUsingDefault;
+ fUsingLog = imageKnob.fUsingLog;
+ fOrientation = imageKnob.fOrientation;
+ fRotationAngle = imageKnob.fRotationAngle;
+ fDragging = false;
+ fLastX = 0;
+ fLastY = 0;
+ fCallback = imageKnob.fCallback;
+ fIsImgVertical = imageKnob.fIsImgVertical;
+ fImgLayerSize = imageKnob.fImgLayerSize;
+ fImgLayerCount = imageKnob.fImgLayerCount;
+ fKnobArea = imageKnob.fKnobArea;
+ fIsReady = false;
+
+ if (fTextureId != 0)
+ {
+ glDeleteTextures(1, &fTextureId);
+ fTextureId = 0;
+ }
+
+ glGenTextures(1, &fTextureId);
+ setSize(fImgLayerSize, fImgLayerSize);
+
+ return *this;
+}
+
ImageKnob::~ImageKnob()
{
if (fTextureId != 0)
@@ -329,7 +368,7 @@ bool ImageKnob::onMotion(const MotionEvent& ev)
return false;
bool doVal = false;
- float d, value;
+ float d, value = 0.0f;
if (fOrientation == ImageKnob::Horizontal)
{