From: <sm...@us...> - 2008-11-18 22:40:37
|
Revision: 8991 http://plplot.svn.sourceforge.net/plplot/?rev=8991&view=rev Author: smekal Date: 2008-11-18 22:40:34 +0000 (Tue, 18 Nov 2008) Log Message: ----------- Fixed bug in wxGraphicsContext backend, where in some examples lines were missing. Modified Paths: -------------- trunk/drivers/wxwidgets.h trunk/drivers/wxwidgets_dc.cpp trunk/drivers/wxwidgets_gc.cpp Modified: trunk/drivers/wxwidgets.h =================================================================== --- trunk/drivers/wxwidgets.h 2008-11-18 21:45:34 UTC (rev 8990) +++ trunk/drivers/wxwidgets.h 2008-11-18 22:40:34 UTC (rev 8991) @@ -326,6 +326,14 @@ /* text colors */ unsigned char textRed, textGreen, textBlue; + + unsigned char mStrokeOpacity; + unsigned char mColorRedStroke; + unsigned char mColorGreenStroke; + unsigned char mColorBlueStroke; + unsigned char mColorRedFill; + unsigned char mColorGreenFill; + unsigned char mColorBlueFill; }; #endif @@ -467,7 +475,7 @@ \*----------------------------------------------------------------------*/ /* define if you want debug output */ -// #define _DEBUG //*/ +/* #define _DEBUG //*/ /* #define _DEBUG_VERBOSE //*/ void Log_Verbose( const char *fmt, ... ); void Log_Debug( const char *fmt, ... ); Modified: trunk/drivers/wxwidgets_dc.cpp =================================================================== --- trunk/drivers/wxwidgets_dc.cpp 2008-11-18 21:45:34 UTC (rev 8990) +++ trunk/drivers/wxwidgets_dc.cpp 2008-11-18 22:40:34 UTC (rev 8991) @@ -24,7 +24,6 @@ /* TODO: * - text clipping * - implement AddToClipRegion for text correctly - * - Example 16 problem at last page */ #include "plDevs.h" Modified: trunk/drivers/wxwidgets_gc.cpp =================================================================== --- trunk/drivers/wxwidgets_gc.cpp 2008-11-18 21:45:34 UTC (rev 8990) +++ trunk/drivers/wxwidgets_gc.cpp 2008-11-18 22:40:34 UTC (rev 8991) @@ -94,24 +94,14 @@ { // Log_Verbose( "%s", __FUNCTION__ ); - wxDouble x1a, y1a, x2a, y2a; - - x1a=xa[0]/scalex; - y1a=height-ya[0]/scaley; - wxGraphicsPath path=m_context->CreatePath(); - path.MoveToPoint( x1a, y1a ); - for( PLINT i=1; i<npts; i++ ) { - x2a=xa[i]/scalex; - y2a=height-ya[i]/scaley; - path.AddLineToPoint( x2a, y2a ); - x1a=x2a; y1a=y2a; - } + path.MoveToPoint( xa[0]/scalex, height-ya[0]/scaley ); + for( PLINT i=1; i<npts; i++ ) + path.AddLineToPoint( xa[i]/scalex, height-ya[i]/scaley ); m_context->StrokePath( path ); wxDouble x, y, w, h; path.GetBox( &x, &y, &w, &h ); - AddtoClipRegion( (int)x, (int)y, (int)(x+w), (int)(y+h) ); } @@ -127,15 +117,14 @@ if( x2<0 ) x2a=width; else x2a=x2/scalex; if( y2<0 ) y2a=height; else y2a=height-y2/scaley; - const wxPen oldPen=m_dc->GetPen(); - const wxBrush oldBrush=m_dc->GetBrush(); - m_context->SetPen( *(wxThePenList->FindOrCreatePen(wxColour(bgr, bgg, bgb), 1, wxSOLID)) ); m_context->SetBrush( wxBrush(wxColour(bgr, bgg, bgb)) ); m_context->DrawRectangle( x1a, y1a, x2a-x1a, y2a-y1a ); - m_context->SetPen( oldPen ); - m_context->SetBrush( oldBrush ); + m_context->SetPen( *(wxThePenList->FindOrCreatePen(wxColour(mColorRedStroke, mColorGreenStroke, + mColorBlueStroke, mStrokeOpacity), + 1, wxSOLID)) ); + m_context->SetBrush( wxBrush(wxColour(mColorRedFill, mColorGreenFill, mColorBlueFill, mStrokeOpacity)) ); AddtoClipRegion( (int)x1a, (int)y1a, (int)x2a, (int)y2a ); } @@ -143,7 +132,7 @@ void wxPLDevGC::FillPolygon( PLStream *pls ) { - Log_Verbose( "%s", __FUNCTION__ ); + // Log_Verbose( "%s", __FUNCTION__ ); wxGraphicsPath path=m_context->CreatePath(); path.MoveToPoint( pls->dev_x[0]/scalex, height-pls->dev_y[0]/scaley ); @@ -193,8 +182,8 @@ { // Log_Verbose( "%s", __FUNCTION__ ); - m_context->SetPen( *(wxThePenList->FindOrCreatePen(wxColour(pls->cmap0[pls->icol0].r, pls->cmap0[pls->icol0].g, - pls->cmap0[pls->icol0].b, (unsigned char)(pls->cmap0[pls->icol0].a*255)), + m_context->SetPen( *(wxThePenList->FindOrCreatePen(wxColour(mColorRedStroke, mColorGreenStroke, + mColorBlueStroke, mStrokeOpacity), pls->width>0 ? pls->width : 1, wxSOLID)) ); } @@ -203,11 +192,18 @@ { // Log_Verbose( "%s", __FUNCTION__ ); - m_context->SetPen( *(wxThePenList->FindOrCreatePen(wxColour(pls->cmap0[pls->icol0].r, pls->cmap0[pls->icol0].g, - pls->cmap0[pls->icol0].b, (unsigned char)(pls->cmap0[pls->icol0].a*255)), + mColorRedStroke = pls->cmap0[pls->icol0].r; + mColorGreenStroke = pls->cmap0[pls->icol0].g; + mColorBlueStroke = pls->cmap0[pls->icol0].b; + mColorRedFill = pls->cmap0[pls->icol0].r; + mColorGreenFill = pls->cmap0[pls->icol0].g; + mColorBlueFill = pls->cmap0[pls->icol0].b; + mStrokeOpacity = (unsigned char)(pls->cmap0[pls->icol0].a*255); + + m_context->SetPen( *(wxThePenList->FindOrCreatePen(wxColour(mColorRedStroke, mColorGreenStroke, + mColorBlueStroke, mStrokeOpacity), pls->width>0 ? pls->width : 1, wxSOLID)) ); - m_context->SetBrush( wxBrush(wxColour(pls->cmap0[pls->icol0].r, pls->cmap0[pls->icol0].g, pls->cmap0[pls->icol0].b, - (unsigned char)(pls->cmap0[pls->icol0].a*255))) ); + m_context->SetBrush( wxBrush(wxColour(mColorRedFill, mColorGreenFill, mColorBlueFill, mStrokeOpacity)) ); } @@ -215,11 +211,18 @@ { // Log_Verbose( "%s", __FUNCTION__ ); - m_context->SetPen( *(wxThePenList->FindOrCreatePen(wxColour(pls->curcolor.r, pls->curcolor.g, - pls->curcolor.b, (unsigned char)(pls->curcolor.a*255)), + mColorRedStroke = pls->curcolor.r; + mColorGreenStroke = pls->curcolor.g; + mColorBlueStroke = pls->curcolor.b; + mColorRedFill = pls->curcolor.r; + mColorGreenFill = pls->curcolor.g; + mColorBlueFill = pls->curcolor.b; + mStrokeOpacity = (unsigned char)(pls->curcolor.a*255); + + m_context->SetPen( *(wxThePenList->FindOrCreatePen(wxColour(mColorRedStroke, mColorGreenStroke, + mColorBlueStroke, mStrokeOpacity), pls->width>0 ? pls->width : 1, wxSOLID)) ); - m_context->SetBrush( wxBrush(wxColour(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b, - (unsigned char)(pls->curcolor.a*255))) ); + m_context->SetBrush( wxBrush(wxColour(mColorRedFill, mColorGreenFill, mColorBlueFill, mStrokeOpacity)) ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |