Moved push constant bindings to reflection interface for viewports

This commit is contained in:
2025-08-30 16:45:56 -07:00
parent eb3f88ff90
commit 7ea376574c
4 changed files with 103 additions and 70 deletions

View File

@@ -57,6 +57,37 @@ KRViewport::KRViewport(const Vector2& size, const Matrix4& matView, const Matrix
bool KRViewport::getShaderValue(ShaderValue value, void* buffer, size_t size) const
{
if (size == sizeof(Matrix4)) {
switch (value) {
case ShaderValue::projection_matrix:
{
memcpy(buffer, &m_matProjection, sizeof(Matrix4));
return true;
}
case ShaderValue::invp:
{
memcpy(buffer, &m_matInverseProjection, sizeof(Matrix4));
return true;
}
}
}
if (size == sizeof(Vector4)) {
switch (value) {
case ShaderValue::viewport:
{
Vector4 viewport = Vector4::Create(
0.0f,
0.0f,
getSize().x,
getSize().y
);
memcpy(buffer, &viewport, sizeof(Vector4));
return true;
}
}
}
return false;
}