move tbm_surface_internal.h file to c file.
[platform/core/uifw/libtdm.git] / include / tdm_backend.h
index d43d73c..72136b1 100644 (file)
@@ -335,8 +335,10 @@ typedef struct _tdm_func_display {
         */
        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);
@@ -548,6 +550,12 @@ typedef struct _tdm_func_output {
         */
        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);
@@ -1134,6 +1142,11 @@ typedef tdm_error (*tdm_event_loop_timer_handler)(void *user_data);
        (((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.
@@ -1210,6 +1223,19 @@ tdm_error
 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
@@ -1249,6 +1275,13 @@ tdm_error
 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