27#include <shthreads/shthreads.h>
35#define SH_ENGINE_SWAPCHAIN_IMAGE_COUNT 2
40#define SH_ENGINE_MAX_SWAPCHAIN_IMAGE_COUNT 6
45#define SH_ENGINE_RENDERPASS_ATTACHMENT_COUNT 3
50#define SH_ENGINE_SUBPASS_COLOR_ATTACHMENT_COUNT 1
108#define shAllocateEngine() (ShEngine*)calloc(1, sizeof(ShEngine));
115#define shFreeEngine(p_engine) free(p_engine); (p_engine) = NULL
124#define shEngineError(condition, msg, failure_expression) \
125 if ((int)(condition)) { printf("shengine error: %s.\n", msg); failure_expression; }
134#define shApplicationError(condition, msg, failure_expression) \
135 if ((int)(condition)) { printf("shapplication error: %s. \n", msg); failure_expression; }
140#define SH_ENGINE_READY 1
145#define SH_ENGINE_NOT_READY 0
Platform-specific shared library loading functions.
uint8_t shSetEngineState(ShEngine *p_engine)
Sets the state of the shengine module.
Definition shEngine.c:414
uint8_t shResetEngineState(ShEngine *p_engine)
Resets the state of the shengine module.
Definition shEngine.c:573
uint8_t shAllocateProfilingHandle(ShEngine *p_engine)
Allocates a profiling handle for the shengine module.
uint8_t shEngineSetupVulkan(ShEngine *p_engine)
Sets up Vulkan for the shengine module.
Definition shEngine.c:23
uint8_t shEngineVulkanUpdate(ShEngine *p_engine)
Updates Vulkan in the shengine module.
Definition shEngine.c:775
uint8_t shEngineProfilingUpdate(ShEngine *p_engine)
Updates the profiling in the shengine module.
Definition shEngine.c:740
uint8_t shEngineFrameResize(ShEngine *p_engine)
Resizes the frame in the shengine module.
Definition shEngine.c:583
uint8_t shEngineManageState(ShEngine *p_engine, uint8_t ready)
Manages the state of the shengine module.
Definition shEngine.c:935
uint8_t shEngineRelease(ShEngine *p_engine)
Releases resources in the shengine module.
Definition shEngine.c:998
uint8_t shEngineSafeState(ShEngine *p_engine)
Safely sets the state of the shengine module.
Definition shEngine.c:380
uint8_t shEngineUpdateState(ShEngine *p_engine)
Updates the state of the shengine module.
Definition shEngine.c:890
void shEngineShutdown(ShEngine *p_engine)
Shuts down the shengine module.
Definition shEngine.c:1072
uint8_t shEngineVulkanRelease(ShEngine *p_engine)
Releases Vulkan resources in the shengine module.
Definition shEngine.c:955
Declares functions related to setting up the graphical user interface (GUI) for the shengine module.
Handling environment descriptor functionalities in the shengine framework.
Profiling functionality for the shengine module.
Handling scenes in the shengine framework.
Handling time-related functionalities in the shengine framework.
Handling window-related functionalities in the shengine framework.
Represents the host for a shared application.
Definition shApplicationHost.h:121
Structure representing properties related to the application.
Definition shEnvironment.h:65
Represents the ShEngine structure, which is the main instance of the engine.
Definition shEngine.h:78
SmdFileHandle serial_smd
Definition shEngine.h:87
ShIniProperties ini_properties
Definition shEngine.h:89
ShProfilingTimer profiling_timer
Definition shEngine.h:82
SmdFileHandle vulkan_memory_smd
Definition shEngine.h:86
SmdFileHandle scene_smd
Definition shEngine.h:88
ShVulkanMemoryProperties vulkan_memory_properties
Definition shEngine.h:92
ShEngineVkCore core
Definition shEngine.h:79
void * p_ext
Definition shEngine.h:100
ShApplicationProperties application_properties
Definition shEngine.h:90
SmdFileHandle application_smd
Definition shEngine.h:84
ShThreadPool thread_pool
Definition shEngine.h:97
ShApplicationHost application_host
Definition shEngine.h:96
ShWindow window
Definition shEngine.h:80
ShSceneProperties scene_properties
Definition shEngine.h:94
SmdFileHandle host_memory_smd
Definition shEngine.h:85
SmdFileHandle ini_smd
Definition shEngine.h:83
uint8_t load_shared
Definition shEngine.h:95
ShVkPipelinePool pipeline_pool
Definition shEngine.h:98
ShTime time
Definition shEngine.h:81
ShGui gui
Definition shEngine.h:99
ShHostMemoryProperties host_memory_properties
Definition shEngine.h:91
ShSerialProperties serial_properties
Definition shEngine.h:93
Definition shEngineVkCore.h:21
Structure representing properties related to host memory.
Definition shEnvironment.h:89
Structure representing properties related to the initialization (INI) file.
Definition shEnvironment.h:47
Structure to hold profiling timer information in ShEngine.
Definition shProfiling.h:61
Structure representing properties related to the scene.
Definition shEnvironment.h:164
Structure representing properties related to serial communication.
Definition shEnvironment.h:140
Structure representing time in the shengine framework.
Definition shTime.h:63
Structure representing properties related to Vulkan memory.
Definition shEnvironment.h:110
Structure representing a window in the shengine framework.
Definition shWindow.h:54