diff options
author | Liang Qi <liang.qi@qt.io> | 2016-09-20 10:39:32 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-09-20 10:39:32 +0200 |
commit | 0e3d54f8d7f9be26687afebcc9f456e4cefc2357 (patch) | |
tree | f3826c927305cc137006aed968be6fbf57b42009 /src/render/backend/renderview.cpp | |
parent | 52121396c55e6100316f006c87b4fdaa8b5a0719 (diff) | |
parent | 7e638edbd15640302516f9a69d20f62d26d4af06 (diff) |
Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts:
src/render/framegraph/qrendersurfaceselector.cpp
src/render/frontend/qrendersettings.cpp
src/render/jobs/renderviewjobutils_p.h
tests/auto/render/render.pro
Change-Id: Ibe9eb962e3990e07f01a5608a2d60c79bc4c160f
Diffstat (limited to 'src/render/backend/renderview.cpp')
-rw-r--r-- | src/render/backend/renderview.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/render/backend/renderview.cpp b/src/render/backend/renderview.cpp index 8594f2d20..df165e2d0 100644 --- a/src/render/backend/renderview.cpp +++ b/src/render/backend/renderview.cpp @@ -651,10 +651,8 @@ void RenderView::setDefaultUniformBlockShaderDataValue(ShaderParameterPack &unif UniformBlockValueBuilder *builder = m_localData.localData(); builder->activeUniformNamesToValue.clear(); - // updates transformed properties; - // Fix me: this will lead to races when having multiple cameras - shaderData->updateViewTransform(m_data.m_viewMatrix); - + // Set the view matrix to be used to transform "Transformed" properties in the ShaderData + builder->viewMatrix = m_data.m_viewMatrix; // Force to update the whole block builder->updatedPropertiesOnly = false; // Retrieve names and description of each active uniforms in the uniform block @@ -801,6 +799,9 @@ void RenderView::setShaderAndUniforms(RenderCommand *command, RenderPass *rPass, setUniformValue(command->m_parameterPack, LIGHT_COLOR_NAMES[lightIdx], QVector3D(1.0f, 1.0f, 1.0f)); setUniformValue(command->m_parameterPack, LIGHT_INTENSITY_NAMES[lightIdx], 0.5f); + // There is no risk in doing that even if multithreaded + // since we are sure that a shaderData is unique for a given light + // and won't ever be referenced as a Component either QMatrix4x4 *worldTransform = lightEntity->worldTransform(); if (worldTransform) shaderData->updateWorldTransform(*worldTransform); |