diff options
Diffstat (limited to '3rdparty/bgfx/src/shader_dxbc.h')
-rw-r--r-- | 3rdparty/bgfx/src/shader_dxbc.h | 101 |
1 files changed, 100 insertions, 1 deletions
diff --git a/3rdparty/bgfx/src/shader_dxbc.h b/3rdparty/bgfx/src/shader_dxbc.h index df87d7443a7..ba0e2862a39 100644 --- a/3rdparty/bgfx/src/shader_dxbc.h +++ b/3rdparty/bgfx/src/shader_dxbc.h @@ -1,5 +1,5 @@ /* - * Copyright 2011-2018 Branimir Karadzic. All rights reserved. + * Copyright 2011-2022 Branimir Karadzic. All rights reserved. * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause */ @@ -326,6 +326,72 @@ namespace bgfx }; }; + struct DxbcPrimitiveTopology + { + enum Enum + { + Unknown, + PointList, + LineList, + LineStrip, + TriangleList, + TriangleStrip, + LineListAdj = 10, + LineStripAdj, + TriangleListAdj, + TriangleStripAdj, + + Count + }; + }; + + struct DxbcPrimitive + { + enum Enum + { + Unknown, + Point, + Line, + Triangle, + LineAdj = 6, + TriangleAdj, + _1ControlPointPatch, + _2ControlPointPatch, + _3ControlPointPatch, + _4ControlPointPatch, + _5ControlPointPatch, + _6ControlPointPatch, + _7ControlPointPatch, + _8ControlPointPatch, + _9ControlPointPatch, + _10ControlPointPatch, + _11ControlPointPatch, + _12ControlPointPatch, + _13ControlPointPatch, + _14ControlPointPatch, + _15ControlPointPatch, + _16ControlPointPatch, + _17ControlPointPatch, + _18ControlPointPatch, + _19ControlPointPatch, + _20ControlPointPatch, + _21ControlPointPatch, + _22ControlPointPatch, + _23ControlPointPatch, + _24ControlPointPatch, + _25ControlPointPatch, + _26ControlPointPatch, + _27ControlPointPatch, + _28ControlPointPatch, + _29ControlPointPatch, + _30ControlPointPatch, + _31ControlPointPatch, + _32ControlPointPatch, + + Count + }; + }; + struct DxbcResourceReturnType { enum Enum @@ -562,6 +628,12 @@ namespace bgfx DxbcInterpolation::Enum interpolation; // + DxbcPrimitiveTopology::Enum primitiveTopology; + + // + DxbcPrimitive::Enum primitive; + + // bool shadow; bool mono; @@ -633,6 +705,26 @@ namespace bgfx bool aon9; }; + struct DxbcSFI0 + { + uint64_t data; + }; + + struct DxbcSPDB + { + stl::vector<uint8_t> debugCode; + }; + + struct DxbcRDEF + { + stl::vector<uint8_t> rdefCode; + }; + + struct DxbcSTAT + { + stl::vector<uint8_t> statCode; + }; + int32_t read(bx::ReaderSeekerI* _reader, DxbcShader& _shader, bx::Error* _err); int32_t write(bx::WriterI* _writer, const DxbcShader& _shader, bx::Error* _err); @@ -642,6 +734,8 @@ namespace bgfx typedef void (*DxbcFilterFn)(DxbcInstruction& _instruction, void* _userData); void filter(DxbcShader& _dst, const DxbcShader& _src, DxbcFilterFn _fn, void* _userData, bx::Error* _err = NULL); +#define DXBC_MAX_CHUNKS 32 + struct DxbcContext { struct Header @@ -657,6 +751,11 @@ namespace bgfx DxbcSignature inputSignature; DxbcSignature outputSignature; DxbcShader shader; + DxbcSFI0 sfi0; + DxbcSPDB spdb; + DxbcRDEF rdef; + DxbcSTAT stat; + uint32_t chunksFourcc[DXBC_MAX_CHUNKS]; }; int32_t read(bx::ReaderSeekerI* _reader, DxbcContext& _dxbc, bx::Error* _err); |