glshim updated, added latest changes by ptitSeb

This commit is contained in:
lubomyr
2015-10-31 20:33:56 +02:00
parent a2d6acad8c
commit bdab723f36
7 changed files with 576 additions and 7 deletions

View File

@@ -21,6 +21,7 @@ LOCAL_SRC_FILES := \
src/gl/buffers.c \
src/gl/debug.c \
src/gl/decompress.c \
src/gl/directstate.c \
src/gl/eval.c \
src/gl/framebuffers.c \
src/gl/gl.c \

View File

@@ -0,0 +1,346 @@
#include "directstate.h"
#include "gl.h"
#include "stack.h"
// Client State
void glClientAttribDefaultEXT(GLbitfield mask) {
if (mask & GL_CLIENT_PIXEL_STORE_BIT) {
glPixelStorei(GL_PACK_ALIGNMENT, 0);
glPixelStorei(GL_UNPACK_ALIGNMENT, 0);
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
glPixelStorei(GL_PACK_ROW_LENGTH, 0);
glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
glPixelStorei(GL_PACK_SKIP_ROWS, 0);
}
#define enable_disable(pname, enabled) \
if (enabled) glEnableClientState(pname); \
else glDisableClientState(pname)
if (mask & GL_CLIENT_VERTEX_ARRAY_BIT) {
int client = state.texture.client;
enable_disable(GL_VERTEX_ARRAY, false);
enable_disable(GL_NORMAL_ARRAY, false);
enable_disable(GL_COLOR_ARRAY, false);
enable_disable(GL_SECONDARY_COLOR_ARRAY, false);
for (int a=0; a<MAX_TEX; a++) {
glClientActiveTexture(GL_TEXTURE0+a);
enable_disable(GL_TEXTURE_COORD_ARRAY, false);
}
#undef enable_disable
if (state.texture.client != client) glClientActiveTexture(GL_TEXTURE0+client);
}
}
void glPushClientAttribDefaultEXT(GLbitfield mask) {
glPushClientAttrib(mask);
glClientAttribDefaultEXT(mask);
}
// Matrix
#define mat(f) \
GLenum old_mat; \
glGetIntegerv(GL_MATRIX_MODE, &old_mat); \
glMatrixMode(matrixMode); \
f; \
glMatrixMode(old_mat)
void glMatrixLoadfEXT(GLenum matrixMode, const GLfloat *m) {
mat(glLoadMatrixf(m));
}
void glMatrixLoaddEXT(GLenum matrixMode, const GLdouble *m) {
mat(glLoadMatrixd(m));
}
void glMatrixMultfEXT(GLenum matrixMode, const GLfloat *m) {
mat(glMultMatrixf(m));
}
void glMatrixMultdEXT(GLenum matrixMode, const GLdouble *m) {
mat(glMultMatrixd(m));
}
void glMatrixLoadIdentityEXT(GLenum matrixMode) {
mat(glLoadIdentity());
}
void glMatrixRotatefEXT(GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z) {
mat(glRotatef(angle, x, y, z));
}
void glMatrixRotatedEXT(GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z) {
mat(glRotated(angle, x, y, z));
}
void glMatrixScalefEXT(GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z) {
mat(glScalef(x, y, z));
}
void glMatrixScaledEXT(GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z) {
mat(glScaled(x, y, z));
}
void glMatrixTranslatefEXT(GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z) {
mat(glTranslatef(x, y, z));
}
void glMatrixTranslatedEXT(GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z) {
mat(glTranslated(x, y, z));
}
void glMatrixOrthoEXT(GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f) {
mat(glOrtho(l, r, b ,t, n, f));
}
void glMatrixFrustumEXT(GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f) {
mat(glFrustum(l, r, b, t, n, f));
}
void glMatrixPushEXT(GLenum matrixMode) {
mat(glPushMatrix());
}
void glMatrixPopEXT(GLenum matrixMode) {
mat(glPopMatrix());
}
void glMatrixLoadTransposefEXT(GLenum matrixMode, const GLfloat *m) {
mat(glLoadTransposeMatrixf(m));
}
void glMatrixLoadTransposedEXT(GLenum matrixMode, const GLdouble *m) {
mat(glLoadTransposeMatrixd(m));
}
void glMatrixMultTransposefEXT(GLenum matrixMode, const GLfloat *m) {
mat(glMultTransposeMatrixf(m));
}
void glMatrixMultTransposedEXT(GLenum matrixMode, const GLdouble *m) {
mat(glMultTransposeMatrixd(m));
}
#undef mat
// Textures
#define text(f) \
glBindTexture(target, texture); \
f
void glTextureParameteriEXT(GLuint texture, GLenum target, GLenum pname, GLint param) {
text(glTexParameteri(target, pname, param));
}
void glTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *param) {
text(glTexParameteriv(target, pname, param));
}
void glTextureParameterfEXT(GLuint texture, GLenum target, GLenum pname, GLfloat param) {
text(glTexParameterf(target, pname, param));
}
void glTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, const GLfloat *param) {
text(glTexParameterfv(target, pname, param));
}
void glTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexImage1D(target, level, internalformat, width, border, format, type, pixels));
}
void glTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels));
}
void glTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexSubImage1D(target, level, xoffset, width, format, type, pixels));
}
void glTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels));
}
void glCopyTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) {
text(glCopyTexImage1D(target, level, internalformat, x, y, width, border));
}
void glCopyTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
text(glCopyTexImage2D(target, level, internalformat, x, y, width, height, border));
}
void glCopyTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
text(glCopyTexSubImage1D(target, level, xoffset, x, y, width));
}
void glCopyTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
text(glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height));
}
void glGetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels) {
text(glGetTexImage(target, level, format, type, pixels));
}
void glGetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, GLfloat *params) {
text(glGetTexParameterfv(target, pname, params));
}
void glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params) {
text(glGetTexParameteriv(target, pname, params));
}
void glGetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params) {
text(glGetTexLevelParameterfv(target, level, pname, params));
}
void glGetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params) {
text(glGetTexLevelParameteriv(target, level, pname, params));
}
// Texture 3D
void glTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels));
}
void glTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels));
}
void glCopyTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
text(glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height));
}
// Compressed texture
void glCompressedTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data));
}
void glCompressedTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data));
}
void glCompressedTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data));
}
void glCompressedTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data));
}
void glCompressedTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data));
}
void glCompressedTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data));
}
void glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint level, GLvoid *img) {
text(glGetCompressedTexImage(target, level, img));
}
#undef text
#define text(f) \
GLenum old_tex = state.texture.active; \
if(texunit != old_tex) glActiveTexture(texunit); \
f; \
if(texunit != old_tex) glActiveTexture(old_tex)
#define texc(f) \
GLenum old_tex = state.texture.client; \
if(texunit != old_tex) glClientActiveTexture(texunit); \
f; \
if(texunit != old_tex) glClientActiveTexture(old_tex)
void glBindMultiTextureEXT(GLenum texunit, GLenum target, GLuint texture) {
text(glBindTexture(target, texture));
}
void glMultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
texc(glTexCoordPointer(size, type, stride, pointer));
}
void glMultiTexEnvfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param) {
text(glTexEnvf(target, pname, param));
}
void glMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params) {
text(glTexEnvfv(target, pname, params));
}
void glMultiTexEnviEXT(GLenum texunit, GLenum target, GLenum pname, GLint param) {
text(glTexEnvi(target, pname, param));
}
void glMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params) {
text(glTexEnviv(target, pname, params));
}
void glMultiTexGendEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble param) {
text(glTexGend(coord, pname, param));
}
void glMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params) {
text(glTexGendv(coord, pname, params));
}
void glMultiTexGenfEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat param) {
text(glTexGenf(coord, pname, param));
}
void glMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params) {
text(glTexGenfv(coord, pname, params));
}
void glMultiTexGeniEXT(GLenum texunit, GLenum coord, GLenum pname, GLint param) {
text(glTexGeni(coord, pname, param));
}
void glMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, const GLint *params) {
text(glTexGeniv(coord, pname, params));
}
void glGetMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params) {
text(glGetTexEnvfv(target, pname, params));
}
void glGetMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params) {
text(glGetTexEnviv(target, pname, params));
}
void glGetMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble *params) {
text(glGetTexGendv(coord, pname, params));
}
void glGetMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat *params) {
text(glGetTexGenfv(coord, pname, params));
}
void glGetMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, GLint *params) {
text(glGetTexGeniv(coord, pname, params));
}
void glMultiTexParameteriEXT(GLenum texunit, GLenum target, GLenum pname, GLint param) {
text(glTexParameteri(target, pname, param));
}
void glMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *param) {
text(glTexParameteriv(target, pname, param));
}
void glMultiTexParameterfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param) {
text(glTexParameterf(target, pname, param));
}
void glMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *param) {
text(glTexParameterfv(target, pname, param));
}
void glMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexImage1D(target, level, internalformat, width, border, format, type, pixels));
}
void glMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels));
}
void glMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexSubImage1D(target, level, xoffset, width, format, type, pixels));
}
void glMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels));
}
void glCopyMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) {
text(glCopyTexImage1D(target, level, internalformat, x, y, width, border));
}
void glCopyMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
text(glCopyTexImage2D(target, level, internalformat, x, y, width, height, border));
}
void glCopyMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
text(glCopyTexSubImage1D(target, level, xoffset, x, y, width));
}
void glCopyMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
text(glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height));
}
void glGetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels) {
text(glGetTexImage(target, level, format, type, pixels));
}
void glGetMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params) {
text(glGetTexParameterfv(target, pname, params));
}
void glGetMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params) {
text(glGetTexParameteriv(target, pname, params));
}
void glGetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params) {
text(glGetTexLevelParameterfv(target, level, pname, params));
}
void glGetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params) {
text(glGetTexLevelParameteriv(target, level, pname, params));
}
void glMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels));
}
void glMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels) {
text(glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels));
}
void glCopyMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
text(glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height));
}
// Compressed texture
void glCompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data));
}
void glCompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data));
}
void glCompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data));
}
void glCompressedMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data));
}
void glCompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data));
}
void glCompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data) {
text(glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data));
}
void glGetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLvoid *img) {
text(glGetCompressedTexImage(target, level, img));
}
#undef text
#undef texc

