![]() |
![]() |
![]() |
![]() |
XrdDesktopCursor is implemented by XrdOverlayDesktopCursor and XrdSceneDesktopCursor.
void
xrd_desktop_cursor_submit_texture (XrdDesktopCursor *self
);
Submits current texture.
void xrd_desktop_cursor_set_and_submit_texture (XrdDesktopCursor *self
,GulkanTexture *texture
);
Sets and submits a texture.
void xrd_desktop_cursor_set_hotspot (XrdDesktopCursor *self
,int hotspot_x
,int hotspot_y
);
A hotspot of (x, y) means that the hotspot is at x pixels right, y pixels down from the top left corner of the texture.
self |
The XrdDesktopCursor |
|
hotspot_x |
The x component of the hotspot. |
|
hotspot_y |
The y component of the hotspot. |
GulkanTexture *
xrd_desktop_cursor_get_texture (XrdDesktopCursor *self
);
void xrd_desktop_cursor_update (XrdDesktopCursor *self
,GxrContext *context
,XrdWindow *window
,graphene_point3d_t *intersection
);
void xrd_desktop_cursor_set_width_meters (XrdDesktopCursor *self
,float meters
);
XrdDesktopCursorData *
xrd_desktop_cursor_get_data (XrdDesktopCursor *self
);
void xrd_desktop_cursor_get_transformation (XrdDesktopCursor *self
,graphene_matrix_t *matrix
);
void xrd_desktop_cursor_set_transformation (XrdDesktopCursor *self
,graphene_matrix_t *matrix
);
typedef struct { XrdDesktopCursor *cursor; GxrContext *context; gboolean keep_apparent_size; /* setting, either absolute size or the apparent size in 3 meter distance */ float width_meters; /* cached values set by apparent size and used in hotspot calculation */ float cached_width_meters; int hotspot_x; int hotspot_y; uint32_t texture_width; uint32_t texture_height; } XrdDesktopCursorData;
struct XrdDesktopCursorInterface { GTypeInterface parent; void (*submit_texture) (XrdDesktopCursor *self); void (*set_and_submit_texture) (XrdDesktopCursor *self, GulkanTexture *texture); GulkanTexture * (*get_texture) (XrdDesktopCursor *self); void (*show) (XrdDesktopCursor *self); void (*hide) (XrdDesktopCursor *self); void (*set_width_meters) (XrdDesktopCursor *self, float meters); XrdDesktopCursorData* (*get_data) (XrdDesktopCursor *self); void (*get_transformation) (XrdDesktopCursor *self, graphene_matrix_t *matrix); void (*set_transformation) (XrdDesktopCursor *self, graphene_matrix_t *matrix); };