GxrContext * gxr_context_new (GxrAppType type,char *app_name,uint32_t app_version);
GxrContext * gxr_context_new_from_api (GxrAppType type,GxrApi backend,char *app_name,uint32_t app_version);
GxrContext * gxr_context_new_from_vulkan_extensions (GxrAppType type,GSList *instance_ext_list,GSList *device_ext_list,char *app_name,uint32_t app_version);
GxrContext * gxr_context_new_headless (char *app_name,uint32_t app_version);
GxrContext * gxr_context_new_headless_from_api (GxrApi api,char *app_name,uint32_t app_version);
GxrContext * gxr_context_new_full (GxrAppType type,GxrApi api,GSList *instance_ext_list,GSList *device_ext_list,char *app_name,uint32_t app_version);
gboolean gxr_context_get_head_pose (GxrContext *self,graphene_matrix_t *pose);
void gxr_context_get_frustum_angles (GxrContext *self,GxrEye eye,float *left,float *right,float *top,float *bottom);
void gxr_context_get_render_dimensions (GxrContext *self,VkExtent2D *extent);
gboolean gxr_context_init_framebuffers (GxrContext *self,VkExtent2D extent,VkSampleCountFlagBits sample_count,GulkanRenderPass **render_pass);
uint32_t
gxr_context_get_model_vertex_stride (GxrContext *self);
uint32_t
gxr_context_get_model_normal_offset (GxrContext *self);
void gxr_context_get_projection (GxrContext *self,GxrEye eye,float near,float far,graphene_matrix_t *mat);
void gxr_context_get_view (GxrContext *self,GxrEye eye,graphene_matrix_t *mat);
gboolean gxr_context_is_tracked_device_connected (GxrContext *self,uint32_t i);
gboolean gxr_context_device_is_controller (GxrContext *self,uint32_t i);
gchar * gxr_context_get_device_model_name (GxrContext *self,uint32_t i);
gboolean gxr_context_load_model (GxrContext *self,GulkanVertexBuffer *vbo,GulkanTexture **texture,VkSampler *sampler,const char *model_name);
gboolean
gxr_context_is_another_scene_running (GxrContext *self);
void gxr_context_set_keyboard_transform (GxrContext *self,graphene_matrix_t *transform);
gboolean gxr_context_load_action_manifest (GxrContext *self,const char *cache_name,const char *resource_path,const char *manifest_name);
gboolean gxr_context_get_instance_extensions (GxrContext *self,GSList **out_list);
gboolean gxr_context_get_device_extensions (GxrContext *self,GulkanClient *gc,GSList **out_list);
struct GxrContextClass {
GObjectClass parent;
gboolean
(*get_head_pose) (GxrContext *self, graphene_matrix_t *pose);
void
(*get_frustum_angles) (GxrContext *self, GxrEye eye,
float *left, float *right,
float *top, float *bottom);
gboolean
(*is_input_available) (GxrContext *self);
void
(*get_render_dimensions) (GxrContext *context,
VkExtent2D *extent);
void
(*poll_event) (GxrContext *self);
void
(*show_keyboard) (GxrContext *self);
gboolean
(*init_runtime) (GxrContext *self,
GxrAppType type,
char *app_name,
uint32_t app_version);
gboolean
(*init_session) (GxrContext *self);
gboolean
(*init_framebuffers) (GxrContext *self,
VkExtent2D extent,
VkSampleCountFlagBits sample_count,
GulkanRenderPass **render_pass);
gboolean
(*submit_framebuffers) (GxrContext *self);
uint32_t
(*get_model_vertex_stride) (GxrContext *self);
uint32_t
(*get_model_normal_offset) (GxrContext *self);
uint32_t
(*get_model_uv_offset) (GxrContext *self);
void
(*get_projection) (GxrContext *self,
GxrEye eye,
float near,
float far,
graphene_matrix_t *mat);
void
(*get_view) (GxrContext *self,
GxrEye eye,
graphene_matrix_t *mat);
gboolean
(*begin_frame) (GxrContext *self,
GxrPose *poses);
gboolean
(*end_frame) (GxrContext *self);
void
(*acknowledge_quit) (GxrContext *self);
gboolean
(*is_tracked_device_connected) (GxrContext *self, uint32_t i);
gboolean
(*device_is_controller) (GxrContext *self, uint32_t i);
gchar*
(*get_device_model_name) (GxrContext *self, uint32_t i);
gboolean
(*load_model) (GxrContext *self,
GulkanVertexBuffer *vbo,
GulkanTexture **texture,
VkSampler *sampler,
const char *model_name);
gboolean
(*is_another_scene_running) (GxrContext *self);
void
(*set_keyboard_transform) (GxrContext *self,
graphene_matrix_t *transform);
GSList *
(*get_model_list) (GxrContext *self);
GxrActionSet *
(*new_action_set_from_url) (GxrContext *self, gchar *url);
gboolean
(*load_action_manifest) (GxrContext *self,
const char *cache_name,
const char *resource_path,
const char *manifest_name);
GxrAction *
(*new_action_from_type_url) (GxrContext *context,
GxrActionSet *action_set,
GxrActionType type,
char *url);
GxrOverlay *
(*new_overlay) (GxrContext *self, gchar* key);
void
(*request_quit) (GxrContext *self);
gboolean
(*get_instance_extensions) (GxrContext *self, GSList **out_list);
gboolean
(*get_device_extensions) (GxrContext *self,
GulkanClient *gc,
GSList **out_list);
uint32_t
(*get_view_count) (GxrContext *self);
GulkanFrameBuffer *
(*get_acquired_framebuffer) (GxrContext *self, uint32_t view);
};
“action-set-update-event” signalvoid user_function (GxrContext *gxrcontext, gpointer user_data)
Flags: Run First
“binding-loaded-event” signalvoid user_function (GxrContext *gxrcontext, gpointer user_data)
Flags: Run First
“bindings-update-event” signalvoid user_function (GxrContext *gxrcontext, gpointer user_data)
Flags: Run First
“device-update-event” signalvoid user_function (GxrContext *gxrcontext, gpointer arg1, gpointer user_data)
Flags: Run Last
“keyboard-close-event” signalvoid user_function (GxrContext *gxrcontext, gpointer user_data)
Flags: Run First
“keyboard-press-event” signalvoid user_function (GxrContext *gxrcontext, gpointer arg1, gpointer user_data)
Flags: Run Last
“quit-event” signalvoid user_function (GxrContext *gxrcontext, gpointer arg1, gpointer user_data)
Flags: Run Last