XrdPointerTip

XrdPointerTip

Functions

Types and Values

Object Hierarchy

    GInterface
    ╰── XrdPointerTip

Prerequisites

XrdPointerTip requires GObject.

Known Implementations

XrdPointerTip is implemented by XrdOverlayPointerTip and XrdScenePointerTip.

Includes

#include <xrdesktop.h>

Description

Functions

xrd_pointer_tip_animate_pulse ()

void
xrd_pointer_tip_animate_pulse (XrdPointerTip *self);

xrd_pointer_tip_get_data ()

XrdPointerTipData *
xrd_pointer_tip_get_data (XrdPointerTip *self);

xrd_pointer_tip_get_gulkan_client ()

GulkanClient *
xrd_pointer_tip_get_gulkan_client (XrdPointerTip *self);

xrd_pointer_tip_get_transformation ()

void
xrd_pointer_tip_get_transformation (XrdPointerTip *self,
                                    graphene_matrix_t *matrix);

xrd_pointer_tip_hide ()

void
xrd_pointer_tip_hide (XrdPointerTip *self);

xrd_pointer_tip_init_settings ()

void
xrd_pointer_tip_init_settings (XrdPointerTip *self,
                               XrdPointerTipData *data);

xrd_pointer_tip_render ()

GdkPixbuf *
xrd_pointer_tip_render (XrdPointerTip *self,
                        float progress);

xrd_pointer_tip_set_active ()

void
xrd_pointer_tip_set_active (XrdPointerTip *self,
                            gboolean active);

xrd_pointer_tip_set_transformation ()

void
xrd_pointer_tip_set_transformation (XrdPointerTip *self,
                                    graphene_matrix_t *matrix);

xrd_pointer_tip_set_width_meters ()

void
xrd_pointer_tip_set_width_meters (XrdPointerTip *self,
                                  float meters);

xrd_pointer_tip_show ()

void
xrd_pointer_tip_show (XrdPointerTip *self);

xrd_pointer_tip_submit_texture ()

void
xrd_pointer_tip_submit_texture (XrdPointerTip *self,
                                GulkanClient *client,
                                GulkanTexture *texture);

xrd_pointer_tip_update ()

void
xrd_pointer_tip_update (XrdPointerTip *self,
                        graphene_matrix_t *pose,
                        graphene_point3d_t *intersection_point);

xrd_pointer_tip_update_apparent_size ()

void
xrd_pointer_tip_update_apparent_size (XrdPointerTip *self);

Types and Values

XrdPointerTip

typedef struct _XrdPointerTip XrdPointerTip;

struct XrdPointerTipInterface

struct XrdPointerTipInterface {
  GTypeInterface parent;

  void
  (*set_transformation) (XrdPointerTip     *self,
                         graphene_matrix_t *matrix);

  void
  (*get_transformation) (XrdPointerTip     *self,
                         graphene_matrix_t *matrix);

  void
  (*show) (XrdPointerTip *self);

  void
  (*hide) (XrdPointerTip *self);

  void
  (*set_width_meters) (XrdPointerTip *self,
                       float          meters);

  void
  (*submit_texture) (XrdPointerTip *self,
                     GulkanClient  *client,
                     GulkanTexture *texture);

  XrdPointerTipData*
  (*get_data) (XrdPointerTip *self);

  GulkanClient*
  (*get_gulkan_client) (XrdPointerTip *self);
};

XRD_TYPE_POINTER_TIP

#define XRD_TYPE_POINTER_TIP xrd_pointer_tip_get_type()

XRD_TIP_APPARENT_SIZE_DISTANCE

#define XRD_TIP_APPARENT_SIZE_DISTANCE 3.0f

XRD_TIP_VIEWPORT_SCALE

#define XRD_TIP_VIEWPORT_SCALE 3

XrdPointerTipAnimation

typedef struct {
  XrdPointerTip *tip;
  float progress;
  guint callback_id;
} XrdPointerTipAnimation;

XrdPointerTipData

typedef struct {
  XrdPointerTip *tip;

  gboolean active;

  GulkanTexture *texture;

  VkImageLayout upload_layout;

  XrdPointerTipSettings settings;

  /* Pointer to the data of the currently running animation.
   * Must be freed when an animation callback is cancelled. */
  XrdPointerTipAnimation *animation;
} XrdPointerTipData;

XrdPointerTipSettings

typedef struct {
  gboolean keep_apparent_size;
  float width_meters;

  graphene_point3d_t active_color;
  graphene_point3d_t passive_color;

  double pulse_alpha;

  int texture_width;
  int texture_height;
} XrdPointerTipSettings;