#pragma once #include #include enum class SourceLanguage : uint8 { HLSL = 0, Count = 1, Invalid = Count }; enum class ShaderFormat : uint8 { DXIL = 0, Count = 1, Invalid = Count }; enum class ShaderStage : uint8 { Vertex = 0, Fragment = 1, Compute = 2, Count = 3, Invalid = Count }; struct ShaderInfo { ByteBuffer ByteCodeBuffer; Juliet::String EntryPoint; Juliet::String Name; ShaderStage Stage; }; struct HLSLShaderInfo : ShaderInfo { // TODO Defines and includes }; ByteBuffer CompileDXIL(HLSLShaderInfo& info);