2012-09-24 00:41:27 -07:00
|
|
|
#ifndef _EVAS_GL_CORE_H
|
|
|
|
#define _EVAS_GL_CORE_H
|
|
|
|
#define EVAS_GL_NO_GL_H_CHECK 1
|
|
|
|
#include "Evas_GL.h"
|
|
|
|
|
2015-04-28 05:24:11 -07:00
|
|
|
#ifdef EAPI
|
|
|
|
# undef EAPI
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
2018-01-18 01:04:03 -08:00
|
|
|
# ifdef EFL_BUILD
|
2015-04-28 05:24:11 -07:00
|
|
|
# ifdef DLL_EXPORT
|
|
|
|
# define EAPI __declspec(dllexport)
|
|
|
|
# else
|
|
|
|
# define EAPI
|
2018-01-18 01:04:03 -08:00
|
|
|
# endif
|
2015-04-28 05:24:11 -07:00
|
|
|
# else
|
|
|
|
# define EAPI __declspec(dllimport)
|
2018-01-18 01:04:03 -08:00
|
|
|
# endif
|
2015-04-28 05:24:11 -07:00
|
|
|
#else
|
|
|
|
# ifdef __GNUC__
|
|
|
|
# if __GNUC__ >= 4
|
|
|
|
# define EAPI __attribute__ ((visibility("default")))
|
|
|
|
# else
|
|
|
|
# define EAPI
|
|
|
|
# endif
|
|
|
|
# else
|
|
|
|
# define EAPI
|
|
|
|
# endif
|
2018-01-18 01:04:03 -08:00
|
|
|
#endif
|
2015-04-28 05:24:11 -07:00
|
|
|
|
2012-09-24 00:41:27 -07:00
|
|
|
typedef void *EVGLNative_Display;
|
2013-03-04 03:23:49 -08:00
|
|
|
typedef void *EVGLNative_Window;
|
2012-09-24 00:41:27 -07:00
|
|
|
typedef void *EVGLNative_Surface;
|
|
|
|
typedef void *EVGLNative_Context;
|
|
|
|
typedef struct _EVGL_Engine EVGL_Engine;
|
|
|
|
typedef struct _EVGL_Interface EVGL_Interface;
|
|
|
|
typedef struct _EVGL_Surface EVGL_Surface;
|
2013-03-04 03:23:49 -08:00
|
|
|
typedef struct _EVGL_Native_Window EVGL_Native_Window;
|
2012-09-24 00:41:27 -07:00
|
|
|
typedef struct _EVGL_Context EVGL_Context;
|
|
|
|
typedef struct _EVGL_Resource EVGL_Resource;
|
|
|
|
typedef struct _EVGL_Cap EVGL_Cap;
|
|
|
|
typedef struct _EVGL_Surface_Cap EVGL_Surface_Cap;
|
|
|
|
typedef struct _EVGL_Surface_Format EVGL_Surface_Format;
|
|
|
|
|
2014-07-11 06:10:53 -07:00
|
|
|
EAPI void evgl_engine_shutdown(void *eng_data);
|
2015-04-29 06:56:52 -07:00
|
|
|
EAPI void *evgl_native_surface_buffer_get(EVGL_Surface *sfc, Eina_Bool *is_egl_image);
|
2015-04-20 18:54:02 -07:00
|
|
|
EAPI int evgl_native_surface_yinvert_get(EVGL_Surface *sfc);
|
2015-04-30 00:04:47 -07:00
|
|
|
EAPI void *evgl_current_native_context_get(EVGL_Context *ctx);
|
2015-11-05 22:28:12 -08:00
|
|
|
EAPI void evas_gl_common_context_restore_set(Eina_Bool);
|
2015-03-09 01:25:20 -07:00
|
|
|
|
2015-04-20 18:54:02 -07:00
|
|
|
typedef void (*EVGL_Engine_Call)(void *eng_data);
|
2015-04-29 06:56:52 -07:00
|
|
|
typedef void *(*EVGL_Native_Surface_Call)(void *sfc, Eina_Bool *is_egl_image);
|
2015-04-20 18:54:02 -07:00
|
|
|
typedef int (*EVGL_Native_Surface_Yinvert_Call)(void *sfc);
|
2015-04-30 00:04:47 -07:00
|
|
|
typedef void *(*EVGL_Current_Native_Context_Get_Call)(void *ctx);
|
2015-03-09 01:25:20 -07:00
|
|
|
|
2014-07-11 06:10:53 -07:00
|
|
|
EVGL_Engine *evgl_engine_init(void *eng_data, const EVGL_Interface *efunc);
|
2013-10-24 01:37:22 -07:00
|
|
|
|
|
|
|
void *evgl_surface_create(void *eng_data, Evas_GL_Config *cfg, int w, int h);
|
2014-09-19 01:32:26 -07:00
|
|
|
void *evgl_pbuffer_surface_create(void *eng_data, Evas_GL_Config *cfg, int w, int h, const int *attrib_list);
|
2013-10-24 01:37:22 -07:00
|
|
|
int evgl_surface_destroy(void *eng_data, EVGL_Surface *sfc);
|
2015-07-16 06:25:36 -07:00
|
|
|
void *evgl_context_create(void *eng_data, EVGL_Context *share_ctx, Evas_GL_Context_Version version, void *(*native_context_get)(void *), void *(*engine_data_get)(void *));
|
2013-10-24 01:37:22 -07:00
|
|
|
int evgl_context_destroy(void *eng_data, EVGL_Context *ctx);
|
|
|
|
int evgl_make_current(void *eng_data, EVGL_Surface *sfc, EVGL_Context *ctx);
|
|
|
|
|
|
|
|
const char *evgl_string_query(int name);
|
|
|
|
int evgl_native_surface_get(EVGL_Surface *sfc, Evas_Native_Surface *ns);
|
2015-07-29 17:14:08 -07:00
|
|
|
Evas_GL_API *evgl_api_get(void *eng_data, Evas_GL_Context_Version version, Eina_Bool alloc_only);
|
2014-10-24 05:25:08 -07:00
|
|
|
void evgl_safe_extension_add(const char *name, void *funcptr);
|
|
|
|
Eina_Bool evgl_safe_extension_get(const char *name, void **pfuncptr);
|
2012-09-24 00:41:27 -07:00
|
|
|
|
2015-03-03 03:08:16 -08:00
|
|
|
int evgl_direct_rendered(void);
|
2015-02-24 02:05:39 -08:00
|
|
|
void evgl_direct_override_get(Eina_Bool *override, Eina_Bool *force_off);
|
2014-02-14 09:33:47 -08:00
|
|
|
void evgl_direct_info_set(int win_w, int win_h, int rot,
|
|
|
|
int img_x, int img_y, int img_w, int img_h,
|
2014-12-09 04:36:45 -08:00
|
|
|
int clip_x, int clip_y, int clip_w, int clip_h,
|
2015-07-09 20:37:27 -07:00
|
|
|
int render_op, void *surface);
|
2015-03-03 03:08:16 -08:00
|
|
|
void evgl_direct_info_clear(void);
|
|
|
|
void evgl_get_pixels_pre(void);
|
|
|
|
void evgl_get_pixels_post(void);
|
2012-09-24 00:41:27 -07:00
|
|
|
|
2014-12-09 04:36:45 -08:00
|
|
|
Eina_Bool evgl_native_surface_direct_opts_get(Evas_Native_Surface *ns,
|
|
|
|
Eina_Bool *direct_render,
|
2015-02-24 02:05:39 -08:00
|
|
|
Eina_Bool *client_side_rotation,
|
2015-03-02 23:38:52 -08:00
|
|
|
Eina_Bool *direct_override);
|
2014-12-09 04:36:45 -08:00
|
|
|
|
2014-02-14 09:33:47 -08:00
|
|
|
void evgl_direct_partial_info_set(int pres);
|
2015-11-26 08:26:07 -08:00
|
|
|
void evgl_direct_partial_info_clear(void);
|
|
|
|
void evgl_direct_partial_render_start(void);
|
|
|
|
void evgl_direct_partial_render_end(void);
|
2015-04-28 05:24:11 -07:00
|
|
|
|
|
|
|
#undef EAPI
|
|
|
|
#define EAPI
|
|
|
|
|
2012-09-24 00:41:27 -07:00
|
|
|
#endif //_EVAS_GL_CORE_H
|