Mir
Classes | Macros | Typedefs | Enumerations | Functions | Variables
MIR graphics tools API

Classes

struct  MirWaitHandle
 
struct  MirMesaEGLNativeDisplay
 
struct  MirMesaEGLNativeSurface
 
struct  MirMesaAuthMagicRequest
 
struct  MirMesaAuthMagicResponse
 
struct  MirMesaSetGBMDeviceRequest
 
struct  MirMesaSetGBMDeviceResponse
 
struct  MirPlatformMessageData
 
struct  MirPlatformMessageFds
 
struct  MirSurfaceParameters
 MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in order to create a surface. More...
 
struct  MirPlatformPackage
 
struct  MirGraphicsRegion
 Retrieved information about a MirSurface. More...
 
struct  MirDisplayInfo
 
struct  MirDisplayCard
 MirDisplayConfiguration provides details of the graphics environment. More...
 
struct  MirDisplayMode
 
struct  MirDisplayOutput
 
struct  MirDisplayConfiguration
 
struct  MirEventDelegate
 MirEventDelegate may be used to specify (at surface creation time) callbacks for handling of events. More...
 
struct  MirRectangle
 
struct  MirScreencastParameters
 MirScreencastParameters is the structure of required information that you must provide to Mir in order to create a MirScreencast. More...
 
struct  MirKeyEvent
 
struct  MirMotionPointer
 
struct  MirMotionEvent
 
struct  MirSurfaceEvent
 
struct  MirResizeEvent
 
struct  MirPromptSessionEvent
 
struct  MirOrientationEvent
 
struct  MirCloseSurfaceEvent
 
union  MirEvent
 

Macros

#define MIR_CLIENT_MAJOR_VERSION   (1)
 MIR_CLIENT_MAJOR_VERSION. More...
 
#define MIR_CLIENT_MINOR_VERSION   (0)
 MIR_CLIENT_MINOR_VERSION. More...
 
#define MIR_CLIENT_MICRO_VERSION   (0)
 MIR_CLIENT_MICRO_VERSION. More...
 
#define MIR_CLIENT_VERSION
 MIR_CLIENT_VERSION. More...
 
#define MIR_BYTES_PER_PIXEL(f)   (((f) == mir_pixel_format_bgr_888) ? 3 : 4)
 
#define MIR_INPUT_EVENT_MAX_POINTER_COUNT   16
 

Typedefs

typedef struct MirMesaEGLNativeDisplay MirMesaEGLNativeDisplay
 
typedef struct MirMesaEGLNativeSurface MirMesaEGLNativeSurface
 
typedef int(* MirMesaEGLNativeDisplayIsValidFunc) (MirMesaEGLNativeDisplay *display)
 
typedef void(* mir_drm_auth_magic_callback) (int status, void *context)
 
typedef enum MirBool MirBool
 
typedef void * MirEGLNativeWindowType
 
typedef void * MirEGLNativeDisplayType
 
typedef struct MirConnection MirConnection
 
typedef struct MirSurface MirSurface
 
typedef struct MirSurfaceSpec MirSurfaceSpec
 
typedef struct MirScreencast MirScreencast
 
typedef struct MirPromptSession MirPromptSession
 
typedef struct MirWaitHandle MirWaitHandle
 Returned by asynchronous functions. More...
 
typedef struct MirPlatformMessage MirPlatformMessage
 
typedef void(* mir_connected_callback) (MirConnection *connection, void *client_context)
 Callback to be passed when issuing a mir_connect request. More...
 
typedef void(* mir_surface_callback) (MirSurface *surface, void *client_context)
 Callback to be passed when calling: More...
 
typedef void(* mir_event_delegate_callback) (MirSurface *surface, MirEvent const *event, void *context)
 Callback member of MirEventDelegate for handling of events. More...
 
typedef void(* mir_lifecycle_event_callback) (MirConnection *connection, MirLifecycleState state, void *context)
 Callback called when a lifecycle event/callback is requested from the running server. More...
 
typedef void(* mir_display_config_callback) (MirConnection *connection, void *context)
 Callback called when a display config change has occurred. More...
 
typedef void(* mir_client_fd_callback) (MirPromptSession *prompt_session, size_t count, int const *fds, void *context)
 Callback called when a request for client file descriptors completes. More...
 
typedef enum MirBufferUsage MirBufferUsage
 MirBufferUsage specifies how a surface can and will be used. More...
 
typedef struct MirSurfaceParameters MirSurfaceParameters
 MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in order to create a surface. More...
 
typedef enum MirPlatformType MirPlatformType
 The native buffer type for the system the client is connected on. More...
 
typedef struct MirPlatformPackage MirPlatformPackage
 
typedef struct MirGraphicsRegion MirGraphicsRegion
 Retrieved information about a MirSurface. More...
 
typedef struct MirDisplayInfo MirDisplayInfo
 
typedef struct MirDisplayCard MirDisplayCard
 MirDisplayConfiguration provides details of the graphics environment. More...
 
typedef enum MirDisplayOutputType MirDisplayOutputType
 
typedef struct MirDisplayMode MirDisplayMode
 
typedef struct MirDisplayOutput MirDisplayOutput
 
typedef struct MirDisplayConfiguration MirDisplayConfiguration
 
typedef struct MirEventDelegate MirEventDelegate
 MirEventDelegate may be used to specify (at surface creation time) callbacks for handling of events. More...
 
typedef struct MirRectangle MirRectangle
 
typedef struct MirScreencastParameters MirScreencastParameters
 MirScreencastParameters is the structure of required information that you must provide to Mir in order to create a MirScreencast. More...
 
typedef void(* mir_screencast_callback) (MirScreencast *screencast, void *client_context)
 Callback to be passed when calling MirScreencast functions. More...
 
typedef void(* mir_prompt_session_callback) (MirPromptSession *prompt_provider, void *context)
 Callback member of MirPromptSession for handling of prompt sessions. More...
 
typedef void(* mir_prompt_session_state_change_callback) (MirPromptSession *prompt_provider, MirPromptSessionState state, void *context)
 Callback member of MirPromptSession for handling of prompt sessions events. More...
 
typedef void(* mir_platform_operation_callback) (MirConnection *connection, MirPlatformMessage *reply, void *context)
 Callback called when a platform operation completes. More...
 
typedef enum MirSurfaceAttrib MirSurfaceAttrib
 Attributes of a surface that the client and server/shell may wish to get or set over the wire. More...
 
typedef enum MirSurfaceType MirSurfaceType
 
typedef enum MirSurfaceState MirSurfaceState
 
typedef enum MirSurfaceFocusState MirSurfaceFocusState
 
typedef enum MirSurfaceVisibility MirSurfaceVisibility
 
typedef enum MirLifecycleState MirLifecycleState
 
typedef enum MirPowerMode MirPowerMode
 
typedef enum MirPromptSessionState MirPromptSessionState
 
typedef enum MirPixelFormat MirPixelFormat
 The order of components in a format enum matches the order of the components as they would be written in an integer representing a pixel value of that format. More...
 
typedef enum MirOrientation MirOrientation
 Direction relative to the "natural" orientation of the display. More...
 
typedef enum MirOrientationMode MirOrientationMode
 
typedef enum MirEdgeAttachment MirEdgeAttachment
 
typedef struct MirSurfaceEvent MirSurfaceEvent
 
typedef struct MirResizeEvent MirResizeEvent
 
typedef struct MirPromptSessionEvent MirPromptSessionEvent
 
typedef struct MirOrientationEvent MirOrientationEvent
 
typedef struct MirCloseSurfaceEvent MirCloseSurfaceEvent
 
typedef struct MirInputEvent MirInputEvent
 
typedef union MirEvent MirEvent
 
typedef int64_t nsecs_t
 
typedef int64_t MirInputDeviceId
 
typedef unsigned int MirInputEventModifiers
 
typedef struct MirKeyInputEvent MirKeyInputEvent
 An event type describing a change in keyboard state. More...
 
typedef struct MirPointerInputEvent MirPointerInputEvent
 An event type describing a change in pointer device state. More...
 
typedef struct MirTouchInputEvent MirTouchInputEvent
 An event type describing a change in touch device state. More...
 
typedef int32_t MirTouchInputEventTouchId
 An identifier for a touch-point. More...
 

Enumerations

enum  MirMesaPlatformOperation { auth_magic = 1, auth_fd = 2, set_gbm_device = 3 }
 
enum  MirBool { mir_false = 0, mir_true = 1 }
 
enum  MirBufferUsage { mir_buffer_usage_hardware = 1, mir_buffer_usage_software }
 MirBufferUsage specifies how a surface can and will be used. More...
 
enum  { mir_platform_package_max = 32 }
 
enum  MirPlatformType { mir_platform_type_gbm, mir_platform_type_android }
 The native buffer type for the system the client is connected on. More...
 
enum  { mir_supported_pixel_format_max = 32 }
 DEPRECATED. More...
 
enum  MirDisplayOutputType {
  mir_display_output_type_unknown, mir_display_output_type_vga, mir_display_output_type_dvii, mir_display_output_type_dvid,
  mir_display_output_type_dvia, mir_display_output_type_composite, mir_display_output_type_svideo, mir_display_output_type_lvds,
  mir_display_output_type_component, mir_display_output_type_ninepindin, mir_display_output_type_displayport, mir_display_output_type_hdmia,
  mir_display_output_type_hdmib, mir_display_output_type_tv, mir_display_output_type_edp
}
 
enum  { mir_display_output_id_invalid = 0 }
 
enum  MirSurfaceAttrib {
  mir_surface_attrib_type, mir_surface_attrib_state, mir_surface_attrib_swapinterval, mir_surface_attrib_focus,
  mir_surface_attrib_dpi, mir_surface_attrib_visibility, mir_surface_attrib_preferred_orientation, mir_surface_attribs
}
 Attributes of a surface that the client and server/shell may wish to get or set over the wire. More...
 
enum  MirSurfaceType {
  mir_surface_type_normal, mir_surface_type_utility, mir_surface_type_dialog, mir_surface_type_overlay,
  mir_surface_type_gloss = mir_surface_type_overlay, mir_surface_type_freestyle, mir_surface_type_popover, mir_surface_type_menu = mir_surface_type_popover,
  mir_surface_type_inputmethod, mir_surface_type_satellite, mir_surface_type_tip, mir_surface_types
}
 
enum  MirSurfaceState {
  mir_surface_state_unknown, mir_surface_state_restored, mir_surface_state_minimized, mir_surface_state_maximized,
  mir_surface_state_vertmaximized, mir_surface_state_fullscreen, mir_surface_state_horizmaximized, mir_surface_state_hidden,
  mir_surface_states
}
 
enum  MirSurfaceFocusState { mir_surface_unfocused = 0, mir_surface_focused }
 
enum  MirSurfaceVisibility { mir_surface_visibility_occluded = 0, mir_surface_visibility_exposed }
 
enum  MirLifecycleState { mir_lifecycle_state_will_suspend, mir_lifecycle_state_resumed, mir_lifecycle_connection_lost }
 
enum  MirPowerMode { mir_power_mode_on, mir_power_mode_standby, mir_power_mode_suspend, mir_power_mode_off }
 
enum  MirPromptSessionState { mir_prompt_session_state_stopped = 0, mir_prompt_session_state_started, mir_prompt_session_state_suspended }
 
enum  MirPixelFormat {
  mir_pixel_format_invalid, mir_pixel_format_abgr_8888, mir_pixel_format_xbgr_8888, mir_pixel_format_argb_8888,
  mir_pixel_format_xrgb_8888, mir_pixel_format_bgr_888, mir_pixel_formats
}
 The order of components in a format enum matches the order of the components as they would be written in an integer representing a pixel value of that format. More...
 
enum  MirOrientation { mir_orientation_normal = 0, mir_orientation_left = 90, mir_orientation_inverted = 180, mir_orientation_right = 270 }
 Direction relative to the "natural" orientation of the display. More...
 
enum  MirOrientationMode {
  mir_orientation_mode_portrait = 1 << 0, mir_orientation_mode_landscape = 1 << 1, mir_orientation_mode_portrait_inverted = 1 << 2, mir_orientation_mode_landscape_inverted = 1 << 3,
  mir_orientation_mode_portrait_any, mir_orientation_mode_landscape_any, mir_orientation_mode_any
}
 
enum  MirEdgeAttachment { mir_edge_attachment_vertical = 1 << 0, mir_edge_attachment_horizontal = 1 << 1, mir_edge_attachment_any }
 
enum  MirEventType {
  mir_event_type_key, mir_event_type_motion, mir_event_type_surface, mir_event_type_resize,
  mir_event_type_prompt_session_state_change, mir_event_type_orientation, mir_event_type_close_surface, mir_event_type_input
}
 
enum  MirKeyAction { mir_key_action_down = 0, mir_key_action_up = 1, mir_key_action_multiple = 2 }
 
enum  MirKeyFlag {
  mir_key_flag_woke_here = 0x1, mir_key_flag_soft_keyboard = 0x2, mir_key_flag_keep_touch_mode = 0x4, mir_key_flag_from_system = 0x8,
  mir_key_flag_editor_action = 0x10, mir_key_flag_canceled = 0x20, mir_key_flag_virtual_hard_key = 0x40, mir_key_flag_long_press = 0x80,
  mir_key_flag_canceled_long_press = 0x100, mir_key_flag_tracking = 0x200, mir_key_flag_fallback = 0x400
}
 
enum  MirKeyModifier {
  mir_key_modifier_none = 0, mir_key_modifier_alt = 0x02, mir_key_modifier_alt_left = 0x10, mir_key_modifier_alt_right = 0x20,
  mir_key_modifier_shift = 0x01, mir_key_modifier_shift_left = 0x40, mir_key_modifier_shift_right = 0x80, mir_key_modifier_sym = 0x04,
  mir_key_modifier_function = 0x08, mir_key_modifier_ctrl = 0x1000, mir_key_modifier_ctrl_left = 0x2000, mir_key_modifier_ctrl_right = 0x4000,
  mir_key_modifier_meta = 0x10000, mir_key_modifier_meta_left = 0x20000, mir_key_modifier_meta_right = 0x40000, mir_key_modifier_caps_lock = 0x100000,
  mir_key_modifier_num_lock = 0x200000, mir_key_modifier_scroll_lock = 0x400000
}
 
enum  MirMotionAction {
  mir_motion_action_down = 0, mir_motion_action_up = 1, mir_motion_action_move = 2, mir_motion_action_cancel = 3,
  mir_motion_action_outside = 4, mir_motion_action_pointer_down = 5, mir_motion_action_pointer_up = 6, mir_motion_action_hover_move = 7,
  mir_motion_action_scroll = 8, mir_motion_action_hover_enter = 9, mir_motion_action_hover_exit = 10
}
 
enum  MirMotionFlag { mir_motion_flag_window_is_obscured = 0x1 }
 
enum  MirMotionButton {
  mir_motion_button_primary = 1 << 0, mir_motion_button_secondary = 1 << 1, mir_motion_button_tertiary = 1 << 2, mir_motion_button_back = 1 << 3,
  mir_motion_button_forward = 1 << 4
}
 
enum  MirMotionToolType {
  mir_motion_tool_type_unknown = 0, mir_motion_tool_type_finger = 1, mir_motion_tool_type_stylus = 2, mir_motion_tool_type_mouse = 3,
  mir_motion_tool_type_eraser = 4
}
 
enum  MirInputEventType { mir_input_event_type_key = 0, mir_input_event_type_touch = 1, mir_input_event_type_pointer = 2 }
 
enum  MirInputEventModifier {
  mir_input_event_modifier_none = 1 << 0, mir_input_event_modifier_alt = 1 << 1, mir_input_event_modifier_alt_left = 1 << 2, mir_input_event_modifier_alt_right = 1 << 3,
  mir_input_event_modifier_shift = 1 << 4, mir_input_event_modifier_shift_left = 1 << 5, mir_input_event_modifier_shift_right = 1 << 6, mir_input_event_modifier_sym = 1 << 7,
  mir_input_event_modifier_function = 1 << 8, mir_input_event_modifier_ctrl = 1 << 9, mir_input_event_modifier_ctrl_left = 1 << 10, mir_input_event_modifier_ctrl_right = 1 << 11,
  mir_input_event_modifier_meta = 1 << 12, mir_input_event_modifier_meta_left = 1 << 13, mir_input_event_modifier_meta_right = 1 << 14, mir_input_event_modifier_caps_lock = 1 << 15,
  mir_input_event_modifier_num_lock = 1 << 16, mir_input_event_modifier_scroll_lock = 1 << 17
}
 Description of key modifier state. More...
 
enum  MirKeyInputEventAction { mir_key_input_event_action_up, mir_key_input_event_action_down, mir_key_input_event_action_repeat }
 Possible actions for changing key state. More...
 
enum  MirPointerInputEventAction {
  mir_pointer_input_event_action_button_up = 0, mir_pointer_input_event_action_button_down = 1, mir_pointer_input_event_action_enter = 2, mir_pointer_input_event_action_leave = 3,
  mir_pointer_input_event_action_motion = 4
}
 Possible pointer actions. More...
 
enum  MirPointerInputEventAxis { mir_pointer_input_axis_x = 0, mir_pointer_input_axis_y = 1, mir_pointer_input_axis_vscroll = 2, mir_pointer_input_axis_hscroll = 3 }
 Identifiers for pointer axis. More...
 
enum  MirPointerInputEventButton {
  mir_pointer_input_button_primary = 1, mir_pointer_input_button_secondary = 2, mir_pointer_input_button_tertiary = 3, mir_pointer_input_button_back = 4,
  mir_pointer_input_button_forward = 5
}
 
enum  MirTouchInputEventTouchAction { mir_touch_input_event_action_up = 0, mir_touch_input_event_action_down = 1, mir_touch_input_event_action_change = 2 }
 Possible per touch actions for state changing. More...
 
enum  MirTouchInputEventTouchAxis {
  mir_touch_input_axis_x = 0, mir_touch_input_axis_y = 1, mir_touch_input_axis_pressure = 2, mir_touch_input_axis_touch_major = 3,
  mir_touch_input_axis_touch_minor = 4, mir_touch_input_axis_size = 5
}
 Identifiers for touch axis. More...
 
enum  MirTouchInputEventTouchTooltype { mir_touch_input_tool_type_unknown = 0, mir_touch_input_tool_type_finger = 1, mir_touch_input_tool_type_stylus = 2 }
 Identifiers for per-touch tool types. More...
 

Functions

MirWaitHandlemir_connection_drm_auth_magic (MirConnection *connection, unsigned int magic, mir_drm_auth_magic_callback callback, void *context)
 
int mir_connection_drm_set_gbm_device (MirConnection *connection, struct gbm_device *dev)
 Set the gbm_device to be used by the EGL implementation. More...
 
MirWaitHandlemir_connect (char const *server, char const *app_name, mir_connected_callback callback, void *context)
 Request a connection to the Mir server. More...
 
MirConnectionmir_connect_sync (char const *server, char const *app_name)
 Perform a mir_connect() but also wait for and return the result. More...
 
bool mir_connection_is_valid (MirConnection *connection)
 Test for a valid connection. More...
 
char const * mir_connection_get_error_message (MirConnection *connection)
 Retrieve a text description of the last error. More...
 
void mir_connection_release (MirConnection *connection)
 Release a connection to the Mir server. More...
 
void mir_connection_get_platform (MirConnection *connection, MirPlatformPackage *platform_package)
 Query platform-specific data and/or file descriptors that are required to initialize GL/EGL features. More...
 
