43struct PushConstantsStruct;
71 const std::string_view name,
75 PROPERTY_R_IW( gl46core::UseProgramStageMask, stageMask, gl46core::UseProgramStageMask::GL_NONE_BIT);
Rough around the edges Adapter pattern abstracting the actual rendering API and access to the GPU.
GFXDevice & context() const noexcept
std::array< LoadData, to_base(ShaderType::COUNT)> ShaderLoadData
void uploadPushConstants(const PushConstantsStruct &pushConstants)
PROPERTY_R_IW(gl46core::UseProgramStageMask, stageMask, gl46core::UseProgramStageMask::GL_NONE_BIT)
gl46core::GLint _pushConstantsLocation
vector< gl46core::GLuint > _shaderIDs
static glShaderEntry LoadShader(GFXDevice &context, glShaderProgram *parent, const std::string_view name, U32 targetGeneration, ShaderProgram::ShaderLoadData &data)
Add or refresh a shader from the cache.
ShaderProgram::ShaderLoadData _loadData
PROPERTY_R_IW(gl46core::GLuint, handle, GL_NULL_HANDLE)
void onParentValidation()
ShaderResult uploadToGPU()
OpenGL implementation of the ShaderProgram entity.
Handle console commands that start with a forward slash.
constexpr gl46core::GLuint GL_NULL_HANDLE
Invalid object value. Used to compare handles and determine if they were properly created.
eastl::vector< Type > vector