summaryrefslogtreecommitdiff
path: root/common/project.cpp
diff options
context:
space:
mode:
authorleo2005-06-02 21:16:22 +0000
committerleo2005-06-02 21:16:22 +0000
commit03704039b0a228bc36ea208ac4ca2a0a40471576 (patch)
treec825f4d75eeab44d8863413b40c15919664c9e28 /common/project.cpp
parent5d792b4cea12eaf00af8183d30eae2e8b976bbbc (diff)
Fixed fast rendering, disabled background rendering.
git-svn-id: http://svn.leocad.org/trunk@398 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'common/project.cpp')
-rw-r--r--common/project.cpp43
1 files changed, 29 insertions, 14 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)