void mir_connection_set_lifecycle_event_callback (MirConnection *connection, mir_lifecycle_event_callback callback, void *context)
 Register a callback to be called when a Lifecycle state change occurs. More...
 
 __attribute__ ((__deprecated__("Use mir_connection_create_display_config()"))) void mir_connection_get_display_info(MirConnection *connection
 
MirDisplayConfigurationmir_connection_create_display_config (MirConnection *connection)
 Query the display. More...
 
void mir_connection_set_display_config_change_callback (MirConnection *connection, mir_display_config_callback callback, void *context)
 Register a callback to be called when the hardware display configuration changes. More...
 
void mir_display_config_destroy (MirDisplayConfiguration *display_configuration)
 Destroy the DisplayConfiguration resource acquired from mir_connection_create_display_config. More...
 
MirWaitHandlemir_connection_apply_display_config (MirConnection *connection, MirDisplayConfiguration *display_configuration)
 Apply the display configuration. More...
 
MirEGLNativeDisplayType mir_connection_get_egl_native_display (MirConnection *connection)
 Get a display type that can be used for OpenGL ES 2.0 acceleration. More...
 
void mir_connection_get_available_surface_formats (MirConnection *connection, MirPixelFormat *formats, unsigned const int format_size, unsigned int *num_valid_formats)
 Get the list of possible formats that a surface can be created with. More...
 
MirWaitHandlemir_connection_platform_operation (MirConnection *connection, MirPlatformMessage const *request, mir_platform_operation_callback callback, void *context)
 Perform a platform specific operation. More...
 
void mir_cursor_configuration_destroy (MirCursorConfiguration *parameters)
 Release resources assosciated with cursor parameters. More...
 
MirCursorConfigurationmir_cursor_configuration_from_name (char const *name)
 Returns a new MirCursorConfiguration representing a named cursor from the system cursor theme. More...
 
MirPlatformMessagemir_platform_message_create (unsigned int opcode)
 Create a platform message to use with mir_connection_platform_operation(). More...
 
void mir_platform_message_release (MirPlatformMessage const *message)
 Release a platform message. More...
 
void mir_platform_message_set_data (MirPlatformMessage *message, void const *data, size_t data_size)
 Set the data associated with a message. More...
 
void mir_platform_message_set_fds (MirPlatformMessage *message, int const *fds, size_t num_fds)
 Sets the fds associated with a message. More...
 
unsigned int mir_platform_message_get_opcode (MirPlatformMessage const *message)
 Get the opcode of a message. More...
 
MirPlatformMessageData mir_platform_message_get_data (MirPlatformMessage const *message)
 Get the data associated with a message. More...
 
MirPlatformMessageFds mir_platform_message_get_fds (MirPlatformMessage const *message)
 Gets the fds associated with a message. More...
 
MirPromptSessionmir_connection_create_prompt_session_sync (MirConnection *connection, pid_t application_pid, mir_prompt_session_state_change_callback state_change_callback, void *context)
 Create and start a new prompt session. More...
 
MirWaitHandlemir_prompt_session_new_fds_for_prompt_providers (MirPromptSession *prompt_session, unsigned int no_of_fds, mir_client_fd_callback callback, void *context)
 Allocate some FDs for prompt providers to connect on. More...
 
void mir_prompt_session_release_sync (MirPromptSession *prompt_session)
 Stop and release the specified prompt session. More...
 
bool mir_prompt_session_is_valid (MirPromptSession *prompt_session)
 Test for a valid prompt session. More...
 
char const * mir_prompt_session_error_message (MirPromptSession *prompt_session)
 Retrieve a text description of the last error. More...
 
MirScreencastmir_connection_create_screencast_sync (MirConnection *connection, MirScreencastParameters *parameters)
 Create a screencast on the supplied connection. More...
 
void mir_screencast_release_sync (MirScreencast *screencast)
 Release the specified screencast. More...
 
MirEGLNativeWindowType mir_screencast_egl_native_window (MirScreencast *screencast)
 Get a window type that can be used by EGL. More...
 
MirSurfaceSpecmir_connection_create_spec_for_normal_surface (MirConnection *connection, int width, int height, MirPixelFormat format)
 Create a surface specification for a normal surface. More...
 
MirSurfaceSpecmir_connection_create_spec_for_menu (MirConnection *connection, int width, int height, MirPixelFormat format, MirSurface *parent, MirRectangle *rect, MirEdgeAttachment edge)
 Create a surface specification for a menu surface. More...
 
MirSurfaceSpecmir_connection_create_spec_for_tooltip (MirConnection *connection, int width, int height, MirPixelFormat format, MirSurface *parent, MirRectangle *zone)
 Create a surface specification for a tooltip surface. More...
 
MirSurfaceSpecmir_connection_create_spec_for_modal_dialog (MirConnection *connection, int width, int height, MirPixelFormat format, MirSurface *parent)
 Create a surface specification for a modal dialog surface. More...
 
MirSurfaceSpecmir_connection_create_spec_for_dialog (MirConnection *connection, int width, int height, MirPixelFormat format)
 Create a surface specification for a parentless dialog surface. More...
 
MirWaitHandlemir_surface_create (MirSurfaceSpec *requested_specification, mir_surface_callback callback, void *context)
 Create a surface from a given specification. More...
 
MirSurfacemir_surface_create_sync (MirSurfaceSpec *requested_specification)
 Create a surface from a given specification and wait for the result. More...
 
bool mir_surface_spec_set_name (MirSurfaceSpec *spec, char const *name)
 Set the requested name. More...
 
bool mir_surface_spec_set_width (MirSurfaceSpec *spec, unsigned width)
 Set the requested width, in pixels. More...
 
bool mir_surface_spec_set_height (MirSurfaceSpec *spec, unsigned height)
 Set the requested height, in pixels. More...
 
bool mir_surface_spec_set_pixel_format (MirSurfaceSpec *spec, MirPixelFormat format)
 Set the requested pixel format. More...
 
bool mir_surface_spec_set_buffer_usage (MirSurfaceSpec *spec, MirBufferUsage usage)
 Set the requested buffer usage. More...
 
bool mir_surface_spec_set_fullscreen_on_output (MirSurfaceSpec *spec, uint32_t output_id)
 
bool mir_surface_spec_set_preferred_orientation (MirSurfaceSpec *spec, MirOrientationMode mode)
 Set the requested preferred orientation mode. More...
 
void mir_surface_spec_release (MirSurfaceSpec *spec)
 Release the resources held by a MirSurfaceSpec. More...
 
MirWaitHandlemir_connection_create_surface (MirConnection *connection, MirSurfaceParameters const *surface_parameters, mir_surface_callback callback, void *context)
 Request a new Mir surface on the supplied connection with the supplied parameters. More...
 
MirSurfacemir_connection_create_surface_sync (MirConnection *connection, MirSurfaceParameters const *params)
 Create a surface like in mir_connection_create_surface(), but also wait for creation to complete and return the resulting surface. More...
 
void mir_surface_set_event_handler (MirSurface *surface, MirEventDelegate const *event_handler)
 Set the event handler to be called when events arrive for a surface. More...
 
MirEGLNativeWindowType mir_surface_get_egl_native_window (MirSurface *surface)
 Get a window type that can be used for OpenGL ES 2.0 acceleration. More...
 
bool mir_surface_is_valid (MirSurface *surface)
 Test for a valid surface. More...
 
char const * mir_surface_get_error_message (MirSurface *surface)
 Retrieve a text description of the error. More...
 
void mir_surface_get_parameters (MirSurface *surface, MirSurfaceParameters *parameters)
 Get a surface's parameters. More...
 
MirPlatformType mir_surface_get_platform_type (MirSurface *surface)
 Get the underlying platform type so the buffer obtained in "raw" representation in mir_surface_get_current_buffer() can be understood. More...
 
void mir_surface_get_current_buffer (MirSurface *surface, MirNativeBuffer **buffer_package)
 Get a surface's buffer in "raw" representation. More...
 
void mir_surface_get_graphics_region (MirSurface *surface, MirGraphicsRegion *graphics_region)
 Get a surface's graphics_region, i.e., map the graphics buffer to main memory. More...
 
MirWaitHandlemir_surface_swap_buffers (MirSurface *surface, mir_surface_callback callback, void *context)
 Advance a surface's buffer. More...
 
void mir_surface_swap_buffers_sync (MirSurface *surface)
 Advance a surface's buffer as in mir_surface_swap_buffers(), but also wait for the operation to complete. More...
 
MirWaitHandlemir_surface_release (MirSurface *surface, mir_surface_callback callback, void *context)
 Release the supplied surface and any associated buffer. More...
 
void mir_surface_release_sync (MirSurface *surface)
 Release the specified surface like in mir_surface_release(), but also wait for the operation to complete. More...
 
 __attribute__ ((__deprecated__("Use mir_debug_surface_id()"))) int mir_surface_get_id(MirSurface *surface)
 
 __attribute__ ((__deprecated__("Use mir_connection_create_spec_for_xxx()"))) MirWaitHandle *mir_surface_set_type(MirSurface *surface
 
MirSurfaceType mir_surface_get_type (MirSurface *surface)
 Get the type (purpose) of a surface. More...
 
MirWaitHandlemir_surface_set_state (MirSurface *surface, MirSurfaceState state)
 Change the state of a surface. More...
 
MirSurfaceState mir_surface_get_state (MirSurface *surface)
 Get the current state of a surface. More...
 
MirWaitHandlemir_surface_set_swapinterval (MirSurface *surface, int interval)
 Set the swapinterval for mir_surface_swap_buffers. More...
 
int mir_surface_get_swapinterval (MirSurface *surface)
 Query the swapinterval that the surface is operating with. More...
 
int mir_surface_get_dpi (MirSurface *surface)
 Query the DPI value of the surface (dots per inch). More...
 
MirSurfaceFocusState mir_surface_get_focus (MirSurface *surface)
 Query the focus state for a surface. More...
 
MirSurfaceVisibility mir_surface_get_visibility (MirSurface *surface)
 Query the visibility state for a surface. More...
 
MirWaitHandlemir_surface_configure_cursor (MirSurface *surface, MirCursorConfiguration const *parameters)
 Choose the cursor state for a surface: whether a cursor is shown, and which cursor if so. More...
 
MirOrientation mir_surface_get_orientation (MirSurface *surface)
 Get the orientation of a surface. More...
 
MirWaitHandlemir_surface_set_preferred_orientation (MirSurface *surface, MirOrientationMode orientation)
 Request to set the preferred orientations of a surface. More...
 
MirOrientationMode mir_surface_get_preferred_orientation (MirSurface *surface)
 Get the preferred orientation modes of a surface. More...
 
MirSurfaceSpecmir_connection_create_spec_for_input_method (MirConnection *connection, int width, int height, MirPixelFormat format)
 Create a surface specification for an input method surface. More...
 
void mir_wait_for (MirWaitHandle *wait_handle)
 Wait on the supplied handle until all instances of the associated request have completed. More...
 
void mir_wait_for_one (MirWaitHandle *wait_handle)
 Wait on the supplied handle until one instance of the associated request has completed. More...
 
MirEventType mir_event_get_type (MirEvent const *ev)
 
MirInputEvent const * mir_event_get_input_event (MirEvent const *ev)
 
MirSurfaceEvent const * mir_event_get_surface_event (MirEvent const *ev)
 
MirResizeEvent const * mir_event_get_resize_event (MirEvent const *ev)
 
MirPromptSessionEvent const * mir_event_get_prompt_session_event (MirEvent const *ev)
 
MirOrientationEvent const * mir_event_get_orientation_event (MirEvent const *ev)
 
MirCloseSurfaceEvent const * mir_event_get_close_surface_event (MirEvent const *ev)
 
MirEvent const * mir_event_ref (MirEvent const *ev) __attribute__((warn_unused_result))
 
void mir_event_unref (MirEvent const *ev)
 
MirInputDeviceId mir_input_event_get_device_id (MirInputEvent const *ev)
 
int64_t mir_input_event_get_event_time (MirInputEvent const *ev)
 
MirInputEventType mir_input_event_get_type (MirInputEvent const *ev)
 
MirKeyInputEvent const * mir_input_event_get_key_input_event (MirInputEvent const *ev)
 
MirTouchInputEvent const * mir_input_event_get_touch_input_event (MirInputEvent const *ev)
 
MirPointerInputEvent const * mir_input_event_get_pointer_input_event (MirInputEvent const *ev)
 
MirKeyInputEventAction mir_key_input_event_get_action (MirKeyInputEvent const *event)
 Retrieve the action which triggered a given key event. More...
 
xkb_keysym_t mir_key_input_event_get_key_code (MirKeyInputEvent const *event)
 Retrieve the xkb mapped keycode associated with the key acted on. More...
 
int mir_key_input_event_get_scan_code (MirKeyInputEvent const *event)
 Retrieve the raw hardware scan code associated with the key acted on. More...
 
MirInputEventModifiers mir_key_input_event_get_modifiers (MirKeyInputEvent const *event)
 Retrieve the modifier keys pressed when the key action occured. More...
 
MirInputEventModifiers mir_pointer_input_event_get_modifiers (MirPointerInputEvent const *event)
 Retrieve the modifier keys pressed when the pointer action occured. More...
 
MirPointerInputEventAction mir_pointer_input_event_get_action (MirPointerInputEvent const *event)
 Retrieve the action which occured to generate a given pointer event. More...
 
bool mir_pointer_input_event_get_button_state (MirPointerInputEvent const *event, MirPointerInputEventButton button)
 Retrieve the state of a given pointer button when the action occurred. More...
 
float mir_pointer_input_event_get_axis_value (MirPointerInputEvent const *event, MirPointerInputEventAxis axis)
 Retrieve the axis value reported by a given pointer event. More...
 
MirInputEventModifiers mir_touch_input_event_get_modifiers (MirTouchInputEvent const *event)
 Retrieve the modifier keys pressed when the touch action occured. More...
 
unsigned int mir_touch_input_event_get_touch_count (MirTouchInputEvent const *event)
 Retrieve the number of touches reported for a given touch event. More...
 
MirTouchInputEventTouchId mir_touch_input_event_get_touch_id (MirTouchInputEvent const *event, size_t touch_index)
 Retrieve the TouchID for a touch at given index. More...
 
MirTouchInputEventTouchAction mir_touch_input_event_get_touch_action (MirTouchInputEvent const *event, size_t touch_index)
 Retrieve the action which occured for a touch at given index. More...
 
MirTouchInputEventTouchTooltype mir_touch_input_event_get_touch_tooltype (MirTouchInputEvent const *event, size_t touch_index)
 Retrieve the tooltype for touch at given index. More...
 
float mir_touch_input_event_get_touch_axis_value (MirTouchInputEvent const *event, size_t touch_index, MirTouchInputEventTouchAxis axis)
 Retrieve the axis value for a given axis on an indexed touch. More...
 
MirOrientation mir_orientation_event_get_direction (MirOrientationEvent const *ev)
 
MirPromptSessionState mir_prompt_session_event_get_state (MirPromptSessionEvent const *ev)
 
int mir_resize_event_get_width (MirResizeEvent const *ev)
 
int mir_resize_event_get_height (MirResizeEvent const *ev)
 
MirSurfaceAttrib mir_surface_event_get_attribute (MirSurfaceEvent const *ev)
 
int mir_surface_event_get_attribute_value (MirSurfaceEvent const *ev)
 

Variables

MirDisplayInfodisplay_info
 
MirSurfaceType type
 
char const *const mir_default_cursor_name
 A special cursor name for use with mir_cursor_configuration_from_name representing the system default cursor. More...
 
char const *const mir_disabled_cursor_name
 A special cursor name for use with mir_cursor_configuration_from_name representing a disabled cursor image. More...
 
char const *const mir_arrow_cursor_name
 The standard arrow cursor (typically the system default) More...
 
char const *const mir_busy_cursor_name
 The "wait" cursor, typically an hourglass or watch used during operations which prevent the user from interacting. More...
 
char const *const mir_caret_cursor_name
 The caret or ibeam cursor, indicating acceptance of text input. More...
 
char const *const mir_pointing_hand_cursor_name
 The pointing hand cursor, typically used for clickable elements such as hyperlinks. More...
 
char const *const mir_open_hand_cursor_name
 The open handed cursor, typically used to indicate that the area beneath the cursor may be clicked and dragged around. More...
 
char const *const mir_closed_hand_cursor_name
 The close handed cursor, typically used to indicate that a drag operation is in process which involves scrolling. More...
 
char const *const mir_horizontal_resize_cursor_name
 The cursor used to indicate a horizontal resize operation. More...
 
char const *const mir_vertical_resize_cursor_name
 The cursor used to indicate a vertical resize operation. More...
 
char const *const mir_diagonal_resize_bottom_to_top_cursor_name
 The cursor used to indicate diagonal resize from top-right and bottom-left corners. More...
 
char const *const mir_diagonal_resize_top_to_bottom_cursor_name
 The cursor used to indicate diagonal resize from bottom-left and top-right corners. More...
 
char const *const mir_omnidirectional_resize_cursor_name
 The cursor used to indicate resize with no directional constraint. More...
 
char const *const mir_vsplit_resize_cursor_name
 The cursor used for vertical splitters, indicating that a handle may be dragged to adjust vertical space. More...
 
char const *const mir_hsplit_resize_cursor_name
 The cursor used for horizontal splitters, indicating that a handle may be dragged to adjust horizontal space. More...
 

Detailed Description

Macro Definition Documentation

#define MIR_BYTES_PER_PIXEL (   f)    (((f) == mir_pixel_format_bgr_888) ? 3 : 4)
#define MIR_CLIENT_MAJOR_VERSION   (1)

MIR_CLIENT_MAJOR_VERSION.

The major client API version. This will increase once per API incompatible release.

See also: http://semver.org/

#define MIR_CLIENT_MICRO_VERSION   (0)

MIR_CLIENT_MICRO_VERSION.

The micro client API version. This will increment each release. This is usually uninteresting for client code, but may be of use in selecting whether to use a feature that has previously been buggy.

This corresponds to the PATCH field of http://semver.org/

#define MIR_CLIENT_MINOR_VERSION   (0)

MIR_CLIENT_MINOR_VERSION.

The minor client API version. This will increase each time new backwards-compatible API is added, and will reset to 0 each time MIR_CLIENT_MAJOR_VERSION is incremented.

See also: http://semver.org/

#define MIR_CLIENT_VERSION
Value:
#define MIR_CLIENT_MINOR_VERSION
MIR_CLIENT_MINOR_VERSION.
Definition: version.h:46
#define MIR_CLIENT_MICRO_VERSION
MIR_CLIENT_MICRO_VERSION.
Definition: version.h:57
#define MIR_VERSION_NUMBER(major, minor, micro)
MIR_VERSION_NUMBER.
Definition: mir_version_number.h:34
#define MIR_CLIENT_MAJOR_VERSION
MIR_CLIENT_MAJOR_VERSION.
Definition: version.h:36

MIR_CLIENT_VERSION.

The current version of the Mir client headers in use.

#define MIR_INPUT_EVENT_MAX_POINTER_COUNT   16

Typedef Documentation

typedef void(* mir_client_fd_callback) (MirPromptSession *prompt_session, size_t count, int const *fds, void *context)

Callback called when a request for client file descriptors completes.

Parameters
[in]prompt_sessionThe prompt session
[in]countThe number of FDs allocated
[in]fdsArray of FDs
[in,out]contextThe context provided by client
Note
Copy the FDs as the array will be invalidated after callback completes
typedef void(* mir_connected_callback) (MirConnection *connection, void *client_context)

Callback to be passed when issuing a mir_connect request.

Parameters
[in]connectionthe new connection
[in,out]client_contextcontext provided by client in calling mir_connect
typedef void(* mir_display_config_callback) (MirConnection *connection, void *context)

Callback called when a display config change has occurred.

Parameters
[in]connectionThe connection associated with the display change
[in,out]contextThe context provided by client
typedef void(* mir_drm_auth_magic_callback) (int status, void *context)
typedef void(* mir_event_delegate_callback) (MirSurface *surface, MirEvent const *event, void *context)

Callback member of MirEventDelegate for handling of events.

Parameters
[in]surfaceThe surface on which an event has occurred
[in]eventThe event to be handled
[in,out]contextThe context provided by client during delegate registration.
typedef void(* mir_lifecycle_event_callback) (MirConnection *connection, MirLifecycleState state, void *context)

Callback called when a lifecycle event/callback is requested from the running server.

Parameters
[in]connectionThe connection associated with the lifecycle event
[in]cbThe callback requested
[in,out]contextThe context provided by the client
typedef void(* mir_platform_operation_callback) (MirConnection *connection, MirPlatformMessage *reply, void *context)

Callback called when a platform operation completes.

Warning
The reply is owned by the callee, who should release it when it's not needed any more.
Parameters
[in]connectionThe connection associated with the platform operation
[in]replyThe platform operation reply
[in,out]contextThe context provided by the client
typedef void(* mir_prompt_session_callback) (MirPromptSession *prompt_provider, void *context)

Callback member of MirPromptSession for handling of prompt sessions.

Parameters
[in]prompt_providerThe prompt session associated with the callback
[in,out]contextThe context provided by the client
typedef void(* mir_prompt_session_state_change_callback) (MirPromptSession *prompt_provider, MirPromptSessionState state, void *context)

Callback member of MirPromptSession for handling of prompt sessions events.

Parameters
[in]prompt_providerThe prompt session associated with the callback
[in]stateThe state of the prompt session
[in,out]contextThe context provided by the client
typedef void(* mir_screencast_callback) (MirScreencast *screencast, void *client_context)

Callback to be passed when calling MirScreencast functions.

Parameters
[in]screencastthe screencast being updated
[in,out]client_contextcontext provided by the client
typedef void(* mir_surface_callback) (MirSurface *surface, void *client_context)

Callback to be passed when calling:

  • mir_connection_create_surface
  • mir_surface_swap_buffers
  • mir_surface_release
    Parameters
    [in]surfacethe surface being updated
    [in,out]client_contextcontext provided by client in calling mir_connect
typedef enum MirBool MirBool

MirBufferUsage specifies how a surface can and will be used.

A "hardware" surface can be used for OpenGL accelerated rendering. A "software" surface is one that can be addressed in main memory and blitted to directly.

typedef struct MirConnection MirConnection

MirDisplayConfiguration provides details of the graphics environment.

typedef void* MirEGLNativeDisplayType
typedef void* MirEGLNativeWindowType
typedef union MirEvent MirEvent

MirEventDelegate may be used to specify (at surface creation time) callbacks for handling of events.

Retrieved information about a MirSurface.

This is most useful for learning how and where to write to a 'mir_buffer_usage_software' surface.

typedef int64_t MirInputDeviceId
typedef struct MirInputEvent MirInputEvent
typedef unsigned int MirInputEventModifiers

An event type describing a change in keyboard state.

typedef int(* MirMesaEGLNativeDisplayIsValidFunc) (MirMesaEGLNativeDisplay *display)

Direction relative to the "natural" orientation of the display.

The order of components in a format enum matches the order of the components as they would be written in an integer representing a pixel value of that format.

For example, abgr_8888 corresponds to 0xAABBGGRR, which will end up as R,G,B,A in memory in a little endian system, and as A,B,G,R in memory in a big endian system.

typedef struct MirPlatformMessage MirPlatformMessage

The native buffer type for the system the client is connected on.

An event type describing a change in pointer device state.

typedef enum MirPowerMode MirPowerMode
typedef struct MirRectangle MirRectangle
typedef struct MirScreencast MirScreencast

MirScreencastParameters is the structure of required information that you must provide to Mir in order to create a MirScreencast.

The width and height parameters can be used to down-scale the screencast For no scaling set them to the region width and height.

typedef struct MirSurface MirSurface

Attributes of a surface that the client and server/shell may wish to get or set over the wire.

MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in order to create a surface.

An event type describing a change in touch device state.

typedef int32_t MirTouchInputEventTouchId

An identifier for a touch-point.

TouchId's are unique per-gesture. That is to say, once a touch has gone down at time T, no other touch will use that touch's ID until all touches at time T have come up.

typedef struct MirWaitHandle MirWaitHandle

Returned by asynchronous functions.

Must not be free'd by callers. See the individual function documentation for information on the lifetime of wait handles.

typedef int64_t nsecs_t

Enumeration Type Documentation

anonymous enum

DEPRECATED.

use MirDisplayConfiguration

Enumerator
mir_supported_pixel_format_max 
anonymous enum
Enumerator
mir_display_output_id_invalid 
anonymous enum
Enumerator
mir_platform_package_max 
enum MirBool
Enumerator
mir_false 
mir_true 

MirBufferUsage specifies how a surface can and will be used.

A "hardware" surface can be used for OpenGL accelerated rendering. A "software" surface is one that can be addressed in main memory and blitted to directly.

Enumerator
mir_buffer_usage_hardware 
mir_buffer_usage_software 
Enumerator
mir_display_output_type_unknown 
mir_display_output_type_vga 
mir_display_output_type_dvii 
mir_display_output_type_dvid 
mir_display_output_type_dvia 
mir_display_output_type_composite 
mir_display_output_type_svideo 
mir_display_output_type_lvds 
mir_display_output_type_component 
mir_display_output_type_ninepindin 
mir_display_output_type_displayport 
mir_display_output_type_hdmia 
mir_display_output_type_hdmib 
mir_display_output_type_tv 
mir_display_output_type_edp 
Enumerator
mir_edge_attachment_vertical 
mir_edge_attachment_horizontal 
mir_edge_attachment_any 
Enumerator
mir_event_type_key 
mir_event_type_motion 
mir_event_type_surface 
mir_event_type_resize 
mir_event_type_prompt_session_state_change 
mir_event_type_orientation 
mir_event_type_close_surface 
mir_event_type_input 

Description of key modifier state.

Enumerator
mir_input_event_modifier_none 
mir_input_event_modifier_alt 
mir_input_event_modifier_alt_left 
mir_input_event_modifier_alt_right 
mir_input_event_modifier_shift 
mir_input_event_modifier_shift_left 
mir_input_event_modifier_shift_right 
mir_input_event_modifier_sym 
mir_input_event_modifier_function 
mir_input_event_modifier_ctrl 
mir_input_event_modifier_ctrl_left 
mir_input_event_modifier_ctrl_right 
mir_input_event_modifier_meta 
mir_input_event_modifier_meta_left 
mir_input_event_modifier_meta_right 
mir_input_event_modifier_caps_lock 
mir_input_event_modifier_num_lock 
mir_input_event_modifier_scroll_lock 
Enumerator
mir_input_event_type_key 
mir_input_event_type_touch 
mir_input_event_type_pointer 
Enumerator
mir_key_action_down 
mir_key_action_up 
mir_key_action_multiple 
enum MirKeyFlag
Enumerator
mir_key_flag_woke_here 
mir_key_flag_soft_keyboard 
mir_key_flag_keep_touch_mode 
mir_key_flag_from_system 
mir_key_flag_editor_action 
mir_key_flag_canceled 
mir_key_flag_virtual_hard_key 
mir_key_flag_long_press 
mir_key_flag_canceled_long_press 
mir_key_flag_tracking 
mir_key_flag_fallback 

Possible actions for changing key state.

Enumerator
mir_key_input_event_action_up 
mir_key_input_event_action_down 
mir_key_input_event_action_repeat 
Enumerator
mir_key_modifier_none 
mir_key_modifier_alt 
mir_key_modifier_alt_left 
mir_key_modifier_alt_right 
mir_key_modifier_shift 
mir_key_modifier_shift_left 
mir_key_modifier_shift_right 
mir_key_modifier_sym 
mir_key_modifier_function 
mir_key_modifier_ctrl 
mir_key_modifier_ctrl_left 
mir_key_modifier_ctrl_right 
mir_key_modifier_meta 
mir_key_modifier_meta_left 
mir_key_modifier_meta_right 
mir_key_modifier_caps_lock 
mir_key_modifier_num_lock 
mir_key_modifier_scroll_lock 
Enumerator
mir_lifecycle_state_will_suspend 
mir_lifecycle_state_resumed 
mir_lifecycle_connection_lost 
Enumerator
auth_magic 
auth_fd 
set_gbm_device 
Enumerator
mir_motion_action_down 
mir_motion_action_up 
mir_motion_action_move 
mir_motion_action_cancel 
mir_motion_action_outside 
mir_motion_action_pointer_down 
mir_motion_action_pointer_up 
mir_motion_action_hover_move 
mir_motion_action_scroll 
mir_motion_action_hover_enter 
mir_motion_action_hover_exit 
Enumerator
mir_motion_button_primary 
mir_motion_button_secondary 
mir_motion_button_tertiary 
mir_motion_button_back 
mir_motion_button_forward 
Enumerator
mir_motion_flag_window_is_obscured 
Enumerator
mir_motion_tool_type_unknown 
mir_motion_tool_type_finger 
mir_motion_tool_type_stylus 
mir_motion_tool_type_mouse 
mir_motion_tool_type_eraser 

Direction relative to the "natural" orientation of the display.

Enumerator
mir_orientation_normal 
mir_orientation_left 
mir_orientation_inverted 
mir_orientation_right 
Enumerator
mir_orientation_mode_portrait 
mir_orientation_mode_landscape 
mir_orientation_mode_portrait_inverted 
mir_orientation_mode_landscape_inverted 
mir_orientation_mode_portrait_any 
mir_orientation_mode_landscape_any 
mir_orientation_mode_any 

The order of components in a format enum matches the order of the components as they would be written in an integer representing a pixel value of that format.

For example, abgr_8888 corresponds to 0xAABBGGRR, which will end up as R,G,B,A in memory in a little endian system, and as A,B,G,R in memory in a big endian system.

Enumerator
mir_pixel_format_invalid 
mir_pixel_format_abgr_8888 
mir_pixel_format_xbgr_8888 
mir_pixel_format_argb_8888 
mir_pixel_format_xrgb_8888 
mir_pixel_format_bgr_888 
mir_pixel_formats 

The native buffer type for the system the client is connected on.

Enumerator
mir_platform_type_gbm 
mir_platform_type_android 

Possible pointer actions.

Enumerator
mir_pointer_input_event_action_button_up 
mir_pointer_input_event_action_button_down 
mir_pointer_input_event_action_enter 
mir_pointer_input_event_action_leave 
mir_pointer_input_event_action_motion 

Identifiers for pointer axis.

Enumerator
mir_pointer_input_axis_x 
mir_pointer_input_axis_y 
mir_pointer_input_axis_vscroll 
mir_pointer_input_axis_hscroll 
Enumerator
mir_pointer_input_button_primary 
mir_pointer_input_button_secondary 
mir_pointer_input_button_tertiary 
mir_pointer_input_button_back 
mir_pointer_input_button_forward 
Enumerator
mir_power_mode_on 
mir_power_mode_standby 
mir_power_mode_suspend 
mir_power_mode_off 
Enumerator
mir_prompt_session_state_stopped 
mir_prompt_session_state_started 
mir_prompt_session_state_suspended 

Attributes of a surface that the client and server/shell may wish to get or set over the wire.

Enumerator
mir_surface_attrib_type 
mir_surface_attrib_state 
mir_surface_attrib_swapinterval 
mir_surface_attrib_focus 
mir_surface_attrib_dpi 
mir_surface_attrib_visibility 
mir_surface_attrib_preferred_orientation 
mir_surface_attribs 
Enumerator
mir_surface_unfocused 
mir_surface_focused 
Enumerator
mir_surface_state_unknown 
mir_surface_state_restored 
mir_surface_state_minimized 
mir_surface_state_maximized 
mir_surface_state_vertmaximized 
mir_surface_state_fullscreen 
mir_surface_state_horizmaximized 
mir_surface_state_hidden 
mir_surface_states 
Enumerator
mir_surface_type_normal 

AKA "regular".

mir_surface_type_utility 

AKA "floating".

mir_surface_type_dialog 
mir_surface_type_overlay 
Deprecated:
Use "gloss" instead.
mir_surface_type_gloss 
mir_surface_type_freestyle 
mir_surface_type_popover 
Deprecated:
Choose "menu" or "tip"
mir_surface_type_menu 
mir_surface_type_inputmethod 

AKA "OSK" or handwriting etc.

mir_surface_type_satellite 

AKA "toolbox"/"toolbar".

mir_surface_type_tip 

AKA "tooltip".

mir_surface_types 
Enumerator
mir_surface_visibility_occluded 
mir_surface_visibility_exposed 

Possible per touch actions for state changing.

Enumerator
mir_touch_input_event_action_up 
mir_touch_input_event_action_down 
mir_touch_input_event_action_change 

Identifiers for touch axis.

Enumerator
mir_touch_input_axis_x 
mir_touch_input_axis_y 
mir_touch_input_axis_pressure 
mir_touch_input_axis_touch_major 
mir_touch_input_axis_touch_minor 
mir_touch_input_axis_size 

Identifiers for per-touch tool types.

Enumerator
mir_touch_input_tool_type_unknown 
mir_touch_input_tool_type_finger 
mir_touch_input_tool_type_stylus 

Function Documentation

__attribute__ ( (__deprecated__("Use mir_connection_create_display_config()"))  )
Deprecated:
Use mir_connection_create_display_config
__attribute__ ( (__deprecated__("Use mir_debug_surface_id()"))  )
__attribute__ ( (__deprecated__("Use mir_connection_create_spec_for_xxx()"))  )
Deprecated:
Use the mir_connection_create_spec_for_xxx family of APIs
MirWaitHandle* mir_connect ( char const *  server,
char const *  app_name,
mir_connected_callback  callback,
void *  context 
)

Request a connection to the Mir server.

The supplied callback is called when the connection is established, or fails. The returned wait handle remains valid until the connection has been released.

Warning
callback could be called from another thread. You must do any locking appropriate to protect your data accessed in the callback.
Parameters
[in]serverFile path of the server socket to connect to, or NULL to choose the default server (can be set by the $MIR_SOCKET environment variable)
[in]app_nameA name referring to the application
[in]callbackCallback function to be invoked when request completes
[in,out]contextUser data passed to the callback function
Returns
A handle that can be passed to mir_wait_for
MirConnection* mir_connect_sync ( char const *  server,
char const *  app_name 
)

Perform a mir_connect() but also wait for and return the result.

Parameters
[in]serverFile path of the server socket to connect to, or NULL to choose the default server
[in]app_nameA name referring to the application
Returns
The resulting MirConnection
MirWaitHandle* mir_connection_apply_display_config ( MirConnection connection,
MirDisplayConfiguration display_configuration 
)

Apply the display configuration.

The display configuration is applied to this connection only (per-connection configuration) and is invalidated when a hardware change occurs. Clients should register a callback with mir_connection_set_display_config_change_callback() to get notified about hardware changes, so that the can apply a new configuration.

Warning
This request may be denied. Check that the request succeeded with mir_connection_get_error_message.
Parameters
[in]connectionThe connection
[in]display_configurationThe display_configuration to apply
Returns
A handle that can be passed to mir_wait_for
MirDisplayConfiguration* mir_connection_create_display_config ( MirConnection connection)

Query the display.

Warning
return value must be destroyed via mir_display_config_destroy()
may return null if connection is invalid
Parameters
[in]connectionThe connection
Returns
structure that describes the display configuration
MirPromptSession* mir_connection_create_prompt_session_sync ( MirConnection connection,
pid_t  application_pid,
mir_prompt_session_state_change_callback  state_change_callback,
void *  context 
)

Create and start a new prompt session.

Parameters
[in]connectionThe connection
[in]application_pidThe process id of the initiating application
[in]state_change_callbackThe function to be called when a prompt session state change occurs
[in,out]contextUser data passed to the callback functions
Returns
A handle that can be passed to mir_wait_for
MirScreencast* mir_connection_create_screencast_sync ( MirConnection connection,
MirScreencastParameters parameters 
)

Create a screencast on the supplied connection.

A screencast allows clients to read the contents of the screen.

Warning
This request may be denied.
Parameters
[in]connectionThe connection
[in]parametersThe screencast parameters
Returns
The resulting screencast
MirSurfaceSpec* mir_connection_create_spec_for_dialog ( MirConnection connection,
int  width,
int  height,
MirPixelFormat  format 
)

Create a surface specification for a parentless dialog surface.

A parentless dialog surface is similar to a normal surface, but it cannot be fullscreen and typically won't have any maximize/close button decorations.

A parentless dialog is not allowed to have other dialog children. The server may decide to close the parent and show the child dialog only.

Parameters
[in]connectionConnection the surface will be created on
[in]widthRequested width. The server is not guaranteed to return a surface of this width.
[in]heightRequested height. The server is not guaranteed to return a surface of this height.
[in]formatPixel format for the surface.
MirSurfaceSpec* mir_connection_create_spec_for_input_method ( MirConnection connection,
int  width,
int  height,
MirPixelFormat  format 
)

Create a surface specification for an input method surface.

Currently this is only appropriate for the Unity On-Screen-Keyboard.

Parameters
[in]connectionConnection the surface will be created on
[in]widthRequested width. The server is not guaranteed to return a surface of this width.
[in]heightRequested height. The server is not guaranteed to return a surface of this height.
[in]formatPixel format for the surface.
Returns
A handle that can be passed to mir_surface_create() to complete construction.
MirSurfaceSpec* mir_connection_create_spec_for_menu ( MirConnection connection,
int  width,
int  height,
MirPixelFormat  format,
MirSurface parent,
MirRectangle rect,
MirEdgeAttachment  edge 
)

Create a surface specification for a menu surface.

Positioning of the surface is specified with respect to the parent surface via an adjacency rectangle. The server will attempt to choose an edge of the adjacency rectangle on which to place the surface taking in to account screen-edge proximity or similar constraints. In addition, the server can use the edge affinity hint to consider only horizontal or only vertical adjacency edges in the given rectangle.

Parameters
[in]connectionConnection the surface will be created on
[in]widthRequested width. The server is not guaranteed to return a surface of this width.
[in]heightRequested height. The server is not guaranteed to return a surface of this height.
[in]formatPixel format for the surface.
[in]parentA valid parent surface for this menu.
[in]rectThe adjacency rectangle. The server is not guaranteed to create a surface at the requested location.
[in]edgeThe preferred edge direction to attach to. Use mir_edge_attachment_any for no preference.
Returns
A handle that can be passed to mir_surface_create() to complete construction.
MirSurfaceSpec* mir_connection_create_spec_for_modal_dialog ( MirConnection connection,
int  width,
int  height,
MirPixelFormat  format,
MirSurface parent 
)

Create a surface specification for a modal dialog surface.

The dialog surface will have input focus; the parent can still be moved, resized or hidden/minimized but no interaction is possible until the dialog is dismissed.

A dialog will typically have no close/maximize button decorations.

During surface creation, if the specified parent is another dialog surface the server may choose to close the specified parent in order to show this new dialog surface.

Parameters
[in]connectionConnection the surface will be created on
[in]widthRequested width. The server is not guaranteed to return a surface of this width.
[in]heightRequested height. The server is not guaranteed to return a surface of this height.
[in]formatPixel format for the surface.
[in]parentA valid parent surface.
MirSurfaceSpec* mir_connection_create_spec_for_normal_surface ( MirConnection connection,
int  width,
int  height,
MirPixelFormat  format 
)

Create a surface specification for a normal surface.

A normal surface is suitable for most application windows. It has no special semantics. On a desktop shell it will typically have a title-bar, be movable, resizeable, etc.

Parameters
[in]connectionConnection the surface will be created on
[in]widthRequested width. The server is not guaranteed to return a surface of this width.
[in]heightRequested height. The server is not guaranteed to return a surface of this height.
[in]formatPixel format for the surface.
Returns
A handle that can be passed to mir_surface_create() to complete construction.
MirSurfaceSpec* mir_connection_create_spec_for_tooltip ( MirConnection connection,
int  width,
int  height,
MirPixelFormat  format,
MirSurface parent,
MirRectangle zone 
)

Create a surface specification for a tooltip surface.

A tooltip surface becomes visible when the pointer hovers the specified target zone. A tooltip surface has no input focus and will be closed when the pointer moves out of the target zone or the parent closes, moves or hides

The tooltip parent cannot be another tooltip surface.

The tooltip position is decided by the server but typically it will appear near the pointer.

Parameters
[in]connectionConnection the surface will be created on
[in]widthRequested width. The server is not guaranteed to return a surface of this width.
[in]heightRequested height. The server is not guaranteed to return a surface of this height.
[in]formatPixel format for the surface.
[in]parentA valid parent surface for this tooltip.
[in]rectA target zone relative to parent.
Returns
A handle that can be passed to mir_surface_create() to complete construction.
MirWaitHandle* mir_connection_create_surface ( MirConnection connection,
MirSurfaceParameters const *  surface_parameters,
mir_surface_callback  callback,
void *  context 
)

Request a new Mir surface on the supplied connection with the supplied parameters.

The returned handle remains valid until the surface has been released.

Warning
callback could be called from another thread. You must do any locking appropriate to protect your data accessed in the callback.
Note
This will soon be deprecated. Use the *_spec_for_* / mir_surface_create() two-stage process instead.
Parameters
[in]connectionThe connection
[in]surface_parametersRequest surface parameters
[in]callbackCallback function to be invoked when request completes
[in,out]contextUser data passed to the callback function
Returns
A handle that can be passed to mir_wait_for
MirSurface* mir_connection_create_surface_sync ( MirConnection connection,
MirSurfaceParameters const *  params 
)

Create a surface like in mir_connection_create_surface(), but also wait for creation to complete and return the resulting surface.

Note
This will soon be deprecated. Use the create_spec_for/mir_surface_create() two-stage process instead.
Parameters
[in]connectionThe connection
[in]paramsParameters describing the desired surface
Returns
The resulting surface
MirWaitHandle* mir_connection_drm_auth_magic ( MirConnection connection,
unsigned int  magic,
mir_drm_auth_magic_callback  callback,
void *  context 
)
int mir_connection_drm_set_gbm_device ( MirConnection connection,
struct gbm_device *  dev 
)

Set the gbm_device to be used by the EGL implementation.

This is required if the application needs to create EGLImages from gbm buffers objects created on that gbm device.

Parameters
[in]connectionThe connection
[in]devThe gbm_device to set
Returns
A non-zero value if the operation was successful, 0 otherwise
void mir_connection_get_available_surface_formats ( MirConnection connection,
MirPixelFormat formats,
unsigned const int  format_size,
unsigned int *  num_valid_formats 
)

Get the list of possible formats that a surface can be created with.

Parameters
[in]connectionThe connection
[out]formatsList of valid formats to create surfaces with
[in]formats_sizesize of formats list
[out]num_valid_formatsnumber of valid formats returned in formats
MirEGLNativeDisplayType mir_connection_get_egl_native_display ( MirConnection connection)

Get a display type that can be used for OpenGL ES 2.0 acceleration.

Parameters
[in]connectionThe connection
Returns
An EGLNativeDisplayType that the client can use
char const* mir_connection_get_error_message ( MirConnection connection)

Retrieve a text description of the last error.

The returned string is owned by the library and remains valid until the connection has been released.

Parameters
[in]connectionThe connection
Returns
A text description of any error resulting in an invalid connection, or the empty string "" if the connection is valid.
void mir_connection_get_platform ( MirConnection connection,
MirPlatformPackage platform_package 
)

Query platform-specific data and/or file descriptors that are required to initialize GL/EGL features.

Parameters
[in]connectionThe connection
[out]platform_packageStructure to be populated
bool mir_connection_is_valid ( MirConnection connection)

Test for a valid connection.

Parameters
[in]connectionThe connection
Returns
True if the supplied connection is valid, or false otherwise.
MirWaitHandle* mir_connection_platform_operation ( MirConnection connection,
MirPlatformMessage const *  request,
mir_platform_operation_callback  callback,
void *  context 
)

Perform a platform specific operation.

The MirPlatformMessage used for the request needs to remain valid until this operation finishes.

Parameters
[in]connectionThe connection
[in]requestThe message used for this operation
[in]callbackThe callback to call when the operation finishes
[in,out]contextUser data passed to the callback function
Returns
A handle that can be passed to mir_wait_for
void mir_connection_release ( MirConnection connection)

Release a connection to the Mir server.

Parameters
[in]connectionThe connection
void mir_connection_set_display_config_change_callback ( MirConnection connection,
mir_display_config_callback  callback,
void *  context 
)

Register a callback to be called when the hardware display configuration changes.

Once a change has occurred, you can use mir_connection_create_display_config to see the new configuration.

Parameters
[in]connectionThe connection
[in]callbackThe function to be called when a display change occurs
[in,out]contextUser data passed to the callback function
void mir_connection_set_lifecycle_event_callback ( MirConnection connection,
mir_lifecycle_event_callback  callback,
void *  context 
)

Register a callback to be called when a Lifecycle state change occurs.

Parameters
[in]connectionThe connection
[in]callbackThe function to be called when the state change occurs
[in,out]contextUser data passed to the callback function
void mir_cursor_configuration_destroy ( MirCursorConfiguration parameters)

Release resources assosciated with cursor parameters.

Parameters
[in]parametersThe operand
MirCursorConfiguration* mir_cursor_configuration_from_name ( char const *  name)

Returns a new MirCursorConfiguration representing a named cursor from the system cursor theme.

Symbolic cursor names, such as mir_default_cursor_name and mir_caret_cursor_name are available see (mir_toolkit/cursors.h). as input.

Parameters
[in]nameThe cursor name
Returns
A cursor parameters object which must be passed to_mir_cursor_configuration_destroy
void mir_display_config_destroy ( MirDisplayConfiguration display_configuration)

Destroy the DisplayConfiguration resource acquired from mir_connection_create_display_config.

Parameters
[in]display_configurationThe display_configuration information resource to be destroyed
MirCloseSurfaceEvent const* mir_event_get_close_surface_event ( MirEvent const *  ev)
MirInputEvent const* mir_event_get_input_event ( MirEvent const *  ev)
MirOrientationEvent const* mir_event_get_orientation_event ( MirEvent const *  ev)
MirPromptSessionEvent const* mir_event_get_prompt_session_event ( MirEvent const *  ev)
MirResizeEvent const* mir_event_get_resize_event ( MirEvent const *  ev)
MirSurfaceEvent const* mir_event_get_surface_event ( MirEvent const *  ev)
MirEventType mir_event_get_type ( MirEvent const *  ev)
MirEvent const* mir_event_ref ( MirEvent const *  ev)
void mir_event_unref ( MirEvent const *  ev)
MirInputDeviceId mir_input_event_get_device_id ( MirInputEvent const *  ev)
int64_t mir_input_event_get_event_time ( MirInputEvent const *  ev)
MirKeyInputEvent const* mir_input_event_get_key_input_event ( MirInputEvent const *  ev)
MirPointerInputEvent const* mir_input_event_get_pointer_input_event ( MirInputEvent const *  ev)
MirTouchInputEvent const* mir_input_event_get_touch_input_event ( MirInputEvent const *  ev)
MirInputEventType mir_input_event_get_type ( MirInputEvent const *  ev)
MirKeyInputEventAction mir_key_input_event_get_action ( MirKeyInputEvent const *  event)

Retrieve the action which triggered a given key event.

Parameters
[in]eventThe key event
Returns
The associated action
xkb_keysym_t mir_key_input_event_get_key_code ( MirKeyInputEvent const *  event)

Retrieve the xkb mapped keycode associated with the key acted on.

. May be interpreted as per <xkbcommon/xkb-keysyms.h>

Parameters
[in]eventThe key event
Returns
The xkb_keysym
MirInputEventModifiers mir_key_input_event_get_modifiers ( MirKeyInputEvent const *  event)

Retrieve the modifier keys pressed when the key action occured.

Parameters
[in]eventThe key event
Returns
The modifier mask
int mir_key_input_event_get_scan_code ( MirKeyInputEvent const *  event)

Retrieve the raw hardware scan code associated with the key acted on.

May be interpreted as per <linux/input.h>

Parameters
[in]eventThe key event
Returns
The scancode
MirOrientation mir_orientation_event_get_direction ( MirOrientationEvent const *  ev)
MirPlatformMessage* mir_platform_message_create ( unsigned int  opcode)

Create a platform message to use with mir_connection_platform_operation().

Each call to mir_platform_message_create() should be matched by a call to mir_platform_message_release() to avoid memory leaks.

Parameters
[in]opcodeThe platform message opcode
Returns
The created MirPlatformMessage
MirPlatformMessageData mir_platform_message_get_data ( MirPlatformMessage const *  message)

Get the data associated with a message.

The memory holding the returned data array is owned by the message and is valid only as long as the message is valid and mir_platform_set_data() is not called. You must not change or free the returned data array.

Parameters
[in]messageThe MirPlatformMessage
Returns
The data
MirPlatformMessageFds mir_platform_message_get_fds ( MirPlatformMessage const *  message)

Gets the fds associated with a message.

The memory of the returned fd array is owned by the message and is valid only as long as the message is valid and mir_platform_set_fds() is not called. You must not change or free the returned fd array.

Note that the fds associated with a message will not be closed when the message is released. Users are responsible for getting and closing the fds to avoid leaks.

Parameters
[in]messageThe MirPlatformMessage
Returns
The fds
unsigned int mir_platform_message_get_opcode ( MirPlatformMessage const *  message)

Get the opcode of a message.

Parameters
[in]messageThe MirPlatformMessage
Returns
The opcode
void mir_platform_message_release ( MirPlatformMessage const *  message)

Release a platform message.

Parameters
[in]messageThe MirPlatformMessage
void mir_platform_message_set_data ( MirPlatformMessage message,
void const *  data,
size_t  data_size 
)

Set the data associated with a message.

The data is copied into the message.

Parameters
[in]messageThe MirPlatformMessage
[in]dataPointer to the data
[in]data_sizeThe size of the data in bytes
void mir_platform_message_set_fds ( MirPlatformMessage message,
int const *  fds,
size_t  num_fds 
)

Sets the fds associated with a message.

The fd array is copied into the message, but the message does not take ownership of the fds, i.e., the caller is responsible for keeping the fds open for as long as this message needs to remain valid.

Note that the fds associated with a message are not closed when the message is released. The caller is responsible for closing the fds when the message doesn't need them anymore (see also mir_platform_message_get_fds()).

Parameters
[in]messageThe MirPlatformMessage
[in]fdsPointer to the array of fds
[in]num_fdsThe number of fds
MirPointerInputEventAction mir_pointer_input_event_get_action ( MirPointerInputEvent const *  event)

Retrieve the action which occured to generate a given pointer event.

Parameters
[in]eventThe pointer event
Returns
Action performed by the pointer
float mir_pointer_input_event_get_axis_value ( MirPointerInputEvent const *  event,
MirPointerInputEventAxis  axis 
)

Retrieve the axis value reported by a given pointer event.

Parameters
[in]eventThe pointer event
[in]axisThe axis to retreive a value from
Returns
The value of the given axis
bool mir_pointer_input_event_get_button_state ( MirPointerInputEvent const *  event,
MirPointerInputEventButton  button 
)

Retrieve the state of a given pointer button when the action occurred.

Parameters
[in]eventThe pointer event
[in]buttonThe button to check
Returns
Whether the given button is depressed
MirInputEventModifiers mir_pointer_input_event_get_modifiers ( MirPointerInputEvent const *  event)

Retrieve the modifier keys pressed when the pointer action occured.

Parameters
[in]eventThe pointer event
Returns
The modifier mask
char const* mir_prompt_session_error_message ( MirPromptSession prompt_session)

Retrieve a text description of the last error.

The returned string is owned by the library and remains valid until the prompt session has been released.

Parameters
[in]prompt_sessionThe prompt session
Returns
A text description of any error resulting in an invalid connection, or the empty string "" if the connection is valid.
MirPromptSessionState mir_prompt_session_event_get_state ( MirPromptSessionEvent const *  ev)
bool mir_prompt_session_is_valid ( MirPromptSession prompt_session)

Test for a valid prompt session.

Parameters
[in]prompt_sessionThe prompt session
Returns
True if prompt_session is valid, false otherwise
MirWaitHandle* mir_prompt_session_new_fds_for_prompt_providers ( MirPromptSession prompt_session,
unsigned int  no_of_fds,
mir_client_fd_callback  callback,
void *  context 
)

Allocate some FDs for prompt providers to connect on.

Prompt helpers need to allocate connection FDs it will pass to prompt providers to use when connecting to the server. The server can then associate them with the prompt session.

Warning
This API is tentative until the implementation of prompt sessions is complete
Parameters
[in]prompt_sessionThe prompt session
[in]no_of_fdsThe number of fds to allocate
[in]callbackCallback invoked when request completes
[in,out]contextUser data passed to the callback function
Returns
A handle that can be passed to mir_wait_for
void mir_prompt_session_release_sync ( MirPromptSession prompt_session)

Stop and release the specified prompt session.

Parameters
[in]prompt_sessionThe prompt session
int mir_resize_event_get_height ( MirResizeEvent const *  ev)
int mir_resize_event_get_width ( MirResizeEvent const *  ev)
MirEGLNativeWindowType mir_screencast_egl_native_window ( MirScreencast screencast)

Get a window type that can be used by EGL.

Parameters
[in]screencastThe screencast
Returns
An EGLNativeWindowType that the client can use
void mir_screencast_release_sync ( MirScreencast screencast)

Release the specified screencast.

Parameters
[in]screencastThe screencast to be released
MirWaitHandle* mir_surface_configure_cursor ( MirSurface surface,
MirCursorConfiguration const *  parameters 
)

Choose the cursor state for a surface: whether a cursor is shown, and which cursor if so.

Parameters
[in]surfaceThe surface to operate on
[in]parametersThe configuration parameters obtained from mir_cursor* family of functions.
Returns
A wait handle that can be passed to mir_wait_for, or NULL if parameters is invalid.
MirWaitHandle* mir_surface_create ( MirSurfaceSpec requested_specification,
mir_surface_callback  callback,
void *  context 
)

Create a surface from a given specification.

Parameters
[in]requested_specificationSpecification of the attributes for the created surface
[in]callbackCallback function to be invoked when creation is complete
[in,out]contextUser data passed to callback function. This callback is guaranteed to be called, and called with a non-null MirSurface*, but the surface may be invalid in case of an error.
Returns
A handle that can be passed to mir_wait_for()
MirSurface* mir_surface_create_sync ( MirSurfaceSpec requested_specification)

Create a surface from a given specification and wait for the result.

Parameters
[in]requested_specificationSpecification of the attributes for the created surface
Returns
The new surface. This is guaranteed non-null, but may be invalid in the case of error.
MirSurfaceAttrib mir_surface_event_get_attribute ( MirSurfaceEvent const *  ev)
int mir_surface_event_get_attribute_value ( MirSurfaceEvent const *  ev)
void mir_surface_get_current_buffer ( MirSurface surface,
MirNativeBuffer **  buffer_package 
)

Get a surface's buffer in "raw" representation.

Precondition
The surface is valid
Parameters
[in]surfaceThe surface
[out]buffer_packageStructure to be populated
int mir_surface_get_dpi ( MirSurface surface)

Query the DPI value of the surface (dots per inch).

This will vary depending on the physical display configuration and where the surface is within it.

Returns
The DPI of the surface, or zero if unknown.
MirEGLNativeWindowType mir_surface_get_egl_native_window ( MirSurface surface)

Get a window type that can be used for OpenGL ES 2.0 acceleration.

Parameters
[in]surfaceThe surface
Returns
An EGLNativeWindowType that the client can use
char const* mir_surface_get_error_message ( MirSurface surface)

Retrieve a text description of the error.

The returned string is owned by the library and remains valid until the surface or the associated connection has been released.

Parameters
[in]surfaceThe surface
Returns
A text description of any error resulting in an invalid surface, or the empty string "" if the connection is valid.
MirSurfaceFocusState mir_surface_get_focus ( MirSurface surface)

Query the focus state for a surface.

Parameters
[in]surfaceThe surface to operate on
Returns
The focus state of said surface
void mir_surface_get_graphics_region ( MirSurface surface,
MirGraphicsRegion graphics_region 
)

Get a surface's graphics_region, i.e., map the graphics buffer to main memory.

Precondition
The surface is valid
Parameters
[in]surfaceThe surface
[out]graphics_regionStructure to be populated
MirOrientation mir_surface_get_orientation ( MirSurface surface)

Get the orientation of a surface.

Parameters
[in]surfaceThe surface to query
Returns
The orientation of the surface
void mir_surface_get_parameters ( MirSurface surface,
MirSurfaceParameters parameters 
)

Get a surface's parameters.

Precondition
The surface is valid
Parameters
[in]surfaceThe surface
[out]parametersStructure to be populated
MirPlatformType mir_surface_get_platform_type ( MirSurface surface)

Get the underlying platform type so the buffer obtained in "raw" representation in mir_surface_get_current_buffer() can be understood.

Precondition
The surface is valid
Parameters
[in]surfaceThe surface
Returns
One of mir_platform_type_android or mir_platform_type_gbm
MirOrientationMode mir_surface_get_preferred_orientation ( MirSurface surface)

Get the preferred orientation modes of a surface.

Parameters
[in]surfaceThe surface to query
Returns
The preferred orientation modes
MirSurfaceState mir_surface_get_state ( MirSurface surface)

Get the current state of a surface.

Parameters
[in]surfaceThe surface to query
Returns
The state of the surface
int mir_surface_get_swapinterval ( MirSurface surface)

Query the swapinterval that the surface is operating with.

The default interval is 1.

Parameters
[in]surfaceThe surface to operate on
Returns
The swapinterval value that the client is operating with. Returns -1 if surface is invalid.
MirSurfaceType mir_surface_get_type ( MirSurface surface)

Get the type (purpose) of a surface.

Parameters
[in]surfaceThe surface to query
Returns
The type of the surface
MirSurfaceVisibility mir_surface_get_visibility ( MirSurface surface)

Query the visibility state for a surface.

Parameters
[in]surfaceThe surface to operate on
Returns
The visibility state of said surface
bool mir_surface_is_valid ( MirSurface surface)

Test for a valid surface.

Parameters
[in]surfaceThe surface
Returns
True if the supplied surface is valid, or false otherwise.
MirWaitHandle* mir_surface_release ( MirSurface surface,
mir_surface_callback  callback,
void *  context 
)

Release the supplied surface and any associated buffer.

The returned wait handle remains valid until the connection to the server is released.

Warning
callback could be called from another thread. You must do any locking appropriate to protect your data accessed in the callback.
Parameters
[in]surfaceThe surface
[in]callbackCallback function to be invoked when the request completes
[in,out]contextUser data passed to the callback function
Returns
A handle that can be passed to mir_wait_for
void mir_surface_release_sync ( MirSurface surface)

Release the specified surface like in mir_surface_release(), but also wait for the operation to complete.

Parameters
[in]surfaceThe surface to be released
void mir_surface_set_event_handler ( MirSurface surface,
MirEventDelegate const *  event_handler 
)

Set the event handler to be called when events arrive for a surface.

Warning
event_handler could be called from another thread. You must do any locking appropriate to protect your data accessed in the callback. There is also a chance that different events will be called back in different threads, for the same surface, simultaneously.
Parameters
[in]surfaceThe surface
[in]event_handlerThe event handler to call
MirWaitHandle* mir_surface_set_preferred_orientation ( MirSurface surface,
MirOrientationMode  orientation 
)

Request to set the preferred orientations of a surface.

The request may be rejected by the server; to check wait on the result and check the applied value using mir_surface_get_preferred_orientation

Parameters
[in]surfaceThe surface to operate on
[in]orientationThe preferred orientation modes
Returns
A wait handle that can be passed to mir_wait_for
MirWaitHandle* mir_surface_set_state ( MirSurface surface,
MirSurfaceState  state 
)

Change the state of a surface.

Parameters
[in]surfaceThe surface to operate on
[in]stateThe new state of the surface
Returns
A wait handle that can be passed to mir_wait_for
MirWaitHandle* mir_surface_set_swapinterval ( MirSurface surface,
int  interval 
)

Set the swapinterval for mir_surface_swap_buffers.

EGL users should use eglSwapInterval directly. At the time being, only swapinterval of 0 or 1 is supported.

Parameters
[in]surfaceThe surface to operate on
[in]intervalThe number of vblank signals that mir_surface_swap_buffers will wait for
Returns
A wait handle that can be passed to mir_wait_for, or NULL if the interval could not be supported
void mir_surface_spec_release ( MirSurfaceSpec spec)

Release the resources held by a MirSurfaceSpec.

Parameters
[in]specSpecification to release
bool mir_surface_spec_set_buffer_usage ( MirSurfaceSpec spec,
MirBufferUsage  usage 
)

Set the requested buffer usage.

Parameters
[in]specSpecification to mutate
[in]usageRequested buffer usage
Returns
False if the requested buffer usage is invalid for this surface.
Note
If this call returns true then the server is guaranteed to honour this request. If the server is unable to create a surface with this buffer usage at the point mir_surface_create() is called it will instead return an invalid surface.
bool mir_surface_spec_set_fullscreen_on_output ( MirSurfaceSpec spec,
uint32_t  output_id 
)
Parameters
[in]specSpecification to mutate
[in]output_idID of output to place surface on. From MirDisplayOutput.output_id
Returns
False if setting surface fullscreen is invalid for this surface.
Note
If this call returns true then a valid surface returned from mir_surface_create() is guaranteed to be fullscreen on the specified output. An invalid surface is returned if the server unable to, or policy prevents it from, honouring this request.
bool mir_surface_spec_set_height ( MirSurfaceSpec spec,
unsigned  height 
)

Set the requested height, in pixels.

Parameters
[in]specSpecification to mutate
[in]heightRequested height.
Returns
False if height is invalid for a surface of this type
Note
The requested dimensions are a hint only. The server is not guaranteed to create a surface of any specific width or height.
bool mir_surface_spec_set_name ( MirSurfaceSpec spec,
char const *  name 
)

Set the requested name.

The surface name helps the user to distinguish between multiple surfaces from the same application. A typical desktop shell may use it to provide text in the window titlebar, in an alt-tab switcher, or equivalent.

Parameters
[in]specSpecification to mutate
[in]nameRequested name. This must be valid UTF-8. Copied into spec; clients can free the buffer passed after this call.
Returns
False if name is not a valid attribute of this surface type.
bool mir_surface_spec_set_pixel_format ( MirSurfaceSpec spec,
MirPixelFormat  format 
)

Set the requested pixel format.

Parameters
[in]specSpecification to mutate
[in]formatRequested pixel format
Returns
False if format is not a valid pixel format for this surface type.
Note
If this call returns true then the server is guaranteed to honour this request. If the server is unable to create a surface with this pixel format at the point mir_surface_create() is called it will instead return an invalid surface.
bool mir_surface_spec_set_preferred_orientation ( MirSurfaceSpec spec,
MirOrientationMode  mode 
)

Set the requested preferred orientation mode.

Parameters
[in]specSpecification to mutate
[in]modeRequested preferred orientation
Returns
False if the mode is not valid for this surface type.
Note
If the server is unable to create a surface with the preferred orientation at the point mir_surface_create() is called it will instead return an invalid surface.
bool mir_surface_spec_set_width ( MirSurfaceSpec spec,
unsigned  width 
)

Set the requested width, in pixels.

Parameters
[in]specSpecification to mutate
[in]widthRequested width.
Returns
False if width is invalid for a surface of this type
Note
The requested dimensions are a hint only. The server is not guaranteed to create a surface of any specific width or height.
MirWaitHandle* mir_surface_swap_buffers ( MirSurface surface,
mir_surface_callback  callback,
void *  context 
)

Advance a surface's buffer.

The returned handle remains valid until the next call to mir_surface_swap_buffers, until the surface has been released or the connection to the server has been released.

Warning
callback could be called from another thread. You must do any locking appropriate to protect your data accessed in the callback.
Parameters
[in]surfaceThe surface
[in]callbackCallback function to be invoked when the request completes
[in,out]contextUser data passed to the callback function
Returns
A handle that can be passed to mir_wait_for
void mir_surface_swap_buffers_sync ( MirSurface surface)

Advance a surface's buffer as in mir_surface_swap_buffers(), but also wait for the operation to complete.

Parameters
[in]surfaceThe surface whose buffer to advance
MirInputEventModifiers mir_touch_input_event_get_modifiers ( MirTouchInputEvent const *  event)

Retrieve the modifier keys pressed when the touch action occured.

Parameters
[in]eventThe key event
Returns
The modifier mask
MirTouchInputEventTouchAction mir_touch_input_event_get_touch_action ( MirTouchInputEvent const *  event,
size_t  touch_index 
)

Retrieve the action which occured for a touch at given index.

Parameters
[in]eventThe touch event
[in]touch_indexThe touch index. Must be less than (touch_count - 1).
Returns
Action performed for the touch at index.
float mir_touch_input_event_get_touch_axis_value ( MirTouchInputEvent const *  event,
size_t  touch_index,
MirTouchInputEventTouchAxis  axis 
)

Retrieve the axis value for a given axis on an indexed touch.

Parameters
[in]eventThe touch event
[in]touch_indexThe touch index. Must be less than (touch_count - 1).
[in]axisThe axis to retreive a value from
Returns
The value of the given axis
unsigned int mir_touch_input_event_get_touch_count ( MirTouchInputEvent const *  event)

Retrieve the number of touches reported for a given touch event.

Each touch is said to be index in the event and may be accessed by index 0, 1, ... , (touch_count - 1)

Parameters
[in]eventThe touch event
Returns
The number of touches
MirTouchInputEventTouchId mir_touch_input_event_get_touch_id ( MirTouchInputEvent const *  event,
size_t  touch_index 
)

Retrieve the TouchID for a touch at given index.

Parameters
[in]eventThe touch event
[in]touch_indexThe touch index. Must be less than (touch_count - 1).
Returns
ID of the touch at index
MirTouchInputEventTouchTooltype mir_touch_input_event_get_touch_tooltype ( MirTouchInputEvent const *  event,
size_t  touch_index 
)

Retrieve the tooltype for touch at given index.

Parameters
[in]eventThe touch event
[in]touch_indexThe touch index. Must be less than (touch_count - 1).
Returns
Tooltype used for the touch at index
void mir_wait_for ( MirWaitHandle wait_handle)

Wait on the supplied handle until all instances of the associated request have completed.

Parameters
[in]wait_handleHandle returned by an asynchronous request
void mir_wait_for_one ( MirWaitHandle wait_handle)

Wait on the supplied handle until one instance of the associated request has completed.

Use this instead of mir_wait_for in a threaded environment to ensure that the act of waiting does not clear all results associated with the wait handle; only one.

Parameters
[in]wait_handleHandle returned by an asynchronous request

Variable Documentation

MirDisplayInfo* display_info
char const* const mir_arrow_cursor_name

The standard arrow cursor (typically the system default)

char const* const mir_busy_cursor_name

The "wait" cursor, typically an hourglass or watch used during operations which prevent the user from interacting.

char const* const mir_caret_cursor_name

The caret or ibeam cursor, indicating acceptance of text input.

char const* const mir_closed_hand_cursor_name

The close handed cursor, typically used to indicate that a drag operation is in process which involves scrolling.

char const* const mir_default_cursor_name

A special cursor name for use with mir_cursor_configuration_from_name representing the system default cursor.

char const* const mir_diagonal_resize_bottom_to_top_cursor_name

The cursor used to indicate diagonal resize from top-right and bottom-left corners.

char const* const mir_diagonal_resize_top_to_bottom_cursor_name

The cursor used to indicate diagonal resize from bottom-left and top-right corners.

char const* const mir_disabled_cursor_name

A special cursor name for use with mir_cursor_configuration_from_name representing a disabled cursor image.

char const* const mir_horizontal_resize_cursor_name

The cursor used to indicate a horizontal resize operation.

char const* const mir_hsplit_resize_cursor_name

The cursor used for horizontal splitters, indicating that a handle may be dragged to adjust horizontal space.

char const* const mir_omnidirectional_resize_cursor_name

The cursor used to indicate resize with no directional constraint.

char const* const mir_open_hand_cursor_name

The open handed cursor, typically used to indicate that the area beneath the cursor may be clicked and dragged around.

char const* const mir_pointing_hand_cursor_name

The pointing hand cursor, typically used for clickable elements such as hyperlinks.

char const* const mir_vertical_resize_cursor_name

The cursor used to indicate a vertical resize operation.

char const* const mir_vsplit_resize_cursor_name

The cursor used for vertical splitters, indicating that a handle may be dragged to adjust vertical space.


Copyright © 2012,2013 Canonical Ltd.
Generated on Sat Feb 28 10:35:29 UTC 2015