*/
tdm_pp *(*display_create_pp)(tdm_backend_data *bdata, tdm_error *error);
- void (*reserved1)(void);
- void (*reserved2)(void);
+ /* virtual */
+ tdm_output *(*display_output_create)(tdm_backend_data *bdata, const char *name, tdm_error *error);
+ tdm_error (*display_output_destroy)(tdm_backend_data *bdata, tdm_output *output);
+
void (*reserved3)(void);
void (*reserved4)(void);
void (*reserved5)(void);
*/
tdm_hwc *(*output_get_hwc)(tdm_output *output, tdm_error *error);
+ /* virtual */
+ tdm_error (*output_set_available_mode)(tdm_output *output, const tdm_output_mode *modes, int count);
+ tdm_error (*output_set_physical_size)(tdm_output *output, unsigned int mmwidth, unsigned int mmheight);
+ tdm_error (*output_set_connect)(tdm_output *output);
+ tdm_error (*output_set_disconnect)(tdm_output *output);
+
void (*reserved5)(void);
void (*reserved6)(void);
void (*reserved7)(void);
(((major) << 16) & TDM_BACKEND_MAJOR_VERSION_MASK) | \
((minor) & TDM_BACKEND_MINOR_VERSION_MASK)
+
+#define TDM_BACKEND_ABI_VERSION_1_0 TDM_BACKEND_SET_ABI_VERSION(1, 0)
+#define TDM_BACKEND_ABI_VERSION_2_0 TDM_BACKEND_SET_ABI_VERSION(2, 0)
+#define TDM_BACKEND_ABI_LATEST_VERSION TDM_BACKEND_ABI_VERSION_2_0 /**< the latest version of the tdm backend abi */
+
/**
* @brief
* This MACRO is deprecated since 1.2.0. Use TDM_BACKEND_SET_ABI_VERSION instead of this.
tdm_backend_register_func_layer(tdm_display *dpy, tdm_func_layer *func_layer);
/**
+ * @brief Register the backend hwc functions to a display
+ * @param[in] dpy A display object
+ * @param[in] func_hwc hwc functions
+ * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ * @see tdm_backend_register_func_display, tdm_backend_register_func_output
+ * @remarks
+ * A backend module @b SHOULD set the backend hwc functions at least.
+ * @since 2.0.0
+ */
+tdm_error
+tdm_backend_register_func_hwc(tdm_display *dpy, tdm_func_hwc *func_hwc);
+
+/**
* @brief Register the backend hwc_window functions to a display
* @param[in] dpy A display object
* @param[in] func_hwc_window hwc_window functions
tdm_backend_register_func_capture(tdm_display *dpy,
tdm_func_capture *func_capture);
+/* virtual */
+tdm_error
+tdm_backend_register_output(tdm_display *dpy, tdm_output *output);
+
+void
+tdm_backend_unregister_output(tdm_display *dpy, tdm_output *output);
+
/**
* @brief Increase the ref_count of a TDM buffer
* @details