blob: 0f1df3ccd4d147a8bccb70abb652e85b5e360605 [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.vert",
"shaders/paper/common/use.glsl",
"shaders/paper/frag/main_ambient_light.frag",
"shaders/paper/frag/main_point_light.frag",
"shaders/paper/vert/main_shadow_volume_extrude.vert",
// TODO(fxbug.dev/70252): the following files are not part of PaperRenderer; they're used only
// by tests. They should be moved elsewhere.
"shaders/test/main.frag",
"shaders/test/shadow_map_generation.frag",
"shaders/test/shadow_map_lighting.frag",
};
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(fxbug.dev/7244): 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/paper/frag/main_ambient_light.frag"}},
.args = ShaderVariantArgs({
{"USE_ATTRIBUTE_UV", "1"},
{"USE_PAPER_SHADER_PUSH_CONSTANTS", "1"},
// TODO(fxbug.dev/7244): currently required by main.vert.
{"NO_SHADOW_LIGHTING_PASS", "1"},
{"DISABLE_AMBIENT_LIGHT", "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 kShadowVolumeGeometryProgramData = {
.source_files = {{ShaderStage::kVertex, "shaders/paper/vert/main_shadow_volume_extrude.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/paper/vert/main_shadow_volume_extrude.vert"},
{ShaderStage::kFragment, "shaders/paper/frag/main_ambient_light.frag"}},
.args = ShaderVariantArgs({
{"USE_ATTRIBUTE_BLEND_WEIGHT_1", "1"},
{"USE_PAPER_SHADER_POINT_LIGHT", "1"}, // for vertex shader, ignored by fragment shader
{"USE_PAPER_SHADER_PUSH_CONSTANTS", "1"},
{"SHADOW_VOLUME_EXTRUSION", "1"},
{"DISABLE_AMBIENT_LIGHT", "1"},
}),
};
} // namespace escher