From: Markus R. <rol...@us...> - 2007-04-09 17:42:53
|
Update of /cvsroot/simspark/simspark/contrib/rsgedit In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv17290 Modified Files: sparkglcanvas.cpp sparkglcanvas.h Log Message: - added additional 'swapBuffers' parameter to the Render() method - don't swap redner buffers when picking objects to avoid flicker - set selected object in mRender Index: sparkglcanvas.h =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/sparkglcanvas.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** sparkglcanvas.h 9 Apr 2007 17:04:34 -0000 1.6 --- sparkglcanvas.h 9 Apr 2007 17:42:50 -0000 1.7 *************** *** 66,71 **** void OnMouseCaptureLost(wxMouseCaptureLostEvent& event); ! void Render(wxDC& dc); void Reset(); void Pick(wxDC& dc); --- 66,73 ---- void OnMouseCaptureLost(wxMouseCaptureLostEvent& event); ! void Render(wxDC& dc, bool swapBuffers); void Reset(); + + void ResetSelection(wxDC& dc); void Pick(wxDC& dc); Index: sparkglcanvas.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/contrib/rsgedit/sparkglcanvas.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** sparkglcanvas.cpp 9 Apr 2007 17:04:33 -0000 1.8 --- sparkglcanvas.cpp 9 Apr 2007 17:42:50 -0000 1.9 *************** *** 81,85 **** } ! void SparkGLCanvas::Render(wxDC& dc) { #ifndef __WXMOTIF__ --- 81,85 ---- } ! void SparkGLCanvas::Render(wxDC& dc, bool swapBuffers) { #ifndef __WXMOTIF__ *************** *** 101,105 **** glFlush(); ! SwapBuffers(); } --- 101,117 ---- glFlush(); ! ! if (swapBuffers) ! { ! SwapBuffers(); ! } ! } ! ! void SparkGLCanvas::ResetSelection(wxDC& dc) ! { ! mRender.ResetSelection(); ! ! bool swapBuffers = true; ! Render(dc, swapBuffers); } *************** *** 122,126 **** mRenderServer->EnablePicking(true, Vector2f(ptMouse.x, ptMouse.y), pickRange); ! Render(dc); mRenderServer->DisablePicking(); --- 134,139 ---- mRenderServer->EnablePicking(true, Vector2f(ptMouse.x, ptMouse.y), pickRange); ! bool swapBuffers = false; ! Render(dc, swapBuffers); mRenderServer->DisablePicking(); *************** *** 136,139 **** --- 149,154 ---- << "(SparkGLCanvas) SparkGLCanvas::Pick picked " << pickedNode.lock()->GetFullPath() << std::endl; } + + mRender.SetSelection(pickedNode); } *************** *** 141,145 **** { wxPaintDC dc(this); ! Render(dc); } --- 156,162 ---- { wxPaintDC dc(this); ! ! bool swapBuffers = true; ! Render(dc, swapBuffers); } *************** *** 200,203 **** --- 217,231 ---- { event.Skip(); + + // handle rsgedit specific keys + if ( + (event.GetModifiers() == 0) && + (event.GetKeyCode() == WXK_ESCAPE) + ) + { + wxClientDC dc(this); + ResetSelection(dc); + } + AddInput(wxInput(event,false)); } *************** *** 217,221 **** wxClientDC dc(this); Pick(dc); ! Render(dc); } --- 245,251 ---- wxClientDC dc(this); Pick(dc); ! ! bool swapBuffers = true; ! Render(dc, swapBuffers); } |