From 7dcbdef9d6ae95e7c9232418d12195582faaa54b Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Sat, 21 Jul 2012 16:57:24 +1000 Subject: Scale factor implemented for RGBAImages to allow for high definition markers on retina displays. --- src/LineMarker.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/LineMarker.cxx') diff --git a/src/LineMarker.cxx b/src/LineMarker.cxx index 99e83265e..9b7f1cddc 100644 --- a/src/LineMarker.cxx +++ b/src/LineMarker.cxx @@ -32,9 +32,9 @@ void LineMarker::SetXPM(const char *const *linesForm) { markType = SC_MARK_PIXMAP; } -void LineMarker::SetRGBAImage(Point sizeRGBAImage, const unsigned char *pixelsRGBAImage) { +void LineMarker::SetRGBAImage(Point sizeRGBAImage, float scale, const unsigned char *pixelsRGBAImage) { delete image; - image = new RGBAImage(sizeRGBAImage.x, sizeRGBAImage.y, pixelsRGBAImage); + image = new RGBAImage(sizeRGBAImage.x, sizeRGBAImage.y, scale, pixelsRGBAImage); markType = SC_MARK_RGBAIMAGE; } @@ -99,10 +99,10 @@ void LineMarker::Draw(Surface *surface, PRectangle &rcWhole, Font &fontForCharac if ((markType == SC_MARK_RGBAIMAGE) && (image)) { // Make rectangle just large enough to fit image centred on centre of rcWhole PRectangle rcImage; - rcImage.top = static_cast(((rcWhole.top + rcWhole.bottom) - image->GetHeight()) / 2); - rcImage.bottom = rcImage.top + image->GetHeight(); - rcImage.left = static_cast(((rcWhole.left + rcWhole.right) - image->GetWidth()) / 2); - rcImage.right = rcImage.left + image->GetWidth(); + rcImage.top = static_cast(((rcWhole.top + rcWhole.bottom) - image->GetScaledHeight()) / 2); + rcImage.bottom = rcImage.top + image->GetScaledHeight(); + rcImage.left = static_cast(((rcWhole.left + rcWhole.right) - image->GetScaledWidth()) / 2); + rcImage.right = rcImage.left + image->GetScaledWidth(); surface->DrawRGBAImage(rcImage, image->GetWidth(), image->GetHeight(), image->Pixels()); return; } -- cgit v1.2.3