GL3: Remove GL_ARB_texture_compression

--HG--
branch : opengl3
hg/feature/opengl3
kaetemi 11 years ago
parent 3c1b39e103
commit 79141e0a9c

@ -101,15 +101,6 @@ NEL_PFNGLMULTITEXCOORD4IVARBPROC nglMultiTexCoord4ivARB;
NEL_PFNGLMULTITEXCOORD4FVARBPROC nglMultiTexCoord4fvARB; NEL_PFNGLMULTITEXCOORD4FVARBPROC nglMultiTexCoord4fvARB;
NEL_PFNGLMULTITEXCOORD4DVARBPROC nglMultiTexCoord4dvARB; NEL_PFNGLMULTITEXCOORD4DVARBPROC nglMultiTexCoord4dvARB;
// ARB_TextureCompression.
NEL_PFNGLCOMPRESSEDTEXIMAGE3DARBPROC nglCompressedTexImage3DARB;
NEL_PFNGLCOMPRESSEDTEXIMAGE2DARBPROC nglCompressedTexImage2DARB;
NEL_PFNGLCOMPRESSEDTEXIMAGE1DARBPROC nglCompressedTexImage1DARB;
NEL_PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC nglCompressedTexSubImage3DARB;
NEL_PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC nglCompressedTexSubImage2DARB;
NEL_PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC nglCompressedTexSubImage1DARB;
NEL_PFNGLGETCOMPRESSEDTEXIMAGEARBPROC nglGetCompressedTexImageARB;
// VertexWeighting. // VertexWeighting.
NEL_PFNGLVERTEXWEIGHTFEXTPROC nglVertexWeightfEXT; NEL_PFNGLVERTEXWEIGHTFEXTPROC nglVertexWeightfEXT;
NEL_PFNGLVERTEXWEIGHTFVEXTPROC nglVertexWeightfvEXT; NEL_PFNGLVERTEXWEIGHTFVEXTPROC nglVertexWeightfvEXT;
@ -339,6 +330,14 @@ PFNGLBLITFRAMEBUFFERPROC nglBlitFramebuffer;
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC nglRenderbufferStorageMultisample; PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC nglRenderbufferStorageMultisample;
PFNGLFRAMEBUFFERTEXTURELAYERPROC nglFramebufferTextureLayer; PFNGLFRAMEBUFFERTEXTURELAYERPROC nglFramebufferTextureLayer;
PFNGLCOMPRESSEDTEXIMAGE3DPROC nglCompressedTexImage3D;
PFNGLCOMPRESSEDTEXIMAGE2DPROC nglCompressedTexImage2D;
PFNGLCOMPRESSEDTEXIMAGE1DPROC nglCompressedTexImage1D;
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC nglCompressedTexSubImage3D;
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC nglCompressedTexSubImage2D;
PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC nglCompressedTexSubImage1D;
PFNGLGETCOMPRESSEDTEXIMAGEPROC nglGetCompressedTexImage;
// GL_ARB_separate_shader_objects // GL_ARB_separate_shader_objects
PFNGLUSEPROGRAMSTAGESPROC nglUseProgramStages; PFNGLUSEPROGRAMSTAGESPROC nglUseProgramStages;
PFNGLACTIVESHADERPROGRAMPROC nglActiveShaderProgram; PFNGLACTIVESHADERPROGRAMPROC nglActiveShaderProgram;
@ -514,24 +513,6 @@ static bool setupARBMultiTexture(const char *glext)
return true; return true;
} }
// *********************************
static bool setupARBTextureCompression(const char *glext)
{
H_AUTO_OGL(setupARBTextureCompression);
CHECK_EXT("GL_ARB_texture_compression");
CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXIMAGE3DARBPROC, glCompressedTexImage3DARB);
CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXIMAGE2DARBPROC, glCompressedTexImage2DARB);
CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXIMAGE1DARBPROC, glCompressedTexImage1DARB);
CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC, glCompressedTexSubImage3DARB);
CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC, glCompressedTexSubImage2DARB);
CHECK_ADDRESS(NEL_PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC, glCompressedTexSubImage1DARB);
CHECK_ADDRESS(NEL_PFNGLGETCOMPRESSEDTEXIMAGEARBPROC, glGetCompressedTexImageARB);
return true;
}
// ********************************* // *********************************
static bool setupARBTextureNonPowerOfTwo(const char *glext) static bool setupARBTextureNonPowerOfTwo(const char *glext)
{ {
@ -793,7 +774,15 @@ static bool setupGLCore(const char *glext)
CHECK_ADDRESS(PFNGLBLITFRAMEBUFFERPROC, glBlitFramebuffer); CHECK_ADDRESS(PFNGLBLITFRAMEBUFFERPROC, glBlitFramebuffer);
CHECK_ADDRESS(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC, glRenderbufferStorageMultisample); CHECK_ADDRESS(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC, glRenderbufferStorageMultisample);
CHECK_ADDRESS(PFNGLFRAMEBUFFERTEXTURELAYERPROC, glFramebufferTextureLayer); CHECK_ADDRESS(PFNGLFRAMEBUFFERTEXTURELAYERPROC, glFramebufferTextureLayer);
CHECK_ADDRESS(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D);
CHECK_ADDRESS(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D);
CHECK_ADDRESS(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D);
CHECK_ADDRESS(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D);
CHECK_ADDRESS(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D);
CHECK_ADDRESS(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D);
CHECK_ADDRESS(PFNGLGETCOMPRESSEDTEXIMAGEPROC, glGetCompressedTexImage);
return true; return true;
} }
@ -917,9 +906,6 @@ void registerGlExtensions(CGlExtensions &ext)
ext.NbTextureStages= (ntext<((GLint)IDRV_MAT_MAXTEXTURES)?ntext:IDRV_MAT_MAXTEXTURES); ext.NbTextureStages= (ntext<((GLint)IDRV_MAT_MAXTEXTURES)?ntext:IDRV_MAT_MAXTEXTURES);
} }
// Check ARBTextureCompression
ext.ARBTextureCompression= setupARBTextureCompression(glext);
// Check ARBTextureNonPowerOfTwo // Check ARBTextureNonPowerOfTwo
ext.ARBTextureNonPowerOfTwo= setupARBTextureNonPowerOfTwo(glext); ext.ARBTextureNonPowerOfTwo= setupARBTextureNonPowerOfTwo(glext);
@ -927,7 +913,7 @@ void registerGlExtensions(CGlExtensions &ext)
ext.ARBMultisample = setupARBMultisample(glext); ext.ARBMultisample = setupARBMultisample(glext);
// Compression S3TC OK iff ARBTextureCompression. // Compression S3TC OK iff ARBTextureCompression.
ext.EXTTextureCompressionS3TC= (ext.ARBTextureCompression && setupEXTTextureCompressionS3TC(glext)); ext.EXTTextureCompressionS3TC= setupEXTTextureCompressionS3TC(glext);
// Check if NVidia GL_EXT_vertex_weighting is available. // Check if NVidia GL_EXT_vertex_weighting is available.
ext.EXTVertexWeighting= setupEXTVertexWeighting(glext); ext.EXTVertexWeighting= setupEXTVertexWeighting(glext);

