143 LPCSTR szShaderModel,
144 ID3DBlob** ppBlobOut);
Declara la API de Prerequisites dentro del subsistema Core.
Encapsula un ID3D11Device y facilita la creación de recursos gráficos en Direct3D 11.
Encapsula la creación, compilación y uso de Vertex Shader y Pixel Shader en Direct3D 11.
ID3D11VertexShader * m_VertexShader
Vertex Shader compilado y creado en GPU.
HRESULT CreateShader(Device &device, ShaderType type)
Crea un shader (Vertex o Pixel) a partir del archivo establecido en m_shaderFileName.
ID3D11PixelShader * m_PixelShader
Pixel Shader compilado y creado en GPU.
InputLayout m_inputLayout
Input Layout asociado al Vertex Shader.
ID3DBlob * m_vertexShaderData
Bytecode compilado del Vertex Shader.
void render(DeviceContext &deviceContext)
Aplica el Vertex Shader, Pixel Shader e Input Layout al pipeline.
ID3DBlob * m_pixelShaderData
Bytecode compilado del Pixel Shader.
HRESULT CompileShaderFromFile(char *szFileName, LPCSTR szEntryPoint, LPCSTR szShaderModel, ID3DBlob **ppBlobOut)
Compila un shader desde archivo.
void update()
Actualiza parámetros internos de los shaders.
HRESULT init(Device &device, const std::string &fileName, LayoutBuilder layoutBuilder)
Inicializa el programa de shaders desde un archivo HLSL.
std::string m_shaderFileName
Nombre del archivo HLSL asociado a este programa de shaders.
void destroy()
Libera todos los recursos asociados (shaders, blobs e input layout).
~ShaderProgram()=default
Destructor por defecto.
ShaderProgram()=default
Constructor por defecto.
HRESULT CreateInputLayout(Device &device, LayoutBuilder)
Crea un Input Layout asociado al Vertex Shader.