add tdm_layer_get_buffer_flags 65/76865/2 accepted/tizen/common/20160701.100341 accepted/tizen/ivi/20160630.004051 accepted/tizen/mobile/20160630.004128 accepted/tizen/tv/20160630.004034 accepted/tizen/wearable/20160630.004114 submit/tizen/20160629.121628
authorSooChan Lim <sc1.lim@samsung.com>
Mon, 27 Jun 2016 12:53:28 +0000 (21:53 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 27 Jun 2016 13:03:17 +0000 (22:03 +0900)
There can be the layer which can set and display the specific buffer
with the specific flags. Therefore, tdm user has to know the buffer flags
to create the buffer which can be set to the specified layer.

Change-Id: I1df658f4cbb4ca6019a7df1fe72c77db3d6db401

include/tdm.h
include/tdm_backend.h
src/tdm_display.c

index 4af34d7..6ba4996 100644 (file)
@@ -653,6 +653,15 @@ tdm_capture *
 tdm_layer_create_capture(tdm_layer *layer, tdm_error *error);
 
 /**
+ * @brief Get buffer flags from a layer object
+ * @param[in] layer A layer object
+ * @param[out] flags a buffer flags value
+ * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ */
+tdm_error
+tdm_layer_get_buffer_flags(tdm_layer *layer, unsigned int *flags);
+
+/**
  * @brief Destroy a pp object
  * @param[in] pp A pp object
  * @see tdm_display_create_pp
index 8967b52..0256e92 100644 (file)
@@ -621,6 +621,14 @@ typedef struct _tdm_func_layer {
         */
        tdm_capture *(*layer_create_capture)(tdm_layer *layer, tdm_error *error);
 
+       /**
+        * @brief Get buffer flags which the layer can support.
+        * @param[in] layer A layer object
+        * @param[out] flags The buffer flags which should be the tbm_bo flags
+        * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+        */
+       tdm_error (*layer_get_buffer_flags)(tdm_layer *layer, unsigned int *flags);
+
        void (*reserved1)(void);
        void (*reserved2)(void);
        void (*reserved3)(void);
@@ -628,7 +636,6 @@ typedef struct _tdm_func_layer {
        void (*reserved5)(void);
        void (*reserved6)(void);
        void (*reserved7)(void);
-       void (*reserved8)(void);
 } tdm_func_layer;
 
 /**
index e691501..17c02aa 100644 (file)
@@ -1839,3 +1839,26 @@ tdm_layer_create_capture(tdm_layer *layer, tdm_error *error)
 
        return capture;
 }
+
+EXTERN tdm_error
+tdm_layer_get_buffer_flags(tdm_layer *layer, unsigned int *flags)
+{
+       tdm_func_layer *func_layer;
+       LAYER_FUNC_ENTRY();
+
+       _pthread_mutex_lock(&private_display->lock);
+
+       func_layer = &private_display->func_layer;
+
+       if (!func_layer->layer_get_buffer_flags) {
+               _pthread_mutex_unlock(&private_display->lock);
+               TDM_ERR("not implemented!!");
+               return TDM_ERROR_NOT_IMPLEMENTED;
+       }
+
+       ret = func_layer->layer_get_buffer_flags(private_layer->layer_backend, flags);
+
+       _pthread_mutex_unlock(&private_display->lock);
+
+       return ret;
+}