Nuked Transform
This commit is contained in:
@ -37,7 +37,7 @@ std::vector<struct ShaderPassItem> UIBorder::getUIRenderPasses() {
|
||||
item.shader = shader;
|
||||
item.colorValues[shader->paramColor] = COLOR_WHITE;
|
||||
item.parameterBuffers[shader->bufferUiCanvas] = &this->getCanvas()->shaderBuffer;
|
||||
item.matrixValues[shader->paramModel] = this->transform->getWorldTransform();
|
||||
item.matrixValues[shader->paramModel] = this->item->getWorldTransform();
|
||||
if(this->texture == nullptr) {
|
||||
item.boolValues[shader->paramHasTexture] = false;
|
||||
} else {
|
||||
@ -45,7 +45,7 @@ std::vector<struct ShaderPassItem> UIBorder::getUIRenderPasses() {
|
||||
item.textureSlots[0] = this->texture;
|
||||
item.textureValues[shader->paramTexture] = 0;
|
||||
}
|
||||
item.w = this->transform->getWorldPosition().z;
|
||||
item.w = this->item->getWorldPosition().z;
|
||||
item.renderFlags = RENDER_MANAGER_RENDER_FLAG_BLEND;
|
||||
item.mesh = &mesh;
|
||||
|
||||
|
@ -26,7 +26,7 @@ void UICanvas::rebufferShaderParameters() {
|
||||
switch(this->drawType) {
|
||||
case UI_DRAW_TYPE_WORLD_ABSOLUTE:
|
||||
data.projection = camera->getProjection();
|
||||
data.view = camera->transform->getWorldTransform();
|
||||
data.view = camera->item->getWorldTransform();
|
||||
break;
|
||||
|
||||
case UI_DRAW_TYPE_WORLD_CAMERA_RELATIVE:
|
||||
|
@ -22,9 +22,9 @@ UIComponent::UIComponent(SceneItem *item) :
|
||||
}
|
||||
|
||||
std::shared_ptr<UIComponentDimensional> UIComponent::getParentDimensional() {
|
||||
auto parent = this->transform->getParent();
|
||||
auto parent = item->getParent().lock();
|
||||
if(parent == nullptr) return nullptr;
|
||||
auto dimensional = parent->item->getComponent<UIComponentDimensional>();
|
||||
auto dimensional = parent->getComponent<UIComponentDimensional>();
|
||||
assertNotNull(dimensional, "UIComponent::getParentDimensional: Parent must have a UIComponentDimensional");
|
||||
return dimensional;
|
||||
}
|
||||
@ -34,7 +34,7 @@ void UIComponent::updateAlignment() {
|
||||
|
||||
auto align = (glm::vec4)this->alignment;
|
||||
auto dimensional = this->getParentDimensional();
|
||||
auto translate = this->transform->getLocalPosition();
|
||||
auto translate = item->getLocalPosition();
|
||||
|
||||
assertNotNull(dimensional, "UIComponent::updateAlignment: Parent must have a UIComponentDimensional");
|
||||
|
||||
@ -99,7 +99,7 @@ void UIComponent::updateAlignment() {
|
||||
translate.x += dimensional->getChildOffsetX();
|
||||
translate.y += dimensional->getChildOffsetY();
|
||||
|
||||
this->transform->setLocalPosition(translate);
|
||||
item->setLocalPosition(translate);
|
||||
this->alignmentNeedsUpdating = false;
|
||||
this->eventAlignmentUpdated.invoke();
|
||||
}
|
||||
@ -240,11 +240,11 @@ void UIComponent::calculateDimensions(
|
||||
|
||||
std::shared_ptr<UICanvas> UIComponent::getCanvas() {
|
||||
// TODO: Cache this on first hit.
|
||||
auto parent = this->transform->getParent();
|
||||
while(parent != nullptr) {
|
||||
auto canvas = parent->item->getComponent<UICanvas>();
|
||||
auto parent = item->getParent().lock();
|
||||
while(parent) {
|
||||
auto canvas = parent->getComponent<UICanvas>();
|
||||
if(canvas != nullptr) return canvas;
|
||||
parent = parent->getParent();
|
||||
parent = parent->getParent().lock();
|
||||
}
|
||||
assertUnreachable("UIComponent::getCanvas: No canvas found");
|
||||
return nullptr;
|
||||
|
@ -32,7 +32,7 @@ std::vector<struct ShaderPassItem> UIImage::getUIRenderPasses() {
|
||||
item.shader = shader;
|
||||
item.colorValues[shader->paramColor] = this->color;
|
||||
item.parameterBuffers[shader->bufferUiCanvas] = &getCanvas()->shaderBuffer;
|
||||
item.matrixValues[shader->paramModel] = this->transform->getWorldTransform();
|
||||
item.matrixValues[shader->paramModel] = this->item->getWorldTransform();
|
||||
if(this->texture == nullptr) {
|
||||
item.boolValues[shader->paramHasTexture] = false;
|
||||
} else {
|
||||
@ -40,7 +40,7 @@ std::vector<struct ShaderPassItem> UIImage::getUIRenderPasses() {
|
||||
item.textureSlots[0] = this->texture;
|
||||
item.textureValues[shader->paramTexture] = 0;
|
||||
}
|
||||
item.w = this->transform->getWorldPosition().z;
|
||||
item.w = this->item->getWorldPosition().z;
|
||||
item.renderFlags = RENDER_MANAGER_RENDER_FLAG_BLEND;
|
||||
item.mesh = &mesh;
|
||||
return { item };
|
||||
|
@ -26,23 +26,23 @@ float_t UIMesh::getContentHeight() {
|
||||
}
|
||||
|
||||
std::vector<struct ShaderPassItem> UIMesh::getUIRenderPasses() {
|
||||
struct ShaderPassItem item;
|
||||
struct ShaderPassItem shaderItem;
|
||||
auto shader = getGame()->renderManager->uiShader;
|
||||
item.shader = shader;
|
||||
item.colorValues[shader->paramColor] = this->color;
|
||||
item.parameterBuffers[shader->bufferUiCanvas] = &getCanvas()->shaderBuffer;
|
||||
item.matrixValues[shader->paramModel] = this->transform->getWorldTransform();
|
||||
shaderItem.shader = shader;
|
||||
shaderItem.colorValues[shader->paramColor] = this->color;
|
||||
shaderItem.parameterBuffers[shader->bufferUiCanvas] = &getCanvas()->shaderBuffer;
|
||||
shaderItem.matrixValues[shader->paramModel] = item->getWorldTransform();
|
||||
if(this->texture == nullptr) {
|
||||
item.boolValues[shader->paramHasTexture] = false;
|
||||
shaderItem.boolValues[shader->paramHasTexture] = false;
|
||||
} else {
|
||||
item.boolValues[shader->paramHasTexture] = true;
|
||||
item.textureSlots[0] = this->texture;
|
||||
item.textureValues[shader->paramTexture] = 0;
|
||||
shaderItem.boolValues[shader->paramHasTexture] = true;
|
||||
shaderItem.textureSlots[0] = this->texture;
|
||||
shaderItem.textureValues[shader->paramTexture] = 0;
|
||||
}
|
||||
item.w = this->transform->getWorldPosition().z;
|
||||
item.renderFlags = RENDER_MANAGER_RENDER_FLAG_BLEND;
|
||||
item.mesh = &mesh;
|
||||
return { item };
|
||||
shaderItem.w = item->getWorldPosition().z;
|
||||
shaderItem.renderFlags = RENDER_MANAGER_RENDER_FLAG_BLEND;
|
||||
shaderItem.mesh = &mesh;
|
||||
return { shaderItem };
|
||||
}
|
||||
|
||||
void UIMesh::onStart() {
|
||||
|
@ -75,7 +75,7 @@ void UISimpleMenu::onStart() {
|
||||
case UI_DRAW_TYPE_WORLD_ABSOLUTE:
|
||||
mouse *= 2.0f;
|
||||
mouse -= glm::vec2(1, 1);
|
||||
ray.origin = canvas->camera->transform->getWorldPosition();
|
||||
ray.origin = canvas->camera->item->getWorldPosition();
|
||||
ray.direction = canvas->camera->getRayDirectionFromScreenSpace(mouse);
|
||||
break;
|
||||
|
||||
@ -107,7 +107,7 @@ void UISimpleMenu::onStart() {
|
||||
if(!raytestQuad(
|
||||
ray,
|
||||
glm::vec2(0, 0), size,
|
||||
highlight->transform->getWorldTransform(),
|
||||
highlight->item->getWorldTransform(),
|
||||
&point,
|
||||
&normal,
|
||||
&distance
|
||||
|
@ -90,7 +90,7 @@ std::vector<struct ShaderPassItem> UILabel::getUIRenderPasses() {
|
||||
auto shader = getGame()->renderManager->fontShader;
|
||||
|
||||
// Translate
|
||||
glm::mat4 model = transform->getWorldTransform();
|
||||
glm::mat4 model = item->getWorldTransform();
|
||||
model = glm::translate(model, glm::vec3(this->textOffset, 0.0f));
|
||||
|
||||
struct ShaderPassItem item;
|
||||
|
Reference in New Issue
Block a user