FuncDoodle
Loading...
Searching...
No Matches
Manager.h
Go to the documentation of this file.
1
24
25#pragma once
26
27#include "Core/AppSettings.h"
28#include "Keybinds/Keybinds.h"
29#include "Project/Project.h"
30#include "Util/Ptr.h"
31
34
35#include "Tool/ToolManager.h"
36
37#include "Core/Player.h"
38
39#include "Asset/AssetLoader.h"
40
41namespace FuncDoodle {
71 public:
84 SharedPtr<EditorController> editorController,
85 KeybindsRegistry& keybinds, AppSettings& settings);
87
92 void RegisterKeybinds();
99 void RenderTimeline(bool prevEnabled);
104 void RenderFrame();
109 void RenderControls();
114 static void RenderLogs();
115
122 [[nodiscard]] SharedPtr<ProjectFile> Proj() const { return m_Proj; }
130 m_Proj = proj;
131 m_Player->SetProj(proj);
132 }
133
137 void ResetProjectState();
144 void SetSettings(AppSettings& settings) { m_Settings = settings; }
151 [[nodiscard]] AnimationPlayer* Player() const { return m_Player.get(); }
158 void SetPlayer(AnimationPlayer* player) { m_Player.reset(player); }
159
166 [[nodiscard]] uint64_t SelectedFrameI() const {
167 return m_SelectedFrame;
168 }
169
176 if (!m_Proj)
177 return nullptr;
178 return m_Proj->AnimFrames()->Get(m_SelectedFrame);
179 }
180
187 [[nodiscard]] const UniquePtr<FrameRenderer>& GetFrameRenderer() const {
188 return m_FrameRenderer;
189 }
190
191 private:
193 uint64_t m_SelectedFrame{0};
202 };
203} // namespace FuncDoodle
Runtime configuration and user-adjustable application settings.
Centralized asset management system for images, audio, and fonts.
Core editor logic handling canvas interaction, painting tools, and stroke management.
Responsible for rendering individual animation frames and canvas UI.
Keyboard input system including key masks, shortcuts, and keybind registry.
Defines AnimationPlayer, responsible for animation playback control.
Defines the ProjectFile class, which manages animation project data.
Convenience type aliases for standard smart pointers.
std::unique_ptr< T > UniquePtr
Alias for an exclusively owned smart pointer.
Definition Ptr.h:28
std::shared_ptr< T > SharedPtr
Alias for a reference-counted shared smart pointer.
Definition Ptr.h:31
Manages tools, tool state, and tool-related UI in FuncDoodle.
KeybindsRegistry & m_Keybinds
Definition Manager.h:199
void SetPlayer(AnimationPlayer *player)
Replaces the owned animation player.
Definition Manager.h:158
uint64_t SelectedFrameI() const
Returns the selected frame index.
Definition Manager.h:166
void RenderControls()
Renders playback and frame-management controls.
Definition Manager.cc:324
void RegisterKeybinds()
Registers animation-specific keybinds.
Definition Manager.cc:78
void RenderTimeline(bool prevEnabled)
Renders the timeline UI.
Definition Manager.cc:117
SharedPtr< ProjectFile > Proj() const
Returns the currently managed project.
Definition Manager.h:122
UniquePtr< ToolManager > m_ToolManager
Definition Manager.h:196
uint64_t m_SelectedFrame
Definition Manager.h:193
const UniquePtr< FrameRenderer > & GetFrameRenderer() const
Returns the primary frame renderer.
Definition Manager.h:187
UniquePtr< FrameRenderer > m_FrameRenderer
Definition Manager.h:194
SharedPtr< ProjectFile > m_Proj
Definition Manager.h:192
UniquePtr< AnimationPlayer > m_Player
Definition Manager.h:197
SharedPtr< EditorController > m_EditorController
Definition Manager.h:198
void RenderFrame()
Renders the frame UI.
Definition Manager.cc:96
AssetLoader * m_AssetLoader
Definition Manager.h:200
UniquePtr< FrameRenderer > m_TimelineFrameRenderer
Definition Manager.h:195
AnimationPlayer * Player() const
Returns the animation player.
Definition Manager.h:151
AnimationManager(SharedPtr< ProjectFile > proj, AssetLoader *assetLoader, SharedPtr< EditorController > editorController, KeybindsRegistry &keybinds, AppSettings &settings)
Creates an animation manager for a project and its UI state.
Definition Manager.cc:32
Frame * SelectedFrame()
Returns the selected frame object.
Definition Manager.h:175
void ResetProjectState()
Clears renderer/player state derived from the active project.
Definition Manager.cc:51
AppSettings & m_Settings
Definition Manager.h:201
void SetSettings(AppSettings &settings)
Rebinds the manager to a different settings object.
Definition Manager.h:144
void SetProj(SharedPtr< ProjectFile > proj)
Replaces the active project and updates the player to match.
Definition Manager.h:129
static void RenderLogs()
Renders animation-related log or debug output.
Definition Manager.cc:361
Responsible for playing a users' animation.
Definition Player.h:39
Convenient abstraction that's responsible for loading assets at a given assetsPath.
Definition AssetLoader.h:37
Wraps an ImageArray with higher-level frame editing operations.
Definition Frame.h:248
Stores and persists all keybinds used in FuncDoodle (default + user-defined).
Definition Keybinds.h:262
The FuncDoodle C++ namespace.
Definition Common.h:12
Represents the application's current settings and loaded from imgui.ini.
Definition AppSettings.h:22