Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::ProjectManager Class Referencefinal

#include <ProjectManager.h>

+ Inheritance diagram for Divide::ProjectManager:

Public Member Functions

 ProjectManager (Kernel &parentKernel)
 
 ~ProjectManager () override
 
void idle ()
 
void destroy ()
 
ErrorCode loadProject (const ProjectID &targetProject, bool deferToStartOfFrame)
 
size_t addSelectionCallback (const DELEGATE< void, U8, const vector< SceneGraphNode * > & > &selectionCallback)
 
bool removeSelectionCallback (const size_t idx)
 
bool resetSelection (PlayerIndex idx, const bool resetIfLocked)
 
void setSelected (PlayerIndex idx, const vector< SceneGraphNode * > &SGNs, bool recursive)
 
void onNodeDestroy (Scene *parentScene, SceneGraphNode *node)
 
void cullSceneGraph (const NodeCullParams &cullParams, const U16 cullFlags, VisibleNodeList<> &nodesOut)
 cull the SceneGraph against the current view frustum.
 
void findNode (const vec3< F32 > &cameraEye, const I64 nodeGUID, VisibleNodeList<> &nodesOut)
 Searches the scenegraph for the specified nodeGUID and, if found, adds it to nodesOut.
 
void initDefaultCullValues (RenderStage stage, NodeCullParams &cullParamsInOut) noexcept
 init default culling values like max cull distance and other scene related states
 
void getSortedReflectiveNodes (const Camera *camera, RenderStage stage, bool inView, VisibleNodeList<> &nodesOut) const
 get the full list of reflective nodes
 
void getSortedRefractiveNodes (const Camera *camera, RenderStage stage, bool inView, VisibleNodeList<> &nodesOut) const
 get the full list of refractive nodes
 
const VisibleNodeListgetRenderedNodeList () const noexcept
 
void onChangeFocus (bool hasFocus)
 
bool loadComplete () const noexcept
 Check if the scene was loaded properly.
 
void updateSceneState (U64 deltaGameTimeUS, U64 deltaAppTimeUS)
 Update animations, network data, sounds, triggers etc.
 
void onResolutionChange (const SizeChangeParams &params)
 
U8 playerPass () const noexcept
 
bool saveActiveScene (bool toCache, bool deferred, const DELEGATE< void, std::string_view > &msgCallback={}, const DELEGATE< void, bool > &finishCallback={})
 
AI::Navigation::DivideRecastrecast () const noexcept
 
SceneEnvironmentProbePoolgetEnvProbes () const noexcept
 
U8 activePlayerCount () const noexcept
 
bool onKeyDown (const Input::KeyEvent &key) override
 Key pressed: return true if input was consumed.
 
bool onKeyUp (const Input::KeyEvent &key) override
 Key released: return true if input was consumed.
 
bool joystickAxisMoved (const Input::JoystickEvent &arg) override
 Joystick axis change: return true if input was consumed.
 
bool joystickPovMoved (const Input::JoystickEvent &arg) override
 Joystick direction change: return true if input was consumed.
 
bool joystickButtonPressed (const Input::JoystickEvent &arg) override
 Joystick button pressed: return true if input was consumed.
 
bool joystickButtonReleased (const Input::JoystickEvent &arg) override
 Joystick button released: return true if input was consumed.
 
bool joystickBallMoved (const Input::JoystickEvent &arg) override
 
bool joystickAddRemove (const Input::JoystickEvent &arg) override
 
bool joystickRemap (const Input::JoystickEvent &arg) override
 
bool mouseMoved (const Input::MouseMoveEvent &arg) override
 Mouse moved: return true if input was consumed.
 
bool mouseButtonPressed (const Input::MouseButtonEvent &arg) override
 Mouse button pressed: return true if input was consumed.
 
bool mouseButtonReleased (const Input::MouseButtonEvent &arg) override
 Mouse button released: return true if input was consumed.
 
bool onTextEvent (const Input::TextEvent &arg) override
 
void mouseMovedExternally (const Input::MouseMoveEvent &arg)
 
 PROPERTY_RW (bool, wantsMouse, false)
 
 PROPERTY_R_IW (ProjectIDs, availableProjects)
 
 PROPERTY_R (Project_uptr, activeProject, nullptr)
 
const PlatformContextplatformContext () const noexcept
 
PlatformContextplatformContext () noexcept
 
- Public Member Functions inherited from Divide::FrameListener
 FrameListener (const Str< 64 > &name, FrameListenerManager &parent, U32 callOrder)
 Either give it a name.
 
virtual ~FrameListener () override
 
bool operator< (FrameListener &that) const noexcept
 
- Public Member Functions inherited from Divide::GUIDWrapper
 GUIDWrapper () noexcept
 
 GUIDWrapper (const GUIDWrapper &old) noexcept
 
 GUIDWrapper (GUIDWrapper &&old) noexcept
 
virtual ~GUIDWrapper ()=default
 
FORCE_INLINE I64 getGUID () const noexcept
 
GUIDWrapperoperator= (const GUIDWrapper &old)=delete
 
GUIDWrapperoperator= (GUIDWrapper &&other)=delete
 
- Public Member Functions inherited from Divide::Input::InputAggregatorInterface
virtual ~InputAggregatorInterface ()=default
 
virtual bool onKeyDown (const KeyEvent &arg)=0
 Keyboard: return true if input was consumed.
 
virtual bool onKeyUp (const KeyEvent &arg)=0
 
virtual bool mouseMoved (const MouseMoveEvent &arg)=0
 Mouse: return true if input was consumed.
 
virtual bool mouseButtonPressed (const MouseButtonEvent &arg)=0
 
virtual bool mouseButtonReleased (const MouseButtonEvent &arg)=0
 
virtual bool joystickButtonPressed (const JoystickEvent &arg)=0
 Joystick or Gamepad: return true if input was consumed.
 
virtual bool joystickButtonReleased (const JoystickEvent &arg)=0
 
virtual bool joystickAxisMoved (const JoystickEvent &arg)=0
 
virtual bool joystickPovMoved (const JoystickEvent &arg)=0
 
virtual bool joystickBallMoved (const JoystickEvent &arg)=0
 
virtual bool joystickAddRemove (const JoystickEvent &arg)=0
 
virtual bool joystickRemap (const JoystickEvent &arg)=0
 
virtual bool onTextEvent (const TextEvent &arg)=0
 
- Public Member Functions inherited from Divide::KernelComponent
 KernelComponent (Kernel &parent) noexcept
 
virtual ~KernelComponent ()=default
 
Kernelparent () noexcept
 
const Kernelparent () const noexcept
 
- Public Member Functions inherited from Divide::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=default
 
NonCopyableoperator= (NonCopyable &&)=default
 

Static Public Member Functions

static bool OnStartup (PlatformContext &context)
 
static bool OnShutdown (PlatformContext &context)
 
- Static Public Member Functions inherited from Divide::GUIDWrapper
static I64 generateGUID () noexcept
 

Protected Member Functions

bool networkUpdate (U64 frameCount)
 
ProjectIDsinit ()
 
void initPostLoadState () noexcept
 
void addPlayerInternal (Scene *parentScene, SceneGraphNode *playerNode)
 
void removePlayerInternal (Scene *parentScene, SceneGraphNode *playerNode)
 
void addPlayer (Scene *parentScene, SceneGraphNode *playerNode, bool queue)
 
void removePlayer (Scene *parentScene, SceneGraphNode *playerNode, bool queue)
 
void getNodesInScreenRect (const Rect< I32 > &screenRect, const Camera &camera, vector< SceneGraphNode * > &nodesOut) const
 
void waitForSaveTask ()
 
bool frameStarted (const FrameEvent &evt) override
 
bool frameEnded (const FrameEvent &evt) override
 frameEnded is called after the buffers have been swapped
 
void drawCustomUI (const Rect< I32 > &targetViewport, GFX::CommandBuffer &bufferInOut, GFX::MemoryBarrierCommand &memCmdInOut)
 
void postRender (GFX::CommandBuffer &bufferInOut, GFX::MemoryBarrierCommand &memCmdInOut)
 
void debugDraw (GFX::CommandBuffer &bufferInOut, GFX::MemoryBarrierCommand &memCmdInOut)
 
void prepareLightData (RenderStage stage, const CameraSnapshot &cameraSnapshot, GFX::MemoryBarrierCommand &memCmdInOut)
 
CameraplayerCamera (bool skipOverride=false) const noexcept
 
CameraplayerCamera (PlayerIndex idx, bool skipOverride=false) const noexcept
 
void editorPreviewNode (const I64 editorPreviewNode) noexcept
 
void currentPlayerPass (PlayerIndex idx)
 
BoundingSphere moveCameraToNode (Camera *camera, const SceneGraphNode *targetNode) const
 
bool saveNode (const SceneGraphNode *targetNode) const
 
bool loadNode (SceneGraphNode *targetNode) const
 
std::pair< Handle< Texture >, SamplerDescriptorgetSkyTexture () const
 
ErrorCode loadProjectInternal ()
 
- Protected Member Functions inherited from Divide::FrameListener
void setCallOrder (const U32 order) noexcept
 
virtual bool frameStarted (const FrameEvent &evt)
 
virtual bool framePreRender (const FrameEvent &evt)
 framePreRenderStarted is called when we need to start processing the visual aspect of a scene
 
virtual bool frameSceneRenderStarted (const FrameEvent &evt)
 frameSceneRenderStarted is called right before rendering the scene for the current player starts
 
virtual bool frameSceneRenderEnded (const FrameEvent &evt)
 frameSceneRenderEnded is called immediately after scene rendering for the current player has ended but before any blitting operations
 
virtual bool frameRenderingQueued (const FrameEvent &evt)
 
virtual bool framePostRender (const FrameEvent &evt)
 
virtual bool frameEnded (const FrameEvent &evt)
 frameEnded is called after the buffers have been swapped
 
 PROPERTY_R_IW (bool, enabled, false)
 
 PROPERTY_RW (Str< 64 >, name)
 
- Protected Member Functions inherited from Divide::NonCopyable
 NonCopyable ()=default
 
 ~NonCopyable ()=default
 

Private Attributes

bool _init = false
 
bool _processInput = false
 
Task_saveTask = nullptr
 
PlayerIndex _currentPlayerPass = 0u
 
U64 _elapsedAppTime = 0ULL
 
U32 _elapsedAppTimeMS = 0u
 
U64 _elapsedGameTime = 0ULL
 
U32 _elapsedGameTimeMS = 0u
 
U64 _saveTimer = 0ULL
 
std::array< Time::ProfileTimer *, to_base(RenderStage::COUNT)> _sceneGraphCullTimers
 
bool _playerQueueDirty = false
 
eastl::queue< std::pair< Scene *, SceneGraphNode * > > _playerAddQueue
 
eastl::queue< std::pair< Scene *, SceneGraphNode * > > _playerRemoveQueue
 
AI::Navigation::DivideRecast_uptr _recast
 
SwitchProjectTarget _projectSwitchTarget {}
 
vector< std::pair< size_t, DELEGATE< void, U8, const vector< SceneGraphNode * > & > > > _selectionChangeCallbacks
 
VisibleNodeList _recentlyRenderedNodes
 

Friends

class Attorney::ProjectScenePool
 
class Attorney::ProjectManagerProject
 
class Attorney::ProjectManagerScene
 
class Attorney::ProjectManagerEditor
 
class Attorney::ProjectManagerKernel
 
class Attorney::ProjectManagerRenderPass
 
class Attorney::ProjectManagerSSRAccessor
 
