|
@@ -4,59 +4,10 @@
|
|
|
|
|
|
|
|
#pragma once
|
|
#pragma once
|
|
|
|
|
|
|
|
-#include <array>
|
|
|
|
|
-#include <optional>
|
|
|
|
|
-#include <vector>
|
|
|
|
|
-
|
|
|
|
|
#include "common/common_types.h"
|
|
#include "common/common_types.h"
|
|
|
|
|
|
|
|
namespace Shader {
|
|
namespace Shader {
|
|
|
|
|
|
|
|
-enum class AttributeType : u8 {
|
|
|
|
|
- Float,
|
|
|
|
|
- SignedInt,
|
|
|
|
|
- UnsignedInt,
|
|
|
|
|
- Disabled,
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-enum class InputTopology {
|
|
|
|
|
- Points,
|
|
|
|
|
- Lines,
|
|
|
|
|
- LinesAdjacency,
|
|
|
|
|
- Triangles,
|
|
|
|
|
- TrianglesAdjacency,
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-enum class CompareFunction {
|
|
|
|
|
- Never,
|
|
|
|
|
- Less,
|
|
|
|
|
- Equal,
|
|
|
|
|
- LessThanEqual,
|
|
|
|
|
- Greater,
|
|
|
|
|
- NotEqual,
|
|
|
|
|
- GreaterThanEqual,
|
|
|
|
|
- Always,
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-enum class TessPrimitive {
|
|
|
|
|
- Isolines,
|
|
|
|
|
- Triangles,
|
|
|
|
|
- Quads,
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-enum class TessSpacing {
|
|
|
|
|
- Equal,
|
|
|
|
|
- FractionalOdd,
|
|
|
|
|
- FractionalEven,
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-struct TransformFeedbackVarying {
|
|
|
|
|
- u32 buffer{};
|
|
|
|
|
- u32 stride{};
|
|
|
|
|
- u32 offset{};
|
|
|
|
|
- u32 components{};
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
struct Profile {
|
|
struct Profile {
|
|
|
u32 supported_spirv{0x00010000};
|
|
u32 supported_spirv{0x00010000};
|
|
|
|
|
|
|
@@ -114,27 +65,4 @@ struct Profile {
|
|
|
bool ignore_nan_fp_comparisons{};
|
|
bool ignore_nan_fp_comparisons{};
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-struct RuntimeInfo {
|
|
|
|
|
- std::array<AttributeType, 32> generic_input_types{};
|
|
|
|
|
- bool convert_depth_mode{};
|
|
|
|
|
- bool force_early_z{};
|
|
|
|
|
-
|
|
|
|
|
- TessPrimitive tess_primitive{};
|
|
|
|
|
- TessSpacing tess_spacing{};
|
|
|
|
|
- bool tess_clockwise{};
|
|
|
|
|
-
|
|
|
|
|
- InputTopology input_topology{};
|
|
|
|
|
-
|
|
|
|
|
- std::optional<float> fixed_state_point_size;
|
|
|
|
|
- std::optional<CompareFunction> alpha_test_func;
|
|
|
|
|
- float alpha_test_reference{};
|
|
|
|
|
-
|
|
|
|
|
- // Static y negate value
|
|
|
|
|
- bool y_negate{};
|
|
|
|
|
- // Use storage buffers instead of global pointers on GLASM
|
|
|
|
|
- bool glasm_use_storage_buffers{};
|
|
|
|
|
-
|
|
|
|
|
- std::vector<TransformFeedbackVarying> xfb_varyings;
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
} // namespace Shader
|
|
} // namespace Shader
|