Files
panopainter/engine/app.h

57 lines
1.4 KiB
C++

#pragma once
#include "shader.h"
#include "shape.h"
#include "texture.h"
#include "layout.h"
#include "font.h"
class App
{
public:
static App I;
Sampler sampler;
Texture2D tex;
LayoutManager layout;
NodeMessageBox* msgbox;
NodeSettings* settings;
NodePopupMenu* popup = nullptr;
NodePopupMenu* menu_file = nullptr;
NodePopupMenu* menu_edit = nullptr;
NodePopupMenu* menu_layers = nullptr;
NodeBorder* sidebar = nullptr;
std::shared_ptr<NodePanelBrush> brushes;
std::shared_ptr<NodePanelLayer> layers;
std::shared_ptr<NodePanelColor> color;
std::shared_ptr<NodePanelStroke> stroke;
NodeCanvas* canvas;
Node* current_panel = nullptr;
Node* panels;
std::function<void(int)> on_brush_select;
std::function<void(glm::vec4 color)> on_color_change;
std::function<void()> on_stroke_change;
const uint16_t main_id = const_hash("main");
float width;
float height;
#ifdef __ANDROID__
float zoom = 3.0;
#else
float zoom = 1.0;
#endif // __ANDROID__
void initLog();
void init();
void initShaders();
void initAssets();
void initLayout();
void create();
void clear();
void update(float dt);
void resize(float w, float h);
bool mouse_down(int button, float x, float y);
bool mouse_move(float x, float y);
bool mouse_up(int button, float x, float y);
bool key_down(int key);
bool key_up(int key);
bool key_char(int key);
};