Force RTT usage even in basic mode.

This commit is contained in:
vlj 2014-05-31 01:26:47 +02:00
parent a055d42829
commit ef91bf9549
3 changed files with 6 additions and 6 deletions

View File

@ -695,7 +695,7 @@ public:
void onLoadWorld(); void onLoadWorld();
void onUnloadWorld(); void onUnloadWorld();
void renderScene(scene::ICameraSceneNode * const camnode, std::vector<GlowData>& glows, float dt, bool hasShadows); void renderScene(scene::ICameraSceneNode * const camnode, std::vector<GlowData>& glows, float dt, bool hasShadows, bool forceRTT);
void computeCameraMatrix(scene::ICameraSceneNode * const camnode, size_t width, size_t height); void computeCameraMatrix(scene::ICameraSceneNode * const camnode, size_t width, size_t height);
// --------------------- RTT -------------------- // --------------------- RTT --------------------

View File

@ -144,7 +144,7 @@ void IrrDriver::renderGLSL(float dt)
const core::recti &viewport = camera->getViewport(); const core::recti &viewport = camera->getViewport();
computeCameraMatrix(camnode, viewport.LowerRightCorner.X - viewport.UpperLeftCorner.X, viewport.LowerRightCorner.Y - viewport.UpperLeftCorner.Y); computeCameraMatrix(camnode, viewport.LowerRightCorner.X - viewport.UpperLeftCorner.X, viewport.LowerRightCorner.Y - viewport.UpperLeftCorner.Y);
renderScene(camnode, glows, dt, track->hasShadows()); renderScene(camnode, glows, dt, track->hasShadows(), false);
// Debug physic // Debug physic
// Note that drawAll must be called before rendering // Note that drawAll must be called before rendering
@ -260,7 +260,7 @@ void IrrDriver::renderGLSL(float dt)
getPostProcessing()->update(dt); getPostProcessing()->update(dt);
} }
void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, std::vector<GlowData>& glows, float dt, bool hasShadow) void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, std::vector<GlowData>& glows, float dt, bool hasShadow, bool forceRTT)
{ {
glBindBufferBase(GL_UNIFORM_BUFFER, 0, SharedObject::ViewProjectionMatrixesUBO); glBindBufferBase(GL_UNIFORM_BUFFER, 0, SharedObject::ViewProjectionMatrixesUBO);
@ -301,7 +301,7 @@ void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, std::vector
} }
PROFILER_PUSH_CPU_MARKER("- Solid Pass 2", 0x00, 0x00, 0xFF); PROFILER_PUSH_CPU_MARKER("- Solid Pass 2", 0x00, 0x00, 0xFF);
if (!UserConfigParams::m_dynamic_lights) if (!UserConfigParams::m_dynamic_lights && ! forceRTT)
{ {
glEnable(GL_FRAMEBUFFER_SRGB); glEnable(GL_FRAMEBUFFER_SRGB);
glBindFramebuffer(GL_FRAMEBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0);
@ -374,7 +374,7 @@ void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, std::vector
renderParticles(); renderParticles();
PROFILER_POP_CPU_MARKER(); PROFILER_POP_CPU_MARKER();
} }
if (!UserConfigParams::m_dynamic_lights) if (!UserConfigParams::m_dynamic_lights && !forceRTT)
return; return;
// Render displacement // Render displacement

View File

@ -179,7 +179,7 @@ void ModelViewWidget::update(float delta)
std::vector<IrrDriver::GlowData> glows; std::vector<IrrDriver::GlowData> glows;
irr_driver->computeCameraMatrix(m_camera, 512, 512); irr_driver->computeCameraMatrix(m_camera, 512, 512);
irr_driver->renderScene(m_camera, glows, GUIEngine::getLatestDt(), false); irr_driver->renderScene(m_camera, glows, GUIEngine::getLatestDt(), false, true);
m_frame_buffer = irr_driver->getPostProcessing()->render(m_camera); m_frame_buffer = irr_driver->getPostProcessing()->render(m_camera);
glViewport(0, 0, UserConfigParams::m_width, UserConfigParams::m_height); glViewport(0, 0, UserConfigParams::m_width, UserConfigParams::m_height);