class Attorney::ProjectManagerCameraAccessor
 

Additional Inherited Members

- Protected Attributes inherited from Divide::GUIDWrapper
const I64 _guid
 
- Protected Attributes inherited from Divide::KernelComponent
Kernel_parent
 

Detailed Description

Definition at line 189 of file ProjectManager.h.

Constructor & Destructor Documentation

◆ ProjectManager()

Divide::ProjectManager::ProjectManager ( Kernel parentKernel)
explicit

Definition at line 312 of file ProjectManager.cpp.

◆ ~ProjectManager()

Divide::ProjectManager::~ProjectManager ( )
override

Definition at line 319 of file ProjectManager.cpp.

Member Function Documentation

◆ activePlayerCount()

U8 Divide::ProjectManager::activePlayerCount ( ) const
noexcept

Definition at line 1187 of file ProjectManager.cpp.

◆ addPlayer()

void Divide::ProjectManager::addPlayer ( Scene parentScene,
SceneGraphNode playerNode,
bool  queue 
)
protected

Definition at line 505 of file ProjectManager.cpp.

◆ addPlayerInternal()

void Divide::ProjectManager::addPlayerInternal ( Scene parentScene,
SceneGraphNode playerNode 
)
protected

Definition at line 518 of file ProjectManager.cpp.

◆ addSelectionCallback()

size_t Divide::ProjectManager::addSelectionCallback ( const DELEGATE< void, U8, const vector< SceneGraphNode * > & > &  selectionCallback)
inline

Definition at line 218 of file ProjectManager.h.

◆ cullSceneGraph()

void Divide::ProjectManager::cullSceneGraph ( const NodeCullParams cullParams,
const U16  cullFlags,
VisibleNodeList<> &  nodesOut 
)

cull the SceneGraph against the current view frustum.

Definition at line 1065 of file ProjectManager.cpp.

◆ currentPlayerPass()

void Divide::ProjectManager::currentPlayerPass ( PlayerIndex  idx)
protected

Definition at line 928 of file ProjectManager.cpp.

◆ debugDraw()

void Divide::ProjectManager::debugDraw ( GFX::CommandBuffer bufferInOut,
GFX::MemoryBarrierCommand memCmdInOut 
)
protected

Definition at line 892 of file ProjectManager.cpp.

◆ destroy()

void Divide::ProjectManager::destroy ( )

Definition at line 399 of file ProjectManager.cpp.

◆ drawCustomUI()

void Divide::ProjectManager::drawCustomUI ( const Rect< I32 > &  targetViewport,
GFX::CommandBuffer bufferInOut,
GFX::MemoryBarrierCommand memCmdInOut 
)
protected

Definition at line 871 of file ProjectManager.cpp.

◆ editorPreviewNode()

void Divide::ProjectManager::editorPreviewNode ( const I64  editorPreviewNode)
protectednoexcept

Definition at line 937 of file ProjectManager.cpp.

◆ findNode()

void Divide::ProjectManager::findNode ( const vec3< F32 > &  cameraEye,
const I64  nodeGUID,
VisibleNodeList<> &  nodesOut 
)

Searches the scenegraph for the specified nodeGUID and, if found, adds it to nodesOut.

Definition at line 1080 of file ProjectManager.cpp.

◆ frameEnded()

bool Divide::ProjectManager::frameEnded ( const FrameEvent evt)
overrideprotectedvirtual

frameEnded is called after the buffers have been swapped

Reimplemented from Divide::FrameListener.

Definition at line 784 of file ProjectManager.cpp.

◆ frameStarted()

bool Divide::ProjectManager::frameStarted ( const FrameEvent evt)
overrideprotectedvirtual

Adapter patern instead of pure interface for the same reason as the Ogre boys pointed out: Implement what you need without filling classes with dummy functions frameStarted is calld at the beggining of a new frame before processing the logic aspect of a scene

Reimplemented from Divide::FrameListener.

Definition at line 764 of file ProjectManager.cpp.

