e_comp_object: move E_Comp_Object structure to e_comp_object_inter.h file 32/304732/1
authorSooChan Lim <sc1.lim@samsung.com>
Tue, 12 Dec 2023 05:03:14 +0000 (14:03 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 23 Jan 2024 09:19:21 +0000 (18:19 +0900)
Change-Id: I5e14b0a510c2c910eee9948a891e049f637b7b59

src/bin/e_comp_object.c
src/bin/e_comp_object_intern.h

index f287ad0..7cc7660 100644 (file)
@@ -1,4 +1,7 @@
 #include "e.h"
+#ifdef REFACTOR_DESK_AREA
+#include "e_comp_object_intern.h"
+#endif
 
 /* data keys:
 
@@ -56,6 +59,8 @@
 #define RENDER_DEBUG(...)
 #endif
 
+#ifdef REFACTOR_DESK_AREA
+#else
 typedef struct _E_Comp_Object
 {
    EINA_INLIST;
@@ -192,6 +197,7 @@ typedef struct _E_Comp_Object
 //#endif
      } events;
 } E_Comp_Object;
+#endif
 
 typedef struct _E_Input_Rect_Data
 {
index 56374ce..675076b 100644 (file)
@@ -3,6 +3,167 @@
 
 #include <wayland-server.h>
 
+//#ifdef REFACTOR_DESK_AREA
+typedef struct _E_Comp_Object E_Comp_Object;
+struct _E_Comp_Object
+{
+   EINA_INLIST;
+
+   int                  x, y, w, h;  // geometry
+
+   E_Client *ec;
+
+   E_Comp_Object_Frame client_inset;
+   struct
+   {
+      double          start;
+      double          val;
+      int             x, y;
+      E_Direction     dir;
+      Ecore_Animator *anim;
+   } shade;
+
+   Eina_Stringshare   *frame_theme;
+   Eina_Stringshare   *frame_name;
+   Eina_Stringshare   *visibility_effect; //effect when toggling visibility
+
+   E_Comp_Object_Content_Type content_type; // type of e.swallow.content
+
+   Evas_Object         *smart_obj;  // smart object
+   Evas_Object         *clip; // clipper over effect object
+   Evas_Object         *input_obj; // input smart object
+   Evas_Object         *obj;  // composite object
+   Evas_Object         *frame_object; // for client frames
+   Evas_Object         *shobj;  // shadow object
+   Evas_Object         *effect_obj; // effects object
+   Evas_Object         *transform_bg_obj;   // transform backgroung with keep_ratio option
+   struct
+     {
+        int r, g, b, a;
+     } transform_bg_color;
+   Evas_Object         *transform_tranp_obj;// transform transp rect obj
+   Evas_Object         *default_input_obj; // default input object
+   unsigned int         layer; //e_comp_canvas_layer_map(cw->ec->layer)
+   Eina_List           *obj_mirror;  // extra mirror objects
+   Eina_Tiler          *updates; //render update regions
+   Eina_Tiler          *pending_updates; //render update regions which are about to render
+
+   Evas_Native_Surface *ns; //for custom gl rendering
+
+   struct wl_listener   buffer_destroy_listener;
+
+   unsigned int         update_count;  // how many updates have happened to this obj
+
+   unsigned int         opacity;  // opacity set with _NET_WM_WINDOW_OPACITY
+
+   unsigned int         animating;  // it's busy animating
+   unsigned int         failures; //number of consecutive e_pixmap_image_draw() failures
+   unsigned int         force_visible; //number of visible obj_mirror objects
+   Eina_Bool            delete_pending : 1;  // delete pending
+   Eina_Bool            defer_hide : 1;  // flag to get hide to work on deferred hide
+   Eina_Bool            showing : 1;  // object is currently in "show" animation
+   Eina_Bool            hiding : 1;   // object is currently in "hide" animation
+   Eina_Bool            visible : 1;  // is visible
+
+   Eina_Bool            shaped : 1;  // is shaped
+   Eina_Bool            update : 1;  // has updates to fetch
+   Eina_Bool            redirected : 1;  // has updates to fetch
+   Eina_Bool            native : 1;  // native
+
+   Eina_Bool            nocomp : 1;  // nocomp applied
+   Eina_Bool            hwc_need_update : 1;  // this window updated while on e_plane to do hw composite
+   Eina_Bool            real_hid : 1;  // last hide was a real window unmap
+
+   Eina_Bool            effect_set : 1; //effect_obj has a valid group
+   Eina_Bool            effect_running : 1; //effect_obj is playing an animation
+   Eina_Bool            effect_clip : 1; //effect_obj is clipped
+   Eina_Bool            effect_clip_able : 1; //effect_obj will be clipped for effects
+
+   Eina_Bool            updates_exist : 1;
+   Eina_Bool            updates_full : 1; // entire object will be updated
+
+   Eina_Bool            force_move : 1;
+   Eina_Bool            frame_extends : 1; //frame may extend beyond object size
+   Eina_Bool            blanked : 1; //window is rendering blank content (externally composited)
+   Eina_Bool            external_content : 1; // e.swallow.content(obj) is set by external evas object
+   Eina_Bool            user_alpha_set : 1;
+   Eina_Bool            user_alpha : 1;
+
+   struct
+     {
+        Evas_Object         *obj; // mask object: transparent parts of this comp object allow to copy the alpha to current H/W plane.
+        Evas_Render_Op       saved_render_op; // saved render operation value to restore when clear a mask.
+     } mask;
+
+   struct
+     {
+        Evas_Object         *obj;
+        int                  w, h;
+     } indicator; //indicator object for internal client
+
+   struct
+     {
+        Evas_Object         *mask_obj;
+        Eina_Bool           enable;
+        Eina_Bool           mask_set;
+        int                 mask_x, mask_y, mask_w, mask_h;
+     } dim;
+
+   Eina_Bool            render_trace : 1; // trace co->obj rendering on canvas
+
+   tbm_surface_h        tbm_surface;
+   E_Comp_Image_Filter  image_filter;
+   Eina_Bool            set_mouse_callbacks;
+
+   struct
+     {
+        int lock;
+        E_Comp_Wl_Buffer_Ref buffer_ref;
+        Eina_Bool            pending_move_set;
+        int                  pending_move_x, pending_move_y;
+        Eina_Bool            pending_resize_set;
+        int                  pending_resize_w, pending_resize_h;
+     } render_update_lock;
+
+   struct
+     {
+        Eina_Bool        set;
+        int              user_r;
+        int              user_g;
+        int              user_b;
+        int              user_a;
+     } transparent;
+
+   struct
+     {
+        struct wl_signal lower;
+        struct wl_signal raise;
+        struct wl_signal show;
+        struct wl_signal hide;
+        struct wl_signal set_layer;
+        struct wl_signal stack_above;
+        struct wl_signal stack_below;
+     } events;
+};
+//#endif
+
+typedef struct _E_Comp_Object_Data_Set_Layer
+{
+   E_Comp_Object *cw;
+   int   layer; // layer
+} E_Comp_Object_Data_Set_Layer;
+
+typedef struct _E_Comp_Object_Data_Stack_Above
+{
+   E_Comp_Object *cw;
+   Evas_Object   *above_obj; // above_obj
+} E_Comp_Object_Data_Stack_Above;
+
+typedef struct _E_Comp_Object_Data_Stack_Below
+{
+   E_Comp_Object *cw;
+   Evas_Object   *below_obj; // below_obj
+} E_Comp_Object_Data_Stack_Below;
 EINTERN void e_comp_object_lower_listener_add(Evas_Object *obj, struct wl_listener *listener);
 //#ifdef REFACTOR_DESK_AREA
 EINTERN void e_comp_object_raise_listener_add(Evas_Object *obj, struct wl_listener *listener);