blob: 93fab2146669203360d05e6af954d00794b6f75f [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(jjosh): file bug to move these out of here, but still ensure they're built
// for the Escher shader tests. Suitable existing bug exists?
"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