mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
Added object fade parameters to shape pipeline locations
This commit is contained in:
parent
777ca7e010
commit
50d16eca80
3 changed files with 8 additions and 8 deletions
|
@ -41,14 +41,12 @@ render::ShapePipeline::BatchSetter FadeEffect::getBatchSetter() const {
|
|||
render::ShapePipeline::ItemSetter FadeEffect::getItemUniformSetter() const {
|
||||
return [](const render::ShapePipeline& shapePipeline, render::Args* args, const render::Item& item) {
|
||||
if (!render::TransitionStage::isIndexInvalid(item.getTransitionId())) {
|
||||
auto scene = args->_scene;
|
||||
auto batch = args->_batch;
|
||||
auto transitionStage = scene->getStage<render::TransitionStage>(render::TransitionStage::getName());
|
||||
auto& transitionState = transitionStage->getTransition(item.getTransitionId());
|
||||
auto program = shapePipeline.pipeline->getProgram();
|
||||
auto objectParamBufferLocation = program->getUniformBuffers().findLocation("fadeObjectParametersBuffer");
|
||||
if (shapePipeline.locations->fadeObjectParameterBufferUnit >= 0) {
|
||||
auto scene = args->_scene;
|
||||
auto batch = args->_batch;
|
||||
auto transitionStage = scene->getStage<render::TransitionStage>(render::TransitionStage::getName());
|
||||
auto& transitionState = transitionStage->getTransition(item.getTransitionId());
|
||||
|
||||
if (objectParamBufferLocation >= 0) {
|
||||
if (transitionState.paramsBuffer._size != sizeof(gpu::StructBuffer<FadeObjectParams>)) {
|
||||
static_assert(sizeof(transitionState.paramsBuffer) == sizeof(gpu::StructBuffer<FadeObjectParams>), "Assuming gpu::StructBuffer is a helper class for gpu::BufferView");
|
||||
transitionState.paramsBuffer = gpu::StructBuffer<FadeObjectParams>();
|
||||
|
@ -70,7 +68,7 @@ render::ShapePipeline::ItemSetter FadeEffect::getItemUniformSetter() const {
|
|||
params.noiseOffset = glm::vec4(transitionState.noiseOffset, 0.0f);
|
||||
params.baseOffset = glm::vec4(transitionState.baseOffset, 0.0f);
|
||||
}
|
||||
batch->setUniformBuffer(objectParamBufferLocation, transitionState.paramsBuffer);
|
||||
batch->setUniformBuffer(shapePipeline.locations->fadeObjectParameterBufferUnit, transitionState.paramsBuffer);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -124,6 +124,7 @@ void ShapePlumber::addPipeline(const Filter& filter, const gpu::ShaderPointer& p
|
|||
locations->lightAmbientMapUnit = program->getTextures().findLocation("skyboxMap");
|
||||
locations->fadeMaskTextureUnit = program->getTextures().findLocation("fadeMaskMap");
|
||||
locations->fadeParameterBufferUnit = program->getUniformBuffers().findLocation("fadeParametersBuffer");
|
||||
locations->fadeObjectParameterBufferUnit = program->getUniformBuffers().findLocation("fadeObjectParametersBuffer");
|
||||
locations->hazeParameterBufferUnit = program->getUniformBuffers().findLocation("hazeBuffer");
|
||||
if (key.isTranslucent()) {
|
||||
locations->lightClusterGridBufferUnit = program->getUniformBuffers().findLocation("clusterGridBuffer");
|
||||
|
|
|
@ -278,6 +278,7 @@ public:
|
|||
int lightAmbientMapUnit;
|
||||
int fadeMaskTextureUnit;
|
||||
int fadeParameterBufferUnit;
|
||||
int fadeObjectParameterBufferUnit;
|
||||
int hazeParameterBufferUnit;
|
||||
int lightClusterGridBufferUnit;
|
||||
int lightClusterContentBufferUnit;
|
||||
|
|
Loading…
Reference in a new issue