Photon Editor Library 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
ph::editor Namespace Reference

Namespaces

namespace  config
 
namespace  detail
 
namespace  ghi
 
namespace  imgui
 
namespace  render
 

Classes

class  AboutInformation
 
class  AbstractDesignerObject
 
class  ActiveDesignerSceneChangedEvent
 
class  Application
 
class  AppModule
 
class  AppModuleActionEvent
 
class  AppSettings
 
class  BasicMeshRenderPass
 
struct  BufferedFrameInfo
 
class  DesignerDataPacketInterface
 Data packet format for the editor scene. More...
 
class  DesignerObject
 
class  DesignerObjectAddedEvent
 Event for an object that is added. The object has been initialized when this event fires. More...
 
class  DesignerObjectRemovalEvent
 Event for an object that is going to be removed. The object has not been removed yet (and still being an initialized object) when this event fires. More...
 
class  DesignerRendererBinding
 
class  DesignerResourceScene
 
class  DesignerScene
 
class  DesignerSceneAddedEvent
 Event for a scene that is added. More...
 
class  DesignerSceneEvent
 
class  DesignerSceneMetaInfo
 
class  DesignerSceneReader
 Loading utility for designer scene. Loads .pds (Photon Designer Scene) file. More...
 
class  DesignerSceneRemovalEvent
 Event for a scene that is going to be removed. More...
 
class  DesignerSceneWriter
 Saving utility for designer scene. Writes .pds (Photon Designer Scene) file. More...
 
class  DimensionHints
 Size reference of various common UI elements. Unless otherwise noted, unit is in pixel (raster coordinates). Origin is on the lower-left corner. More...
 
class  DisplayClosedEvent
 
class  DisplayFocusChangedEvent
 
class  DisplayFramebufferResizedEvent
 
class  EditContext
 
class  EditContextUpdatedEvent
 
class  Editor
 
class  EditorDebugRenderModule
 
class  EditorEventQueue
 
class  EditorSettings
 
class  EditorStats
 
class  Event
 Base of all event types. Derived classes should strive to keep the size of the object small, as event objects are often passed by value for thread safety and ease of lifetime management, or being captured by functors. The type should also remain trivially-copyable. More...
 
class  FileSystemDirectoryEntry
 Information for a filesystem directory. More...
 
class  FileSystemExplorer
 
class  FlatDesignerObject
 
class  GeneralImposter
 
class  GHIThread
 
class  GHIThreadCaller
 Thin wrapper for GHI thread interactions from another thread. Mainly to hide unrelated GHI interface except for commonly used, cross-thread operations. More...
 
class  GHIThreadUpdateContext
 
class  GlfwDisplay
 
class  GlfwInput
 
class  GlfwPlatform
 
class  HelpMenu
 
class  HierarchicalDesignerObject
 
class  IDGenerator
 
class  ImguiEditorAssetBrowser
 
class  ImguiEditorDebugPanel
 
class  ImguiEditorImageViewer
 
class  ImguiEditorLog
 
class  ImguiEditorObjectTypeMenu
 
class  ImguiEditorOfflineTaskManager
 
class  ImguiEditorPanel
 
class  ImguiEditorPropertyPanel
 
class  ImguiEditorSceneCreator
 
class  ImguiEditorSceneManager
 
class  ImguiEditorSceneObjectBrowser
 
class  ImguiEditorSettings
 
class  ImguiEditorTheme
 
class  ImguiEditorToolState
 
class  ImguiEditorUI
 
class  ImguiEditorUIProxy
 
class  ImguiFileSystemDialog
 
struct  ImguiFileSystemDialogParameters
 
class  ImguiFontLibrary
 
class  ImguiImageLibrary
 
class  ImguiRenderModule
 
class  ImguiSampleInspector
 
class  ImposterObject
 
class  KeyEvent
 
class  KeyPressedEvent
 
class  KeyReleasedEvent
 
class  MainThreadRenderUpdateContext
 
class  MainThreadUpdateContext
 
class  ModuleAttachmentInfo
 
class  ModuleException
 
class  NodeObject
 
class  ObjectTransform
 
class  OfflineRenderAgent
 
class  Platform
 Platform abstraction. An abstraction layer for the underlying hardware the application is running on. For example, input and render operations are handled here. More...
 
class  PlatformDisplay
 Platform display abstraction. More...
 
class  PlatformException
 
class  PlatformInput
 Platform input abstraction. More...
 
class  ProcedureModule
 
class  Program
 
class  RenderAgent
 
class  RenderConfig
 
class  RenderModule
 
class  RenderThread
 
class  RenderThreadCaller
 Thin wrapper for render thread interactions from another thread. Mainly to hide unrelated render thread interface except for commonly used, cross-thread operations. More...
 
class  RenderThreadUpdateContext
 
class  SceneFramebufferResizedEvent
 
class  SpecializedImposterBinder
 
class  TClassEventDispatcher
 
class  TConcurrentHandleDispatcher
 
class  TConcurrentQueryManager
 
class  TEditorEvent
 
class  TestProcedureModule
 
class  TEventDispatcher
 
class  TextualNoteObject
 
class  TFrameWorkerThread
 
class  TFrameWorkerThread< NUM_BUFFERS, R(Args...)>
 
class  THandleDispatcher
 Sequential handle dispatcher meant for single-threaded use. More...
 
class  Threads
 
class  TItemPool
 A general item pool. More...
 
class  TItemPoolInterface
 
class  TQuery
 
class  TQueryPerformer
 
class  TStrongHandle
 Handle with strong reference semantics. Default constructor creates empty handle. More...
 
class  TTrivialItemPool
 Item pool for simple types. This item pool is designed to minimize execution time and memory footprint. As a result, some operations are not possible compare to TItemPool, e.g., iterating over created items, clear, etc. User is expected to keep track of the handles and use them to iterate the container the way they prefer. When using manual handle management APIs, lost handles cannot be retrieved and those storage slots are effectively leaked (pool dtor will still correctly free the memory though). More...
 
class  TUnbufferedFrameWorkerThread
 
class  TUnbufferedFrameWorkerThread< R(Args...)>
 
class  TWeakHandle
 Handle with weak reference semantics. Default constructor creates empty handle. More...
 
class  UIProperty
 
class  UIPropertyGroup
 
class  UIPropertyLayout
 
struct  UnbufferedFrameInfo
 
class  ViewportCamera
 

Concepts

concept  CWeakHandle
 
concept  CHandleDispatcher
 

Typedefs

template<typename EventType >
using TEventListener = TFunction<void(const EventType& e)>
 

Enumerations

enum class  EEditContextEvent : uint8 { None = 0 , ActiveSceneChanged }
 
enum class  EObjectState : uint32f {
  HasInitialized = math::flag_bit<uint32f, 0>() , HasRenderInitialized = math::flag_bit<uint32f, 1>() , HasRenderUninitialized = math::flag_bit<uint32f, 2>() , HasUninitialized = math::flag_bit<uint32f, 3>() ,
  Root = math::flag_bit<uint32f, 4>() , Ticking = math::flag_bit<uint32f, 5>() , RenderTicking = math::flag_bit<uint32f, 6>() , Selected = math::flag_bit<uint32f, 7>() ,
  Hidden = math::flag_bit<uint32f, 8>()
}
 
enum class  EKeyCode : uint8 {
  Unknown = 0 , F1 = 1 , F2 = 2 , F3 = 3 ,
  F4 = 4 , F5 = 5 , F6 = 6 , F7 = 7 ,
  F8 = 8 , F9 = 9 , F10 = 10 , F11 = 11 ,
  F12 = 12 , A = 20 , B = 21 , C = 22 ,
  D = 23 , E = 24 , F = 25 , G = 26 ,
  H = 27 , I = 28 , J = 29 , K = 30 ,
  L = 31 , M = 32 , N = 33 , O = 34 ,
  P = 35 , Q = 36 , R = 37 , S = 38 ,
  T = 39 , U = 40 , V = 41 , W = 42 ,
  X = 43 , Y = 44 , Z = 45 , Space = 46 ,
  Apostrophe = 47 , Comma = 48 , Minus = 49 , Period = 50 ,
  Slash = 51 , Semicolon = 52 , Equal = 53 , LeftBracket = 54 ,
  Backslash = 55 , RightBracket = 56 , GraveAccent = 57 , Escape = 60 ,
  Enter = 61 , Tab = 62 , Backspace = 63 , Insert = 64 ,
  Delete = 65 , Right = 66 , Left = 67 , Down = 68 ,
  Up = 69 , PageUp = 70 , PageDown = 71 , Home = 72 ,
  End = 73 , CapsLock = 74 , ScrollLock = 75 , NumLock = 76 ,
  PrintScreen = 77 , Pause = 78 , LeftShift = 79 , LeftControl = 80 ,
  LeftAlt = 81 , LeftSuper = 82 , RightShift = 83 , RightControl = 84 ,
  RightAlt = 85 , RightSuper = 86 , Menu = 87 , K0 = 90 ,
  K1 = 91 , K2 = 92 , K3 = 93 , K4 = 94 ,
  K5 = 95 , K6 = 96 , K7 = 97 , K8 = 98 ,
  K9 = 99 , KDecimal = 100 , KDivide = 101 , KMultiply = 102 ,
  KSubtract = 103 , KAdd = 104 , KEnter = 105 , KEqual = 106 ,
  D0 = 110 , D1 = 111 , D2 = 112 , D3 = 113 ,
  D4 = 114 , D5 = 115 , D6 = 116 , D7 = 117 ,
  D8 = 118 , D9 = 119 , Num
}
 
enum class  EMouseCode : uint8 {
  Unknown = 0 , Left = 1 , Right = 2 , Middle = 3 ,
  Num
}
 
enum class  EAppModuleAction
 
enum class  EEventType {
  Unknown = 0 , DisplayClose , DisplayResize , DisplayFocus ,
  DisplayLostFocus , DisplayMove , FramebufferResize , AppTick ,
  AppUpdate , AppRender , KeyDown , KeyUp ,
  KeyHit , MouseButtonDown , MouseButtonUp , MouseClick ,
  MouseScroll , MouseMove
}
 
enum class  EEventSource : uint32f {
  Unknown = 0 , App = math::flag_bit<uint32f, 0>() , Input = math::flag_bit<uint32f, 1>() , Keyboard = math::flag_bit<uint32f, 2>() ,
  Mouse = math::flag_bit<uint32f, 3>() , MouseButton = math::flag_bit<uint32f, 4>()
}
 
enum  EQuery { Once , AutoRetry }
 
enum  EImguiPanelCategory {
  Window = 0 , File , Edit , Tools ,
  Debug
}
 
enum  EImguiPanelDockingLot {
  None = 0 , Center , Bottom , UpperRight ,
  LowerRight
}
 
enum class  EImguiImage {
  Warning = 0 , Folder , File , Image ,
  SIZE
}
 Built-in images. More...
 

Functions

int application_entry_point (int argc, char *argv[])
 Main function for the editor application.
 
int imgui_demo_entry_point (int argc, char *argv[])
 Main function for the UI library demo. Useful for playing with all UI features.
 
std::span< const SdlClass *const > get_registered_editor_classes ()
 Get a list of registered SDL classes from the editor.
 
std::span< const SdlEnum *const > get_registered_editor_enums ()
 Get a list of registered SDL enums from the editor.
 
Path get_editor_data_directory ()
 
 PH_DEFINE_INTERNAL_LOG_GROUP (Application, App)
 
 PH_DEFINE_PROFILE_UNIT_NAME (MainLoop)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (Editor, App)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (EditorEventQueue, Editor)
 
 PH_DEFINE_LOG_GROUP (DesignerScene, Designer)
 
 PH_DECLARE_LOG_GROUP (DesignerScene)
 
 PH_DEFINE_RULE_OF_5_MEMBERS_NO_DTOR (FlatDesignerObject)
 
 PH_DEFINE_RULE_OF_5_MEMBERS_NO_DTOR (HierarchicalDesignerObject)
 
 PH_DEFINE_LOG_GROUP (Imposter, Designer)
 
 PH_DECLARE_LOG_GROUP (ImposterObject)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (DesignerSceneMetaInfo, Designer)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (DesignerSceneReader, Designer)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (DesignerSceneWriter, Designer)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (FileSystemExplorer, EditorCore)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (Program, EditorCore)
 
 PH_DEFINE_EXTERNAL_LOG_GROUP (TFrameWorkerThread, EditorCore)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (GlfwDisplay, EditorPlatform)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (GlfwInput, EditorPlatform)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (GlfwPlatform, EditorPlatform)
 
 PH_DEFINE_LOG_GROUP (DearImGui, Module)
 
void imgui_show_demo_window (bool *const isOpening)
 
void implot_show_demo_window (bool *const isOpening)
 
Path get_imgui_data_directory ()
 
 PH_DECLARE_LOG_GROUP (DearImGui)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (RenderThread, Render)
 
 PH_DEFINE_PROFILE_UNIT_NAME (RenderFrame)
 
 PH_DEFINE_INTERNAL_LOG_GROUP (GHIThread, RenderCore)
 

Typedef Documentation

◆ TEventListener

template<typename EventType >
using ph::editor::TEventListener = TFunction<void(const EventType& e)>

Enumeration Type Documentation

◆ EAppModuleAction

enum class ph::editor::EAppModuleAction
strong

◆ EEditContextEvent

enum class ph::editor::EEditContextEvent : uint8
strong
Enumerator
None 
ActiveSceneChanged 

◆ EEventSource

enum class ph::editor::EEventSource : uint32f
strong
Enumerator
Unknown 
App 
Input 
Keyboard 
Mouse 
MouseButton 

◆ EEventType

enum class ph::editor::EEventType
strong
Enumerator
Unknown 
DisplayClose 
DisplayResize 
DisplayFocus 
DisplayLostFocus 
DisplayMove 
FramebufferResize 
AppTick 
AppUpdate 
AppRender 
KeyDown 
KeyUp 
KeyHit 
MouseButtonDown 
MouseButtonUp 
MouseClick 
MouseScroll 
MouseMove 

◆ EImguiImage

enum class ph::editor::EImguiImage
strong

Built-in images.

Enumerator
Warning 
Folder 
File 
Image 
SIZE 

Number of enum entries. Must follow the last usable entry.

◆ EImguiPanelCategory

Enumerator
Window 
File 
Edit 
Tools 
Debug 

◆ EImguiPanelDockingLot

Enumerator
None 
Center 
Bottom 
UpperRight 
LowerRight 

◆ EKeyCode

enum class ph::editor::EKeyCode : uint8
strong
Enumerator
Unknown 
F1 
F2 
F3 
F4 
F5 
F6 
F7 
F8 
F9 
F10 
F11 
F12 
Space 
Apostrophe 
Comma 
Minus 
Period 
Slash 
Semicolon 
Equal 
LeftBracket 
Backslash 
RightBracket 
GraveAccent 
Escape 
Enter 
Tab 
Backspace 
Insert 
Delete 
Right 
Left 
Down 
Up 
PageUp 
PageDown 
Home 
End 
CapsLock 
ScrollLock 
NumLock 
PrintScreen 
Pause 
LeftShift 
LeftControl 
LeftAlt 
LeftSuper 
RightShift 
RightControl 
RightAlt 
RightSuper 
Menu 
K0 
K1 
K2 
K3 
K4 
K5 
K6 
K7 
K8 
K9 
KDecimal 
KDivide 
KMultiply 
KSubtract 
KAdd 
KEnter 
KEqual 
D0 
D1 
D2 
D3 
D4 
D5 
D6 
D7 
D8 
D9 
Num 

◆ EMouseCode

enum class ph::editor::EMouseCode : uint8
strong
Enumerator
Unknown 
Left 
Right 
Middle 
Num 

◆ EObjectState

enum class ph::editor::EObjectState : uint32f
strong
Enumerator
HasInitialized 
HasRenderInitialized 
HasRenderUninitialized 
HasUninitialized 
Root 
Ticking 
RenderTicking 
Selected 
Hidden 

◆ EQuery

Enumerator
Once 
AutoRetry 

Function Documentation

◆ application_entry_point()

int ph::editor::application_entry_point ( int argc,
char * argv[] )

Main function for the editor application.

◆ get_editor_data_directory()

Path ph::editor::get_editor_data_directory ( )

◆ get_imgui_data_directory()

Path ph::editor::get_imgui_data_directory ( )

◆ get_registered_editor_classes()

std::span< const SdlClass *const > ph::editor::get_registered_editor_classes ( )

Get a list of registered SDL classes from the editor.

◆ get_registered_editor_enums()

std::span< const SdlEnum *const > ph::editor::get_registered_editor_enums ( )

Get a list of registered SDL enums from the editor.

◆ imgui_demo_entry_point()

int ph::editor::imgui_demo_entry_point ( int argc,
char * argv[] )

Main function for the UI library demo. Useful for playing with all UI features.

◆ imgui_show_demo_window()

void ph::editor::imgui_show_demo_window ( bool *const isOpening)

◆ implot_show_demo_window()

void ph::editor::implot_show_demo_window ( bool *const isOpening)

◆ PH_DECLARE_LOG_GROUP() [1/3]

ph::editor::PH_DECLARE_LOG_GROUP ( DearImGui )

◆ PH_DECLARE_LOG_GROUP() [2/3]

ph::editor::PH_DECLARE_LOG_GROUP ( DesignerScene )

◆ PH_DECLARE_LOG_GROUP() [3/3]

ph::editor::PH_DECLARE_LOG_GROUP ( ImposterObject )

◆ PH_DEFINE_EXTERNAL_LOG_GROUP()

ph::editor::PH_DEFINE_EXTERNAL_LOG_GROUP ( TFrameWorkerThread ,
EditorCore  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [1/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( Application ,
App  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [2/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( DesignerSceneMetaInfo ,
Designer  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [3/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( DesignerSceneReader ,
Designer  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [4/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( DesignerSceneWriter ,
Designer  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [5/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( Editor ,
App  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [6/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( EditorEventQueue ,
Editor  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [7/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( FileSystemExplorer ,
EditorCore  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [8/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( GHIThread ,
RenderCore  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [9/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( GlfwDisplay ,
EditorPlatform  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [10/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( GlfwInput ,
EditorPlatform  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [11/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( GlfwPlatform ,
EditorPlatform  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [12/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( Program ,
EditorCore  )

◆ PH_DEFINE_INTERNAL_LOG_GROUP() [13/13]

ph::editor::PH_DEFINE_INTERNAL_LOG_GROUP ( RenderThread ,
Render  )

◆ PH_DEFINE_LOG_GROUP() [1/3]

ph::editor::PH_DEFINE_LOG_GROUP ( DearImGui ,
Module  )

◆ PH_DEFINE_LOG_GROUP() [2/3]

ph::editor::PH_DEFINE_LOG_GROUP ( DesignerScene ,
Designer  )

◆ PH_DEFINE_LOG_GROUP() [3/3]

ph::editor::PH_DEFINE_LOG_GROUP ( Imposter ,
Designer  )

◆ PH_DEFINE_PROFILE_UNIT_NAME() [1/2]

ph::editor::PH_DEFINE_PROFILE_UNIT_NAME ( MainLoop )

◆ PH_DEFINE_PROFILE_UNIT_NAME() [2/2]

ph::editor::PH_DEFINE_PROFILE_UNIT_NAME ( RenderFrame )

◆ PH_DEFINE_RULE_OF_5_MEMBERS_NO_DTOR() [1/2]

ph::editor::PH_DEFINE_RULE_OF_5_MEMBERS_NO_DTOR ( FlatDesignerObject )

◆ PH_DEFINE_RULE_OF_5_MEMBERS_NO_DTOR() [2/2]

ph::editor::PH_DEFINE_RULE_OF_5_MEMBERS_NO_DTOR ( HierarchicalDesignerObject )