misc fixes/tweaks/stuff intended to get the emscripten port working better.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4456 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
cf893a1921
commit
3b51dae2c9
21 changed files with 1303 additions and 135 deletions
|
@ -1271,6 +1271,11 @@ void GL_Upload32_Int (char *name, unsigned *data, int width, int height, unsigne
|
|||
}
|
||||
else
|
||||
GL_ResampleTexture (data, width, height, scaled, scaled_width, scaled_height);
|
||||
if (scaled_width * scaled_height*4 > sizeofuploadmemorybufferintermediate)
|
||||
{
|
||||
sizeofuploadmemorybufferintermediate = scaled_width * scaled_height * 4;
|
||||
uploadmemorybufferintermediate = BZ_Realloc(uploadmemorybufferintermediate, sizeofuploadmemorybufferintermediate);
|
||||
}
|
||||
|
||||
if (scaled_width*scaled_height*4 > sizeofuploadmemorybufferintermediate)
|
||||
{
|
||||
|
|
|
@ -158,6 +158,7 @@ void (APIENTRY *qglFogf) (GLenum pname, GLfloat param);
|
|||
void (APIENTRY *qglFogi) (GLenum pname, GLint param);
|
||||
void (APIENTRY *qglFogfv) (GLenum pname, const GLfloat *params);
|
||||
|
||||
#ifndef GL_STATIC
|
||||
void (APIENTRY *qglGenBuffersARB)(GLsizei n, GLuint* ids);
|
||||
void (APIENTRY *qglDeleteBuffersARB)(GLsizei n, GLuint* ids);
|
||||
void (APIENTRY *qglBindBufferARB)(GLenum target, GLuint id);
|
||||
|
@ -165,6 +166,7 @@ void (APIENTRY *qglBufferDataARB)(GLenum target, GLsizei size, const void* data,
|
|||
void (APIENTRY *qglBufferSubDataARB)(GLenum target, GLint offset, GLsizei size, void* data);
|
||||
void *(APIENTRY *qglMapBufferARB)(GLenum target, GLenum access);
|
||||
GLboolean (APIENTRY *qglUnmapBufferARB)(GLenum target);
|
||||
#endif
|
||||
|
||||
void (APIENTRY *qglGenVertexArrays)(GLsizei n, GLuint *arrays);
|
||||
void (APIENTRY *qglBindVertexArray)(GLuint vaoarray);
|
||||
|
@ -172,11 +174,13 @@ void (APIENTRY *qglBindVertexArray)(GLuint vaoarray);
|
|||
const GLubyte * (APIENTRY * qglGetStringi) (GLenum name, GLuint index);
|
||||
void (APIENTRY * qglGetPointerv) (GLenum pname, GLvoid **parms);
|
||||
|
||||
#ifndef GL_STATIC
|
||||
void (APIENTRY *qglGenRenderbuffersEXT)(GLsizei n, GLuint* ids);
|
||||
void (APIENTRY *qglBindRenderbufferEXT)(GLenum target, GLuint id);
|
||||
void (APIENTRY *qglRenderbufferStorageEXT)(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
|
||||
void (APIENTRY *qglFramebufferRenderbufferEXT)(GLenum target, GLenum attachmentPoint, GLenum textureTarget, GLuint textureId);
|
||||
GLenum (APIENTRY *qglCheckFramebufferStatusEXT)(GLenum target);
|
||||
#endif
|
||||
|
||||
void (APIENTRY *qglDepthBoundsEXT) (GLclampd zmin, GLclampd zmax);
|
||||
/*
|
||||
|
@ -191,7 +195,9 @@ FTEPFNGLUNLOCKARRAYSEXTPROC qglUnlockArraysEXT;
|
|||
|
||||
//extensions
|
||||
//arb multitexture
|
||||
#ifndef qglActiveTextureARB
|
||||
qlpSelTexFUNC qglActiveTextureARB;
|
||||
#endif
|
||||
qlpSelTexFUNC qglClientActiveTextureARB;
|
||||
qlpMTex3FUNC qglMultiTexCoord3fARB;
|
||||
qlpMTex2FUNC qglMultiTexCoord2fARB;
|
||||
|
@ -521,7 +527,9 @@ void GL_CheckExtensions (void *(*getglfunction) (char *name))
|
|||
//multitexture
|
||||
gl_mtexable = false;
|
||||
gl_mtexarbable = 0;
|
||||
#ifndef qglActiveTextureARB
|
||||
qglActiveTextureARB = NULL;
|
||||
#endif
|
||||
qglMultiTexCoord2fARB = NULL;
|
||||
qglMultiTexCoord3fARB = NULL;
|
||||
qglMTexCoord2fSGIS = NULL;
|
||||
|
@ -587,7 +595,9 @@ void GL_CheckExtensions (void *(*getglfunction) (char *name))
|
|||
|
||||
if (gl_config.gles)
|
||||
{
|
||||
#ifndef qglActiveTextureARB
|
||||
qglActiveTextureARB = (void *) getglext("glActiveTexture");
|
||||
#endif
|
||||
qglClientActiveTextureARB = (void *) getglext("glClientActiveTexture");
|
||||
qglSelectTextureSGIS = qglActiveTextureARB;
|
||||
mtexid0 = GL_TEXTURE0_ARB;
|
||||
|
@ -598,7 +608,9 @@ void GL_CheckExtensions (void *(*getglfunction) (char *name))
|
|||
}
|
||||
else if (GL_CheckExtension("GL_ARB_multitexture") && !COM_CheckParm("-noamtex"))
|
||||
{ //ARB multitexture is the popular choice.
|
||||
#ifndef qglActiveTextureARB
|
||||
qglActiveTextureARB = (void *) getglext("glActiveTextureARB");
|
||||
#endif
|
||||
qglClientActiveTextureARB = (void *) getglext("glClientActiveTextureARB");
|
||||
qglMultiTexCoord2fARB = (void *) getglext("glMultiTexCoord2fARB");
|
||||
qglMultiTexCoord3fARB = (void *) getglext("glMultiTexCoord3fARB");
|
||||
|
@ -611,6 +623,7 @@ void GL_CheckExtensions (void *(*getglfunction) (char *name))
|
|||
|
||||
mtexid0 = GL_TEXTURE0_ARB;
|
||||
|
||||
#ifndef qglActiveTextureARB
|
||||
if (!qglActiveTextureARB || !qglClientActiveTextureARB || !qglMultiTexCoord2fARB)
|
||||
{
|
||||
qglActiveTextureARB = NULL;
|
||||
|
@ -625,7 +638,7 @@ void GL_CheckExtensions (void *(*getglfunction) (char *name))
|
|||
{
|
||||
Con_DPrintf("ARB Multitexture extensions found. Use -noamtex to disable.\n");
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
/*
|
||||
else if (GL_CheckExtension("GL_SGIS_multitexture") && !COM_CheckParm("-nomtex"))
|
||||
|
@ -712,6 +725,7 @@ void GL_CheckExtensions (void *(*getglfunction) (char *name))
|
|||
|
||||
gl_config.arb_texture_cube_map = GL_CheckExtension("GL_ARB_texture_cube_map");
|
||||
|
||||
#if !defined(GL_STATIC)
|
||||
/*vbos*/
|
||||
if (gl_config.gles && gl_config.glversion >= 2)
|
||||
{
|
||||
|
@ -733,6 +747,7 @@ void GL_CheckExtensions (void *(*getglfunction) (char *name))
|
|||
qglMapBufferARB = (void *)getglext("glMapBufferARB");
|
||||
qglUnmapBufferARB = (void *)getglext("glUnmapBufferARB");
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef GL_STATIC
|
||||
gl_config.arb_shader_objects = true;
|
||||
|
@ -1608,11 +1623,13 @@ void GL_Init(void *(*getglfunction) (char *name))
|
|||
qglEndList = (void*)getglcore("glEndList");
|
||||
qglCallList = (void*)getglcore("glCallList");
|
||||
|
||||
#ifndef GL_STATIC
|
||||
qglBindBufferARB = (void *)getglext("glBindBufferARB");
|
||||
if (!qglBindBufferARB)
|
||||
qglBindBufferARB = (void *)getglext("glBindBuffer");
|
||||
if (!qglBindBufferARB)
|
||||
qglBindBufferARB = GL_BindBufferARBStub;
|
||||
#endif
|
||||
|
||||
gl_vendor = qglGetString (GL_VENDOR);
|
||||
Con_SafePrintf ("GL_VENDOR: %s\n", gl_vendor);
|
||||
|
|
|
@ -440,12 +440,12 @@ void R_NetGraph (void);
|
|||
#ifdef GL_STATIC
|
||||
//these are the functions that are valid in gles2.
|
||||
//other functions should never actually be used.
|
||||
#define qglActiveTexture glActiveTexture
|
||||
#define qglActiveTextureARB glActiveTexture
|
||||
#define qglAttachShader glAttachShader
|
||||
#define qglBindAttribLocation glBindAttribLocation
|
||||
#define qglBindBuffer glBindBuffer
|
||||
#define qglBindFramebuffer glBindFramebuffer
|
||||
#define qglBindRenderbuffer glBindRenderbuffer
|
||||
#define qglBindRenderbufferEXT glBindRenderbuffer
|
||||
#define qglBindTexture glBindTexture
|
||||
#define qglBlendColor glBlendColor
|
||||
#define qglBlendEquation glBlendEquation
|
||||
|
@ -454,7 +454,7 @@ void R_NetGraph (void);
|
|||
#define qglBlendFuncSeparate glBlendFuncSeparate
|
||||
#define qglBufferData glBufferData
|
||||
#define qglBufferSubData glBufferSubData
|
||||
#define qglCheckFramebufferStatus glCheckFramebufferStatus
|
||||
#define qglCheckFramebufferStatusEXT glCheckFramebufferStatus
|
||||
#define qglClear glClear
|
||||
#define qglClearColor glClearColor
|
||||
#define qglClearDepthf glClearDepthf
|
||||
|
@ -486,13 +486,13 @@ void R_NetGraph (void);
|
|||
#define qglEnableVertexAttribArray glEnableVertexAttribArray
|
||||
#define qglFinish glFinish
|
||||
#define qglFlush glFlush
|
||||
#define qglFramebufferRenderbuffer glFramebufferRenderbuffer
|
||||
#define qglFramebufferRenderbufferEXT glFramebufferRenderbuffer
|
||||
#define qglFramebufferTexture2D glFramebufferTexture2D
|
||||
#define qglFrontFace glFrontFace
|
||||
#define qglGenBuffers glGenBuffers
|
||||
#define qglGenerateMipmap glGenerateMipmap
|
||||
#define qglGenFramebuffers glGenFramebuffers
|
||||
#define qglGenRenderbuffers glGenRenderbuffers
|
||||
#define qglGenRenderbuffersEXT glGenRenderbuffers
|
||||
#define qglGenTextures glGenTextures
|
||||
#define qglGetActiveAttrib glGetActiveAttrib
|
||||
#define qglGetActiveUniform glGetActiveUniform
|
||||
|
@ -534,7 +534,7 @@ void R_NetGraph (void);
|
|||
#define qglPolygonOffset glPolygonOffset
|
||||
#define qglReadPixels glReadPixels
|
||||
#define qglReleaseShaderCompiler glReleaseShaderCompiler
|
||||
#define qglRenderbufferStorage glRenderbufferStorage
|
||||
#define qglRenderbufferStorageEXT glRenderbufferStorage
|
||||
#define qglSampleCoverage glSampleCoverage
|
||||
#define qglScissor glScissor
|
||||
#define qglShaderBinary glShaderBinary
|
||||
|
@ -616,6 +616,14 @@ void R_NetGraph (void);
|
|||
#define qglUniform1iARB glUniform1i
|
||||
#define qglUniform1fARB glUniform1f
|
||||
|
||||
#define qglGenBuffersARB glGenBuffers
|
||||
#define qglDeleteBuffersARB glDeleteBuffers
|
||||
#define qglBindBufferARB glBindBuffer
|
||||
#define qglBufferDataARB glBufferData
|
||||
#define qglBufferSubDataARB glBufferSubData
|
||||
#define qglMapBufferARB glMapBuffer
|
||||
#define qglUnmapBufferARB glUnmapBuffer
|
||||
|
||||
#else
|
||||
extern void (APIENTRY *qglBindTexture) (GLenum target, GLuint texture);
|
||||
extern void (APIENTRY *qglBlendFunc) (GLenum sfactor, GLenum dfactor);
|
||||
|
@ -708,6 +716,14 @@ extern FTEPFNGLGETVERTEXATTRIBIV qglGetVertexAttribiv;
|
|||
extern FTEPFNGLENABLEVERTEXATTRIBARRAY qglEnableVertexAttribArray;
|
||||
extern FTEPFNGLDISABLEVERTEXATTRIBARRAY qglDisableVertexAttribArray;
|
||||
|
||||
extern void (APIENTRY *qglGenBuffersARB)(GLsizei n, GLuint* ids);
|
||||
extern void (APIENTRY *qglDeleteBuffersARB)(GLsizei n, GLuint* ids);
|
||||
extern void (APIENTRY *qglBindBufferARB)(GLenum target, GLuint id);
|
||||
extern void (APIENTRY *qglBufferDataARB)(GLenum target, GLsizei size, const void* data, GLenum usage);
|
||||
extern void (APIENTRY *qglBufferSubDataARB)(GLenum target, GLint offset, GLsizei size, void* data);
|
||||
extern void *(APIENTRY *qglMapBufferARB)(GLenum target, GLenum access);
|
||||
extern GLboolean (APIENTRY *qglUnmapBufferARB)(GLenum target);
|
||||
|
||||
#endif
|
||||
|
||||
//non-gles2 gl functions
|
||||
|
@ -1045,14 +1061,6 @@ extern void (APIENTRY *qglDrawRangeElements) (GLenum, GLuint, GLuint, GLsizei, G
|
|||
extern void (APIENTRY *qglEnableClientState) (GLenum array);
|
||||
extern void (APIENTRY *qglVertexPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
|
||||
|
||||
extern void (APIENTRY *qglGenBuffersARB)(GLsizei n, GLuint* ids);
|
||||
extern void (APIENTRY *qglDeleteBuffersARB)(GLsizei n, GLuint* ids);
|
||||
extern void (APIENTRY *qglBindBufferARB)(GLenum target, GLuint id);
|
||||
extern void (APIENTRY *qglBufferDataARB)(GLenum target, GLsizei size, const void* data, GLenum usage);
|
||||
extern void (APIENTRY *qglBufferSubDataARB)(GLenum target, GLint offset, GLsizei size, void* data);
|
||||
extern void *(APIENTRY *qglMapBufferARB)(GLenum target, GLenum access);
|
||||
extern GLboolean (APIENTRY *qglUnmapBufferARB)(GLenum target);
|
||||
|
||||
extern void (APIENTRY *qglGenVertexArrays)(GLsizei n, GLuint *arrays);
|
||||
extern void (APIENTRY *qglBindVertexArray)(GLuint vaoarray);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue