From 03704039b0a228bc36ea208ac4ca2a0a40471576 Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 2 Jun 2005 21:16:22 +0000 Subject: Fixed fast rendering, disabled background rendering. git-svn-id: http://svn.leocad.org/trunk@398 c7d43263-9d01-0410-8a33-9dba5d9f93d6 --- common/project.cpp | 43 +++++++++++++++++++++++++++++-------------- win/System.cpp | 12 ++++++------ 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/common/project.cpp b/common/project.cpp index 61e9d71..1c53f7a 100644 --- a/common/project.cpp +++ b/common/project.cpp @@ -1835,17 +1835,13 @@ void Project::Render(bool bToMemory) m_bStopRender = false; m_bRendering = true; - RenderScene((m_nDetail & LC_DET_FAST) == 0, true); - // SystemSwapBuffers(); - if ((m_nDetail & LC_DET_FAST) && (m_nDetail & LC_DET_BACKGROUND)) - { + if ((m_nDetail & LC_DET_FAST) && (m_nTracking != LC_TRACK_NONE)) + RenderScene(false, true); + else RenderScene(true, true); -// if (!m_bStopRender) -// SystemSwapBuffers(); - } - m_bRendering = false; + m_bRendering = false; #ifdef BENCHMARK dwMillis = GetTickCount() - dwMillis; @@ -2193,12 +2189,12 @@ void Project::RenderScene(bool bShaded, bool bDrawViewports) // Draw opaque pieces first for (pPiece = m_pPieces; pPiece; pPiece = pPiece->m_pNext) { - if (m_nDetail & LC_DET_BACKGROUND) - { - SystemPumpMessages(); - if (m_bStopRender) - return; - } +// if (m_nDetail & LC_DET_BACKGROUND) +// { +// SystemPumpMessages(); +// if (m_bStopRender) +// return; +// } if (pPiece->IsVisible(m_bAnimation ? m_nCurFrame : m_nCurStep, m_bAnimation)) { @@ -6778,6 +6774,25 @@ bool Project::StopTracking(bool bAccept) SetModifiedFlag(true); CheckPoint("Inserting"); } break; + + case LC_ACTION_ZOOM: + case LC_ACTION_PAN: + case LC_ACTION_ROTATE_VIEW: + case LC_ACTION_ROLL: + { + // For some reason the scene doesn't get redrawn when changing a camera but it does + // when moving things around, so manually get the full scene rendered again. + if (m_nDetail & LC_DET_FAST) + UpdateAllViews(); + } break; + + case LC_ACTION_SELECT: + case LC_ACTION_INSERT: + case LC_ACTION_LIGHT: + case LC_ACTION_ERASER: + case LC_ACTION_PAINT: + case LC_ACTION_ZOOM_REGION: + break; } } else if (m_pTrackFile != NULL) diff --git a/win/System.cpp b/win/System.cpp index ec016fd..acaba02 100644 --- a/win/System.cpp +++ b/win/System.cpp @@ -465,12 +465,12 @@ void SystemUpdateRenderingMode(bool bBackground, bool bFast) CToolBar* pBar = (CToolBar*)pFrame->GetControlBar(AFX_IDW_TOOLBAR); CToolBarCtrl* pCtrl = &pBar->GetToolBarCtrl(); - if (bFast) - { - pCtrl->EnableButton(ID_RENDER_BACKGROUND, TRUE); - pCtrl->CheckButton(ID_RENDER_BACKGROUND, bBackground); - } - else +// if (bFast) +// { +// pCtrl->EnableButton(ID_RENDER_BACKGROUND, TRUE); +// pCtrl->CheckButton(ID_RENDER_BACKGROUND, bBackground); +// } +// else { pCtrl->CheckButton(ID_RENDER_BACKGROUND, FALSE); pCtrl->EnableButton(ID_RENDER_BACKGROUND, FALSE); -- cgit v1.2.3