forked from Mirrorlandia_minetest/irrlicht
No longer try creating rtt's for compressed image formats
Those are not supported by any graphic card and we just end up with invalid textures. Returning 0 now instead in addRenderTargetTexture for OpenGL and D3D9. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6047 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
parent
83d368cef4
commit
50f4bdecbe
@ -3269,6 +3269,9 @@ ITexture* CD3D9Driver::addRenderTargetTexture(const core::dimension2d<u32>& size
|
|||||||
const io::path& name,
|
const io::path& name,
|
||||||
const ECOLOR_FORMAT format)
|
const ECOLOR_FORMAT format)
|
||||||
{
|
{
|
||||||
|
if ( IImage::isCompressedFormat(format) )
|
||||||
|
return 0;
|
||||||
|
|
||||||
CD3D9Texture* tex = new CD3D9Texture(this, size, name, ETT_2D, format);
|
CD3D9Texture* tex = new CD3D9Texture(this, size, name, ETT_2D, format);
|
||||||
if (tex)
|
if (tex)
|
||||||
{
|
{
|
||||||
@ -3287,6 +3290,9 @@ ITexture* CD3D9Driver::addRenderTargetTexture(const core::dimension2d<u32>& size
|
|||||||
ITexture* CD3D9Driver::addRenderTargetTextureCubemap(const irr::u32 sideLen,
|
ITexture* CD3D9Driver::addRenderTargetTextureCubemap(const irr::u32 sideLen,
|
||||||
const io::path& name, const ECOLOR_FORMAT format)
|
const io::path& name, const ECOLOR_FORMAT format)
|
||||||
{
|
{
|
||||||
|
if ( IImage::isCompressedFormat(format) )
|
||||||
|
return 0;
|
||||||
|
|
||||||
CD3D9Texture* tex = new CD3D9Texture(this, core::dimension2d<u32>(sideLen, sideLen), name, ETT_CUBEMAP, format);
|
CD3D9Texture* tex = new CD3D9Texture(this, core::dimension2d<u32>(sideLen, sideLen), name, ETT_CUBEMAP, format);
|
||||||
if (tex)
|
if (tex)
|
||||||
{
|
{
|
||||||
|
@ -3769,6 +3769,9 @@ IVideoDriver* COpenGLDriver::getVideoDriver()
|
|||||||
ITexture* COpenGLDriver::addRenderTargetTexture(const core::dimension2d<u32>& size,
|
ITexture* COpenGLDriver::addRenderTargetTexture(const core::dimension2d<u32>& size,
|
||||||
const io::path& name, const ECOLOR_FORMAT format)
|
const io::path& name, const ECOLOR_FORMAT format)
|
||||||
{
|
{
|
||||||
|
if ( IImage::isCompressedFormat(format) )
|
||||||
|
return 0;
|
||||||
|
|
||||||
//disable mip-mapping
|
//disable mip-mapping
|
||||||
bool generateMipLevels = getTextureCreationFlag(ETCF_CREATE_MIP_MAPS);
|
bool generateMipLevels = getTextureCreationFlag(ETCF_CREATE_MIP_MAPS);
|
||||||
setTextureCreationFlag(ETCF_CREATE_MIP_MAPS, false);
|
setTextureCreationFlag(ETCF_CREATE_MIP_MAPS, false);
|
||||||
@ -3796,6 +3799,9 @@ ITexture* COpenGLDriver::addRenderTargetTexture(const core::dimension2d<u32>& si
|
|||||||
//! Creates a render target texture for a cubemap
|
//! Creates a render target texture for a cubemap
|
||||||
ITexture* COpenGLDriver::addRenderTargetTextureCubemap(const irr::u32 sideLen, const io::path& name, const ECOLOR_FORMAT format)
|
ITexture* COpenGLDriver::addRenderTargetTextureCubemap(const irr::u32 sideLen, const io::path& name, const ECOLOR_FORMAT format)
|
||||||
{
|
{
|
||||||
|
if ( IImage::isCompressedFormat(format) )
|
||||||
|
return 0;
|
||||||
|
|
||||||
//disable mip-mapping
|
//disable mip-mapping
|
||||||
bool generateMipLevels = getTextureCreationFlag(ETCF_CREATE_MIP_MAPS);
|
bool generateMipLevels = getTextureCreationFlag(ETCF_CREATE_MIP_MAPS);
|
||||||
setTextureCreationFlag(ETCF_CREATE_MIP_MAPS, false);
|
setTextureCreationFlag(ETCF_CREATE_MIP_MAPS, false);
|
||||||
@ -4227,10 +4233,13 @@ bool COpenGLDriver::getColorFormatParameters(ECOLOR_FORMAT format, GLint& intern
|
|||||||
pixelType = GL_UNSIGNED_INT_8_8_8_8_REV;
|
pixelType = GL_UNSIGNED_INT_8_8_8_8_REV;
|
||||||
break;
|
break;
|
||||||
case ECF_DXT1:
|
case ECF_DXT1:
|
||||||
supported = true;
|
if (queryOpenGLFeature(COpenGLExtensionHandler::IRR_EXT_texture_compression_s3tc))
|
||||||
internalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
|
{
|
||||||
pixelFormat = GL_BGRA_EXT;
|
supported = true;
|
||||||
pixelType = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
|
internalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
|
||||||
|
pixelFormat = GL_BGRA_EXT;
|
||||||
|
pixelType = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ECF_DXT2:
|
case ECF_DXT2:
|
||||||
case ECF_DXT3:
|
case ECF_DXT3:
|
||||||
|
Loading…
Reference in New Issue
Block a user