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);
}
|