2003-09-04 00:40:34 -07:00
|
|
|
#ifndef EVAS_GL_COMMON_H
|
|
|
|
#define EVAS_GL_COMMON_H
|
|
|
|
|
|
|
|
#include "evas_common.h"
|
2006-08-19 04:58:07 -07:00
|
|
|
#include "evas_private.h"
|
2003-09-04 00:40:34 -07:00
|
|
|
#include "config.h"
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <math.h>
|
|
|
|
#include <sys/time.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
2008-11-01 02:46:51 -07:00
|
|
|
#ifdef BUILD_ENGINE_GL_GLEW
|
2009-03-02 22:07:08 -08:00
|
|
|
# include <GL/glew.h>
|
|
|
|
#else
|
|
|
|
# define GL_GLEXT_PROTOTYPES
|
2009-10-09 05:10:27 -07:00
|
|
|
#endif
|
2008-11-01 02:46:51 -07:00
|
|
|
|
2008-09-19 19:03:22 -07:00
|
|
|
#ifdef BUILD_ENGINE_GL_QUARTZ
|
2009-03-02 22:07:08 -08:00
|
|
|
# include <OpenGL/gl.h>
|
2009-11-21 02:51:51 -08:00
|
|
|
# include <OpenGL/glext.h>
|
2008-09-19 19:03:22 -07:00
|
|
|
#else
|
2010-01-28 22:12:35 -08:00
|
|
|
# ifdef _EVAS_ENGINE_SDL_H
|
|
|
|
# include <SDL/SDL_opengles.h>
|
2009-10-09 05:10:27 -07:00
|
|
|
# else
|
2010-01-28 22:12:35 -08:00
|
|
|
# if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
|
|
|
|
# if defined(GLES_VARIETY_S3C6410)
|
|
|
|
# include <GLES2/gl2.h>
|
|
|
|
# elif defined(GLES_VARIETY_SGX)
|
|
|
|
# include <GLES2/gl2.h>
|
|
|
|
# include <GLES2/gl2ext.h>
|
|
|
|
# endif
|
|
|
|
# else
|
|
|
|
# include <GL/gl.h>
|
|
|
|
# include <GL/glext.h>
|
|
|
|
# endif
|
2009-10-09 05:10:27 -07:00
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef GL_TEXTURE_RECTANGLE_NV
|
|
|
|
#define GL_TEXTURE_RECTANGLE_NV 0x84F5
|
|
|
|
#endif
|
2008-09-19 19:03:22 -07:00
|
|
|
|
2009-10-09 05:10:27 -07:00
|
|
|
|
|
|
|
#define SHAD_VERTEX 0
|
|
|
|
#define SHAD_COLOR 1
|
|
|
|
#define SHAD_TEXUV 2
|
2009-10-10 06:24:15 -07:00
|
|
|
#define SHAD_TEXUV2 3
|
|
|
|
#define SHAD_TEXUV3 4
|
2009-10-09 05:10:27 -07:00
|
|
|
|
|
|
|
typedef struct _Evas_GL_Program Evas_GL_Program;
|
|
|
|
typedef struct _Evas_GL_Program_Source Evas_GL_Program_Source;
|
2009-10-13 02:40:39 -07:00
|
|
|
typedef struct _Evas_GL_Shared Evas_GL_Shared;
|
2003-09-08 22:51:03 -07:00
|
|
|
typedef struct _Evas_GL_Context Evas_GL_Context;
|
2009-10-09 05:10:27 -07:00
|
|
|
typedef struct _Evas_GL_Texture_Pool Evas_GL_Texture_Pool;
|
2003-09-08 22:51:03 -07:00
|
|
|
typedef struct _Evas_GL_Texture Evas_GL_Texture;
|
|
|
|
typedef struct _Evas_GL_Image Evas_GL_Image;
|
2009-10-09 05:10:27 -07:00
|
|
|
typedef struct _Evas_GL_Font_Texture Evas_GL_Font_Texture;
|
2003-09-08 22:51:03 -07:00
|
|
|
typedef struct _Evas_GL_Polygon Evas_GL_Polygon;
|
|
|
|
typedef struct _Evas_GL_Polygon_Point Evas_GL_Polygon_Point;
|
2009-12-26 16:40:25 -08:00
|
|
|
/*
|
2003-09-08 22:51:03 -07:00
|
|
|
typedef struct _Evas_GL_Gradient Evas_GL_Gradient;
|
2009-10-10 06:24:15 -07:00
|
|
|
*/
|
2003-09-08 22:51:03 -07:00
|
|
|
|
2009-10-09 05:10:27 -07:00
|
|
|
struct _Evas_GL_Program
|
2003-09-04 00:40:34 -07:00
|
|
|
{
|
2009-10-09 05:10:27 -07:00
|
|
|
GLuint vert, frag, prog;
|
|
|
|
};
|
2005-05-21 19:49:50 -07:00
|
|
|
|
2009-10-09 05:10:27 -07:00
|
|
|
struct _Evas_GL_Program_Source
|
|
|
|
{
|
|
|
|
const char *src;
|
|
|
|
const unsigned int *bin;
|
|
|
|
int bin_size;
|
|
|
|
};
|
2003-09-04 00:40:34 -07:00
|
|
|
|
2009-10-13 02:40:39 -07:00
|
|
|
struct _Evas_GL_Shared
|
|
|
|
{
|
|
|
|
Eina_List *images;
|
|
|
|
|
|
|
|
struct {
|
|
|
|
GLint max_texture_units;
|
|
|
|
GLint max_texture_size;
|
|
|
|
Eina_Bool tex_npo2 : 1;
|
|
|
|
Eina_Bool tex_rect : 1;
|
|
|
|
} info;
|
|
|
|
|
|
|
|
struct {
|
|
|
|
Eina_List *whole;
|
|
|
|
Eina_List *atlas[33][3];
|
|
|
|
} tex;
|
|
|
|
|
|
|
|
struct {
|
2009-11-12 23:22:31 -08:00
|
|
|
Evas_GL_Program rect, img, font, yuv, tex;
|
2009-10-13 02:40:39 -07:00
|
|
|
} shader;
|
|
|
|
int references;
|
|
|
|
int w, h;
|
|
|
|
};
|
|
|
|
|
2009-10-09 05:10:27 -07:00
|
|
|
struct _Evas_GL_Context
|
|
|
|
{
|
|
|
|
int references;
|
|
|
|
int w, h;
|
|
|
|
RGBA_Draw_Context *dc;
|
|
|
|
|
2009-10-13 02:40:39 -07:00
|
|
|
Evas_GL_Shared *shared;
|
2009-10-09 05:10:27 -07:00
|
|
|
struct {
|
|
|
|
int x, y, w, h;
|
|
|
|
Eina_Bool active : 1;
|
2003-09-04 00:40:34 -07:00
|
|
|
} clip;
|
2003-09-04 23:52:43 -07:00
|
|
|
struct {
|
2009-11-12 23:22:31 -08:00
|
|
|
Evas_GL_Image *surface;
|
2009-10-09 05:10:27 -07:00
|
|
|
GLuint cur_prog;
|
2009-10-10 06:24:15 -07:00
|
|
|
GLuint cur_tex, cur_texu, cur_texv;
|
2009-11-12 23:22:31 -08:00
|
|
|
int render_op;
|
2009-12-13 06:28:07 -08:00
|
|
|
int cx, cy, cw, ch;
|
2009-10-09 05:10:27 -07:00
|
|
|
Eina_Bool smooth : 1;
|
|
|
|
Eina_Bool blend : 1;
|
2009-12-13 06:28:07 -08:00
|
|
|
Eina_Bool clip : 1;
|
2009-10-10 06:24:15 -07:00
|
|
|
struct {
|
|
|
|
GLuint cur_prog;
|
|
|
|
GLuint cur_tex, cur_texum, cur_texv;
|
2009-11-12 23:22:31 -08:00
|
|
|
int render_op;
|
2009-12-13 06:28:07 -08:00
|
|
|
int cx, cy, cw, ch;
|
2009-10-10 06:24:15 -07:00
|
|
|
Eina_Bool smooth : 1;
|
|
|
|
Eina_Bool blend : 1;
|
2009-12-13 06:28:07 -08:00
|
|
|
Eina_Bool clip : 1;
|
2009-10-10 06:24:15 -07:00
|
|
|
} current;
|
2009-10-09 05:10:27 -07:00
|
|
|
} shader;
|
2007-06-02 08:30:59 -07:00
|
|
|
struct {
|
2009-10-09 05:10:27 -07:00
|
|
|
int num;
|
|
|
|
int alloc;
|
2009-11-06 03:32:23 -08:00
|
|
|
GLshort *vertex;
|
|
|
|
GLubyte *color;
|
2009-10-09 05:10:27 -07:00
|
|
|
GLfloat *texuv;
|
2009-10-10 06:24:15 -07:00
|
|
|
GLfloat *texuv2;
|
|
|
|
GLfloat *texuv3;
|
2009-12-30 03:35:40 -08:00
|
|
|
Eina_Bool line : 1;
|
2010-01-19 19:59:32 -08:00
|
|
|
Eina_Bool use_vertex : 1;
|
|
|
|
Eina_Bool use_color : 1;
|
|
|
|
Eina_Bool use_texuv : 1;
|
|
|
|
Eina_Bool use_texuv2 : 1;
|
|
|
|
Eina_Bool use_texuv3 : 1;
|
2010-01-21 00:44:11 -08:00
|
|
|
Evas_GL_Image *im;
|
2009-10-09 05:10:27 -07:00
|
|
|
} array;
|
|
|
|
struct {
|
|
|
|
Eina_Bool size : 1;
|
|
|
|
} change;
|
2009-11-12 23:22:31 -08:00
|
|
|
|
|
|
|
Evas_GL_Image *def_surface;
|
2003-09-04 00:40:34 -07:00
|
|
|
};
|
|
|
|
|
2009-10-09 05:10:27 -07:00
|
|
|
struct _Evas_GL_Texture_Pool
|
2003-09-04 00:40:34 -07:00
|
|
|
{
|
|
|
|
Evas_GL_Context *gc;
|
2009-11-12 23:22:31 -08:00
|
|
|
GLuint texture, fb;
|
2009-11-06 03:32:23 -08:00
|
|
|
GLuint intformat, format, dataformat;
|
2003-09-04 00:40:34 -07:00
|
|
|
int w, h;
|
2009-10-09 05:10:27 -07:00
|
|
|
int references;
|
|
|
|
int slot, fslot;
|
|
|
|
Eina_List *allocations;
|
|
|
|
Eina_Bool whole : 1;
|
2010-01-23 05:49:54 -08:00
|
|
|
Eina_Bool render : 1;
|
|
|
|
Eina_Bool native : 1;
|
2009-10-09 05:10:27 -07:00
|
|
|
};
|
2005-05-21 19:49:50 -07:00
|
|
|
|
2009-10-09 05:10:27 -07:00
|
|
|
struct _Evas_GL_Texture
|
|
|
|
{
|
|
|
|
Evas_GL_Context *gc;
|
2010-01-21 00:44:11 -08:00
|
|
|
Evas_GL_Image *im;
|
2009-10-10 06:24:15 -07:00
|
|
|
Evas_GL_Texture_Pool *pt, *ptu, *ptv;
|
2009-10-09 05:10:27 -07:00
|
|
|
int x, y, w, h;
|
2009-10-13 02:40:39 -07:00
|
|
|
double sx1, sy1, sx2, sy2;
|
2003-09-04 00:40:34 -07:00
|
|
|
int references;
|
2010-01-19 06:29:20 -08:00
|
|
|
|
|
|
|
Eina_Bool alpha : 1;
|
2003-09-04 00:40:34 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
struct _Evas_GL_Image
|
|
|
|
{
|
|
|
|
Evas_GL_Context *gc;
|
|
|
|
RGBA_Image *im;
|
|
|
|
Evas_GL_Texture *tex;
|
2006-08-18 07:45:26 -07:00
|
|
|
RGBA_Image_Loadopts load_opts;
|
2003-09-04 00:40:34 -07:00
|
|
|
int references;
|
2009-11-12 23:22:31 -08:00
|
|
|
// if im->im == NULL, it's a render-surface so these here are used
|
|
|
|
int w, h;
|
2006-12-17 07:48:52 -08:00
|
|
|
struct {
|
|
|
|
int space;
|
|
|
|
void *data;
|
|
|
|
unsigned char no_free : 1;
|
|
|
|
} cs;
|
2010-01-21 00:44:11 -08:00
|
|
|
|
|
|
|
struct {
|
|
|
|
void *data;
|
|
|
|
struct {
|
|
|
|
void (*bind) (void *data, void *image);
|
|
|
|
void (*unbind) (void *data, void *image);
|
|
|
|
void (*free) (void *data, void *image);
|
|
|
|
void *data;
|
|
|
|
} func;
|
2010-01-30 18:50:01 -08:00
|
|
|
int yinvert;
|
|
|
|
int target;
|
|
|
|
int mipmap;
|
2010-01-23 21:11:54 -08:00
|
|
|
unsigned char loose : 1;
|
2010-01-21 00:44:11 -08:00
|
|
|
} native;
|
|
|
|
|
2006-12-06 06:58:00 -08:00
|
|
|
unsigned char dirty : 1;
|
|
|
|
unsigned char cached : 1;
|
2009-11-12 23:22:31 -08:00
|
|
|
unsigned char alpha : 1;
|
|
|
|
unsigned char tex_only : 1;
|
2003-09-04 00:40:34 -07:00
|
|
|
};
|
|
|
|
|
2009-10-09 05:10:27 -07:00
|
|
|
struct _Evas_GL_Font_Texture
|
|
|
|
{
|
|
|
|
Evas_GL_Texture *tex;
|
|
|
|
};
|
2009-12-26 16:40:25 -08:00
|
|
|
|
2003-09-04 00:40:34 -07:00
|
|
|
struct _Evas_GL_Polygon
|
|
|
|
{
|
2008-10-21 09:31:05 -07:00
|
|
|
Eina_List *points;
|
2009-06-17 03:01:52 -07:00
|
|
|
Eina_Bool changed : 1;
|
2003-09-04 00:40:34 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
struct _Evas_GL_Polygon_Point
|
|
|
|
{
|
|
|
|
int x, y;
|
|
|
|
};
|
|
|
|
|
2009-12-26 16:40:25 -08:00
|
|
|
/*
|
2003-09-04 00:40:34 -07:00
|
|
|
struct _Evas_GL_Gradient
|
|
|
|
{
|
|
|
|
RGBA_Gradient *grad;
|
|
|
|
Evas_GL_Texture *tex;
|
2006-09-30 03:18:37 -07:00
|
|
|
int tw, th;
|
|
|
|
unsigned char changed : 1;
|
2003-09-04 00:40:34 -07:00
|
|
|
};
|
2009-10-10 06:24:15 -07:00
|
|
|
*/
|
2003-09-08 22:51:03 -07:00
|
|
|
|
2009-10-09 05:10:27 -07:00
|
|
|
extern Evas_GL_Program_Source shader_rect_frag_src;
|
|
|
|
extern Evas_GL_Program_Source shader_rect_vert_src;
|
|
|
|
extern Evas_GL_Program_Source shader_img_frag_src;
|
|
|
|
extern Evas_GL_Program_Source shader_img_vert_src;
|
|
|
|
extern Evas_GL_Program_Source shader_font_frag_src;
|
|
|
|
extern Evas_GL_Program_Source shader_font_vert_src;
|
2009-10-10 06:24:15 -07:00
|
|
|
extern Evas_GL_Program_Source shader_yuv_frag_src;
|
|
|
|
extern Evas_GL_Program_Source shader_yuv_vert_src;
|
2009-11-12 23:22:31 -08:00
|
|
|
extern Evas_GL_Program_Source shader_tex_frag_src;
|
|
|
|
extern Evas_GL_Program_Source shader_tex_vert_src;
|
2009-10-09 05:10:27 -07:00
|
|
|
|
|
|
|
void glerr(const char *file, const char *func, int line, const char *op);
|
|
|
|
|
2003-09-04 00:40:34 -07:00
|
|
|
Evas_GL_Context *evas_gl_common_context_new(void);
|
|
|
|
void evas_gl_common_context_free(Evas_GL_Context *gc);
|
|
|
|
void evas_gl_common_context_use(Evas_GL_Context *gc);
|
|
|
|
void evas_gl_common_context_resize(Evas_GL_Context *gc, int w, int h);
|
2009-11-12 23:22:31 -08:00
|
|
|
void evas_gl_common_context_target_surface_set(Evas_GL_Context *gc, Evas_GL_Image *surface);
|
2009-12-30 03:35:40 -08:00
|
|
|
|
|
|
|
void evas_gl_common_context_line_push(Evas_GL_Context *gc,
|
|
|
|
int x1, int y1, int x2, int y2,
|
|
|
|
int clip, int cx, int cy, int cw, int ch,
|
|
|
|
int r, int g, int b, int a);
|
2009-10-09 05:10:27 -07:00
|
|
|
void evas_gl_common_context_rectangle_push(Evas_GL_Context *gc,
|
|
|
|
int x, int y, int w, int h,
|
|
|
|
int r, int g, int b, int a);
|
|
|
|
void evas_gl_common_context_image_push(Evas_GL_Context *gc,
|
|
|
|
Evas_GL_Texture *tex,
|
|
|
|
double sx, double sy, double sw, double sh,
|
|
|
|
int x, int y, int w, int h,
|
|
|
|
int r, int g, int b, int a,
|
2010-01-21 00:44:11 -08:00
|
|
|
Eina_Bool smooth, Eina_Bool tex_only);
|
2009-10-09 05:10:27 -07:00
|
|
|
void evas_gl_common_context_font_push(Evas_GL_Context *gc,
|
|
|
|
Evas_GL_Texture *tex,
|
|
|
|
double sx, double sy, double sw, double sh,
|
|
|
|
int x, int y, int w, int h,
|
|
|
|
int r, int g, int b, int a);
|
2009-10-10 06:24:15 -07:00
|
|
|
void evas_gl_common_context_yuv_push(Evas_GL_Context *gc,
|
|
|
|
Evas_GL_Texture *tex,
|
|
|
|
double sx, double sy, double sw, double sh,
|
|
|
|
int x, int y, int w, int h,
|
|
|
|
int r, int g, int b, int a,
|
|
|
|
Eina_Bool smooth);
|
2009-11-11 03:39:25 -08:00
|
|
|
void evas_gl_common_context_image_map4_push(Evas_GL_Context *gc,
|
|
|
|
Evas_GL_Texture *tex,
|
|
|
|
RGBA_Map_Point *p,
|
|
|
|
int clip, int cx, int cy, int cw, int ch,
|
|
|
|
int r, int g, int b, int a,
|
2009-11-12 23:22:31 -08:00
|
|
|
Eina_Bool smooth,
|
|
|
|
Eina_Bool tex_only);
|
2009-10-09 05:10:27 -07:00
|
|
|
void evas_gl_common_context_flush(Evas_GL_Context *gc);
|
|
|
|
|
|
|
|
void evas_gl_common_shader_program_init(Evas_GL_Program *p,
|
|
|
|
Evas_GL_Program_Source *vert,
|
2009-10-12 06:19:55 -07:00
|
|
|
Evas_GL_Program_Source *frag,
|
|
|
|
const char *name);
|
2009-10-09 05:10:27 -07:00
|
|
|
|
|
|
|
void evas_gl_common_rect_draw(Evas_GL_Context *gc, int x, int y, int w, int h);
|
|
|
|
|
|
|
|
Evas_GL_Texture *evas_gl_common_texture_new(Evas_GL_Context *gc, RGBA_Image *im);
|
2010-01-23 21:11:54 -08:00
|
|
|
Evas_GL_Texture *evas_gl_common_texture_native_new(Evas_GL_Context *gc, int w, int h, int alpha, Evas_GL_Image *im);
|
2009-11-12 23:22:31 -08:00
|
|
|
Evas_GL_Texture *evas_gl_common_texture_render_new(Evas_GL_Context *gc, int w, int h, int alpha);
|
2009-10-09 05:10:27 -07:00
|
|
|
void evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im);
|
2003-09-04 00:40:34 -07:00
|
|
|
void evas_gl_common_texture_free(Evas_GL_Texture *tex);
|
2009-10-09 05:10:27 -07:00
|
|
|
Evas_GL_Texture *evas_gl_common_texture_alpha_new(Evas_GL_Context *gc, DATA8 *pixels, int w, int h, int fh);
|
|
|
|
void evas_gl_common_texture_alpha_update(Evas_GL_Texture *tex, DATA8 *pixels, int w, int h, int fh);
|
2009-10-10 06:24:15 -07:00
|
|
|
Evas_GL_Texture *evas_gl_common_texture_yuv_new(Evas_GL_Context *gc, DATA8 **rows, int w, int h);
|
|
|
|
void evas_gl_common_texture_yuv_update(Evas_GL_Texture *tex, DATA8 **rows, int w, int h);
|
|
|
|
|
2009-12-22 15:11:57 -08:00
|
|
|
Evas_GL_Image *evas_gl_common_image_load(Evas_GL_Context *gc, const char *file, const char *key, Evas_Image_Load_Opts *lo, int *error);
|
2008-04-11 17:32:30 -07:00
|
|
|
Evas_GL_Image *evas_gl_common_image_new_from_data(Evas_GL_Context *gc, int w, int h, DATA32 *data, int alpha, int cspace);
|
|
|
|
Evas_GL_Image *evas_gl_common_image_new_from_copied_data(Evas_GL_Context *gc, int w, int h, DATA32 *data, int alpha, int cspace);
|
2006-12-17 07:48:52 -08:00
|
|
|
Evas_GL_Image *evas_gl_common_image_new(Evas_GL_Context *gc, int w, int h, int alpha, int cspace);
|
2010-01-21 00:44:11 -08:00
|
|
|
void evas_gl_common_image_native_enable(Evas_GL_Image *im);
|
|
|
|
void evas_gl_common_image_native_disable(Evas_GL_Image *im);
|
2003-09-04 00:40:34 -07:00
|
|
|
void evas_gl_common_image_free(Evas_GL_Image *im);
|
2009-11-12 23:22:31 -08:00
|
|
|
Evas_GL_Image *evas_gl_common_image_surface_new(Evas_GL_Context *gc, int w, int h, int alpha);
|
2009-12-19 22:23:13 -08:00
|
|
|
void evas_gl_common_image_dirty(Evas_GL_Image *im, int x, int y, int w, int h);
|
2009-11-11 03:39:25 -08:00
|
|
|
void evas_gl_common_image_map4_draw(Evas_GL_Context *gc, Evas_GL_Image *im, RGBA_Map_Point *p, int smooth, int level);
|
2009-10-09 05:10:27 -07:00
|
|
|
void evas_gl_common_image_draw(Evas_GL_Context *gc, Evas_GL_Image *im, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh, int smooth);
|
|
|
|
|
2009-12-21 07:52:12 -08:00
|
|
|
void *evas_gl_font_texture_new(void *gc, RGBA_Font_Glyph *fg);
|
|
|
|
void evas_gl_font_texture_free(void *);
|
|
|
|
void evas_gl_font_texture_draw(void *gc, void *surface, void *dc, RGBA_Font_Glyph *fg, int x, int y);
|
2009-10-09 05:10:27 -07:00
|
|
|
|
2009-12-26 16:40:25 -08:00
|
|
|
Evas_GL_Polygon *evas_gl_common_poly_point_add(Evas_GL_Polygon *poly, int x, int y);
|
|
|
|
Evas_GL_Polygon *evas_gl_common_poly_points_clear(Evas_GL_Polygon *poly);
|
|
|
|
void evas_gl_common_poly_draw(Evas_GL_Context *gc, Evas_GL_Polygon *poly);
|
2009-10-09 05:10:27 -07:00
|
|
|
|
2009-12-30 03:35:40 -08:00
|
|
|
void evas_gl_common_line_draw(Evas_GL_Context *gc, int x1, int y1, int x2, int y2);
|
|
|
|
|
2009-11-21 02:51:51 -08:00
|
|
|
void (*glsym_glGenFramebuffers) (GLsizei a, GLuint *b);
|
|
|
|
void (*glsym_glBindFramebuffer) (GLenum a, GLuint b);
|
|
|
|
void (*glsym_glFramebufferTexture2D) (GLenum a, GLenum b, GLenum c, GLuint d, GLint e);
|
|
|
|
void (*glsym_glDeleteFramebuffers) (GLsizei a, const GLuint *b);
|
|
|
|
|
2003-09-04 00:40:34 -07:00
|
|
|
#endif
|