void plD_esc_png(PLStream *pls, PLINT op, void *ptr) { switch (op) { case PLESC_FILL: /* fill */ fill_polygon(pls); break; #ifdef HAVE_FREETYPE case PLESC_HAS_TEXT: plD_render_freetype_text(pls, (EscText *)ptr); break; #else (void) ptr; /* pmr: make it used */ #endif } }
/*--------------------------------------------------------------------------*\ * void plD_esc_wxwidgets( PLStream *pls, PLINT op, void *ptr ) * * Handler for several escape codes. Here we take care of filled polygons, * XOR or copy mode, initialize device (install dc from outside), and if * there is freetype support, rerendering of text. \*--------------------------------------------------------------------------*/ void plD_esc_wxwidgets( PLStream *pls, PLINT op, void *ptr ) { // Log_Verbose( "plD_esc_wxwidgets(op=%d, ptr=%x)", op, ptr ); wxPLDevBase* dev = (wxPLDevBase*)pls->dev; switch (op) { case PLESC_FILL: fill_polygon( pls ); break; case PLESC_XORMOD: /* switch between wxXOR and wxCOPY */ /* if( dev->ready ) { if( dev->m_dc->GetLogicalFunction() == wxCOPY ) dev->m_dc->SetLogicalFunction( wxXOR ); else if( dev->m_dc->GetLogicalFunction() == wxXOR ) dev->m_dc->SetLogicalFunction( wxCOPY ); } */ break; case PLESC_DEVINIT: dev->SetExternalBuffer( ptr ); /* replay begin of page call and state settings */ plD_bop_wxwidgets( pls ); break; case PLESC_HAS_TEXT: if( !(dev->ready) ) install_buffer( pls ); if( dev->freetype ) { #ifdef HAVE_FREETYPE plD_render_freetype_text( pls, (EscText *)ptr ); #endif } else dev->ProcessString( pls, (EscText *)ptr ); break; case PLESC_RESIZE: { wxSize* size=(wxSize*)ptr; wx_set_size( pls, size->GetWidth(), size->GetHeight() ); } break; case PLESC_CLEAR: if( !(dev->ready) ) install_buffer( pls ); /* Since the plot is updated only every MAX_COMCOUNT commands (usually 5000) before we clear the screen we need to show the plot at least once :) */ if( !(dev->resizing) && dev->ownGUI ) { wxRunApp( pls, true ); dev->comcount=0; } dev->ClearBackground( pls->cmap0[0].r, pls->cmap0[0].g, pls->cmap0[0].b, pls->sppxmi, pls->sppymi, pls->sppxma, pls->sppyma ); break; case PLESC_GETC: if( dev->ownGUI ) GetCursorCmd( pls, (PLGraphicsIn *) ptr ); break; case PLESC_GETBACKEND: *((int*)ptr) = dev->backend; break; default: break; } }