blob: bfd3225cbeeef065a555d1f61fcbec165d2df8ea [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/ui/lib/escher/paper/paper_renderer_static_config.h"
namespace escher {
// List of all the shader paths used by PaperRenderer.
const std::vector<std::string> kPaperRendererShaderPaths = {
"shaders/model_renderer/main.frag",
"shaders/model_renderer/main.vert",
"shaders/model_renderer/default_position.vert",
"shaders/model_renderer/shadow_map_generation.frag",
"shaders/model_renderer/shadow_map_lighting.frag",
"shaders/model_renderer/wobble_position.vert",
"shaders/paper/common/use.glsl",
"shaders/paper/frag/main_ambient_light.frag",
"shaders/paper/frag/main_point_light.frag",
"shaders/paper/vert/compute_model_space_position.vert",
"shaders/paper/vert/compute_world_space_position.vert",
"shaders/paper/vert/main_shadow_volume_extrude.vert",
"shaders/paper/vert/vertex_attributes.vert"};
const std::vector<std::string> kPaperRendererShaderSpirvPaths = {};
const ShaderProgramData kAmbientLightProgramData = {
.source_files = {{ShaderStage::kVertex, "shaders/model_renderer/main.vert"},
{ShaderStage::kFragment, "shaders/paper/frag/main_ambient_light.frag"}},
.args = ShaderVariantArgs({
{"USE_ATTRIBUTE_UV", "1"},
{"USE_PAPER_SHADER_PUSH_CONSTANTS", "1"},
// TODO(ES-153): currently required by main.vert.
{"NO_SHADOW_LIGHTING_PASS", "1"},
}),
};
const ShaderProgramData kNoLightingProgramData = {
.source_files = {{ShaderStage::kVertex, "shaders/model_renderer/main.vert"},
{ShaderStage::kFragment, "shaders/model_renderer/main.frag"}},
.args = ShaderVariantArgs({
{"USE_ATTRIBUTE_UV", "1"},
{"USE_PAPER_SHADER_PUSH_CONSTANTS", "1"},
// TODO(ES-153): currently required by main.vert.
{"NO_SHADOW_LIGHTING_PASS", "1"},
}),
};
const ShaderProgramData kPointLightProgramData = {
.source_files = {{ShaderStage::kVertex, "shaders/model_renderer/main.vert"},
{ShaderStage::kFragment, "shaders/paper/frag/main_point_light.frag"}},
.args = ShaderVariantArgs({
{"USE_ATTRIBUTE_UV", "1"},
{"USE_PAPER_SHADER_POINT_LIGHT", "1"},
{"USE_PAPER_SHADER_PUSH_CONSTANTS", "1"},
{"SHADOW_VOLUME_POINT_LIGHTING", "1"},
}),
};
const ShaderProgramData kPointLightFalloffProgramData = {
.source_files = {{ShaderStage::kVertex, "shaders/model_renderer/main.vert"},
{ShaderStage::kFragment, "shaders/paper/frag/main_point_light.frag"}},
.args = ShaderVariantArgs({
{"USE_ATTRIBUTE_UV", "1"},
{"USE_PAPER_SHADER_POINT_LIGHT", "1"},
{"USE_PAPER_SHADER_POINT_LIGHT_FALLOFF", "1"},
{"USE_PAPER_SHADER_PUSH_CONSTANTS", "1"},
{"SHADOW_VOLUME_POINT_LIGHTING", "1"},
}),
};
const ShaderProgramData kShadowVolumeGeometryProgramData = {
.source_files = {{ShaderStage::kVertex, "shaders/model_renderer/main.vert"},
{ShaderStage::kFragment, ""}},
.args = ShaderVariantArgs({
{"USE_ATTRIBUTE_BLEND_WEIGHT_1", "1"},
{"USE_PAPER_SHADER_POINT_LIGHT", "1"},
{"USE_PAPER_SHADER_PUSH_CONSTANTS", "1"},
{"SHADOW_VOLUME_EXTRUSION", "1"},
}),
};
const ShaderProgramData kShadowVolumeGeometryDebugProgramData = {
.source_files = {{ShaderStage::kVertex, "shaders/model_renderer/main.vert"},
{ShaderStage::kFragment, "shaders/model_renderer/main.frag"}},
.args = ShaderVariantArgs({
{"USE_ATTRIBUTE_BLEND_WEIGHT_1", "1"},
{"USE_PAPER_SHADER_POINT_LIGHT", "1"},
{"USE_PAPER_SHADER_PUSH_CONSTANTS", "1"},
{"SHADOW_VOLUME_EXTRUSION", "1"},
}),
};
} // namespace escher