◆ getEnvProbes()

SceneEnvironmentProbePool * Divide::ProjectManager::getEnvProbes ( ) const
noexcept

Definition at line 1182 of file ProjectManager.cpp.

◆ getNodesInScreenRect()

void Divide::ProjectManager::getNodesInScreenRect ( const Rect< I32 > &  screenRect,
const Camera camera,
vector< SceneGraphNode * > &  nodesOut 
) const
protected

Definition at line 594 of file ProjectManager.cpp.

◆ getRenderedNodeList()

const VisibleNodeList & Divide::ProjectManager::getRenderedNodeList ( ) const
noexcept

Definition at line 1044 of file ProjectManager.cpp.

◆ getSkyTexture()

std::pair< Handle< Texture >, SamplerDescriptor > Divide::ProjectManager::getSkyTexture ( ) const
protected

Definition at line 1192 of file ProjectManager.cpp.

◆ getSortedReflectiveNodes()

void Divide::ProjectManager::getSortedReflectiveNodes ( const Camera camera,
RenderStage  stage,
bool  inView,
VisibleNodeList<> &  nodesOut 
) const

get the full list of reflective nodes

Definition at line 983 of file ProjectManager.cpp.

◆ getSortedRefractiveNodes()

void Divide::ProjectManager::getSortedRefractiveNodes ( const Camera camera,
RenderStage  stage,
bool  inView,
VisibleNodeList<> &  nodesOut 
) const

get the full list of refractive nodes

Definition at line 1014 of file ProjectManager.cpp.

◆ idle()

void Divide::ProjectManager::idle ( )

Definition at line 335 of file ProjectManager.cpp.

◆ init()

ProjectIDs & Divide::ProjectManager::init ( )
protected

Definition at line 359 of file ProjectManager.cpp.

◆ initDefaultCullValues()

void Divide::ProjectManager::initDefaultCullValues ( RenderStage  stage,
NodeCullParams cullParamsInOut 
)
noexcept

init default culling values like max cull distance and other scene related states

Definition at line 1049 of file ProjectManager.cpp.

◆ initPostLoadState()

void Divide::ProjectManager::initPostLoadState ( )
protectednoexcept

Definition at line 470 of file ProjectManager.cpp.

◆ joystickAddRemove()

bool Divide::ProjectManager::joystickAddRemove ( const Input::JoystickEvent arg)
overridevirtual

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1307 of file ProjectManager.cpp.

◆ joystickAxisMoved()

bool Divide::ProjectManager::joystickAxisMoved ( const Input::JoystickEvent arg)
overridevirtual

Joystick axis change: return true if input was consumed.

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1257 of file ProjectManager.cpp.

◆ joystickBallMoved()

bool Divide::ProjectManager::joystickBallMoved ( const Input::JoystickEvent arg)
overridevirtual

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1297 of file ProjectManager.cpp.

◆ joystickButtonPressed()

bool Divide::ProjectManager::joystickButtonPressed ( const Input::JoystickEvent arg)
overridevirtual

Joystick button pressed: return true if input was consumed.

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1277 of file ProjectManager.cpp.

◆ joystickButtonReleased()

bool Divide::ProjectManager::joystickButtonReleased ( const Input::JoystickEvent arg)
overridevirtual

Joystick button released: return true if input was consumed.

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1287 of file ProjectManager.cpp.

◆ joystickPovMoved()

bool Divide::ProjectManager::joystickPovMoved ( const Input::JoystickEvent arg)
overridevirtual

Joystick direction change: return true if input was consumed.

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1267 of file ProjectManager.cpp.

◆ joystickRemap()

bool Divide::ProjectManager::joystickRemap ( const Input::JoystickEvent arg)
overridevirtual

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1317 of file ProjectManager.cpp.

◆ loadComplete()

bool Divide::ProjectManager::loadComplete ( ) const
noexcept

Check if the scene was loaded properly.

Definition at line 325 of file ProjectManager.cpp.

◆ loadNode()

bool Divide::ProjectManager::loadNode ( SceneGraphNode targetNode) const
protected

Definition at line 977 of file ProjectManager.cpp.

◆ loadProject()

ErrorCode Divide::ProjectManager::loadProject ( const ProjectID targetProject,
bool  deferToStartOfFrame 
)

Definition at line 411 of file ProjectManager.cpp.

◆ loadProjectInternal()

ErrorCode Divide::ProjectManager::loadProjectInternal ( )
protected

Definition at line 424 of file ProjectManager.cpp.

◆ mouseButtonPressed()

bool Divide::ProjectManager::mouseButtonPressed ( const Input::MouseButtonEvent arg)
overridevirtual

Mouse button pressed: return true if input was consumed.

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1237 of file ProjectManager.cpp.

◆ mouseButtonReleased()

bool Divide::ProjectManager::mouseButtonReleased ( const Input::MouseButtonEvent arg)
overridevirtual

Mouse button released: return true if input was consumed.

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1247 of file ProjectManager.cpp.

◆ mouseMoved()

bool Divide::ProjectManager::mouseMoved ( const Input::MouseMoveEvent arg)
overridevirtual

Mouse moved: return true if input was consumed.

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1226 of file ProjectManager.cpp.

◆ mouseMovedExternally()

void Divide::ProjectManager::mouseMovedExternally ( const Input::MouseMoveEvent arg)

Called if a mouse move event was captured by a different system (editor, gui, etc). Used to cancel scene specific mouse move tracking

Definition at line 1177 of file ProjectManager.cpp.

◆ moveCameraToNode()

BoundingSphere Divide::ProjectManager::moveCameraToNode ( Camera camera,
const SceneGraphNode targetNode 
) const
protected

Root node just means a teleport to (0,0,0)

Definition at line 942 of file ProjectManager.cpp.

◆ networkUpdate()

bool Divide::ProjectManager::networkUpdate ( U64  frameCount)
protected

Definition at line 1492 of file ProjectManager.cpp.

◆ onChangeFocus()

void Divide::ProjectManager::onChangeFocus ( bool  hasFocus)

Definition at line 1128 of file ProjectManager.cpp.

◆ onKeyDown()

bool Divide::ProjectManager::onKeyDown ( const Input::KeyEvent key)
overridevirtual

Key pressed: return true if input was consumed.

-----------------------—Input Management----------------------------------—///

Input

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1206 of file ProjectManager.cpp.

◆ onKeyUp()

bool Divide::ProjectManager::onKeyUp ( const Input::KeyEvent key)
overridevirtual

Key released: return true if input was consumed.

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1216 of file ProjectManager.cpp.

◆ onNodeDestroy()

void Divide::ProjectManager::onNodeDestroy ( Scene parentScene,
SceneGraphNode node 
)

Definition at line 1165 of file ProjectManager.cpp.

◆ onResolutionChange()

void Divide::ProjectManager::onResolutionChange ( const SizeChangeParams params)

Definition at line 486 of file ProjectManager.cpp.

◆ OnShutdown()

bool Divide::ProjectManager::OnShutdown ( PlatformContext context)
static

Definition at line 307 of file ProjectManager.cpp.

◆ OnStartup()

bool Divide::ProjectManager::OnStartup ( PlatformContext context)
static

Definition at line 302 of file ProjectManager.cpp.

◆ onTextEvent()

bool Divide::ProjectManager::onTextEvent ( const Input::TextEvent arg)
overridevirtual

Implements Divide::Input::InputAggregatorInterface.

Definition at line 1327 of file ProjectManager.cpp.

◆ platformContext() [1/2]

const PlatformContext & Divide::ProjectManager::platformContext ( ) const
noexcept

Definition at line 1342 of file ProjectManager.cpp.

◆ platformContext() [2/2]

PlatformContext & Divide::ProjectManager::platformContext ( )
noexcept

