mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-09-08 14:17:06 +03:00
0028734: Visualization, OpenGl_Texture - fix initialization of 1D texture
OpenGl_Texture::Init() - fixed proxy check for 1D textures. Declarations.glsl - defined occTexture1D/3D aliases similar to occTexture2D.
This commit is contained in:
@@ -413,6 +413,14 @@ bool OpenGl_Texture::Init (const Handle(OpenGl_Context)& theCtx,
|
||||
const GLint anIntFormat = theCtx->IsGlGreaterEqual (3, 0) ? theTextFormat : thePixelFormat;
|
||||
#endif
|
||||
|
||||
if (theDataType == GL_FLOAT && !theCtx->arbTexFloat)
|
||||
{
|
||||
theCtx->PushMessage (GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_ERROR, 0, GL_DEBUG_SEVERITY_HIGH,
|
||||
"Error: floating-point textures are not supported by hardware.");
|
||||
Release (theCtx.operator->());
|
||||
return false;
|
||||
}
|
||||
|
||||
const GLsizei aMaxSize = theCtx->MaxTextureSize();
|
||||
if (theSizeX > aMaxSize
|
||||
|| theSizeY > aMaxSize)
|
||||
@@ -515,7 +523,7 @@ bool OpenGl_Texture::Init (const Handle(OpenGl_Context)& theCtx,
|
||||
glTexImage1D (GL_PROXY_TEXTURE_1D, 0, anIntFormat,
|
||||
theSizeX, 0,
|
||||
thePixelFormat, theDataType, NULL);
|
||||
glGetTexLevelParameteriv (GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &aTestWidth);
|
||||
glGetTexLevelParameteriv (GL_PROXY_TEXTURE_1D, 0, GL_TEXTURE_WIDTH, &aTestWidth);
|
||||
if (aTestWidth == 0)
|
||||
{
|
||||
// no memory or broken input parameters
|
||||
@@ -540,6 +548,8 @@ bool OpenGl_Texture::Init (const Handle(OpenGl_Context)& theCtx,
|
||||
Unbind (theCtx);
|
||||
return true;
|
||||
#else
|
||||
theCtx->PushMessage (GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_ERROR, 0, GL_DEBUG_SEVERITY_HIGH,
|
||||
"Error: 1D textures are not supported by hardware.");
|
||||
Release (theCtx.operator->());
|
||||
return false;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user