This patch spawns from this game engine issue:
[#7113] GE crash pressing as soon as P on 64 bit Note: glext.h has been removed from the source If you get errors compiling with it you have 2 options download/install glext.h (preferred method) or set WITH_BF_GLEXT=false If your a user and having problems with game engine try setting the env var: WITHOUT_GLEXT 1 Kent
This commit is contained in:
@@ -36,6 +36,7 @@
|
||||
#endif
|
||||
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef WIN32
|
||||
// don't show stl-warnings
|
||||
@@ -160,15 +161,17 @@ extern "C" void StartKetsjiShell(struct ScrArea *area,
|
||||
bool displaylists = (SYS_GetCommandLineInt(syshandle, "displaylists", 0) != 0);
|
||||
bool usemat = false;
|
||||
|
||||
#ifdef GL_ARB_multitexture
|
||||
if(bgl::RAS_EXT_support._ARB_multitexture && bgl::QueryVersion(1, 1)) {
|
||||
usemat = (SYS_GetCommandLineInt(syshandle, "blender_material", 0) != 0);
|
||||
int unitmax=0;
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&unitmax);
|
||||
bgl::max_texture_units = MAXTEX>unitmax?unitmax:MAXTEX;
|
||||
//std::cout << "using(" << bgl::max_texture_units << ") of(" << unitmax << ") texture units." << std::endl;
|
||||
} else {
|
||||
bgl::max_texture_units = 0;
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
if(bgl::RAS_EXT_support._ARB_multitexture && bgl::QueryVersion(1, 1)) {
|
||||
usemat = (SYS_GetCommandLineInt(syshandle, "blender_material", 0) != 0);
|
||||
int unitmax=0;
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&unitmax);
|
||||
bgl::max_texture_units = MAXTEX>unitmax?unitmax:MAXTEX;
|
||||
//std::cout << "using(" << bgl::max_texture_units << ") of(" << unitmax << ") texture units." << std::endl;
|
||||
} else {
|
||||
bgl::max_texture_units = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -186,28 +186,30 @@ void BL_RenderText(int mode,const char* textstr,int textlen,struct MTFace* tface
|
||||
|
||||
void DisableForText()
|
||||
{
|
||||
if(glIsEnabled(GL_BLEND))
|
||||
glDisable(GL_BLEND);
|
||||
if(glIsEnabled(GL_BLEND)) glDisable(GL_BLEND);
|
||||
|
||||
if(glIsEnabled(GL_LIGHTING)) {
|
||||
glDisable(GL_LIGHTING);
|
||||
glDisable(GL_COLOR_MATERIAL);
|
||||
}
|
||||
#ifdef GL_ARB_multitexture
|
||||
for(int i=0; i<MAXTEX; i++) {
|
||||
if(bgl::RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB+i);
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
for(int i=0; i<MAXTEX; i++) {
|
||||
if(bgl::RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB+i);
|
||||
#ifdef GL_ARB_texture_cube_map
|
||||
if(bgl::RAS_EXT_support._ARB_texture_cube_map)
|
||||
if(glIsEnabled(GL_TEXTURE_CUBE_MAP_ARB))
|
||||
glDisable(GL_TEXTURE_CUBE_MAP_ARB);
|
||||
if(bgl::RAS_EXT_support._ARB_texture_cube_map)
|
||||
if(glIsEnabled(GL_TEXTURE_CUBE_MAP_ARB))
|
||||
glDisable(GL_TEXTURE_CUBE_MAP_ARB);
|
||||
#endif
|
||||
if(glIsEnabled(GL_TEXTURE_2D))
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
if(glIsEnabled(GL_TEXTURE_2D)) glDisable(GL_TEXTURE_2D);
|
||||
}
|
||||
} else {
|
||||
if(glIsEnabled(GL_TEXTURE_2D)) glDisable(GL_TEXTURE_2D);
|
||||
}
|
||||
|
||||
#else//GL_ARB_multitexture
|
||||
if(glIsEnabled(GL_TEXTURE_2D))
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
if(glIsEnabled(GL_TEXTURE_2D)) glDisable(GL_TEXTURE_2D);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@@ -73,5 +73,9 @@ ifeq ($(OS),windows)
|
||||
CPPFLAGS += -I../../blender
|
||||
endif
|
||||
|
||||
ifeq ($(WITH_BF_GLEXT),true)
|
||||
CPPFLAGS += -DWITH_GLEXT
|
||||
endif
|
||||
|
||||
CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION)
|
||||
|
||||
|
@@ -25,4 +25,7 @@ cxxflags = []
|
||||
if env['OURPLATFORM']=='win32-vc':
|
||||
cxxflags.append ('/GR')
|
||||
|
||||
if env['WITH_BF_GLEXT'] == 1:
|
||||
env['CPPFLAGS'].append('-DWITH_GLEXT')
|
||||
|
||||
env.BlenderLib ( 'bf_bloutines', sources, Split(incs), [], libtype=['game', 'game2', 'player'], priority=[0, 0, 55] , compileflags=cxxflags)
|
||||
|
@@ -73,6 +73,10 @@ CPPFLAGS += -I../../../gameengine/Rasterizer/RAS_OpenGLRasterizer
|
||||
CPPFLAGS += -I../../../gameengine/Physics/Sumo
|
||||
CPPFLAGS += -I../../../gameengine/Physics/common
|
||||
|
||||
ifeq ($(WITH_BF_GLEXT),true)
|
||||
CPPFLAGS += -DWITH_GLEXT
|
||||
endif
|
||||
|
||||
###############################
|
||||
|
||||
SOURCEDIR = source/gameengine/GamePlayer/common
|
||||
|
@@ -57,6 +57,7 @@
|
||||
|
||||
#include <iostream>
|
||||
#include <MT_assert.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/**********************************
|
||||
* Begin Blender include block
|
||||
@@ -509,20 +510,25 @@ bool GPG_Application::initEngine(GHOST_IWindow* window, const int stereoMode)
|
||||
bool frameRate = (SYS_GetCommandLineInt(syshandle, "show_framerate", 0) != 0);
|
||||
bool useVertexArrays = SYS_GetCommandLineInt(syshandle,"vertexarrays",1) != 0;
|
||||
bool useLists = (SYS_GetCommandLineInt(syshandle, "displaylists", G.fileflags & G_FILE_DIAPLAY_LISTS) != 0);
|
||||
#ifdef GL_ARB_multitexture
|
||||
int gameflag =(G.fileflags & G_FILE_GAME_MAT);
|
||||
// ----------------------------------
|
||||
if(bgl::RAS_EXT_support._ARB_multitexture && bgl::QueryVersion(1, 1)) {
|
||||
m_blendermat = (SYS_GetCommandLineInt(syshandle, "blender_material", gameflag) != 0);
|
||||
int unitmax=0;
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&unitmax);
|
||||
bgl::max_texture_units = MAXTEX>unitmax?unitmax:MAXTEX;
|
||||
//std::cout << "using(" << bgl::max_texture_units << ") of(" << unitmax << ") texture units." << std::endl;
|
||||
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
int gameflag =(G.fileflags & G_FILE_GAME_MAT);
|
||||
|
||||
if(bgl::RAS_EXT_support._ARB_multitexture && bgl::QueryVersion(1, 1)) {
|
||||
m_blendermat = (SYS_GetCommandLineInt(syshandle, "blender_material", gameflag) != 0);
|
||||
int unitmax=0;
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&unitmax);
|
||||
bgl::max_texture_units = MAXTEX>unitmax?unitmax:MAXTEX;
|
||||
//std::cout << "using(" << bgl::max_texture_units << ") of(" << unitmax << ") texture units." << std::endl;
|
||||
} else {
|
||||
bgl::max_texture_units = 0;
|
||||
}
|
||||
} else {
|
||||
bgl::max_texture_units = 0;
|
||||
m_blendermat=0;
|
||||
}
|
||||
#else
|
||||
m_blendermat=0;
|
||||
m_blendermat=0;
|
||||
#endif//GL_ARB_multitexture
|
||||
// ----------------------------------
|
||||
|
||||
|
@@ -80,4 +80,7 @@ CPPFLAGS += -I$(NAN_STRING)/include
|
||||
CPPFLAGS += -I$(NAN_GHOST)/include
|
||||
CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION)
|
||||
|
||||
ifeq ($(WITH_BF_GLEXT),true)
|
||||
CPPFLAGS += -DWITH_GLEXT
|
||||
endif
|
||||
|
||||
|
@@ -46,4 +46,8 @@ cflags = []
|
||||
if env['OURPLATFORM']=='win32-vc':
|
||||
cflags = ['/GR']
|
||||
|
||||
if env['WITH_BF_GLEXT'] == 1:
|
||||
env['CPPFLAGS'].append('-DWITH_GLEXT')
|
||||
|
||||
|
||||
env.BlenderLib (libname='gp_ghost', sources=source_files, includes = incs, defines = [], libtype='player',priority=0, compileflags=cflags)
|
||||
|
@@ -17,6 +17,7 @@
|
||||
|
||||
#include <iostream>
|
||||
#include <map>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "BL_Material.h"
|
||||
#include "BL_Texture.h"
|
||||
@@ -360,10 +361,13 @@ unsigned int BL_Texture::GetTextureType() const
|
||||
int BL_Texture::GetMaxUnits()
|
||||
{
|
||||
GLint unit=0;
|
||||
#ifdef GL_ARB_multitexture
|
||||
if(RAS_EXT_support._ARB_multitexture) {
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &unit);
|
||||
return (MAXTEX>=unit?unit:MAXTEX);
|
||||
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
if(RAS_EXT_support._ARB_multitexture) {
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &unit);
|
||||
return (MAXTEX>=unit?unit:MAXTEX);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
@@ -371,28 +375,33 @@ int BL_Texture::GetMaxUnits()
|
||||
|
||||
void BL_Texture::ActivateFirst()
|
||||
{
|
||||
#ifdef GL_ARB_multitexture
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void BL_Texture::ActivateUnit(int unit)
|
||||
{
|
||||
#ifdef GL_ARB_multitexture
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
if(unit <= MAXTEX)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB+unit);
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
if(unit <= MAXTEX)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB+unit);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void BL_Texture::DisableUnit()
|
||||
{
|
||||
#ifdef GL_ARB_multitexture
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB+mUnit);
|
||||
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB+mUnit);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -420,52 +429,54 @@ void BL_Texture::DisableUnit()
|
||||
|
||||
void BL_Texture::DisableAllTextures()
|
||||
{
|
||||
#ifdef GL_ARB_multitexture
|
||||
glDisable(GL_BLEND);
|
||||
for(int i=0; i<MAXTEX; i++) {
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
glDisable(GL_BLEND);
|
||||
for(int i=0; i<MAXTEX; i++) {
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB+i);
|
||||
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
glDisable(GL_TEXTURE_GEN_R);
|
||||
glDisable(GL_TEXTURE_GEN_Q);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
}
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB+i);
|
||||
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
glDisable(GL_TEXTURE_GEN_R);
|
||||
glDisable(GL_TEXTURE_GEN_Q);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
}
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void BL_Texture::ActivateTexture()
|
||||
{
|
||||
#ifdef GL_ARB_multitexture
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB+mUnit);
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
if(RAS_EXT_support._ARB_multitexture)
|
||||
bgl::blActiveTextureARB(GL_TEXTURE0_ARB+mUnit);
|
||||
|
||||
#ifdef GL_ARB_texture_cube_map
|
||||
if (mType == GL_TEXTURE_CUBE_MAP_ARB && RAS_EXT_support._ARB_texture_cube_map)
|
||||
{
|
||||
glBindTexture( GL_TEXTURE_CUBE_MAP_ARB, mTexture );
|
||||
glEnable(GL_TEXTURE_CUBE_MAP_ARB);
|
||||
}
|
||||
else
|
||||
if (mType == GL_TEXTURE_CUBE_MAP_ARB && RAS_EXT_support._ARB_texture_cube_map)
|
||||
{
|
||||
glBindTexture( GL_TEXTURE_CUBE_MAP_ARB, mTexture );
|
||||
glEnable(GL_TEXTURE_CUBE_MAP_ARB);
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
{
|
||||
|
||||
#ifdef GL_ARB_texture_cube_map
|
||||
if(RAS_EXT_support._ARB_texture_cube_map )
|
||||
glDisable(GL_TEXTURE_CUBE_MAP_ARB);
|
||||
#endif
|
||||
#ifdef GL_ARB_texture_cube_map
|
||||
if(RAS_EXT_support._ARB_texture_cube_map )
|
||||
glDisable(GL_TEXTURE_CUBE_MAP_ARB);
|
||||
#endif
|
||||
|
||||
glBindTexture( GL_TEXTURE_2D, mTexture );
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glBindTexture( GL_TEXTURE_2D, mTexture );
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@@ -51,6 +51,8 @@
|
||||
/* #endif */
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#pragma warning (disable : 4786)
|
||||
#endif //WIN32
|
||||
@@ -335,16 +337,18 @@ static PyObject *pyPrintExt(PyObject *,PyObject *,PyObject *)
|
||||
pprint("");
|
||||
}
|
||||
#endif
|
||||
#ifdef GL_ARB_multitexture
|
||||
support = ext._ARB_multitexture;
|
||||
count = 1;
|
||||
pprint(" GL_ARB_multitexture supported? "<< (support?"yes.":"no."));
|
||||
if(support){
|
||||
pprint(" ----------Details----------");
|
||||
int units=0;
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&units);
|
||||
pprint(" Max texture units available. " << units);
|
||||
pprint("");
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
support = ext._ARB_multitexture;
|
||||
count = 1;
|
||||
pprint(" GL_ARB_multitexture supported? "<< (support?"yes.":"no."));
|
||||
if(support){
|
||||
pprint(" ----------Details----------");
|
||||
int units=0;
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, (GLint*)&units);
|
||||
pprint(" Max texture units available. " << units);
|
||||
pprint("");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef GL_ARB_texture_env_combine
|
||||
|
@@ -65,6 +65,11 @@ CPPFLAGS += -I../../blender/makesdna
|
||||
CPPFLAGS += -I../../blender/imbuf
|
||||
CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
|
||||
|
||||
ifeq ($(WITH_BF_GLEXT),true)
|
||||
CPPFLAGS += -DWITH_GLEXT
|
||||
endif
|
||||
|
||||
|
||||
###########################
|
||||
|
||||
SOURCEDIR = source/gameengine/Ketsji
|
||||
|
@@ -25,6 +25,9 @@ if env['OURPLATFORM'] == 'win32-vc':
|
||||
cflags.append('/GR')
|
||||
cflags.append('/Ox')
|
||||
|
||||
if env['WITH_BF_GLEXT'] == 1:
|
||||
env['CPPFLAGS'].append('-DWITH_GLEXT')
|
||||
|
||||
incs += ' ' + env['BF_SOLID_INC']
|
||||
incs += ' ' + env['BF_PYTHON_INC']
|
||||
incs += ' ' + env['BF_SDL_INC']
|
||||
|
@@ -45,6 +45,11 @@ CPPFLAGS += -I../../kernel/gen_system
|
||||
ifeq ($(OS),darwin)
|
||||
CPPFLAGS += -fpascal-strings
|
||||
endif
|
||||
|
||||
ifeq ($(WITH_BF_GLEXT),true)
|
||||
CPPFLAGS += -DWITH_GLEXT
|
||||
endif
|
||||
|
||||
###############
|
||||
|
||||
SOURCEDIR = source/gameengine/Rasterizer
|
||||
|
@@ -47,3 +47,7 @@ CPPFLAGS += -I..
|
||||
ifeq ($(OS),darwin)
|
||||
CPPFLAGS += -fpascal-strings
|
||||
endif
|
||||
|
||||
ifeq ($(WITH_BF_GLEXT),true)
|
||||
CPPFLAGS += -DWITH_GLEXT
|
||||
endif
|
||||
|
@@ -61,6 +61,7 @@
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#include <bitset>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "STR_String.h"
|
||||
|
||||
@@ -333,43 +334,42 @@ PFNGLPNTRIANGLESFATIPROC glPNTrianglesfATI;
|
||||
|
||||
BL_EXTInfo RAS_EXT_support;
|
||||
|
||||
|
||||
#ifdef GL_ARB_multitexture
|
||||
int max_texture_units = 2;
|
||||
PFNGLACTIVETEXTUREARBPROC blActiveTextureARB;
|
||||
PFNGLCLIENTACTIVETEXTUREARBPROC blClientActiveTextureARB;
|
||||
PFNGLMULTITEXCOORD1DARBPROC blMultiTexCoord1dARB;
|
||||
PFNGLMULTITEXCOORD1DVARBPROC blMultiTexCoord1dvARB;
|
||||
PFNGLMULTITEXCOORD1FARBPROC blMultiTexCoord1fARB;
|
||||
PFNGLMULTITEXCOORD1FVARBPROC blMultiTexCoord1fvARB;
|
||||
PFNGLMULTITEXCOORD1IARBPROC blMultiTexCoord1iARB;
|
||||
PFNGLMULTITEXCOORD1IVARBPROC blMultiTexCoord1ivARB;
|
||||
PFNGLMULTITEXCOORD1SARBPROC blMultiTexCoord1sARB;
|
||||
PFNGLMULTITEXCOORD1SVARBPROC blMultiTexCoord1svARB;
|
||||
PFNGLMULTITEXCOORD2DARBPROC blMultiTexCoord2dARB;
|
||||
PFNGLMULTITEXCOORD2DVARBPROC blMultiTexCoord2dvARB;
|
||||
PFNGLMULTITEXCOORD2FARBPROC blMultiTexCoord2fARB;
|
||||
PFNGLMULTITEXCOORD2FVARBPROC blMultiTexCoord2fvARB;
|
||||
PFNGLMULTITEXCOORD2IARBPROC blMultiTexCoord2iARB;
|
||||
PFNGLMULTITEXCOORD2IVARBPROC blMultiTexCoord2ivARB;
|
||||
PFNGLMULTITEXCOORD2SARBPROC blMultiTexCoord2sARB;
|
||||
PFNGLMULTITEXCOORD2SVARBPROC blMultiTexCoord2svARB;
|
||||
PFNGLMULTITEXCOORD3DARBPROC blMultiTexCoord3dARB;
|
||||
PFNGLMULTITEXCOORD3DVARBPROC blMultiTexCoord3dvARB;
|
||||
PFNGLMULTITEXCOORD3FARBPROC blMultiTexCoord3fARB;
|
||||
PFNGLMULTITEXCOORD3FVARBPROC blMultiTexCoord3fvARB;
|
||||
PFNGLMULTITEXCOORD3IARBPROC blMultiTexCoord3iARB;
|
||||
PFNGLMULTITEXCOORD3IVARBPROC blMultiTexCoord3ivARB;
|
||||
PFNGLMULTITEXCOORD3SARBPROC blMultiTexCoord3sARB;
|
||||
PFNGLMULTITEXCOORD3SVARBPROC blMultiTexCoord3svARB;
|
||||
PFNGLMULTITEXCOORD4DARBPROC blMultiTexCoord4dARB;
|
||||
PFNGLMULTITEXCOORD4DVARBPROC blMultiTexCoord4dvARB;
|
||||
PFNGLMULTITEXCOORD4FARBPROC blMultiTexCoord4fARB;
|
||||
PFNGLMULTITEXCOORD4FVARBPROC blMultiTexCoord4fvARB;
|
||||
PFNGLMULTITEXCOORD4IARBPROC blMultiTexCoord4iARB;
|
||||
PFNGLMULTITEXCOORD4IVARBPROC blMultiTexCoord4ivARB;
|
||||
PFNGLMULTITEXCOORD4SARBPROC blMultiTexCoord4sARB;
|
||||
PFNGLMULTITEXCOORD4SVARBPROC blMultiTexCoord4svARB;
|
||||
PFNGLACTIVETEXTUREARBPROC blActiveTextureARB;
|
||||
PFNGLCLIENTACTIVETEXTUREARBPROC blClientActiveTextureARB;
|
||||
PFNGLMULTITEXCOORD1DARBPROC blMultiTexCoord1dARB;
|
||||
PFNGLMULTITEXCOORD1DVARBPROC blMultiTexCoord1dvARB;
|
||||
PFNGLMULTITEXCOORD1FARBPROC blMultiTexCoord1fARB;
|
||||
PFNGLMULTITEXCOORD1FVARBPROC blMultiTexCoord1fvARB;
|
||||
PFNGLMULTITEXCOORD1IARBPROC blMultiTexCoord1iARB;
|
||||
PFNGLMULTITEXCOORD1IVARBPROC blMultiTexCoord1ivARB;
|
||||
PFNGLMULTITEXCOORD1SARBPROC blMultiTexCoord1sARB;
|
||||
PFNGLMULTITEXCOORD1SVARBPROC blMultiTexCoord1svARB;
|
||||
PFNGLMULTITEXCOORD2DARBPROC blMultiTexCoord2dARB;
|
||||
PFNGLMULTITEXCOORD2DVARBPROC blMultiTexCoord2dvARB;
|
||||
PFNGLMULTITEXCOORD2FARBPROC blMultiTexCoord2fARB;
|
||||
PFNGLMULTITEXCOORD2FVARBPROC blMultiTexCoord2fvARB;
|
||||
PFNGLMULTITEXCOORD2IARBPROC blMultiTexCoord2iARB;
|
||||
PFNGLMULTITEXCOORD2IVARBPROC blMultiTexCoord2ivARB;
|
||||
PFNGLMULTITEXCOORD2SARBPROC blMultiTexCoord2sARB;
|
||||
PFNGLMULTITEXCOORD2SVARBPROC blMultiTexCoord2svARB;
|
||||
PFNGLMULTITEXCOORD3DARBPROC blMultiTexCoord3dARB;
|
||||
PFNGLMULTITEXCOORD3DVARBPROC blMultiTexCoord3dvARB;
|
||||
PFNGLMULTITEXCOORD3FARBPROC blMultiTexCoord3fARB;
|
||||
PFNGLMULTITEXCOORD3FVARBPROC blMultiTexCoord3fvARB;
|
||||
PFNGLMULTITEXCOORD3IARBPROC blMultiTexCoord3iARB;
|
||||
PFNGLMULTITEXCOORD3IVARBPROC blMultiTexCoord3ivARB;
|
||||
PFNGLMULTITEXCOORD3SARBPROC blMultiTexCoord3sARB;
|
||||
PFNGLMULTITEXCOORD3SVARBPROC blMultiTexCoord3svARB;
|
||||
PFNGLMULTITEXCOORD4DARBPROC blMultiTexCoord4dARB;
|
||||
PFNGLMULTITEXCOORD4DVARBPROC blMultiTexCoord4dvARB;
|
||||
PFNGLMULTITEXCOORD4FARBPROC blMultiTexCoord4fARB;
|
||||
PFNGLMULTITEXCOORD4FVARBPROC blMultiTexCoord4fvARB;
|
||||
PFNGLMULTITEXCOORD4IARBPROC blMultiTexCoord4iARB;
|
||||
PFNGLMULTITEXCOORD4IVARBPROC blMultiTexCoord4ivARB;
|
||||
PFNGLMULTITEXCOORD4SARBPROC blMultiTexCoord4sARB;
|
||||
PFNGLMULTITEXCOORD4SVARBPROC blMultiTexCoord4svARB;
|
||||
#endif
|
||||
|
||||
#ifdef GL_ARB_shader_objects
|
||||
@@ -497,50 +497,51 @@ static void LinkExtensions()
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef GL_ARB_multitexture
|
||||
if (QueryExtension("GL_ARB_multitexture"))
|
||||
{
|
||||
bgl::blActiveTextureARB = reinterpret_cast<PFNGLACTIVETEXTUREARBPROC>(bglGetProcAddress((const GLubyte *) "glActiveTextureARB"));
|
||||
bgl::blClientActiveTextureARB = reinterpret_cast<PFNGLCLIENTACTIVETEXTUREARBPROC>(bglGetProcAddress((const GLubyte *) "glClientActiveTextureARB"));
|
||||
bgl::blMultiTexCoord1dARB = reinterpret_cast<PFNGLMULTITEXCOORD1DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1dARB"));
|
||||
bgl::blMultiTexCoord1dvARB = reinterpret_cast<PFNGLMULTITEXCOORD1DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1dvARB"));
|
||||
bgl::blMultiTexCoord1fARB = reinterpret_cast<PFNGLMULTITEXCOORD1FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1fARB"));
|
||||
bgl::blMultiTexCoord1fvARB = reinterpret_cast<PFNGLMULTITEXCOORD1FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1fvARB"));
|
||||
bgl::blMultiTexCoord1iARB = reinterpret_cast<PFNGLMULTITEXCOORD1IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1iARB"));
|
||||
bgl::blMultiTexCoord1ivARB = reinterpret_cast<PFNGLMULTITEXCOORD1IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1ivARB"));
|
||||
bgl::blMultiTexCoord1sARB = reinterpret_cast<PFNGLMULTITEXCOORD1SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1sARB"));
|
||||
bgl::blMultiTexCoord1svARB = reinterpret_cast<PFNGLMULTITEXCOORD1SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1svARB"));
|
||||
bgl::blMultiTexCoord2dARB = reinterpret_cast<PFNGLMULTITEXCOORD2DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2dARB"));
|
||||
bgl::blMultiTexCoord2dvARB = reinterpret_cast<PFNGLMULTITEXCOORD2DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2dvARB"));
|
||||
bgl::blMultiTexCoord2fARB = reinterpret_cast<PFNGLMULTITEXCOORD2FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2fARB"));
|
||||
bgl::blMultiTexCoord2fvARB = reinterpret_cast<PFNGLMULTITEXCOORD2FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2fvARB"));
|
||||
bgl::blMultiTexCoord2iARB = reinterpret_cast<PFNGLMULTITEXCOORD2IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2iARB"));
|
||||
bgl::blMultiTexCoord2ivARB = reinterpret_cast<PFNGLMULTITEXCOORD2IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2ivARB"));
|
||||
bgl::blMultiTexCoord2sARB = reinterpret_cast<PFNGLMULTITEXCOORD2SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2sARB"));
|
||||
bgl::blMultiTexCoord2svARB = reinterpret_cast<PFNGLMULTITEXCOORD2SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2svARB"));
|
||||
bgl::blMultiTexCoord3dARB = reinterpret_cast<PFNGLMULTITEXCOORD3DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3dARB"));
|
||||
bgl::blMultiTexCoord3dvARB = reinterpret_cast<PFNGLMULTITEXCOORD3DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3dvARB"));
|
||||
bgl::blMultiTexCoord3fARB = reinterpret_cast<PFNGLMULTITEXCOORD3FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3fARB"));
|
||||
bgl::blMultiTexCoord3fvARB = reinterpret_cast<PFNGLMULTITEXCOORD3FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3fvARB"));
|
||||
bgl::blMultiTexCoord3iARB = reinterpret_cast<PFNGLMULTITEXCOORD3IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3iARB"));
|
||||
bgl::blMultiTexCoord3ivARB = reinterpret_cast<PFNGLMULTITEXCOORD3IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3ivARB"));
|
||||
bgl::blMultiTexCoord3sARB = reinterpret_cast<PFNGLMULTITEXCOORD3SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3sARB"));
|
||||
bgl::blMultiTexCoord3svARB = reinterpret_cast<PFNGLMULTITEXCOORD3SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3svARB"));
|
||||
bgl::blMultiTexCoord4dARB = reinterpret_cast<PFNGLMULTITEXCOORD4DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4dARB"));
|
||||
bgl::blMultiTexCoord4dvARB = reinterpret_cast<PFNGLMULTITEXCOORD4DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4dvARB"));
|
||||
bgl::blMultiTexCoord4fARB = reinterpret_cast<PFNGLMULTITEXCOORD4FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4fARB"));
|
||||
bgl::blMultiTexCoord4fvARB = reinterpret_cast<PFNGLMULTITEXCOORD4FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4fvARB"));
|
||||
bgl::blMultiTexCoord4iARB = reinterpret_cast<PFNGLMULTITEXCOORD4IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4iARB"));
|
||||
bgl::blMultiTexCoord4ivARB = reinterpret_cast<PFNGLMULTITEXCOORD4IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4ivARB"));
|
||||
bgl::blMultiTexCoord4sARB = reinterpret_cast<PFNGLMULTITEXCOORD4SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4sARB"));
|
||||
bgl::blMultiTexCoord4svARB = reinterpret_cast<PFNGLMULTITEXCOORD4SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4svARB"));
|
||||
if (bgl::blActiveTextureARB && bgl::blClientActiveTextureARB && bgl::blMultiTexCoord1dARB && bgl::blMultiTexCoord1dvARB && bgl::blMultiTexCoord1fARB && bgl::blMultiTexCoord1fvARB && bgl::blMultiTexCoord1iARB && bgl::blMultiTexCoord1ivARB && bgl::blMultiTexCoord1sARB && bgl::blMultiTexCoord1svARB && bgl::blMultiTexCoord2dARB && bgl::blMultiTexCoord2dvARB && bgl::blMultiTexCoord2fARB && bgl::blMultiTexCoord2fvARB && bgl::blMultiTexCoord2iARB && bgl::blMultiTexCoord2ivARB && bgl::blMultiTexCoord2sARB && bgl::blMultiTexCoord2svARB && bgl::blMultiTexCoord3dARB && bgl::blMultiTexCoord3dvARB && bgl::blMultiTexCoord3fARB && bgl::blMultiTexCoord3fvARB && bgl::blMultiTexCoord3iARB && bgl::blMultiTexCoord3ivARB && bgl::blMultiTexCoord3sARB && bgl::blMultiTexCoord3svARB && bgl::blMultiTexCoord4dARB && bgl::blMultiTexCoord4dvARB && bgl::blMultiTexCoord4fARB && bgl::blMultiTexCoord4fvARB && bgl::blMultiTexCoord4iARB && bgl::blMultiTexCoord4ivARB && bgl::blMultiTexCoord4sARB && bgl::blMultiTexCoord4svARB) {
|
||||
EnableExtension(_GL_ARB_multitexture);
|
||||
RAS_EXT_support._ARB_multitexture = 1;
|
||||
if (doDebugMessages)
|
||||
std::cout << "Enabled GL_ARB_multitexture" << std::endl;
|
||||
} else {
|
||||
std::cout << "ERROR: GL_ARB_multitexture implementation is broken!" << std::endl;
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
if (QueryExtension("GL_ARB_multitexture")) {
|
||||
bgl::blActiveTextureARB = reinterpret_cast<PFNGLACTIVETEXTUREARBPROC>(bglGetProcAddress((const GLubyte *) "glActiveTextureARB"));
|
||||
bgl::blClientActiveTextureARB = reinterpret_cast<PFNGLCLIENTACTIVETEXTUREARBPROC>(bglGetProcAddress((const GLubyte *) "glClientActiveTextureARB"));
|
||||
bgl::blMultiTexCoord1dARB = reinterpret_cast<PFNGLMULTITEXCOORD1DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1dARB"));
|
||||
bgl::blMultiTexCoord1dvARB = reinterpret_cast<PFNGLMULTITEXCOORD1DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1dvARB"));
|
||||
bgl::blMultiTexCoord1fARB = reinterpret_cast<PFNGLMULTITEXCOORD1FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1fARB"));
|
||||
bgl::blMultiTexCoord1fvARB = reinterpret_cast<PFNGLMULTITEXCOORD1FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1fvARB"));
|
||||
bgl::blMultiTexCoord1iARB = reinterpret_cast<PFNGLMULTITEXCOORD1IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1iARB"));
|
||||
bgl::blMultiTexCoord1ivARB = reinterpret_cast<PFNGLMULTITEXCOORD1IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1ivARB"));
|
||||
bgl::blMultiTexCoord1sARB = reinterpret_cast<PFNGLMULTITEXCOORD1SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1sARB"));
|
||||
bgl::blMultiTexCoord1svARB = reinterpret_cast<PFNGLMULTITEXCOORD1SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord1svARB"));
|
||||
bgl::blMultiTexCoord2dARB = reinterpret_cast<PFNGLMULTITEXCOORD2DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2dARB"));
|
||||
bgl::blMultiTexCoord2dvARB = reinterpret_cast<PFNGLMULTITEXCOORD2DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2dvARB"));
|
||||
bgl::blMultiTexCoord2fARB = reinterpret_cast<PFNGLMULTITEXCOORD2FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2fARB"));
|
||||
bgl::blMultiTexCoord2fvARB = reinterpret_cast<PFNGLMULTITEXCOORD2FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2fvARB"));
|
||||
bgl::blMultiTexCoord2iARB = reinterpret_cast<PFNGLMULTITEXCOORD2IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2iARB"));
|
||||
bgl::blMultiTexCoord2ivARB = reinterpret_cast<PFNGLMULTITEXCOORD2IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2ivARB"));
|
||||
bgl::blMultiTexCoord2sARB = reinterpret_cast<PFNGLMULTITEXCOORD2SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2sARB"));
|
||||
bgl::blMultiTexCoord2svARB = reinterpret_cast<PFNGLMULTITEXCOORD2SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord2svARB"));
|
||||
bgl::blMultiTexCoord3dARB = reinterpret_cast<PFNGLMULTITEXCOORD3DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3dARB"));
|
||||
bgl::blMultiTexCoord3dvARB = reinterpret_cast<PFNGLMULTITEXCOORD3DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3dvARB"));
|
||||
bgl::blMultiTexCoord3fARB = reinterpret_cast<PFNGLMULTITEXCOORD3FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3fARB"));
|
||||
bgl::blMultiTexCoord3fvARB = reinterpret_cast<PFNGLMULTITEXCOORD3FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3fvARB"));
|
||||
bgl::blMultiTexCoord3iARB = reinterpret_cast<PFNGLMULTITEXCOORD3IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3iARB"));
|
||||
bgl::blMultiTexCoord3ivARB = reinterpret_cast<PFNGLMULTITEXCOORD3IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3ivARB"));
|
||||
bgl::blMultiTexCoord3sARB = reinterpret_cast<PFNGLMULTITEXCOORD3SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3sARB"));
|
||||
bgl::blMultiTexCoord3svARB = reinterpret_cast<PFNGLMULTITEXCOORD3SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord3svARB"));
|
||||
bgl::blMultiTexCoord4dARB = reinterpret_cast<PFNGLMULTITEXCOORD4DARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4dARB"));
|
||||
bgl::blMultiTexCoord4dvARB = reinterpret_cast<PFNGLMULTITEXCOORD4DVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4dvARB"));
|
||||
bgl::blMultiTexCoord4fARB = reinterpret_cast<PFNGLMULTITEXCOORD4FARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4fARB"));
|
||||
bgl::blMultiTexCoord4fvARB = reinterpret_cast<PFNGLMULTITEXCOORD4FVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4fvARB"));
|
||||
bgl::blMultiTexCoord4iARB = reinterpret_cast<PFNGLMULTITEXCOORD4IARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4iARB"));
|
||||
bgl::blMultiTexCoord4ivARB = reinterpret_cast<PFNGLMULTITEXCOORD4IVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4ivARB"));
|
||||
bgl::blMultiTexCoord4sARB = reinterpret_cast<PFNGLMULTITEXCOORD4SARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4sARB"));
|
||||
bgl::blMultiTexCoord4svARB = reinterpret_cast<PFNGLMULTITEXCOORD4SVARBPROC>(bglGetProcAddress((const GLubyte *) "glMultiTexCoord4svARB"));
|
||||
if (bgl::blActiveTextureARB && bgl::blClientActiveTextureARB && bgl::blMultiTexCoord1dARB && bgl::blMultiTexCoord1dvARB && bgl::blMultiTexCoord1fARB && bgl::blMultiTexCoord1fvARB && bgl::blMultiTexCoord1iARB && bgl::blMultiTexCoord1ivARB && bgl::blMultiTexCoord1sARB && bgl::blMultiTexCoord1svARB && bgl::blMultiTexCoord2dARB && bgl::blMultiTexCoord2dvARB && bgl::blMultiTexCoord2fARB && bgl::blMultiTexCoord2fvARB && bgl::blMultiTexCoord2iARB && bgl::blMultiTexCoord2ivARB && bgl::blMultiTexCoord2sARB && bgl::blMultiTexCoord2svARB && bgl::blMultiTexCoord3dARB && bgl::blMultiTexCoord3dvARB && bgl::blMultiTexCoord3fARB && bgl::blMultiTexCoord3fvARB && bgl::blMultiTexCoord3iARB && bgl::blMultiTexCoord3ivARB && bgl::blMultiTexCoord3sARB && bgl::blMultiTexCoord3svARB && bgl::blMultiTexCoord4dARB && bgl::blMultiTexCoord4dvARB && bgl::blMultiTexCoord4fARB && bgl::blMultiTexCoord4fvARB && bgl::blMultiTexCoord4iARB && bgl::blMultiTexCoord4ivARB && bgl::blMultiTexCoord4sARB && bgl::blMultiTexCoord4svARB) {
|
||||
EnableExtension(_GL_ARB_multitexture);
|
||||
RAS_EXT_support._ARB_multitexture = 1;
|
||||
if (doDebugMessages)
|
||||
std::cout << "Enabled GL_ARB_multitexture" << std::endl;
|
||||
} else {
|
||||
std::cout << "ERROR: GL_ARB_multitexture implementation is broken!" << std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@@ -42,7 +42,6 @@
|
||||
# define GL_GLEXT_LEGACY 1
|
||||
# include <OpenGL/gl.h>
|
||||
# include <OpenGL/glu.h>
|
||||
# undef __glext_h_
|
||||
|
||||
#else /* UNIX */
|
||||
# define __glext_h_
|
||||
@@ -52,12 +51,21 @@
|
||||
# undef __glext_h_
|
||||
#endif
|
||||
|
||||
#ifdef WITH_GLEXT
|
||||
#ifdef WIN32
|
||||
# include <GL/glext.h>
|
||||
#elif defined(__APPLE__)
|
||||
# include <OpenGL/glext.h>
|
||||
# undef __glext_h_
|
||||
# else
|
||||
# include <GL/glext.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __sgi
|
||||
# undef GL_ARB_vertex_program
|
||||
#endif
|
||||
|
||||
#include "glext.h"
|
||||
|
||||
#include "EXT_separate_specular_color.h"
|
||||
#include "ARB_multitexture.h"
|
||||
namespace bgl
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -33,6 +33,7 @@
|
||||
#endif
|
||||
|
||||
#include "RAS_VAOpenGLRasterizer.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#include <windows.h>
|
||||
@@ -294,50 +295,51 @@ void RAS_VAOpenGLRasterizer::IndexPrimitivesMulti( const vecVertexArray& vertexa
|
||||
|
||||
void RAS_VAOpenGLRasterizer::TexCoordPtr(const RAS_TexVert *tv, int enabled)
|
||||
{
|
||||
#ifdef GL_ARB_multitexture
|
||||
if(bgl::RAS_EXT_support._ARB_multitexture)
|
||||
{
|
||||
for(int unit=0; unit<enabled; unit++)
|
||||
#if defined(GL_ARB_multitexture) && defined(WITH_GLEXT)
|
||||
if (!getenv("WITHOUT_GLEXT")) {
|
||||
if(bgl::RAS_EXT_support._ARB_multitexture)
|
||||
{
|
||||
bgl::blClientActiveTextureARB(GL_TEXTURE0_ARB+unit);
|
||||
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
if( tv->getFlag() & TV_2NDUV && tv->getUnit() == unit ) {
|
||||
glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert), tv->getUV2());
|
||||
continue;
|
||||
}
|
||||
switch(m_texco[unit])
|
||||
for(int unit=0; unit<enabled; unit++)
|
||||
{
|
||||
case RAS_TEXCO_DISABLE:
|
||||
case RAS_TEXCO_OBJECT:
|
||||
case RAS_TEXCO_GEN:
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
break;
|
||||
case RAS_TEXCO_ORCO:
|
||||
case RAS_TEXCO_GLOB:
|
||||
glTexCoordPointer(3, GL_FLOAT, sizeof(RAS_TexVert),tv->getLocalXYZ());
|
||||
break;
|
||||
case RAS_TEXCO_UV1:
|
||||
glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert),tv->getUV1());
|
||||
break;
|
||||
case RAS_TEXCO_NORM:
|
||||
glTexCoordPointer(3, GL_FLOAT, sizeof(RAS_TexVert),tv->getNormal());
|
||||
break;
|
||||
case RAS_TEXTANGENT:
|
||||
glTexCoordPointer(4, GL_FLOAT, sizeof(RAS_TexVert),tv->getTangent());
|
||||
break;
|
||||
case RAS_TEXCO_UV2:
|
||||
glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert),tv->getUV2());
|
||||
break;
|
||||
bgl::blClientActiveTextureARB(GL_TEXTURE0_ARB+unit);
|
||||
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
if( tv->getFlag() & TV_2NDUV && tv->getUnit() == unit ) {
|
||||
glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert), tv->getUV2());
|
||||
continue;
|
||||
}
|
||||
switch(m_texco[unit])
|
||||
{
|
||||
case RAS_TEXCO_DISABLE:
|
||||
case RAS_TEXCO_OBJECT:
|
||||
case RAS_TEXCO_GEN:
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
break;
|
||||
case RAS_TEXCO_ORCO:
|
||||
case RAS_TEXCO_GLOB:
|
||||
glTexCoordPointer(3, GL_FLOAT, sizeof(RAS_TexVert),tv->getLocalXYZ());
|
||||
break;
|
||||
case RAS_TEXCO_UV1:
|
||||
glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert),tv->getUV1());
|
||||
break;
|
||||
case RAS_TEXCO_NORM:
|
||||
glTexCoordPointer(3, GL_FLOAT, sizeof(RAS_TexVert),tv->getNormal());
|
||||
break;
|
||||
case RAS_TEXTANGENT:
|
||||
glTexCoordPointer(4, GL_FLOAT, sizeof(RAS_TexVert),tv->getTangent());
|
||||
break;
|
||||
case RAS_TEXCO_UV2:
|
||||
glTexCoordPointer(2, GL_FLOAT, sizeof(RAS_TexVert),tv->getUV2());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef GL_ARB_vertex_program
|
||||
if(m_useTang && bgl::RAS_EXT_support._ARB_vertex_program)
|
||||
bgl::blVertexAttrib4fvARB(1/*tangent*/, tv->getTangent());
|
||||
if(m_useTang && bgl::RAS_EXT_support._ARB_vertex_program)
|
||||
bgl::blVertexAttrib4fvARB(1/*tangent*/, tv->getTangent());
|
||||
#endif
|
||||
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,9 @@
|
||||
#!/usr/bin/python
|
||||
Import ('env')
|
||||
|
||||
if env['WITH_BF_GLEXT'] == 1:
|
||||
env['CPPFLAGS'].append('-DWITH_GLEXT')
|
||||
|
||||
sources = env.Glob('*.cpp') #'RAS_GLExtensionManager.cpp RAS_ListRasterizer.cpp RAS_OpenGLRasterizer.cpp RAS_VAOpenGLRasterizer.cpp'
|
||||
|
||||
incs = '. #source/kernel/gen_system #intern/string #intern/moto/include #source/gameengine/Rasterizer'
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,10 @@ Import ('env')
|
||||
|
||||
sources = env.Glob('*.cpp')
|
||||
|
||||
if env['WITH_BF_GLEXT'] == 1:
|
||||
env['CPPFLAGS'].append('-DWITH_GLEXT')
|
||||
|
||||
|
||||
incs = '. #source/kernel/gen_system #intern/string #intern/moto/include'
|
||||
|
||||
if env['OURPLATFORM']=='win32-vc':
|
||||
|
@@ -59,6 +59,9 @@ all debug::
|
||||
# Object Config_Guess DIRectory
|
||||
export OCGDIR = $(NAN_OBJDIR)/$(CONFIG_GUESS)
|
||||
|
||||
export WITH_GLEXT?=true
|
||||
export WITH_BF_GLEXT?=$(WITH_GLEXT)
|
||||
|
||||
# Determines what targets are built
|
||||
export WITH_BF_DYNAMICOPENGL ?= true
|
||||
export WITH_BF_STATICOPENGL ?= false
|
||||
|
@@ -48,6 +48,7 @@ def validate_arguments(args, bc):
|
||||
'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC', 'BF_OPENGL_LINKFLAGS',
|
||||
'WITH_BF_FTGL', 'BF_FTGL', 'BF_FTGL_INC', 'BF_FTGL_LIB',
|
||||
'WITH_BF_PLAYER',
|
||||
'WITH_BF_GLEXT',
|
||||
'WITH_BF_BINRELOC',
|
||||
'CFLAGS', 'CCFLAGS', 'CPPFLAGS',
|
||||
'REL_CFLAGS', 'REL_CCFLAGS',
|
||||
@@ -272,6 +273,7 @@ def read_opts(cfg, args):
|
||||
('BF_FTGL_INC', 'FTGL include path', ''),
|
||||
('BF_FTGL_LIB', 'FTGL libraries', ''),
|
||||
|
||||
(BoolOption('WITH_BF_GLEXT', 'Enable GL Extenstions', 'true')),
|
||||
(BoolOption('WITH_BF_PLAYER', 'Build blenderplayer if true', 'false')),
|
||||
|
||||
('CFLAGS', 'C-compiler flags', ''),
|
||||
|
Reference in New Issue
Block a user