37 default:
return false;
81 std::vector<CompiledVertexElementNoName>
elements;
105 std::optional<InstanceProp> instance_prop,
106 std::optional<int> start_index
113 const std::vector<VertexType>& base_layout,
const std::vector<ShaderVertexAttributes>& descriptions
CompiledGeomVertexAttributes get_geom_layout(const CompiledVertexTypeList &l)
CompiledVertexTypeList compile_attribute_layouts(const std::vector< VertexType > &base_layout, const std::vector< ShaderVertexAttributes > &descriptions)
CompiledShaderVertexAttributes compile_shader_layout(const CompiledVertexTypeList &l, const ShaderVertexAttributes &elements, std::optional< InstanceProp > instance_prop, std::optional< int > start_index)
std::vector< VertexType > VertexTypes
VertexType
Vertex source type, position, normal etc.
std::vector< VertexType > find_duplicates(const ShaderVertexAttributes &items)
std::vector< VertexElementDescription > ShaderVertexAttributes
Describes all vertex inputs a shader requires like [vec3 position, vec3 normal, vec2 uv].
constexpr bool is_instance_based(VertexType v)
A list of CompiledVertexLayoutNoNameList (for geom).
std::vector< CompiledVertexElementNoName > elements
A list of CompiledVertexElement (for shader).
std::vector< CompiledVertexElement > elements
A realized VertexElementDescription without name like vec3 at gl shader position 3.
A realized VertexElementDescription like vec3 position at gl shader position 3.
A mapping of the vertex type (position...) to the actual shader id (for more than one shader).
std::map< VertexType, int > indices
A property for a shader used in instanced rendering.
A not-yet-realised binding to a shader variable like vec3 position.