Definition at line 1337 of file ProjectManager.cpp.

◆ playerCamera() [1/2]

Camera * Divide::ProjectManager::playerCamera ( bool  skipOverride = false) const
protectednoexcept

Definition at line 923 of file ProjectManager.cpp.

◆ playerCamera() [2/2]

Camera * Divide::ProjectManager::playerCamera ( PlayerIndex  idx,
bool  skipOverride = false 
) const
protectednoexcept

Definition at line 903 of file ProjectManager.cpp.

◆ playerPass()

U8 Divide::ProjectManager::playerPass ( ) const
inlinenoexcept

Definition at line 260 of file ProjectManager.h.

◆ postRender()

void Divide::ProjectManager::postRender ( GFX::CommandBuffer bufferInOut,
GFX::MemoryBarrierCommand memCmdInOut 
)
protected

Definition at line 880 of file ProjectManager.cpp.

◆ prepareLightData()

void Divide::ProjectManager::prepareLightData ( RenderStage  stage,
const CameraSnapshot cameraSnapshot,
GFX::MemoryBarrierCommand memCmdInOut 
)
protected

Definition at line 1116 of file ProjectManager.cpp.

◆ PROPERTY_R()

Divide::ProjectManager::PROPERTY_R ( Project_uptr  ,
activeProject  ,
nullptr   
)

◆ PROPERTY_R_IW()

Divide::ProjectManager::PROPERTY_R_IW ( ProjectIDs  ,
availableProjects   
)

◆ PROPERTY_RW()

Divide::ProjectManager::PROPERTY_RW ( bool  ,
wantsMouse  ,
false   
)

◆ recast()

AI::Navigation::DivideRecast * Divide::ProjectManager::recast ( ) const
inlinenoexcept

Definition at line 267 of file ProjectManager.h.

◆ removePlayer()

void Divide::ProjectManager::removePlayer ( Scene parentScene,
SceneGraphNode playerNode,
bool  queue 
)
protected

Definition at line 560 of file ProjectManager.cpp.

◆ removePlayerInternal()

void Divide::ProjectManager::removePlayerInternal ( Scene parentScene,
SceneGraphNode playerNode 
)
protected

Definition at line 573 of file ProjectManager.cpp.

◆ removeSelectionCallback()

bool Divide::ProjectManager::removeSelectionCallback ( const size_t  idx)
inline

Definition at line 227 of file ProjectManager.h.

◆ resetSelection()

bool Divide::ProjectManager::resetSelection ( PlayerIndex  idx,
const bool  resetIfLocked 
)

Definition at line 1138 of file ProjectManager.cpp.

◆ saveActiveScene()

bool Divide::ProjectManager::saveActiveScene ( bool  toCache,
bool  deferred,
const DELEGATE< void, std::string_view > &  msgCallback = {},
const DELEGATE< void, bool > &  finishCallback = {} 
)

Definition at line 1455 of file ProjectManager.cpp.

◆ saveNode()

bool Divide::ProjectManager::saveNode ( const SceneGraphNode targetNode) const
protected

Definition at line 972 of file ProjectManager.cpp.

◆ setSelected()

void Divide::ProjectManager::setSelected ( PlayerIndex  idx,
const vector< SceneGraphNode * > &  SGNs,
bool  recursive 
)

Definition at line 1154 of file ProjectManager.cpp.

◆ updateSceneState()

void Divide::ProjectManager::updateSceneState ( U64  deltaGameTimeUS,
U64  deltaAppTimeUS 
)

Update animations, network data, sounds, triggers etc.

Definition at line 799 of file ProjectManager.cpp.

◆ waitForSaveTask()

void Divide::ProjectManager::waitForSaveTask ( )
protected

Definition at line 460 of file ProjectManager.cpp.

Friends And Related Function Documentation

◆ Attorney::ProjectManagerCameraAccessor

Definition at line 202 of file ProjectManager.h.

◆ Attorney::ProjectManagerEditor

friend class Attorney::ProjectManagerEditor
friend

Definition at line 198 of file ProjectManager.h.

◆ Attorney::ProjectManagerKernel

friend class Attorney::ProjectManagerKernel
friend

Definition at line 199 of file ProjectManager.h.

◆ Attorney::ProjectManagerProject

friend class Attorney::ProjectManagerProject
friend

Definition at line 195 of file ProjectManager.h.

◆ Attorney::ProjectManagerRenderPass

Definition at line 200 of file ProjectManager.h.

◆ Attorney::ProjectManagerScene

friend class Attorney::ProjectManagerScene
friend

Definition at line 197 of file ProjectManager.h.

◆ Attorney::ProjectManagerSSRAccessor

Definition at line 201 of file ProjectManager.h.

◆ Attorney::ProjectScenePool

friend class Attorney::ProjectScenePool
friend

Definition at line 194 of file ProjectManager.h.

Member Data Documentation

◆ _currentPlayerPass

PlayerIndex Divide::ProjectManager::_currentPlayerPass = 0u
private

Definition at line 360 of file ProjectManager.h.

◆ _elapsedAppTime

U64 Divide::ProjectManager::_elapsedAppTime = 0ULL
private

Definition at line 361 of file ProjectManager.h.

◆ _elapsedAppTimeMS

U32 Divide::ProjectManager::_elapsedAppTimeMS = 0u
private

Definition at line 362 of file ProjectManager.h.

◆ _elapsedGameTime

U64 Divide::ProjectManager::_elapsedGameTime = 0ULL
private

Definition at line 363 of file ProjectManager.h.

◆ _elapsedGameTimeMS

U32 Divide::ProjectManager::_elapsedGameTimeMS = 0u
private

Definition at line 364 of file ProjectManager.h.

◆ _init

bool Divide::ProjectManager::_init = false
private

Definition at line 356 of file ProjectManager.h.

◆ _playerAddQueue

eastl::queue<std::pair<Scene*, SceneGraphNode*> > Divide::ProjectManager::_playerAddQueue
private

Definition at line 370 of file ProjectManager.h.

◆ _playerQueueDirty

bool Divide::ProjectManager::_playerQueueDirty = false
private

Definition at line 369 of file ProjectManager.h.

◆ _playerRemoveQueue

eastl::queue<std::pair<Scene*, SceneGraphNode*> > Divide::ProjectManager::_playerRemoveQueue
private

Definition at line 371 of file ProjectManager.h.

◆ _processInput

bool Divide::ProjectManager::_processInput = false
private

Definition at line 357 of file ProjectManager.h.

◆ _projectSwitchTarget

SwitchProjectTarget Divide::ProjectManager::_projectSwitchTarget {}
private

Definition at line 374 of file ProjectManager.h.

◆ _recast

AI::Navigation::DivideRecast_uptr Divide::ProjectManager::_recast
private

Definition at line 372 of file ProjectManager.h.

◆ _recentlyRenderedNodes

VisibleNodeList Divide::ProjectManager::_recentlyRenderedNodes
private

Definition at line 377 of file ProjectManager.h.

◆ _saveTask

Task* Divide::ProjectManager::_saveTask = nullptr
private

Definition at line 359 of file ProjectManager.h.

◆ _saveTimer

U64 Divide::ProjectManager::_saveTimer = 0ULL
private

Definition at line 365 of file ProjectManager.h.

◆ _sceneGraphCullTimers

std::array<Time::ProfileTimer*, to_base( RenderStage::COUNT )> Divide::ProjectManager::_sceneGraphCullTimers
private

Definition at line 367 of file ProjectManager.h.

◆ _selectionChangeCallbacks

vector<std::pair<size_t, DELEGATE<void, U8 , const vector<SceneGraphNode*>& > > > Divide::ProjectManager::_selectionChangeCallbacks
private

Definition at line 376 of file ProjectManager.h.


The documentation for this class was generated from the following files: