GxrContext

GxrContext

Functions

Signals

Types and Values

Object Hierarchy

    GObject
    ╰── GxrContext

Includes

#include <gxr.h>

Description

Functions

gxr_context_new ()

GxrContext *
gxr_context_new (GxrAppType type,
                 char *app_name,
                 uint32_t app_version);

gxr_context_new_from_api ()

GxrContext *
gxr_context_new_from_api (GxrAppType type,
                          GxrApi backend,
                          char *app_name,
                          uint32_t app_version);

gxr_context_new_from_vulkan_extensions ()

GxrContext *
gxr_context_new_from_vulkan_extensions
                               (GxrAppType type,
                                GSList *instance_ext_list,
                                GSList *device_ext_list,
                                char *app_name,
                                uint32_t app_version);

gxr_context_new_headless ()

GxrContext *
gxr_context_new_headless (char *app_name,
                          uint32_t app_version);

gxr_context_new_headless_from_api ()

GxrContext *
gxr_context_new_headless_from_api (GxrApi api,
                                   char *app_name,
                                   uint32_t app_version);

gxr_context_new_full ()

GxrContext *
gxr_context_new_full (GxrAppType type,
                      GxrApi api,
                      GSList *instance_ext_list,
                      GSList *device_ext_list,
                      char *app_name,
                      uint32_t app_version);

gxr_context_get_api ()

GxrApi
gxr_context_get_api (GxrContext *self);

gxr_context_get_head_pose ()

gboolean
gxr_context_get_head_pose (GxrContext *self,
                           graphene_matrix_t *pose);

gxr_context_get_frustum_angles ()

void
gxr_context_get_frustum_angles (GxrContext *self,
                                GxrEye eye,
                                float *left,
                                float *right,
                                float *top,
                                float *bottom);

gxr_context_is_input_available ()

gboolean
gxr_context_is_input_available (GxrContext *self);

gxr_context_get_render_dimensions ()

void
gxr_context_get_render_dimensions (GxrContext *self,
                                   VkExtent2D *extent);

gxr_context_init_framebuffers ()

gboolean
gxr_context_init_framebuffers (GxrContext *self,
                               VkExtent2D extent,
                               VkSampleCountFlagBits sample_count,
                               GulkanRenderPass **render_pass);

gxr_context_submit_framebuffers ()

gboolean
gxr_context_submit_framebuffers (GxrContext *self);

gxr_context_poll_event ()

void
gxr_context_poll_event (GxrContext *self);

gxr_context_show_keyboard ()

void
gxr_context_show_keyboard (GxrContext *self);

gxr_context_get_model_vertex_stride ()

uint32_t
gxr_context_get_model_vertex_stride (GxrContext *self);

gxr_context_get_model_normal_offset ()

uint32_t
gxr_context_get_model_normal_offset (GxrContext *self);

gxr_context_get_model_uv_offset ()

uint32_t
gxr_context_get_model_uv_offset (GxrContext *self);

gxr_context_get_projection ()

void
gxr_context_get_projection (GxrContext *self,
                            GxrEye eye,
                            float near,
                            float far,
                            graphene_matrix_t *mat);

gxr_context_get_view ()

void
gxr_context_get_view (GxrContext *self,
                      GxrEye eye,
                      graphene_matrix_t *mat);

gxr_context_begin_frame ()

gboolean
gxr_context_begin_frame (GxrContext *self);

gxr_context_end_frame ()

gboolean
gxr_context_end_frame (GxrContext *self);

gxr_context_acknowledge_quit ()

void
gxr_context_acknowledge_quit (GxrContext *self);

gxr_context_is_tracked_device_connected ()

gboolean
gxr_context_is_tracked_device_connected
                               (GxrContext *self,
                                uint32_t i);

gxr_context_device_is_controller ()

gboolean
gxr_context_device_is_controller (GxrContext *self,
                                  uint32_t i);

gxr_context_get_device_model_name ()

gchar *
gxr_context_get_device_model_name (GxrContext *self,
                                   uint32_t i);

gxr_context_load_model ()

gboolean
gxr_context_load_model (GxrContext *self,
                        GulkanVertexBuffer *vbo,
                        GulkanTexture **texture,
                        VkSampler *sampler,
                        const char *model_name);

gxr_context_is_another_scene_running ()

gboolean
gxr_context_is_another_scene_running (GxrContext *self);

gxr_context_set_keyboard_transform ()

void
gxr_context_set_keyboard_transform (GxrContext *self,
                                    graphene_matrix_t *transform);

gxr_context_get_model_list ()

GSList *
gxr_context_get_model_list (GxrContext *self);

gxr_context_load_action_manifest ()

gboolean
gxr_context_load_action_manifest (GxrContext *self,
                                  const char *cache_name,
                                  const char *resource_path,
                                  const char *manifest_name,
                                  const char *first_binding,
                                  ...);

gxr_context_request_quit ()

void
gxr_context_request_quit (GxrContext *self);

gxr_context_get_gulkan ()

GulkanClient *
gxr_context_get_gulkan (GxrContext *self);

gxr_context_get_instance_extensions ()

gboolean
gxr_context_get_instance_extensions (GxrContext *self,
                                     GSList **out_list);

gxr_context_get_device_extensions ()

gboolean
gxr_context_get_device_extensions (GxrContext *self,
                                   GulkanClient *gc,
                                   GSList **out_list);

Types and Values

GXR_TYPE_CONTEXT

#define GXR_TYPE_CONTEXT gxr_context_get_type()

struct GxrContextClass

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,
                           const char *first_binding,
                           va_list     args);

  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);
};

GxrContext

typedef struct _GxrContext GxrContext;

Signal Details

The “action-set-update-event” signal

void
user_function (GxrContext *gxrcontext,
               gpointer    user_data)

Flags: Run First

The “binding-loaded-event” signal

void
user_function (GxrContext *gxrcontext,
               gpointer    user_data)

Flags: Run First

The “bindings-update-event” signal

void
user_function (GxrContext *gxrcontext,
               gpointer    user_data)

Flags: Run First

The “device-update-event” signal

void
user_function (GxrContext *gxrcontext,
               gpointer    arg1,
               gpointer    user_data)

Flags: Run Last

The “keyboard-close-event” signal

void
user_function (GxrContext *gxrcontext,
               gpointer    user_data)

Flags: Run First

The “keyboard-press-event” signal

void
user_function (GxrContext *gxrcontext,
               gpointer    arg1,
               gpointer    user_data)

Flags: Run Last

The “quit-event” signal

void
user_function (GxrContext *gxrcontext,
               gpointer    arg1,
               gpointer    user_data)

Flags: Run Last