buffer: correct the buffer management
[platform/core/uifw/libtdm.git] / src / tdm_private.h
index 5631377..3e64429 100644 (file)
@@ -230,8 +230,12 @@ struct _tdm_private_layer {
        tdm_caps_layer caps;
        tdm_layer *layer_backend;
 
-       tdm_private_layer_buffer *pending_buffer;
+       /* When a buffer is set to a layer, it will be stored to waiting_buffer.
+        * And when a layer is committed, it will be moved to committed_buffer.
+        * Finally when a commit handler is called, it will be moved to showing_buffer.
+        */
        tdm_private_layer_buffer *waiting_buffer;
+       tdm_private_layer_buffer *committed_buffer;   /* for output_commit */
        tdm_private_layer_buffer *showing_buffer;
        tbm_surface_queue_h buffer_queue;
 
@@ -347,6 +351,8 @@ struct _tdm_private_layer_commit_handler {
        tdm_private_layer *private_layer;
        tdm_layer_commit_handler func;
        void *user_data;
+
+       tdm_private_layer_buffer *committed_buffer;   /* for layer_commit */
 };
 
 struct _tdm_private_change_handler {