diff --git a/source/Irrlicht/COpenGLCoreTexture.h b/source/Irrlicht/COpenGLCoreTexture.h index ceba850a3..0fcd06caa 100644 --- a/source/Irrlicht/COpenGLCoreTexture.h +++ b/source/Irrlicht/COpenGLCoreTexture.h @@ -54,6 +54,8 @@ class COpenGLCoreTexture : public ITexture KeepImage = Driver->getTextureCreationFlag(ETCF_ALLOW_MEMORY_COPY); getImageValues(images[0]); + if (!InternalFormat) + return; const core::array* tmpImages = &images; @@ -160,6 +162,7 @@ class COpenGLCoreTexture : public ITexture if ( !Driver->getColorFormatParameters(ColorFormat, InternalFormat, PixelFormat, PixelType, &Converter) ) { os::Printer::log("COpenGLCoreTexture: Color format is not supported", ColorFormatNames[ColorFormat < ECF_UNKNOWN?ColorFormat:ECF_UNKNOWN], ELL_ERROR); + return; } GL.GenTextures(1, &TextureName); @@ -503,7 +506,8 @@ class COpenGLCoreTexture : public ITexture if ( !Driver->getColorFormatParameters(ColorFormat, InternalFormat, PixelFormat, PixelType, &Converter) ) { os::Printer::log("getImageValues: Color format is not supported", ColorFormatNames[ColorFormat < ECF_UNKNOWN?ColorFormat:ECF_UNKNOWN], ELL_ERROR); - // not quitting as it will use some alternative internal format + InternalFormat = 0; + return; } if (IImage::isCompressedFormat(image->getColorFormat()))