UI
This commit is contained in:
54
archive/ui/UIBorder.hpp
Normal file
54
archive/ui/UIBorder.hpp
Normal file
@ -0,0 +1,54 @@
|
||||
// Copyright (c) 2022 Dominic Masters
|
||||
//
|
||||
// This software is released under the MIT License.
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#pragma once
|
||||
#include "UIComponent.hpp"
|
||||
#include "display/mesh/QuadMesh.hpp"
|
||||
#include "display/Texture.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class UIBorder : public UIComponent {
|
||||
private:
|
||||
Mesh mesh;
|
||||
glm::vec2 edgeDimensions = glm::vec2(8.0f, 8.0f);
|
||||
glm::vec2 uv0 = glm::vec2(0.0f, 0.0f);
|
||||
glm::vec2 uv1 = glm::vec2(1.0f, 1.0f);
|
||||
|
||||
void updatePositions() override;
|
||||
std::vector<struct ShaderPassItem> getSelfPassItems(
|
||||
glm::mat4 projection,
|
||||
glm::mat4 view,
|
||||
glm::mat4 transform
|
||||
) override;
|
||||
|
||||
public:
|
||||
Texture *texture = nullptr;
|
||||
|
||||
UIBorder(UICanvas *canvas);
|
||||
|
||||
/**
|
||||
* Changes the dimensions of the border.
|
||||
*
|
||||
* @param borderSize Size of the border.
|
||||
*/
|
||||
void setBorderSize(glm::vec2 borderSize);
|
||||
|
||||
/**
|
||||
* Returns the size of the border.
|
||||
*
|
||||
* @return Border size of this UI border.
|
||||
*/
|
||||
glm::vec2 getBorderSize();
|
||||
|
||||
/**
|
||||
* Returns the size of the area within the border.
|
||||
*
|
||||
* @return The inner content area size.
|
||||
*/
|
||||
glm::vec2 getInnerSize();
|
||||
|
||||
~UIBorder();
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user