Remove PCX support
This commit is contained in:
@@ -91,7 +91,6 @@ source/Irrlicht/CParticlePointEmitter.cpp
|
||||
source/Irrlicht/CTextSceneNode.cpp
|
||||
source/Irrlicht/CIrrDeviceLinux.cpp
|
||||
source/Irrlicht/CIrrDeviceStub.cpp
|
||||
source/Irrlicht/CImageWriterPCX.cpp
|
||||
source/Irrlicht/CGUIInOutFader.cpp
|
||||
source/Irrlicht/CGUITreeView.cpp
|
||||
source/Irrlicht/CAnimatedMeshSceneNode.cpp
|
||||
@@ -126,7 +125,6 @@ source/Irrlicht/CSkyBoxSceneNode.cpp
|
||||
source/Irrlicht/CWriteFile.cpp
|
||||
source/Irrlicht/COctreeTriangleSelector.cpp
|
||||
source/Irrlicht/CFileList.cpp
|
||||
source/Irrlicht/CImageLoaderPCX.cpp
|
||||
source/Irrlicht/CIrrDeviceSDL.cpp
|
||||
source/Irrlicht/COSOperator.cpp
|
||||
source/Irrlicht/CImageLoaderJPG.cpp
|
||||
@@ -257,7 +255,6 @@ source/Irrlicht/CGUISpriteBank.h
|
||||
source/Irrlicht/CSceneNodeAnimatorFlyStraight.h
|
||||
source/Irrlicht/COpenGLExtensionHandler.h
|
||||
source/Irrlicht/CGUIScrollBar.h
|
||||
source/Irrlicht/CImageLoaderPCX.h
|
||||
source/Irrlicht/CTriangleSelector.h
|
||||
source/Irrlicht/CParticleGravityAffector.h
|
||||
source/Irrlicht/CGUIModalScreen.h
|
||||
@@ -276,7 +273,6 @@ source/Irrlicht/CEmptySceneNode.h
|
||||
source/Irrlicht/CParticleSystemSceneNode.h
|
||||
source/Irrlicht/CImageWriterPNG.h
|
||||
source/Irrlicht/CParticleScaleAffector.h
|
||||
source/Irrlicht/CImageWriterPCX.h
|
||||
source/Irrlicht/CImageLoaderJPG.h
|
||||
source/Irrlicht/CBillboardSceneNode.h
|
||||
source/Irrlicht/CIrrDeviceSDL.h
|
||||
|
||||
@@ -279,11 +279,6 @@ B3D, MS3D or X meshes */
|
||||
#ifdef NO_IRR_COMPILE_WITH_JPG_LOADER_
|
||||
#undef _IRR_COMPILE_WITH_JPG_LOADER_
|
||||
#endif
|
||||
//! Define _IRR_COMPILE_WITH_PCX_LOADER_ if you want to load .pcx files
|
||||
//#define _IRR_COMPILE_WITH_PCX_LOADER_
|
||||
#ifdef NO_IRR_COMPILE_WITH_PCX_LOADER_
|
||||
#undef _IRR_COMPILE_WITH_PCX_LOADER_
|
||||
#endif
|
||||
//! Define _IRR_COMPILE_WITH_PNG_LOADER_ if you want to load .png files
|
||||
#define _IRR_COMPILE_WITH_PNG_LOADER_
|
||||
#ifdef NO_IRR_COMPILE_WITH_PNG_LOADER_
|
||||
@@ -330,11 +325,6 @@ B3D, MS3D or X meshes */
|
||||
#ifdef NO_IRR_COMPILE_WITH_JPG_WRITER_
|
||||
#undef _IRR_COMPILE_WITH_JPG_WRITER_
|
||||
#endif
|
||||
//! Define _IRR_COMPILE_WITH_PCX_WRITER_ if you want to write .pcx files
|
||||
//#define _IRR_COMPILE_WITH_PCX_WRITER_
|
||||
#ifdef NO_IRR_COMPILE_WITH_PCX_WRITER_
|
||||
#undef _IRR_COMPILE_WITH_PCX_WRITER_
|
||||
#endif
|
||||
//! Define _IRR_COMPILE_WITH_PNG_WRITER_ if you want to write .png files
|
||||
#define _IRR_COMPILE_WITH_PNG_WRITER_
|
||||
#ifdef NO_IRR_COMPILE_WITH_PNG_WRITER_
|
||||
|
||||
@@ -1,231 +0,0 @@
|
||||
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
||||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "CImageLoaderPCX.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_PCX_LOADER_
|
||||
|
||||
#include "IReadFile.h"
|
||||
#include "SColor.h"
|
||||
#include "CColorConverter.h"
|
||||
#include "CImage.h"
|
||||
#include "os.h"
|
||||
#include "irrString.h"
|
||||
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
{
|
||||
|
||||
|
||||
//! constructor
|
||||
CImageLoaderPCX::CImageLoaderPCX()
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
setDebugName("CImageLoaderPCX");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
//! returns true if the file maybe is able to be loaded by this class
|
||||
//! based on the file extension (e.g. ".tga")
|
||||
bool CImageLoaderPCX::isALoadableFileExtension(const io::path& filename) const
|
||||
{
|
||||
return core::hasFileExtension ( filename, "pcx" );
|
||||
}
|
||||
|
||||
|
||||
|
||||
//! returns true if the file maybe is able to be loaded by this class
|
||||
bool CImageLoaderPCX::isALoadableFileFormat(io::IReadFile* file) const
|
||||
{
|
||||
u8 headerID;
|
||||
file->read(&headerID, sizeof(headerID));
|
||||
return headerID == 0x0a;
|
||||
}
|
||||
|
||||
|
||||
//! creates a image from the file
|
||||
IImage* CImageLoaderPCX::loadImage(io::IReadFile* file) const
|
||||
{
|
||||
SPCXHeader header;
|
||||
s32* paletteData = 0;
|
||||
|
||||
file->read(&header, sizeof(header));
|
||||
#ifdef __BIG_ENDIAN__
|
||||
header.XMin = os::Byteswap::byteswap(header.XMin);
|
||||
header.YMin = os::Byteswap::byteswap(header.YMin);
|
||||
header.XMax = os::Byteswap::byteswap(header.XMax);
|
||||
header.YMax = os::Byteswap::byteswap(header.YMax);
|
||||
header.HorizDPI = os::Byteswap::byteswap(header.HorizDPI);
|
||||
header.VertDPI = os::Byteswap::byteswap(header.VertDPI);
|
||||
header.BytesPerLine = os::Byteswap::byteswap(header.BytesPerLine);
|
||||
header.PaletteType = os::Byteswap::byteswap(header.PaletteType);
|
||||
header.HScrSize = os::Byteswap::byteswap(header.HScrSize);
|
||||
header.VScrSize = os::Byteswap::byteswap(header.VScrSize);
|
||||
#endif
|
||||
|
||||
//! return if the header is wrong
|
||||
if (header.Manufacturer != 0x0a && header.Encoding != 0x01)
|
||||
return 0;
|
||||
|
||||
// return if this isn't a supported type
|
||||
if ((header.BitsPerPixel != 8) && (header.BitsPerPixel != 4) && (header.BitsPerPixel != 1))
|
||||
{
|
||||
os::Printer::log("Unsupported bits per pixel in PCX file.",
|
||||
file->getFileName(), irr::ELL_WARNING);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// read palette
|
||||
if( (header.BitsPerPixel == 8) && (header.Planes == 1) )
|
||||
{
|
||||
// the palette indicator (usually a 0x0c is found infront of the actual palette data)
|
||||
// is ignored because some exporters seem to forget to write it. This would result in
|
||||
// no image loaded before, now only wrong colors will be set.
|
||||
const long pos = file->getPos();
|
||||
file->seek( file->getSize()-256*3, false );
|
||||
|
||||
u8 *tempPalette = new u8[768];
|
||||
paletteData = new s32[256];
|
||||
file->read( tempPalette, 768 );
|
||||
|
||||
for( s32 i=0; i<256; i++ )
|
||||
{
|
||||
paletteData[i] = (0xff000000 |
|
||||
(tempPalette[i*3+0] << 16) |
|
||||
(tempPalette[i*3+1] << 8) |
|
||||
(tempPalette[i*3+2]));
|
||||
}
|
||||
|
||||
delete [] tempPalette;
|
||||
|
||||
file->seek(pos);
|
||||
}
|
||||
else if( header.BitsPerPixel == 4 )
|
||||
{
|
||||
paletteData = new s32[16];
|
||||
for( s32 i=0; i<16; i++ )
|
||||
{
|
||||
paletteData[i] = (0xff000000 |
|
||||
(header.Palette[i*3+0] << 16) |
|
||||
(header.Palette[i*3+1] << 8) |
|
||||
(header.Palette[i*3+2]));
|
||||
}
|
||||
}
|
||||
|
||||
// read image data
|
||||
const s32 width = header.XMax - header.XMin + 1;
|
||||
const s32 height = header.YMax - header.YMin + 1;
|
||||
const s32 imagebytes = header.BytesPerLine * header.Planes * header.BitsPerPixel * height / 8;
|
||||
u8* PCXData = new u8[imagebytes];
|
||||
|
||||
u8 cnt, value;
|
||||
s32 lineoffset=0, linestart=0, nextmode=1;
|
||||
for(s32 offset = 0; offset < imagebytes; offset += cnt)
|
||||
{
|
||||
file->read(&cnt, 1);
|
||||
if( !((cnt & 0xc0) == 0xc0) )
|
||||
{
|
||||
value = cnt;
|
||||
cnt = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
cnt &= 0x3f;
|
||||
file->read(&value, 1);
|
||||
}
|
||||
if (header.Planes==1)
|
||||
memset(PCXData+offset, value, cnt);
|
||||
else
|
||||
{
|
||||
for (u32 i=0; i<cnt; ++i)
|
||||
{
|
||||
PCXData[linestart+lineoffset]=value;
|
||||
lineoffset += 3;
|
||||
if (lineoffset>=3*header.BytesPerLine)
|
||||
{
|
||||
lineoffset=nextmode;
|
||||
if (++nextmode==3)
|
||||
nextmode=0;
|
||||
if (lineoffset==0)
|
||||
linestart += 3*header.BytesPerLine;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// create image
|
||||
video::IImage* image = 0;
|
||||
s32 pad = (header.BytesPerLine - width * header.BitsPerPixel / 8) * header.Planes;
|
||||
|
||||
if (pad < 0)
|
||||
pad = -pad;
|
||||
|
||||
if (header.BitsPerPixel==8)
|
||||
{
|
||||
switch(header.Planes) // TODO: Other formats
|
||||
{
|
||||
case 1:
|
||||
image = new CImage(ECF_A1R5G5B5, core::dimension2d<u32>(width, height));
|
||||
if (image)
|
||||
CColorConverter::convert8BitTo16Bit(PCXData, (s16*)image->lock(), width, height, paletteData, pad);
|
||||
break;
|
||||
case 3:
|
||||
image = new CImage(ECF_R8G8B8, core::dimension2d<u32>(width, height));
|
||||
if (image)
|
||||
CColorConverter::convert24BitTo24Bit(PCXData, (u8*)image->lock(), width, height, pad);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (header.BitsPerPixel==4)
|
||||
{
|
||||
if (header.Planes==1)
|
||||
{
|
||||
image = new CImage(ECF_A1R5G5B5, core::dimension2d<u32>(width, height));
|
||||
if (image)
|
||||
CColorConverter::convert4BitTo16Bit(PCXData, (s16*)image->lock(), width, height, paletteData, pad);
|
||||
}
|
||||
}
|
||||
else if (header.BitsPerPixel==1)
|
||||
{
|
||||
if (header.Planes==4)
|
||||
{
|
||||
image = new CImage(ECF_A1R5G5B5, core::dimension2d<u32>(width, height));
|
||||
if (image)
|
||||
CColorConverter::convert4BitTo16Bit(PCXData, (s16*)image->lock(), width, height, paletteData, pad);
|
||||
}
|
||||
else if (header.Planes==1)
|
||||
{
|
||||
image = new CImage(ECF_A1R5G5B5, core::dimension2d<u32>(width, height));
|
||||
if (image)
|
||||
CColorConverter::convert1BitTo16Bit(PCXData, (s16*)image->lock(), width, height, pad);
|
||||
}
|
||||
}
|
||||
if (image)
|
||||
image->unlock();
|
||||
|
||||
// clean up
|
||||
|
||||
delete [] paletteData;
|
||||
delete [] PCXData;
|
||||
|
||||
return image;
|
||||
}
|
||||
|
||||
|
||||
//! creates a loader which is able to load pcx images
|
||||
IImageLoader* createImageLoaderPCX()
|
||||
{
|
||||
return new CImageLoaderPCX();
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // end namespace video
|
||||
} // end namespace irr
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
||||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#ifndef __C_IMAGE_LOADER_PCX_H_INCLUDED__
|
||||
#define __C_IMAGE_LOADER_PCX_H_INCLUDED__
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
|
||||
#include "IImageLoader.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
{
|
||||
|
||||
#if defined(_IRR_COMPILE_WITH_PCX_LOADER_) || defined(_IRR_COMPILE_WITH_PCX_WRITER_)
|
||||
|
||||
// byte-align structures
|
||||
#include "irrpack.h"
|
||||
|
||||
struct SPCXHeader
|
||||
{
|
||||
u8 Manufacturer;
|
||||
u8 Version;
|
||||
u8 Encoding;
|
||||
u8 BitsPerPixel;
|
||||
u16 XMin;
|
||||
u16 YMin;
|
||||
u16 XMax;
|
||||
u16 YMax;
|
||||
u16 HorizDPI;
|
||||
u16 VertDPI;
|
||||
u8 Palette[48];
|
||||
u8 Reserved;
|
||||
u8 Planes;
|
||||
u16 BytesPerLine;
|
||||
u16 PaletteType;
|
||||
u16 HScrSize;
|
||||
u16 VScrSize;
|
||||
u8 Filler[54];
|
||||
} PACK_STRUCT;
|
||||
|
||||
|
||||
// Default alignment
|
||||
#include "irrunpack.h"
|
||||
|
||||
#endif // compile with loader or writer
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_PCX_LOADER_
|
||||
|
||||
/*!
|
||||
Image Loader for Windows PCX bitmaps.
|
||||
This loader was written and sent in by Dean P. Macri. I modified
|
||||
only some small bits of it.
|
||||
*/
|
||||
class CImageLoaderPCX : public IImageLoader
|
||||
{
|
||||
public:
|
||||
|
||||
//! constructor
|
||||
CImageLoaderPCX();
|
||||
|
||||
//! returns true if the file maybe is able to be loaded by this class
|
||||
//! based on the file extension (e.g. ".tga")
|
||||
virtual bool isALoadableFileExtension(const io::path& filename) const;
|
||||
|
||||
//! returns true if the file maybe is able to be loaded by this class
|
||||
virtual bool isALoadableFileFormat(io::IReadFile* file) const;
|
||||
|
||||
//! creates a surface from the file
|
||||
virtual IImage* loadImage(io::IReadFile* file) const;
|
||||
|
||||
};
|
||||
|
||||
#endif // compile with loader
|
||||
|
||||
} // end namespace video
|
||||
} // end namespace irr
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,162 +0,0 @@
|
||||
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
||||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#include "CImageWriterPCX.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_PCX_WRITER_
|
||||
|
||||
#include "CImageLoaderPCX.h"
|
||||
#include "IWriteFile.h"
|
||||
#include "os.h" // for logging
|
||||
#include "irrString.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
{
|
||||
|
||||
IImageWriter* createImageWriterPCX()
|
||||
{
|
||||
return new CImageWriterPCX;
|
||||
}
|
||||
|
||||
CImageWriterPCX::CImageWriterPCX()
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
setDebugName("CImageWriterPCX");
|
||||
#endif
|
||||
}
|
||||
|
||||
bool CImageWriterPCX::isAWriteableFileExtension(const io::path& filename) const
|
||||
{
|
||||
return core::hasFileExtension ( filename, "pcx" );
|
||||
}
|
||||
|
||||
bool CImageWriterPCX::writeImage(io::IWriteFile *file, IImage *image,u32 param) const
|
||||
{
|
||||
if (!file || !image)
|
||||
return false;
|
||||
|
||||
u8 d1;
|
||||
u16 d2;
|
||||
u32 i;
|
||||
|
||||
d1 = 10; // Manufacturer
|
||||
file->write(&d1, 1);
|
||||
d1 = 5; // Version
|
||||
file->write(&d1, 1);
|
||||
d1 = 1; // Encoding
|
||||
file->write(&d1, 1);
|
||||
d1 = 8; // Bits per Pixel
|
||||
file->write(&d1, 1);
|
||||
d2 = 0; // pixel origin
|
||||
file->write(&d2, 2);
|
||||
file->write(&d2, 2);
|
||||
d2 = image->getDimension().Width-1; // width
|
||||
#ifdef __BIG_ENDIAN__
|
||||
d2 = os::Byteswap::byteswap(d2);
|
||||
#endif
|
||||
file->write(&d2, 2);
|
||||
d2 = image->getDimension().Height-1; // height
|
||||
#ifdef __BIG_ENDIAN__
|
||||
d2 = os::Byteswap::byteswap(d2);
|
||||
#endif
|
||||
file->write(&d2, 2);
|
||||
d2 = 300; // dpi
|
||||
#ifdef __BIG_ENDIAN__
|
||||
d2 = os::Byteswap::byteswap(d2);
|
||||
#endif
|
||||
file->write(&d2, 2);
|
||||
file->write(&d2, 2);
|
||||
d2 = 0; // palette (not used)
|
||||
for (i=0; i<24; ++i)
|
||||
{
|
||||
file->write(&d2, 2);
|
||||
}
|
||||
d1 = 0; // reserved
|
||||
file->write(&d1, 1);
|
||||
d1 = 3; // planes
|
||||
file->write(&d1, 1);
|
||||
d2 = image->getDimension().Width; // pitch
|
||||
if (d2&0x0001) // must be even
|
||||
++d2;
|
||||
#ifdef __BIG_ENDIAN__
|
||||
d2 = os::Byteswap::byteswap(d2);
|
||||
#endif
|
||||
file->write(&d2, 2);
|
||||
d2 = 1; // color mode
|
||||
#ifdef __BIG_ENDIAN__
|
||||
d2 = os::Byteswap::byteswap(d2);
|
||||
#endif
|
||||
file->write(&d2, 2);
|
||||
d2 = 800; // screen width
|
||||
#ifdef __BIG_ENDIAN__
|
||||
d2 = os::Byteswap::byteswap(d2);
|
||||
#endif
|
||||
file->write(&d2, 2);
|
||||
d2 = 600; // screen height
|
||||
#ifdef __BIG_ENDIAN__
|
||||
d2 = os::Byteswap::byteswap(d2);
|
||||
#endif
|
||||
file->write(&d2, 2);
|
||||
d2 = 0; // filler (not used)
|
||||
for (i=0; i<27; ++i)
|
||||
{
|
||||
file->write(&d2, 2);
|
||||
}
|
||||
|
||||
u8 cnt, value;
|
||||
for (i=0; i<image->getDimension().Height; ++i)
|
||||
{
|
||||
cnt = 0;
|
||||
value = 0;
|
||||
for (u32 j=0; j<3; ++j) // color planes
|
||||
{
|
||||
for (u32 k=0; k<image->getDimension().Width; ++k)
|
||||
{
|
||||
const SColor pix = image->getPixel(k,i);
|
||||
if ((cnt!=0) && (cnt<63) &&
|
||||
(((j==0) && (value==pix.getRed())) ||
|
||||
((j==1) && (value==pix.getGreen())) ||
|
||||
((j==2) && (value==pix.getBlue()))))
|
||||
{
|
||||
++cnt;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cnt!=0)
|
||||
{
|
||||
if ((cnt>1) || ((value&0xc0)==0xc0))
|
||||
{
|
||||
cnt |= 0xc0;
|
||||
file->write(&cnt, 1);
|
||||
}
|
||||
file->write(&value, 1);
|
||||
}
|
||||
cnt=1;
|
||||
if (j==0)
|
||||
value=(u8)pix.getRed();
|
||||
else if (j==1)
|
||||
value=(u8)pix.getGreen();
|
||||
else if (j==2)
|
||||
value=(u8)pix.getBlue();
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((cnt>1) || ((value&0xc0)==0xc0))
|
||||
{
|
||||
cnt |= 0xc0;
|
||||
file->write(&cnt, 1);
|
||||
}
|
||||
file->write(&value, 1);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace video
|
||||
} // namespace irr
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
||||
// This file is part of the "Irrlicht Engine".
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#ifndef _C_IMAGE_WRITER_PCX_H_INCLUDED__
|
||||
#define _C_IMAGE_WRITER_PCX_H_INCLUDED__
|
||||
|
||||
#include "IrrCompileConfig.h"
|
||||
|
||||
#ifdef _IRR_COMPILE_WITH_PCX_WRITER_
|
||||
|
||||
#include "IImageWriter.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace video
|
||||
{
|
||||
|
||||
class CImageWriterPCX : public IImageWriter
|
||||
{
|
||||
public:
|
||||
//! constructor
|
||||
CImageWriterPCX();
|
||||
|
||||
//! return true if this writer can write a file with the given extension
|
||||
virtual bool isAWriteableFileExtension(const io::path& filename) const;
|
||||
|
||||
//! write image to file
|
||||
virtual bool writeImage(io::IWriteFile *file, IImage *image, u32 param) const;
|
||||
};
|
||||
|
||||
} // namespace video
|
||||
} // namespace irr
|
||||
|
||||
#endif
|
||||
#endif // _C_IMAGE_WRITER_PCX_H_INCLUDED__
|
||||
|
||||
@@ -136,9 +136,6 @@ CNullDriver::CNullDriver(io::IFileSystem* io, const core::dimension2d<u32>& scre
|
||||
#ifdef _IRR_COMPILE_WITH_DDS_LOADER_
|
||||
SurfaceLoader.push_back(video::createImageLoaderDDS());
|
||||
#endif
|
||||
#ifdef _IRR_COMPILE_WITH_PCX_LOADER_
|
||||
SurfaceLoader.push_back(video::createImageLoaderPCX());
|
||||
#endif
|
||||
#ifdef _IRR_COMPILE_WITH_TGA_LOADER_
|
||||
SurfaceLoader.push_back(video::createImageLoaderTGA());
|
||||
#endif
|
||||
@@ -151,9 +148,6 @@ CNullDriver::CNullDriver(io::IFileSystem* io, const core::dimension2d<u32>& scre
|
||||
#ifdef _IRR_COMPILE_WITH_BMP_LOADER_
|
||||
SurfaceLoader.push_back(video::createImageLoaderBMP());
|
||||
#endif
|
||||
#ifdef _IRR_COMPILE_WITH_PCX_WRITER_
|
||||
SurfaceWriter.push_back(video::createImageWriterPCX());
|
||||
#endif
|
||||
#ifdef _IRR_COMPILE_WITH_TGA_WRITER_
|
||||
SurfaceWriter.push_back(video::createImageWriterTGA());
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user