View File

@@ -0,0 +1,106 @@
#ifndef __DIRECTSTATE_H_
#define __DIRECTSTATE_H_
#include "gl.h"
void glClientAttribDefaultEXT(GLbitfield mask);
void glPushClientAttribDefaultEXT(GLbitfield mask);
void glMatrixLoadfEXT(GLenum matrixMode, const GLfloat *m);
void glMatrixLoaddEXT(GLenum matrixMode, const GLdouble *m);
void glMatrixMultfEXT(GLenum matrixMode, const GLfloat *m);
void glMatrixMultdEXT(GLenum matrixMode, const GLdouble *m);
void glMatrixLoadIdentityEXT(GLenum matrixMode);
void glMatrixRotatefEXT(GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
void glMatrixRotatedEXT(GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
void glMatrixScalefEXT(GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z);
void glMatrixScaledEXT(GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z);
void glMatrixTranslatefEXT(GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z);
void glMatrixTranslatedEXT(GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z);
void glMatrixOrthoEXT(GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f);
void glMatrixFrustumEXT(GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f);
void glMatrixPushEXT(GLenum matrixMode);
void glMatrixPopEXT(GLenum matrixMode);
void glTextureParameteriEXT(GLuint texture, GLenum target, GLenum pname, GLint param);
void glTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *param);
void glTextureParameterfEXT(GLuint texture, GLenum target, GLenum pname, GLfloat param);
void glTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, const GLfloat *param);
void glTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
void glTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
void glTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
void glTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
void glCopyTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
void glCopyTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
void glCopyTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
void glCopyTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void glGetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
void glGetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, GLfloat *params);
void glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params);
void glGetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
void glGetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
void glTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
void glTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
void glCopyTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void glBindMultiTextureEXT(GLenum texunit, GLenum target, GLuint texture);
void glMultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
void glMultiTexEnvfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
void glMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
void glMultiTexEnviEXT(GLenum texunit, GLenum target, GLenum pname, GLint param);
void glMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params);
void glMultiTexGendEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
void glMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
void glMultiTexGenfEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
void glMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
void glMultiTexGeniEXT(GLenum texunit, GLenum coord, GLenum pname, GLint param);
void glMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
void glGetMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
void glGetMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params);
void glGetMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
void glGetMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
void glGetMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, GLint *params);
void glMultiTexParameteriEXT(GLenum texunit, GLenum target, GLenum pname, GLint param);
void glMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *param);
void glMultiTexParameterfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
void glMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *param);
void glMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
void glMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
void glMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
void glMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
void glCopyMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
void glCopyMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
void glCopyMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
void glCopyMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void glGetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
void glGetMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
void glGetMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params);
void glGetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
void glGetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
void glMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
void glMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
void glCopyMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void glCompressedTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
void glCompressedTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
void glCompressedTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
void glCompressedTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
void glCompressedTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
void glCompressedTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
void glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint level, GLvoid *img);
void glCompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
void glCompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
void glCompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
void glCompressedMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
void glCompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
void glCompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
void glGetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLvoid *img);
void glMatrixLoadTransposefEXT(GLenum matrixMode, const GLfloat *m);
void glMatrixLoadTransposedEXT(GLenum matrixMode, const GLdouble *m);
void glMatrixMultTransposefEXT(GLenum matrixMode, const GLfloat *m);
void glMatrixMultTransposedEXT(GLenum matrixMode, const GLdouble *m);
#endif

