Compile Views in separate source files

This commit is contained in:
Bruno
2021-02-26 23:09:51 +01:00
parent e7a5d341e4
commit 004e1aaead
20 changed files with 3791 additions and 3434 deletions

216
View.h
View File

@@ -98,210 +98,20 @@ protected:
uint64_t current_id_;
Mode mode_;
// selection
Group *overlay_selection_;
Frame *overlay_selection_frame_;
Handles *overlay_selection_icon_;
void updateSelectionOverlay();
// contex menu
bool show_context_menu_;
inline void openContextMenu() { show_context_menu_ = true; }
};
class MixingView : public View
{
public:
MixingView();
void draw () override;
void update (float dt) override;
void resize (int) override;
int size () override;
void centerSource(Source *) override;
std::pair<Node *, glm::vec2> pick(glm::vec2) override;
Cursor grab (Source *s, glm::vec2 from, glm::vec2 to, std::pair<Node *, glm::vec2>) override;
void arrow (glm::vec2) override;
void setAlpha (Source *s);
inline float limboScale() { return limbo_scale_; }
private:
uint textureMixingQuadratic();
float limbo_scale_;
Group *slider_root_;
Disk *slider_;
Disk *button_white_;
Disk *button_black_;
Disk *stashCircle_;
Mesh *mixingCircle_;
Mesh *circle_;
};
class RenderView : public View
{
FrameBuffer *frame_buffer_;
Surface *fading_overlay_;
public:
RenderView ();
~RenderView ();
void draw () override;
bool canSelect(Source *) override;
void setResolution (glm::vec3 resolution = glm::vec3(0.f), bool useAlpha = false);
glm::vec3 resolution() const { return frame_buffer_->resolution(); }
void setFading(float f = 0.f);
float fading() const;
inline FrameBuffer *frame () const { return frame_buffer_; }
};
class GeometryView : public View
{
public:
GeometryView();
void draw () override;
void update (float dt) override;
void resize (int) override;
int size () override;
bool canSelect(Source *) override;
std::pair<Node *, glm::vec2> pick(glm::vec2 P) override;
Cursor grab (Source *s, glm::vec2 from, glm::vec2 to, std::pair<Node *, glm::vec2> pick) override;
void terminate() override;
void arrow (glm::vec2) override;
private:
Surface *output_surface_;
Node *overlay_position_;
Node *overlay_position_cross_;
Node *overlay_rotation_;
Node *overlay_rotation_fix_;
Node *overlay_rotation_clock_;
Node *overlay_rotation_clock_hand_;
Node *overlay_scaling_;
Node *overlay_scaling_cross_;
Node *overlay_scaling_grid_;
Node *overlay_crop_;
};
class LayerView : public View
{
public:
LayerView();
void draw () override;
void update (float dt) override;
void resize (int) override;
int size () override;
bool canSelect(Source *) override;
std::pair<Node *, glm::vec2> pick(glm::vec2) override;
Cursor grab (Source *s, glm::vec2 from, glm::vec2 to, std::pair<Node *, glm::vec2> pick) override;
void arrow (glm::vec2) override;
float setDepth (Source *, float d = -1.f);
private:
float aspect_ratio;
Mesh *persp_layer_;
Mesh *persp_left_, *persp_right_;
Group *frame_;
Group *overlay_group_;
Frame *overlay_group_frame_;
Handles *overlay_group_icon_;
};
class TransitionView : public View
{
public:
TransitionView();
void draw () override;
void update (float dt) override;
void zoom (float factor) override;
bool canSelect(Source *) override;
std::pair<Node *, glm::vec2> pick(glm::vec2 P) override;
Cursor grab (Source *s, glm::vec2 from, glm::vec2 to, std::pair<Node *, glm::vec2> pick) override;
void arrow (glm::vec2) override;
Cursor drag (glm::vec2, glm::vec2) override;
void attach(SessionFileSource *ts);
Session *detach();
void play(bool open);
private:
Surface *output_surface_;
Mesh *mark_100ms_, *mark_1s_;
Switch *gradient_;
SessionFileSource *transition_source_;
};
class AppearanceView : public View
{
public:
AppearanceView();
void draw () override;
void update (float dt) override;
void resize (int) override;
int size () override;
bool canSelect(Source *) override;
void select(glm::vec2 A, glm::vec2 B) override;
std::pair<Node *, glm::vec2> pick(glm::vec2 P) override;
Cursor grab (Source *s, glm::vec2 from, glm::vec2 to, std::pair<Node *, glm::vec2> pick) override;
Cursor over (glm::vec2) override;
void arrow (glm::vec2) override;
void initiate() override;
void terminate() override;
private:
Source *edit_source_;
bool need_edit_update_;
Source *getEditOrCurrentSource();
void adjustBackground();
Surface *preview_surface_;
class ImageShader *preview_shader_;
Surface *preview_checker_;
Frame *preview_frame_;
Surface *background_surface_;
Frame *background_frame_;
Mesh *horizontal_mark_;
Mesh *vertical_mark_;
bool show_scale_;
Group *mask_node_;
Frame *mask_square_;
Mesh *mask_circle_;
Mesh *mask_horizontal_;
Group *mask_vertical_;
Symbol *overlay_position_;
Symbol *overlay_position_cross_;
Symbol *overlay_scaling_;
Symbol *overlay_scaling_cross_;
Node *overlay_scaling_grid_;
Symbol *overlay_rotation_;
Symbol *overlay_rotation_fix_;
Node *overlay_rotation_clock_;
Symbol *overlay_rotation_clock_hand_;
// for mask shader draw: 0=cursor, 1=brush, 2=eraser, 3=crop_shape
int mask_cursor_paint_;
int mask_cursor_shape_;
Mesh *mask_cursor_circle_;
Mesh *mask_cursor_square_;
Mesh *mask_cursor_crop_;
glm::vec3 stored_mask_size_;
bool show_cursor_forced_;
typedef enum {
MENU_NONE = 0,
MENU_SOURCE = 1,
MENU_SELECTION = 2
} ContextMenu;
ContextMenu show_context_menu_;
inline void openContextMenu(ContextMenu m) { show_context_menu_ = m; }
};