summaryrefslogtreecommitdiff
path: root/src/lib/evas/Evas_GL.h
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2014-09-19 14:33:53 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2014-10-20 12:16:08 +0900
commit6848cf40b622ee84ca045a138524e868752ce7f5 (patch)
tree2c4760fcd1c0efb2fbda95db13733a29ae1bbe6d /src/lib/evas/Evas_GL.h
parent29e572cdfb3bbf82db4f377dd2da8e77ba75e467 (diff)
Evas GL: Add evasglCreateImageForContext + import defs
evas gl CreateImage function was assuming the current context should be used to create an image, while the equivalent EGL function specifically requires the context to be specified. This also imports some definitions for CreateImage. And fixes typo in glEGLImageTargetRenderbufferStorageOES. This adds new functions in Evas_GL_API struct. The version number will be bumped to 2 in a later commit. @feature
Diffstat (limited to 'src/lib/evas/Evas_GL.h')
-rw-r--r--src/lib/evas/Evas_GL.h255
1 files changed, 226 insertions, 29 deletions
diff --git a/src/lib/evas/Evas_GL.h b/src/lib/evas/Evas_GL.h
index 8c7f68f7b5..d738a5f921 100644
--- a/src/lib/evas/Evas_GL.h
+++ b/src/lib/evas/Evas_GL.h
@@ -654,6 +654,25 @@ EAPI Evas_GL_Context *evas_gl_current_context_get (Evas_GL *evas_gl) EIN
654 */ 654 */
655EAPI Evas_GL_Surface *evas_gl_current_surface_get (Evas_GL *evas_gl) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 655EAPI Evas_GL_Surface *evas_gl_current_surface_get (Evas_GL *evas_gl) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
656 656
657
658
659/*-------------------------------------------------------------------------
660 * Data types, definitions and values for use with Evas GL.
661 *
662 * The following definitions have been imported from the official GLES/GLES2
663 * header files. Please do not include the official GL headers along with
664 * Evas_GL.h as these will conflict.
665 *-----------------------------------------------------------------------*/
666
667#ifndef KHRONOS_SUPPORT_INT64
668typedef unsigned long long khronos_uint64_t;
669typedef signed long long khronos_int64_t;
670#endif
671
672// Due to build conflicts on various platforms, we can't use GL[u]int64 directly
673typedef khronos_int64_t EvasGLint64;
674typedef khronos_uint64_t EvasGLuint64;
675
657#if !defined(__gl_h_) && !defined(__gl2_h_) 676#if !defined(__gl_h_) && !defined(__gl2_h_)
658# define __gl_h_ 677# define __gl_h_
659# define __gl2_h_ 678# define __gl2_h_
@@ -687,8 +706,6 @@ typedef signed int GLfixed; // Changed khronos_int32_t
687typedef signed long int GLintptr; // Changed khronos_intptr_t 706typedef signed long int GLintptr; // Changed khronos_intptr_t
688typedef signed long int GLsizeiptr; // Changed khronos_ssize_t 707typedef signed long int GLsizeiptr; // Changed khronos_ssize_t
689 708
690//#if (!defined(__gl2_h_) && !defined(__gl_h_))
691
692/* OpenGL ES core versions */ 709/* OpenGL ES core versions */
693//#define GL_ES_VERSION_2_0 1 710//#define GL_ES_VERSION_2_0 1
694 711
@@ -1378,6 +1395,72 @@ typedef signed long int GLsizeiptr; // Changed khronos_ssize_t
1378# endif 1395# endif
1379#endif 1396#endif
1380 1397
1398
1399
1400// These types are required since we can't include GLES/gl.h or gl2.h
1401typedef signed int GLclampx; // Changed khronos_int32_t
1402typedef struct __GLsync* GLsync;
1403
1404
1405
1406/*
1407 * EGL-related definitions
1408 *
1409 * Note the names have been changed from EGL to EvasGL so as to be
1410 * platform independent. Except for the error codes, the following
1411 * EVAS_GL_x definitions have the same values as their EGL_x counterparts.
1412 * Please note that the error codes have been reset to start from 0 (success).
1413 */
1414
1415/* EGL/EvasGL Types */
1416typedef void *EvasGLSync;
1417typedef unsigned long long EvasGLTime;
1418
1419/* @brief Attribute list terminator
1420 * 0 is also accepted as an attribute terminator.
1421 * Evas_GL will ensure that the attribute list is always properly terminated
1422 * (eg. using EGL_NONE for EGL backends) and the values are supported by the
1423 * backends.
1424 */
1425#define EVAS_GL_NONE 0x3038
1426
1427/* EGL_KHR_image_base */
1428#define EVAS_GL_image_base 1
1429#define EVAS_GL_IMAGE_PRESERVED 0x30D2 /**< @brief An attribute for @ref evasglCreateImage or @ref evasglCreateImageForContext, the default is @c EINA_FALSE. Please refer to @c EGL_IMAGE_PRESERVED_KHR. */
1430
1431/* EGL_KHR_image */
1432#define EVAS_GL_image 1
1433#define EVAS_GL_NATIVE_PIXMAP 0x30B0 /**< @internal A target for @ref evasglCreateImage or @ref evasglCreateImageForContext. Since it is X11-specific, it should not be used by Tizen applications. */
1434
1435/* EGL_KHR_vg_parent_image */
1436#define EVAS_VG_PARENT_IMAGE 0x30BA /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1437
1438/* EGL_KHR_gl_texture_2D_image */
1439#define EVAS_GL_TEXTURE_2D 0x30B1 /**< @brief An attribute for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1440#define EVAS_GL_TEXTURE_LEVEL 0x30BC /**< @brief An attribute for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1441
1442/* EGL_KHR_gl_texture_cubemap_image */
1443#define EVAS_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1444#define EVAS_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1445#define EVAS_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1446#define EVAS_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1447#define EVAS_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1448#define EVAS_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1449
1450/* EGL_KHR_gl_texture_3D_image */
1451#define EVAS_GL_TEXTURE_3D 0x30B2 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1452#define EVAS_GL_TEXTURE_ZOFFSET 0x30BD /**< @brief An attribute for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1453
1454/* EGL_KHR_gl_renderbuffer_image */
1455#define EVAS_GL_RENDERBUFFER 0x30B9 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext */
1456
1457/* Out-of-band attribute value */
1458#define EVAS_GL_DONT_CARE (-1)
1459
1460/* EGL_TIZEN_image_native_surface */
1461#define EVAS_GL_TIZEN_image_native_surface 1
1462#define EVAS_GL_NATIVE_SURFACE_TIZEN 0x32A1 /**< @brief A target for @ref evasglCreateImage or @ref evasglCreateImageForContext. This is a Tizen specific feature. */
1463
1381/** 1464/**
1382 * @name Evas GL error codes 1465 * @name Evas GL error codes
1383 * 1466 *
@@ -1393,32 +1476,72 @@ typedef signed long int GLsizeiptr; // Changed khronos_ssize_t
1393 * 1476 *
1394 * @{ 1477 * @{
1395 */ 1478 */
1396#define EVAS_GL_SUCCESS 0x0000 /**< The last evas_gl_ operation succeeded. A call to @c evas_gl_error_get() will reset the error. */ 1479#define EVAS_GL_SUCCESS 0x0000 /**< @brief The last evas_gl_ operation succeeded. A call to @c evas_gl_error_get() will reset the error. */
1397#define EVAS_GL_NOT_INITIALIZED 0x0001 /**< Evas GL was not initialized or a @c NULL pointer was passed */ 1480#define EVAS_GL_NOT_INITIALIZED 0x0001 /**< @brief Evas GL was not initialized or a @c NULL pointer was passed */
1398#define EVAS_GL_BAD_ACCESS 0x0002 /**< Bad access; for more information, please refer to its EGL counterpart */ 1481#define EVAS_GL_BAD_ACCESS 0x0002 /**< @brief Bad access; for more information, please refer to its EGL counterpart */
1399#define EVAS_GL_BAD_ALLOC 0x0003 /**< Bad allocation; for more information, please refer to its EGL counterpart */ 1482#define EVAS_GL_BAD_ALLOC 0x0003 /**< @brief Bad allocation; for more information, please refer to its EGL counterpart */
1400#define EVAS_GL_BAD_ATTRIBUTE 0x0004 /**< Bad attribute; for more information, please refer to its EGL counterpart */ 1483#define EVAS_GL_BAD_ATTRIBUTE 0x0004 /**< @brief Bad attribute; for more information, please refer to its EGL counterpart */
1401#define EVAS_GL_BAD_CONFIG 0x0005 /**< Bad configuration; for more information, please refer to its EGL counterpart */ 1484#define EVAS_GL_BAD_CONFIG 0x0005 /**< @brief Bad configuration; for more information, please refer to its EGL counterpart */
1402#define EVAS_GL_BAD_CONTEXT 0x0006 /**< Bad context; for more information, please refer to its EGL counterpart */ 1485#define EVAS_GL_BAD_CONTEXT 0x0006 /**< @brief Bad context; for more information, please refer to its EGL counterpart */
1403#define EVAS_GL_BAD_CURRENT_SURFACE 0x0007 /**< Bad current surface; for more information, please refer to its EGL counterpart */ 1486#define EVAS_GL_BAD_CURRENT_SURFACE 0x0007 /**< @brief Bad current surface; for more information, please refer to its EGL counterpart */
1404#define EVAS_GL_BAD_DISPLAY 0x0008 /**< Bad display; for more information, please refer to its EGL counterpart */ 1487#define EVAS_GL_BAD_DISPLAY 0x0008 /**< @brief Bad display; for more information, please refer to its EGL counterpart */
1405#define EVAS_GL_BAD_MATCH 0x0009 /**< Bad match; for more information, please refer to its EGL counterpart */ 1488#define EVAS_GL_BAD_MATCH 0x0009 /**< @brief Bad match; for more information, please refer to its EGL counterpart */
1406#define EVAS_GL_BAD_NATIVE_PIXMAP 0x000A /**< Bad native pixmap; for more information, please refer to its EGL counterpart */ 1489#define EVAS_GL_BAD_NATIVE_PIXMAP 0x000A /**< @internal Bad native pixmap; for more information, please refer to its EGL counterpart */
1407#define EVAS_GL_BAD_NATIVE_WINDOW 0x000B /**< Bad native window; for more information, please refer to its EGL counterpart */ 1490#define EVAS_GL_BAD_NATIVE_WINDOW 0x000B /**< @brief Bad native window; for more information, please refer to its EGL counterpart */
1408#define EVAS_GL_BAD_PARAMETER 0x000C /**< Bad parameter; for more information, please refer to its EGL counterpart */ 1491#define EVAS_GL_BAD_PARAMETER 0x000C /**< @brief Bad parameter; for more information, please refer to its EGL counterpart */
1409#define EVAS_GL_BAD_SURFACE 0x000D /**< Bad surface; for more information, please refer to its EGL counterpart */ 1492#define EVAS_GL_BAD_SURFACE 0x000D /**< @brief Bad surface; for more information, please refer to its EGL counterpart */
1410/* EGL 1.1 - IMG_power_management */ 1493/* EGL 1.1 - IMG_power_management */
1411#define EVAS_GL_CONTEXT_LOST 0x000E /**< Context lost; for more information, please refer to its EGL counterpart */ 1494#define EVAS_GL_CONTEXT_LOST 0x000E /**< @brief Context lost; for more information, please refer to its EGL counterpart */
1495
1496/** @} */
1497
1498/* EGL_KHR_fence_sync - EVAS_GL_fence_sync */
1499#define EVAS_GL_fence_sync 1
1500/* EGL_KHR_reusable_sync - EVAS_GL_reusable_sync */
1501#define EVAS_GL_reusable_sync 1
1502/* EGL_KHR_wait_sync - EVAS_GL_wait_sync */
1503#define EVAS_GL_KHR_wait_sync 1
1412 1504
1505/**
1506 * @name Constants used to define and wait for Sync objects.
1507 * @{
1508 */
1509#define EVAS_GL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 /**< @brief A value for @ref evasglGetSyncAttrib with @ref EVAS_GL_SYNC_CONDITION */
1510#define EVAS_GL_SYNC_STATUS 0x30F1 /**< @brief A attribute for @ref evasglGetSyncAttrib */
1511#define EVAS_GL_SIGNALED 0x30F2 /**< @brief A value for @ref evasglGetSyncAttrib with @ref EVAS_GL_SYNC_STATUS */
1512#define EVAS_GL_UNSIGNALED 0x30F3 /**< @brief A value for @ref evasglGetSyncAttrib with @ref EVAS_GL_SYNC_STATUS */
1513#define EVAS_GL_TIMEOUT_EXPIRED 0x30F5 /**< @brief A returned by @ref evasglClientWaitSync */
1514#define EVAS_GL_CONDITION_SATISFIED 0x30F6 /**< @brief A returned by @ref evasglClientWaitSync */
1515#define EVAS_GL_SYNC_TYPE 0x30F7 /**< @brief A attribute for @ref evasglGetSyncAttrib */
1516#define EVAS_GL_SYNC_CONDITION 0x30F8 /**< @brief A attribute for @ref evasglGetSyncAttrib */
1517#define EVAS_GL_SYNC_FENCE 0x30F9 /**< @brief A type for @ref evasglCreateSync */
1518#define EVAS_GL_SYNC_REUSABLE 0x30FA /**< @brief A type for @ref evasglCreateSync */
1519
1520#define EVAS_GL_SYNC_FLUSH_COMMANDS_BIT 0x0001 /**< @brief A flag for @ref evasglClientWaitSync */
1521#define EVAS_GL_FOREVER 0xFFFFFFFFFFFFFFFFull /**< @brief Disable wait timeout */
1522#define EVAS_GL_NO_SYNC ((EvasGLSync) NULL) /**< @brief Empty sync object, see @ref evasglCreateSync */
1413/** @} */ 1523/** @} */
1414 1524
1415#define EVAS_GL_API_VERSION 1 1525#define EVAS_GL_API_VERSION 1
1526
1527/**
1528 * @brief The Evas GL API
1529 * This structure contains function pointers to the available GL functions.
1530 * Some of these functions may be wrapped internally by Evas GL.
1531 */
1416struct _Evas_GL_API 1532struct _Evas_GL_API
1417{ 1533{
1418 int version; 1534 int version;
1419 1535
1420 /* version 1: */ 1536 /**
1421 /*------- GLES 2.0 -------*/ 1537 * @anchor gles2
1538 * @name OpenGL-ES 2.0.
1539 *
1540 * Evas_GL_API version 1.
1541 *
1542 * The following functions are supported in all OpenGL-ES 2.0 contexts.
1543 * @{
1544 */
1422 void (*glActiveTexture) (GLenum texture); 1545 void (*glActiveTexture) (GLenum texture);
1423 void (*glAttachShader) (GLuint program, GLuint shader); 1546 void (*glAttachShader) (GLuint program, GLuint shader);
1424 void (*glBindAttribLocation) (GLuint program, GLuint index, const char* name); 1547 void (*glBindAttribLocation) (GLuint program, GLuint index, const char* name);
@@ -1561,16 +1684,29 @@ struct _Evas_GL_API
1561 void (*glVertexAttrib4fv) (GLuint indx, const GLfloat* values); 1684 void (*glVertexAttrib4fv) (GLuint indx, const GLfloat* values);
1562 void (*glVertexAttribPointer) (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr); 1685 void (*glVertexAttribPointer) (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);
1563 void (*glViewport) (GLint x, GLint y, GLsizei width, GLsizei height); 1686 void (*glViewport) (GLint x, GLint y, GLsizei width, GLsizei height);
1564 1687 /** @} */
1565 /*------- GLES 2.0 Extensions -------*/ 1688
1689 /**
1690 * @name OpenGL-ES 2.0 extensions.
1691 *
1692 * Evas_GL_API version 1
1693 *
1694 * The following functions may be supported in OpenGL-ES 2.0 contexts,
1695 * depending on which extensions Evas has decided to support.
1696 *
1697 * @{
1698 */
1699
1700 /* GL_OES_EGL_image */
1566 // Notice these two names have been changed to fit Evas GL and not EGL! 1701 // Notice these two names have been changed to fit Evas GL and not EGL!
1567 /* GL_OES_EvasGL_image */ 1702 /** @brief Requires the @c GL_OES_EGL_image extension, similar to @c glEGLImageTargetTexture2DOES. */
1568 void (*glEvasGLImageTargetTexture2DOES) (GLenum target, EvasGLImage image); 1703 void (*glEvasGLImageTargetTexture2DOES) (GLenum target, EvasGLImage image);
1704 /** @brief Requires the @c GL_OES_EGL_image extension, similar to @c glEGLImageTargetRenderbufferStorageOES. */
1569 void (*glEvasGLImageTargetRenderbufferStorageOES) (GLenum target, EvasGLImage image); 1705 void (*glEvasGLImageTargetRenderbufferStorageOES) (GLenum target, EvasGLImage image);
1570 1706
1571 /* GL_OES_get_program_binary */ 1707 /* GL_OES_get_program_binary */
1572 void (*glGetProgramBinaryOES) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); 1708 void (*glGetProgramBinaryOES) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
1573 void (*glProgramBinaryOES) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); 1709 void (*glProgramBinaryOES) (GLuint program, GLenum binaryFormat, const void *binary, GLint length);
1574 /* GL_OES_mapbuffer */ 1710 /* GL_OES_mapbuffer */
1575 void* (*glMapBufferOES) (GLenum target, GLenum access); 1711 void* (*glMapBufferOES) (GLenum target, GLenum access);
1576 GLboolean (*glUnmapBufferOES) (GLenum target); 1712 GLboolean (*glUnmapBufferOES) (GLenum target);
@@ -1628,20 +1764,81 @@ struct _Evas_GL_API
1628 void (*glExtGetTexSubImageQCOM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void* texels); 1764 void (*glExtGetTexSubImageQCOM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void* texels);
1629 void (*glExtGetBufferPointervQCOM) (GLenum target, void** params); 1765 void (*glExtGetBufferPointervQCOM) (GLenum target, void** params);
1630 1766
1631
1632 /* GL_QCOM_extended_get2 */ 1767 /* GL_QCOM_extended_get2 */
1633 void (*glExtGetShadersQCOM) (GLuint* shaders, GLint maxShaders, GLint* numShaders); 1768 void (*glExtGetShadersQCOM) (GLuint* shaders, GLint maxShaders, GLint* numShaders);
1634 void (*glExtGetProgramsQCOM) (GLuint* programs, GLint maxPrograms, GLint* numPrograms); 1769 void (*glExtGetProgramsQCOM) (GLuint* programs, GLint maxPrograms, GLint* numPrograms);
1635 GLboolean (*glExtIsProgramBinaryQCOM) (GLuint program); 1770 GLboolean (*glExtIsProgramBinaryQCOM) (GLuint program);
1636 void (*glExtGetProgramBinarySourceQCOM) (GLuint program, GLenum shadertype, char* source, GLint* length); 1771 void (*glExtGetProgramBinarySourceQCOM) (GLuint program, GLenum shadertype, char* source, GLint* length);
1637 1772 /** @} */
1638 //------- EGL Related Extensions -------// 1773
1639 /* EvasGL_KHR_image */ 1774 /**
1640 EvasGLImage (*evasglCreateImage) (int target, void* buffer, int* attrib_list); 1775 * @name EGL-related extensions
1776 *
1777 * Evas_GL_API version 1.
1778 *
1779 * @{
1780 */
1781
1782 /* EGL_KHR_image - #ifdef EVAS_GL_image */
1783 /**
1784 * @anchor evasglCreateImage
1785 * @brief Create an EvasGLImage for the current context.
1786 *
1787 * Common targets are:
1788 * @li @c EVAS_GL_TEXTURE_2D:<br/>
1789 * In case of @c EVAS_GL_TEXTURE_2D on EGL, the currently bound EGLContext
1790 * will be used to create the image. The buffer argument must be a texture
1791 * ID cast down to a void* pointer.<br/>
1792 * Requires the @c EVAS_GL_image extension.
1793 *
1794 * @li @c EVAS_GL_NATIVE_SURFACE_TIZEN (Tizen platform only):<br/>
1795 * Requires the @c EVAS_GL_TIZEN_image_native_surface extension.
1796 *
1797 * @note Please consider using @ref evasglCreateImageForContext instead.
1798 */
1799 EvasGLImage (*evasglCreateImage) (int target, void* buffer, const int* attrib_list) EINA_WARN_UNUSED_RESULT;
1800
1801 /**
1802 * @anchor evasglDestroyImage
1803 * @brief Destroys an EvasGLImage.
1804 * Destroy an image created by either @ref evasglCreateImage or @ref evasglCreateImageForContext.
1805 *
1806 * Requires the @c EVAS_GL_image extension.
1807 */
1641 void (*evasglDestroyImage) (EvasGLImage image); 1808 void (*evasglDestroyImage) (EvasGLImage image);
1642 1809
1810 /* Evas_GL_API version 2: */
1811
1812 /**
1813 * @anchor evasglCreateImageForContext
1814 * @brief Create an EvasGLImage for a given context.
1815 *
1816 * @param[in] evas_gl The current Evas GL object,
1817 * @param[in] ctx A context to create this image for,
1818 * @param[in] target One of @c EVAS_GL_TEXTURE_2D and @c EVAS_GL_NATIVE_SURFACE_TIZEN,
1819 * @param[in] buffer A pointer to a buffer, see below,
1820 * @param[in] attrib_list An array of key-value pairs terminated by 0 (see @ref EVAS_GL_IMAGE_PRESERVED)
1821 *
1822 * Common targets are:
1823 * @li @c EVAS_GL_TEXTURE_2D:<br/>
1824 * In case of @c EVAS_GL_TEXTURE_2D, the buffer argument must be a texture
1825 * ID cast down to a void* pointer.<br/>
1826 * Requires the @c EVAS_GL_image extension.
1827 *
1828 * @code
1829EvasGLImage *img = glapi->evasglCreateImageForContext
1830 (evasgl, ctx, EVAS_GL_TEXTURE_2D, (void*)(intptr_t)texture_id, NULL);
1831 * @endcode
1832 *
1833 * @li @c EVAS_GL_NATIVE_SURFACE_TIZEN (Tizen platform only):<br/>
1834 * Requires the @c EVAS_GL_TIZEN_image_native_surface extension.
1835 *
1836 * @since 1.12
1837 */
1838 EvasGLImage (*evasglCreateImageForContext) (Evas_GL *evas_gl, Evas_GL_Context *ctx, int target, void* buffer, const int* attrib_list) EINA_WARN_UNUSED_RESULT;
1839
1840
1643 /* future calls will be added down here for expansion */ 1841 /* future calls will be added down here for expansion */
1644 /* version 2: */
1645}; 1842};
1646 1843
1647 1844