Entix’s application entry point#

Important

All code written on top of Entix Engine should be placed to namespace Entix

Game entry-point#

At start of development you should provide entry point to engine by writing following code:

Main.cpp#
 1#include <Entix/Game/EntryPoint.h>
 2
 3namespace Entix
 4{
 5    ApplicationDesc CreateApplication()
 6    {
 7        return ApplicationDescBuilder()
 8            .Build()
 9            .Unwrap();
10    }
11}

The Entix::CreateApplication() are called inside Entix::Main() to create new application from your description.

See also

Application and ApplicationDesc classes page for more info about Entix::Application, Entix::ApplicationDesc and Entix::ApplicationDescBuilder.


Game entry-point are used for simplicity and “sugar”. A lot of work are done for you with Entix::Application. In Entix::ApplicationDesc you can specify a lot of things.

ApplicationDesc builder class

#include <Entix/Game/Application.h>
class ApplicationDescBuilder#

Public Functions

ApplicationDescBuilder() = default#
~ApplicationDescBuilder() = default#
inline EX_FORCE_INLINE ApplicationDescBuilder & SetCLIArgs (int argc, char **argv)
inline EX_FORCE_INLINE ApplicationDescBuilder & SetName (const String &name)
inline EX_FORCE_INLINE ApplicationDescBuilder & SetDescription (const String &desc)
inline EX_FORCE_INLINE ApplicationDescBuilder & SetVersion (const Version &version)
inline EX_FORCE_INLINE ApplicationDescBuilder & SetRHIBackendAPI (const RHI::BackendApi &api)
inline EX_FORCE_INLINE ApplicationDescBuilder & SetThreadCount (Usize count) noexcept
inline EX_FORCE_INLINE ApplicationDescBuilder & EnableResourceHotReload () noexcept
inline EX_FORCE_INLINE ApplicationDescBuilder & SetGPUSortFunction (std::function< bool(const RHI::GpuInfo &, const RHI::GpuInfo &)> callback)
inline EX_FORCE_INLINE ApplicationDescBuilder & SetGPUCapabilitiesCallback (std::function< bool(const RHI::GpuInfo &)> callback)
inline EX_FORCE_INLINE Result< ApplicationDesc > Build ()

Raw entry-point#

If you don’t need built-in Entix::Application class you can write your own things in “raw” entry-point provided by Entix Runtime.

Difference are between included headers and functions.

Instead of Entix/Game/EntryPoint.h you need to include Entix/Core/EntryPoint.h and write following code:

Main.cpp#
1#include <Entix/Core/EntryPoint.h>
2
3namespace Entix
4{
5    int Main(int argc, char** argv)
6    {
7        return 0;
8    }
9}

Note

The Entix::Main() are called inside platform-specific entry-point.

Windows variant:

Linux variant: