further phase 1
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "RenderEngine.h"
|
||||
|
||||
#include "RuntimeParameterUtils.h"
|
||||
#include "ShaderBuildQueue.h"
|
||||
|
||||
#include <gl/gl.h>
|
||||
|
||||
@@ -165,6 +166,35 @@ bool RenderEngine::ApplyPreparedShaderBuild(
|
||||
return true;
|
||||
}
|
||||
|
||||
RenderEngine::PreparedShaderBuildApplyResult RenderEngine::TryApplyReadyShaderBuild(
|
||||
ShaderBuildQueue& shaderBuildQueue,
|
||||
unsigned inputFrameWidth,
|
||||
unsigned inputFrameHeight,
|
||||
bool preserveFeedbackState)
|
||||
{
|
||||
PreparedShaderBuildApplyResult result;
|
||||
PreparedShaderBuild readyBuild;
|
||||
if (!shaderBuildQueue.TryConsumeReadyBuild(readyBuild))
|
||||
return result;
|
||||
|
||||
result.hadReadyBuild = true;
|
||||
char compilerErrorMessage[1024] = {};
|
||||
if (!ApplyPreparedShaderBuild(
|
||||
readyBuild,
|
||||
inputFrameWidth,
|
||||
inputFrameHeight,
|
||||
preserveFeedbackState,
|
||||
sizeof(compilerErrorMessage),
|
||||
compilerErrorMessage))
|
||||
{
|
||||
result.errorMessage = compilerErrorMessage;
|
||||
return result;
|
||||
}
|
||||
|
||||
result.applied = true;
|
||||
return result;
|
||||
}
|
||||
|
||||
const std::vector<RuntimeRenderState>& RenderEngine::CommittedLayerStates() const
|
||||
{
|
||||
return mShaderPrograms.CommittedLayerStates();
|
||||
@@ -180,6 +210,23 @@ void RenderEngine::ResetShaderFeedbackState()
|
||||
mShaderPrograms.ResetShaderFeedbackState();
|
||||
}
|
||||
|
||||
void RenderEngine::ApplyRuntimeCoordinatorRenderReset(RuntimeCoordinatorRenderResetScope resetScope)
|
||||
{
|
||||
switch (resetScope)
|
||||
{
|
||||
case RuntimeCoordinatorRenderResetScope::TemporalHistoryOnly:
|
||||
ResetTemporalHistoryState();
|
||||
break;
|
||||
case RuntimeCoordinatorRenderResetScope::TemporalHistoryAndFeedback:
|
||||
ResetTemporalHistoryState();
|
||||
ResetShaderFeedbackState();
|
||||
break;
|
||||
case RuntimeCoordinatorRenderResetScope::None:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void RenderEngine::ClearOscOverlayState()
|
||||
{
|
||||
mOscOverlayStates.clear();
|
||||
|
||||
Reference in New Issue
Block a user