#pragma once #include #include typedef struct { ID3D11VertexShader* vs; ID3D11PixelShader* ps; ID3D11InputLayout* layout; ID3D11Buffer* cb; } Shader; Shader* shader_create(void); void shader_destroy(Shader* s); int shader_compile(Shader* s, ID3D11Device* dev, const char* vs_code, const char* ps_code, uint32_t vs_len, uint32_t ps_len); void shader_bind(Shader* s, ID3D11DeviceContext* ctx); void shader_set_matrix(Shader* s, ID3D11DeviceContext* ctx, const float* data);