Chicane

Application

Header
Includes/Chicane/Runtime/Application.hpp
Namespace
Chicane::Application

Types

NameValueDescription
ControllerObservable
ControllerSubscription
SceneObservable
EventObservable<std::shared_ptr<Scene>>
SceneSubscription
EventSubscription<std::shared_ptr<Scene>>
ViewObservable
EventObservable<std::shared_ptr<Grid::View>>
ViewSubscription
EventSubscription<std::shared_ptr<Grid::View>>

Constructors

NameDescription
Application()
Application()
Application()

Functions

AccessReturnModifierNameDescription
public
static
getInstance()
public
operator=()
public
operator=()
public
void
run(
const  ApplicationCreateInfo& inCreateInfo
)
public
const
getTelemetry()
public
bool
hasController()
public
getController()
public
void
setController(
Controller* inController
)
public
public
std::shared_ptr<T>
inline
getScene()
public
void
inline
setScene(
Params... inParams
)
public
void
inline
setScene(
std::shared_ptr<Scene> inScene
)
public
public
std::shared_ptr<T>
inline
getView()
public
void
inline
setView(
Params... inParams
)
public
public
bool
const
hasWindow()
public
const
getWindow()
public
Vec<2std::uint32_t>
const
getScreenViewport()
public
const
getScreenViewportRect()
public
bool
const
hasRenderer()
public
const
getRenderer()
public
void
setRenderer(
WindowBackend inBackend
)
public
void
pushTrace(
const  SceneTraceRequest& inRequest
)
private
void
initRenderer(
const  Renderer::Settings& inSettings
)
private
void
shutdownRenderer()
private
void
initWindow(
const  WindowSettings& inSettings
)
private
void
initModules(
const  std::vector<FileSystem::Path>& inModules
)
private
void
shutdownModules()
private
void
initBox()
private
void
initKerb()
private
void
initDrift()
private
void
shutdownDrift()
private
void
initScreech()
private
void
initSmoke()
private
void
shutdownSmoke()
private
void
render()
private
void
uploadPreviewTextures()
private
void
snapshotRendererState()
private
bool
const
hasSceneFeature()
private
Vec<2std::uint32_t>
const
getRendererResolution()
private
void
initScene()
private
void
shutdownScene()
private
void
tickScene()
private
void
buildSceneCommands(
std::shared_ptr<Scene> inScene
)
private
void
renderScene()
private
void
initUI()
private
void
shutdownUI()
private
void
tickUI()
private
void
snapshotScreenViewport(
const  std::shared_ptr<Grid::View>& inView
)
private
void
buildUICommands(
std::shared_ptr<Grid::View> inView
)
private
void
renderUI()

Members

AccessTypeModifierNameDescription
private
m_telemetry
private
std::atomic<bool>
m_bIsRunning
private
m_controller
private
m_controllerObservable
private
std::shared_ptr<Scene>
m_scene
private
std::thread
m_sceneThread
private
m_sceneCommandBuffers
private
std::atomic<std::size_t>
m_sceneWriteIndex
private
std::atomic<std::size_t>
m_sceneReadIndex
private
std::atomic<std::size_t>
m_sceneBusyIndex
private
m_sceneObservable
private
std::shared_ptr<Grid::View>
m_view
private
std::thread
m_viewThread
private
m_viewCommandBuffers
private
std::vector<Grid::Component*>
m_viewDrawables
private
std::atomic<std::size_t>
m_viewWriteIndex
private
std::atomic<std::size_t>
m_viewReadIndex
private
std::atomic<std::uint32_t>
m_screenViewportX
private
std::atomic<std::uint32_t>
m_screenViewportY
private
std::atomic<std::uint32_t>
m_screenViewportWidth
private
std::atomic<std::uint32_t>
m_screenViewportHeight
private
m_viewObservable
private
std::unique_ptr<Window>
m_window
private
std::unique_ptr<Renderer::Instance>
m_renderer
private
std::atomic<std::uint8_t>
m_featureFlags
private
std::atomic<std::uint32_t>
m_rendererWidth
private
std::atomic<std::uint32_t>
m_rendererHeight