9#ifndef AVARA3D_RENDER_PIPELINEDESC_H
10#define AVARA3D_RENDER_PIPELINEDESC_H
15#include "a3d/mesh/VertexLayout.h"
16#include "a3d/visual/material/Material.h"
22 using PipelineId = uint32_t;
23 static constexpr PipelineId INVALID_PIPELINE_ID = 0xFFFFFFFFu;
25 enum class DepthFunc : uint8_t {
36 enum class ShaderKind : uint8_t {
44 enum class PassKind : uint8_t {
57 PassKind passKind = PassKind::MainOpaque;
58 ShaderKind shaderKind = ShaderKind::Default;
59 VertexLayout vertexLayoutKey = VertexLayout::None;
62 bool doubleSided =
false;
63 bool depthTest =
true;
64 bool depthWrite =
true;
65 DepthFunc depthFunc = DepthFunc::Less;
66 bool polygonOffset =
false;
68 bool operator==(
const PipelineDesc&)
const =
default;
73 struct PipelineDescHash {
74 size_t operator()(
const PipelineDesc& desc)
const noexcept;
FillMode
Selects polygon rasterization mode.
@ Fill
Rasterize filled polygons.
BlendFunction
Selects the blending function used for transparent materials.
@ Disabled
Do not explicitly enable blending.