ector - code clean up. 56/259056/11
authorHermet Park <chuneon.park@samsung.com>
Mon, 31 May 2021 10:46:36 +0000 (19:46 +0900)
committerHermet Park <chuneon.park@samsung.com>
Thu, 10 Jun 2021 02:24:56 +0000 (02:24 +0000)
remove unused code, leave the ector buffer for evas_filter feature.

Change-Id: I86ad883fc094fdcc9c3216fe2e17d51ebe6b6db1

54 files changed:
src/lib/ector/Ector.h
src/lib/ector/ector_buffer.c
src/lib/ector/ector_gl_internal.h [deleted file]
src/lib/ector/ector_main.c
src/lib/ector/ector_private.h
src/lib/ector/ector_renderer.c [deleted file]
src/lib/ector/ector_renderer.eo [deleted file]
src/lib/ector/ector_renderer.h [deleted file]
src/lib/ector/ector_renderer_gradient.c [deleted file]
src/lib/ector/ector_renderer_gradient.eo [deleted file]
src/lib/ector/ector_renderer_gradient_linear.c [deleted file]
src/lib/ector/ector_renderer_gradient_linear.eo [deleted file]
src/lib/ector/ector_renderer_gradient_radial.c [deleted file]
src/lib/ector/ector_renderer_gradient_radial.eo [deleted file]
src/lib/ector/ector_renderer_image.c [deleted file]
src/lib/ector/ector_renderer_image.eo [deleted file]
src/lib/ector/ector_renderer_shape.c [deleted file]
src/lib/ector/ector_renderer_shape.eo [deleted file]
src/lib/ector/ector_surface.eo [deleted file]
src/lib/ector/ector_surface.h [deleted file]
src/lib/ector/ector_util.h [deleted file]
src/lib/ector/gl/Ector_GL.h
src/lib/ector/gl/ector_gl_private.h
src/lib/ector/gl/ector_gl_shader.c [deleted file]
src/lib/ector/gl/ector_gl_surface.c [deleted file]
src/lib/ector/gl/ector_gl_surface.eo [deleted file]
src/lib/ector/gl/ector_renderer_gl.c [deleted file]
src/lib/ector/gl/ector_renderer_gl.eo [deleted file]
src/lib/ector/gl/ector_renderer_gl_gradient_linear.c [deleted file]
src/lib/ector/gl/ector_renderer_gl_gradient_linear.eo [deleted file]
src/lib/ector/gl/ector_renderer_gl_gradient_radial.c [deleted file]
src/lib/ector/gl/ector_renderer_gl_gradient_radial.eo [deleted file]
src/lib/ector/gl/ector_renderer_gl_shape.c [deleted file]
src/lib/ector/gl/ector_renderer_gl_shape.eo [deleted file]
src/lib/ector/gl/meson.build
src/lib/ector/gl/shader/.gitignore [deleted file]
src/lib/ector/gl/shader/ector_gl_shaders.x [deleted file]
src/lib/ector/gl/shader/fragment.glsl [deleted file]
src/lib/ector/gl/shader/gen_shaders.sh [deleted file]
src/lib/ector/gl/shader/include.glsl [deleted file]
src/lib/ector/gl/shader/vertex.glsl [deleted file]
src/lib/ector/meson.build
src/lib/ector/software/ector_software_private.h
src/lib/evas/canvas/efl_canvas_vg_container.c
src/lib/evas/canvas/efl_canvas_vg_gradient_linear.c
src/lib/evas/canvas/efl_canvas_vg_gradient_radial.c
src/lib/evas/canvas/efl_canvas_vg_image.c
src/lib/evas/canvas/efl_canvas_vg_object.c
src/lib/evas/canvas/efl_canvas_vg_shape.c
src/lib/evas/canvas/evas_main.c
src/lib/evas/canvas/evas_vg_private.h
src/lib/evas/include/evas_private.h
src/modules/evas/engines/gl_generic/evas_engine.c
src/modules/evas/engines/software_generic/evas_engine.c

