Further shader compilation development.

This commit is contained in:
zy4n
2025-03-22 17:40:08 +01:00
parent e01b8c2e09
commit 510398423a
45 changed files with 1567 additions and 1097 deletions

View File

@@ -2,7 +2,7 @@
#include "assets/components/material_components.hpp"
#include "assets/components/mesh_vertex_components.hpp"
#include "shader_program/features/mesh_features.hpp"
#include "shading/features/mesh_features.hpp"
#include "util/enum_bitfield_operators.hpp"
#include <array>
@@ -12,7 +12,7 @@ namespace rendering::requirements::mesh
struct type
{
shader_program::features::mesh::indices::type shader_program_requirement_index{};
shading::features::mesh::indices::type shader_program_requirement_index{};
components::mesh_vertex::flags vertex_requirements{
components::mesh_vertex::flags::none
};
@@ -33,32 +33,32 @@ enum class flags : std::uint8_t
};
constexpr inline auto position = type{
.shader_program_requirement_index = shader_program::features::mesh::indices::position,
.shader_program_requirement_index = shading::features::mesh::indices::position,
.vertex_requirements = components::mesh_vertex::flags::position
};
constexpr inline auto lit = type{
.shader_program_requirement_index = shader_program::features::mesh::indices::lit,
.shader_program_requirement_index = shading::features::mesh::indices::lit,
.vertex_requirements = components::mesh_vertex::flags::normal,
.material_requirements = components::material::flags::surface_properties
};
constexpr inline auto point = type{
.shader_program_requirement_index = shader_program::features::mesh::indices::point
.shader_program_requirement_index = shading::features::mesh::indices::point
};
constexpr inline auto textured = type{
.shader_program_requirement_index = shader_program::features::mesh::indices::textured,
.shader_program_requirement_index = shading::features::mesh::indices::textured,
.vertex_requirements = components::mesh_vertex::flags::tex_coord,
.material_requirements = components::material::flags::texture,
};
constexpr inline auto uniform_color = type{
.shader_program_requirement_index = shader_program::features::mesh::indices::uniform_color
.shader_program_requirement_index = shading::features::mesh::indices::uniform_color
};
constexpr inline auto uniform_alpha = type{
.shader_program_requirement_index = shader_program::features::mesh::indices::uniform_alpha,
.shader_program_requirement_index = shading::features::mesh::indices::uniform_alpha,
.material_requirements = components::material::flags::transparency
};

View File

@@ -1,7 +1,7 @@
#pragma once
#include "assets/components/point_cloud_vertex_components.hpp"
#include "shader_program/features/point_cloud_features.hpp"
#include "shading/features/point_cloud_features.hpp"
#include <array>
#include "util/enum_bitfield_operators.hpp"
@@ -11,7 +11,7 @@ namespace rendering::requirements::point_cloud
struct type
{
shader_program::features::point_cloud::indices::type shader_program_requirement_index{};
shading::features::point_cloud::indices::type shader_program_requirement_index{};
components::point_cloud_vertex::flags vertex_requirements{
components::point_cloud_vertex::flags::none
};
@@ -31,30 +31,30 @@ enum class flags : std::uint8_t
constexpr inline auto position = type{
.shader_program_requirement_index = shader_program::features::point_cloud::indices::position,
.shader_program_requirement_index = shading::features::point_cloud::indices::position,
.vertex_requirements = components::point_cloud_vertex::flags::position
};
constexpr inline auto rainbow = type{
.shader_program_requirement_index = shader_program::features::point_cloud::indices::rainbow
.shader_program_requirement_index = shading::features::point_cloud::indices::rainbow
};
constexpr inline auto vertex_color = type{
.shader_program_requirement_index = shader_program::features::point_cloud::indices::vertex_color,
.shader_program_requirement_index = shading::features::point_cloud::indices::vertex_color,
.vertex_requirements = components::point_cloud_vertex::flags::color
};
constexpr inline auto uniform_color = type{
.shader_program_requirement_index = shader_program::features::point_cloud::indices::uniform_color
.shader_program_requirement_index = shading::features::point_cloud::indices::uniform_color
};
constexpr inline auto normal = type{
.shader_program_requirement_index = shader_program::features::point_cloud::indices::normal,
.shader_program_requirement_index = shading::features::point_cloud::indices::normal,
.vertex_requirements = components::point_cloud_vertex::flags::normal
};
constexpr inline auto reflectance = type{
.shader_program_requirement_index = shader_program::features::point_cloud::indices::reflectance,
.shader_program_requirement_index = shading::features::point_cloud::indices::reflectance,
.vertex_requirements = components::point_cloud_vertex::flags::reflectance
};