void EconomyGraph::drawFPSGraph( Painter& painter, Rect2D fpsRect ){ Color grey, blue; blue.parse( "blue" ); grey.parse("#A9A9A9FF"); int mgX = (int) fpsRect.p1.x; int mgY = (int) fpsRect.p1.y; int mgW = (int) fpsRect.getWidth(); int mgH = (int) fpsRect.getHeight(); painter.setFillColor( grey ); painter.fillRectangle( fpsRect ); painter.setClipRectangle( fpsRect ); Vector2 a; Vector2 b; painter.setLineColor( blue ); float scale = (float) mgH / 64; //MONTHGRAPH_H ; b.y = mgY + mgH; for( int i = mgW - 1; i >= 0; i-- ){ a.x = mgX + mgW - i; a.y = mgY + mgH - scale * fps[i]; b.x = mgX + mgW - i; painter.drawLine( a, b ); } painter.clearClipRectangle(); }
void EconomyGraph::drawHistoryLineGraph( Painter& painter, Rect2D mg ){ // see oldgui/screen.cpp do_history_linegraph Vector2 a; Vector2 b; Color red, yellow, blue, brown, grey; red.parse( "red"); yellow.parse( "yellow" ); blue.parse( "blue" ); brown.parse( "brown" ); grey.parse("#A9A9A9FF"); painter.setClipRectangle( mg ); painter.setFillColor( grey ); painter.fillRectangle( mg ); int mgX = (int) mg.p1.x; int mgY = (int) mg.p1.y; int mgW = (int) mg.getWidth(); int mgH = (int) mg.getHeight(); float scale = (float) mgH / 64; //MONTHGRAPH_H ; b.y = mgY + mgH; for( int i = mgW - 1; i >= 0; i-- ){ painter.setLineColor( yellow ); a.x = mgX + mgW - i; a.y = mgY + mgH - scale * monthgraph_nojobs[i]; b.x = mgX + mgW - i; painter.drawLine( a, b ); painter.setLineColor( red ); a.y = mgY + mgH - scale * monthgraph_starve[i]; painter.drawLine( a, b ); } for( int i = mgW - 1; i > 0; i-- ){ painter.setLineColor( brown ); a.x = mgX + mgW - i; a.y = mgY + mgH - scale * monthgraph_pop[ i ]; b.x = mgX + mgW - i-1; b.y = mgY + mgH - scale * monthgraph_pop[ i-1 ]; painter.drawLine( a, b ); a.y = mgY + mgH - scale * monthgraph_ppool[ i ]; b.y = mgY + mgH - scale * monthgraph_ppool[ i-1 ]; painter.setLineColor( blue ); painter.drawLine( a, b ); } painter.clearClipRectangle(); }
void Component::drawChild(Child& child, Painter& painter) { assert(child.getComponent() != 0); if(child.useClipRect) { painter.setClipRectangle(child.clipRect); } if(child.position != Vector2(0, 0)) { painter.pushTransform(); painter.translate(child.position); } child.component->draw(painter); if(child.position != Vector2(0, 0)) { painter.popTransform(); } if(child.useClipRect) { painter.clearClipRectangle(); } }