Skip to content

Commit 81f91ec

Browse files
committed
Fixup VectorJuice for auto-scaling
Signed-off-by: falkTX <falktx@falktx.com>
1 parent e59b4cb commit 81f91ec

File tree

3 files changed

+19
-19
lines changed

3 files changed

+19
-19
lines changed

dpf

plugins/VectorJuice/VectorJuiceUI.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ VectorJuiceUI::VectorJuiceUI()
4242
fCanvasArea.setSize(368-24, 368-24);
4343

4444
// background
45-
fImgBackground = Image(VectorJuiceArtwork::backgroundData, VectorJuiceArtwork::backgroundWidth, VectorJuiceArtwork::backgroundHeight, GL_BGR);
45+
fImgBackground = Image(VectorJuiceArtwork::backgroundData, VectorJuiceArtwork::backgroundWidth, VectorJuiceArtwork::backgroundHeight, kImageFormatBGR);
4646

4747
//roundlet
4848
fImgRoundlet = Image(VectorJuiceArtwork::roundletData, VectorJuiceArtwork::roundletWidth, VectorJuiceArtwork::roundletHeight);
@@ -54,7 +54,7 @@ VectorJuiceUI::VectorJuiceUI()
5454
fImgSubOrbit = Image(VectorJuiceArtwork::subOrbitData, VectorJuiceArtwork::subOrbitWidth, VectorJuiceArtwork::subOrbitHeight);
5555

5656
// about
57-
Image aboutImage(VectorJuiceArtwork::aboutData, VectorJuiceArtwork::aboutWidth, VectorJuiceArtwork::aboutHeight, GL_BGR);
57+
Image aboutImage(VectorJuiceArtwork::aboutData, VectorJuiceArtwork::aboutWidth, VectorJuiceArtwork::aboutHeight, kImageFormatBGR);
5858
fAboutWindow.setImage(aboutImage);
5959

6060
// about button
@@ -344,12 +344,12 @@ void VectorJuiceUI::onDisplay()
344344
fImgBackground.draw(context);
345345

346346
// get x, y mapped to XY area
347-
int x = fCanvasArea.getX() + paramX*fCanvasArea.getWidth() - fImgRoundlet.getWidth()/2;
348-
int y = fCanvasArea.getY() + paramY*fCanvasArea.getHeight() - fImgRoundlet.getHeight()/2;
349-
int nOrbitX = fCanvasArea.getX()+((orbitX)*fCanvasArea.getWidth())-15;
350-
int nOrbitY = fCanvasArea.getY()+((orbitY)*fCanvasArea.getWidth())-15;
351-
int nSubOrbitX = fCanvasArea.getX()+(subOrbitX*fCanvasArea.getWidth())-15;
352-
int nSubOrbitY = fCanvasArea.getY()+(subOrbitY*fCanvasArea.getWidth())-14;
347+
const int x = fCanvasArea.getX() + paramX*fCanvasArea.getWidth() - fImgRoundlet.getWidth()/2;
348+
const int y = fCanvasArea.getY() + paramY*fCanvasArea.getHeight() - fImgRoundlet.getHeight()/2;
349+
const int nOrbitX = fCanvasArea.getX()+((orbitX)*fCanvasArea.getWidth())-15;
350+
const int nOrbitY = fCanvasArea.getY()+((orbitY)*fCanvasArea.getWidth())-15;
351+
const int nSubOrbitX = fCanvasArea.getX()+(subOrbitX*fCanvasArea.getWidth())-15;
352+
const int nSubOrbitY = fCanvasArea.getY()+(subOrbitY*fCanvasArea.getWidth())-14;
353353

354354
//draw lines, just for fun
355355
glEnable(GL_BLEND);
@@ -365,13 +365,10 @@ void VectorJuiceUI::onDisplay()
365365
glVertex2i(nSubOrbitX+15, nSubOrbitY+14);
366366
glEnd();
367367

368-
// reset color
369-
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
370-
371368
// draw roundlet and orbits
372-
fImgRoundlet.drawAt(x, y);
373-
fImgOrbit.drawAt(nOrbitX, nOrbitY);
374-
fImgSubOrbit.drawAt(nSubOrbitX, nSubOrbitY);
369+
fImgRoundlet.drawAt(context, x, y);
370+
fImgOrbit.drawAt(context, nOrbitX, nOrbitY);
371+
fImgSubOrbit.drawAt(context, nSubOrbitX, nSubOrbitY);
375372
}
376373

377374
bool VectorJuiceUI::onMouse(const MouseEvent& ev)
@@ -381,7 +378,9 @@ bool VectorJuiceUI::onMouse(const MouseEvent& ev)
381378

382379
if (ev.press)
383380
{
384-
if (! fCanvasArea.contains(ev.pos))
381+
const double scaling = getWidth() / static_cast<double>(VectorJuiceArtwork::backgroundWidth);
382+
383+
if (! fCanvasArea.containsAfterScaling(ev.pos, scaling))
385384
return false;
386385

387386
fDragging = true;
@@ -404,6 +403,7 @@ bool VectorJuiceUI::onMotion(const MotionEvent& ev)
404403
if (! fDragging)
405404
return false;
406405

406+
const double scaling = getWidth() / static_cast<double>(VectorJuiceArtwork::backgroundWidth);
407407
const int x = ev.pos.getX();
408408
const int y = ev.pos.getY();
409409

@@ -422,8 +422,8 @@ bool VectorJuiceUI::onMotion(const MotionEvent& ev)
422422
float newX = paramX;
423423
float newY = paramY;
424424

425-
newX -= float(movedX)/fCanvasArea.getWidth();
426-
newY -= float(movedY)/fCanvasArea.getHeight();
425+
newX -= float(movedX)/fCanvasArea.getWidth()/scaling;
426+
newY -= float(movedY)/fCanvasArea.getHeight()/scaling;
427427

428428
if (newX < 0.0f)
429429
newX = 0.0f;

plugins/VectorJuice/VectorJuiceUI.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class VectorJuiceUI : public UI,
8888
bool fDragValid;
8989
int fLastX;
9090
int fLastY;
91-
DGL_NAMESPACE::Rectangle<int> fCanvasArea;
91+
DGL_NAMESPACE::Rectangle<double> fCanvasArea;
9292
float orbitX, orbitY, subOrbitX, subOrbitY;
9393
};
9494

0 commit comments

Comments
 (0)