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.