This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch span-gl-clean
in repository efl.

View the commit online.

commit 13c6e2b1774bbb1b167cdc0692f10e5a8ca13b8f
Author: [email protected] <[email protected]>
AuthorDate: Sun Sep 13 16:10:41 2026 -0600

    ector: only export the symbol evas actually needs
    
    Carsten's review questioned the internal ector software functions this
    branch had marked ECTOR_API. Every ECTOR_API symbol becomes part of
    libector's exported ABI, and the unprefixed ones also pollute the global
    symbol namespace, so each one has to be justified by a real caller in
    another library.
    
    Checked against master, only one of the six holds up:
    
    - ector_software_surface_gl_comp_set stays exported. VG container code in
      libevas stores the GL mask FBO on the ector surface during render_pre.
      It cannot include ector_software_private.h, so it needs an exported
      entry point.
    
    - ector_software_surface_gl_comp_get is removed. Nothing calls it. The GL
      engine includes ector_software_private.h and reads gl_comp_surface and
      gl_comp_method directly from Ector_Software_Surface_Data.
    
    - ector_software_surface_set/get_span_collector are removed. They were
      prototypes left over from the first collector design and were never
      defined. Collectors are now allocated through the
      Span_Data.span_collector_alloc callback.
    
    - fetch_linear_gradient and fetch_radial_gradient go back to internal
      linkage. Their only callers are in ector_software_rasterizer.c. The GL
      path evaluates gradients in its shader and never called them.
    
    libector.so now exports only ector_software_surface_gl_comp_set from this
    set, no evas engine module has an undefined reference to the removed
    symbols, and ector_suite and evas_suite pass.
    
    Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
---
 src/lib/ector/software/ector_software_gradient.c |  4 ++--
 src/lib/ector/software/ector_software_private.h  |  7 ++-----
 src/lib/ector/software/ector_software_surface.c  | 22 ++++------------------
 src/lib/evas/canvas/evas_vg_private.h            |  9 ++++-----
 4 files changed, 12 insertions(+), 30 deletions(-)

diff --git a/src/lib/ector/software/ector_software_gradient.c b/src/lib/ector/software/ector_software_gradient.c
index d7b77e2346..a3ac0b8f53 100644
--- a/src/lib/ector/software/ector_software_gradient.c
+++ b/src/lib/ector/software/ector_software_gradient.c
@@ -75,7 +75,7 @@ _linear_helper_generic(uint32_t *buffer, int length, Ector_Renderer_Software_Gra
      }
 }
 
-ECTOR_API void
+void
 fetch_linear_gradient(uint32_t *buffer, Span_Data *data, int y, int x, int length)
 {
    Ector_Renderer_Software_Gradient_Data *g_data = data->gradient;
@@ -144,7 +144,7 @@ _radial_helper_generic(uint32_t *buffer, int length, Ector_Renderer_Software_Gra
 }
 
 
-ECTOR_API void
+void
 fetch_radial_gradient(uint32_t *buffer, Span_Data *data, int y, int x, int length)
 {
    Ector_Renderer_Software_Gradient_Data *g_data = data->gradient;
diff --git a/src/lib/ector/software/ector_software_private.h b/src/lib/ector/software/ector_software_private.h
index 96289ae5a5..ec0be22c51 100644
--- a/src/lib/ector/software/ector_software_private.h
+++ b/src/lib/ector/software/ector_software_private.h
@@ -180,10 +180,7 @@ struct _Ector_Software_Surface_Data
 };
 
 
-ECTOR_API void  ector_software_surface_set_span_collector(Ector_Surface *obj, void *collector);
-ECTOR_API void *ector_software_surface_get_span_collector(Ector_Surface *obj);
 ECTOR_API void  ector_software_surface_gl_comp_set(Ector_Surface *obj, void *gl_surface, int comp_method);
-ECTOR_API void  ector_software_surface_gl_comp_get(Ector_Surface *obj, void **gl_surface_out, int *comp_method_out);
 
 int  ector_software_gradient_init(void);
 void ector_software_rasterizer_init(Software_Rasterizer *rasterizer);
@@ -216,8 +213,8 @@ void ector_software_rasterizer_destroy_rle_data(Shape_Rle_Data *rle);
 
 // Gradient Api
 void destroy_color_table(Ector_Renderer_Software_Gradient_Data *gdata);
-ECTOR_API void fetch_linear_gradient(uint32_t *buffer, Span_Data *data, int y, int x, int length);
-ECTOR_API void fetch_radial_gradient(uint32_t *buffer, Span_Data *data, int y, int x, int length);
+void fetch_linear_gradient(uint32_t *buffer, Span_Data *data, int y, int x, int length);
+void fetch_radial_gradient(uint32_t *buffer, Span_Data *data, int y, int x, int length);
 
 void ector_software_thread_init(Ector_Software_Thread *thread);
 void ector_software_thread_shutdown(Ector_Software_Thread *thread);
diff --git a/src/lib/ector/software/ector_software_surface.c b/src/lib/ector/software/ector_software_surface.c
index 152758f745..865903e8dd 100644
--- a/src/lib/ector/software/ector_software_surface.c
+++ b/src/lib/ector/software/ector_software_surface.c
@@ -285,13 +285,14 @@ _ector_software_surface_ector_surface_draw_image(Eo *obj EINA_UNUSED,
    return EINA_TRUE;
 }
 
-/* GL composite mask accessors.
+/* GL composite mask accessor.
  *
  * Called by efl_canvas_vg_container.c during render_pre to store the mask FBO
  * surface and composite method so that eng_ector_end() (in the GL engine) can
- * look them up via _gl_comp_get and populate Span_Pipe_Params.mask_tex.
+ * read them from Ector_Software_Surface_Data and populate
+ * Span_Pipe_Params.mask_tex.
  *
- * These are the only way for canvas code (which cannot include
+ * This is the only way for canvas code (which cannot include
  * ector_software_private.h) to reach Ector_Software_Surface_Data fields. */
 ECTOR_API void
 ector_software_surface_gl_comp_set(Ector_Surface *obj,
@@ -303,20 +304,5 @@ ector_software_surface_gl_comp_set(Ector_Surface *obj,
    pd->gl_comp_method  = comp_method;
 }
 
-ECTOR_API void
-ector_software_surface_gl_comp_get(Ector_Surface *obj,
-                                   void **gl_surface_out, int *comp_method_out)
-{
-   Ector_Software_Surface_Data *pd = efl_data_scope_get(obj, ECTOR_SOFTWARE_SURFACE_CLASS);
-   if (!pd)
-     {
-        if (gl_surface_out)  *gl_surface_out  = NULL;
-        if (comp_method_out) *comp_method_out = 0;
-        return;
-     }
-   if (gl_surface_out)  *gl_surface_out  = pd->gl_comp_surface;
-   if (comp_method_out) *comp_method_out = pd->gl_comp_method;
-}
-
 #include "ector_software_surface.eo.c"
 #include "ector_renderer_software.eo.c"
diff --git a/src/lib/evas/canvas/evas_vg_private.h b/src/lib/evas/canvas/evas_vg_private.h
index b2f011d6b3..b13bf7b190 100644
--- a/src/lib/evas/canvas/evas_vg_private.h
+++ b/src/lib/evas/canvas/evas_vg_private.h
@@ -148,13 +148,12 @@ Eina_Bool                   evas_cache_vg_anim_sector_get(const Vg_Cache_Entry*
 unsigned int                evas_cache_vg_anim_frame_count_get(const Vg_Cache_Entry *vg_entry);
 Eina_Size2D                 evas_cache_vg_entry_default_size_get(const Vg_Cache_Entry *vg_entry);
 void *                      evas_cache_vg_surface_key_get(Efl_Canvas_Vg_Node *root, int w, int h, int frame_idx);
-/* Forward declarations for ector software surface GL composite accessors.
- * The implementations live in src/lib/ector/software/ector_software_surface.c.
- * These allow canvas code (which cannot include ector_software_private.h) to
- * store and retrieve the GL FBO mask surface reference on the shared ector
+/* Forward declaration for the ector software surface GL composite accessor.
+ * The implementation lives in src/lib/ector/software/ector_software_surface.c.
+ * This allows canvas code (which cannot include ector_software_private.h) to
+ * store the GL FBO mask surface reference on the shared ector
  * surface during render_pre, so that eng_ector_end() can find it. */
 ECTOR_API void ector_software_surface_gl_comp_set(Ector_Surface *obj, void *gl_surface, int comp_method);
-ECTOR_API void ector_software_surface_gl_comp_get(Ector_Surface *obj, void **gl_surface_out, int *comp_method_out);
 
 /**
  * Set the GL composite surface on @p ector if @p target_cd holds a valid

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to