index 9a7a7d3..81f0d12 100644 (file)
@@ -87,47 +87,6 @@ extern "C" {
 #ifdef EFL_BETA_API_SUPPORT
 
 /**
- * @typedef Ector_Surface
- * The base type to render content into.
- */
-typedef Eo Ector_Surface;
-
-/**
- * @typedef Ector_Renderer
- * The base type describing what to render.
- */
-typedef Eo Ector_Renderer;
-
-/**
- * @typedef Ector_Colorspace
- * The definition of colorspace.
- */
-  // FIXME: Enable this when we have merged Emile
-/* typedef Evas_Colorspace Ector_Colorspace; */
-
-/**
- * Priorities
- */
-typedef enum _Ector_Priority
-{
-  ECTOR_PRIORITY_NONE = 0,
-  ECTOR_PRIORITY_MARGINAL = 64,
-  ECTOR_PRIORITY_SECONDARY = 128,
-  ECTOR_PRIORITY_PRIMARY = 256,
-} Ector_Priority;
-
-/**
- * What kind of update is being pushed
- */
-typedef enum _Ector_Update_Type
-{
-  ECTOR_UPDATE_BACKGROUND = 1, /* All the previous state in that area is reset to the new updated profile */
-  ECTOR_UPDATE_EMPTY = 2, /* Pushing empty area (no visible pixels at all, no need to read this surface to render it) */
-  ECTOR_UPDATE_ALPHA = 4, /* Pushing some transparent pixels (this impacts the under layer and will require reading back the surface where this surface is blitted) */
-  ECTOR_UPDATE_OPAQUE = 8 /* Pushing some opaque pixels (this means that there is no need to read the under layer when blitting this surface) */
-} Ector_Update_Type;
-
-/**
  * @brief Init the ector subsystem
  * @return @c EINA_TRUE on success.
  *
@@ -143,28 +102,9 @@ EAPI int ector_init(void);
  */
 EAPI int ector_shutdown(void);
 
-/**
- * @brief Registers OpenGL API calls with the internal Ector_GL_API.
- *
- * @param glsym Function to use for looking up dynamically loaded symbols
- * @param lib Dynamically loaded shared object, or RTLD_DEFAULT or RTLD_NEXT
- * @return EINA_TRUE if call succeeded, EINA_FALSE if glsym was undefined or an error occurred
- *
- * The RTLD_DEFAULT and RTLD_NEXT pseudo-handles can be passed as lib to
- * look up the first or next occurrence of the desired symbol in the dynamic
- * library search order.
- *
- * @see dlsym()
- */
-EAPI Eina_Bool ector_glsym_set(void *(*glsym)(void *lib, const char *name), void *lib);
 
-/* Avoid redefinition of types */
-#define _ECTOR_SURFACE_EO_CLASS_TYPE
-#define _ECTOR_RENDERER_EO_CLASS_TYPE
+#include "ector_buffer.h"
 
-#include "ector_surface.h"
-#include "ector_renderer.h"
-#include "ector_util.h"
 
 #endif
 
index 7afa5fe..7d9416f 100644 (file)
@@ -28,4 +28,3 @@ _ector_buffer_flags_get(const Eo *obj EINA_UNUSED, Ector_Buffer_Data *pd EINA_UN
 }
 
 #include "ector_buffer.eo.c"
-#include "ector_surface.eo.c"
diff --git a/src/lib/ector/ector_gl_internal.h b/src/lib/ector/ector_gl_internal.h
deleted file mode 100644 (file)
index eca1aeb..0000000
+++ /dev/null
@@ -1,997 +0,0 @@
-#ifndef ECTOR_GL_INTERNAL_H
-# define ECTOR_GL_INTERNAL_H
-
-typedef struct _Ector_GL_API Ector_GL_API;
-
-extern Ector_GL_API GL;
-
-// ignore everything below this point
-// --------------------------------------------------
-
-/*
-Some of the remainder of this file is lifted from Khronos' public
-EGL/glext headers.  The copyright notice from a recent version of the
-headers is reproduced here.
-
-Much of it is from Mesa, so their copyright is included as well.
-*/
-
-/*
-** Copyright (c) 2013-2016 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
- * Mesa 3-D graphics library
- *
- * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
- * Copyright (C) 2009  VMware, Inc.  All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-
-#ifdef GL_GLES
-typedef intptr_t EGLAttrib;
-typedef unsigned int EGLenum;
-typedef void *EGLDisplay;
-typedef void *EGLContext;
-typedef void *EGLClientBuffer;
-#define CLOWNBOAT UTTERLY
-#endif
-
-#define GL_DEPTH_BUFFER_BIT               0x00000100
-#define GL_STENCIL_BUFFER_BIT             0x00000400
-#define GL_COLOR_BUFFER_BIT               0x00004000
-
-/* Boolean */
-#define GL_FALSE                          0
-#define GL_TRUE                           1
-
-/* BeginMode */
-#define GL_POINTS                         0x0000
-#define GL_LINES                          0x0001
-#define GL_LINE_LOOP                      0x0002
-#define GL_LINE_STRIP                     0x0003
-#define GL_TRIANGLES                      0x0004
-#define GL_TRIANGLE_STRIP                 0x0005
-#define GL_TRIANGLE_FAN                   0x0006
-
-/* AlphaFunction (not supported in ES20) */
-/*      GL_NEVER */
-/*      GL_LESS */
-/*      GL_EQUAL */
-/*      GL_LEQUAL */
-/*      GL_GREATER */
-/*      GL_NOTEQUAL */
-/*      GL_GEQUAL */
-/*      GL_ALWAYS */
-
-/* BlendingFactorDest */
-#define GL_ZERO                           0
-#define GL_ONE                            1
-#define GL_SRC_COLOR                      0x0300
-#define GL_ONE_MINUS_SRC_COLOR            0x0301
-#define GL_SRC_ALPHA                      0x0302
-#define GL_ONE_MINUS_SRC_ALPHA            0x0303
-#define GL_DST_ALPHA                      0x0304
-#define GL_ONE_MINUS_DST_ALPHA            0x0305
-
-/* BlendingFactorSrc */
-/*      GL_ZERO */
-/*      GL_ONE */
-#define GL_DST_COLOR                      0x0306
-#define GL_ONE_MINUS_DST_COLOR            0x0307
-#define GL_SRC_ALPHA_SATURATE             0x0308
-/*      GL_SRC_ALPHA */
-/*      GL_ONE_MINUS_SRC_ALPHA */
-/*      GL_DST_ALPHA */
-/*      GL_ONE_MINUS_DST_ALPHA */
-
-/* BlendEquationSeparate */
-#define GL_FUNC_ADD                       0x8006
-#define GL_BLEND_EQUATION                 0x8009
-#define GL_BLEND_EQUATION_RGB             0x8009    /* same as BLEND_EQUATION */
-#define GL_BLEND_EQUATION_ALPHA           0x883D
-
-/* BlendSubtract */
-#define GL_FUNC_SUBTRACT                  0x800A
-#define GL_FUNC_REVERSE_SUBTRACT          0x800B
-
-/* Separate Blend Functions */
-#define GL_BLEND_DST_RGB                  0x80C8
-#define GL_BLEND_SRC_RGB                  0x80C9
-#define GL_BLEND_DST_ALPHA                0x80CA
-#define GL_BLEND_SRC_ALPHA                0x80CB
-#define GL_CONSTANT_COLOR                 0x8001
-#define GL_ONE_MINUS_CONSTANT_COLOR       0x8002
-#define GL_CONSTANT_ALPHA                 0x8003
-#define GL_ONE_MINUS_CONSTANT_ALPHA       0x8004
-#define GL_BLEND_COLOR                    0x8005
-
-/* Buffer Objects */
-#define GL_ARRAY_BUFFER                   0x8892
-#define GL_ELEMENT_ARRAY_BUFFER           0x8893
-#define GL_ARRAY_BUFFER_BINDING           0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING   0x8895
-
-#define GL_STREAM_DRAW                    0x88E0
-#define GL_STATIC_DRAW                    0x88E4
-#define GL_DYNAMIC_DRAW                   0x88E8
-
-#define GL_BUFFER_SIZE                    0x8764
-#define GL_BUFFER_USAGE                   0x8765
-
-#define GL_CURRENT_VERTEX_ATTRIB          0x8626
-
-/* CullFaceMode */
-#define GL_FRONT                          0x0404
-#define GL_BACK                           0x0405
-#define GL_FRONT_AND_BACK                 0x0408
-
-/* DepthFunction */
-/*      GL_NEVER */
-/*      GL_LESS */
-/*      GL_EQUAL */
-/*      GL_LEQUAL */
-/*      GL_GREATER */
-/*      GL_NOTEQUAL */
-/*      GL_GEQUAL */
-/*      GL_ALWAYS */
-
-/* EnableCap */
-#define GL_TEXTURE_2D                     0x0DE1
-#define GL_CULL_FACE                      0x0B44
-#define GL_BLEND                          0x0BE2
-#define GL_DITHER                         0x0BD0
-#define GL_STENCIL_TEST                   0x0B90
-#define GL_DEPTH_TEST                     0x0B71
-#define GL_SCISSOR_TEST                   0x0C11
-#define GL_POLYGON_OFFSET_FILL            0x8037
-#define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
-#define GL_SAMPLE_COVERAGE                0x80A0
-
-/* ErrorCode */
-#define GL_NO_ERROR                       0
-#define GL_INVALID_ENUM                   0x0500
-#define GL_INVALID_VALUE                  0x0501
-#define GL_INVALID_OPERATION              0x0502
-#define GL_OUT_OF_MEMORY                  0x0505
-
-/* FrontFaceDirection */
-#define GL_CW                             0x0900
-#define GL_CCW                            0x0901
-
-/* GetPName */
-#define GL_LINE_WIDTH                     0x0B21
-#define GL_ALIASED_POINT_SIZE_RANGE       0x846D
-#define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
-#define GL_CULL_FACE_MODE                 0x0B45
-#define GL_FRONT_FACE                     0x0B46
-#define GL_DEPTH_RANGE                    0x0B70
-#define GL_DEPTH_WRITEMASK                0x0B72
-#define GL_DEPTH_CLEAR_VALUE              0x0B73
-#define GL_DEPTH_FUNC                     0x0B74
-#define GL_STENCIL_CLEAR_VALUE            0x0B91
-#define GL_STENCIL_FUNC                   0x0B92
-#define GL_STENCIL_FAIL                   0x0B94
-#define GL_STENCIL_PASS_DEPTH_FAIL        0x0B95
-#define GL_STENCIL_PASS_DEPTH_PASS        0x0B96
-#define GL_STENCIL_REF                    0x0B97
-#define GL_STENCIL_VALUE_MASK             0x0B93
-#define GL_STENCIL_WRITEMASK              0x0B98
-#define GL_STENCIL_BACK_FUNC              0x8800
-#define GL_STENCIL_BACK_FAIL              0x8801
-#define GL_STENCIL_BACK_PASS_DEPTH_FAIL   0x8802
-#define GL_STENCIL_BACK_PASS_DEPTH_PASS   0x8803
-#define GL_STENCIL_BACK_REF               0x8CA3
-#define GL_STENCIL_BACK_VALUE_MASK        0x8CA4
-#define GL_STENCIL_BACK_WRITEMASK         0x8CA5
-#define GL_VIEWPORT                       0x0BA2
-#define GL_SCISSOR_BOX                    0x0C10
-/*      GL_SCISSOR_TEST */
-#define GL_COLOR_CLEAR_VALUE              0x0C22
-#define GL_COLOR_WRITEMASK                0x0C23
-#define GL_UNPACK_ALIGNMENT               0x0CF5
-#define GL_PACK_ALIGNMENT                 0x0D05
-#define GL_MAX_TEXTURE_SIZE               0x0D33
-#define GL_MAX_VIEWPORT_DIMS              0x0D3A
-#define GL_SUBPIXEL_BITS                  0x0D50
-#define GL_RED_BITS                       0x0D52
-#define GL_GREEN_BITS                     0x0D53
-#define GL_BLUE_BITS                      0x0D54
-#define GL_ALPHA_BITS                     0x0D55
-#define GL_DEPTH_BITS                     0x0D56
-#define GL_STENCIL_BITS                   0x0D57
-#define GL_POLYGON_OFFSET_UNITS           0x2A00
-/*      GL_POLYGON_OFFSET_FILL */
-#define GL_POLYGON_OFFSET_FACTOR          0x8038
-#define GL_TEXTURE_BINDING_2D             0x8069
-#define GL_SAMPLE_BUFFERS                 0x80A8
-#define GL_SAMPLES                        0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE          0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT         0x80AB
-
-/* GetTextureParameter */
-/*      GL_TEXTURE_MAG_FILTER */
-/*      GL_TEXTURE_MIN_FILTER */
-/*      GL_TEXTURE_WRAP_S */
-/*      GL_TEXTURE_WRAP_T */
-
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
-
-/* HintMode */
-#define GL_DONT_CARE                      0x1100
-#define GL_FASTEST                        0x1101
-#define GL_NICEST                         0x1102
-
-/* HintTarget */
-#define GL_GENERATE_MIPMAP_HINT            0x8192
-
-/* DataType */
-#define GL_BYTE                           0x1400
-#define GL_UNSIGNED_BYTE                  0x1401
-#define GL_SHORT                          0x1402
-#define GL_UNSIGNED_SHORT                 0x1403
-#define GL_INT                            0x1404
-#define GL_UNSIGNED_INT                   0x1405
-#define GL_FLOAT                          0x1406
-#define GL_FIXED                          0x140C
-
-/* PixelFormat */
-#define GL_DEPTH_COMPONENT                0x1902
-#define GL_ALPHA                          0x1906
-#define GL_RGB                            0x1907
-#define GL_RGBA                           0x1908
-#define GL_LUMINANCE                      0x1909
-#define GL_LUMINANCE_ALPHA                0x190A
-
-/* PixelType */
-/*      GL_UNSIGNED_BYTE */
-#define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
-#define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
-#define GL_UNSIGNED_SHORT_5_6_5           0x8363
-
-/* Shaders */
-#define GL_FRAGMENT_SHADER                  0x8B30
-#define GL_VERTEX_SHADER                    0x8B31
-#define GL_MAX_VERTEX_ATTRIBS               0x8869
-#define GL_MAX_VERTEX_UNIFORM_VECTORS       0x8DFB
-#define GL_MAX_VARYING_VECTORS              0x8DFC
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS   0x8B4C
-#define GL_MAX_TEXTURE_IMAGE_UNITS          0x8872
-#define GL_MAX_FRAGMENT_UNIFORM_VECTORS     0x8DFD
-#define GL_SHADER_TYPE                      0x8B4F
-#define GL_DELETE_STATUS                    0x8B80
-#define GL_LINK_STATUS                      0x8B82
-#define GL_VALIDATE_STATUS                  0x8B83
-#define GL_ATTACHED_SHADERS                 0x8B85
-#define GL_ACTIVE_UNIFORMS                  0x8B86
-#define GL_ACTIVE_UNIFORM_MAX_LENGTH        0x8B87
-#define GL_ACTIVE_ATTRIBUTES                0x8B89
-#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH      0x8B8A
-#define GL_SHADING_LANGUAGE_VERSION         0x8B8C
-#define GL_CURRENT_PROGRAM                  0x8B8D
-
-/* StencilFunction */
-#define GL_NEVER                          0x0200
-#define GL_LESS                           0x0201
-#define GL_EQUAL                          0x0202
-#define GL_LEQUAL                         0x0203
-#define GL_GREATER                        0x0204
-#define GL_NOTEQUAL                       0x0205
-#define GL_GEQUAL                         0x0206
-#define GL_ALWAYS                         0x0207
-
-/* StencilOp */
-/*      GL_ZERO */
-#define GL_KEEP                           0x1E00
-#define GL_REPLACE                        0x1E01
-#define GL_INCR                           0x1E02
-#define GL_DECR                           0x1E03
-#define GL_INVERT                         0x150A
-#define GL_INCR_WRAP                      0x8507
-#define GL_DECR_WRAP                      0x8508
-
-/* StringName */
-#define GL_VENDOR                         0x1F00
-#define GL_RENDERER                       0x1F01
-#define GL_VERSION                        0x1F02
-#define GL_EXTENSIONS                     0x1F03
-
-/* TextureMagFilter */
-#define GL_NEAREST                        0x2600
-#define GL_LINEAR                         0x2601
-
-/* TextureMinFilter */
-/*      GL_NEAREST */
-/*      GL_LINEAR */
-#define GL_NEAREST_MIPMAP_NEAREST         0x2700
-#define GL_LINEAR_MIPMAP_NEAREST          0x2701
-#define GL_NEAREST_MIPMAP_LINEAR          0x2702
-#define GL_LINEAR_MIPMAP_LINEAR           0x2703
-
-/* TextureParameterName */
-#define GL_TEXTURE_MAG_FILTER             0x2800
-#define GL_TEXTURE_MIN_FILTER             0x2801
-#define GL_TEXTURE_WRAP_S                 0x2802
-#define GL_TEXTURE_WRAP_T                 0x2803
-
-/* TextureTarget */
-/*      GL_TEXTURE_2D */
-#define GL_TEXTURE                        0x1702
-
-#define GL_TEXTURE_CUBE_MAP               0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP       0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X    0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y    0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851A
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851C
-
-/* TextureUnit */
-#define GL_TEXTURE0                       0x84C0
-#define GL_TEXTURE1                       0x84C1
-#define GL_TEXTURE2                       0x84C2
-#define GL_TEXTURE3                       0x84C3
-#define GL_TEXTURE4                       0x84C4
-#define GL_TEXTURE5                       0x84C5
-#define GL_TEXTURE6                       0x84C6
-#define GL_TEXTURE7                       0x84C7
-#define GL_TEXTURE8                       0x84C8
-#define GL_TEXTURE9                       0x84C9
-#define GL_TEXTURE10                      0x84CA
-#define GL_TEXTURE11                      0x84CB
-#define GL_TEXTURE12                      0x84CC
-#define GL_TEXTURE13                      0x84CD
-#define GL_TEXTURE14                      0x84CE
-#define GL_TEXTURE15                      0x84CF
-#define GL_TEXTURE16                      0x84D0
-#define GL_TEXTURE17                      0x84D1
-#define GL_TEXTURE18                      0x84D2
-#define GL_TEXTURE19                      0x84D3
-#define GL_TEXTURE20                      0x84D4
-#define GL_TEXTURE21                      0x84D5
-#define GL_TEXTURE22                      0x84D6
-#define GL_TEXTURE23                      0x84D7
-#define GL_TEXTURE24                      0x84D8
-#define GL_TEXTURE25                      0x84D9
-#define GL_TEXTURE26                      0x84DA
-#define GL_TEXTURE27                      0x84DB
-#define GL_TEXTURE28                      0x84DC
-#define GL_TEXTURE29                      0x84DD
-#define GL_TEXTURE30                      0x84DE
-#define GL_TEXTURE31                      0x84DF
-#define GL_ACTIVE_TEXTURE                 0x84E0
-
-/* TextureWrapMode */
-#define GL_REPEAT                         0x2901
-#define GL_CLAMP_TO_EDGE                  0x812F
-#define GL_MIRRORED_REPEAT                0x8370
-
-/* Uniform Types */
-#define GL_FLOAT_VEC2                     0x8B50
-#define GL_FLOAT_VEC3                     0x8B51
-#define GL_FLOAT_VEC4                     0x8B52
-#define GL_INT_VEC2                       0x8B53
-#define GL_INT_VEC3                       0x8B54
-#define GL_INT_VEC4                       0x8B55
-#define GL_BOOL                           0x8B56
-#define GL_BOOL_VEC2                      0x8B57
-#define GL_BOOL_VEC3                      0x8B58
-#define GL_BOOL_VEC4                      0x8B59
-#define GL_FLOAT_MAT2                     0x8B5A
-#define GL_FLOAT_MAT3                     0x8B5B
-#define GL_FLOAT_MAT4                     0x8B5C
-#define GL_SAMPLER_2D                     0x8B5E
-#define GL_SAMPLER_CUBE                   0x8B60
-
-/* Vertex Arrays */
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED        0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE           0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE         0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE           0x8625
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED     0x886A
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER        0x8645
-#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
-
-/* Read Format */
-#define GL_IMPLEMENTATION_COLOR_READ_TYPE   0x8B9A
-#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
-
-/* Shader Source */
-#define GL_COMPILE_STATUS                 0x8B81
-#define GL_INFO_LOG_LENGTH                0x8B84
-#define GL_SHADER_SOURCE_LENGTH           0x8B88
-#define GL_SHADER_COMPILER                0x8DFA
-
-/* Shader Binary */
-#define GL_SHADER_BINARY_FORMATS          0x8DF8
-#define GL_NUM_SHADER_BINARY_FORMATS      0x8DF9
-
-/* Shader Precision-Specified Types */
-#define GL_LOW_FLOAT                      0x8DF0
-#define GL_MEDIUM_FLOAT                   0x8DF1
-#define GL_HIGH_FLOAT                     0x8DF2
-#define GL_LOW_INT                        0x8DF3
-#define GL_MEDIUM_INT                     0x8DF4
-#define GL_HIGH_INT                       0x8DF5
-
-/* Framebuffer Object. */
-#define GL_FRAMEBUFFER                    0x8D40
-#define GL_RENDERBUFFER                   0x8D41
-
-#define GL_RGBA4                          0x8056
-#define GL_RGB5_A1                        0x8057
-#define GL_RGB565                         0x8D62
-#define GL_DEPTH_COMPONENT16              0x81A5
-#define GL_STENCIL_INDEX                  0x1901
-#define GL_STENCIL_INDEX8                 0x8D48
-
-#define GL_RENDERBUFFER_WIDTH             0x8D42
-#define GL_RENDERBUFFER_HEIGHT            0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT   0x8D44
-#define GL_RENDERBUFFER_RED_SIZE          0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE        0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE         0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE        0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE        0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE      0x8D55
-
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
-
-#define GL_COLOR_ATTACHMENT0              0x8CE0
-#define GL_DEPTH_ATTACHMENT               0x8D00
-#define GL_STENCIL_ATTACHMENT             0x8D20
-
-#define GL_NONE                           0
-
-#define GL_FRAMEBUFFER_COMPLETE                      0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT         0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS         0x8CD9
-#define GL_FRAMEBUFFER_UNSUPPORTED                   0x8CDD
-
-#define GL_FRAMEBUFFER_BINDING            0x8CA6
-#define GL_RENDERBUFFER_BINDING           0x8CA7
-#define GL_MAX_RENDERBUFFER_SIZE          0x84E8
-
-#define GL_INVALID_FRAMEBUFFER_OPERATION  0x0506
-
-#define GL_BGRA_EXT                       0x80E1
-
-#ifndef GL_OES_get_program_binary
-#define GL_OES_get_program_binary 1
-#define GL_PROGRAM_BINARY_LENGTH_OES      0x8741
-#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE
-#define GL_PROGRAM_BINARY_FORMATS_OES     0x87FF
-#endif /* GL_OES_get_program_binary */
-
-/* OpenGLES 3.0 */
-#ifndef __gl3_h_
-# define __gl3_h_ 1
-
-
-#define GL_READ_BUFFER                    0x0C02
-#define GL_UNPACK_ROW_LENGTH              0x0CF2
-#define GL_UNPACK_SKIP_ROWS               0x0CF3
-#define GL_UNPACK_SKIP_PIXELS             0x0CF4
-#define GL_PACK_ROW_LENGTH                0x0D02
-#define GL_PACK_SKIP_ROWS                 0x0D03
-#define GL_PACK_SKIP_PIXELS               0x0D04
-#define GL_COLOR                          0x1800
-#define GL_DEPTH                          0x1801
-#define GL_STENCIL                        0x1802
-#define GL_RED                            0x1903
-#define GL_RGB8                           0x8051
-#define GL_RGBA8                          0x8058
-#define GL_RGB10_A2                       0x8059
-#define GL_TEXTURE_BINDING_3D             0x806A
-#define GL_UNPACK_SKIP_IMAGES             0x806D
-#define GL_UNPACK_IMAGE_HEIGHT            0x806E
-#define GL_TEXTURE_3D                     0x806F
-#define GL_TEXTURE_WRAP_R                 0x8072
-#define GL_MAX_3D_TEXTURE_SIZE            0x8073
-#define GL_UNSIGNED_INT_2_10_10_10_REV    0x8368
-#define GL_MAX_ELEMENTS_VERTICES          0x80E8
-#define GL_MAX_ELEMENTS_INDICES           0x80E9
-#define GL_TEXTURE_MIN_LOD                0x813A
-#define GL_TEXTURE_MAX_LOD                0x813B
-#define GL_TEXTURE_BASE_LEVEL             0x813C
-#define GL_TEXTURE_MAX_LEVEL              0x813D
-#define GL_MIN                            0x8007
-#define GL_MAX                            0x8008
-#define GL_DEPTH_COMPONENT24              0x81A6
-#define GL_MAX_TEXTURE_LOD_BIAS           0x84FD
-#define GL_TEXTURE_COMPARE_MODE           0x884C
-#define GL_TEXTURE_COMPARE_FUNC           0x884D
-#define GL_CURRENT_QUERY                  0x8865
-#define GL_QUERY_RESULT                   0x8866
-#define GL_QUERY_RESULT_AVAILABLE         0x8867
-#define GL_BUFFER_MAPPED                  0x88BC
-#define GL_BUFFER_MAP_POINTER             0x88BD
-#define GL_STREAM_READ                    0x88E1
-#define GL_STREAM_COPY                    0x88E2
-#define GL_STATIC_READ                    0x88E5
-#define GL_STATIC_COPY                    0x88E6
-#define GL_DYNAMIC_READ                   0x88E9
-#define GL_DYNAMIC_COPY                   0x88EA
-#define GL_MAX_DRAW_BUFFERS               0x8824
-#define GL_DRAW_BUFFER0                   0x8825
-#define GL_DRAW_BUFFER1                   0x8826
-#define GL_DRAW_BUFFER2                   0x8827
-#define GL_DRAW_BUFFER3                   0x8828
-#define GL_DRAW_BUFFER4                   0x8829
-#define GL_DRAW_BUFFER5                   0x882A
-#define GL_DRAW_BUFFER6                   0x882B
-#define GL_DRAW_BUFFER7                   0x882C
-#define GL_DRAW_BUFFER8                   0x882D
-#define GL_DRAW_BUFFER9                   0x882E
-#define GL_DRAW_BUFFER10                  0x882F
-#define GL_DRAW_BUFFER11                  0x8830
-#define GL_DRAW_BUFFER12                  0x8831
-#define GL_DRAW_BUFFER13                  0x8832
-#define GL_DRAW_BUFFER14                  0x8833
-#define GL_DRAW_BUFFER15                  0x8834
-#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
-#define GL_MAX_VERTEX_UNIFORM_COMPONENTS  0x8B4A
-#define GL_SAMPLER_3D                     0x8B5F
-#define GL_SAMPLER_2D_SHADOW              0x8B62
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
-#define GL_PIXEL_PACK_BUFFER              0x88EB
-#define GL_PIXEL_UNPACK_BUFFER            0x88EC
-#define GL_PIXEL_PACK_BUFFER_BINDING      0x88ED
-#define GL_PIXEL_UNPACK_BUFFER_BINDING    0x88EF
-#define GL_FLOAT_MAT2x3                   0x8B65
-#define GL_FLOAT_MAT2x4                   0x8B66
-#define GL_FLOAT_MAT3x2                   0x8B67
-#define GL_FLOAT_MAT3x4                   0x8B68
-#define GL_FLOAT_MAT4x2                   0x8B69
-#define GL_FLOAT_MAT4x3                   0x8B6A
-#define GL_SRGB                           0x8C40
-#define GL_SRGB8                          0x8C41
-#define GL_SRGB8_ALPHA8                   0x8C43
-#define GL_COMPARE_REF_TO_TEXTURE         0x884E
-#define GL_MAJOR_VERSION                  0x821B
-#define GL_MINOR_VERSION                  0x821C
-#define GL_NUM_EXTENSIONS                 0x821D
-#define GL_RGBA32F                        0x8814
-#define GL_RGB32F                         0x8815
-#define GL_RGBA16F                        0x881A
-#define GL_RGB16F                         0x881B
-#define GL_VERTEX_ATTRIB_ARRAY_INTEGER    0x88FD
-#define GL_MAX_ARRAY_TEXTURE_LAYERS       0x88FF
-#define GL_MIN_PROGRAM_TEXEL_OFFSET       0x8904
-#define GL_MAX_PROGRAM_TEXEL_OFFSET       0x8905
-#define GL_MAX_VARYING_COMPONENTS         0x8B4B
-#define GL_TEXTURE_2D_ARRAY               0x8C1A
-#define GL_TEXTURE_BINDING_2D_ARRAY       0x8C1D
-#define GL_R11F_G11F_B10F                 0x8C3A
-#define GL_UNSIGNED_INT_10F_11F_11F_REV   0x8C3B
-#define GL_RGB9_E5                        0x8C3D
-#define GL_UNSIGNED_INT_5_9_9_9_REV       0x8C3E
-#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
-#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
-#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
-#define GL_TRANSFORM_FEEDBACK_VARYINGS    0x8C83
-#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
-#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
-#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
-#define GL_RASTERIZER_DISCARD             0x8C89
-#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
-#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
-#define GL_INTERLEAVED_ATTRIBS            0x8C8C
-#define GL_SEPARATE_ATTRIBS               0x8C8D
-#define GL_TRANSFORM_FEEDBACK_BUFFER      0x8C8E
-#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
-#define GL_RGBA32UI                       0x8D70
-#define GL_RGB32UI                        0x8D71
-#define GL_RGBA16UI                       0x8D76
-#define GL_RGB16UI                        0x8D77
-#define GL_RGBA8UI                        0x8D7C
-#define GL_RGB8UI                         0x8D7D
-#define GL_RGBA32I                        0x8D82
-#define GL_RGB32I                         0x8D83
-#define GL_RGBA16I                        0x8D88
-#define GL_RGB16I                         0x8D89
-#define GL_RGBA8I                         0x8D8E
-#define GL_RGB8I                          0x8D8F
-#define GL_RED_INTEGER                    0x8D94
-#define GL_RGB_INTEGER                    0x8D98
-#define GL_RGBA_INTEGER                   0x8D99
-#define GL_SAMPLER_2D_ARRAY               0x8DC1
-#define GL_SAMPLER_2D_ARRAY_SHADOW        0x8DC4
-#define GL_SAMPLER_CUBE_SHADOW            0x8DC5
-#define GL_UNSIGNED_INT_VEC2              0x8DC6
-#define GL_UNSIGNED_INT_VEC3              0x8DC7
-#define GL_UNSIGNED_INT_VEC4              0x8DC8
-#define GL_INT_SAMPLER_2D                 0x8DCA
-#define GL_INT_SAMPLER_3D                 0x8DCB
-#define GL_INT_SAMPLER_CUBE               0x8DCC
-#define GL_INT_SAMPLER_2D_ARRAY           0x8DCF
-#define GL_UNSIGNED_INT_SAMPLER_2D        0x8DD2
-#define GL_UNSIGNED_INT_SAMPLER_3D        0x8DD3
-#define GL_UNSIGNED_INT_SAMPLER_CUBE      0x8DD4
-#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY  0x8DD7
-#define GL_BUFFER_ACCESS_FLAGS            0x911F
-#define GL_BUFFER_MAP_LENGTH              0x9120
-#define GL_BUFFER_MAP_OFFSET              0x9121
-#define GL_DEPTH_COMPONENT32F             0x8CAC
-#define GL_DEPTH32F_STENCIL8              0x8CAD
-#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
-#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
-#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
-#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
-#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
-#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
-#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
-#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
-#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
-#define GL_FRAMEBUFFER_DEFAULT            0x8218
-#define GL_FRAMEBUFFER_UNDEFINED          0x8219
-#define GL_DEPTH_STENCIL_ATTACHMENT       0x821A
-#define GL_DEPTH_STENCIL                  0x84F9
-#define GL_UNSIGNED_INT_24_8              0x84FA
-#define GL_DEPTH24_STENCIL8               0x88F0
-#define GL_UNSIGNED_NORMALIZED            0x8C17
-#define GL_DRAW_FRAMEBUFFER_BINDING       0x8CA6
-#define GL_READ_FRAMEBUFFER               0x8CA8
-#define GL_DRAW_FRAMEBUFFER               0x8CA9
-#define GL_READ_FRAMEBUFFER_BINDING       0x8CAA
-#define GL_RENDERBUFFER_SAMPLES           0x8CAB
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
-#define GL_MAX_COLOR_ATTACHMENTS          0x8CDF
-#define GL_COLOR_ATTACHMENT1              0x8CE1
-#define GL_COLOR_ATTACHMENT2              0x8CE2
-#define GL_COLOR_ATTACHMENT3              0x8CE3
-#define GL_COLOR_ATTACHMENT4              0x8CE4
-#define GL_COLOR_ATTACHMENT5              0x8CE5
-#define GL_COLOR_ATTACHMENT6              0x8CE6
-#define GL_COLOR_ATTACHMENT7              0x8CE7
-#define GL_COLOR_ATTACHMENT8              0x8CE8
-#define GL_COLOR_ATTACHMENT9              0x8CE9
-#define GL_COLOR_ATTACHMENT10             0x8CEA
-#define GL_COLOR_ATTACHMENT11             0x8CEB
-#define GL_COLOR_ATTACHMENT12             0x8CEC
-#define GL_COLOR_ATTACHMENT13             0x8CED
-#define GL_COLOR_ATTACHMENT14             0x8CEE
-#define GL_COLOR_ATTACHMENT15             0x8CEF
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
-#define GL_MAX_SAMPLES                    0x8D57
-#define GL_HALF_FLOAT                     0x140B
-#define GL_MAP_READ_BIT                   0x0001
-#define GL_MAP_WRITE_BIT                  0x0002
-#define GL_MAP_INVALIDATE_RANGE_BIT       0x0004
-#define GL_MAP_INVALIDATE_BUFFER_BIT      0x0008
-#define GL_MAP_FLUSH_EXPLICIT_BIT         0x0010
-#define GL_MAP_UNSYNCHRONIZED_BIT         0x0020
-#define GL_RG                             0x8227
-#define GL_RG_INTEGER                     0x8228
-#define GL_R8                             0x8229
-#define GL_RG8                            0x822B
-#define GL_R16F                           0x822D
-#define GL_R32F                           0x822E
-#define GL_RG16F                          0x822F
-#define GL_RG32F                          0x8230
-#define GL_R8I                            0x8231
-#define GL_R8UI                           0x8232
-#define GL_R16I                           0x8233
-#define GL_R16UI                          0x8234
-#define GL_R32I                           0x8235
-#define GL_R32UI                          0x8236
-#define GL_RG8I                           0x8237
-#define GL_RG8UI                          0x8238
-#define GL_RG16I                          0x8239
-#define GL_RG16UI                         0x823A
-#define GL_RG32I                          0x823B
-#define GL_RG32UI                         0x823C
-#define GL_VERTEX_ARRAY_BINDING           0x85B5
-#define GL_R8_SNORM                       0x8F94
-#define GL_RG8_SNORM                      0x8F95
-#define GL_RGB8_SNORM                     0x8F96
-#define GL_RGBA8_SNORM                    0x8F97
-#define GL_SIGNED_NORMALIZED              0x8F9C
-#define GL_PRIMITIVE_RESTART_FIXED_INDEX  0x8D69
-#define GL_COPY_READ_BUFFER               0x8F36
-#define GL_COPY_WRITE_BUFFER              0x8F37
-#define GL_COPY_READ_BUFFER_BINDING       0x8F36
-#define GL_COPY_WRITE_BUFFER_BINDING      0x8F37
-#define GL_UNIFORM_BUFFER                 0x8A11
-#define GL_UNIFORM_BUFFER_BINDING         0x8A28
-#define GL_UNIFORM_BUFFER_START           0x8A29
-#define GL_UNIFORM_BUFFER_SIZE            0x8A2A
-#define GL_MAX_VERTEX_UNIFORM_BLOCKS      0x8A2B
-#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS    0x8A2D
-#define GL_MAX_COMBINED_UNIFORM_BLOCKS    0x8A2E
-#define GL_MAX_UNIFORM_BUFFER_BINDINGS    0x8A2F
-#define GL_MAX_UNIFORM_BLOCK_SIZE         0x8A30
-#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
-#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
-#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
-#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
-#define GL_ACTIVE_UNIFORM_BLOCKS          0x8A36
-#define GL_UNIFORM_TYPE                   0x8A37
-#define GL_UNIFORM_SIZE                   0x8A38
-#define GL_UNIFORM_NAME_LENGTH            0x8A39
-#define GL_UNIFORM_BLOCK_INDEX            0x8A3A
-#define GL_UNIFORM_OFFSET                 0x8A3B
-#define GL_UNIFORM_ARRAY_STRIDE           0x8A3C
-#define GL_UNIFORM_MATRIX_STRIDE          0x8A3D
-#define GL_UNIFORM_IS_ROW_MAJOR           0x8A3E
-#define GL_UNIFORM_BLOCK_BINDING          0x8A3F
-#define GL_UNIFORM_BLOCK_DATA_SIZE        0x8A40
-#define GL_UNIFORM_BLOCK_NAME_LENGTH      0x8A41
-#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS  0x8A42
-#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
-#define GL_INVALID_INDEX                  0xFFFFFFFFu
-#define GL_MAX_VERTEX_OUTPUT_COMPONENTS   0x9122
-#define GL_MAX_FRAGMENT_INPUT_COMPONENTS  0x9125
-#define GL_MAX_SERVER_WAIT_TIMEOUT        0x9111
-#define GL_OBJECT_TYPE                    0x9112
-#define GL_SYNC_CONDITION                 0x9113
-#define GL_SYNC_STATUS                    0x9114
-#define GL_SYNC_FLAGS                     0x9115
-#define GL_SYNC_FENCE                     0x9116
-#define GL_SYNC_GPU_COMMANDS_COMPLETE     0x9117
-#define GL_UNSIGNALED                     0x9118
-#define GL_SIGNALED                       0x9119
-#define GL_ALREADY_SIGNALED               0x911A
-#define GL_TIMEOUT_EXPIRED                0x911B
-#define GL_CONDITION_SATISFIED            0x911C
-#define GL_WAIT_FAILED                    0x911D
-#define GL_SYNC_FLUSH_COMMANDS_BIT        0x00000001
-#define GL_TIMEOUT_IGNORED                0xFFFFFFFFFFFFFFFFull
-#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR    0x88FE
-#define GL_ANY_SAMPLES_PASSED             0x8C2F
-#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
-#define GL_SAMPLER_BINDING                0x8919
-#define GL_RGB10_A2UI                     0x906F
-#define GL_TEXTURE_SWIZZLE_R              0x8E42
-#define GL_TEXTURE_SWIZZLE_G              0x8E43
-#define GL_TEXTURE_SWIZZLE_B              0x8E44
-#define GL_TEXTURE_SWIZZLE_A              0x8E45
-#define GL_GREEN                          0x1904
-#define GL_BLUE                           0x1905
-#define GL_INT_2_10_10_10_REV             0x8D9F
-#define GL_TRANSFORM_FEEDBACK             0x8E22
-#define GL_TRANSFORM_FEEDBACK_PAUSED      0x8E23
-#define GL_TRANSFORM_FEEDBACK_ACTIVE      0x8E24
-#define GL_TRANSFORM_FEEDBACK_BINDING     0x8E25
-#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
-#define GL_PROGRAM_BINARY_LENGTH          0x8741
-#define GL_NUM_PROGRAM_BINARY_FORMATS     0x87FE
-#define GL_PROGRAM_BINARY_FORMATS         0x87FF
-#define GL_COMPRESSED_R11_EAC             0x9270
-#define GL_COMPRESSED_SIGNED_R11_EAC      0x9271
-#define GL_COMPRESSED_RG11_EAC            0x9272
-#define GL_COMPRESSED_SIGNED_RG11_EAC     0x9273
-#define GL_COMPRESSED_RGB8_ETC2           0x9274
-#define GL_COMPRESSED_SRGB8_ETC2          0x9275
-#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
-#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
-#define GL_COMPRESSED_RGBA8_ETC2_EAC      0x9278
-#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
-#define GL_TEXTURE_IMMUTABLE_FORMAT       0x912F
-#define GL_MAX_ELEMENT_INDEX              0x8D6B
-#define GL_NUM_SAMPLE_COUNTS              0x9380
-#define GL_TEXTURE_IMMUTABLE_LEVELS       0x82DF
-
-#endif
-
-#include <stddef.h>
-
-typedef ptrdiff_t GLintptr;     // Changed khronos_intptr_t
-typedef ptrdiff_t GLsizeiptr;   // Changed khronos_ssize_t
-
-typedef void             GLvoid;
-typedef char             GLchar;
-typedef unsigned int     GLenum;
-typedef unsigned char    GLboolean;
-typedef unsigned int     GLbitfield;
-typedef signed char      GLbyte;       // Changed khronos_int8_t
-typedef short            GLshort;
-typedef int              GLint;
-typedef int              GLsizei;
-typedef unsigned char    GLubyte;      // Changed khronos_uint8_t
-typedef unsigned short   GLushort;
-typedef unsigned int     GLuint;
-typedef float            GLfloat;      // Changed khronos_float_t
-typedef float            GLclampf;     // Changed khronos_float_t
-typedef signed int       GLfixed;      // Changed khronos_int32_t
-
-struct _Ector_GL_API {
-   // Struct is same as Evas_GL_API version 1 without extensions
-
-   int            init;
-
-   void         (*glActiveTexture) (GLenum texture);
-   void         (*glAttachShader) (GLuint program, GLuint shader);
-   void         (*glBindAttribLocation) (GLuint program, GLuint index, const char* name);
-   void         (*glBindBuffer) (GLenum target, GLuint buffer);
-   void         (*glBindFramebuffer) (GLenum target, GLuint framebuffer);
-   void         (*glBindRenderbuffer) (GLenum target, GLuint renderbuffer);
-   void         (*glBindTexture) (GLenum target, GLuint texture);
-   void         (*glBlendColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-   void         (*glBlendEquation) ( GLenum mode );
-   void         (*glBlendEquationSeparate) (GLenum modeRGB, GLenum modeAlpha);
-   void         (*glBlendFunc) (GLenum sfactor, GLenum dfactor);
-   void         (*glBlendFuncSeparate) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-   void         (*glBufferData) (GLenum target, GLsizeiptr size, const void* data, GLenum usage);
-   void         (*glBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data);
-   GLenum       (*glCheckFramebufferStatus) (GLenum target);
-   void         (*glClear) (GLbitfield mask);
-   void         (*glClearColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-   void         (*glClearDepthf) (GLclampf depth);
-   void         (*glClearStencil) (GLint s);
-   void         (*glColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-   void         (*glCompileShader) (GLuint shader);
-   void         (*glCompressedTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
-   void         (*glCompressedTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
-   void         (*glCopyTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-   void         (*glCopyTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-   GLuint       (*glCreateProgram) (void);
-   GLuint       (*glCreateShader) (GLenum type);
-   void         (*glCullFace) (GLenum mode);
-   void         (*glDeleteBuffers) (GLsizei n, const GLuint* buffers);
-   void         (*glDeleteFramebuffers) (GLsizei n, const GLuint* framebuffers);
-   void         (*glDeleteProgram) (GLuint program);
-   void         (*glDeleteRenderbuffers) (GLsizei n, const GLuint* renderbuffers);
-   void         (*glDeleteShader) (GLuint shader);
-   void         (*glDeleteTextures) (GLsizei n, const GLuint* textures);
-   void         (*glDepthFunc) (GLenum func);
-   void         (*glDepthMask) (GLboolean flag);
-   void         (*glDepthRangef) (GLclampf zNear, GLclampf zFar);
-   void         (*glDetachShader) (GLuint program, GLuint shader);
-   void         (*glDisable) (GLenum cap);
-   void         (*glDisableVertexAttribArray) (GLuint index);
-   void         (*glDrawArrays) (GLenum mode, GLint first, GLsizei count);
-   void         (*glDrawElements) (GLenum mode, GLsizei count, GLenum type, const void* indices);
-   void         (*glEnable) (GLenum cap);
-   void         (*glEnableVertexAttribArray) (GLuint index);
-   void         (*glFinish) (void);
-   void         (*glFlush) (void);
-   void         (*glFramebufferRenderbuffer) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-   void         (*glFramebufferTexture2D) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-   void         (*glFrontFace) (GLenum mode);
-   void         (*glGenBuffers) (GLsizei n, GLuint* buffers);
-   void         (*glGenerateMipmap) (GLenum target);
-   void         (*glGenFramebuffers) (GLsizei n, GLuint* framebuffers);
-   void         (*glGenRenderbuffers) (GLsizei n, GLuint* renderbuffers);
-   void         (*glGenTextures) (GLsizei n, GLuint* textures);
-   void         (*glGetActiveAttrib) (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
-   void         (*glGetActiveUniform) (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
-   void         (*glGetAttachedShaders) (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
-   int          (*glGetAttribLocation) (GLuint program, const char* name);
-   void         (*glGetBooleanv) (GLenum pname, GLboolean* params);
-   void         (*glGetBufferParameteriv) (GLenum target, GLenum pname, GLint* params);
-   GLenum       (*glGetError) (void);
-   void         (*glGetFloatv) (GLenum pname, GLfloat* params);
-   void         (*glGetFramebufferAttachmentParameteriv) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
-   void         (*glGetIntegerv) (GLenum pname, GLint* params);
-   void         (*glGetProgramiv) (GLuint program, GLenum pname, GLint* params);
-   void         (*glGetProgramInfoLog) (GLuint program, GLsizei bufsize, GLsizei* length, char* infolog);
-   void         (*glGetProgramBinary) (GLuint program, GLsizei bufsize, GLsizei *length, GLenum *binaryFormat, void *binary);
-   void         (*glGetRenderbufferParameteriv) (GLenum target, GLenum pname, GLint* params);
-   void         (*glGetShaderiv) (GLuint shader, GLenum pname, GLint* params);
-   void         (*glGetShaderInfoLog) (GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog);
-   void         (*glGetShaderPrecisionFormat) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
-   void         (*glGetShaderSource) (GLuint shader, GLsizei bufsize, GLsizei* length, char* source);
-   const GLubyte* (*glGetString) (GLenum name);
-   void         (*glGetTexParameterfv) (GLenum target, GLenum pname, GLfloat* params);
-   void         (*glGetTexParameteriv) (GLenum target, GLenum pname, GLint* params);
-   void         (*glGetUniformfv) (GLuint program, GLint location, GLfloat* params);
-   void         (*glGetUniformiv) (GLuint program, GLint location, GLint* params);
-   int          (*glGetUniformLocation) (GLuint program, const char* name);
-   void         (*glGetVertexAttribfv) (GLuint index, GLenum pname, GLfloat* params);
-   void         (*glGetVertexAttribiv) (GLuint index, GLenum pname, GLint* params);
-   void         (*glGetVertexAttribPointerv) (GLuint index, GLenum pname, void** pointer);
-   void         (*glHint) (GLenum target, GLenum mode);
-   GLboolean    (*glIsBuffer) (GLuint buffer);
-   GLboolean    (*glIsEnabled) (GLenum cap);
-   GLboolean    (*glIsFramebuffer) (GLuint framebuffer);
-   GLboolean    (*glIsProgram) (GLuint program);
-   GLboolean    (*glIsRenderbuffer) (GLuint renderbuffer);
-   GLboolean    (*glIsShader) (GLuint shader);
-   GLboolean    (*glIsTexture) (GLuint texture);
-   void         (*glLineWidth) (GLfloat width);
-   void         (*glLinkProgram) (GLuint program);
-   void         (*glPixelStorei) (GLenum pname, GLint param);
-   void         (*glPolygonOffset) (GLfloat factor, GLfloat units);
-   void         (*glProgramBinary) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
-   void         (*glProgramParameteri) (GLuint program, GLenum pname, GLint value);
-   void         (*glReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels);
-   void         (*glReleaseShaderCompiler) (void);
-   void         (*glRenderbufferStorage) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-   void         (*glSampleCoverage) (GLclampf value, GLboolean invert);
-   void         (*glScissor) (GLint x, GLint y, GLsizei width, GLsizei height);
-   void         (*glShaderBinary) (GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length);
-   void         (*glShaderSource) (GLuint shader, GLsizei count, const char* const * string, const GLint* length);
-   void         (*glStencilFunc) (GLenum func, GLint ref, GLuint mask);
-   void         (*glStencilFuncSeparate) (GLenum face, GLenum func, GLint ref, GLuint mask);
-   void         (*glStencilMask) (GLuint mask);
-   void         (*glStencilMaskSeparate) (GLenum face, GLuint mask);
-   void         (*glStencilOp) (GLenum fail, GLenum zfail, GLenum zpass);
-   void         (*glStencilOpSeparate) (GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
-   void         (*glTexImage2D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels);
-   void         (*glTexParameterf) (GLenum target, GLenum pname, GLfloat param);
-   void         (*glTexParameterfv) (GLenum target, GLenum pname, const GLfloat* params);
-   void         (*glTexParameteri) (GLenum target, GLenum pname, GLint param);
-   void         (*glTexParameteriv) (GLenum target, GLenum pname, const GLint* params);
-   void         (*glTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels);
-   void         (*glUniform1f) (GLint location, GLfloat x);
-   void         (*glUniform1fv) (GLint location, GLsizei count, const GLfloat* v);
-   void         (*glUniform1i) (GLint location, GLint x);
-   void         (*glUniform1iv) (GLint location, GLsizei count, const GLint* v);
-   void         (*glUniform2f) (GLint location, GLfloat x, GLfloat y);
-   void         (*glUniform2fv) (GLint location, GLsizei count, const GLfloat* v);
-   void         (*glUniform2i) (GLint location, GLint x, GLint y);
-   void         (*glUniform2iv) (GLint location, GLsizei count, const GLint* v);
-   void         (*glUniform3f) (GLint location, GLfloat x, GLfloat y, GLfloat z);
-   void         (*glUniform3fv) (GLint location, GLsizei count, const GLfloat* v);
-   void         (*glUniform3i) (GLint location, GLint x, GLint y, GLint z);
-   void         (*glUniform3iv) (GLint location, GLsizei count, const GLint* v);
-   void         (*glUniform4f) (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-   void         (*glUniform4fv) (GLint location, GLsizei count, const GLfloat* v);
-   void         (*glUniform4i) (GLint location, GLint x, GLint y, GLint z, GLint w);
-   void         (*glUniform4iv) (GLint location, GLsizei count, const GLint* v);
-   void         (*glUniformMatrix2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-   void         (*glUniformMatrix3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-   void         (*glUniformMatrix4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-   void         (*glUseProgram) (GLuint program);
-   void         (*glValidateProgram) (GLuint program);
-   void         (*glVertexAttrib1f) (GLuint indx, GLfloat x);
-   void         (*glVertexAttrib1fv) (GLuint indx, const GLfloat* values);
-   void         (*glVertexAttrib2f) (GLuint indx, GLfloat x, GLfloat y);
-   void         (*glVertexAttrib2fv) (GLuint indx, const GLfloat* values);
-   void         (*glVertexAttrib3f) (GLuint indx, GLfloat x, GLfloat y, GLfloat z);
-   void         (*glVertexAttrib3fv) (GLuint indx, const GLfloat* values);
-   void         (*glVertexAttrib4f) (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-   void         (*glVertexAttrib4fv) (GLuint indx, const GLfloat* values);
-   void         (*glVertexAttribPointer) (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);
-   void         (*glViewport) (GLint x, GLint y, GLsizei width, GLsizei height);
-};
-
-#endif
index db65c44..dba8a74 100644 (file)
@@ -22,7 +22,6 @@
 #include <Ector.h>
 #include "ector_private.h"
 
-Ector_GL_API GL;
 int _ector_log_dom_global = 0;
 
 static int _ector_main_count = 0;
@@ -46,7 +45,6 @@ ector_init(void)
    _ector_main_count = 1;
 
    eina_log_timing(_ector_log_dom_global, EINA_LOG_STATE_STOP, EINA_LOG_STATE_INIT);
-   GL.init = 0;
 
    return _ector_main_count;
 
@@ -57,169 +55,6 @@ ector_init(void)
    return 0;
 }
 
-static void
-donothing(void)
-{
-}
-
-EAPI Eina_Bool
-ector_glsym_set(void *(*glsym)(void *lib, const char *name), void *lib)
-{
-   Eina_Bool r = EINA_TRUE;
-
-   if (!glsym) return EINA_FALSE;
-
-#define ORD(a) do { GL.a = glsym(lib, #a); if (!GL.a) { GL.a = (void*) donothing; r = EINA_FALSE; } } while (0)
-
-   ORD(glActiveTexture);
-   ORD(glAttachShader);
-   ORD(glBindAttribLocation);
-   ORD(glBindBuffer);
-   ORD(glBindFramebuffer);
-   ORD(glBindRenderbuffer);
-   ORD(glBindTexture);
-   ORD(glBlendColor);
-   ORD(glBlendEquation);
-   ORD(glBlendEquationSeparate);
-   ORD(glBlendFunc);
-   ORD(glBlendFuncSeparate);
-   ORD(glBufferData);
-   ORD(glBufferSubData);
-   ORD(glCheckFramebufferStatus);
-   ORD(glClear);
-   ORD(glClearColor);
-   ORD(glClearDepthf);
-   ORD(glClearStencil);
-   ORD(glColorMask);
-   ORD(glCompileShader);
-   ORD(glCompressedTexImage2D);
-   ORD(glCompressedTexSubImage2D);
-   ORD(glCopyTexImage2D);
-   ORD(glCopyTexSubImage2D);
-   ORD(glCreateProgram);
-   ORD(glCreateShader);
-   ORD(glCullFace);
-   ORD(glDeleteBuffers);
-   ORD(glDeleteFramebuffers);
-   ORD(glDeleteProgram);
-   ORD(glDeleteRenderbuffers);
-   ORD(glDeleteShader);
-   ORD(glDeleteTextures);
-   ORD(glDepthFunc);
-   ORD(glDepthMask);
-   ORD(glDepthRangef);
-   ORD(glDetachShader);
-   ORD(glDisable);
-   ORD(glDisableVertexAttribArray);
-   ORD(glDrawArrays);
-   ORD(glDrawElements);
-   ORD(glEnable);
-   ORD(glEnableVertexAttribArray);
-   ORD(glFinish);
-   ORD(glFlush);
-   ORD(glFramebufferRenderbuffer);
-   ORD(glFramebufferTexture2D);
-   ORD(glFrontFace);
-   ORD(glGenBuffers);
-   ORD(glGenerateMipmap);
-   ORD(glGenFramebuffers);
-   ORD(glGenRenderbuffers);
-   ORD(glGenTextures);
-   ORD(glGetActiveAttrib);
-   ORD(glGetActiveUniform);
-   ORD(glGetAttachedShaders);
-   ORD(glGetAttribLocation);
-   ORD(glGetBooleanv);
-   ORD(glGetBufferParameteriv);
-   ORD(glGetError);
-   ORD(glGetFloatv);
-   ORD(glGetFramebufferAttachmentParameteriv);
-   ORD(glGetIntegerv);
-   ORD(glGetProgramiv);
-   ORD(glGetProgramInfoLog);
-   ORD(glGetProgramBinary);
-   ORD(glGetRenderbufferParameteriv);
-   ORD(glGetShaderiv);
-   ORD(glGetShaderInfoLog);
-   ORD(glGetShaderPrecisionFormat);
-   ORD(glGetShaderSource);
-   ORD(glGetString);
-   ORD(glGetTexParameterfv);
-   ORD(glGetTexParameteriv);
-   ORD(glGetUniformfv);
-   ORD(glGetUniformiv);
-   ORD(glGetUniformLocation);
-   ORD(glGetVertexAttribfv);
-   ORD(glGetVertexAttribiv);
-   ORD(glGetVertexAttribPointerv);
-   ORD(glHint);
-   ORD(glIsBuffer);
-   ORD(glIsEnabled);
-   ORD(glIsFramebuffer);
-   ORD(glIsProgram);
-   ORD(glIsRenderbuffer);
-   ORD(glIsShader);
-   ORD(glIsTexture);
-   ORD(glLineWidth);
-   ORD(glLinkProgram);
-   ORD(glPixelStorei);
-   ORD(glPolygonOffset);
-   ORD(glProgramBinary);
-   ORD(glProgramParameteri);
-   ORD(glReadPixels);
-   ORD(glReleaseShaderCompiler);
-   ORD(glRenderbufferStorage);
-   ORD(glSampleCoverage);
-   ORD(glScissor);
-   ORD(glShaderBinary);
-   ORD(glShaderSource);
-   ORD(glStencilFunc);
-   ORD(glStencilFuncSeparate);
-   ORD(glStencilMask);
-   ORD(glStencilMaskSeparate);
-   ORD(glStencilOp);
-   ORD(glStencilOpSeparate);
-   ORD(glTexImage2D);
-   ORD(glTexParameterf);
-   ORD(glTexParameterfv);
-   ORD(glTexParameteri);
-   ORD(glTexParameteriv);
-   ORD(glTexSubImage2D);
-   ORD(glUniform1f);
-   ORD(glUniform1fv);
-   ORD(glUniform1i);
-   ORD(glUniform1iv);
-   ORD(glUniform2f);
-   ORD(glUniform2fv);
-   ORD(glUniform2i);
-   ORD(glUniform2iv);
-   ORD(glUniform3f);
-   ORD(glUniform3fv);
-   ORD(glUniform3i);
-   ORD(glUniform3iv);
-   ORD(glUniform4f);
-   ORD(glUniform4fv);
-   ORD(glUniform4i);
-   ORD(glUniform4iv);
-   ORD(glUniformMatrix2fv);
-   ORD(glUniformMatrix3fv);
-   ORD(glUniformMatrix4fv);
-   ORD(glUseProgram);
-   ORD(glValidateProgram);
-   ORD(glVertexAttrib1f);
-   ORD(glVertexAttrib1fv);
-   ORD(glVertexAttrib2f);
-   ORD(glVertexAttrib2fv);
-   ORD(glVertexAttrib3f);
-   ORD(glVertexAttrib3fv);
-   ORD(glVertexAttrib4f);
-   ORD(glVertexAttrib4fv);
-   ORD(glVertexAttribPointer);
-   ORD(glViewport);
-
-   GL.init = r;
-   return r;
-}
 
 EAPI int
 ector_shutdown(void)
@@ -234,7 +69,6 @@ ector_shutdown(void)
    if (EINA_LIKELY(_ector_main_count > 0))
      return _ector_main_count;
 
-   GL.init = 0;
    eina_log_timing(_ector_log_dom_global,
                    EINA_LOG_STATE_START,
                    EINA_LOG_STATE_SHUTDOWN);
index 8e12820..da0ac0f 100644 (file)
@@ -3,8 +3,6 @@
 
 #include "Ector.h"
 
-#include "ector_gl_internal.h"
-
 /*
  * variable and macros used for the eina_log module
  */
@@ -42,68 +40,8 @@ extern int _ector_log_dom_global;
 
 /* The following macro are internal to Ector only at this stage */
 
-typedef struct _Ector_Renderer_Data Ector_Renderer_Data;
-typedef struct _Ector_Renderer_Gradient_Data Ector_Renderer_Gradient_Data;
-typedef struct _Ector_Renderer_Gradient_Linear_Data Ector_Renderer_Gradient_Linear_Data;
-typedef struct _Ector_Renderer_Gradient_Radial_Data Ector_Renderer_Gradient_Radial_Data;
-typedef struct _Ector_Renderer_Shape_Data Ector_Renderer_Shape_Data;
-typedef struct _Ector_Renderer_Image_Data Ector_Renderer_Image_Data;
 typedef struct _Ector_Renderer_Buffer_Data Ector_Renderer_Buffer_Data;
 
-struct _Ector_Renderer_Data
-{
-   Ector_Surface *surface;
-   Eina_Matrix3 *m;
-
-   struct {
-      double x;
-      double y;
-   } origin;
-
-   struct {
-      int r, g, b, a;
-   } color;
-
-   Eina_Bool visibility : 1;
-   Eina_Bool finalized : 1;
-};
-
-struct _Ector_Renderer_Gradient_Data
-{
-   Efl_Gfx_Gradient_Stop *colors;
-   unsigned int colors_count;
-
-   Efl_Gfx_Gradient_Spread s;
-};
-
-struct _Ector_Renderer_Gradient_Linear_Data
-{
-   struct {
-      double x, y;
-   } start, end;
-};
-
-struct _Ector_Renderer_Gradient_Radial_Data
-{
-   struct {
-      double x, y;
-   } radial, focal;
-   double radius;
-};
-
-struct _Ector_Renderer_Shape_Data
-{
-   Ector_Renderer *fill;
-   struct {
-      Ector_Renderer *fill;
-      Ector_Renderer *marker;
-   } stroke;
-};
-
-struct _Ector_Renderer_Image_Data
-{
-   Ector_Buffer *buffer;
-};
 
 struct _Ector_Renderer_Buffer_Data
 {
@@ -114,16 +52,6 @@ struct _Ector_Renderer_Buffer_Data
    } fill;
 };
 
-static inline unsigned int
-_renderer_crc_get(Eo *obj, unsigned int crc)
-{
-   unsigned int id;
-
-   id = ector_renderer_crc_get(obj);
-   crc = eina_crc((void*) &id, sizeof (id), crc, EINA_FALSE);
-   return crc;
-}
-
 #include "ector_buffer.h"
 
 #endif
diff --git a/src/lib/ector/ector_renderer.c b/src/lib/ector/ector_renderer.c
deleted file mode 100644 (file)
index 15bd96e..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "ector_private.h"
-
-#define MY_CLASS ECTOR_RENDERER_CLASS
-
-static void
-_ector_renderer_efl_object_destructor(Eo *obj, Ector_Renderer_Data *pd)
-{
-   efl_destructor(efl_super(obj, MY_CLASS));
-
-   if (pd->m) free(pd->m);
-   /*FIXME: pd-> surface will try efl_xref whenever surface_set is called.
-            desturctor is called from a subclass, ref and unref do not match.
-            So, Add this condition temporarily.*/
-   if (efl_ref_count(pd->surface) > 0)
-     efl_unref(pd->surface);
-}
-
-static Efl_Object *
-_ector_renderer_efl_object_finalize(Eo *obj, Ector_Renderer_Data *pd)
-{
-   if (!pd->surface)
-     {
-        CRI("surface is not set yet, go fix your code!");
-        return NULL;
-     }
-   pd->finalized = EINA_TRUE;
-   return efl_finalize(efl_super(obj, MY_CLASS));
-}
-
-static Ector_Surface *
-_ector_renderer_surface_get(const Eo *obj EINA_UNUSED, Ector_Renderer_Data *pd)
-{
-   return pd->surface;
-}
-
-static void
-_ector_renderer_surface_set(Eo *obj EINA_UNUSED, Ector_Renderer_Data *pd, Ector_Surface *s)
-{
-   if (pd->finalized)
-     {
-        CRI("surface_set can be called during object creation only!");
-        return;
-     }
-   pd->surface = efl_xref(s, obj);
-}
-
-static void
-_ector_renderer_transformation_set(Eo *obj EINA_UNUSED,
-                                   Ector_Renderer_Data *pd,
-                                   const Eina_Matrix3 *m)
-{
-   if (!m)
-     {
-        free(pd->m);
-        pd->m = NULL;
-     }
-   else
-     {
-        if (!pd->m) pd->m = malloc(sizeof (Eina_Matrix3));
-        if (!pd->m) return;
-        memcpy(pd->m, m, sizeof (Eina_Matrix3));
-     }
-}
-
-static const Eina_Matrix3 *
-_ector_renderer_transformation_get(const Eo *obj EINA_UNUSED,
-                                   Ector_Renderer_Data *pd)
-{
-   return pd->m;
-}
-
-static void
-_ector_renderer_origin_set(Eo *obj EINA_UNUSED,
-                           Ector_Renderer_Data *pd,
-                           double x, double y)
-{
-   pd->origin.x = x;
-   pd->origin.y = y;
-}
-
-static void
-_ector_renderer_origin_get(const Eo *obj EINA_UNUSED,
-                           Ector_Renderer_Data *pd,
-                           double *x, double *y)
-{
-   if (x) *x = pd->origin.x;
-   if (y) *y = pd->origin.y;
-}
-
-static void
-_ector_renderer_visibility_set(Eo *obj EINA_UNUSED,
-                               Ector_Renderer_Data *pd,
-                               Eina_Bool v)
-{
-   pd->visibility = v;
-}
-
-static Eina_Bool
-_ector_renderer_visibility_get(const Eo *obj EINA_UNUSED,
-                               Ector_Renderer_Data *pd)
-{
-   return pd->visibility;
-}
-
-static void
-_ector_renderer_color_set(Eo *obj EINA_UNUSED,
-                          Ector_Renderer_Data *pd,
-                          int r, int g, int b, int a)
-{
-   pd->color.r = r;
-   pd->color.g = g;
-   pd->color.b = b;
-   pd->color.a = a;
-}
-
-static void
-_ector_renderer_color_get(const Eo *obj EINA_UNUSED,
-                          Ector_Renderer_Data *pd,
-                          int *r, int *g, int *b, int *a)
-{
-   if (r) *r = pd->color.r;
-   if (g) *g = pd->color.g;
-   if (b) *b = pd->color.b;
-   if (a) *a = pd->color.a;
-}
-
-static unsigned int
-_ector_renderer_crc_get(const Eo *obj EINA_UNUSED,
-                        Ector_Renderer_Data *pd)
-{
-   unsigned int crc;
-
-   crc = eina_crc((void*) &pd->color, sizeof(pd->color), 0xffffffff, EINA_TRUE);
-   crc = eina_crc((void*) &pd->origin, sizeof(pd->origin), crc, EINA_FALSE);
-
-   if (pd->m) crc = eina_crc((void*) pd->m, sizeof(Eina_Matrix3), crc, EINA_FALSE);
-
-   return crc;
-}
-
-static void
-_ector_renderer_comp_method_set(Eo *obj EINA_UNUSED,
-                                Ector_Renderer_Data *pd EINA_UNUSED,
-                                Ector_Buffer *comp EINA_UNUSED,
-                                Efl_Gfx_Vg_Composite_Method method EINA_UNUSED)
-{
-}
-
-#include "ector_renderer.eo.c"
diff --git a/src/lib/ector/ector_renderer.eo b/src/lib/ector/ector_renderer.eo
deleted file mode 100644 (file)
index d37f785..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-import eina_types;
-
-abstract @beta Ector.Renderer extends Efl.Object
-{
-   [[Ector renderer abstract interface]]
-
-   c_prefix: ector_renderer;
-   methods {
-      @property surface {
-         [[Surface associated with this renderer]]
-         set {
-            [[Do not use.]]
-         }
-         get {
-            [[Gets the surface associated with this renderer. Can not be set.]]
-         }
-         values {
-            s: Ector.Surface; [[Associated surface]]
-         }
-      }
-      @property transformation {
-         [[Transformation property]]
-         set {
-         }
-         get {
-         }
-         values {
-            m: ptr(const(Eina.Matrix3)); [[Transformation matrix]]
-         }
-      }
-      @property origin {
-         [[Renderer origin]]
-         set {
-         }
-         get {
-         }
-         values {
-            x: double; [[X coordinate]]
-            y: double; [[Y coordinate]]
-         }
-      }
-      @property visibility {
-         [[The given Ector renderer can be visible or invisible.]]
-         set {
-         }
-         get {
-         }
-         values {
-            v: bool; [[$true to make the object visible, $false otherwise]]
-         }
-      }
-      @property color {
-         [[Retrieves the general/main color of the given Ector renderer.
-
-           Retrieves the main color's RGB component (and alpha channel)
-           values, which range from 0 to 255. For the alpha channel,
-           which defines the object's transparency level, 0 means totally
-           transparent, while 255 means opaque. These color values are
-           premultiplied by the alpha value.
-
-           Use null pointers on the components you're not interested in,
-           they'll be ignored by the function.
-         ]]
-         set {
-         }
-         get {
-         }
-         values {
-            r: int; [[The red component of the given color.]]
-            g: int; [[The green component of the given color.]]
-            b: int; [[The blue component of the given color.]]
-            a: int; [[The alpha component of the given color.]]
-         }
-      }
-      @property crc {
-         [[Cyclic redundancy check]]
-         get {
-            return: uint; [[CRC value]]
-         }
-      }
-      @property comp_method {
-         [[Set Composite Buffer to this Renderer]]
-         set {
-         }
-         values {
-            comp: Ector.Buffer; [[Composite Buffer]]
-            method: Efl.Gfx.Vg_Composite_Method; [[Composite method]]
-         }
-      }
-      draw @pure_virtual {
-         [[Actual draw operation]]
-         return: bool; [[$true on success, $false otherwise]]
-         params {
-            @in op: Efl.Gfx.Render_Op; [[Renderer operation]]
-            @in clips: array<Eina.Rect>; [[Array of @Eina.Rect clip]]
-            @in mul_col: uint; [[Premultiplied color]]
-         }
-      }
-      prepare @pure_virtual {
-         [[Prepare for rendering]]
-         return: bool; [[$true on success, $false otherwise]]
-      }
-   }
-   implements {
-      Efl.Object.destructor;
-      Efl.Object.finalize;
-   }
-}
diff --git a/src/lib/ector/ector_renderer.h b/src/lib/ector/ector_renderer.h
deleted file mode 100644 (file)
index 482f6cb..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef ECTOR_RENDERER_H
-#define ECTOR_RENDERER_H
-
-#include "ector_renderer.eo.h"
-#include "ector_renderer_shape.eo.h"
-#include "ector_renderer_image.eo.h"
-#include "ector_renderer_gradient.eo.h"
-#include "ector_renderer_gradient_linear.eo.h"
-#include "ector_renderer_gradient_radial.eo.h"
-
-#endif
diff --git a/src/lib/ector/ector_renderer_gradient.c b/src/lib/ector/ector_renderer_gradient.c
deleted file mode 100644 (file)
index 8ba3ba3..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "ector_private.h"
-
-#define MY_CLASS ECTOR_RENDERER_GRADIENT_MIXIN
-
-static void
-_ector_renderer_gradient_efl_gfx_gradient_stop_set(Eo *obj EINA_UNUSED,
-                                                                Ector_Renderer_Gradient_Data *pd,
-                                                                const Efl_Gfx_Gradient_Stop *colors,
-                                                                unsigned int length)
-{
-   pd->colors = realloc(pd->colors, length * sizeof(Efl_Gfx_Gradient_Stop));
-   if (!pd->colors)
-     {
-        pd->colors_count = 0;
-        return ;
-     }
-
-   memcpy(pd->colors, colors, length * sizeof(Efl_Gfx_Gradient_Stop));
-   pd->colors_count = length;
-}
-
-static void
-_ector_renderer_gradient_efl_gfx_gradient_stop_get(const Eo *obj EINA_UNUSED,
-                                                                Ector_Renderer_Gradient_Data *pd,
-                                                                const Efl_Gfx_Gradient_Stop **colors,
-                                                                unsigned int *length)
-{
-   if (colors) *colors = pd->colors;
-   if (length) *length = pd->colors_count;
-}
-
-static void
-_ector_renderer_gradient_efl_gfx_gradient_spread_set(Eo *obj EINA_UNUSED,
-                                                                  Ector_Renderer_Gradient_Data *pd,
-                                                                  Efl_Gfx_Gradient_Spread s)
-{
-   pd->s = s;
-}
-
-static Efl_Gfx_Gradient_Spread
-_ector_renderer_gradient_efl_gfx_gradient_spread_get(const Eo *obj EINA_UNUSED,
-                                                                  Ector_Renderer_Gradient_Data *pd)
-{
-   return pd->s;
-}
-
-static void
-_ector_renderer_gradient_efl_object_invalidate(Eo *obj EINA_UNUSED,
-                                               Ector_Renderer_Gradient_Data *pd)
-{
-   if (pd->colors) free(pd->colors);
-}
-
-#include "ector_renderer_gradient.eo.c"
diff --git a/src/lib/ector/ector_renderer_gradient.eo b/src/lib/ector/ector_renderer_gradient.eo
deleted file mode 100644 (file)
index fda0e33..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-mixin @beta Ector.Renderer.Gradient requires Efl.Object extends Efl.Gfx.Gradient
-{
-   [[Ector gradient renderer mixin]]
-   c_prefix: ector_renderer_gradient;
-   implements {
-      Efl.Gfx.Gradient.stop { get; set; }
-      Efl.Gfx.Gradient.spread { get; set; }
-      Efl.Object.invalidate;
-   }
-}
diff --git a/src/lib/ector/ector_renderer_gradient_linear.c b/src/lib/ector/ector_renderer_gradient_linear.c
deleted file mode 100644 (file)
index 8b6a691..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "ector_private.h"
-
-static void
-_ector_renderer_gradient_linear_efl_gfx_gradient_linear_start_set(Eo *obj EINA_UNUSED,
-                                                                          Ector_Renderer_Gradient_Linear_Data *pd,
-                                                                          double x, double y)
-{
-   pd->start.x = x;
-   pd->start.y = y;
-}
-
-static void
-_ector_renderer_gradient_linear_efl_gfx_gradient_linear_start_get(const Eo *obj EINA_UNUSED,
-                                                                          Ector_Renderer_Gradient_Linear_Data *pd,
-                                                                          double *x, double *y)
-{
-   if (x) *x = pd->start.x;
-   if (y) *y = pd->start.y;
-}
-
-static void
-_ector_renderer_gradient_linear_efl_gfx_gradient_linear_end_set(Eo *obj EINA_UNUSED,
-                                                                        Ector_Renderer_Gradient_Linear_Data *pd,
-                                                                        double x, double y)
-{
-   pd->end.x = x;
-   pd->end.y = y;
-}
-
-static void
-_ector_renderer_gradient_linear_efl_gfx_gradient_linear_end_get(const Eo *obj EINA_UNUSED,
-                                                                        Ector_Renderer_Gradient_Linear_Data *pd,
-                                                                        double *x, double *y)
-{
-   if (x) *x = pd->end.x;
-   if (y) *y = pd->end.y;
-}
-
-#include "ector_renderer_gradient_linear.eo.c"
diff --git a/src/lib/ector/ector_renderer_gradient_linear.eo b/src/lib/ector/ector_renderer_gradient_linear.eo
deleted file mode 100644 (file)
index 2cd05a1..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-mixin @beta Ector.Renderer.Gradient.Linear extends Efl.Gfx.Gradient_Linear
-{
-   [[Ector gradient linear renderer mixin]]
-   c_prefix: ector_renderer_gradient_linear;
-   implements {
-      Efl.Gfx.Gradient_Linear.start { get; set; }
-      Efl.Gfx.Gradient_Linear.end { get; set; }
-   }
-}
diff --git a/src/lib/ector/ector_renderer_gradient_radial.c b/src/lib/ector/ector_renderer_gradient_radial.c
deleted file mode 100644 (file)
index 231a2c5..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "ector_private.h"
-
-static void
-_ector_renderer_gradient_radial_efl_gfx_gradient_radial_center_set(Eo *obj EINA_UNUSED,
-                                                                           Ector_Renderer_Gradient_Radial_Data *pd,
-                                                                           double x, double y)
-{
-   pd->radial.x = x;
-   pd->radial.y = y;
-}
-
-static void
-_ector_renderer_gradient_radial_efl_gfx_gradient_radial_center_get(const Eo *obj EINA_UNUSED,
-                                                                           Ector_Renderer_Gradient_Radial_Data *pd,
-                                                                           double *x, double *y)
-{
-   if (x) *x = pd->radial.x;
-   if (y) *y = pd->radial.y;
-}
-
-static void
-_ector_renderer_gradient_radial_efl_gfx_gradient_radial_radius_set(Eo *obj EINA_UNUSED,
-                                                                           Ector_Renderer_Gradient_Radial_Data *pd,
-                                                                           double r)
-{
-   pd->radius = r;
-}
-
-static double
-_ector_renderer_gradient_radial_efl_gfx_gradient_radial_radius_get(const Eo *obj EINA_UNUSED,
-                                                                           Ector_Renderer_Gradient_Radial_Data *pd)
-{
-   return pd->radius;
-}
-
-
-static void
-_ector_renderer_gradient_radial_efl_gfx_gradient_radial_focal_set(Eo *obj EINA_UNUSED,
-                                                                          Ector_Renderer_Gradient_Radial_Data *pd,
-                                                                          double x, double y)
-{
-   pd->focal.x = x;
-   pd->focal.y = y;
-}
-
-static void
-_ector_renderer_gradient_radial_efl_gfx_gradient_radial_focal_get(const Eo *obj EINA_UNUSED,
-                                                                          Ector_Renderer_Gradient_Radial_Data *pd,
-                                                                          double *x, double *y)
-{
-   if (x) *x = pd->focal.x;
-   if (y) *y = pd->focal.y;
-}
-
-#include "ector_renderer_gradient_radial.eo.c"
diff --git a/src/lib/ector/ector_renderer_gradient_radial.eo b/src/lib/ector/ector_renderer_gradient_radial.eo
deleted file mode 100644 (file)
index 3b05e4e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-mixin @beta Ector.Renderer.Gradient.Radial extends Efl.Gfx.Gradient_Radial
-{
-   [[Ector gradient radial renderer mixin]]
-   c_prefix: ector_renderer_gradient_radial;
-   implements {
-      Efl.Gfx.Gradient_Radial.center { get; set; }
-      Efl.Gfx.Gradient_Radial.radius { get; set; }
-      Efl.Gfx.Gradient_Radial.focal { get; set; }
-   }
-}
diff --git a/src/lib/ector/ector_renderer_image.c b/src/lib/ector/ector_renderer_image.c
deleted file mode 100644 (file)
index 3e34254..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "ector_private.h"
-
-#define MY_CLASS ECTOR_RENDERER_IMAGE_MIXIN
-
-
-static void
-_ector_renderer_image_buffer_set(Eo *obj EINA_UNUSED,
-                                 Ector_Renderer_Image_Data *pd,
-                                 Ector_Buffer *buffer)
-{
-   pd->buffer = buffer;
-}
-
-
-#include "ector_renderer_image.eo.c"
diff --git a/src/lib/ector/ector_renderer_image.eo b/src/lib/ector/ector_renderer_image.eo
deleted file mode 100644 (file)
index ff84bc8..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-mixin @beta Ector.Renderer.Image
-{
-   [[Ector image renderer mixin]]
-   c_prefix: ector_renderer_image;
-   methods {
-      @property buffer {
-         set {
-         }
-         values {
-            buffer : Ector.Buffer; [[Image buffer]]
-         }
-       }
-   }
-}
diff --git a/src/lib/ector/ector_renderer_shape.c b/src/lib/ector/ector_renderer_shape.c
deleted file mode 100644 (file)
index 5e421c8..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "ector_private.h"
-
-#define MY_CLASS ECTOR_RENDERER_SHAPE_MIXIN
-
-static void
-_ector_renderer_shape_fill_set(Eo *obj EINA_UNUSED,
-                                       Ector_Renderer_Shape_Data *pd,
-                                       const Ector_Renderer *r)
-{
-   efl_replace(&pd->fill, r);
-}
-
-static const Ector_Renderer *
-_ector_renderer_shape_fill_get(const Eo *obj EINA_UNUSED,
-                                       Ector_Renderer_Shape_Data *pd)
-{
-   return pd->fill;
-}
-
-static void
-_ector_renderer_shape_stroke_fill_set(Eo *obj EINA_UNUSED,
-                                              Ector_Renderer_Shape_Data *pd,
-                                              const Ector_Renderer *r)
-{
-   efl_replace(&pd->stroke.fill, r);
-}
-
-static const Ector_Renderer *
-_ector_renderer_shape_stroke_fill_get(const Eo *obj EINA_UNUSED,
-                                              Ector_Renderer_Shape_Data *pd)
-{
-   return pd->stroke.fill;
-}
-
-static void
-_ector_renderer_shape_stroke_marker_set(Eo *obj EINA_UNUSED,
-                                                Ector_Renderer_Shape_Data *pd,
-                                                const Ector_Renderer *r)
-{
-   efl_replace(&pd->stroke.marker, r);
-}
-
-static const Ector_Renderer *
-_ector_renderer_shape_stroke_marker_get(const Eo *obj EINA_UNUSED,
-                                                Ector_Renderer_Shape_Data *pd)
-{
-   return pd->stroke.marker;
-}
-
-static void
-_ector_renderer_shape_efl_object_invalidate(Eo *obj EINA_UNUSED,
-                                            Ector_Renderer_Shape_Data *pd)
-{
-   efl_replace(&pd->fill, NULL);
-   efl_replace(&pd->stroke.fill, NULL);
-   efl_replace(&pd->stroke.marker, NULL);
-}
-
-
-#include "ector_renderer_shape.eo.c"
diff --git a/src/lib/ector/ector_renderer_shape.eo b/src/lib/ector/ector_renderer_shape.eo
deleted file mode 100644 (file)
index c6038ad..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-import ector_renderer;
-
-mixin @beta Ector.Renderer.Shape requires Efl.Object extends Efl.Gfx.Shape
-{
-   [[Ector shape renderer mixin]]
-   c_prefix: ector_renderer_shape;
-   methods {
-      @property fill {
-         [[Fill property]]
-         set {
-         }
-         get {
-         }
-         values {
-            r: const(Ector.Renderer); [[Ector fill renderer]]
-         }
-      }
-      @property stroke_fill {
-         [[Stroke fill property]]
-         set {
-         }
-          get {
-         }
-         values {
-            r: const(Ector.Renderer); [[Ector stroke fill renderer]]
-         }
-      }
-      @property stroke_marker {
-         [[Stroke marker property]]
-         set {
-         }
-         get {
-         }
-         values {
-            r: const(Ector.Renderer); [[Ector stroke marker renderer]]
-         }
-      }
-   }
-   implements {
-      Efl.Object.invalidate;
-   }
-}
diff --git a/src/lib/ector/ector_surface.eo b/src/lib/ector/ector_surface.eo
deleted file mode 100644 (file)
index 7d7defd..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-mixin @beta Ector.Surface extends Ector.Buffer
-{
-   [[Surface interface for Ector]]
-
-   c_prefix: ector_surface;
-   data: null;
-   methods {
-      @property reference_point @pure_virtual {
-         [[This defines where (0,0) is in pixel coordinates inside the surface]]
-         set {}
-         get {}
-         values {
-            x: int; [[X coordinate for reference point]]
-            y: int; [[Y coordinate for reference point]]
-         }
-      }
-      renderer_factory_new @pure_virtual {
-         [[Create a new renderer factory for the given type]]
-         return: Efl.Object; [[Renderer factory object]] /* FIXME: Should be a more restricted type, only here for cyclic. */
-         params {
-            @in type: const(Efl.Class); [[Efl class]] /* FIXME: Should probably be a more restricted type */
-         }
-      }
-      draw_image @pure_virtual {
-         [[ Draw image's buffer to surface buffer. ]]
-         params {
-            @in image: Ector.Buffer; [[Image buffer]]
-            @in x: int; [[Buffer position x]]
-            @in y: int; [[Buffer position y]]
-            @in alpha: int; [[Buffer alpha value]]
-         }
-         return: bool; [[True if drawing was successful]]
-      }
-   }
-}
diff --git a/src/lib/ector/ector_surface.h b/src/lib/ector/ector_surface.h
deleted file mode 100644 (file)
index 4bb0c37..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef ECTOR_SURFACE_H
-#define ECTOR_SURFACE_H
-
-#include "ector_buffer.h"
-#include "ector_surface.eo.h"
-
-#endif
diff --git a/src/lib/ector/ector_util.h b/src/lib/ector/ector_util.h
deleted file mode 100644 (file)
index 2dafaaf..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef ECTOR_UTIL_H
-# define ECTOR_UTIL_H
-
-static inline void
-ector_color_argb_premul(int a, int *r, int *g, int *b)
-{
-   a++;
-   if (r) { *r = (a * *r) >> 8; }
-   if (g) { *g = (a * *g) >> 8; }
-   if (b) { *b = (a * *b) >> 8; }
-}
-
-static inline void
-ector_color_argb_unpremul(int a, int *r, int *g, int *b)
-{
-   if (!a) return;
-   if (r) { *r = (255 * *r) / a; }
-   if (g) { *g = (255 * *g) / a; }
-   if (b) { *b = (255 * *b) / a; }
-}
-
-
-static inline unsigned int
-ector_color_multiply(unsigned int c1, unsigned int c2)
-{
-   return ( ((((((c1) >> 16) & 0xff00) * (((c2) >> 16) & 0xff00)) + 0xff0000) & 0xff000000) +
-            ((((((c1) >> 8) & 0xff00) * (((c2) >> 16) & 0xff)) + 0xff00) & 0xff0000) +
-            ((((((c1) & 0xff00) * ((c2) & 0xff00)) + 0xff0000) >> 16) & 0xff00) +
-            (((((c1) & 0xff) * ((c2) & 0xff)) + 0xff) >> 8) );
-}
-
-#endif
index 88b6c6b..45a3b9e 100644 (file)
@@ -40,11 +40,6 @@ typedef unsigned int GLuint;
 typedef short        GLshort;
 
 #include "gl/ector_gl_buffer.eo.h"
-#include "gl/ector_gl_surface.eo.h"
-#include "gl/ector_renderer_gl.eo.h"
-#include "gl/ector_renderer_gl_shape.eo.h"
-#include "gl/ector_renderer_gl_gradient_linear.eo.h"
-#include "gl/ector_renderer_gl_gradient_radial.eo.h"
 
 #endif
 
index 4fcfb1c..0264597 100644 (file)
@@ -5,69 +5,4 @@
 
 #include "ector_private.h"
 
-#define SHADER_FLAG_SAM_BITSHIFT 3
-#define SHADER_FLAG_MASKSAM_BITSHIFT 6
-
-typedef enum {
-  SHADER_FLAG_TEX               = (1 << 0),
-  SHADER_FLAG_BGRA              = (1 << 1),
-  SHADER_FLAG_MASK              = (1 << 2),
-  SHADER_FLAG_SAM12             = (1 << (SHADER_FLAG_SAM_BITSHIFT + 0)),
-  SHADER_FLAG_SAM21             = (1 << (SHADER_FLAG_SAM_BITSHIFT + 1)),
-  SHADER_FLAG_SAM22             = (1 << (SHADER_FLAG_SAM_BITSHIFT + 2)),
-  SHADER_FLAG_MASKSAM12         = (1 << (SHADER_FLAG_MASKSAM_BITSHIFT + 0)),
-  SHADER_FLAG_MASKSAM21         = (1 << (SHADER_FLAG_MASKSAM_BITSHIFT + 1)),
-  SHADER_FLAG_MASKSAM22         = (1 << (SHADER_FLAG_MASKSAM_BITSHIFT + 2)),
-  SHADER_FLAG_IMG               = (1 << 9),
-  SHADER_FLAG_BIGENDIAN         = (1 << 10),
-  SHADER_FLAG_YUV               = (1 << 11),
-  SHADER_FLAG_YUY2              = (1 << 12),
-  SHADER_FLAG_NV12              = (1 << 13),
-  SHADER_FLAG_YUV_709           = (1 << 14),
-  SHADER_FLAG_EXTERNAL          = (1 << 15),
-  SHADER_FLAG_AFILL             = (1 << 16),
-  SHADER_FLAG_NOMUL             = (1 << 17),
-  SHADER_FLAG_ALPHA             = (1 << 18),
-  SHADER_FLAG_RGB_A_PAIR        = (1 << 19),
-} Shader_Flag;
-#define SHADER_FLAG_COUNT 20
-
-#define SHAD_VERTEX 0
-#define SHAD_COLOR  1
-#define SHAD_TEXUV  2
-#define SHAD_TEXUV2 3
-#define SHAD_TEXUV3 4
-#define SHAD_TEXA   5
-#define SHAD_TEXSAM 6
-#define SHAD_MASK   7
-#define SHAD_MASKSAM 8
-
-static inline void
-gl_compile_link_error(GLuint target, const char *action, Eina_Bool is_shader)
-{
-   int loglen = 0, chars = 0;
-   char *logtxt;
-
-   if (is_shader)
-     /* Shader info log */
-     GL.glGetShaderiv(target, GL_INFO_LOG_LENGTH, &loglen);
-   else
-     /* Program info log */
-     GL.glGetProgramiv(target, GL_INFO_LOG_LENGTH, &loglen);
-
-   if (loglen > 0)
-     {
-        logtxt = calloc(loglen, sizeof(char));
-        if (logtxt)
-          {
-             if (is_shader) GL.glGetShaderInfoLog(target, loglen, &chars, logtxt);
-             else GL.glGetProgramInfoLog(target, loglen, &chars, logtxt);
-             ERR("Failed to %s: %s", action, logtxt);
-             free(logtxt);
-          }
-     }
-}
-
-GLuint ector_gl_shader_compile(uint64_t flags);
-
 #endif
diff --git a/src/lib/ector/gl/ector_gl_shader.c b/src/lib/ector/gl/ector_gl_shader.c
deleted file mode 100644 (file)
index 159d8eb..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "gl/Ector_GL.h"
-#include "ector_private.h"
-#include "ector_gl_private.h"
-
-#include "shader/ector_gl_shaders.x"
-
-static const char *_shader_flags[SHADER_FLAG_COUNT] = {
-  "TEX",
-  "BGRA",
-  "MASK",
-  "SAM12",
-  "SAM21",
-  "SAM22",
-  "MASKSAM12",
-  "MASKSAM21",
-  "MASKSAM22",
-  "IMG",
-  "BIGENDIAN",
-  "YUV",
-  "YUY2",
-  "NV12",
-  "YUV_709",
-  "EXTERNAL",
-  "AFILL",
-  "NOMUL",
-  "ALPHA",
-  "RGB_A_PAIR"
-};
-
-static Eina_Strbuf *
-_ector_gl_shader_glsl_get(uint64_t flags, const char *base)
-{
-   Eina_Strbuf *r;
-   unsigned int k;
-
-   r = eina_strbuf_new();
-   for (k =0; k < SHADER_FLAG_COUNT; k++)
-     {
-        if (flags & (1 << k))
-          eina_strbuf_append_printf(r, "#define SHD_%s\n", _shader_flags[k]);
-     }
-
-   eina_strbuf_append(r, base);
-
-   return r;
-}
-
-static GLint
-_ector_gl_shader_glsl_compile(GLuint s, const Eina_Strbuf *shader, const char *type)
-{
-   const char *str;
-   GLint ok = 0;
-
-   str = eina_strbuf_string_get(shader);
-
-   GL.glShaderSource(s, 1, &str, NULL);
-   GL.glCompileShader(s);
-   GL.glGetShaderiv(s, GL_COMPILE_STATUS, &ok);
-   if (!ok)
-     {
-        Eina_Strbuf *err;
-
-        err = eina_strbuf_new();
-        if (!err) goto on_error;
-        eina_strbuf_append_printf(err, "compile of %s shader", type);
-
-        gl_compile_link_error(s, eina_strbuf_string_get(err), EINA_TRUE);
-        ERR("Abort %s:\n%s", eina_strbuf_string_get(err), str);
-
-        eina_strbuf_free(err);
-     }
-
- on_error:
-   return ok;
-}
-
-static GLint
-_ector_gl_shader_glsl_link(uint64_t flags,
-                           const Eina_Strbuf *vertex,
-                           const Eina_Strbuf *fragment)
-{
-   GLuint vtx = 0, frg = 0, prg = 0;
-   GLint ok = 0;
-
-   vtx = GL.glCreateShader(GL_VERTEX_SHADER);
-   frg = GL.glCreateShader(GL_FRAGMENT_SHADER);
-
-   // Compiling vertex shader
-   ok = _ector_gl_shader_glsl_compile(vtx, vertex, "vertex");
-   if (!ok) goto on_error;
-
-   // Compile fragment shader
-   ok = _ector_gl_shader_glsl_compile(frg, fragment, "fragment");
-   if (!ok) goto on_error;
-
-   // Link both shader together
-   ok = 0;
-
-   prg = GL.glCreateProgram();
-#ifndef GL_GLES
-   if ((GL.glGetProgramBinary) && (GL.glProgramParameteri))
-     GL.glProgramParameteri(prg, GL_PROGRAM_BINARY_RETRIEVABLE_HINT, GL_TRUE);
-#endif
-   GL.glAttachShader(prg, vtx);
-   GL.glAttachShader(prg, frg);
-
-   GL.glBindAttribLocation(prg, SHAD_VERTEX,  "vertex");
-   GL.glBindAttribLocation(prg, SHAD_COLOR,   "color");
-   GL.glBindAttribLocation(prg, SHAD_TEXUV,   "tex_coord");
-   GL.glBindAttribLocation(prg, SHAD_TEXUV2,  "tex_coord2");
-   GL.glBindAttribLocation(prg, SHAD_TEXUV3,  "tex_coord3");
-   GL.glBindAttribLocation(prg, SHAD_TEXA,    "tex_coorda");
-   GL.glBindAttribLocation(prg, SHAD_TEXSAM,  "tex_sample");
-   GL.glBindAttribLocation(prg, SHAD_MASK,    "mask_coord");
-   GL.glBindAttribLocation(prg, SHAD_MASKSAM, "tex_masksample");
-
-   GL.glLinkProgram(prg);
-   GL.glGetProgramiv(prg, GL_LINK_STATUS, &ok);
-   if (!ok)
-     {
-        gl_compile_link_error(prg, "link fragment and vertex shaders", EINA_FALSE);
-        ERR("Abort compile of shader (flags: %16" PRIx64 ")", flags);
-        GL.glDeleteProgram(prg);
-        prg = 0;
-        goto on_error;
-     }
-
- on_error:
-   if (vtx) GL.glDeleteShader(vtx);
-   if (frg) GL.glDeleteShader(frg);
-
-   return prg;
-}
-
-GLuint
-ector_gl_shader_compile(uint64_t flags)
-{
-   Eina_Strbuf *vertex, *fragment;
-   GLuint shd = 0;
-
-   vertex = _ector_gl_shader_glsl_get(flags, vertex_glsl);
-   fragment = _ector_gl_shader_glsl_get(flags, fragment_glsl);
-   if (!vertex || !fragment) goto on_error;
-
-   shd = _ector_gl_shader_glsl_link(flags, vertex, fragment);
-
- on_error:
-   eina_strbuf_free(vertex);
-   eina_strbuf_free(fragment);
-
-#ifdef GL_GLES
-   GL.glReleaseShaderCompiler();
-#else
-   if (GL.glReleaseShaderCompiler)
-     GL.glReleaseShaderCompiler();
-#endif
-
-   return shd;
-}
diff --git a/src/lib/ector/gl/ector_gl_surface.c b/src/lib/ector/gl/ector_gl_surface.c
deleted file mode 100644 (file)
index 2f144e8..0000000
+++ /dev/null
@@ -1,382 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Eet.h>
-#include <Ector.h>
-
-#include "gl/Ector_GL.h"
-#include "ector_private.h"
-#include "ector_gl_private.h"
-
-typedef struct _Ector_GL_Surface_Data Ector_GL_Surface_Data;
-struct _Ector_GL_Surface_Data
-{
-   struct {
-      int x, y;
-   } reference_point;
-
-   Efl_Gfx_Render_Op op;
-};
-
-typedef struct _Ector_Shader Ector_Shader;
-struct _Ector_Shader
-{
-   uint64_t flags;
-   GLuint prg;
-};
-
-static Eina_Hash *shader_cache = NULL;
-static Eet_File *shader_file = NULL;
-
-static void
-_shader_free(void *s)
-{
-   Ector_Shader *shd = s;
-
-   GL.glDeleteProgram(shd->prg);
-   free(shd);
-}
-
-static Ector_Renderer *
-_ector_gl_surface_ector_surface_renderer_factory_new(Eo *obj,
-                                                             Ector_GL_Surface_Data *pd EINA_UNUSED,
-                                                             const Efl_Class *type)
-{
-   if (type == ECTOR_RENDERER_SHAPE_MIXIN)
-     return efl_add_ref(ECTOR_RENDERER_GL_SHAPE_CLASS, NULL, ector_renderer_surface_set(efl_added, obj));
-   else if (type == ECTOR_RENDERER_GRADIENT_LINEAR_MIXIN)
-     return efl_add_ref(ECTOR_RENDERER_GL_GRADIENT_LINEAR_CLASS, NULL, ector_renderer_surface_set(efl_added, obj));
-   else if (type == ECTOR_RENDERER_GRADIENT_RADIAL_MIXIN)
-     return efl_add_ref(ECTOR_RENDERER_GL_GRADIENT_RADIAL_CLASS, NULL, ector_renderer_surface_set(efl_added, obj));
-
-   ERR("Couldn't find class for type: %s\n", efl_class_name_get(type));
-   return NULL;
-}
-
-static void
-_ector_gl_surface_ector_surface_reference_point_set(Eo *obj EINA_UNUSED,
-                                                            Ector_GL_Surface_Data *pd,
-                                                            int x, int y)
-{
-   pd->reference_point.x = x;
-   pd->reference_point.y = y;
-}
-
-#define VERTEX_CNT 3
-#define COLOR_CNT 4
-
-static Eina_Bool
-_ector_gl_surface_push(Eo *obj,
-                       Ector_GL_Surface_Data *pd EINA_UNUSED,
-                       uint64_t flags, GLshort *vertex, unsigned int vertex_count, unsigned int mul_col)
-{
-   unsigned int prog;
-
-   prog = ector_gl_surface_shader_get(obj, flags);
-
-   // FIXME: Not using map/unmap buffer yet, nor any pipe
-   // FIXME: Move some of the state change to start of surface drawing?
-   GL.glUseProgram(prog);
-   GL.glDisable(GL_TEXTURE_2D);
-   GL.glDisable(GL_SCISSOR_TEST);
-   GL.glVertexAttribPointer(SHAD_VERTEX, VERTEX_CNT, GL_SHORT, GL_FALSE, 0, vertex);
-   GL.glEnableVertexAttribArray(SHAD_COLOR);
-   GL.glVertexAttribPointer(SHAD_COLOR, COLOR_CNT, GL_UNSIGNED_BYTE, GL_TRUE, 0, &mul_col);
-   GL.glDrawArrays(GL_TRIANGLES, 0, vertex_count);
-
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_ector_gl_surface_state_define(Eo *obj EINA_UNUSED, Ector_GL_Surface_Data *pd, Efl_Gfx_Render_Op op, Eina_Array *clips)
-{
-   if (pd->op == op) return EINA_TRUE;
-
-   // FIXME: no pipe yet, so we can just change the mode right away
-   // Get & apply matrix transformation too
-   switch (op)
-     {
-      case EFL_GFX_RENDER_OP_BLEND: /**< default op: d = d*(1-sa) + s */
-         GL.glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
-         GL.glEnable(GL_BLEND);
-         break;
-      case EFL_GFX_RENDER_OP_COPY: /**< d = s */
-         // Just disable blend mode. no need to set blend func
-         GL.glDisable(GL_BLEND);
-         break;
-      case EFL_GFX_RENDER_OP_LAST:
-      default:
-         return EINA_FALSE;
-     }
-
-   pd->op = op;
-
-   // FIXME: we should not ignore clipping, but that can last for later
-   (void) clips;
-
-   return EINA_TRUE;
-}
-
-static void
-_ector_gl_shader_textures_bind(Ector_Shader *p)
-{
-   struct {
-      const char *name;
-      int enabled;
-   } textures[] = {
-      { "tex", 0 },
-      { "texm", 0 },
-      { "texa", 0 },
-      { "texu", 0 },
-      { "texv", 0 },
-      { "texuv", 0 },
-      { NULL, 0 }
-   };
-   Eina_Bool hastex = 0;
-   int tex_count = 0;
-   GLint loc;
-   int i;
-
-   if (!p) return;
-
-   if ((p->flags & SHADER_FLAG_TEX) != 0)
-     {
-        textures[0].enabled = 1;
-        hastex = 1;
-     }
-   if ((p->flags & SHADER_FLAG_MASK) != 0)
-     {
-        textures[1].enabled = 1;
-        hastex = 1;
-     }
-   if ((p->flags & SHADER_FLAG_RGB_A_PAIR) != 0)
-     {
-        textures[2].enabled = 1;
-        hastex = 1;
-     }
-   if (p->flags & SHADER_FLAG_YUV)
-     {
-        textures[3].enabled = 1;
-        textures[4].enabled = 1;
-        hastex = 1;
-     }
-   else if ((p->flags & SHADER_FLAG_NV12) || (p->flags & SHADER_FLAG_YUY2))
-     {
-        textures[5].enabled = 1;
-        hastex = 1;
-     }
-
-   if (hastex)
-     {
-        GL.glUseProgram(p->prg); // FIXME: is this necessary??
-        for (i = 0; textures[i].name; i++)
-          {
-             if (!textures[i].enabled) continue;
-             loc = GL.glGetUniformLocation(p->prg, textures[i].name);
-             if (loc < 0)
-               {
-                  ERR("Couldn't find uniform '%s' (shader: %16" PRIx64 ")",
-                      textures[i].name, p->flags);
-               }
-             GL.glUniform1i(loc, tex_count++);
-          }
-     }
-}
-
-static Ector_Shader *
-_ector_gl_shader_load(uint64_t flags)
-{
-   Eina_Strbuf *buf;
-   Ector_Shader *r = NULL;
-   void *data;
-   int *formats = NULL;
-   int length = 0, num = 0;
-   GLuint prg;
-   GLint ok = 0, vtx = GL_NONE, frg = GL_NONE;
-   Eina_Bool direct = 1;
-
-   buf = eina_strbuf_new();
-   if (!buf) return NULL;
-
-   eina_strbuf_append_printf(buf, "ector/shader/%16" PRIx64, flags);
-
-   data = (void*) eet_read_direct(shader_file, eina_strbuf_string_get(buf), &length);
-   if (!data)
-     {
-        data = eet_read(shader_file, eina_strbuf_string_get(buf), &length);
-        direct = 0;
-     }
-   if ((!data) || (length <= 0)) goto on_error;
-
-   GL.glGetIntegerv(GL_NUM_PROGRAM_BINARY_FORMATS, &num);
-   if (num <= 0) goto on_error;
-
-   formats = calloc(num, sizeof(int));
-   if (!formats) goto on_error;
-
-   GL.glGetIntegerv(GL_PROGRAM_BINARY_FORMATS, formats);
-   if (!formats[0]) goto on_error;
-
-   prg = GL.glCreateProgram();
-   // TODO: invalid rendering error occurs when attempting to use a
-   // glProgramBinary.  In order to render correctly, we should create a
-   // dummy vertex shader.
-   vtx = GL.glCreateShader(GL_VERTEX_SHADER);
-   GL.glAttachShader(prg, vtx);
-   frg = GL.glCreateShader(GL_FRAGMENT_SHADER);
-   GL.glAttachShader(prg, frg);
-
-   GL.glProgramBinary(prg, formats[0], data, length);
-
-   GL.glBindAttribLocation(prg, SHAD_VERTEX,  "vertex");
-   GL.glBindAttribLocation(prg, SHAD_COLOR,   "color");
-   GL.glBindAttribLocation(prg, SHAD_TEXUV,   "tex_coord");
-   GL.glBindAttribLocation(prg, SHAD_TEXUV2,  "tex_coord2");
-   GL.glBindAttribLocation(prg, SHAD_TEXUV3,  "tex_coord3");
-   GL.glBindAttribLocation(prg, SHAD_TEXA,    "tex_coorda");
-   GL.glBindAttribLocation(prg, SHAD_TEXSAM,  "tex_sample");
-   GL.glBindAttribLocation(prg, SHAD_MASK,    "mask_coord");
-   GL.glBindAttribLocation(prg, SHAD_MASKSAM, "tex_masksample");
-
-   GL.glGetProgramiv(prg, GL_LINK_STATUS, &ok);
-   if (!ok)
-     {
-        gl_compile_link_error(prg, "load a program object", EINA_FALSE);
-        ERR("Abort load of program (%s)", eina_strbuf_string_get(buf));
-        GL.glDeleteProgram(prg);
-        goto on_error;
-     }
-
-   r = malloc(sizeof (Ector_Shader));
-   r->prg = prg;
-   r->flags = flags;
-
-   _ector_gl_shader_textures_bind(r);
-
- on_error:
-   if (vtx) GL.glDeleteShader(vtx);
-   if (frg) GL.glDeleteShader(frg);
-   free(formats);
-
-   if (!direct) free(data);
-   eina_strbuf_free(buf);
-   return r;
-}
-
-static unsigned int
-_ector_gl_surface_shader_get(Eo *obj EINA_UNUSED, Ector_GL_Surface_Data *pd EINA_UNUSED, uint64_t flags)
-{
-   Ector_Shader *shd;
-   Eina_Strbuf *buf = NULL;
-   void *data = NULL;
-   int length = 0, size = 0;
-   GLenum format;
-   GLuint prg;
-
-   shd = eina_hash_find(shader_cache, &flags);
-   if (shd) return shd->prg;
-
-   shd = _ector_gl_shader_load(flags);
-   if (shd)
-     {
-        eina_hash_direct_add(shader_cache, &shd->flags, shd);
-        return shd->prg;
-     }
-
-   prg = ector_gl_shader_compile(flags);
-   if (prg <= 0) return -1;
-
-   GL.glGetProgramiv(prg, GL_PROGRAM_BINARY_LENGTH, &length);
-   if (length <= 0) return prg;
-
-   if (GL.glGetProgramBinary)
-     {
-        data = malloc(length);
-        if (!data) return prg;
-
-        GL.glGetProgramBinary(prg, length, &size, &format, data);
-        if (length != size) goto on_error;
-     }
-
-   shd = malloc(sizeof (Ector_Shader));
-   if (!shd) goto on_error;
-
-   shd->prg = prg;
-   shd->flags = flags;
-
-   // Save the shader in the cache file
-   eina_hash_direct_add(shader_cache, &shd->flags, shd);
-
-   // Save binary shader in the cache file
-   if (GL.glGetProgramBinary)
-     {
-        buf = eina_strbuf_new();
-        eina_strbuf_append_printf(buf, "ector/shader/%16" PRIx64, flags);
-
-        eet_write(shader_file, eina_strbuf_string_get(buf), data, length, 1);
-
-        eina_strbuf_free(buf);
-     }
-
- on_error:
-   free(data);
-
-   return prg;
-}
-
-static void
-_ector_gl_surface_efl_object_destructor(Eo *obj, Ector_GL_Surface_Data *pd EINA_UNUSED)
-{
-   efl_destructor(efl_super(obj, ECTOR_GL_SURFACE_CLASS));
-
-   eina_hash_free(shader_cache);
-   shader_cache = NULL;
-   eet_close(shader_file);
-   shader_file = NULL;
-}
-
-static Efl_Object *
-_ector_gl_surface_efl_object_constructor(Eo *obj, Ector_GL_Surface_Data *pd EINA_UNUSED)
-{
-   Eina_Strbuf *file_path = NULL;
-
-   obj = efl_constructor(efl_super(obj, ECTOR_GL_SURFACE_CLASS));
-   if (!obj) return NULL;
-
-   if (shader_cache) return obj;
-
-   // Only initialize things once
-   shader_cache = eina_hash_int64_new(_shader_free);
-
-   /* glsym_glProgramBinary = _ector_gl_symbol_get(obj, "glProgramBinary"); */
-   /* glsym_glGetProgramBinary = _ector_gl_symbol_get(obj, "glGetProgramBinary"); */
-   /* glsym_glProgramParameteri = _ector_gl_symbol_get(obj, "glProgramParameteri"); */
-   /* glsym_glReleaseShaderCompiler = _ector_gl_symbol_get(obj, "glReleaseShaderCompiler"); */
-
-   if (GL.glProgramBinary && GL.glGetProgramBinary)
-     {
-        file_path = eina_strbuf_new();
-        if (eina_environment_home_get())
-          eina_strbuf_append(file_path, eina_environment_home_get());
-        else
-          eina_strbuf_append(file_path, eina_environment_tmp_get());
-        eina_strbuf_append_printf(file_path, "%c.cache", EINA_PATH_SEP_C);
-        // FIXME: test and create path if necessary
-        eina_strbuf_append_printf(file_path, "%cector", EINA_PATH_SEP_C);
-        eina_strbuf_append_printf(file_path, "%cector-shader-%i.%i.eet",
-                                  EINA_PATH_SEP_C, EFL_VERSION_MAJOR, EFL_VERSION_MINOR);
-        shader_file = eet_open(eina_strbuf_string_get(file_path), EET_FILE_MODE_READ_WRITE);
-     }
-   if (!shader_file)
-     {
-        ERR("Unable to create '%s' ector binary shader file.", eina_strbuf_string_get(file_path));
-        GL.glProgramBinary = NULL;
-     }
-   eina_strbuf_free(file_path);
-
-   return obj;
-}
-
-#include "ector_gl_surface.eo.c"
diff --git a/src/lib/ector/gl/ector_gl_surface.eo b/src/lib/ector/gl/ector_gl_surface.eo
deleted file mode 100644 (file)
index 4f02576..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-import ector_types;
-
-class @beta Ector.GL.Surface extends Ector.GL.Buffer implements Ector.Surface
-{
-   [[Ector GL surface class]]
-   c_prefix: ector_gl_surface;
-   methods {
-      shader_get {
-         [[Get shader]]
-         return: uint; [[Shader count]]
-         params {
-            @in flags: uint64; [[Flags]]
-         }
-      }
-      push {
-          [[Push surface to GPU]]
-         return: bool; [[$true on success, $false otherwise]]
-    params {
-       @in flags: uint64; [[GL flags]]
-       @in vertex: ptr(GLshort); [[GL vertex]]
-       @in vertex_count: uint; [[GL vertex count]]
-       @in mul_col: uint; [[Premultiplied color]]
-    }
-      }
-      state_define {
-          [[Define state]]
-         return: bool; [[$true on success, $false otherwise]]
-    params {
-            @in op: Efl.Gfx.Render_Op; [[Render operation]]
-       @in clips: array<Eina.Rect>; [[Array of @Eina.Rect clip]]
-    }
-      }
-   }
-   implements {
-      Ector.Surface.renderer_factory_new;
-      Ector.Surface.reference_point { set; }
-      Efl.Object.destructor;
-      Efl.Object.constructor;
-   }
-}
diff --git a/src/lib/ector/gl/ector_renderer_gl.c b/src/lib/ector/gl/ector_renderer_gl.c
deleted file mode 100644 (file)
index b06792a..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "gl/Ector_GL.h"
-#include "ector_private.h"
-#include "ector_gl_private.h"
-
-typedef struct _Ector_Renderer_GL_Data Ector_Renderer_GL_Data;
-struct _Ector_Renderer_GL_Data
-{
-   Ector_Renderer_Data *base;
-};
-
-static Eina_Bool
-_ector_renderer_gl_ector_renderer_prepare(Eo *obj EINA_UNUSED,
-                                                            Ector_Renderer_GL_Data *pd EINA_UNUSED)
-{
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_ector_renderer_gl_ector_renderer_draw(Eo *obj EINA_UNUSED,
-                                                         Ector_Renderer_GL_Data *pd,
-                                                         Efl_Gfx_Render_Op op,
-                                                         Eina_Array *clips,
-                                                         unsigned int mul_col EINA_UNUSED)
-{
-   Eina_Bool r;
-
-   r = ector_gl_surface_state_define(pd->base->surface, op, clips);
-
-   return r;
-}
-
-static Efl_Object *
-_ector_renderer_gl_efl_object_constructor(Eo *obj, Ector_Renderer_GL_Data *pd)
-{
-   obj = efl_constructor(efl_super(obj, ECTOR_RENDERER_GL_CLASS));
-   if (!obj) return NULL;
-
-   pd->base = efl_data_xref(obj, ECTOR_RENDERER_CLASS, obj);
-   return obj;
-}
-
-static void
-_ector_renderer_gl_efl_object_destructor(Eo *obj, Ector_Renderer_GL_Data *pd)
-{
-   efl_data_xunref(obj, pd->base, obj);
-}
-
-#include "ector_renderer_gl.eo.c"
diff --git a/src/lib/ector/gl/ector_renderer_gl.eo b/src/lib/ector/gl/ector_renderer_gl.eo
deleted file mode 100644 (file)
index 62dc486..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-import ector_types;
-
-abstract @beta Ector.Renderer.GL extends Ector.Renderer
-{
-   [[Ector GL renderer abstract class]]
-   methods {
-      op_fill @pure_virtual {
-          [[Fill operation]]
-         return: bool; [[$true on success, $false otherwise]]
-    params {
-       @in flags: uint64; [[GL flags]]
-       @in vertex: ptr(GLshort); [[GL vertex]]
-       @in vertex_count: uint; [[GL vertex count]]
-       @in mul_col: uint; [[Premultiplied color]]
-    }
-      }
-   }
-   implements {
-      Ector.Renderer.prepare;
-      Ector.Renderer.draw;
-      Efl.Object.constructor;
-      Efl.Object.destructor;
-   }
-}
diff --git a/src/lib/ector/gl/ector_renderer_gl_gradient_linear.c b/src/lib/ector/gl/ector_renderer_gl_gradient_linear.c
deleted file mode 100644 (file)
index 7557aab..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "gl/Ector_GL.h"
-#include "ector_private.h"
-#include "ector_gl_private.h"
-
-typedef struct _Ector_Renderer_GL_Gradient_Linear_Data Ector_Renderer_GL_Gradient_Linear_Data;
-struct _Ector_Renderer_GL_Gradient_Linear_Data
-{
-   Ector_Renderer_Gradient_Linear_Data *linear;
-   Ector_Renderer_Gradient_Data *gradient;
-   Ector_Renderer_Data *base;
-};
-
-static Eina_Bool
-_ector_renderer_gl_gradient_linear_ector_renderer_prepare(Eo *obj,
-                                                                       Ector_Renderer_GL_Gradient_Linear_Data *pd)
-{
-   // FIXME: prepare something
-   (void) obj;
-   (void) pd;
-
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_ector_renderer_gl_gradient_linear_ector_renderer_draw(Eo *obj, Ector_Renderer_GL_Gradient_Linear_Data *pd, Efl_Gfx_Render_Op op, Eina_Array *clips, unsigned int mul_col)
-{
-   ector_renderer_draw(efl_super(obj, ECTOR_RENDERER_GL_GRADIENT_LINEAR_CLASS), op, clips, mul_col);
-
-   // FIXME: draw something !
-   (void) pd;
-
-   return EINA_TRUE;
-}
-
-static void
-_ector_renderer_gl_gradient_linear_efl_gfx_path_bounds_get(const Eo *obj EINA_UNUSED,
-                                                             Ector_Renderer_GL_Gradient_Linear_Data *pd,
-                                                             Eina_Rect *r)
-{
-   EINA_RECTANGLE_SET(r,
-                      pd->base->origin.x + pd->linear->start.x,
-                      pd->base->origin.y + pd->linear->start.y,
-                      pd->linear->end.x - pd->linear->start.x,
-                      pd->linear->end.y - pd->linear->start.y);
-}
-
-static Eina_Bool
-_ector_renderer_gl_gradient_linear_ector_renderer_gl_op_fill(Eo *obj, Ector_Renderer_GL_Gradient_Linear_Data *pd, uint64_t flags, GLshort *vertex, unsigned int vertex_count, unsigned int mul_col)
-{
-   // FIXME: The idea here is to select the right shader and push the needed parameter for it
-   // along with the other value
-   (void) obj;
-   (void) pd;
-   (void) flags;
-   (void) vertex;
-   (void) vertex_count;
-   (void) mul_col;
-
-   return EINA_TRUE;
-}
-
-static Efl_Object *
-_ector_renderer_gl_gradient_linear_efl_object_constructor(Eo *obj, Ector_Renderer_GL_Gradient_Linear_Data *pd)
-{
-   obj = efl_constructor(efl_super(obj, ECTOR_RENDERER_GL_GRADIENT_LINEAR_CLASS));
-
-   if (!obj) return NULL;
-
-   pd->base = efl_data_xref(obj, ECTOR_RENDERER_CLASS, obj);
-   pd->linear = efl_data_xref(obj, ECTOR_RENDERER_GRADIENT_LINEAR_MIXIN, obj);
-   pd->gradient = efl_data_xref(obj, ECTOR_RENDERER_GRADIENT_MIXIN, obj);
-
-   return obj;
-}
-
-static void
-_ector_renderer_gl_gradient_linear_efl_object_destructor(Eo *obj, Ector_Renderer_GL_Gradient_Linear_Data *pd)
-{
-   efl_data_xunref(obj, pd->base, obj);
-   efl_data_xunref(obj, pd->linear, obj);
-   efl_data_xunref(obj, pd->gradient, obj);
-}
-
-static void
-_ector_renderer_gl_gradient_linear_efl_gfx_gradient_stop_set(Eo *obj, Ector_Renderer_GL_Gradient_Linear_Data *pd EINA_UNUSED, const Efl_Gfx_Gradient_Stop *colors, unsigned int length)
-{
-   efl_gfx_gradient_stop_set(efl_super(obj, ECTOR_RENDERER_GL_GRADIENT_LINEAR_CLASS), colors, length);
-}
-
-static unsigned int
-_ector_renderer_gl_gradient_linear_ector_renderer_crc_get(const Eo *obj, Ector_Renderer_GL_Gradient_Linear_Data *pd)
-{
-   unsigned int crc;
-
-   crc = ector_renderer_crc_get(efl_super(obj, ECTOR_RENDERER_GL_GRADIENT_LINEAR_CLASS));
-
-   crc = eina_crc((void*) pd->gradient->s, sizeof (Efl_Gfx_Gradient_Spread), crc, EINA_FALSE);
-   if (pd->gradient->colors_count)
-     crc = eina_crc((void*) pd->gradient->colors, sizeof (Efl_Gfx_Gradient_Stop) * pd->gradient->colors_count, crc, EINA_FALSE);
-   crc = eina_crc((void*) pd->linear, sizeof (Ector_Renderer_Gradient_Linear_Data), crc, EINA_FALSE);
-
-   return crc;
-}
-
-#include "ector_renderer_gl_gradient_linear.eo.c"
diff --git a/src/lib/ector/gl/ector_renderer_gl_gradient_linear.eo b/src/lib/ector/gl/ector_renderer_gl_gradient_linear.eo
deleted file mode 100644 (file)
index bbb3152..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-class @beta Ector.Renderer.GL.Gradient.Linear extends Ector.Renderer.GL implements Ector.Renderer.Gradient, Ector.Renderer.Gradient.Linear, Efl.Gfx.Path
-{
-   [[Ector GL renderer gradient linear]]
-   c_prefix: ector_renderer_gl_gradient_linear;
-   implements {
-      Ector.Renderer.prepare;
-      Ector.Renderer.draw;
-      Efl.Gfx.Path.bounds_get;
-      Ector.Renderer.crc { get; }
-      Ector.Renderer.GL.op_fill;
-      Efl.Object.constructor;
-      Efl.Object.destructor;
-      Efl.Gfx.Gradient.stop { set; }
-   }
-}
diff --git a/src/lib/ector/gl/ector_renderer_gl_gradient_radial.c b/src/lib/ector/gl/ector_renderer_gl_gradient_radial.c
deleted file mode 100644 (file)
index 6a1b41e..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "gl/Ector_GL.h"
-#include "ector_private.h"
-#include "ector_gl_private.h"
-
-typedef struct _Ector_Renderer_GL_Gradient_Radial_Data Ector_Renderer_GL_Gradient_Radial_Data;
-struct _Ector_Renderer_GL_Gradient_Radial_Data
-{
-   Ector_Renderer_Gradient_Radial_Data *radial;
-   Ector_Renderer_Gradient_Data *gradient;
-   Ector_Renderer_Data *base;
-};
-
-static Eina_Bool
-_ector_renderer_gl_gradient_radial_ector_renderer_prepare(Eo *obj, Ector_Renderer_GL_Gradient_Radial_Data *pd)
-{
-   // FIXME: prepare something
-   (void) obj;
-   (void) pd;
-
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_ector_renderer_gl_gradient_radial_ector_renderer_draw(Eo *obj, Ector_Renderer_GL_Gradient_Radial_Data *pd, Efl_Gfx_Render_Op op, Eina_Array *clips, unsigned int mul_col)
-{
-   ector_renderer_draw(efl_super(obj, ECTOR_RENDERER_GL_GRADIENT_RADIAL_CLASS), op, clips, mul_col);
-
-   // FIXME: draw something !
-   (void) pd;
-
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_ector_renderer_gl_gradient_radial_ector_renderer_gl_op_fill(Eo *obj, Ector_Renderer_GL_Gradient_Radial_Data *pd, uint64_t flags, GLshort *vertex, unsigned int vertex_count, unsigned int mul_col)
-{
-   // FIXME: The idea here is to select the right shader and push the needed parameter for it
-   // along with the other value
-   (void) obj;
-   (void) pd;
-   (void) flags;
-   (void) vertex;
-   (void) vertex_count;
-   (void) mul_col;
-
-   return EINA_TRUE;
-}
-
-static void
-_ector_renderer_gl_gradient_radial_efl_gfx_path_bounds_get(const Eo *obj EINA_UNUSED,
-                                                             Ector_Renderer_GL_Gradient_Radial_Data *pd,
-                                                             Eina_Rect *r)
-{
-   EINA_RECTANGLE_SET(r,
-                      pd->base->origin.x + pd->radial->radial.x - pd->radial->radius,
-                      pd->base->origin.y + pd->radial->radial.y - pd->radial->radius,
-                      pd->radial->radius * 2, pd->radial->radius * 2 );
-}
-
-static unsigned int
-_ector_renderer_gl_gradient_radial_ector_renderer_crc_get(const Eo *obj, Ector_Renderer_GL_Gradient_Radial_Data *pd)
-{
-   unsigned int crc;
-
-   crc = ector_renderer_crc_get(efl_super(obj, ECTOR_RENDERER_GL_GRADIENT_RADIAL_CLASS));
-
-   crc = eina_crc((void*) pd->gradient->s, sizeof (Efl_Gfx_Gradient_Spread), crc, EINA_FALSE);
-   if (pd->gradient->colors_count)
-     crc = eina_crc((void*) pd->gradient->colors, sizeof (Efl_Gfx_Gradient_Stop) * pd->gradient->colors_count, crc, EINA_FALSE);
-   crc = eina_crc((void*) pd->radial, sizeof (Ector_Renderer_Gradient_Radial_Data), crc, EINA_FALSE);
-
-   return crc;
-}
-
-static Efl_Object *
-_ector_renderer_gl_gradient_radial_efl_object_constructor(Eo *obj, Ector_Renderer_GL_Gradient_Radial_Data *pd)
-{
-   obj = efl_constructor(efl_super(obj, ECTOR_RENDERER_GL_GRADIENT_RADIAL_CLASS));
-
-   if (!obj) return NULL;
-
-   pd->base = efl_data_xref(obj, ECTOR_RENDERER_CLASS, obj);
-   pd->radial = efl_data_xref(obj, ECTOR_RENDERER_GRADIENT_RADIAL_MIXIN, obj);
-   pd->gradient = efl_data_xref(obj, ECTOR_RENDERER_GRADIENT_MIXIN, obj);
-
-   return obj;
-}
-
-static void
-_ector_renderer_gl_gradient_radial_efl_object_destructor(Eo *obj, Ector_Renderer_GL_Gradient_Radial_Data *pd)
-{
-   efl_data_xunref(obj, pd->base, obj);
-   efl_data_xunref(obj, pd->radial, obj);
-   efl_data_xunref(obj, pd->gradient, obj);
-}
-
-static void
-_ector_renderer_gl_gradient_radial_efl_gfx_gradient_stop_set(Eo *obj, Ector_Renderer_GL_Gradient_Radial_Data *pd EINA_UNUSED, const Efl_Gfx_Gradient_Stop *colors, unsigned int length)
-{
-   efl_gfx_gradient_stop_set(efl_super(obj, ECTOR_RENDERER_GL_GRADIENT_RADIAL_CLASS), colors, length);
-}
-
-#include "ector_renderer_gl_gradient_radial.eo.c"
diff --git a/src/lib/ector/gl/ector_renderer_gl_gradient_radial.eo b/src/lib/ector/gl/ector_renderer_gl_gradient_radial.eo
deleted file mode 100644 (file)
index a4c42b4..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-class @beta Ector.Renderer.GL.Gradient.Radial extends Ector.Renderer.GL implements Ector.Renderer.Gradient, Ector.Renderer.Gradient.Radial, Efl.Gfx.Path
-{
-   [[Ector GL renderer gradient radial]]
-   c_prefix: ector_renderer_gl_gradient_radial;
-   implements {
-      Ector.Renderer.prepare;
-      Ector.Renderer.draw;
-      Efl.Gfx.Path.bounds_get;
-      Ector.Renderer.crc { get; }
-      Ector.Renderer.GL.op_fill;
-      Efl.Object.constructor;
-      Efl.Object.destructor;
-      Efl.Gfx.Gradient.stop { set; }
-   }
-}
diff --git a/src/lib/ector/gl/ector_renderer_gl_shape.c b/src/lib/ector/gl/ector_renderer_gl_shape.c
deleted file mode 100644 (file)
index cf2266d..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <Eina.h>
-#include <Ector.h>
-
-#include "gl/Ector_GL.h"
-#include "ector_private.h"
-#include "ector_gl_private.h"
-
-typedef struct _Ector_Renderer_GL_Shape_Data Ector_Renderer_GL_Shape_Data;
-struct _Ector_Renderer_GL_Shape_Data
-{
-   Efl_Gfx_Shape_Public *public_shape;
-
-   Ector_Renderer_Shape_Data *shape;
-   Ector_Renderer_Data *base;
-
-   GLshort *vertex;
-};
-
-EOLIAN static void
-_ector_renderer_gl_shape_efl_gfx_path_commit(Eo *obj EINA_UNUSED,
-                                             Ector_Renderer_GL_Shape_Data *pd)
-{
-   if (pd->vertex)
-     {
-        free(pd->vertex);
-        pd->vertex = NULL;
-     }
-}
-
-static Eina_Bool
-_ector_renderer_gl_shape_ector_renderer_prepare(Eo *obj, Ector_Renderer_GL_Shape_Data *pd)
-{
-   Eina_Rect bounding_box;
-   Eina_Bool r;
-
-   if (pd->vertex) return EINA_TRUE;
-
-   r = ector_renderer_prepare(efl_super(obj, ECTOR_RENDERER_GL_SHAPE_CLASS));
-
-   efl_gfx_path_bounds_get(obj, &bounding_box);
-
-   pd->vertex = malloc(sizeof (GLshort) * 6 * 3);
-
-   // Pushing 2 triangles
-   pd->vertex[0] = bounding_box.x;
-   pd->vertex[1] = bounding_box.y;
-   pd->vertex[2] = 0;
-   pd->vertex[3] = bounding_box.x + bounding_box.w;
-   pd->vertex[4] = bounding_box.y;
-   pd->vertex[5] = 0;
-   pd->vertex[6] = bounding_box.x;
-   pd->vertex[7] = bounding_box.y + bounding_box.h;
-   pd->vertex[8] = 0;
-
-   pd->vertex[9] = bounding_box.x;
-   pd->vertex[10] = bounding_box.y + bounding_box.h;
-   pd->vertex[11] = 0;
-   pd->vertex[12] = bounding_box.x + bounding_box.w;
-   pd->vertex[13] = bounding_box.y + bounding_box.h;
-   pd->vertex[14] = 0;
-   pd->vertex[15] = bounding_box.x + bounding_box.w;
-   pd->vertex[16] = bounding_box.y;
-   pd->vertex[17] = 0;
-
-   return r;
-}
-
-static Eina_Bool
-_ector_renderer_gl_shape_ector_renderer_draw(Eo *obj, Ector_Renderer_GL_Shape_Data *pd, Efl_Gfx_Render_Op op, Eina_Array *clips, unsigned int mul_col)
-{
-   uint64_t flags = 0;
-
-   ector_renderer_draw(efl_super(obj, ECTOR_RENDERER_GL_SHAPE_CLASS), op, clips, mul_col);
-
-   // FIXME: adjust flags content correctly
-   // FIXME: should not ignore clips (idea is that the geometry will be cliped here and the
-   // context will just look up clips for match with current pipe to render)...
-
-   if (pd->shape->fill)
-     {
-        ector_renderer_gl_op_fill(pd->shape->fill, flags, pd->vertex, 6, mul_col);
-     }
-   else
-     {
-        ector_gl_surface_push(pd->base->surface, flags, pd->vertex, 6, mul_col);
-     }
-
-   return EINA_TRUE;
-}
-
-static Eina_Bool
-_ector_renderer_gl_shape_ector_renderer_gl_op_fill(Eo *obj EINA_UNUSED,
-                                                     Ector_Renderer_GL_Shape_Data *pd EINA_UNUSED,
-                                                     uint64_t flags EINA_UNUSED,
-                                                     GLshort *vertex EINA_UNUSED,
-                                                     unsigned int vertex_count EINA_UNUSED,
-                                                     unsigned int mul_col EINA_UNUSED)
-{
-   // FIXME: let's find out how to fill a shape with a shape later.
-   // I need to read SVG specification and see what to do here.
-   ERR("fill with shape not implemented\n");
-   return EINA_FALSE;
-}
-
-static void
-_ector_renderer_gl_shape_efl_gfx_path_bounds_get(const Eo *obj, Ector_Renderer_GL_Shape_Data *pd, Eina_Rect *r)
-{
-   efl_gfx_path_bounds_get(obj, r);
-
-   r->x += pd->base->origin.x;
-   r->y += pd->base->origin.y;
-}
-
-static unsigned int
-_ector_renderer_gl_shape_ector_renderer_crc_get(const Eo *obj, Ector_Renderer_GL_Shape_Data *pd)
-{
-   unsigned int crc;
-
-   crc = ector_renderer_crc_get(efl_super(obj, ECTOR_RENDERER_GL_SHAPE_CLASS));
-
-   // This code should be shared with the other implementation
-   crc = eina_crc((void*) &pd->shape->stroke.marker, sizeof (pd->shape->stroke.marker), crc, EINA_FALSE);
-   crc = eina_crc((void*) &pd->public_shape->stroke.scale, sizeof (pd->public_shape->stroke.scale) * 3, crc, EINA_FALSE); // scale, width, centered
-   crc = eina_crc((void*) &pd->public_shape->stroke.color, sizeof (pd->public_shape->stroke.color), crc, EINA_FALSE);
-   crc = eina_crc((void*) &pd->public_shape->stroke.cap, sizeof (pd->public_shape->stroke.cap), crc, EINA_FALSE);
-   crc = eina_crc((void*) &pd->public_shape->stroke.join, sizeof (pd->public_shape->stroke.join), crc, EINA_FALSE);
-
-   if (pd->shape->fill) crc = _renderer_crc_get(pd->shape->fill, crc);
-   if (pd->shape->stroke.fill) crc = _renderer_crc_get(pd->shape->stroke.fill, crc);
-   if (pd->shape->stroke.marker) crc = _renderer_crc_get(pd->shape->stroke.marker, crc);
-   if (pd->public_shape->stroke.dash_length)
-     {
-        crc = eina_crc((void*) pd->public_shape->stroke.dash, sizeof (Efl_Gfx_Dash) * pd->public_shape->stroke.dash_length, crc, EINA_FALSE);
-     }
-
-   return crc;
-}
-
-static Efl_Object *
-_ector_renderer_gl_shape_efl_object_constructor(Eo *obj, Ector_Renderer_GL_Shape_Data *pd)
-{
-   obj = efl_constructor(efl_super(obj, ECTOR_RENDERER_GL_SHAPE_CLASS));
-
-   if (!obj) return NULL;
-
-   pd->public_shape = efl_data_xref(obj, EFL_GFX_SHAPE_MIXIN, obj);
-   pd->shape = efl_data_xref(obj, ECTOR_RENDERER_SHAPE_MIXIN, obj);
-   pd->base = efl_data_xref(obj, ECTOR_RENDERER_CLASS, obj);
-
-   return obj;
-}
-
-static void
-_ector_renderer_gl_shape_efl_object_destructor(Eo *obj, Ector_Renderer_GL_Shape_Data *pd)
-{
-   efl_data_xunref(obj, pd->shape, obj);
-   efl_data_xunref(obj, pd->base, obj);
-   efl_data_xunref(obj, pd->public_shape, obj);
-}
-
-#include "ector_renderer_gl_shape.eo.c"
diff --git a/src/lib/ector/gl/ector_renderer_gl_shape.eo b/src/lib/ector/gl/ector_renderer_gl_shape.eo
deleted file mode 100644 (file)
index 0a938e9..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-class @beta Ector.Renderer.GL.Shape extends Ector.Renderer.GL implements Ector.Renderer.Shape, Efl.Gfx.Path
-{
-   [[Ector GL renderer shape class]]
-   c_prefix: ector_renderer_gl_shape;
-   implements {
-      Ector.Renderer.prepare;
-      Ector.Renderer.draw;
-      Ector.Renderer.crc { get; }
-      Ector.Renderer.GL.op_fill;
-      Efl.Gfx.Path.bounds_get;
-      Efl.Gfx.Path.commit;
-      Efl.Object.constructor;
-      Efl.Object.destructor;
-   }
-}
index 4bb792c..bb24858 100644 (file)
@@ -1,23 +1,11 @@
 
 ector_src += files([
-  'ector_renderer_gl_gradient_linear.c',
-  'ector_renderer_gl_gradient_radial.c',
-  'ector_renderer_gl_shape.c',
-  'ector_renderer_gl.c',
   'ector_gl_buffer.c',
-  'ector_gl_surface.c',
   'ector_gl_private.h',
-  #'shader/ector_gl_shaders.x',
-  'ector_gl_shader.c'
 ])
 
 pub_eo_files = [
-  'ector_gl_surface.eo',
   'ector_gl_buffer.eo',
-  'ector_renderer_gl.eo',
-  'ector_renderer_gl_shape.eo',
-  'ector_renderer_gl_gradient_radial.eo',
-  'ector_renderer_gl_gradient_linear.eo'
 ]
 
 foreach eo_file : pub_eo_files
diff --git a/src/lib/ector/gl/shader/.gitignore b/src/lib/ector/gl/shader/.gitignore
deleted file mode 100644 (file)
index 0074827..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.shd
diff --git a/src/lib/ector/gl/shader/ector_gl_shaders.x b/src/lib/ector/gl/shader/ector_gl_shaders.x
deleted file mode 100644 (file)
index 19120e2..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED */
-/* IF IT IS CHANGED PLEASE COMMIT THE CHANGES */
-
-static const char fragment_glsl[] =
-   "/* General-purpose fragment shader for all operations in Evas.\n"
-   " * This file can either be used directly by evas at runtime to\n"
-   " * generate its shaders with the appropriate #defines, or passed\n"
-   " * through cpp first (in which case the precision must be manually added).\n"
-   " */\n"
-   "#ifdef GL_ES\n"
-   "# ifdef GL_FRAGMENT_PRECISION_HIGH\n"
-   "precision highp float;\n"
-   "# else\n"
-   "precision mediump float;\n"
-   "# endif\n"
-   "# ifdef SHD_EXTERNAL\n"
-   "extension GL_OES_EGL_image_external : require\n"
-   "#  define SAMPLER_EXTERNAL_OES samplerExternalOES\n"
-   "# endif\n"
-   "#else\n"
-   "# define SAMPLER_EXTERNAL_OES sampler2D\n"
-   "#endif\n"
-   "#ifndef SHD_NOMUL\n"
-   "varying vec4 col;\n"
-   "#endif\n"
-   "#ifdef SHD_EXTERNAL\n"
-   "uniform SAMPLER_EXTERNAL_OES tex;\n"
-   "varying vec2 tex_c;\n"
-   "#elif defined(SHD_TEX)\n"
-   "uniform sampler2D tex;\n"
-   "varying vec2 tex_c;\n"
-   "#endif\n"
-   "#if defined(SHD_NV12) || defined(SHD_YUY2)\n"
-   "uniform sampler2D texuv;\n"
-   "varying vec2 tex_c2;\n"
-   "#endif\n"
-   "#if defined(SHD_YUV)\n"
-   "uniform sampler2D texu;\n"
-   "uniform sampler2D texv;\n"
-   "varying vec2 tex_c2;\n"
-   "varying vec2 tex_c3;\n"
-   "#endif\n"
-   "#ifdef SHD_TEXA\n"
-   "uniform sampler2D texa;\n"
-   "varying vec2 tex_a;\n"
-   "#endif\n"
-   "#if defined(SHD_SAM12) || defined(SHD_SAM21) || defined(SHD_SAM22)\n"
-   "varying vec4 div_s;\n"
-   "# if defined(SHD_SAM12) || defined(SHD_SAM21)\n"
-   "varying vec2 tex_s[2];\n"
-   "# else\n"
-   "varying vec2 tex_s[4];\n"
-   "# endif\n"
-   "#endif\n"
-   "#ifdef SHD_MASK\n"
-   "uniform sampler2D texm;\n"
-   "varying vec2 tex_m;\n"
-   "# if defined(SHD_MASKSAM12) || defined(SHD_MASKSAM21)\n"
-   "varying float maskdiv_s;\n"
-   "varying vec2 masktex_s[2];\n"
-   "# elif defined(SHD_MASKSAM22)\n"
-   "varying float maskdiv_s;\n"
-   "varying vec2 masktex_s[4];\n"
-   "# endif\n"
-   "#endif\n"
-   "#ifdef SHD_ALPHA\n"
-   "# define SWZ aaaa\n"
-   "#else\n"
-   "# ifndef SHD_BGRA\n"
-   "#  if defined(SHD_IMG) && defined(BIGENDIAN)\n"
-   "#   define SWZ gbar\n"
-   "#  else\n"
-   "#   define SWZ bgra\n"
-   "#endif\n"
-   "# else\n"
-   "#  if defined(SHD_IMG) && defined(BIGENDIAN)\n"
-   "#   define SWZ grab\n"
-   "#  else\n"
-   "#   define SWZ rgba\n"
-   "#  endif\n"
-   "# endif\n"
-   "#endif\n"
-   "void main()\n"
-   "{\n"
-   "   vec4 c;\n"
-   "#if defined(SHD_YUV) || defined(SHD_NV12) || defined(SHD_YUY2)\n"
-   "   float r, g, b, y, u, v, vmu;\n"
-   "# if defined(SHD_YUV)\n"
-   "   y = texture2D(tex, tex_c).r;\n"
-   "   u = texture2D(texu, tex_c2).r;\n"
-   "   v = texture2D(texv, tex_c3).r;\n"
-   "# elif defined(SHD_NV12) || defined(SHD_YUY2)\n"
-   "   y = texture2D(tex, tex_c).g;\n"
-   "   u = texture2D(texuv, tex_c2).g;\n"
-   "   v = texture2D(texuv, tex_c2).a;\n"
-   "# endif\n"
-   "// center u and v around 0 for uv and y (with 128/255 for u + v, 16/255 for y)\n"
-   "   u = u - 0.5;\n"
-   "   v = v - 0.5;\n"
-   "# if defined (SHD_YUV_709)\n"
-   "// 709 yuv colorspace for hd content\n"
-   "   y = (y - 0.062) * 1.164;\n"
-   "   vmu = (v * 0.534) + (u * 0.213);\n"
-   "   v = v * 1.793;\n"
-   "   u = u * 2.115;\n"
-   "# else\n"
-   "// 601 colorspace constants (older yuv content)\n"
-   "   y = (y - 0.062) * 1.164;\n"
-   "   vmu = (v * 0.813) + (u * 0.391);\n"
-   "   v = v * 1.596;\n"
-   "   u = u * 2.018;\n"
-   "# endif\n"
-   "// common yuv\n"
-   "   r = y + v;\n"
-   "   g = y - vmu;\n"
-   "   b = y + u;\n"
-   "   c = vec4(r, g, b, 1.0);\n"
-   "#elif defined(SHD_SAM12) || defined(SHD_SAM21)\n"
-   "   vec4 col00 = texture2D(tex, tex_c + tex_s[0]).SWZ;\n"
-   "   vec4 col01 = texture2D(tex, tex_c + tex_s[1]).SWZ;\n"
-   "   c = (col00 + col01) / div_s;\n"
-   "#elif defined(SHD_SAM22)\n"
-   "   vec4 col00 = texture2D(tex, tex_c + tex_s[0]).SWZ;\n"
-   "   vec4 col01 = texture2D(tex, tex_c + tex_s[1]).SWZ;\n"
-   "   vec4 col10 = texture2D(tex, tex_c + tex_s[2]).SWZ;\n"
-   "   vec4 col11 = texture2D(tex, tex_c + tex_s[3]).SWZ;\n"
-   "   c = (col00 + col01 + col10 + col11) / div_s;\n"
-   "#elif defined(SHD_TEX) || defined(SHD_EXTERNAL)\n"
-   "   c = texture2D(tex, tex_c).SWZ;\n"
-   "#else\n"
-   "   c = vec4(1, 1, 1, 1);\n"
-   "#endif\n"
-   "#ifdef SHD_MASK\n"
-   "   float ma;\n"
-   "# if defined(SHD_MASKSAM12) || defined(SHD_MASKSAM21)\n"
-   "   float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
-   "   float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
-   "   ma = (ma00 + ma01) / maskdiv_s;\n"
-   "# elif defined(SHD_MASKSAM22)\n"
-   "   float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;\n"
-   "   float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;\n"
-   "   float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;\n"
-   "   float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;\n"
-   "   ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;\n"
-   "# else\n"
-   "   ma = texture2D(texm, tex_m).a;\n"
-   "# endif\n"
-   "#endif\n"
-   "   gl_FragColor =\n"
-   "       c\n"
-   "#ifndef SHD_NOMUL\n"
-   "     * col\n"
-   "#endif\n"
-   "#ifdef SHD_MASK\n"
-   "    * ma\n"
-   "#endif\n"
-   "#ifdef SHD_TEXA\n"
-   "     * texture2D(texa, tex_a).r\n"
-   "#endif\n"
-   "   ;\n"
-   "#ifdef SHD_AFILL\n"
-   "   gl_FragColor.a = 1.0;\n"
-   "#endif\n"
-   "}\n";
-
-static const char vertex_glsl[] =
-   "/* General-purpose vertex shader for all operations in Evas.\n"
-   " * This file can either be used directly by evas at runtime to\n"
-   " * generate its shaders with the appropriate #defines, or passed\n"
-   " * through cpp first (in which case the precision must be manually added).\n"
-   " */\n"
-   "#ifdef GL_ES\n"
-   "precision highp float;\n"
-   "#endif\n"
-   "attribute vec4 vertex;\n"
-   "uniform mat4 mvp;\n"
-   "/* All except nomul */\n"
-   "#ifndef SHD_NOMUL\n"
-   "attribute vec4 color;\n"
-   "varying vec4 col;\n"
-   "#endif\n"
-   "/* All images & fonts */\n"
-   "#if defined(SHD_TEX) || defined(SHD_EXTERNAL)\n"
-   "attribute vec2 tex_coord;\n"
-   "varying vec2 tex_c;\n"
-   "#endif\n"
-   "/* NV12, YUY2 */\n"
-   "#if defined(SHD_NV12) || defined(SHD_YUY2) || defined(SHD_YUV)\n"
-   "attribute vec2 tex_coord2;\n"
-   "varying vec2 tex_c2;\n"
-   "#endif\n"
-   "/* YUV */\n"
-   "#ifdef SHD_YUV\n"
-   "attribute vec2 tex_coord3;\n"
-   "varying vec2 tex_c3;\n"
-   "#endif\n"
-   "/* RGB+A */\n"
-   "#ifdef SHD_TEXA\n"
-   "attribute vec2 tex_coorda;\n"
-   "varying vec2 tex_a;\n"
-   "#endif\n"
-   "/* Sampling */\n"
-   "#if defined(SHD_SAM12) || defined(SHD_SAM21) || defined(SHD_SAM22)\n"
-   "attribute vec2 tex_sample;\n"
-   "varying vec4 div_s;\n"
-   "# if defined(SHD_SAM12) || defined(SHD_SAM21)\n"
-   "varying vec2 tex_s[2];\n"
-   "# else\n"
-   "varying vec2 tex_s[4];\n"
-   "# endif\n"
-   "#endif\n"
-   "/* Masking */\n"
-   "#ifdef SHD_MASK\n"
-   "attribute vec4 mask_coord;\n"
-   "varying vec2 tex_m;\n"
-   "# if defined(SHD_MASKSAM12) || defined(SHD_MASKSAM21)\n"
-   "attribute vec2 tex_masksample;\n"
-   "varying float maskdiv_s;\n"
-   "varying vec2 masktex_s[2];\n"
-   "# elif defined(SHD_MASKSAM22)\n"
-   "attribute vec2 tex_masksample;\n"
-   "varying float maskdiv_s;\n"
-   "varying vec2 masktex_s[4];\n"
-   "# endif\n"
-   "#endif\n"
-   "void main()\n"
-   "{\n"
-   "   gl_Position = mvp * vertex;\n"
-   "#ifndef SHD_NOMUL\n"
-   "   col = color;\n"
-   "#endif\n"
-   "#if defined(SHD_TEX) || defined(SHD_EXTERNAL)\n"
-   "   tex_c = tex_coord;\n"
-   "#endif\n"
-   "#ifdef SHD_NV12\n"
-   "   tex_c2 = tex_coord2 * 0.5;\n"
-   "#endif\n"
-   "#ifdef SHD_YUY2\n"
-   "   tex_c2 = vec2(tex_coord2.x * 0.5, tex_coord2.y);\n"
-   "#endif\n"
-   "#ifdef SHD_YUV\n"
-   "   tex_c2 = tex_coord2;\n"
-   "   tex_c3 = tex_coord3;\n"
-   "#endif\n"
-   "#ifdef SHD_TEXA\n"
-   "   tex_a = tex_coorda;\n"
-   "#endif\n"
-   "#if defined(SHD_SAM12)\n"
-   "   tex_s[0] = vec2(0, -tex_sample.y);\n"
-   "   tex_s[1] = vec2(0,  tex_sample.y);\n"
-   "   div_s = vec4(2, 2, 2, 2);\n"
-   "#elif defined(SHD_SAM21)\n"
-   "   tex_s[0] = vec2(-tex_sample.x, 0);\n"
-   "   tex_s[1] = vec2( tex_sample.x, 0);\n"
-   "   div_s = vec4(2, 2, 2, 2);\n"
-   "#elif defined(SHD_SAM22)\n"
-   "   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n"
-   "   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n"
-   "   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);\n"
-   "   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);\n"
-   "   div_s = vec4(4, 4, 4, 4);\n"
-   "#endif\n"
-   "#if defined(SHD_MASKSAM12)\n"
-   "   masktex_s[0] = vec2(0, -tex_masksample.y);\n"
-   "   masktex_s[1] = vec2(0,  tex_masksample.y);\n"
-   "   maskdiv_s = 2.0;\n"
-   "#elif defined(SHD_MASKSAM21)\n"
-   "   masktex_s[0] = vec2(-tex_masksample.x, 0);\n"
-   "   masktex_s[1] = vec2( tex_masksample.x, 0);\n"
-   "   maskdiv_s = 2.0;\n"
-   "#elif defined(SHD_MASKSAM22)\n"
-   "   masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);\n"
-   "   masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);\n"
-   "   masktex_s[2] = vec2( tex_masksample.x,  tex_masksample.y);\n"
-   "   masktex_s[3] = vec2(-tex_masksample.x,  tex_masksample.y);\n"
-   "   maskdiv_s = 4.0;\n"
-   "#endif\n"
-   "#ifdef SHD_MASK\n"
-   "   // mask_coord.w contains the Y-invert flag\n"
-   "   // position on screen in [0..1] range of current pixel\n"
-   "   vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n"
-   "   tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n"
-   "#endif\n"
-   "}\n";
-
diff --git a/src/lib/ector/gl/shader/fragment.glsl b/src/lib/ector/gl/shader/fragment.glsl
deleted file mode 100644 (file)
index 3dce873..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/* General-purpose fragment shader for all operations in Evas.
- * This file can either be used directly by evas at runtime to
- * generate its shaders with the appropriate #defines, or passed
- * through cpp first (in which case the precision must be manually added).
- */
-
-FRAGMENT_SHADER
-
-#ifndef SHD_NOMUL
-varying vec4 col;
-#endif
-
-#ifdef SHD_EXTERNAL
-uniform SAMPLER_EXTERNAL_OES tex;
-varying vec2 tex_c;
-#elif defined(SHD_TEX)
-uniform sampler2D tex;
-varying vec2 tex_c;
-#endif
-
-#if defined(SHD_NV12) || defined(SHD_YUY2)
-uniform sampler2D texuv;
-varying vec2 tex_c2;
-#endif
-
-#if defined(SHD_YUV)
-uniform sampler2D texu;
-uniform sampler2D texv;
-varying vec2 tex_c2;
-varying vec2 tex_c3;
-#endif
-
-#ifdef SHD_TEXA
-uniform sampler2D texa;
-varying vec2 tex_a;
-#endif
-
-#if defined(SHD_SAM12) || defined(SHD_SAM21) || defined(SHD_SAM22)
-varying vec4 div_s;
-# if defined(SHD_SAM12) || defined(SHD_SAM21)
-varying vec2 tex_s[2];
-# else
-varying vec2 tex_s[4];
-# endif
-#endif
-
-#ifdef SHD_MASK
-uniform sampler2D texm;
-varying vec2 tex_m;
-# if defined(SHD_MASKSAM12) || defined(SHD_MASKSAM21)
-varying float maskdiv_s;
-varying vec2 masktex_s[2];
-# elif defined(SHD_MASKSAM22)
-varying float maskdiv_s;
-varying vec2 masktex_s[4];
-# endif
-#endif
-
-#ifdef SHD_ALPHA
-# define SWZ aaaa
-#else
-# ifndef SHD_BGRA
-#  if defined(SHD_IMG) && defined(BIGENDIAN)
-#   define SWZ gbar
-#  else
-#   define SWZ bgra
-#endif
-# else
-#  if defined(SHD_IMG) && defined(BIGENDIAN)
-#   define SWZ grab
-#  else
-#   define SWZ rgba
-#  endif
-# endif
-#endif
-
-void main()
-{
-   vec4 c;
-
-#if defined(SHD_YUV) || defined(SHD_NV12) || defined(SHD_YUY2)
-   float r, g, b, y, u, v, vmu;
-# if defined(SHD_YUV)
-   y = texture2D(tex, tex_c).r;
-   u = texture2D(texu, tex_c2).r;
-   v = texture2D(texv, tex_c3).r;
-# elif defined(SHD_NV12) || defined(SHD_YUY2)
-   y = texture2D(tex, tex_c).g;
-   u = texture2D(texuv, tex_c2).g;
-   v = texture2D(texuv, tex_c2).a;
-# endif
-// center u and v around 0 for uv and y (with 128/255 for u + v, 16/255 for y)
-   u = u - 0.5;
-   v = v - 0.5;
-
-# if defined (SHD_YUV_709)
-// 709 yuv colorspace for hd content
-   y = (y - 0.062) * 1.164;
-   vmu = (v * 0.534) + (u * 0.213);
-   v = v * 1.793;
-   u = u * 2.115;
-# else
-// 601 colorspace constants (older yuv content)
-   y = (y - 0.062) * 1.164;
-   vmu = (v * 0.813) + (u * 0.391);
-   v = v * 1.596;
-   u = u * 2.018;
-# endif
-// common yuv
-   r = y + v;
-   g = y - vmu;
-   b = y + u;
-   c = vec4(r, g, b, 1.0);
-
-#elif defined(SHD_SAM12) || defined(SHD_SAM21)
-   vec4 col00 = texture2D(tex, tex_c + tex_s[0]).SWZ;
-   vec4 col01 = texture2D(tex, tex_c + tex_s[1]).SWZ;
-   c = (col00 + col01) / div_s;
-
-#elif defined(SHD_SAM22)
-   vec4 col00 = texture2D(tex, tex_c + tex_s[0]).SWZ;
-   vec4 col01 = texture2D(tex, tex_c + tex_s[1]).SWZ;
-   vec4 col10 = texture2D(tex, tex_c + tex_s[2]).SWZ;
-   vec4 col11 = texture2D(tex, tex_c + tex_s[3]).SWZ;
-   c = (col00 + col01 + col10 + col11) / div_s;
-
-#elif defined(SHD_TEX) || defined(SHD_EXTERNAL)
-   c = texture2D(tex, tex_c).SWZ;
-
-#else
-   c = vec4(1, 1, 1, 1);
-#endif
-
-#ifdef SHD_MASK
-   float ma;
-# if defined(SHD_MASKSAM12) || defined(SHD_MASKSAM21)
-   float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;
-   float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;
-   ma = (ma00 + ma01) / maskdiv_s;
-# elif defined(SHD_MASKSAM22)
-   float ma00 = texture2D(texm, tex_m + masktex_s[0]).a;
-   float ma01 = texture2D(texm, tex_m + masktex_s[1]).a;
-   float ma10 = texture2D(texm, tex_m + masktex_s[2]).a;
-   float ma11 = texture2D(texm, tex_m + masktex_s[3]).a;
-   ma = (ma00 + ma01 + ma10 + ma11) / maskdiv_s;
-# else
-   ma = texture2D(texm, tex_m).a;
-# endif
-#endif
-
-   gl_FragColor =
-       c
-#ifndef SHD_NOMUL
-     * col
-#endif
-#ifdef SHD_MASK
-        * ma
-#endif
-#ifdef SHD_TEXA
-     * texture2D(texa, tex_a).r
-#endif
-   ;
-
-#ifdef SHD_AFILL
-   gl_FragColor.a = 1.0;
-#endif
-}
-
diff --git a/src/lib/ector/gl/shader/gen_shaders.sh b/src/lib/ector/gl/shader/gen_shaders.sh
deleted file mode 100755 (executable)
index 9656e67..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-
-# This script will generate a C file containing all the shaders used by Evas
-
-DIR=`dirname $0`
-
-OUTPUT="$DIR/ector_gl_shaders.x"
-
-# Skip generation if there is no diff (or no git)
-if ! git rev-parse 2>> /dev/null >> /dev/null ; then exit 0 ; fi
-if git diff --quiet --exit-code -- "$DIR"
-then
-  for f in gen_shaders.sh fragment.glsl vertex.glsl include.glsl; do
-    if [ "$DIR/$f" -nt "$OUTPUT" ]; then
-      touch "$OUTPUT"
-      break
-    fi
-  done
-  exit 0
-fi
-
-# Write header
-rm -f "$OUTPUT.tmp"
-cat <<EOF >> $OUTPUT.tmp
-/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED */
-/* IF IT IS CHANGED PLEASE COMMIT THE CHANGES */
-
-EOF
-
-for SHD in fragment vertex ; do
-  m4 "$DIR/include.glsl" "$DIR/$SHD.glsl" > "$SHD.tmp"
-
-  OIFS="$IFS"
-  IFS=$'\n'
-  echo -n "static const char ${SHD}_glsl[] =" >> "$OUTPUT.tmp"
-  for LINE in `cat "$SHD.tmp"` ; do
-      printf "\n   \"$LINE\\\n\"" >> "$OUTPUT.tmp"
-  done
-  printf ";\n\n" >> "$OUTPUT.tmp"
-  IFS="$OIFS"
-
-  rm "$SHD.tmp"
-done
-
-if ! cmp "$OUTPUT" "$OUTPUT.tmp" >/dev/null 2>/dev/null; then
-    echo "$OUTPUT updated, please 'git commit' it."
-    rm -f "$OUTPUT"
-    mv "$OUTPUT.tmp" "$OUTPUT"
-else
-    rm -f "$OUTPUT.tmp"
-fi
-
diff --git a/src/lib/ector/gl/shader/include.glsl b/src/lib/ector/gl/shader/include.glsl
deleted file mode 100644 (file)
index b8f8ac1..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-define(`FRAGMENT_SHADER',`
-#ifdef GL_ES
-# ifdef GL_FRAGMENT_PRECISION_HIGH
-precision highp float;
-# else
-precision mediump float;
-# endif
-# ifdef SHD_EXTERNAL
-extension GL_OES_EGL_image_external : require
-#  define SAMPLER_EXTERNAL_OES samplerExternalOES
-# endif
-#else
-# define SAMPLER_EXTERNAL_OES sampler2D
-#endif
-')
-
-define(`VERTEX_SHADER',`
-#ifdef GL_ES
-precision highp float;
-#endif
-')
-
diff --git a/src/lib/ector/gl/shader/vertex.glsl b/src/lib/ector/gl/shader/vertex.glsl
deleted file mode 100644 (file)
index d67eb06..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/* General-purpose vertex shader for all operations in Evas.
- * This file can either be used directly by evas at runtime to
- * generate its shaders with the appropriate #defines, or passed
- * through cpp first (in which case the precision must be manually added).
- */
-
-VERTEX_SHADER
-
-attribute vec4 vertex;
-uniform mat4 mvp;
-
-/* All except nomul */
-#ifndef SHD_NOMUL
-attribute vec4 color;
-varying vec4 col;
-#endif
-
-/* All images & fonts */
-#if defined(SHD_TEX) || defined(SHD_EXTERNAL)
-attribute vec2 tex_coord;
-varying vec2 tex_c;
-#endif
-
-/* NV12, YUY2 */
-#if defined(SHD_NV12) || defined(SHD_YUY2) || defined(SHD_YUV)
-attribute vec2 tex_coord2;
-varying vec2 tex_c2;
-#endif
-
-/* YUV */
-#ifdef SHD_YUV
-attribute vec2 tex_coord3;
-varying vec2 tex_c3;
-#endif
-
-/* RGB+A */
-#ifdef SHD_TEXA
-attribute vec2 tex_coorda;
-varying vec2 tex_a;
-#endif
-
-/* Sampling */
-#if defined(SHD_SAM12) || defined(SHD_SAM21) || defined(SHD_SAM22)
-attribute vec2 tex_sample;
-varying vec4 div_s;
-# if defined(SHD_SAM12) || defined(SHD_SAM21)
-varying vec2 tex_s[2];
-# else
-varying vec2 tex_s[4];
-# endif
-#endif
-
-/* Masking */
-#ifdef SHD_MASK
-attribute vec4 mask_coord;
-varying vec2 tex_m;
-# if defined(SHD_MASKSAM12) || defined(SHD_MASKSAM21)
-attribute vec2 tex_masksample;
-varying float maskdiv_s;
-varying vec2 masktex_s[2];
-# elif defined(SHD_MASKSAM22)
-attribute vec2 tex_masksample;
-varying float maskdiv_s;
-varying vec2 masktex_s[4];
-# endif
-#endif
-
-
-void main()
-{
-   gl_Position = mvp * vertex;
-
-#ifndef SHD_NOMUL
-   col = color;
-#endif
-
-#if defined(SHD_TEX) || defined(SHD_EXTERNAL)
-   tex_c = tex_coord;
-#endif
-
-#ifdef SHD_NV12
-   tex_c2 = tex_coord2 * 0.5;
-#endif
-
-#ifdef SHD_YUY2
-   tex_c2 = vec2(tex_coord2.x * 0.5, tex_coord2.y);
-#endif
-
-#ifdef SHD_YUV
-   tex_c2 = tex_coord2;
-   tex_c3 = tex_coord3;
-#endif
-
-#ifdef SHD_TEXA
-   tex_a = tex_coorda;
-#endif
-
-#if defined(SHD_SAM12)
-   tex_s[0] = vec2(0, -tex_sample.y);
-   tex_s[1] = vec2(0,  tex_sample.y);
-   div_s = vec4(2, 2, 2, 2);
-#elif defined(SHD_SAM21)
-   tex_s[0] = vec2(-tex_sample.x, 0);
-   tex_s[1] = vec2( tex_sample.x, 0);
-   div_s = vec4(2, 2, 2, 2);
-#elif defined(SHD_SAM22)
-   tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);
-   tex_s[1] = vec2( tex_sample.x, -tex_sample.y);
-   tex_s[2] = vec2( tex_sample.x,  tex_sample.y);
-   tex_s[3] = vec2(-tex_sample.x,  tex_sample.y);
-   div_s = vec4(4, 4, 4, 4);
-#endif
-
-#if defined(SHD_MASKSAM12)
-   masktex_s[0] = vec2(0, -tex_masksample.y);
-   masktex_s[1] = vec2(0,  tex_masksample.y);
-   maskdiv_s = 2.0;
-#elif defined(SHD_MASKSAM21)
-   masktex_s[0] = vec2(-tex_masksample.x, 0);
-   masktex_s[1] = vec2( tex_masksample.x, 0);
-   maskdiv_s = 2.0;
-#elif defined(SHD_MASKSAM22)
-   masktex_s[0] = vec2(-tex_masksample.x, -tex_masksample.y);
-   masktex_s[1] = vec2( tex_masksample.x, -tex_masksample.y);
-   masktex_s[2] = vec2( tex_masksample.x,  tex_masksample.y);
-   masktex_s[3] = vec2(-tex_masksample.x,  tex_masksample.y);
-   maskdiv_s = 4.0;
-#endif
-
-#ifdef SHD_MASK
-   // mask_coord.w contains the Y-invert flag
-   // position on screen in [0..1] range of current pixel
-   vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);
-   tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;
-#endif
-}
-
index 0d044b5..fd1b675 100644 (file)
@@ -12,25 +12,11 @@ ector_header_src = [
 
 ector_src = files([
   'ector_main.c',
-  'ector_gl_internal.h',
   'ector_buffer.c',
-  'ector_renderer_shape.c',
-  'ector_renderer_image.c',
-  'ector_renderer.c',
-  'ector_renderer_gradient.c',
-  'ector_renderer_gradient_radial.c',
-  'ector_renderer_gradient_linear.c'
 ])
 
 pub_eo_files = [
-  'ector_surface.eo',
   'ector_buffer.eo',
-  'ector_renderer.eo',
-  'ector_renderer_shape.eo',
-  'ector_renderer_image.eo',
-  'ector_renderer_gradient.eo',
-  'ector_renderer_gradient_radial.eo',
-  'ector_renderer_gradient_linear.eo'
 ]
 
 ector_pub_eo_files = pub_eo_files
index a769cc8..07b8e17 100644 (file)
@@ -2,159 +2,6 @@
 # define ECTOR_SOFTWARE_PRIVATE_H_
 
 #include "Ector_Software.h"
-#include "sw_ft_raster.h"
-#include "sw_ft_stroker.h"
 #include "../ector_private.h"
-#include "draw.h"
-
-typedef struct _Ector_Software_Surface_Data Ector_Software_Surface_Data;
-typedef struct _Ector_Software_Thread Ector_Software_Thread;
-
-struct _Ector_Software_Thread
-{
-   Eina_Thread_Queue *queue;
-   Eina_Thread thread;
-
-   SW_FT_Raster  raster;
-   SW_FT_Stroker stroker;
-};
-
-// Gradient related structure
-typedef struct _Software_Gradient_Linear_Data
-{
-   float x1, y1, x2, y2;
-   float dx, dy, l, off;
-} Software_Gradient_Linear_Data;
-
-typedef struct _Software_Gradient_Radial_Data
-{
-   float cx, cy, fx, fy, cradius, fradius;
-   float dx, dy, dr, sqrfr, a, inv2a;
-   Eina_Bool extended;
-} Software_Gradient_Radial_Data;
-
-typedef struct _Ector_Renderer_Software_Gradient_Data
-{
-   Ector_Software_Surface_Data *surface;
-   Ector_Renderer_Gradient_Data *gd;
-   union {
-      Ector_Renderer_Gradient_Linear_Data *gld;
-      Ector_Renderer_Gradient_Radial_Data *grd;
-   };
-   union {
-      Software_Gradient_Linear_Data linear;
-      Software_Gradient_Radial_Data radial;
-   };
-   uint32_t* color_table;
-
-   Eina_Bool alpha;
-   int ctable_status;       //Ready for color table?
-} Ector_Renderer_Software_Gradient_Data;
-
-typedef struct _Shape_Rle_Data
-{
-   Eina_Rectangle   bbox;
-   //ALLOC == SIZE?
-   unsigned short   alloc;
-   unsigned short   size;
-   SW_FT_Span      *spans;// array of Scanlines.
-} Shape_Rle_Data;
-
-typedef struct _Clip_Data
-{
-   Eina_Array           *clips; //Eina_Rectangle
-   Shape_Rle_Data       *path;
-   unsigned int          enabled : 1;
-   unsigned int          type : 1;   //0: rect, 1: path
-} Clip_Data;
-
-typedef enum _Span_Data_Type {
-  None,
-  Solid,
-  LinearGradient,
-  RadialGradient,
-} Span_Data_Type;
-
-typedef struct _Span_Data
-{
-   Ector_Software_Buffer_Base_Data *raster_buffer;
-   SW_FT_SpanFunc   blend;
-   SW_FT_SpanFunc   unclipped_blend;
-
-   int              offx, offy;
-   Clip_Data        clip;
-   Ector_Software_Buffer_Base_Data    *comp;
-   Efl_Gfx_Vg_Composite_Method comp_method;
-   Eina_Matrix3     inv;
-   Span_Data_Type   type;
-   Eina_Bool        fast_matrix;
-   uint32_t         mul_col;
-   Efl_Gfx_Render_Op        op;
-   union {
-      uint32_t color;
-      Ector_Renderer_Software_Gradient_Data *gradient;
-      Ector_Software_Buffer_Base_Data *buffer;
-   };
-} Span_Data;
-
-typedef struct _Software_Rasterizer
-{
-   Span_Data        fill_data;
-   //Necessary?:
-   Eina_Matrix3    *transform;
-   Eina_Rectangle   system_clip;
-} Software_Rasterizer;
-
-struct _Ector_Software_Surface_Data
-{
-   Software_Rasterizer *rasterizer;
-   int x;
-   int y;
-};
-
-
-int  ector_software_gradient_init(void);
-void ector_software_rasterizer_init(Software_Rasterizer *rasterizer);
-
-void ector_software_rasterizer_stroke_set(Ector_Software_Thread *thread, Software_Rasterizer *rasterizer,
-                                          double width,
-                                          Efl_Gfx_Cap cap_style, Efl_Gfx_Join join_style, Eina_Matrix3 *m, double miterlimit);
-
-void ector_software_rasterizer_transform_set(Software_Rasterizer *rasterizer, Eina_Matrix3 *t);
-void ector_software_rasterizer_color_set(Software_Rasterizer *rasterizer, int r, int g, int b, int a);
-void ector_software_rasterizer_linear_gradient_set(Software_Rasterizer *rasterizer, Ector_Renderer_Software_Gradient_Data *linear);
-void ector_software_rasterizer_radial_gradient_set(Software_Rasterizer *rasterizer, Ector_Renderer_Software_Gradient_Data *radial);
-void ector_software_rasterizer_clip_rect_set(Software_Rasterizer *rasterizer, Eina_Array *clips);
-void ector_software_rasterizer_clip_shape_set(Software_Rasterizer *rasterizer, Shape_Rle_Data *clip);
-
-
-
-Shape_Rle_Data * ector_software_rasterizer_generate_rle_data(Ector_Software_Thread *thread, Software_Rasterizer *rasterizer, SW_FT_Outline *outline);
-Shape_Rle_Data * ector_software_rasterizer_generate_stroke_rle_data(Ector_Software_Thread *thread, Software_Rasterizer *rasterizer, SW_FT_Outline *outline, Eina_Bool closePath);
-
-void ector_software_rasterizer_draw_rle_data(Software_Rasterizer *rasterizer,
-                                             int x, int y, uint32_t mul_col,
-                                             Efl_Gfx_Render_Op op,
-                                             Shape_Rle_Data* rle,
-                                             Ector_Buffer *comp,
-                                             Efl_Gfx_Vg_Composite_Method comp_method);
-
-void ector_software_rasterizer_destroy_rle_data(Shape_Rle_Data *rle);
-
-
-// Gradient Api
-void destroy_color_table(Ector_Renderer_Software_Gradient_Data *gdata);
-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);
-
-typedef void (*Ector_Thread_Worker_Cb)(void *data, Ector_Software_Thread *thread);
-
-void ector_software_wait(Ector_Thread_Worker_Cb cb, Eina_Free_Cb done, void *data);
-void ector_software_schedule(Ector_Thread_Worker_Cb cb, Eina_Free_Cb done, void *data);
-
-void ector_software_gradient_color_update(Ector_Renderer_Software_Gradient_Data *gdata);
 
 #endif
index df8dfbc..a16afe7 100644 (file)
@@ -23,7 +23,7 @@ _invalidate_cb(void *data EINA_UNUSED, const Efl_Event *event)
 }
 
 static void
-_efl_canvas_vg_container_render_pre_tvg(Evas_Object_Protected_Data *obj,
+_efl_canvas_vg_container_render_pre(Evas_Object_Protected_Data *obj,
                                     EINA_UNUSED Efl_VG *node,
                                     Efl_Canvas_Vg_Node_Data *nd,
                                     Eina_Matrix3 *pTransform,
@@ -47,8 +47,8 @@ _efl_canvas_vg_container_render_pre_tvg(Evas_Object_Protected_Data *obj,
    EINA_LIST_FOREACH(cd->children, l, child)
      {
         Efl_Canvas_Vg_Node_Data *cnd = efl_data_scope_get(child, EFL_CANVAS_VG_NODE_CLASS);
-        if (cnd && cnd->render_pre_tvg)
-          cnd->render_pre_tvg(obj, child, cnd, cTransform, canvas, cd->scene);
+        if (cnd && cnd->render_pre)
+          cnd->render_pre(obj, child, cnd, cTransform, canvas, cd->scene);
      }
 
    //We don't want to push composition sources
@@ -63,72 +63,6 @@ _efl_canvas_vg_container_render_pre_tvg(Evas_Object_Protected_Data *obj,
    else if (canvas) tvg_canvas_push(canvas, cd->scene);
 }
 
-static void
-_efl_canvas_vg_container_render_pre(Evas_Object_Protected_Data *vg_pd,
-                                    Efl_VG *obj EINA_UNUSED,
-                                    Efl_Canvas_Vg_Node_Data *nd,
-                                    void *engine, void *output, void *context,
-                                    Ector_Surface *surface,
-                                    Eina_Matrix3 *ptransform,
-                                    int p_opacity,
-                                    Ector_Buffer *comp,
-                                    Efl_Gfx_Vg_Composite_Method comp_method,
-                                    void *data)
-{
-   Efl_Canvas_Vg_Container_Data *pd = data;
-   Eina_List *l;
-   Efl_VG *child;
-   Efl_Gfx_Change_Flag flag;
-
-   if (nd->flags == EFL_GFX_CHANGE_FLAG_NONE) return;
-
-   flag = nd->flags;
-   nd->flags = EFL_GFX_CHANGE_FLAG_NONE;
-
-   EFL_CANVAS_VG_COMPUTE_MATRIX(ctransform, ptransform, nd);
-   EFL_CANVAS_VG_COMPUTE_ALPHA(c_r, c_g, c_b, c_a, p_opacity, nd);
-
-   //If the container has transparency, it internally alpha blends with ector buffer.
-   //So ector buffer must be created synchronously.
-   if (c_a < 255 && vg_pd && vg_pd->object)
-     {
-        Efl_Canvas_Vg_Object_Data *od = efl_data_scope_get(vg_pd->object, EFL_CANVAS_VG_OBJECT_CLASS);
-        od->sync_render = EINA_TRUE;
-     }
-
-   EINA_LIST_FOREACH(pd->children, l, child)
-     {
-        //Don't need to update composite nodes.
-        if (efl_isa(child, MY_CLASS))
-          {
-             Efl_Canvas_Vg_Container_Data *child_cd =
-                efl_data_scope_get(child, MY_CLASS);
-             if (child_cd->comp.src) continue;
-          }
-
-        //Skip Gradients. they will be updated by Shape.
-        if (efl_isa(child, EFL_CANVAS_VG_GRADIENT_CLASS))
-          continue;
-
-        Efl_Canvas_Vg_Node_Data *child_nd =
-           efl_data_scope_get(child, EFL_CANVAS_VG_NODE_CLASS);
-
-        if (flag & EFL_GFX_CHANGE_FLAG_MATRIX)
-          child_nd->flags |= EFL_GFX_CHANGE_FLAG_MATRIX;
-
-        // Note: If Vg.Container has transparency, this is calculated by _evas_vg_render in Efl.Canvas.Vg.Object.
-        //       Therefore, there is no need to propagate the transparency of the container to the child.
-        //       However, if there is a composition target, the child must refer to the parent's opacity.
-        //       Because _evas_vg_render does not support opacity calculation for containers that need to be composited.
-        //       These things need to be refactored in a better way later.
-        c_a = !comp ? 255 : c_a;
-
-        _evas_vg_render_pre(vg_pd, child,
-                            engine, output, context, surface,
-                            ctransform, c_a, comp, comp_method);
-     }
-}
-
 static Eo *
 _efl_canvas_vg_container_efl_object_constructor(Eo *obj,
                                                 Efl_Canvas_Vg_Container_Data *pd)
@@ -148,7 +82,7 @@ _efl_canvas_vg_container_efl_object_constructor(Eo *obj,
    efl_gfx_color_set(obj, 255, 255, 255, 255);
 
    pd->scene = tvg_scene_new();
-   nd->render_pre_tvg = _efl_canvas_vg_container_render_pre_tvg;
+   nd->render_pre = _efl_canvas_vg_container_render_pre;
 
    return obj;
 }
index ecef501..6ba8f47 100644 (file)
@@ -49,7 +49,7 @@ _efl_canvas_vg_gradient_linear_efl_gfx_gradient_linear_end_get(const Eo *obj,
 }
 
 static void
-_gradient_linear_render_pre_tvg(Efl_Canvas_Vg_Gradient_Data *gd,
+_gradient_linear_render_pre(Efl_Canvas_Vg_Gradient_Data *gd,
                                 Tvg_Paint *shape,
                                 Evas_Vg_Gradient_Owner_Type owner)
 {
@@ -78,7 +78,7 @@ _efl_canvas_vg_gradient_linear_efl_object_constructor(Eo *obj,
    nd = efl_data_scope_get(obj, EFL_CANVAS_VG_NODE_CLASS);
    if (!nd) return NULL;
 
-   gd->gradient_render_pre_tvg = _gradient_linear_render_pre_tvg;
+   gd->gradient_render_pre = _gradient_linear_render_pre;
    gd->spread = EFL_GFX_GRADIENT_SPREAD_PAD;
    gd->gradient = tvg_linear_gradient_new();
    nd->data = pd;
index 7ed737e..ab342d7 100644 (file)
@@ -66,7 +66,7 @@ _efl_canvas_vg_gradient_radial_efl_gfx_gradient_radial_focal_get(const Eo *obj E
 }
 
 static void
-_gradient_radial_render_pre_tvg(Efl_Canvas_Vg_Gradient_Data *gd,
+_gradient_radial_render_pre(Efl_Canvas_Vg_Gradient_Data *gd,
                                 Tvg_Paint *shape,
                                 Evas_Vg_Gradient_Owner_Type owner)
 {
@@ -93,7 +93,7 @@ _efl_canvas_vg_gradient_radial_efl_object_constructor(Eo *obj, Efl_Canvas_Vg_Gra
    gd = efl_data_scope_get(obj, EFL_CANVAS_VG_GRADIENT_CLASS);
    if (!gd) return NULL;
 
-   gd->gradient_render_pre_tvg = _gradient_radial_render_pre_tvg;
+   gd->gradient_render_pre = _gradient_radial_render_pre;
    gd->spread = EFL_GFX_GRADIENT_SPREAD_PAD;
    gd->gradient = tvg_radial_gradient_new();
    nd->data = pd;
index e6c235a..0cb81cc 100644 (file)
@@ -8,75 +8,14 @@
 typedef struct _Efl_Canvas_Vg_Image_Data Efl_Canvas_Vg_Image_Data;
 struct _Efl_Canvas_Vg_Image_Data
 {
-#ifndef HAVE_THORVG
-   Ector_Buffer *buffer;
-#else
    Tvg_Paint *picture;
-#endif
    void *image;
    int w;
    int h;
 };
 
-#ifndef HAVE_THORVG
 static void
-_efl_canvas_vg_image_render_pre(Evas_Object_Protected_Data *vg_pd,
-                                Efl_VG *obj EINA_UNUSED,
-                                Efl_Canvas_Vg_Node_Data *nd,
-                                void *engine EINA_UNUSED, void *output EINA_UNUSED, void *context EINA_UNUSED,
-                                Ector_Surface *surface,
-                                Eina_Matrix3 *ptransform,
-                                int p_opacity,
-                                Ector_Buffer *comp,
-                                Efl_Gfx_Vg_Composite_Method comp_method,
-                                void *data)
-{
-   Efl_Canvas_Vg_Image_Data *pd = data;
-   int a;
-
-   if (nd->flags == EFL_GFX_CHANGE_FLAG_NONE) return;
-
-   efl_gfx_color_get(obj, NULL, NULL, NULL, &a);
-   if (a <= 0) return;
-
-   nd->flags = EFL_GFX_CHANGE_FLAG_NONE;
-
-   EFL_CANVAS_VG_COMPUTE_MATRIX(ctransform, ptransform, nd);
-   EFL_CANVAS_VG_COMPUTE_ALPHA(c_r, c_g, c_b, c_a, p_opacity, nd);
-
-   if (!nd->renderer)
-     {
-        efl_domain_current_push(EFL_ID_DOMAIN_SHARED);
-        nd->renderer = ector_surface_renderer_factory_new(surface, ECTOR_RENDERER_IMAGE_MIXIN);
-        efl_domain_current_pop();
-     }
-
-   if (!pd->buffer && pd->image)
-     {
-        Evas_Object_Protected_Data *obj = vg_pd;
-        pd->buffer = ENFN->ector_buffer_new(ENC, obj->layer->evas->evas,
-                                            pd->w, pd->h,
-                                            EFL_GFX_COLORSPACE_ARGB8888,
-                                            ECTOR_BUFFER_FLAG_DRAWABLE |
-                                            ECTOR_BUFFER_FLAG_CPU_READABLE |
-                                            ECTOR_BUFFER_FLAG_CPU_WRITABLE);
-        ector_buffer_pixels_set(pd->buffer, pd->image,
-                                pd->w, pd->h, 0,
-                                EFL_GFX_COLORSPACE_ARGB8888, EINA_TRUE);
-     }
-   ector_renderer_image_buffer_set(nd->renderer, pd->buffer);
-   ector_renderer_transformation_set(nd->renderer, ctransform);
-   ector_renderer_origin_set(nd->renderer, nd->x, nd->y);
-   ector_renderer_color_set(nd->renderer, c_r, c_g, c_b, c_a);
-   ector_renderer_visibility_set(nd->renderer, nd->visibility);
-   ector_renderer_comp_method_set(nd->renderer, comp, comp_method);
-   ector_renderer_prepare(nd->renderer);
-}
-#endif
-
-#ifdef HAVE_THORVG
-static void
-_efl_canvas_vg_image_render_pre_tvg(EINA_UNUSED Evas_Object_Protected_Data *vg_pd,
+_efl_canvas_vg_image_render_pre(EINA_UNUSED Evas_Object_Protected_Data *vg_pd,
                                     Efl_VG *obj,
                                     Efl_Canvas_Vg_Node_Data *nd,
                                     Eina_Matrix3 *pTransform,
@@ -124,7 +63,6 @@ _efl_canvas_vg_image_render_pre_tvg(EINA_UNUSED Evas_Object_Protected_Data *vg_p
    if (scene) tvg_scene_push(scene, pd->picture);
    else if (canvas) tvg_canvas_push(canvas, pd->picture);
 }
-#endif
 
 static Eo *
 _efl_canvas_vg_image_efl_object_constructor(Eo *obj, Efl_Canvas_Vg_Image_Data *pd)
@@ -135,11 +73,7 @@ _efl_canvas_vg_image_efl_object_constructor(Eo *obj, Efl_Canvas_Vg_Image_Data *p
    nd = efl_data_scope_get(obj, EFL_CANVAS_VG_NODE_CLASS);
    nd->data = pd;
 
-#ifndef HAVE_THORVG
    nd->render_pre = _efl_canvas_vg_image_render_pre;
-#else
-   nd->render_pre_tvg = _efl_canvas_vg_image_render_pre_tvg;
-#endif
 
    efl_gfx_color_set(obj , 255, 255, 255, 255);
 
@@ -150,14 +84,6 @@ static void
 _efl_canvas_vg_image_efl_object_destructor(Eo *obj, Efl_Canvas_Vg_Image_Data *pd EINA_UNUSED)
 {
    efl_destructor(efl_super(obj, MY_CLASS));
-
-#ifndef HAVE_THORVG
-   if (pd->buffer)
-     {
-        efl_unref(pd->buffer);
-        pd->buffer = NULL;
-     }
-#endif
 }
 
 static void
@@ -166,14 +92,6 @@ _efl_canvas_vg_image_data_set(Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Image_Data *pd,
    if (!data || size.w <= 0 || size.h <= 0)
      return;
 
-#ifndef HAVE_THORVG
-   if ((pd->image != data || pd->w != size.w || pd->h != size.h) && pd->buffer)
-     {
-        efl_unref(pd->buffer);
-        pd->buffer= NULL;
-     }
-#endif
-
    pd->image = data;
    pd->w = size.w;
    pd->h = size.h;
index 95b3166..1340ca8 100644 (file)
@@ -422,7 +422,7 @@ _render_to_tvg_buffer(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data
    if (!efl_isa(root, EFL_CANVAS_VG_GRADIENT_CLASS))
      {
         Efl_Canvas_Vg_Node_Data *nd = efl_data_scope_get(root, EFL_CANVAS_VG_NODE_CLASS);
-        if (nd) nd->render_pre_tvg(obj, root, nd, NULL, pd->tvg_canvas, NULL);
+        if (nd) nd->render_pre(obj, root, nd, NULL, pd->tvg_canvas, NULL);
      }
 
    tvg_canvas_update(pd->tvg_canvas);
index ab6366b..ea70846 100644 (file)
@@ -603,7 +603,7 @@ _efl_canvas_vg_shape_fill_set(Eo *obj EINA_UNUSED,
    efl_unref(tmp);
 
    Efl_Canvas_Vg_Gradient_Data *gd = efl_data_scope_get(pd->fill, EFL_CANVAS_VG_GRADIENT_CLASS);
-   if (gd) gd->gradient_render_pre_tvg(gd, pd->shape, EVAS_VG_GRADIENT_OWNER_TYPE_SHAPE);
+   if (gd) gd->gradient_render_pre(gd, pd->shape, EVAS_VG_GRADIENT_OWNER_TYPE_SHAPE);
 }
 
 static Efl_Canvas_Vg_Node *
@@ -630,7 +630,7 @@ _efl_canvas_vg_shape_stroke_fill_set(Eo *obj EINA_UNUSED,
    efl_unref(tmp);
 
    Efl_Canvas_Vg_Gradient_Data *gd = efl_data_scope_get(pd->stroke.fill, EFL_CANVAS_VG_GRADIENT_CLASS);
-   if (gd) gd->gradient_render_pre_tvg(gd, pd->shape, EVAS_VG_GRADIENT_OWNER_TYPE_STROKE);
+   if (gd) gd->gradient_render_pre(gd, pd->shape, EVAS_VG_GRADIENT_OWNER_TYPE_STROKE);
 }
 
 static Efl_Canvas_Vg_Node *
@@ -659,7 +659,7 @@ _efl_canvas_vg_shape_stroke_marker_get(const Eo *obj EINA_UNUSED,
 }
 
 static void
-_efl_canvas_vg_shape_render_pre_tvg(EINA_UNUSED Evas_Object_Protected_Data *vg_pd,
+_efl_canvas_vg_shape_render_pre(EINA_UNUSED Evas_Object_Protected_Data *vg_pd,
                                     Efl_VG *obj,
                                     Efl_Canvas_Vg_Node_Data *nd,
                                     Eina_Matrix3 *pTransform,
@@ -697,7 +697,7 @@ _efl_canvas_vg_shape_render_pre_tvg(EINA_UNUSED Evas_Object_Protected_Data *vg_p
         if (gd)
            {
               gd->shape = obj;
-              gd->gradient_render_pre_tvg(gd, sd->shape, EVAS_VG_GRADIENT_OWNER_TYPE_SHAPE);
+              gd->gradient_render_pre(gd, sd->shape, EVAS_VG_GRADIENT_OWNER_TYPE_SHAPE);
            }
      }
 
@@ -728,7 +728,7 @@ _efl_canvas_vg_shape_efl_object_constructor(Eo *obj, Efl_Canvas_Vg_Shape_Data *p
    obj = efl_constructor(efl_super(obj, MY_CLASS));
    nd = efl_data_scope_get(obj, EFL_CANVAS_VG_NODE_CLASS);
 
-   nd->render_pre_tvg = _efl_canvas_vg_shape_render_pre_tvg;
+   nd->render_pre = _efl_canvas_vg_shape_render_pre;
    pd->shape = tvg_shape_new();
    pd->scale = 1.0;
    pd->width = 0;
index ae113c0..9c75464 100644 (file)
@@ -623,9 +623,6 @@ _evas_canvas_efl_object_destructor(Eo *eo_e, Evas_Public_Data *e)
         free(pseat);
      }
 
-   /* Ector surface may require an existing output to finish its job */
-   if (e->engine.func)
-     e->engine.func->ector_destroy(_evas_engine_context(e), e->ector);
    /* cleanup engine backend */
    EINA_LIST_FREE(e->outputs, evo) efl_canvas_output_del(evo);
    if (e->engine.func)
@@ -1059,14 +1056,6 @@ _evas_canvas_efl_loop_consumer_loop_get(const Eo *eo_e EINA_UNUSED, Evas_Public_
    return efl_main_loop_get();
 }
 
-Ector_Surface *
-evas_ector_get(Evas_Public_Data *e)
-{
-   if (!e->ector)
-     e->ector = e->engine.func->ector_create(_evas_engine_context(e));
-   return e->ector;
-}
-
 EAPI Evas_BiDi_Direction
 evas_language_direction_get(void)
 {
index ba475ad..fba4f61 100644 (file)
@@ -75,12 +75,7 @@ struct _Efl_Canvas_Vg_Node_Data
    Efl_VG *vg_obj;
    Efl_Canvas_Vg_Object_Data *vd;
 
-   void (*render_pre_tvg)(Evas_Object_Protected_Data *vg_pd, Efl_VG *node, Efl_Canvas_Vg_Node_Data *nd, Eina_Matrix3 *ptransform, void *canvas, void *scene);
-
-   void (*render_pre)(Evas_Object_Protected_Data *vg_pd, Efl_VG *node,
-         Efl_Canvas_Vg_Node_Data *nd,
-         void *engine, void *output, void *contenxt, Ector_Surface *surface,
-         Eina_Matrix3 *ptransform, int opacity, Ector_Buffer *comp, Efl_Gfx_Vg_Composite_Method comp_method, void *data);
+   void (*render_pre)(Evas_Object_Protected_Data *vg_pd, Efl_VG *node, Efl_Canvas_Vg_Node_Data *nd, Eina_Matrix3 *ptransform, void *canvas, void *scene);
 
    void *data;
 
@@ -134,7 +129,7 @@ struct _Efl_Canvas_Vg_Gradient_Data
 
    Tvg_Gradient *gradient;
    Evas_Vg_Shape *shape;
-   void (*gradient_render_pre_tvg)(Efl_Canvas_Vg_Gradient_Data *gd, Tvg_Paint *shape, Evas_Vg_Gradient_Owner_Type owner);
+   void (*gradient_render_pre)(Efl_Canvas_Vg_Gradient_Data *gd, Tvg_Paint *shape, Evas_Vg_Gradient_Owner_Type owner);
 };
 
 struct _Efl_Canvas_Vg_Interpolation
@@ -244,21 +239,6 @@ efl_canvas_vg_object_change(Efl_Canvas_Vg_Object_Data *vd)
    evas_object_change(vd->obj->object, vd->obj);
 }
 
-static inline Efl_Canvas_Vg_Node_Data *
-_evas_vg_render_pre(Evas_Object_Protected_Data *vg_pd, Efl_VG *child,
-                    void *engine, void *output, void *context,
-                    Ector_Surface *surface,
-                    Eina_Matrix3 *transform,
-                    int opacity,
-                    Ector_Buffer *comp, Efl_Gfx_Vg_Composite_Method comp_method)
-{
-   if (!child) return NULL;
-   Efl_Canvas_Vg_Node_Data *nd = efl_data_scope_get(child, EFL_CANVAS_VG_NODE_CLASS);
-   if (nd) nd->render_pre(vg_pd, child, nd,
-                          engine, output, context, surface,
-                          transform, opacity, comp, comp_method, nd->data);
-   return nd;
-}
 
 #define EFL_CANVAS_VG_COMPUTE_MATRIX(Current, Parent, Nd)                      \
   Eina_Matrix3 *Current = Nd->m;                                        \
index 744de1b..5df409a 100755 (executable)
@@ -506,7 +506,6 @@ struct _Evas_Public_Data
    Eina_Array    *cur_device;
 
    void          *backend;
-   Ector_Surface *ector;
    Eina_List     *outputs;
 
    Evas_Device   *default_seat;
@@ -1096,19 +1095,8 @@ struct _Evas_Func
 
    void (*context_flush)                 (void *engine);
 
-   Ector_Surface *(*ector_create)        (void *engine);
-   void  (*ector_destroy)                (void *engine, Ector_Surface *surface);
    Ector_Buffer *(*ector_buffer_wrap)    (void *engine, Evas *e, void *engine_image);
    Ector_Buffer *(*ector_buffer_new)     (void *engine, Evas *e, int width, int height, Efl_Gfx_Colorspace cspace, Ector_Buffer_Flag flags);
-   Eina_Bool  (*ector_begin)             (void *engine, void *output, void *context, Ector_Surface *ector, int x, int y, Eina_Bool do_async);
-   void  (*ector_renderer_draw)          (void *engine, void *output, void *context, Ector_Renderer *r, Eina_Array *clips, Eina_Bool do_async);
-   void  (*ector_end)                    (void *engine, void *output, void *context, Ector_Surface *ector, Eina_Bool do_async);
-
-   void *(*ector_surface_create)         (void *engine, int w, int h, int *error);
-   void  (*ector_surface_destroy)        (void *engine, void *surface);
-   void  (*ector_surface_cache_set)      (void *engine, void *key, void *surface);
-   void *(*ector_surface_cache_get)      (void *engine, void *key);
-   void  (*ector_surface_cache_drop)     (void *engine, void *key);
 
    Evas_Filter_Support (*gfx_filter_supports) (void *engine, Evas_Filter_Command *cmd);
    Eina_Bool (*gfx_filter_process)       (void *engine, Evas_Filter_Command *cmd);
@@ -1344,9 +1332,6 @@ void _efl_gfx_mapping_init(void);
 void _efl_gfx_mapping_shutdown(void);
 void _efl_gfx_mapping_update(Eo *eo_obj);
 
-/* Ector */
-Ector_Surface *evas_ector_get(Evas_Public_Data *evas);
-
 /* Filter functions */
 Eina_Bool evas_filter_object_render(Eo *eo_obj, Evas_Object_Protected_Data *obj, void *engine, void *output, void *context, void *surface, int x, int y, Eina_Bool do_async, Eina_Bool alpha);
 
index 28c1b54..aab3cdc 100755 (executable)
@@ -2734,29 +2734,6 @@ eng_context_dup(void *engine EINA_UNUSED, void *context)
 
 static Eina_Bool use_gl = EINA_FALSE;
 
-static Ector_Surface *
-eng_ector_create(void *engine EINA_UNUSED)
-{
-   Ector_Surface *ector;
-   const char *ector_backend;
-   ector_backend = getenv("ECTOR_BACKEND");
-   efl_domain_current_push(EFL_ID_DOMAIN_SHARED);
-   if (ector_backend && !strcasecmp(ector_backend, "gl"))
-     {
-        ector = efl_add_ref(ECTOR_GL_SURFACE_CLASS, NULL);
-        use_gl = EINA_TRUE;
-     }
-
-   efl_domain_current_pop();
-   return ector;
-}
-
-static void
-eng_ector_destroy(void *engine EINA_UNUSED, Ector_Surface *ector)
-{
-   if (ector) efl_unref(ector);
-}
-
 static Ector_Buffer *
 eng_ector_buffer_wrap(void *engine EINA_UNUSED, Evas *evas, void *engine_image)
 {
@@ -2827,150 +2804,6 @@ eng_ector_buffer_new(void *engine, Evas *evas, int w, int h,
      }
 }
 
-static void
-eng_ector_renderer_draw(void *engine EINA_UNUSED, void *surface,
-                        void *context EINA_UNUSED, Ector_Renderer *renderer,
-                        Eina_Array *clips EINA_UNUSED, Eina_Bool do_async EINA_UNUSED)
-{
-   if (use_gl)
-     {
-        //FIXME no implementation yet
-     }
-   else
-     {
-        int w, h;
-        Eina_Rectangle *r;
-        Eina_Array *c = eina_array_new(4);
-        Evas_GL_Image *glimg = surface;
-
-        eng_image_size_get(engine, glimg, &w, &h);
-        eina_array_push(c, eina_rectangle_new(0, 0, w, h));
-
-        ector_renderer_draw(renderer, EFL_GFX_RENDER_OP_BLEND, c, 0xffffffff);
-
-        while ((r = eina_array_pop(c)))
-          eina_rectangle_free(r);
-        eina_array_free(c);
-
-     }
-}
-
-// Ector functions start
-static void*
-eng_ector_surface_create(void *engine, int width, int height, int *error)
-{
-   void *surface;
-
-   *error = EINA_FALSE;
-
-   if (use_gl)
-     {
-        surface = evas_gl_common_image_surface_new(gl_generic_context_get(engine, EINA_TRUE),
-                                                   width, height, EINA_TRUE, EINA_FALSE);
-        if (!surface) *error = EINA_TRUE;
-     }
-   else
-     {
-        surface = eng_image_new_from_copied_data(engine, width, height, NULL, EINA_TRUE, EVAS_COLORSPACE_ARGB8888);
-        if (!surface)
-           *error = EINA_TRUE;
-        else  //Use this hint for ZERO COPY texture upload.
-          eng_image_content_hint_set(engine, surface, EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
-     }
-
-   return surface;
-}
-
-static void
-eng_ector_surface_destroy(void *engine, void *surface)
-{
-   if (!surface) return;
-   eng_image_free(engine, surface);
-}
-
-static void
-eng_ector_surface_cache_set(void *engine, void *key , void *surface)
-{
-   Render_Engine_GL_Generic *e = engine;
-
-   generic_cache_data_set(e->software.surface_cache, key, surface);
-
-}
-
-static void *
-eng_ector_surface_cache_get(void *engine, void *key)
-{
-   Render_Engine_GL_Generic *e = engine;
-
-   return generic_cache_data_get(e->software.surface_cache, key);
-}
-
-static void
-eng_ector_surface_cache_drop(void *engine, void *key)
-{
-   Render_Engine_GL_Generic *e = engine;
-
-   generic_cache_data_drop(e->software.surface_cache, key);
-}
-
-static Eina_Bool
-eng_ector_begin(void *engine, void *surface,
-                void *context EINA_UNUSED, Ector_Surface *ector,
-                int x, int y, Eina_Bool do_async EINA_UNUSED)
-{
-   if (use_gl)
-     {
-        //FIXME: No implementation yet
-        return EINA_FALSE;
-     }
-   else
-     {
-        int w, h, stride;
-        Evas_GL_Image *glim = surface;
-        DATA32 *pixels;
-        int load_err;
-
-        glim = eng_image_data_get(engine, glim, EINA_TRUE, &pixels, &load_err,NULL);
-        if (!glim || !pixels) return EINA_FALSE;
-        eng_image_stride_get(engine, glim, &stride);
-        eng_image_size_get(engine, glim, &w, &h);
-
-        memset(pixels, 0, stride * h);
-
-        // it just uses the software backend to draw for now
-        ector_buffer_pixels_set(ector, pixels, w, h, stride, EFL_GFX_COLORSPACE_ARGB8888, EINA_TRUE);
-        ector_surface_reference_point_set(ector, x, y);
-     }
-   return EINA_TRUE;
-}
-
-static void
-eng_ector_end(void *engine,
-              void *surface,
-              void *context EINA_UNUSED,
-              Ector_Surface *ector,
-              Eina_Bool do_async EINA_UNUSED)
-{
-   if (use_gl)
-     {
-        //FIXME: No implementation yet
-     }
-   else
-     {
-        Evas_GL_Image *glim = surface;
-        DATA32 *pixels;
-        int load_err;
-
-        glim = eng_image_data_get(engine, glim, EINA_FALSE, &pixels, &load_err,NULL);
-
-        eng_image_data_put(engine, glim, pixels);
-        eng_image_data_put(engine, glim, pixels);
-        ector_buffer_pixels_set(ector, NULL, 0, 0, 0, EFL_GFX_COLORSPACE_ARGB8888, EINA_TRUE);
-        evas_common_cpu_end_opt();
-
-     }
-}
-
 static Eina_Bool
 eng_image_data_map(void *engine, void **image, Eina_Rw_Slice *slice,
                    int *stride, int x, int y, int w, int h,
@@ -3422,7 +3255,6 @@ module_open(Evas_Module *em)
      }
 
    ector_init();
-   ector_glsym_set(dlsym, RTLD_DEFAULT);
 
    /* store it for later use */
    func = pfunc;
@@ -3547,18 +3379,8 @@ module_open(Evas_Module *em)
 
    ORD(context_flush);
 
-   ORD(ector_create);
-   ORD(ector_destroy);
    ORD(ector_buffer_wrap);
    ORD(ector_buffer_new);
-   ORD(ector_begin);
-   ORD(ector_renderer_draw);
-   ORD(ector_end);
-   ORD(ector_surface_create);
-   ORD(ector_surface_destroy);
-   ORD(ector_surface_cache_set);
-   ORD(ector_surface_cache_get);
-   ORD(ector_surface_cache_drop);
    ORD(gfx_filter_supports);
    ORD(gfx_filter_process);
    ORD(font_glyphs_gc_collect);
index 02fb636..9c07315 100755 (executable)
@@ -304,8 +304,6 @@ typedef struct _Evas_Thread_Command_Image Evas_Thread_Command_Image;
 typedef struct _Evas_Thread_Command_Font Evas_Thread_Command_Font;
 typedef struct _Evas_Thread_Command_Map Evas_Thread_Command_Map;
 typedef struct _Evas_Thread_Command_Multi_Font Evas_Thread_Command_Multi_Font;
-typedef struct _Evas_Thread_Command_Ector Evas_Thread_Command_Ector;
-typedef struct _Evas_Thread_Command_Ector_Surface Evas_Thread_Command_Ector_Surface;
 
 struct _Evas_Thread_Command_Rect
 {
@@ -397,17 +395,6 @@ struct _Evas_Thread_Command_Multi_Font
    Evas_Font_Array *texts;
 };
 
-struct _Evas_Thread_Command_Ector
-{
-   Ector_Renderer *r;
-   Eina_Array *clips;
-
-   DATA32 mul_col;
-   Efl_Gfx_Render_Op render_op;
-
-   Eina_Bool free_it;
-};
-
 
 // declare here as it is re-used
 static void *eng_image_map_surface_new(void *data, int w, int h, int alpha);
@@ -4371,44 +4358,6 @@ eng_output_idle_flush(void *engine EINA_UNUSED, void *data)
 
 // Ector functions
 
-static Ector_Surface *
-eng_ector_create(void *engine EINA_UNUSED)
-{
-   return NULL;
-}
-
-static void*
-eng_ector_surface_create(void *engine EINA_UNUSED, int width EINA_UNUSED, int height EINA_UNUSED, int *error EINA_UNUSED)
-{
-   return NULL;
-}
-
-static void
-eng_ector_surface_destroy(void *engine EINA_UNUSED, void *surface EINA_UNUSED)
-{
-}
-
-static void
-eng_ector_surface_cache_set(void *engine EINA_UNUSED, void *key EINA_UNUSED, void *surface EINA_UNUSED)
-{
-}
-
-static void *
-eng_ector_surface_cache_get(void *engine EINA_UNUSED, void *key EINA_UNUSED)
-{
-   return NULL;
-}
-
-static void
-eng_ector_surface_cache_drop(void *engine EINA_UNUSED, void *key EINA_UNUSED)
-{
-}
-
-static void
-eng_ector_destroy(void *data EINA_UNUSED, Ector_Surface *ector EINA_UNUSED)
-{
-}
-
 static Ector_Buffer *
 eng_ector_buffer_wrap(void *data, Evas *e EINA_UNUSED, void *engine_image)
 {
@@ -4461,30 +4410,6 @@ eng_ector_buffer_new(void *data, Evas *evas, int width, int height,
    return buf;
 }
 
-static void
-eng_ector_renderer_draw(void *engine EINA_UNUSED, void *surface EINA_UNUSED,
-                        void *context EINA_UNUSED, Ector_Renderer *renderer EINA_UNUSED,
-                        Eina_Array *clips EINA_UNUSED, Eina_Bool do_async EINA_UNUSED)
-{
-}
-
-static Eina_Bool
-eng_ector_begin(void *engine EINA_UNUSED, void *surface EINA_UNUSED,
-                void *context EINA_UNUSED, Ector_Surface *ector EINA_UNUSED,
-                int x EINA_UNUSED, int y EINA_UNUSED, Eina_Bool do_async EINA_UNUSED)
-{
-   return EINA_TRUE;
-}
-
-static void
-eng_ector_end(void *engine EINA_UNUSED,
-              void *surface EINA_UNUSED,
-              void *context EINA_UNUSED,
-              Ector_Surface *ector EINA_UNUSED,
-              Eina_Bool do_async EINA_UNUSED)
-{
-}
-
 //------------------------------------------------//
 
 static Software_Filter_Func
@@ -4716,18 +4641,8 @@ static Evas_Func func =
      eng_multi_font_draw,
      eng_pixel_alpha_get,
      NULL, // eng_context_flush - software doesn't use it
-     eng_ector_create,
-     eng_ector_destroy,
      eng_ector_buffer_wrap,
      eng_ector_buffer_new,
-     eng_ector_begin,
-     eng_ector_renderer_draw,
-     eng_ector_end,
-     eng_ector_surface_create,
-     eng_ector_surface_destroy,
-     eng_ector_surface_cache_set,
-     eng_ector_surface_cache_get,
-     eng_ector_surface_cache_drop,
      eng_gfx_filter_supports,
      eng_gfx_filter_process,
    /* FUTURE software generic calls go here */