/*
* Copyright (c) 2005 Dan Gudmundsson
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* $Id: esdl_glext.c,v 1.9 2006/05/15 14:45:44 dgud Exp $
*
*/
#include <stdlib.h>
#include <string.h>
#ifdef FLAVOUR_WOGGLE
#include <woggle_driver.h>
#else
#include "esdl.h"
#endif
#ifndef APIENTRY
#define APIENTRY
#endif
#include "esdl_glext.h"
void egl_blendColor(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLclampf * red;
GLclampf * green;
GLclampf * blue;
GLclampf * alpha;
bp = egl_buff;
red = (GLclampf *) bp; bp += sizeof(GLclampf);
green = (GLclampf *) bp; bp += sizeof(GLclampf);
blue = (GLclampf *) bp; bp += sizeof(GLclampf);
alpha = (GLclampf *) bp;
esdl_glBlendColor(*red, *green, *blue, *alpha);
}
void egl_blendEquation(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * mode;
bp = egl_buff;
mode = (GLenum *) bp;
esdl_glBlendEquation(*mode);
}
void egl_drawRangeElements(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * mode;
GLuint * start;
GLuint * end;
GLsizei * count;
GLenum * type;
GLvoid * indices = NULL;
bp = egl_buff;
mode = (GLenum *) bp; bp += sizeof(GLenum);
start = (GLuint *) bp; bp += sizeof(GLuint);
end = (GLuint *) bp; bp += sizeof(GLuint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
type = (GLenum *) bp; bp += sizeof(GLenum);
indices = (GLvoid *) bp;
esdl_glDrawRangeElements(*mode, *start, *end, *count, *type, indices);
}
void egl_colorTable(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * internalformat;
GLsizei * width;
GLenum * format;
GLenum * type;
GLvoid * table = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
if(egl_sd->next_bin == 0) {
table = (GLvoid *) *(GLint *)bp;
} else {
table = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glColorTable(*target, *internalformat, *width, *format, *type, table);
sdl_free_binaries(egl_sd);
}
void egl_colorTableParameterfv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * pname;
GLfloat * params;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
params = (GLfloat *) bp;
esdl_glColorTableParameterfv(*target, *pname, params);
}
void egl_colorTableParameteriv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * pname;
GLint * params;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
params = (GLint *) bp;
esdl_glColorTableParameteriv(*target, *pname, params);
}
void egl_copyColorTable(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * internalformat;
GLint * x;
GLint * y;
GLsizei * width;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
x = (GLint *) bp; bp += sizeof(GLint);
y = (GLint *) bp; bp += sizeof(GLint);
width = (GLsizei *) bp;
esdl_glCopyColorTable(*target, *internalformat, *x, *y, *width);
}
void egl_getColorTable(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * format;
GLenum * type;
GLvoid * table = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
table = (GLvoid *) egl_sd->bin[0].base;
esdl_glGetColorTable(*target, *format, *type, table);
sdl_free_binaries(egl_sd);
}
void egl_getColorTableParameterfv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLfloat params[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetColorTableParameterfv(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLfloat) *4);
memcpy(bp, params, sizeof(GLfloat)*4);
bp += sizeof(GLfloat)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getColorTableParameteriv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLint params[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetColorTableParameteriv(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *4);
memcpy(bp, params, sizeof(GLint)*4);
bp += sizeof(GLint)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_colorSubTable(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLsizei * start;
GLsizei * count;
GLenum * format;
GLenum * type;
GLvoid * data = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
start = (GLsizei *) bp; bp += sizeof(GLsizei);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
if(egl_sd->next_bin == 0) {
data = (GLvoid *) *(GLint *)bp;
} else {
data = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glColorSubTable(*target, *start, *count, *format, *type, data);
sdl_free_binaries(egl_sd);
}
void egl_copyColorSubTable(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLsizei * start;
GLint * x;
GLint * y;
GLsizei * width;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
start = (GLsizei *) bp; bp += sizeof(GLsizei);
x = (GLint *) bp; bp += sizeof(GLint);
y = (GLint *) bp; bp += sizeof(GLint);
width = (GLsizei *) bp;
esdl_glCopyColorSubTable(*target, *start, *x, *y, *width);
}
void egl_convolutionFilter1D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * internalformat;
GLsizei * width;
GLenum * format;
GLenum * type;
GLvoid * image = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
if(egl_sd->next_bin == 0) {
image = (GLvoid *) *(GLint *)bp;
} else {
image = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glConvolutionFilter1D(*target, *internalformat, *width, *format, *type, image);
sdl_free_binaries(egl_sd);
}
void egl_convolutionFilter2D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * internalformat;
GLsizei * width;
GLsizei * height;
GLenum * format;
GLenum * type;
GLvoid * image = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp; bp += sizeof(GLsizei);
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
if(egl_sd->next_bin == 0) {
image = (GLvoid *) *(GLint *)bp;
} else {
image = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glConvolutionFilter2D(*target, *internalformat, *width, *height, *format, *type, image);
sdl_free_binaries(egl_sd);
}
void egl_convolutionParameterf(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * pname;
GLfloat * params;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
params = (GLfloat *) bp;
esdl_glConvolutionParameterf(*target, *pname, *params);
}
void egl_convolutionParameterfv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * pname;
GLfloat * params;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
bp += sizeof(int);
params = (GLfloat *) bp;
esdl_glConvolutionParameterfv(*target, *pname, params);
}
void egl_convolutionParameteri(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * pname;
GLint * params;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
params = (GLint *) bp;
esdl_glConvolutionParameteri(*target, *pname, *params);
}
void egl_convolutionParameteriv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * pname;
GLint * params;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
bp += sizeof(int);
params = (GLint *) bp;
esdl_glConvolutionParameteriv(*target, *pname, params);
}
void egl_copyConvolutionFilter1D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * internalformat;
GLint * x;
GLint * y;
GLsizei * width;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
x = (GLint *) bp; bp += sizeof(GLint);
y = (GLint *) bp; bp += sizeof(GLint);
width = (GLsizei *) bp;
esdl_glCopyConvolutionFilter1D(*target, *internalformat, *x, *y, *width);
}
void egl_copyConvolutionFilter2D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * internalformat;
GLint * x;
GLint * y;
GLsizei * width;
GLsizei * height;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
x = (GLint *) bp; bp += sizeof(GLint);
y = (GLint *) bp; bp += sizeof(GLint);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp;
esdl_glCopyConvolutionFilter2D(*target, *internalformat, *x, *y, *width, *height);
}
void egl_getConvolutionFilter(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * format;
GLenum * type;
GLvoid * image = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
image = (GLvoid *) egl_sd->bin[0].base;
esdl_glGetConvolutionFilter(*target, *format, *type, image);
sdl_free_binaries(egl_sd);
}
void egl_getConvolutionParameterfv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLfloat params[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetConvolutionParameterfv(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLfloat) *4);
memcpy(bp, params, sizeof(GLfloat)*4);
bp += sizeof(GLfloat)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getConvolutionParameteriv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLint params[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetConvolutionParameteriv(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *4);
memcpy(bp, params, sizeof(GLint)*4);
bp += sizeof(GLint)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getSeparableFilter(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * format;
GLenum * type;
GLvoid * row = NULL;
GLvoid * column = NULL;
GLvoid * span = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
row = (GLvoid *) egl_sd->bin[0].base;
column = (GLvoid *) egl_sd->bin[1].base;
span = (GLvoid *) egl_sd->bin[2].base;
esdl_glGetSeparableFilter(*target, *format, *type, row, column, span);
sdl_free_binaries(egl_sd);
}
void egl_separableFilter2D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * internalformat;
GLsizei * width;
GLsizei * height;
GLenum * format;
GLenum * type;
GLvoid * row = NULL;
GLvoid * column = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp; bp += sizeof(GLsizei);
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
if(egl_sd->next_bin == 0) {
row = (GLvoid *) *(GLint *)bp;
} else {
row = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
if(egl_sd->next_bin == 1) {
column = (GLvoid *) *(GLint *)bp;
} else {
column = (GLvoid *) egl_sd->bin[1].base;
};
bp += sizeof(GLint);
esdl_glSeparableFilter2D(*target, *internalformat, *width, *height, *format, *type, row, column);
sdl_free_binaries(egl_sd);
}
void egl_getHistogram(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLboolean * reset;
GLenum * format;
GLenum * type;
GLvoid * values = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
reset = (GLboolean *) bp; bp += sizeof(GLboolean);
bp += 3;
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
values = (GLvoid *) egl_sd->bin[0].base;
esdl_glGetHistogram(*target, *reset, *format, *type, values);
sdl_free_binaries(egl_sd);
}
void egl_getHistogramParameterfv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLfloat params[1];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetHistogramParameterfv(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLfloat) *1);
* (GLfloat *)bp = params[0]; bp += sizeof(GLfloat);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getHistogramParameteriv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLint params[1];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetHistogramParameteriv(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *1);
* (GLint *)bp = params[0]; bp += sizeof(GLint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getMinmax(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLboolean * reset;
GLenum * format;
GLenum * type;
GLvoid * values = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
reset = (GLboolean *) bp; bp += sizeof(GLboolean);
bp += 3;
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
values = (GLvoid *) egl_sd->bin[0].base;
esdl_glGetMinmax(*target, *reset, *format, *type, values);
sdl_free_binaries(egl_sd);
}
void egl_getMinmaxParameterfv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLfloat params[1];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetMinmaxParameterfv(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLfloat) *1);
* (GLfloat *)bp = params[0]; bp += sizeof(GLfloat);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getMinmaxParameteriv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLint params[1];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetMinmaxParameteriv(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *1);
* (GLint *)bp = params[0]; bp += sizeof(GLint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_histogram(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLsizei * width;
GLenum * internalformat;
GLboolean * sink;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
sink = (GLboolean *) bp;
esdl_glHistogram(*target, *width, *internalformat, *sink);
}
void egl_minmax(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * internalformat;
GLboolean * sink;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
sink = (GLboolean *) bp;
esdl_glMinmax(*target, *internalformat, *sink);
}
void egl_resetHistogram(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
bp = egl_buff;
target = (GLenum *) bp;
esdl_glResetHistogram(*target);
}
void egl_resetMinmax(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
bp = egl_buff;
target = (GLenum *) bp;
esdl_glResetMinmax(*target);
}
void egl_texImage3D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * level;
GLint * internalformat;
GLsizei * width;
GLsizei * height;
GLsizei * depth;
GLint * border;
GLenum * format;
GLenum * type;
GLvoid * pixels = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
level = (GLint *) bp; bp += sizeof(GLint);
internalformat = (GLint *) bp; bp += sizeof(GLint);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp; bp += sizeof(GLsizei);
depth = (GLsizei *) bp; bp += sizeof(GLsizei);
border = (GLint *) bp; bp += sizeof(GLint);
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
if(egl_sd->next_bin == 0) {
pixels = (GLvoid *) *(GLint *)bp;
} else {
pixels = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glTexImage3D(*target, *level, *internalformat, *width, *height, *depth, *border, *format, *type, pixels);
sdl_free_binaries(egl_sd);
}
void egl_texSubImage3D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * level;
GLint * xoffset;
GLint * yoffset;
GLint * zoffset;
GLsizei * width;
GLsizei * height;
GLsizei * depth;
GLenum * format;
GLenum * type;
GLvoid * pixels = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
level = (GLint *) bp; bp += sizeof(GLint);
xoffset = (GLint *) bp; bp += sizeof(GLint);
yoffset = (GLint *) bp; bp += sizeof(GLint);
zoffset = (GLint *) bp; bp += sizeof(GLint);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp; bp += sizeof(GLsizei);
depth = (GLsizei *) bp; bp += sizeof(GLsizei);
format = (GLenum *) bp; bp += sizeof(GLenum);
type = (GLenum *) bp; bp += sizeof(GLenum);
if(egl_sd->next_bin == 0) {
pixels = (GLvoid *) *(GLint *)bp;
} else {
pixels = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glTexSubImage3D(*target, *level, *xoffset, *yoffset, *zoffset, *width, *height, *depth, *format, *type, pixels);
sdl_free_binaries(egl_sd);
}
void egl_copyTexSubImage3D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * level;
GLint * xoffset;
GLint * yoffset;
GLint * zoffset;
GLint * x;
GLint * y;
GLsizei * width;
GLsizei * height;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
level = (GLint *) bp; bp += sizeof(GLint);
xoffset = (GLint *) bp; bp += sizeof(GLint);
yoffset = (GLint *) bp; bp += sizeof(GLint);
zoffset = (GLint *) bp; bp += sizeof(GLint);
x = (GLint *) bp; bp += sizeof(GLint);
y = (GLint *) bp; bp += sizeof(GLint);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp;
esdl_glCopyTexSubImage3D(*target, *level, *xoffset, *yoffset, *zoffset, *x, *y, *width, *height);
}
void egl_activeTexture(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * texture;
bp = egl_buff;
texture = (GLenum *) bp;
esdl_glActiveTexture(*texture);
}
void egl_clientActiveTexture(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * texture;
bp = egl_buff;
texture = (GLenum *) bp;
esdl_glClientActiveTexture(*texture);
}
void egl_multiTexCoord1dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLdouble v[1];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
memcpy(v,bp,sizeof(GLdouble)*1);
esdl_glMultiTexCoord1dv(*target, v);
}
void egl_multiTexCoord1fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLfloat * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLfloat *) bp;
esdl_glMultiTexCoord1fv(*target, v);
}
void egl_multiTexCoord1iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLint *) bp;
esdl_glMultiTexCoord1iv(*target, v);
}
void egl_multiTexCoord1sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLshort * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLshort *) bp;
esdl_glMultiTexCoord1sv(*target, v);
}
void egl_multiTexCoord2dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLdouble v[2];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
memcpy(v,bp,sizeof(GLdouble)*2);
esdl_glMultiTexCoord2dv(*target, v);
}
void egl_multiTexCoord2fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLfloat * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLfloat *) bp;
esdl_glMultiTexCoord2fv(*target, v);
}
void egl_multiTexCoord2iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLint *) bp;
esdl_glMultiTexCoord2iv(*target, v);
}
void egl_multiTexCoord2sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLshort * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLshort *) bp;
esdl_glMultiTexCoord2sv(*target, v);
}
void egl_multiTexCoord3dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLdouble v[3];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
memcpy(v,bp,sizeof(GLdouble)*3);
esdl_glMultiTexCoord3dv(*target, v);
}
void egl_multiTexCoord3fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLfloat * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLfloat *) bp;
esdl_glMultiTexCoord3fv(*target, v);
}
void egl_multiTexCoord3iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLint *) bp;
esdl_glMultiTexCoord3iv(*target, v);
}
void egl_multiTexCoord3sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLshort * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLshort *) bp;
esdl_glMultiTexCoord3sv(*target, v);
}
void egl_multiTexCoord4dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLdouble v[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
memcpy(v,bp,sizeof(GLdouble)*4);
esdl_glMultiTexCoord4dv(*target, v);
}
void egl_multiTexCoord4fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLfloat * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLfloat *) bp;
esdl_glMultiTexCoord4fv(*target, v);
}
void egl_multiTexCoord4iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLint *) bp;
esdl_glMultiTexCoord4iv(*target, v);
}
void egl_multiTexCoord4sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLshort * v;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
v = (GLshort *) bp;
esdl_glMultiTexCoord4sv(*target, v);
}
void egl_loadTransposeMatrixf(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLfloat * m;
bp = egl_buff;
m = (GLfloat *) bp;
esdl_glLoadTransposeMatrixf(m);
}
void egl_loadTransposeMatrixd(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLdouble m[16];
bp = egl_buff;
memcpy(m,bp,sizeof(GLdouble)*16);
esdl_glLoadTransposeMatrixd(m);
}
void egl_multTransposeMatrixf(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLfloat * m;
bp = egl_buff;
m = (GLfloat *) bp;
esdl_glMultTransposeMatrixf(m);
}
void egl_multTransposeMatrixd(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLdouble m[16];
bp = egl_buff;
memcpy(m,bp,sizeof(GLdouble)*16);
esdl_glMultTransposeMatrixd(m);
}
void egl_sampleCoverage(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLclampf * value;
GLboolean * invert;
bp = egl_buff;
value = (GLclampf *) bp; bp += sizeof(GLclampf);
invert = (GLboolean *) bp;
esdl_glSampleCoverage(*value, *invert);
}
void egl_compressedTexImage3D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * level;
GLenum * internalformat;
GLsizei * width;
GLsizei * height;
GLsizei * depth;
GLint * border;
GLsizei * imageSize;
GLvoid * data = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
level = (GLint *) bp; bp += sizeof(GLint);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp; bp += sizeof(GLsizei);
depth = (GLsizei *) bp; bp += sizeof(GLsizei);
border = (GLint *) bp; bp += sizeof(GLint);
imageSize = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
data = (GLvoid *) *(GLint *)bp;
} else {
data = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glCompressedTexImage3D(*target, *level, *internalformat, *width, *height, *depth, *border, *imageSize, data);
sdl_free_binaries(egl_sd);
}
void egl_compressedTexImage2D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * level;
GLenum * internalformat;
GLsizei * width;
GLsizei * height;
GLint * border;
GLsizei * imageSize;
GLvoid * data = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
level = (GLint *) bp; bp += sizeof(GLint);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp; bp += sizeof(GLsizei);
border = (GLint *) bp; bp += sizeof(GLint);
imageSize = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
data = (GLvoid *) *(GLint *)bp;
} else {
data = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glCompressedTexImage2D(*target, *level, *internalformat, *width, *height, *border, *imageSize, data);
sdl_free_binaries(egl_sd);
}
void egl_compressedTexImage1D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * level;
GLenum * internalformat;
GLsizei * width;
GLint * border;
GLsizei * imageSize;
GLvoid * data = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
level = (GLint *) bp; bp += sizeof(GLint);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
border = (GLint *) bp; bp += sizeof(GLint);
imageSize = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
data = (GLvoid *) *(GLint *)bp;
} else {
data = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glCompressedTexImage1D(*target, *level, *internalformat, *width, *border, *imageSize, data);
sdl_free_binaries(egl_sd);
}
void egl_compressedTexSubImage3D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * level;
GLint * xoffset;
GLint * yoffset;
GLint * zoffset;
GLsizei * width;
GLsizei * height;
GLsizei * depth;
GLenum * format;
GLsizei * imageSize;
GLvoid * data = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
level = (GLint *) bp; bp += sizeof(GLint);
xoffset = (GLint *) bp; bp += sizeof(GLint);
yoffset = (GLint *) bp; bp += sizeof(GLint);
zoffset = (GLint *) bp; bp += sizeof(GLint);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp; bp += sizeof(GLsizei);
depth = (GLsizei *) bp; bp += sizeof(GLsizei);
format = (GLenum *) bp; bp += sizeof(GLenum);
imageSize = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
data = (GLvoid *) *(GLint *)bp;
} else {
data = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glCompressedTexSubImage3D(*target, *level, *xoffset, *yoffset, *zoffset, *width, *height, *depth, *format, *imageSize, data);
sdl_free_binaries(egl_sd);
}
void egl_compressedTexSubImage2D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * level;
GLint * xoffset;
GLint * yoffset;
GLsizei * width;
GLsizei * height;
GLenum * format;
GLsizei * imageSize;
GLvoid * data = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
level = (GLint *) bp; bp += sizeof(GLint);
xoffset = (GLint *) bp; bp += sizeof(GLint);
yoffset = (GLint *) bp; bp += sizeof(GLint);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp; bp += sizeof(GLsizei);
format = (GLenum *) bp; bp += sizeof(GLenum);
imageSize = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
data = (GLvoid *) *(GLint *)bp;
} else {
data = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glCompressedTexSubImage2D(*target, *level, *xoffset, *yoffset, *width, *height, *format, *imageSize, data);
sdl_free_binaries(egl_sd);
}
void egl_compressedTexSubImage1D(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * level;
GLint * xoffset;
GLsizei * width;
GLenum * format;
GLsizei * imageSize;
GLvoid * data = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
level = (GLint *) bp; bp += sizeof(GLint);
xoffset = (GLint *) bp; bp += sizeof(GLint);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
format = (GLenum *) bp; bp += sizeof(GLenum);
imageSize = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
data = (GLvoid *) *(GLint *)bp;
} else {
data = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glCompressedTexSubImage1D(*target, *level, *xoffset, *width, *format, *imageSize, data);
sdl_free_binaries(egl_sd);
}
void egl_getCompressedTexImage(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLint * level;
GLvoid * img = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
level = (GLint *) bp; bp += sizeof(GLint);
img = (GLvoid *) egl_sd->bin[0].base;
esdl_glGetCompressedTexImage(*target, *level, img);
sdl_free_binaries(egl_sd);
}
void egl_blendFuncSeparate(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * sfactorRGB;
GLenum * dfactorRGB;
GLenum * sfactorAlpha;
GLenum * dfactorAlpha;
bp = egl_buff;
sfactorRGB = (GLenum *) bp; bp += sizeof(GLenum);
dfactorRGB = (GLenum *) bp; bp += sizeof(GLenum);
sfactorAlpha = (GLenum *) bp; bp += sizeof(GLenum);
dfactorAlpha = (GLenum *) bp;
esdl_glBlendFuncSeparate(*sfactorRGB, *dfactorRGB, *sfactorAlpha, *dfactorAlpha);
}
void egl_fogCoordf(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLfloat * coord;
bp = egl_buff;
coord = (GLfloat *) bp;
esdl_glFogCoordf(*coord);
}
void egl_fogCoordfv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLfloat * coord;
bp = egl_buff;
coord = (GLfloat *) bp;
esdl_glFogCoordfv(coord);
}
void egl_fogCoordd(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLdouble coord;
bp = egl_buff;
memcpy(&coord, bp, sizeof(GLdouble));
esdl_glFogCoordd(coord);
}
void egl_fogCoorddv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLdouble coord[1];
bp = egl_buff;
memcpy(coord,bp,sizeof(GLdouble)*1);
esdl_glFogCoorddv(coord);
}
void egl_fogCoordPointer(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * type;
GLsizei * stride;
GLvoid * pointer = NULL;
bp = egl_buff;
type = (GLenum *) bp; bp += sizeof(GLenum);
stride = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
pointer = (GLvoid *) *(GLint *)bp;
} else {
pointer = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glFogCoordPointer(*type, *stride, pointer);
sdl_free_binaries(egl_sd);
}
void egl_multiDrawArrays(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * mode;
GLint * first = NULL;
GLsizei * count = NULL;
GLsizei * primcount;
bp = egl_buff;
primcount = (GLsizei *) bp; bp += sizeof(GLsizei);
mode = (GLenum *) bp; bp += sizeof(GLenum);
first = (GLint *) bp;
bp += sizeof(GLint)*(*primcount);
count = (GLsizei *) bp;
esdl_glMultiDrawArrays(*mode, first, count, *primcount);
}
void egl_pointParameterf(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * pname;
GLfloat * param;
bp = egl_buff;
pname = (GLenum *) bp; bp += sizeof(GLenum);
param = (GLfloat *) bp;
esdl_glPointParameterf(*pname, *param);
}
void egl_pointParameterfv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * pname;
GLfloat * params;
bp = egl_buff;
pname = (GLenum *) bp; bp += sizeof(GLenum);
params = (GLfloat *) bp;
esdl_glPointParameterfv(*pname, params);
}
void egl_pointParameteri(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * pname;
GLint * param;
bp = egl_buff;
pname = (GLenum *) bp; bp += sizeof(GLenum);
param = (GLint *) bp;
esdl_glPointParameteri(*pname, *param);
}
void egl_pointParameteriv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * pname;
GLint * params;
bp = egl_buff;
pname = (GLenum *) bp; bp += sizeof(GLenum);
params = (GLint *) bp;
esdl_glPointParameteriv(*pname, params);
}
void egl_secondaryColor3bv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLbyte * v;
bp = egl_buff;
v = (GLbyte *) bp;
esdl_glSecondaryColor3bv(v);
}
void egl_secondaryColor3dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLdouble v[3];
bp = egl_buff;
memcpy(v,bp,sizeof(GLdouble)*3);
esdl_glSecondaryColor3dv(v);
}
void egl_secondaryColor3fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLfloat * v;
bp = egl_buff;
v = (GLfloat *) bp;
esdl_glSecondaryColor3fv(v);
}
void egl_secondaryColor3iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * v;
bp = egl_buff;
v = (GLint *) bp;
esdl_glSecondaryColor3iv(v);
}
void egl_secondaryColor3sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLshort * v;
bp = egl_buff;
v = (GLshort *) bp;
esdl_glSecondaryColor3sv(v);
}
void egl_secondaryColor3ubv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLubyte * v;
bp = egl_buff;
v = (GLubyte *) bp;
esdl_glSecondaryColor3ubv(v);
}
void egl_secondaryColor3uiv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * v;
bp = egl_buff;
v = (GLuint *) bp;
esdl_glSecondaryColor3uiv(v);
}
void egl_secondaryColor3usv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLushort * v;
bp = egl_buff;
v = (GLushort *) bp;
esdl_glSecondaryColor3usv(v);
}
void egl_secondaryColorPointer(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLenum * type;
GLsizei * stride;
GLvoid * pointer = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
type = (GLenum *) bp; bp += sizeof(GLenum);
stride = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
pointer = (GLvoid *) *(GLint *)bp;
} else {
pointer = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glSecondaryColorPointer(*size, *type, *stride, pointer);
sdl_free_binaries(egl_sd);
}
void egl_windowPos2dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLdouble v[2];
bp = egl_buff;
memcpy(v,bp,sizeof(GLdouble)*2);
esdl_glWindowPos2dv(v);
}
void egl_windowPos2fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLfloat * v;
bp = egl_buff;
v = (GLfloat *) bp;
esdl_glWindowPos2fv(v);
}
void egl_windowPos2iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * v;
bp = egl_buff;
v = (GLint *) bp;
esdl_glWindowPos2iv(v);
}
void egl_windowPos2sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLshort * v;
bp = egl_buff;
v = (GLshort *) bp;
esdl_glWindowPos2sv(v);
}
void egl_windowPos3dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLdouble v[3];
bp = egl_buff;
memcpy(v,bp,sizeof(GLdouble)*3);
esdl_glWindowPos3dv(v);
}
void egl_windowPos3fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLfloat * v;
bp = egl_buff;
v = (GLfloat *) bp;
esdl_glWindowPos3fv(v);
}
void egl_windowPos3iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * v;
bp = egl_buff;
v = (GLint *) bp;
esdl_glWindowPos3iv(v);
}
void egl_windowPos3sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLshort * v;
bp = egl_buff;
v = (GLshort *) bp;
esdl_glWindowPos3sv(v);
}
void egl_genQueries(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLsizei * n;
GLuint * ids = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
ids = (GLuint*) malloc(sizeof(GLuint)*(*n));
esdl_glGenQueries(*n, ids);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLuint) * (*n));
memcpy(bp, ids, sizeof(GLuint)*(*n));
bp += sizeof(GLuint)*(*n);
free(ids);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_deleteQueries(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLsizei * n;
GLuint * ids = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
ids = (GLuint *) bp;
esdl_glDeleteQueries(*n, ids);
}
void egl_isQuery(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLboolean egl_res;
GLuint * id;
bp = egl_buff;
id = (GLuint *) bp;
egl_res = esdl_glIsQuery(*id);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLboolean) );
* (GLboolean *) bp = egl_res;
bp += sizeof(GLboolean);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_beginQuery(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLuint * id;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
id = (GLuint *) bp;
esdl_glBeginQuery(*target, *id);
}
void egl_endQuery(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
bp = egl_buff;
target = (GLenum *) bp;
esdl_glEndQuery(*target);
}
void egl_getQueryiv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLint params[1];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetQueryiv(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *1);
* (GLint *)bp = params[0]; bp += sizeof(GLint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getQueryObjectiv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * id;
GLenum * pname;
GLint params[1];
bp = egl_buff;
id = (GLuint *) bp; bp += sizeof(GLuint);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetQueryObjectiv(*id, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *1);
* (GLint *)bp = params[0]; bp += sizeof(GLint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getQueryObjectuiv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * id;
GLenum * pname;
GLuint params[1];
bp = egl_buff;
id = (GLuint *) bp; bp += sizeof(GLuint);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetQueryObjectuiv(*id, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLuint) *1);
* (GLuint *)bp = params[0]; bp += sizeof(GLuint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_bindBuffer(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLuint * buffer;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
buffer = (GLuint *) bp;
esdl_glBindBuffer(*target, *buffer);
}
void egl_deleteBuffers(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLsizei * n;
GLuint * buffers = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
buffers = (GLuint *) bp;
esdl_glDeleteBuffers(*n, buffers);
}
void egl_genBuffers(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLsizei * n;
GLuint * buffers = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
buffers = (GLuint*) malloc(sizeof(GLuint)*(*n));
esdl_glGenBuffers(*n, buffers);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLuint) * (*n));
memcpy(bp, buffers, sizeof(GLuint)*(*n));
bp += sizeof(GLuint)*(*n);
free(buffers);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_isBuffer(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLboolean egl_res;
GLuint * buffer;
bp = egl_buff;
buffer = (GLuint *) bp;
egl_res = esdl_glIsBuffer(*buffer);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLboolean) );
* (GLboolean *) bp = egl_res;
bp += sizeof(GLboolean);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_bufferData(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLsizeiptr * size;
GLvoid * data = NULL;
GLenum * usage;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
size = (GLsizeiptr *) bp; bp += sizeof(GLsizeiptr);
if(egl_sd->next_bin == 0) {
data = (GLvoid *) *(GLint *)bp;
} else {
data = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
usage = (GLenum *) bp;
esdl_glBufferData(*target, *size, data, *usage);
sdl_free_binaries(egl_sd);
}
void egl_bufferSubData(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLintptr * offset;
GLsizeiptr * size;
GLvoid * data = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
offset = (GLintptr *) bp; bp += sizeof(GLintptr);
size = (GLsizeiptr *) bp; bp += sizeof(GLsizeiptr);
if(egl_sd->next_bin == 0) {
data = (GLvoid *) *(GLint *)bp;
} else {
data = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glBufferSubData(*target, *offset, *size, data);
sdl_free_binaries(egl_sd);
}
void egl_getBufferSubData(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLintptr * offset;
GLsizeiptr * size;
GLvoid * data = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
offset = (GLintptr *) bp; bp += sizeof(GLintptr);
size = (GLsizeiptr *) bp; bp += sizeof(GLsizeiptr);
data = (GLvoid *) egl_sd->bin[0].base;
esdl_glGetBufferSubData(*target, *offset, *size, data);
sdl_free_binaries(egl_sd);
}
void egl_unmapBuffer(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLboolean egl_res;
GLenum * target;
bp = egl_buff;
target = (GLenum *) bp;
egl_res = esdl_glUnmapBuffer(*target);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLboolean) );
* (GLboolean *) bp = egl_res;
bp += sizeof(GLboolean);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getBufferParameteriv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLint params[1];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetBufferParameteriv(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *1);
* (GLint *)bp = params[0]; bp += sizeof(GLint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getBufferPointerv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLvoid *params = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetBufferPointerv(*target, *pname, ¶ms);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLvoid*));
putPointer(bp, params);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_blendEquationSeparate(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * modeRGB;
GLenum * modeAlpha;
bp = egl_buff;
modeRGB = (GLenum *) bp; bp += sizeof(GLenum);
modeAlpha = (GLenum *) bp;
esdl_glBlendEquationSeparate(*modeRGB, *modeAlpha);
}
void egl_drawBuffers(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLsizei * n;
GLenum * bufs = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
bufs = (GLenum *) bp;
esdl_glDrawBuffers(*n, bufs);
}
void egl_stencilOpSeparate(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * face;
GLenum * sfail;
GLenum * dpfail;
GLenum * dppass;
bp = egl_buff;
face = (GLenum *) bp; bp += sizeof(GLenum);
sfail = (GLenum *) bp; bp += sizeof(GLenum);
dpfail = (GLenum *) bp; bp += sizeof(GLenum);
dppass = (GLenum *) bp;
esdl_glStencilOpSeparate(*face, *sfail, *dpfail, *dppass);
}
void egl_stencilFuncSeparate(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * frontfunc;
GLenum * backfunc;
GLint * ref;
GLuint * mask;
bp = egl_buff;
frontfunc = (GLenum *) bp; bp += sizeof(GLenum);
backfunc = (GLenum *) bp; bp += sizeof(GLenum);
ref = (GLint *) bp; bp += sizeof(GLint);
mask = (GLuint *) bp;
esdl_glStencilFuncSeparate(*frontfunc, *backfunc, *ref, *mask);
}
void egl_stencilMaskSeparate(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * face;
GLuint * mask;
bp = egl_buff;
face = (GLenum *) bp; bp += sizeof(GLenum);
mask = (GLuint *) bp;
esdl_glStencilMaskSeparate(*face, *mask);
}
void egl_attachShader(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * program;
GLuint * shader;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
shader = (GLuint *) bp;
esdl_glAttachShader(*program, *shader);
}
void egl_bindAttribLocation(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * program;
GLuint * index;
GLchar * name = NULL;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
index = (GLuint *) bp; bp += sizeof(GLuint);
if(egl_sd->next_bin == 0) {
name = (GLchar *) *(GLint *)bp;
} else {
name = (GLchar *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glBindAttribLocation(*program, *index, name);
sdl_free_binaries(egl_sd);
}
void egl_compileShader(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * shader;
bp = egl_buff;
shader = (GLuint *) bp;
esdl_glCompileShader(*shader);
}
void egl_createProgram(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint egl_res;
bp = egl_buff;
egl_res = esdl_glCreateProgram();
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLuint) );
* (GLuint *) bp = egl_res;
bp += sizeof(GLuint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_createShader(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint egl_res;
GLenum * type;
bp = egl_buff;
type = (GLenum *) bp;
egl_res = esdl_glCreateShader(*type);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLuint) );
* (GLuint *) bp = egl_res;
bp += sizeof(GLuint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_deleteProgram(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * program;
bp = egl_buff;
program = (GLuint *) bp;
esdl_glDeleteProgram(*program);
}
void egl_deleteShader(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * shader;
bp = egl_buff;
shader = (GLuint *) bp;
esdl_glDeleteShader(*shader);
}
void egl_detachShader(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * program;
GLuint * shader;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
shader = (GLuint *) bp;
esdl_glDetachShader(*program, *shader);
}
void egl_disableVertexAttribArray(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
bp = egl_buff;
index = (GLuint *) bp;
esdl_glDisableVertexAttribArray(*index);
}
void egl_enableVertexAttribArray(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
bp = egl_buff;
index = (GLuint *) bp;
esdl_glEnableVertexAttribArray(*index);
}
void egl_getActiveAttrib(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * program;
GLuint * index;
GLsizei * bufSize;
GLsizei length[1];
GLint size[1];
GLenum type[1];
GLchar * name = NULL;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
index = (GLuint *) bp; bp += sizeof(GLuint);
bufSize = (GLsizei *) bp; bp += sizeof(GLsizei);
name = (GLchar*) malloc(sizeof(GLchar)*(*bufSize));
esdl_glGetActiveAttrib(*program, *index, *bufSize, length, size, type, name);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLsizei) *1+ sizeof(GLint) *1+ sizeof(GLenum) *1+ sizeof(GLchar) * (*length));
* (GLsizei *)bp = length[0]; bp += sizeof(GLsizei);
* (GLint *)bp = size[0]; bp += sizeof(GLint);
* (GLenum *)bp = type[0]; bp += sizeof(GLenum);
memcpy(bp, name, sizeof(GLchar)*(*length));
bp += sizeof(GLchar)*(*length);
free(name);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getActiveUniform(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * program;
GLuint * index;
GLsizei * bufSize;
GLsizei length[1];
GLint size[1];
GLenum type[1];
GLchar * name = NULL;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
index = (GLuint *) bp; bp += sizeof(GLuint);
bufSize = (GLsizei *) bp; bp += sizeof(GLsizei);
name = (GLchar*) malloc(sizeof(GLchar)*(*bufSize));
esdl_glGetActiveUniform(*program, *index, *bufSize, length, size, type, name);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLsizei) *1+ sizeof(GLint) *1+ sizeof(GLenum) *1+ sizeof(GLchar) * (*length));
* (GLsizei *)bp = length[0]; bp += sizeof(GLsizei);
* (GLint *)bp = size[0]; bp += sizeof(GLint);
* (GLenum *)bp = type[0]; bp += sizeof(GLenum);
memcpy(bp, name, sizeof(GLchar)*(*length));
bp += sizeof(GLchar)*(*length);
free(name);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getAttachedShaders(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * program;
GLsizei * maxCount;
GLsizei count[1];
GLuint * obj = NULL;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
maxCount = (GLsizei *) bp; bp += sizeof(GLsizei);
obj = (GLuint*) malloc(sizeof(GLuint)*(*maxCount));
esdl_glGetAttachedShaders(*program, *maxCount, count, obj);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLsizei) *1+ sizeof(GLuint) * (*count));
* (GLsizei *)bp = count[0]; bp += sizeof(GLsizei);
memcpy(bp, obj, sizeof(GLuint)*(*count));
bp += sizeof(GLuint)*(*count);
free(obj);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getAttribLocation(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLint egl_res;
GLuint * program;
GLchar * name = NULL;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
if(egl_sd->next_bin == 0) {
name = (GLchar *) *(GLint *)bp;
} else {
name = (GLchar *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
egl_res = esdl_glGetAttribLocation(*program, name);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) );
* (GLint *) bp = egl_res;
bp += sizeof(GLint);
sdl_free_binaries(egl_sd);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getProgramiv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * program;
GLenum * pname;
GLint params[1];
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetProgramiv(*program, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *1);
* (GLint *)bp = params[0]; bp += sizeof(GLint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getProgramInfoLog(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * program;
GLsizei * bufSize;
GLsizei length[1];
GLchar * infoLog = NULL;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
bufSize = (GLsizei *) bp; bp += sizeof(GLsizei);
infoLog = (GLchar*) malloc(sizeof(GLchar)*(*bufSize));
esdl_glGetProgramInfoLog(*program, *bufSize, length, infoLog);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLsizei) *1+ sizeof(GLchar) * (*length));
* (GLsizei *)bp = length[0]; bp += sizeof(GLsizei);
memcpy(bp, infoLog, sizeof(GLchar)*(*length));
bp += sizeof(GLchar)*(*length);
free(infoLog);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getShaderiv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * shader;
GLenum * pname;
GLint params[1];
bp = egl_buff;
shader = (GLuint *) bp; bp += sizeof(GLuint);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetShaderiv(*shader, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *1);
* (GLint *)bp = params[0]; bp += sizeof(GLint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getShaderInfoLog(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * shader;
GLsizei * bufSize;
GLsizei length[1];
GLchar * infoLog = NULL;
bp = egl_buff;
shader = (GLuint *) bp; bp += sizeof(GLuint);
bufSize = (GLsizei *) bp; bp += sizeof(GLsizei);
infoLog = (GLchar*) malloc(sizeof(GLchar)*(*bufSize));
esdl_glGetShaderInfoLog(*shader, *bufSize, length, infoLog);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLsizei) *1+ sizeof(GLchar) * (*length));
* (GLsizei *)bp = length[0]; bp += sizeof(GLsizei);
memcpy(bp, infoLog, sizeof(GLchar)*(*length));
bp += sizeof(GLchar)*(*length);
free(infoLog);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getShaderSource(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * shader;
GLsizei * bufSize;
GLsizei length[1];
GLchar * source = NULL;
bp = egl_buff;
shader = (GLuint *) bp; bp += sizeof(GLuint);
bufSize = (GLsizei *) bp; bp += sizeof(GLsizei);
source = (GLchar*) malloc(sizeof(GLchar)*(*bufSize));
esdl_glGetShaderSource(*shader, *bufSize, length, source);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLsizei) *1+ sizeof(GLchar) * (*length));
* (GLsizei *)bp = length[0]; bp += sizeof(GLsizei);
memcpy(bp, source, sizeof(GLchar)*(*length));
bp += sizeof(GLchar)*(*length);
free(source);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getUniformLocation(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLint egl_res;
GLuint * program;
GLchar * name = NULL;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
if(egl_sd->next_bin == 0) {
name = (GLchar *) *(GLint *)bp;
} else {
name = (GLchar *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
egl_res = esdl_glGetUniformLocation(*program, name);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) );
* (GLint *) bp = egl_res;
bp += sizeof(GLint);
sdl_free_binaries(egl_sd);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getUniformfv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * program;
GLint * location;
GLvoid * params = NULL;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
location = (GLint *) bp; bp += sizeof(GLint);
params = (GLfloat *) egl_sd->bin[0].base;
esdl_glGetUniformfv(*program, *location, params);
sdl_free_binaries(egl_sd);
}
void egl_getUniformiv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * program;
GLint * location;
GLvoid * params = NULL;
bp = egl_buff;
program = (GLuint *) bp; bp += sizeof(GLuint);
location = (GLint *) bp; bp += sizeof(GLint);
params = (GLint *) egl_sd->bin[0].base;
esdl_glGetUniformiv(*program, *location, params);
sdl_free_binaries(egl_sd);
}
void egl_getVertexAttribdv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * index;
GLenum * pname;
GLdouble params[4];
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetVertexAttribdv(*index, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLdouble) *4);
memcpy(bp, params, sizeof(GLdouble)*4);
bp += sizeof(GLdouble)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getVertexAttribfv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * index;
GLenum * pname;
GLfloat params[4];
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetVertexAttribfv(*index, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLfloat) *4);
memcpy(bp, params, sizeof(GLfloat)*4);
bp += sizeof(GLfloat)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getVertexAttribiv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * index;
GLenum * pname;
GLint params[4];
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetVertexAttribiv(*index, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *4);
memcpy(bp, params, sizeof(GLint)*4);
bp += sizeof(GLint)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getVertexAttribPointerv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLuint * index;
GLenum * pname;
GLvoid *pointer = NULL;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetVertexAttribPointerv(*index, *pname, &pointer);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLvoid*));
putPointer(bp, pointer);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_isProgram(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLboolean egl_res;
GLuint * program;
bp = egl_buff;
program = (GLuint *) bp;
egl_res = esdl_glIsProgram(*program);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLboolean) );
* (GLboolean *) bp = egl_res;
bp += sizeof(GLboolean);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_isShader(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLboolean egl_res;
GLuint * shader;
bp = egl_buff;
shader = (GLuint *) bp;
egl_res = esdl_glIsShader(*shader);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLboolean) );
* (GLboolean *) bp = egl_res;
bp += sizeof(GLboolean);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_linkProgram(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * program;
bp = egl_buff;
program = (GLuint *) bp;
esdl_glLinkProgram(*program);
}
void egl_shaderSource(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * shader;
GLsizei * count;
const GLchar* *string;
int index;
GLint * length = NULL;
bp = egl_buff;
shader = (GLuint *) bp; bp += sizeof(GLuint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
string = (const GLchar* *) malloc(sizeof(GLchar*)*(*count));
for(index=0; index < *count; index++)
string[index] = (GLchar *) egl_sd->bin[index+0].base;
length = (GLint *) bp;
esdl_glShaderSource(*shader, *count, string, length);
sdl_free_binaries(egl_sd);
}
void egl_useProgram(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * program;
bp = egl_buff;
program = (GLuint *) bp;
esdl_glUseProgram(*program);
}
void egl_uniform1f(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLfloat * v0;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
v0 = (GLfloat *) bp;
esdl_glUniform1f(*location, *v0);
}
void egl_uniform2f(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLfloat * v0;
GLfloat * v1;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
v0 = (GLfloat *) bp; bp += sizeof(GLfloat);
v1 = (GLfloat *) bp;
esdl_glUniform2f(*location, *v0, *v1);
}
void egl_uniform3f(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLfloat * v0;
GLfloat * v1;
GLfloat * v2;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
v0 = (GLfloat *) bp; bp += sizeof(GLfloat);
v1 = (GLfloat *) bp; bp += sizeof(GLfloat);
v2 = (GLfloat *) bp;
esdl_glUniform3f(*location, *v0, *v1, *v2);
}
void egl_uniform4f(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLfloat * v0;
GLfloat * v1;
GLfloat * v2;
GLfloat * v3;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
v0 = (GLfloat *) bp; bp += sizeof(GLfloat);
v1 = (GLfloat *) bp; bp += sizeof(GLfloat);
v2 = (GLfloat *) bp; bp += sizeof(GLfloat);
v3 = (GLfloat *) bp;
esdl_glUniform4f(*location, *v0, *v1, *v2, *v3);
}
void egl_uniform1i(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLint * v0;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
v0 = (GLint *) bp;
esdl_glUniform1i(*location, *v0);
}
void egl_uniform2i(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLint * v0;
GLint * v1;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
v0 = (GLint *) bp; bp += sizeof(GLint);
v1 = (GLint *) bp;
esdl_glUniform2i(*location, *v0, *v1);
}
void egl_uniform3i(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLint * v0;
GLint * v1;
GLint * v2;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
v0 = (GLint *) bp; bp += sizeof(GLint);
v1 = (GLint *) bp; bp += sizeof(GLint);
v2 = (GLint *) bp;
esdl_glUniform3i(*location, *v0, *v1, *v2);
}
void egl_uniform4i(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLint * v0;
GLint * v1;
GLint * v2;
GLint * v3;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
v0 = (GLint *) bp; bp += sizeof(GLint);
v1 = (GLint *) bp; bp += sizeof(GLint);
v2 = (GLint *) bp; bp += sizeof(GLint);
v3 = (GLint *) bp;
esdl_glUniform4i(*location, *v0, *v1, *v2, *v3);
}
void egl_uniform1fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLfloat * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
value = (GLfloat *) bp;
esdl_glUniform1fv(*location, *count, value);
}
void egl_uniform2fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLfloat * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
value = (GLfloat *) egl_sd->bin[0].base;
esdl_glUniform2fv(*location, *count, value);
sdl_free_binaries(egl_sd);
}
void egl_uniform3fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLfloat * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
value = (GLfloat *) egl_sd->bin[0].base;
esdl_glUniform3fv(*location, *count, value);
sdl_free_binaries(egl_sd);
}
void egl_uniform4fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLfloat * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
value = (GLfloat *) egl_sd->bin[0].base;
esdl_glUniform4fv(*location, *count, value);
sdl_free_binaries(egl_sd);
}
void egl_uniform1iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLint * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
value = (GLint *) bp;
esdl_glUniform1iv(*location, *count, value);
}
void egl_uniform2iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLint * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
value = (GLint *) egl_sd->bin[0].base;
esdl_glUniform2iv(*location, *count, value);
sdl_free_binaries(egl_sd);
}
void egl_uniform3iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLint * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
value = (GLint *) egl_sd->bin[0].base;
esdl_glUniform3iv(*location, *count, value);
sdl_free_binaries(egl_sd);
}
void egl_uniform4iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLint * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
value = (GLint *) egl_sd->bin[0].base;
esdl_glUniform4iv(*location, *count, value);
sdl_free_binaries(egl_sd);
}
void egl_uniformMatrix2fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLboolean * transpose;
GLfloat * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
transpose = (GLboolean *) bp; bp += sizeof(GLboolean);
bp += 3;
value = (GLfloat *) egl_sd->bin[0].base;
esdl_glUniformMatrix2fv(*location, *count, *transpose, value);
sdl_free_binaries(egl_sd);
}
void egl_uniformMatrix3fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLboolean * transpose;
GLfloat * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
transpose = (GLboolean *) bp; bp += sizeof(GLboolean);
bp += 3;
value = (GLfloat *) egl_sd->bin[0].base;
esdl_glUniformMatrix3fv(*location, *count, *transpose, value);
sdl_free_binaries(egl_sd);
}
void egl_uniformMatrix4fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * location;
GLsizei * count;
GLboolean * transpose;
GLfloat * value = NULL;
bp = egl_buff;
location = (GLint *) bp; bp += sizeof(GLint);
count = (GLsizei *) bp; bp += sizeof(GLsizei);
transpose = (GLboolean *) bp; bp += sizeof(GLboolean);
bp += 3;
value = (GLfloat *) egl_sd->bin[0].base;
esdl_glUniformMatrix4fv(*location, *count, *transpose, value);
sdl_free_binaries(egl_sd);
}
void egl_validateProgram(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * program;
bp = egl_buff;
program = (GLuint *) bp;
esdl_glValidateProgram(*program);
}
void egl_vertexAttrib1dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLdouble v[1];
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
memcpy(v,bp,sizeof(GLdouble)*1);
esdl_glVertexAttrib1dv(*index, v);
}
void egl_vertexAttrib1fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLfloat * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLfloat *) bp;
esdl_glVertexAttrib1fv(*index, v);
}
void egl_vertexAttrib1sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLshort * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLshort *) bp;
esdl_glVertexAttrib1sv(*index, v);
}
void egl_vertexAttrib2dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLdouble v[2];
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
memcpy(v,bp,sizeof(GLdouble)*2);
esdl_glVertexAttrib2dv(*index, v);
}
void egl_vertexAttrib2fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLfloat * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLfloat *) bp;
esdl_glVertexAttrib2fv(*index, v);
}
void egl_vertexAttrib2sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLshort * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLshort *) bp;
esdl_glVertexAttrib2sv(*index, v);
}
void egl_vertexAttrib3dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLdouble v[3];
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
memcpy(v,bp,sizeof(GLdouble)*3);
esdl_glVertexAttrib3dv(*index, v);
}
void egl_vertexAttrib3fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLfloat * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLfloat *) bp;
esdl_glVertexAttrib3fv(*index, v);
}
void egl_vertexAttrib3sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLshort * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLshort *) bp;
esdl_glVertexAttrib3sv(*index, v);
}
void egl_vertexAttrib4Nbv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLbyte * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLbyte *) bp;
esdl_glVertexAttrib4Nbv(*index, v);
}
void egl_vertexAttrib4Niv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLint * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLint *) bp;
esdl_glVertexAttrib4Niv(*index, v);
}
void egl_vertexAttrib4Nsv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLshort * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLshort *) bp;
esdl_glVertexAttrib4Nsv(*index, v);
}
void egl_vertexAttrib4Nub(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLubyte * x;
GLubyte * y;
GLubyte * z;
GLubyte * w;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
x = (GLubyte *) bp; bp += sizeof(GLubyte);
y = (GLubyte *) bp; bp += sizeof(GLubyte);
z = (GLubyte *) bp; bp += sizeof(GLubyte);
w = (GLubyte *) bp;
esdl_glVertexAttrib4Nub(*index, *x, *y, *z, *w);
}
void egl_vertexAttrib4Nubv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLubyte * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLubyte *) bp;
esdl_glVertexAttrib4Nubv(*index, v);
}
void egl_vertexAttrib4Nuiv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLuint * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLuint *) bp;
esdl_glVertexAttrib4Nuiv(*index, v);
}
void egl_vertexAttrib4Nusv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLushort * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLushort *) bp;
esdl_glVertexAttrib4Nusv(*index, v);
}
void egl_vertexAttrib4bv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLbyte * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLbyte *) bp;
esdl_glVertexAttrib4bv(*index, v);
}
void egl_vertexAttrib4dv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLdouble v[4];
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
memcpy(v,bp,sizeof(GLdouble)*4);
esdl_glVertexAttrib4dv(*index, v);
}
void egl_vertexAttrib4fv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLfloat * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLfloat *) bp;
esdl_glVertexAttrib4fv(*index, v);
}
void egl_vertexAttrib4iv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLint * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLint *) bp;
esdl_glVertexAttrib4iv(*index, v);
}
void egl_vertexAttrib4sv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLshort * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLshort *) bp;
esdl_glVertexAttrib4sv(*index, v);
}
void egl_vertexAttrib4ubv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLubyte * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLubyte *) bp;
esdl_glVertexAttrib4ubv(*index, v);
}
void egl_vertexAttrib4uiv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLuint * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLuint *) bp;
esdl_glVertexAttrib4uiv(*index, v);
}
void egl_vertexAttrib4usv(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLushort * v;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
v = (GLushort *) bp;
esdl_glVertexAttrib4usv(*index, v);
}
void egl_vertexAttribPointer(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLuint * index;
GLint * size;
GLenum * type;
GLboolean * normalized;
GLsizei * stride;
GLvoid * pointer = NULL;
bp = egl_buff;
index = (GLuint *) bp; bp += sizeof(GLuint);
size = (GLint *) bp; bp += sizeof(GLint);
type = (GLenum *) bp; bp += sizeof(GLenum);
normalized = (GLboolean *) bp; bp += sizeof(GLboolean);
bp += 3;
stride = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
pointer = (GLvoid *) *(GLint *)bp;
} else {
pointer = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glVertexAttribPointer(*index, *size, *type, *normalized, *stride, pointer);
sdl_free_binaries(egl_sd);
}
void egl_weightbvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLbyte * weights = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
weights = (GLbyte *) bp;
esdl_glWeightbvARB(*size, weights);
}
void egl_weightsvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLshort * weights = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
weights = (GLshort *) bp;
esdl_glWeightsvARB(*size, weights);
}
void egl_weightivARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLint * weights = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
weights = (GLint *) bp;
esdl_glWeightivARB(*size, weights);
}
void egl_weightfvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLfloat * weights = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
weights = (GLfloat *) bp;
esdl_glWeightfvARB(*size, weights);
}
void egl_weightdvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLdouble * weights = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
weights = (GLdouble*) malloc(sizeof(GLdouble)*(*size));
memcpy(weights,bp,sizeof(GLdouble)*(*size));
esdl_glWeightdvARB(*size, weights);
free(weights);
}
void egl_weightubvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLubyte * weights = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
weights = (GLubyte *) bp;
esdl_glWeightubvARB(*size, weights);
}
void egl_weightusvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLushort * weights = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
weights = (GLushort *) bp;
esdl_glWeightusvARB(*size, weights);
}
void egl_weightuivARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLuint * weights = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
weights = (GLuint *) bp;
esdl_glWeightuivARB(*size, weights);
}
void egl_weightPointerARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLenum * type;
GLsizei * stride;
GLvoid * pointer = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
type = (GLenum *) bp; bp += sizeof(GLenum);
stride = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
pointer = (GLvoid *) *(GLint *)bp;
} else {
pointer = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glWeightPointerARB(*size, *type, *stride, pointer);
sdl_free_binaries(egl_sd);
}
void egl_vertexBlendARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * count;
bp = egl_buff;
count = (GLint *) bp;
esdl_glVertexBlendARB(*count);
}
void egl_currentPaletteMatrixARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * index;
bp = egl_buff;
index = (GLint *) bp;
esdl_glCurrentPaletteMatrixARB(*index);
}
void egl_matrixIndexubvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLubyte * indices = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
indices = (GLubyte *) bp;
esdl_glMatrixIndexubvARB(*size, indices);
}
void egl_matrixIndexusvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLushort * indices = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
indices = (GLushort *) bp;
esdl_glMatrixIndexusvARB(*size, indices);
}
void egl_matrixIndexuivARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLuint * indices = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
indices = (GLuint *) bp;
esdl_glMatrixIndexuivARB(*size, indices);
}
void egl_matrixIndexPointerARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLint * size;
GLenum * type;
GLsizei * stride;
GLvoid * pointer = NULL;
bp = egl_buff;
size = (GLint *) bp; bp += sizeof(GLint);
type = (GLenum *) bp; bp += sizeof(GLenum);
stride = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
pointer = (GLvoid *) *(GLint *)bp;
} else {
pointer = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glMatrixIndexPointerARB(*size, *type, *stride, pointer);
sdl_free_binaries(egl_sd);
}
void egl_programStringARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * format;
GLsizei * len;
GLvoid * string = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
format = (GLenum *) bp; bp += sizeof(GLenum);
len = (GLsizei *) bp; bp += sizeof(GLsizei);
if(egl_sd->next_bin == 0) {
string = (GLvoid *) *(GLint *)bp;
} else {
string = (GLvoid *) egl_sd->bin[0].base;
};
bp += sizeof(GLint);
esdl_glProgramStringARB(*target, *format, *len, string);
sdl_free_binaries(egl_sd);
}
void egl_bindProgramARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLuint * program;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
program = (GLuint *) bp;
esdl_glBindProgramARB(*target, *program);
}
void egl_deleteProgramsARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLsizei * n;
GLuint * programs = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
programs = (GLuint *) bp;
esdl_glDeleteProgramsARB(*n, programs);
}
void egl_genProgramsARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLsizei * n;
GLuint * programs = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
programs = (GLuint*) malloc(sizeof(GLuint)*(*n));
esdl_glGenProgramsARB(*n, programs);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLuint) * (*n));
memcpy(bp, programs, sizeof(GLuint)*(*n));
bp += sizeof(GLuint)*(*n);
free(programs);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_programEnvParameter4dvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLuint * index;
GLdouble params[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
index = (GLuint *) bp; bp += sizeof(GLuint);
memcpy(params,bp,sizeof(GLdouble)*4);
esdl_glProgramEnvParameter4dvARB(*target, *index, params);
}
void egl_programEnvParameter4fvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLuint * index;
GLfloat * params;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
index = (GLuint *) bp; bp += sizeof(GLuint);
params = (GLfloat *) bp;
esdl_glProgramEnvParameter4fvARB(*target, *index, params);
}
void egl_programLocalParameter4dvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLuint * index;
GLdouble params[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
index = (GLuint *) bp; bp += sizeof(GLuint);
memcpy(params,bp,sizeof(GLdouble)*4);
esdl_glProgramLocalParameter4dvARB(*target, *index, params);
}
void egl_programLocalParameter4fvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLuint * index;
GLfloat * params;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
index = (GLuint *) bp; bp += sizeof(GLuint);
params = (GLfloat *) bp;
esdl_glProgramLocalParameter4fvARB(*target, *index, params);
}
void egl_getProgramEnvParameterdvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLuint * index;
GLdouble params[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
index = (GLuint *) bp; bp += sizeof(GLuint);
esdl_glGetProgramEnvParameterdvARB(*target, *index, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLdouble) *4);
memcpy(bp, params, sizeof(GLdouble)*4);
bp += sizeof(GLdouble)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getProgramEnvParameterfvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLuint * index;
GLfloat params[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
index = (GLuint *) bp; bp += sizeof(GLuint);
esdl_glGetProgramEnvParameterfvARB(*target, *index, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLfloat) *4);
memcpy(bp, params, sizeof(GLfloat)*4);
bp += sizeof(GLfloat)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getProgramLocalParameterdvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLuint * index;
GLdouble params[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
index = (GLuint *) bp; bp += sizeof(GLuint);
esdl_glGetProgramLocalParameterdvARB(*target, *index, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLdouble) *4);
memcpy(bp, params, sizeof(GLdouble)*4);
bp += sizeof(GLdouble)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getProgramLocalParameterfvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLuint * index;
GLfloat params[4];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
index = (GLuint *) bp; bp += sizeof(GLuint);
esdl_glGetProgramLocalParameterfvARB(*target, *index, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLfloat) *4);
memcpy(bp, params, sizeof(GLfloat)*4);
bp += sizeof(GLfloat)*4;
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getProgramStringARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * pname;
GLvoid * string = NULL;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
string = (GLvoid *) egl_sd->bin[0].base;
esdl_glGetProgramStringARB(*target, *pname, string);
sdl_free_binaries(egl_sd);
}
void egl_deleteObjectARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLhandleARB * obj;
bp = egl_buff;
obj = (GLhandleARB *) bp;
esdl_glDeleteObjectARB(*obj);
}
void egl_getHandleARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLhandleARB egl_res;
GLenum * pname;
bp = egl_buff;
pname = (GLenum *) bp;
egl_res = esdl_glGetHandleARB(*pname);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLhandleARB) );
* (GLhandleARB *) bp = egl_res;
bp += sizeof(GLhandleARB);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_detachObjectARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLhandleARB * containerObj;
GLhandleARB * attachedObj;
bp = egl_buff;
containerObj = (GLhandleARB *) bp; bp += sizeof(GLhandleARB);
attachedObj = (GLhandleARB *) bp;
esdl_glDetachObjectARB(*containerObj, *attachedObj);
}
void egl_createShaderObjectARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLhandleARB egl_res;
GLenum * shaderType;
bp = egl_buff;
shaderType = (GLenum *) bp;
egl_res = esdl_glCreateShaderObjectARB(*shaderType);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLhandleARB) );
* (GLhandleARB *) bp = egl_res;
bp += sizeof(GLhandleARB);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_createProgramObjectARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLhandleARB egl_res;
bp = egl_buff;
egl_res = esdl_glCreateProgramObjectARB();
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLhandleARB) );
* (GLhandleARB *) bp = egl_res;
bp += sizeof(GLhandleARB);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_attachObjectARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLhandleARB * containerObj;
GLhandleARB * obj;
bp = egl_buff;
containerObj = (GLhandleARB *) bp; bp += sizeof(GLhandleARB);
obj = (GLhandleARB *) bp;
esdl_glAttachObjectARB(*containerObj, *obj);
}
void egl_useProgramObjectARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLhandleARB * programObj;
bp = egl_buff;
programObj = (GLhandleARB *) bp;
esdl_glUseProgramObjectARB(*programObj);
}
void egl_getObjectParameterfvARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLhandleARB * obj;
GLenum * pname;
GLfloat params[1];
bp = egl_buff;
obj = (GLhandleARB *) bp; bp += sizeof(GLhandleARB);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetObjectParameterfvARB(*obj, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLfloat) *1);
* (GLfloat *)bp = params[0]; bp += sizeof(GLfloat);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getObjectParameterivARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLhandleARB * obj;
GLenum * pname;
GLint params[1];
bp = egl_buff;
obj = (GLhandleARB *) bp; bp += sizeof(GLhandleARB);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetObjectParameterivARB(*obj, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *1);
* (GLint *)bp = params[0]; bp += sizeof(GLint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getInfoLogARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLhandleARB * obj;
GLsizei * maxLength;
GLsizei length[1];
GLcharARB * infoLog = NULL;
bp = egl_buff;
obj = (GLhandleARB *) bp; bp += sizeof(GLhandleARB);
maxLength = (GLsizei *) bp; bp += sizeof(GLsizei);
infoLog = (GLcharARB*) malloc(sizeof(GLcharARB)*(*maxLength));
esdl_glGetInfoLogARB(*obj, *maxLength, length, infoLog);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLsizei) *1+ sizeof(GLcharARB) * (*length));
* (GLsizei *)bp = length[0]; bp += sizeof(GLsizei);
memcpy(bp, infoLog, sizeof(GLcharARB)*(*length));
bp += sizeof(GLcharARB)*(*length);
free(infoLog);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_getAttachedObjectsARB(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLhandleARB * containerObj;
GLsizei * maxCount;
GLsizei count[1];
GLhandleARB * obj = NULL;
bp = egl_buff;
containerObj = (GLhandleARB *) bp; bp += sizeof(GLhandleARB);
maxCount = (GLsizei *) bp; bp += sizeof(GLsizei);
obj = (GLhandleARB*) malloc(sizeof(GLhandleARB)*(*maxCount));
esdl_glGetAttachedObjectsARB(*containerObj, *maxCount, count, obj);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLsizei) *1+ sizeof(GLhandleARB) * (*count));
* (GLsizei *)bp = count[0]; bp += sizeof(GLsizei);
memcpy(bp, obj, sizeof(GLhandleARB)*(*count));
bp += sizeof(GLhandleARB)*(*count);
free(obj);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_stencilOpSeparateATI(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * face;
GLenum * sfail;
GLenum * dpfail;
GLenum * dppass;
bp = egl_buff;
face = (GLenum *) bp; bp += sizeof(GLenum);
sfail = (GLenum *) bp; bp += sizeof(GLenum);
dpfail = (GLenum *) bp; bp += sizeof(GLenum);
dppass = (GLenum *) bp;
esdl_glStencilOpSeparateATI(*face, *sfail, *dpfail, *dppass);
}
void egl_stencilFuncSeparateATI(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * frontfunc;
GLenum * backfunc;
GLint * ref;
GLuint * mask;
bp = egl_buff;
frontfunc = (GLenum *) bp; bp += sizeof(GLenum);
backfunc = (GLenum *) bp; bp += sizeof(GLenum);
ref = (GLint *) bp; bp += sizeof(GLint);
mask = (GLuint *) bp;
esdl_glStencilFuncSeparateATI(*frontfunc, *backfunc, *ref, *mask);
}
void egl_isRenderbufferEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLboolean egl_res;
GLuint * renderbuffer;
bp = egl_buff;
renderbuffer = (GLuint *) bp;
egl_res = esdl_glIsRenderbufferEXT(*renderbuffer);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLboolean) );
* (GLboolean *) bp = egl_res;
bp += sizeof(GLboolean);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_bindRenderbufferEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLuint * renderbuffer;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
renderbuffer = (GLuint *) bp;
esdl_glBindRenderbufferEXT(*target, *renderbuffer);
}
void egl_deleteRenderbuffersEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLsizei * n;
GLuint * renderbuffers = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
renderbuffers = (GLuint *) bp;
esdl_glDeleteRenderbuffersEXT(*n, renderbuffers);
}
void egl_genRenderbuffersEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLsizei * n;
GLuint * renderbuffers = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
renderbuffers = (GLuint*) malloc(sizeof(GLuint)*(*n));
esdl_glGenRenderbuffersEXT(*n, renderbuffers);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLuint) * (*n));
memcpy(bp, renderbuffers, sizeof(GLuint)*(*n));
bp += sizeof(GLuint)*(*n);
free(renderbuffers);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_renderbufferStorageEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * internalformat;
GLsizei * width;
GLsizei * height;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
internalformat = (GLenum *) bp; bp += sizeof(GLenum);
width = (GLsizei *) bp; bp += sizeof(GLsizei);
height = (GLsizei *) bp;
esdl_glRenderbufferStorageEXT(*target, *internalformat, *width, *height);
}
void egl_getRenderbufferParameterivEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * pname;
GLint params[1];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetRenderbufferParameterivEXT(*target, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *1);
* (GLint *)bp = params[0]; bp += sizeof(GLint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_isFramebufferEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLboolean egl_res;
GLuint * framebuffer;
bp = egl_buff;
framebuffer = (GLuint *) bp;
egl_res = esdl_glIsFramebufferEXT(*framebuffer);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLboolean) );
* (GLboolean *) bp = egl_res;
bp += sizeof(GLboolean);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_bindFramebufferEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLuint * framebuffer;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
framebuffer = (GLuint *) bp;
esdl_glBindFramebufferEXT(*target, *framebuffer);
}
void egl_deleteFramebuffersEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLsizei * n;
GLuint * framebuffers = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
framebuffers = (GLuint *) bp;
esdl_glDeleteFramebuffersEXT(*n, framebuffers);
}
void egl_genFramebuffersEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLsizei * n;
GLuint * framebuffers = NULL;
bp = egl_buff;
n = (GLsizei *) bp; bp += sizeof(GLsizei);
framebuffers = (GLuint*) malloc(sizeof(GLuint)*(*n));
esdl_glGenFramebuffersEXT(*n, framebuffers);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLuint) * (*n));
memcpy(bp, framebuffers, sizeof(GLuint)*(*n));
bp += sizeof(GLuint)*(*n);
free(framebuffers);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_checkFramebufferStatusEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum egl_res;
GLenum * target;
bp = egl_buff;
target = (GLenum *) bp;
egl_res = esdl_glCheckFramebufferStatusEXT(*target);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLenum) );
* (GLenum *) bp = egl_res;
bp += sizeof(GLenum);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_framebufferTexture1DEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * attachment;
GLenum * textarget;
GLuint * texture;
GLint * level;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
attachment = (GLenum *) bp; bp += sizeof(GLenum);
textarget = (GLenum *) bp; bp += sizeof(GLenum);
texture = (GLuint *) bp; bp += sizeof(GLuint);
level = (GLint *) bp;
esdl_glFramebufferTexture1DEXT(*target, *attachment, *textarget, *texture, *level);
}
void egl_framebufferTexture2DEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * attachment;
GLenum * textarget;
GLuint * texture;
GLint * level;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
attachment = (GLenum *) bp; bp += sizeof(GLenum);
textarget = (GLenum *) bp; bp += sizeof(GLenum);
texture = (GLuint *) bp; bp += sizeof(GLuint);
level = (GLint *) bp;
esdl_glFramebufferTexture2DEXT(*target, *attachment, *textarget, *texture, *level);
}
void egl_framebufferTexture3DEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * attachment;
GLenum * textarget;
GLuint * texture;
GLint * level;
GLint * zoffset;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
attachment = (GLenum *) bp; bp += sizeof(GLenum);
textarget = (GLenum *) bp; bp += sizeof(GLenum);
texture = (GLuint *) bp; bp += sizeof(GLuint);
level = (GLint *) bp; bp += sizeof(GLint);
zoffset = (GLint *) bp;
esdl_glFramebufferTexture3DEXT(*target, *attachment, *textarget, *texture, *level, *zoffset);
}
void egl_framebufferRenderbufferEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
GLenum * attachment;
GLenum * renderbuffertarget;
GLuint * renderbuffer;
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
attachment = (GLenum *) bp; bp += sizeof(GLenum);
renderbuffertarget = (GLenum *) bp; bp += sizeof(GLenum);
renderbuffer = (GLuint *) bp;
esdl_glFramebufferRenderbufferEXT(*target, *attachment, *renderbuffertarget, *renderbuffer);
}
void egl_getFramebufferAttachmentParameterivEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
char * egl_start;
int egl_sendlen;
GLenum * target;
GLenum * attachment;
GLenum * pname;
GLint params[1];
bp = egl_buff;
target = (GLenum *) bp; bp += sizeof(GLenum);
attachment = (GLenum *) bp; bp += sizeof(GLenum);
pname = (GLenum *) bp; bp += sizeof(GLenum);
esdl_glGetFramebufferAttachmentParameterivEXT(*target, *attachment, *pname, params);
bp = egl_start = sdl_get_temp_buff(egl_sd, sizeof(GLint) *1);
* (GLint *)bp = params[0]; bp += sizeof(GLint);
egl_sendlen = bp - egl_start;
sdl_send(egl_sd, egl_sendlen);
}
void egl_generateMipmapEXT(sdl_data *egl_sd, int egl_len, char *egl_buff)
{
char * bp;
GLenum * target;
bp = egl_buff;
target = (GLenum *) bp;
esdl_glGenerateMipmapEXT(*target);
}
syntax highlighted by Code2HTML, v. 0.9.1