object: add create/destroy api for external object 39/264539/1
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 16 Sep 2021 13:22:11 +0000 (22:22 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Fri, 17 Sep 2021 03:10:22 +0000 (12:10 +0900)
The pepper exposes the create/destroy object api.
The pepper_object_create() generates an external object.
The pepper user can create an external object and destroy it.

Change-Id: Icceb20653573dea69e258932cb42b7ed833994f9

src/lib/pepper/object.c
src/lib/pepper/pepper.h

index f9be9cb..d786d20 100644 (file)
@@ -76,6 +76,23 @@ pepper_object_fini(pepper_object_t *object)
        pepper_id_allocator_free(&id_allocator, object->id);
 }
 
+PEPPER_API pepper_object_t *
+pepper_object_create(size_t size)
+{
+       pepper_object_t *object;
+
+       object = pepper_object_alloc(PEPPER_OBJECT_EXTERNAL, size);
+       PEPPER_CHECK(object, return NULL, "pepper_object_alloc() failed.\n");
+
+       return object;
+}
+
+PEPPER_API void
+pepper_object_destroy(pepper_object_t *object)
+{
+       pepper_object_fini(object);
+}
+
 /**
  * Get the type of the given object
  *
index 597b4e9..3672e17 100644 (file)
@@ -288,6 +288,7 @@ typedef enum pepper_object_type {
        PEPPER_OBJECT_PLANE,        /**< #pepper_plane_t (internally used) */
        PEPPER_OBJECT_HWC,          /**< #pepper_hwc_t (internally used) */
        PEPPER_OBJECT_SUBCOMPOSITOR,/**< #pepper_compositor_t */
+       PEPPER_OBJECT_EXTERNAL,     /**< #object created outside pepper */
 } pepper_object_type_t;
 
 enum pepper_built_in_events {
@@ -807,6 +808,12 @@ struct pepper_input_event {
        double      value;      /**< pointer axis value. */
 };
 
+PEPPER_API pepper_object_t *
+pepper_object_create(size_t size);
+
+PEPPER_API void
+pepper_object_destroy(pepper_object_t *object);
+
 PEPPER_API pepper_object_type_t
 pepper_object_get_type(pepper_object_t *object);