@ -35,26 +35,30 @@ struct CGlExtensions
{ {
std::string GLVersion; std::string GLVersion;
// Required Extensions. // Required extensions
bool GLCore; bool GLCore;
bool ARBSeparateShaderObjects; bool ARBSeparateShaderObjects;
// Optional extensions
bool EXTTextureCompressionS3TC;
bool EXTTextureFilterAnisotropic;
float EXTTextureFilterAnisotropicMaximum;
// Required Extensions. (old)
bool ARBMultiTexture; bool ARBMultiTexture;
uint NbTextureStages; uint NbTextureStages;
// Optional Extensions. // Optional Extensions. (old)
bool EXTTextureCompressionS3TC;
bool EXTVertexWeighting; bool EXTVertexWeighting;
bool EXTSeparateSpecularColor; bool EXTSeparateSpecularColor;
bool ARBTextureCubeMap; bool ARBTextureCubeMap;
bool NVTextureRectangle; bool NVTextureRectangle;
bool EXTTextureRectangle; bool EXTTextureRectangle;
bool ARBTextureRectangle; bool ARBTextureRectangle;
bool EXTTextureFilterAnisotropic;
float EXTTextureFilterAnisotropicMaximum;
bool EXTSecondaryColor; bool EXTSecondaryColor;
bool EXTBlendColor; bool EXTBlendColor;
bool ARBTextureNonPowerOfTwo;
bool ARBMultisample;
// WGL ARB extensions, true if supported // WGL ARB extensions, true if supported
bool WGLARBPBuffer; bool WGLARBPBuffer;
@ -66,18 +70,12 @@ struct CGlExtensions
bool GLXSGISwapControl; bool GLXSGISwapControl;
bool GLXMESASwapControl; bool GLXMESASwapControl;
// ARB Extensions
bool ARBTextureCompression;
bool ARBTextureNonPowerOfTwo;
bool ARBMultisample;
public: public:
CGlExtensions() CGlExtensions()
{ {
// Fill all false by default. // Fill all false by default.
ARBMultiTexture= false; ARBMultiTexture= false;
NbTextureStages= 1; NbTextureStages= 1;
ARBTextureCompression= false;
EXTTextureCompressionS3TC= false; EXTTextureCompressionS3TC= false;
EXTVertexWeighting= false; EXTVertexWeighting= false;
EXTSeparateSpecularColor= false; EXTSeparateSpecularColor= false;
@ -107,7 +105,6 @@ public:
result += "\n Texturing: "; result += "\n Texturing: ";
result += ARBMultiTexture ? "ARBMultiTexture " : ""; result += ARBMultiTexture ? "ARBMultiTexture " : "";
result += ARBTextureCompression ? "ARBTextureCompression " : "";
result += EXTTextureCompressionS3TC ? "EXTTextureCompressionS3TC " : ""; result += EXTTextureCompressionS3TC ? "EXTTextureCompressionS3TC " : "";
result += ARBTextureCubeMap ? "ARBTextureCubeMap " : ""; result += ARBTextureCubeMap ? "ARBTextureCubeMap " : "";
result += NVTextureRectangle ? "NVTextureRectangle " : ""; result += NVTextureRectangle ? "NVTextureRectangle " : "";
@ -213,17 +210,6 @@ extern NEL_PFNGLMULTITEXCOORD4FVARBPROC nglMultiTexCoord4fvARB;
extern NEL_PFNGLMULTITEXCOORD4DVARBPROC nglMultiTexCoord4dvARB; extern NEL_PFNGLMULTITEXCOORD4DVARBPROC nglMultiTexCoord4dvARB;
// ARB_TextureCompression.
//========================
extern NEL_PFNGLCOMPRESSEDTEXIMAGE3DARBPROC nglCompressedTexImage3DARB;
extern NEL_PFNGLCOMPRESSEDTEXIMAGE2DARBPROC nglCompressedTexImage2DARB;
extern NEL_PFNGLCOMPRESSEDTEXIMAGE1DARBPROC nglCompressedTexImage1DARB;
extern NEL_PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC nglCompressedTexSubImage3DARB;
extern NEL_PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC nglCompressedTexSubImage2DARB;
extern NEL_PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC nglCompressedTexSubImage1DARB;
extern NEL_PFNGLGETCOMPRESSEDTEXIMAGEARBPROC nglGetCompressedTexImageARB;
// VertexWeighting. // VertexWeighting.
//================== //==================
extern NEL_PFNGLVERTEXWEIGHTFEXTPROC nglVertexWeightfEXT; extern NEL_PFNGLVERTEXWEIGHTFEXTPROC nglVertexWeightfEXT;
@ -463,6 +449,14 @@ extern PFNGLBLITFRAMEBUFFERPROC nglBlitFramebuffer;
extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC nglRenderbufferStorageMultisample; extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC nglRenderbufferStorageMultisample;
extern PFNGLFRAMEBUFFERTEXTURELAYERPROC nglFramebufferTextureLayer; extern PFNGLFRAMEBUFFERTEXTURELAYERPROC nglFramebufferTextureLayer;
extern PFNGLCOMPRESSEDTEXIMAGE3DPROC nglCompressedTexImage3D;
extern PFNGLCOMPRESSEDTEXIMAGE2DPROC nglCompressedTexImage2D;
extern PFNGLCOMPRESSEDTEXIMAGE1DPROC nglCompressedTexImage1D;
extern PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC nglCompressedTexSubImage3D;
extern PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC nglCompressedTexSubImage2D;
extern PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC nglCompressedTexSubImage1D;
extern PFNGLGETCOMPRESSEDTEXIMAGEPROC nglGetCompressedTexImage;
// GL_ARB_separate_shader_objects // GL_ARB_separate_shader_objects
extern PFNGLUSEPROGRAMSTAGESPROC nglUseProgramStages; extern PFNGLUSEPROGRAMSTAGESPROC nglUseProgramStages;
extern PFNGLACTIVESHADERPROGRAMPROC nglActiveShaderProgram; extern PFNGLACTIVESHADERPROGRAMPROC nglActiveShaderProgram;

@ -917,7 +917,7 @@ bool CDriverGL3::setupTextureEx (ITexture& tex, bool bUpload, bool &bAllUploaded
sint size= tex.getPixels(i).size(); sint size= tex.getPixels(i).size();
if (bUpload) if (bUpload)
{ {
nglCompressedTexImage2DARB (GL_TEXTURE_2D, i-decalMipMapResize, glfmt, nglCompressedTexImage2D(GL_TEXTURE_2D, i-decalMipMapResize, glfmt,
tex.getWidth(i),tex.getHeight(i), 0, size, ptr); tex.getWidth(i),tex.getHeight(i), 0, size, ptr);
bAllUploaded = true; bAllUploaded = true;
} }
@ -1188,7 +1188,7 @@ bool CDriverGL3::uploadTexture (ITexture& tex, CRect& rect, uint8 nNumMipMap)
nlassert (((x0&3) == 0) && ((y0&3) == 0)); nlassert (((x0&3) == 0) && ((y0&3) == 0));
if ((w>=4) && (h>=4)) if ((w>=4) && (h>=4))
{ {
nglCompressedTexSubImage2DARB ( nglCompressedTexSubImage2D(
GL_TEXTURE_2D, nNumMipMap-decalMipMapResize, GL_TEXTURE_2D, nNumMipMap-decalMipMapResize,
x0, y0, (x1-x0), (y1-y0), glfmt, imageSize, ptr); x0, y0, (x1-x0), (y1-y0), glfmt, imageSize, ptr);
} }
@ -1198,7 +1198,7 @@ bool CDriverGL3::uploadTexture (ITexture& tex, CRect& rect, uint8 nNumMipMap)
// of the mipmap is less than 4 pixel so we use the other form. (its not really time critical // of the mipmap is less than 4 pixel so we use the other form. (its not really time critical
// to upload 16 bytes so we can do it twice if texture is cut) // to upload 16 bytes so we can do it twice if texture is cut)
imageSize = tex.getPixels(nNumMipMap).size(); imageSize = tex.getPixels(nNumMipMap).size();
nglCompressedTexImage2DARB ( nglCompressedTexImage2D(
GL_TEXTURE_2D, nNumMipMap-decalMipMapResize, GL_TEXTURE_2D, nNumMipMap-decalMipMapResize,
glfmt, w, h, 0, imageSize, ptr); glfmt, w, h, 0, imageSize, ptr);
} }

Loading…
Cancel
Save