Merge branch 'main' into devtools
This commit is contained in:
commit
7ade504ec0
@ -1,14 +1,14 @@
|
||||
#ifndef FRONTEND_LOCALES_HPP_
|
||||
#define FRONTEND_LOCALES_HPP_
|
||||
|
||||
#include "../content/ContentPack.hpp"
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
#include <filesystem>
|
||||
#include <unordered_map>
|
||||
|
||||
struct ContentPack;
|
||||
|
||||
namespace langs {
|
||||
const char LANG_FILE_EXT[] = ".txt";
|
||||
const char TEXTS_FOLDER[] = "texts";
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
#include "../../world/World.hpp"
|
||||
#include "../../window/Camera.hpp"
|
||||
#include "../../window/Events.hpp"
|
||||
#include "../../window/Window.hpp"
|
||||
#include "../../engine.hpp"
|
||||
|
||||
static debug::Logger logger("level-screen");
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
#include "Mesh.hpp"
|
||||
#include "Texture.hpp"
|
||||
#include "gl_util.hpp"
|
||||
#include "../../maths/UVRegion.hpp"
|
||||
|
||||
#include <GL/glew.h>
|
||||
|
||||
|
||||
@ -6,10 +6,10 @@
|
||||
#include <glm/glm.hpp>
|
||||
|
||||
#include "commons.hpp"
|
||||
#include "../../maths/UVRegion.hpp"
|
||||
|
||||
class Mesh;
|
||||
class Texture;
|
||||
struct UVRegion;
|
||||
|
||||
class Batch2D {
|
||||
float* buffer;
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
#include "Batch2D.hpp"
|
||||
#include "Framebuffer.hpp"
|
||||
#include "../../window/Window.hpp"
|
||||
|
||||
static void set_blend_mode(BlendMode mode) {
|
||||
switch (mode) {
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
|
||||
#include "commons.hpp"
|
||||
#include "Viewport.hpp"
|
||||
#include "../../window/Window.hpp"
|
||||
#include "../../typedefs.hpp"
|
||||
|
||||
class Batch2D;
|
||||
|
||||
@ -3,6 +3,8 @@
|
||||
#include "Shader.hpp"
|
||||
#include "Texture.hpp"
|
||||
#include "Framebuffer.hpp"
|
||||
#include "Viewport.hpp"
|
||||
#include "DrawContext.hpp"
|
||||
|
||||
#include <stdexcept>
|
||||
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
#ifndef GRAPHICS_CORE_POST_PROCESSING_HPP_
|
||||
#define GRAPHICS_CORE_POST_PROCESSING_HPP_
|
||||
|
||||
#include "Viewport.hpp"
|
||||
#include "DrawContext.hpp"
|
||||
|
||||
#include <memory>
|
||||
|
||||
class Mesh;
|
||||
class Shader;
|
||||
class Framebuffer;
|
||||
class DrawContext;
|
||||
class ImageData;
|
||||
|
||||
/// @brief Framebuffer with blitting with shaders.
|
||||
/// @attention Current implementation does not support multiple render passes
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
#include "Texture.hpp"
|
||||
#include "ImageData.hpp"
|
||||
#include "gl_util.hpp"
|
||||
|
||||
#include <GL/glew.h>
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
#ifndef GRAPHICS_CORE_TEXTURE_HPP_
|
||||
#define GRAPHICS_CORE_TEXTURE_HPP_
|
||||
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include "../../typedefs.hpp"
|
||||
#include "ImageData.hpp"
|
||||
|
||||
#include <string>
|
||||
#include <memory>
|
||||
|
||||
class Texture {
|
||||
protected:
|
||||
uint id;
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
#include "../../graphics/core/Shader.hpp"
|
||||
#include "../../graphics/core/DrawContext.hpp"
|
||||
#include "../../window/Events.hpp"
|
||||
#include "../../window/Window.hpp"
|
||||
#include "../../window/input.hpp"
|
||||
#include "../../window/Camera.hpp"
|
||||
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
#include "../../../assets/Assets.hpp"
|
||||
#include "../../../util/stringutil.hpp"
|
||||
#include "../../../window/Events.hpp"
|
||||
#include "../../../window/Window.hpp"
|
||||
|
||||
using namespace gui;
|
||||
|
||||
|
||||
@ -233,6 +233,14 @@ void UINode::setPositionFunc(vec2supplier func) {
|
||||
positionfunc = func;
|
||||
}
|
||||
|
||||
vec2supplier UINode::getSizeFunc() const {
|
||||
return sizefunc;
|
||||
}
|
||||
|
||||
void UINode::setSizeFunc(vec2supplier func) {
|
||||
sizefunc = func;
|
||||
}
|
||||
|
||||
void UINode::setId(const std::string& id) {
|
||||
this->id = id;
|
||||
}
|
||||
@ -245,6 +253,9 @@ void UINode::reposition() {
|
||||
if (positionfunc) {
|
||||
setPos(positionfunc());
|
||||
}
|
||||
if (sizefunc) {
|
||||
setSize(sizefunc());
|
||||
}
|
||||
}
|
||||
|
||||
void UINode::setGravity(Gravity gravity) {
|
||||
|
||||
@ -84,6 +84,8 @@ namespace gui {
|
||||
UINode* parent = nullptr;
|
||||
/// @brief position supplier for the element (called on parent element size update)
|
||||
vec2supplier positionfunc = nullptr;
|
||||
/// @brief size supplier for the element (called on parent element size update)
|
||||
vec2supplier sizefunc = nullptr;
|
||||
/// @brief 'onclick' callbacks
|
||||
std::vector<onaction> actions;
|
||||
|
||||
@ -148,25 +150,25 @@ namespace gui {
|
||||
void defocus();
|
||||
bool isFocused() const;
|
||||
|
||||
/** Check if element catches all user input when focused */
|
||||
/// @brief Check if element catches all user input when focused
|
||||
virtual bool isFocuskeeper() const {return false;}
|
||||
|
||||
virtual void typed(unsigned int codepoint) {};
|
||||
virtual void keyPressed(keycode key) {};
|
||||
|
||||
/** Check if screen position is inside of the element
|
||||
* @param pos screen position */
|
||||
/// @brief Check if screen position is inside of the element
|
||||
/// @param pos screen position
|
||||
virtual bool isInside(glm::vec2 pos);
|
||||
|
||||
/** Get element under the cursor.
|
||||
* @param pos cursor screen position
|
||||
* @param self shared pointer to element
|
||||
* @return self, sub-element or nullptr if element is not interractive */
|
||||
/// @brief Get element under the cursor.
|
||||
/// @param pos cursor screen position
|
||||
/// @param self shared pointer to element
|
||||
/// @return self, sub-element or nullptr if element is not interractive
|
||||
virtual std::shared_ptr<UINode> getAt(glm::vec2 pos, std::shared_ptr<UINode> self);
|
||||
|
||||
/* Check if element is opaque for cursor */
|
||||
/// @brief Check if element is opaque for cursor
|
||||
virtual bool isInteractive() const;
|
||||
/* Make the element opaque (true) or transparent (false) for cursor */
|
||||
/// @brief Make the element opaque (true) or transparent (false) for cursor
|
||||
virtual void setInteractive(bool flag);
|
||||
|
||||
virtual void setResizing(bool flag);
|
||||
@ -174,9 +176,9 @@ namespace gui {
|
||||
|
||||
virtual glm::vec4 calcColor() const;
|
||||
|
||||
/* Get inner content offset. Used for scroll */
|
||||
/// @brief Get inner content offset. Used for scroll
|
||||
virtual glm::vec2 contentOffset() {return glm::vec2(0.0f);};
|
||||
/* Calculate screen position of the element */
|
||||
/// @brief Calculate screen position of the element
|
||||
virtual glm::vec2 calcPos() const;
|
||||
virtual void setPos(glm::vec2 pos);
|
||||
virtual glm::vec2 getPos() const;
|
||||
@ -184,7 +186,7 @@ namespace gui {
|
||||
virtual void setSize(glm::vec2 size);
|
||||
virtual glm::vec2 getMinSize() const;
|
||||
virtual void setMinSize(glm::vec2 size);
|
||||
/* Called in containers when new element added */
|
||||
/// @brief Called in containers when new element added
|
||||
virtual void refresh() {};
|
||||
virtual void fullRefresh() {
|
||||
if (parent) {
|
||||
@ -199,15 +201,18 @@ namespace gui {
|
||||
virtual vec2supplier getPositionFunc() const;
|
||||
virtual void setPositionFunc(vec2supplier);
|
||||
|
||||
virtual vec2supplier getSizeFunc() const;
|
||||
virtual void setSizeFunc(vec2supplier);
|
||||
|
||||
void setId(const std::string& id);
|
||||
const std::string& getId() const;
|
||||
|
||||
/* Fetch pos from positionfunc if assigned */
|
||||
/// @brief Fetch pos from positionfunc if assigned
|
||||
void reposition();
|
||||
|
||||
virtual void setGravity(Gravity gravity);
|
||||
|
||||
// @brief collect all nodes having id
|
||||
/// @brief collect all nodes having id
|
||||
static void getIndices(
|
||||
std::shared_ptr<UINode> node,
|
||||
std::unordered_map<std::string, std::shared_ptr<UINode>>& map
|
||||
|
||||
@ -94,7 +94,14 @@ static void _readUINode(UiXmlReader& reader, xml::xmlelement element, UINode& no
|
||||
node.setPositionFunc(scripting::create_vec2_supplier(
|
||||
reader.getEnvironment(),
|
||||
element->attr("position-func").getText(),
|
||||
reader.getFilename()+".lua"
|
||||
reader.getFilename()
|
||||
));
|
||||
}
|
||||
if (element->has("size-func")) {
|
||||
node.setSizeFunc(scripting::create_vec2_supplier(
|
||||
reader.getEnvironment(),
|
||||
element->attr("size-func").getText(),
|
||||
reader.getFilename()
|
||||
));
|
||||
}
|
||||
if (element->has("hover-color")) {
|
||||
|
||||
@ -2,9 +2,7 @@
|
||||
#define TYPEDEFS_HPP_
|
||||
|
||||
#include <memory>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <variant>
|
||||
|
||||
using scriptenv = std::shared_ptr<int>;
|
||||
using observer_handler = std::shared_ptr<int>;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user