From: <ai...@us...> - 2009-03-11 23:04:20
|
Revision: 9726 http://plplot.svn.sourceforge.net/plplot/?rev=9726&view=rev Author: airwin Date: 2009-03-11 23:04:09 +0000 (Wed, 11 Mar 2009) Log Message: ----------- Add alpha channel opacity support to the qt device driver. Modified Paths: -------------- trunk/drivers/qt.cpp trunk/drivers/qt.h Modified: trunk/drivers/qt.cpp =================================================================== --- trunk/drivers/qt.cpp 2009-03-11 18:22:33 UTC (rev 9725) +++ trunk/drivers/qt.cpp 2009-03-11 23:04:09 UTC (rev 9726) @@ -6,6 +6,7 @@ Imperial College, London Copyright (C) 2009 Imperial College, London + Copyright (C) 2009 Alan W. Irwin This is free software; you can redistribute it and/or modify it under the terms of the GNU General Lesser Public License as published @@ -202,14 +203,14 @@ delete[] polygon; } -void QtPLDriver::setColor(int r, int g, int b) +void QtPLDriver::setColor(int r, int g, int b, int a) { QPen p=m_painterP->pen(); - p.setColor(QColor(r, g, b)); + p.setColor(QColor(r, g, b, a)); m_painterP->setPen(p); QBrush B=m_painterP->brush(); - B.setColor(QColor(r, g, b)); + B.setColor(QColor(r, g, b, a)); m_painterP->setBrush(B); } @@ -530,13 +531,14 @@ m_listBuffer.append(el); } -void QtPLBufferedDriver::setColor(int r, int g, int b) +void QtPLBufferedDriver::setColor(int r, int g, int b, int a) { BufferElement el; el.Element=SET_COLOUR; el.Data.ColourStruct.R=r; el.Data.ColourStruct.G=g; el.Data.ColourStruct.B=b; + el.Data.ColourStruct.A=a; m_listBuffer.append(el); } @@ -633,9 +635,9 @@ break; case SET_COLOUR: - p.setColor(QColor(i->Data.ColourStruct.R, i->Data.ColourStruct.G, i->Data.ColourStruct.B)); + p.setColor(QColor(i->Data.ColourStruct.R, i->Data.ColourStruct.G, i->Data.ColourStruct.B, i->Data.ColourStruct.A)); i_painterP->setPen(p); - b.setColor(QColor(i->Data.ColourStruct.R, i->Data.ColourStruct.G, i->Data.ColourStruct.B)); + b.setColor(QColor(i->Data.ColourStruct.R, i->Data.ColourStruct.G, i->Data.ColourStruct.B, i->Data.ColourStruct.A)); i_painterP->setBrush(b); break; @@ -700,7 +702,7 @@ #endif if(widget==NULL) return; - widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b); + widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b, (int)(255.*pls->curcolor.a)); widget->drawLine(x1a, y1a, x2a, y2a); } @@ -725,7 +727,7 @@ #endif if(widget==NULL) return; - widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b); + widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b, (int)(255.*pls->curcolor.a)); widget->drawPolyline(xa, ya, npts); } @@ -756,7 +758,7 @@ { case PLESC_DASH: widget->setDashed(pls->nms, pls->mark, pls->space); - widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b); + widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b, (int)(255.*pls->curcolor.a)); widget->drawPolyline(pls->dev_x, pls->dev_y, pls->dev_npts); widget->setSolid(); break; @@ -770,7 +772,7 @@ xa[i] = pls->dev_x[i]; ya[i] = pls->dev_y[i]; } - widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b); + widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b, (int)(255.*pls->curcolor.a)); widget->drawPolygon(xa, ya, pls->dev_npts); delete[] xa; @@ -813,11 +815,11 @@ break; case PLSTATE_COLOR0: - widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b); + widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b, (int)(255.*pls->curcolor.a)); break; case PLSTATE_COLOR1: - widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b); + widget->setColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b, (int)(255.*pls->curcolor.a)); break; Modified: trunk/drivers/qt.h =================================================================== --- trunk/drivers/qt.h 2009-03-11 18:22:33 UTC (rev 9725) +++ trunk/drivers/qt.h 2009-03-11 23:04:09 UTC (rev 9726) @@ -6,6 +6,7 @@ Imperial College, London Copyright (C) 2009 Imperial College, London + Copyright (C) 2009 Alan W. Irwin This is free software; you can redistribute it and/or modify it under the terms of the GNU General Lesser Public License as published @@ -89,7 +90,7 @@ struct ColourStruct_ { - PLINT R, G, B; + PLINT R, G, B, A; } ColourStruct; PLINT intParam; @@ -113,7 +114,7 @@ virtual void drawPolygon(short * x, short * y, PLINT npts); - virtual void setColor(int r, int g, int b); + virtual void setColor(int r, int g, int b, int a); virtual void setWidth(PLINT w); @@ -145,7 +146,7 @@ virtual void drawPolygon(short * x, short * y, PLINT npts); - virtual void setColor(int r, int g, int b); + virtual void setColor(int r, int g, int b, int a); virtual void setWidth(PLINT r); @@ -332,10 +333,10 @@ currentWidget->drawPolygon(x, y, npts); } - virtual void setColor(int r, int g, int b) + virtual void setColor(int r, int g, int b, int a) { if(currentWidget==NULL) newTab(); - currentWidget->setColor(r, g, b); + currentWidget->setColor(r, g, b, a); } virtual void setWidth(PLINT w) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |