Harlinn.Windows 0.1
|
#include <HWImGui.h>
Public Types | |
using | Base = DXApplication |
![]() | |
using | Base = Windows::Application |
![]() | |
using | Base = Concurrency::ActiveObject<std::shared_ptr<ApplicationMessage>> |
![]() | |
using | Base |
using | ESFT |
![]() | |
using | MessageType |
using | ConcurrentQueue |
using | Event |
Public Member Functions | |
Application (const std::shared_ptr< Windows::ApplicationOptions > &options, std::unique_ptr< DXContext > dxContext=std::make_unique< DXContext >()) | |
Application (std::unique_ptr< DXContext > dxContext=std::make_unique< DXContext >()) | |
virtual | ~Application () |
virtual int | Run (Windows::Form &mainForm, DXMessageLoop &messageLoop) override |
virtual HW_EXPORT int | Run (Form &mainForm) override |
virtual HW_EXPORT int | Run (Form &mainForm, MessageLoop &messageLoop) override |
![]() | |
HW_EXPORT | DXApplication (const std::shared_ptr< Windows::ApplicationOptions > &options, std::unique_ptr< DXContext > dxContext=std::make_unique< DXContext >()) |
HW_EXPORT | DXApplication (std::unique_ptr< DXContext > dxContext=std::make_unique< DXContext >()) |
virtual HW_EXPORT | ~DXApplication () |
DXContext * | Context () const |
![]() | |
HCC_EXPORT | Application (const std::shared_ptr< ApplicationOptions > &options) |
HCC_EXPORT | Application () |
HCC_EXPORT | ~Application () |
Application (const Application &other)=delete | |
Application (Application &&other)=delete | |
Application & | operator= (const Application &other)=delete |
Application & | operator= (Application &&other)=delete |
const std::shared_ptr< ApplicationOptions > & | Options () const |
bool | Start (const TimeSpan &timeout) override |
Starts the message processing thread. | |
bool | Stop (const TimeSpan &timeout) override |
Stops the message processing thread by posting the stop message, closing the message queue, and waiting for the thread to exit. | |
HCC_EXPORT void | PostThreadAttachedMessage () |
HCC_EXPORT void | PostThreadDetachedMessage () |
![]() | |
ActiveObject (const WideString &threadName) | |
Constructs a new instance of an ActiveObject object. | |
virtual | ~ActiveObject ()=default |
bool | Start () |
Starts the message processing thread. | |
bool | Stop () |
Stops the message processing thread by posting the stop message, closing the message queue, and waiting for the thread to exit. | |
![]() | |
ActiveObjectBase (const WideString &threadName) | |
Constructs a new active object. | |
const WideString & | ThreadName () const noexcept |
bool | Started () const noexcept |
Determine whether the active object has started the message processing thread. | |
bool | Stopped () const noexcept |
Determine whether the active object has exited the message processing thread. | |
size_t | MessagesPosted () const |
Retrieves the number of messages posted to the active object. | |
size_t | MessagesProcessed () const |
Retrieves the number of messages processed by the message processing loop. | |
virtual bool | PostMessage (const MessageType &message) |
Posts a message to the active object. | |
virtual bool | PostMessage (MessageType &&message) |
Posts a message, by moving it, to the active object. | |
Static Private Member Functions | |
static ImGuiIO & | GetImGuiIO () |
Private Attributes | |
ImGuiIO & | io_ |
Friends | |
class | Form |
Additional Inherited Members | |
![]() | |
static DXApplication & | Instance () |
![]() | |
static Application & | Instance () noexcept |
static HCC_EXPORT UInt64 | MainThreadId () noexcept |
static HCC_EXPORT void | HandleDllMainEvent (HMODULE moduleHandle, DWORD reason, LPVOID freeLibrary) noexcept |
![]() | |
boost::signals2::signal< void(UInt32 attachedThreadId)> | OnThreadAttached |
boost::signals2::signal< void(UInt32 detachedThreadId)> | OnThreadDetached |
![]() | |
Event< void(ActiveObjectBase *, const ActiveObjectMessageEventArgs< MessageType > &)> | OnProcessMessage |
Register callbacks with this signal to process messages passed to the active object. | |
Event< void(ActiveObjectBase *, const ActiveObjectExceptionEventArgs &)> | OnException |
Register callbacks with this signal to process exceptions caught in the message event loop of the active object. | |
![]() | |
static constexpr Int64 | DefaultStartStopTimeoutInTicks |
![]() | |
virtual HCC_EXPORT void | ProcessMessage (const MessageType &message) override |
virtual bool | IsStopMessage (const MessageType &message) const noexcept override |
IsStopMessage must be implemented by derived classes to determine if a message is a stop message causing the event loop to be terminated. | |
virtual void | PostStopMessage () override |
PostStopMessage must be implemented by derived classes. The implementation must post a message the will cause IsStopMessage to return true. | |
virtual HCC_EXPORT void | BeforeProcessMessages () override |
virtual HCC_EXPORT void | ProcessThreadAttachedMessage (const std::shared_ptr< ApplicationThreadAttachedMessage > &message) |
virtual HCC_EXPORT void | ProcessThreadDetachedMessage (const std::shared_ptr< ApplicationThreadDetachedMessage > &message) |
![]() | |
void | ProcessMessages () |
This function implements the message processing loop. | |
virtual void | AfterProcessMessages () |
Provides an opportunity to implement any cleanup that needs to be performed in the context of the worker thread of the active object after the message loop exits. | |
virtual void | Run (EventWaitHandle &manualEventWaitHandle) |
Run must be called by the thread that will be used to process messages for the active object. | |
virtual void | HandleException (const std::exception &error, const WideString &message) |
Called when exceptions are caught in the message processing loop. | |
|
inline |
|
inline |
|
inlinevirtual |
|
inlinestaticprivate |
|
overridevirtual |
Reimplemented from Harlinn::Windows::DXApplication.
|
overridevirtual |
Reimplemented from Harlinn::Windows::DXApplication.
|
inlineoverridevirtual |
Reimplemented from Harlinn::Windows::DXApplication.
|
friend |
|
private |