View File

@@ -119,6 +119,7 @@ const GLubyte *glGetString(GLenum name) {
"GL_EXT_blend_equation_separate "
#endif
"GL_ARB_draw_buffers "
"GL_EXT_direct_state_access "
// "GL_EXT_blend_logic_op "
// "GL_EXT_blend_color "
// "GL_ARB_texture_cube_map "

View File

@@ -783,6 +783,12 @@ void glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLi
glCopyTexSubImage2D(GL_TEXTURE_2D, level, xoffset, 0, x, y, width, 1);
}
void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
GLint x, GLint y, GLsizei width, GLsizei height) {
glCopyTexSubImage2D(GL_TEXTURE_2D, level, xoffset, yoffset, x, y, width, height);
}
// 3d stubs
@@ -794,7 +800,7 @@ void glTexImage3D(GLenum target, GLint level, GLint internalFormat,
glTexImage2D(GL_TEXTURE_2D, level, internalFormat, width, height,
border, format, type, data);
}
void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
GLsizei width, GLsizei height, GLsizei depth, GLenum format,
GLenum type, const GLvoid *data) {
@@ -1689,13 +1695,13 @@ void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat,
glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
}
void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset,
GLsizei width, GLenum format,
GLsizei imageSize, const GLvoid *data) {
glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, 1, format, imageSize, data);
glCompressedTexSubImage2D(target, level, xoffset, 0, width, 1, format, imageSize, data);
}
void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
GLsizei width, GLsizei height, GLsizei depth, GLenum format,
GLsizei imageSize, const GLvoid *data) {

View File

@@ -23,7 +23,7 @@ void glTexSubImage1D(GLenum target, GLint level, GLint xoffset,
GLsizei width, GLenum format, GLenum type,
const GLvoid *data);
void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
GLsizei width, GLsizei height, GLsizei depth, GLenum format,
GLenum type, const GLvoid *data);
@@ -50,10 +50,10 @@ void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat,
void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
GLsizei width, GLsizei height, GLenum format,
GLsizei imageSize, const GLvoid *data);
void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset,
GLsizei width, GLenum format,
GLsizei imageSize, const GLvoid *data);
void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
GLsizei width, GLsizei height, GLsizei depth, GLenum format,
GLsizei imageSize, const GLvoid *data);
@@ -71,7 +71,11 @@ void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffse
void glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y,
GLsizei width);
void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
GLint x, GLint y, GLsizei width, GLsizei height);
void tex_coord_rect_arb(GLfloat *tex, GLsizei len,
GLsizei width, GLsizei height);
void tex_coord_npot(GLfloat *tex, GLsizei len,

View File

@@ -5,6 +5,7 @@
#include "glx.h"
#endif
#include "../gl/directstate.h"
#define MAP(func_name, func) \
@@ -476,6 +477,110 @@ void *glXGetProcAddressARB(const char *name) {
STUB(glFogCoordPointer);
/*STUB(glEdgeFlagPointerEXT);
STUB(glIndexPointerEXT);*/
//EXT_direct_state_access
EX(glClientAttribDefaultEXT);
EX(glPushClientAttribDefaultEXT);
EX(glMatrixLoadfEXT);
EX(glMatrixLoaddEXT);
EX(glMatrixMultfEXT);
EX(glMatrixMultdEXT);
EX(glMatrixLoadIdentityEXT);
EX(glMatrixRotatefEXT);
EX(glMatrixRotatedEXT);
EX(glMatrixScalefEXT);
EX(glMatrixScaledEXT);
EX(glMatrixTranslatefEXT);
EX(glMatrixTranslatedEXT);
EX(glMatrixOrthoEXT);
EX(glMatrixFrustumEXT);
EX(glMatrixPushEXT);
EX(glMatrixPopEXT);
EX(glTextureParameteriEXT);
EX(glTextureParameterivEXT);
EX(glTextureParameterfEXT);
EX(glTextureParameterfvEXT);
EX(glTextureImage1DEXT);
EX(glTextureImage2DEXT);
EX(glTextureSubImage1DEXT);
EX(glTextureSubImage2DEXT);
EX(glCopyTextureImage1DEXT);
EX(glCopyTextureImage2DEXT);
EX(glCopyTextureSubImage1DEXT);
EX(glCopyTextureSubImage2DEXT);
EX(glGetTextureImageEXT);
EX(glGetTextureParameterfvEXT);
EX(glGetTextureParameterivEXT);
EX(glGetTextureLevelParameterfvEXT);
EX(glGetTextureLevelParameterivEXT);
EX(glTextureImage3DEXT);
EX(glTextureSubImage3DEXT);
EX(glCopyTextureSubImage3DEXT);
EX(glBindMultiTextureEXT);
EX(glMultiTexCoordPointerEXT);
EX(glMultiTexEnvfEXT);
EX(glMultiTexEnvfvEXT);
EX(glMultiTexEnviEXT);
EX(glMultiTexEnvivEXT);
EX(glMultiTexGendEXT);
EX(glMultiTexGendvEXT);
EX(glMultiTexGenfEXT);
EX(glMultiTexGenfvEXT);
EX(glMultiTexGeniEXT);
EX(glMultiTexGenivEXT);
EX(glGetMultiTexEnvfvEXT);
EX(glGetMultiTexEnvivEXT);
EX(glGetMultiTexGendvEXT);
EX(glGetMultiTexGenfvEXT);
EX(glGetMultiTexGenivEXT);
EX(glMultiTexParameteriEXT);
EX(glMultiTexParameterivEXT);
EX(glMultiTexParameterfEXT);
EX(glMultiTexParameterfvEXT);
EX(glMultiTexImage1DEXT);
EX(glMultiTexImage2DEXT);
EX(glMultiTexSubImage1DEXT);
EX(glMultiTexSubImage2DEXT);
EX(glCopyMultiTexImage1DEXT);
EX(glCopyMultiTexImage2DEXT);
EX(glCopyMultiTexSubImage1DEXT);
EX(glCopyMultiTexSubImage2DEXT);
EX(glGetMultiTexImageEXT);
EX(glGetMultiTexParameterfvEXT);
EX(glGetMultiTexParameterivEXT);
EX(glGetMultiTexLevelParameterfvEXT);
EX(glGetMultiTexLevelParameterivEXT);
EX(glMultiTexImage3DEXT);
EX(glMultiTexSubImage3DEXT);
EX(glCopyMultiTexSubImage3DEXT);
STUB(EnableClientStateIndexedEXT);
STUB(DisableClientStateIndexedEXT);
STUB(GetFloatIndexedvEXT);
STUB(GetDoubleIndexedvEXT);
STUB(GetPointerIndexedvEXT);
STUB(EnableIndexedEXT);
STUB(DisableIndexedEXT);
STUB(IsEnabledIndexedEXT);
STUB(GetIntegerIndexedvEXT);
STUB(GetBooleanIndexedvEXT);
EX(glCompressedTextureImage3DEXT);
EX(glCompressedTextureImage2DEXT);
EX(glCompressedTextureImage1DEXT);
EX(glCompressedTextureSubImage3DEXT);
EX(glCompressedTextureSubImage2DEXT);
EX(glCompressedTextureSubImage1DEXT);
EX(glGetCompressedTextureImageEXT);
EX(glCompressedMultiTexImage3DEXT);
EX(glCompressedMultiTexImage2DEXT);
EX(glCompressedMultiTexImage1DEXT);
EX(glCompressedMultiTexSubImage3DEXT);
EX(glCompressedMultiTexSubImage2DEXT);
EX(glCompressedMultiTexSubImage1DEXT);
EX(glGetCompressedMultiTexImageEXT);
EX(glMatrixLoadTransposefEXT);
EX(glMatrixLoadTransposedEXT);
EX(glMatrixMultTransposefEXT);
EX(glMatrixMultTransposedEXT);
printf("glXGetProcAddress: %s not found.\n", name);
return NULL;