Added camera relative UI support.

This commit is contained in:
2023-03-08 17:37:08 -08:00
parent 186ac8bc3f
commit 326e42bef3
9 changed files with 76 additions and 39 deletions

View File

@ -36,6 +36,31 @@ float_t UICanvas::getContentHeight() {
return this->getHeight();
}
void UICanvas::getProjectionAndView(glm::mat4 *proj, glm::mat4 *view) {
assertNotNull(proj);
assertNotNull(view);
switch(this->drawType) {
case UI_DRAW_TYPE_WORLD_ABSOLUTE:
*proj = camera->getProjection();
*view = camera->transform->getWorldTransform();
break;
case UI_DRAW_TYPE_WORLD_CAMERA_RELATIVE:
*proj = glm::ortho(
0.0f,
camera->getRenderTarget()->getWidth(),
camera->getRenderTarget()->getHeight(),
0.0f
);
*view = glm::mat4(1.0f);
break;
default:
assertUnreachable();
}
}
void UICanvas::onStart() {
if(camera == nullptr) camera = getScene()->findComponent<Camera>();