void RenderCanvas::OnNewPixel( wxCommandEvent& event ) { //set up double buffered device context wxClientDC cdc(this); DoPrepareDC(cdc); wxBufferedDC bufferedDC(&cdc, *m_image); //iterate over all pixels in the event vector<RenderPixel*> *pixelsUpdate = (vector<RenderPixel*> *)event.GetClientData(); for(vector<RenderPixel*>::iterator itr = pixelsUpdate->begin(); itr != pixelsUpdate->end(); itr++) { RenderPixel* pixel = *itr; wxPen pen(wxColour(pixel->red, pixel->green, pixel->blue)); bufferedDC.SetPen(pen); bufferedDC.DrawPoint(pixel->x, pixel->y); pixelsRendered++; delete pixel; } pixelsUpdate->clear(); delete pixelsUpdate; }
void RenderCanvas::OnNewPixel( wxCommandEvent& event ) { //set up double buffered device context wxClientDC cdc(this); DoPrepareDC(cdc); wxBufferedDC bufferedDC(&cdc, *m_image); //iterate over all pixels in the event RenderPixels *pixelsUpdate = (RenderPixels *)event.GetClientData(); for (RenderPixels::iterator itr = pixelsUpdate->begin(); itr != pixelsUpdate->end(); ++itr) { RenderPixel& pixel = *itr; wxPen pen(wxColour(pixel.red, pixel.green, pixel.blue)); bufferedDC.SetPen(pen); bufferedDC.DrawPoint(pixel.x, pixel.y); pixelsRendered++; } delete pixelsUpdate; }