Commit 2b553bee authored by nadro's avatar nadro

- Added new color formats (this feature was available in ogl-es branch before):

 * ECF_PVRTC_RGB2
 * ECF_PVRTC_ARGB2
 * ECF_PVRTC_RGB4
 * ECF_PVRTC_ARGB4
 * ECF_PVRTC2_ARGB2
 * ECF_PVRTC2_ARGB4
 * ECF_ETC1
 * ECF_ETC2_RGB
 * ECF_ETC2_ARGB
- Added PVR image loader with support for DXT*, PVRTC* and ETC* color formats.(this feature was available in ogl-es branch before)
- Fixed issue with mipmaps in DDS loader.
- Fixed minor issue with texture cubemap in OpenGL.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5192 dfc29bdd-3216-0410-991c-e03cc46cb475
parent f631c9cb
......@@ -124,6 +124,21 @@ namespace video
//! Support for DXTn compressed textures.
EVDF_TEXTURE_COMPRESSED_DXT,
//! Support for PVRTC compressed textures.
EVDF_TEXTURE_COMPRESSED_PVRTC,
//! Support for PVRTC2 compressed textures.
EVDF_TEXTURE_COMPRESSED_PVRTC2,
//! Support for ETC1 compressed textures.
EVDF_TEXTURE_COMPRESSED_ETC1,
//! Support for ETC2 compressed textures.
EVDF_TEXTURE_COMPRESSED_ETC2,
//! Support for cube map textures.
EVDF_TEXTURE_CUBEMAP,
//! Only used for counting the elements of this enum
EVDF_COUNT
};
......
......@@ -296,6 +296,21 @@ public:
case ECF_DXT4:
case ECF_DXT5:
return 32;
case ECF_PVRTC_RGB2:
return 12;
case ECF_PVRTC_ARGB2:
case ECF_PVRTC2_ARGB2:
return 16;
case ECF_PVRTC_RGB4:
return 24;
case ECF_PVRTC_ARGB4:
case ECF_PVRTC2_ARGB4:
return 32;
case ECF_ETC1:
case ECF_ETC2_RGB:
return 24;
case ECF_ETC2_ARGB:
return 32;
case ECF_D16:
return 16;
case ECF_D32:
......@@ -343,6 +358,25 @@ public:
case ECF_DXT5:
imageSize = ((width + 3) / 4) * ((height + 3) / 4) * 16;
break;
case ECF_PVRTC_RGB2:
case ECF_PVRTC_ARGB2:
imageSize = (core::max_<u32>(width, 16) * core::max_<u32>(height, 8) * 2 + 7) / 8;
break;
case ECF_PVRTC_RGB4:
case ECF_PVRTC_ARGB4:
imageSize = (core::max_<u32>(width, 8) * core::max_<u32>(height, 8) * 4 + 7) / 8;
break;
case ECF_PVRTC2_ARGB2:
imageSize = core::ceil32(width / 8.0f) * core::ceil32(height / 4.0f) * 8;
break;
case ECF_PVRTC2_ARGB4:
case ECF_ETC1:
case ECF_ETC2_RGB:
imageSize = core::ceil32(width / 4.0f) * core::ceil32(height / 4.0f) * 8;
break;
case ECF_ETC2_ARGB:
imageSize = core::ceil32(width / 4.0f) * core::ceil32(height / 4.0f) * 16;
break;
default: // uncompressed formats
imageSize = getBitsPerPixelFromFormat(format) / 8 * width;
imageSize *= height;
......@@ -362,6 +396,15 @@ public:
case ECF_DXT3:
case ECF_DXT4:
case ECF_DXT5:
case ECF_PVRTC_RGB2:
case ECF_PVRTC_ARGB2:
case ECF_PVRTC2_ARGB2:
case ECF_PVRTC_RGB4:
case ECF_PVRTC_ARGB4:
case ECF_PVRTC2_ARGB4:
case ECF_ETC1:
case ECF_ETC2_RGB:
case ECF_ETC2_ARGB:
return true;
default:
return false;
......@@ -399,6 +442,15 @@ public:
case ECF_DXT3:
case ECF_DXT4:
case ECF_DXT5:
case ECF_PVRTC_RGB2:
case ECF_PVRTC_ARGB2:
case ECF_PVRTC2_ARGB2:
case ECF_PVRTC_RGB4:
case ECF_PVRTC_ARGB4:
case ECF_PVRTC2_ARGB4:
case ECF_ETC1:
case ECF_ETC2_RGB:
case ECF_ETC2_ARGB:
return false;
default:
return true;
......
......@@ -519,6 +519,11 @@ B3D, MS3D or X meshes */
#ifdef NO_IRR_COMPILE_WITH_PSD_LOADER_
#undef _IRR_COMPILE_WITH_PSD_LOADER_
#endif
//! Define _IRR_COMPILE_WITH_PVR_LOADER_ if you want to load .pvr files
#define _IRR_COMPILE_WITH_PVR_LOADER_
#ifdef NO_IRR_COMPILE_WITH_PVR_LOADER_
#undef _IRR_COMPILE_WITH_PVR_LOADER_
#endif
//! Define _IRR_COMPILE_WITH_DDS_LOADER_ if you want to load compressed .dds files
// Patent problem isn't related to this loader.
#define _IRR_COMPILE_WITH_DDS_LOADER_
......
......@@ -51,6 +51,33 @@ namespace video
//! DXT5 color format.
ECF_DXT5,
//! PVRTC RGB 2bpp.
ECF_PVRTC_RGB2,
//! PVRTC ARGB 2bpp.
ECF_PVRTC_ARGB2,
//! PVRTC RGB 4bpp.
ECF_PVRTC_RGB4,
//! PVRTC ARGB 4bpp.
ECF_PVRTC_ARGB4,
//! PVRTC2 ARGB 2bpp.
ECF_PVRTC2_ARGB2,
//! PVRTC2 ARGB 4bpp.
ECF_PVRTC2_ARGB4,
//! ETC1 RGB.
ECF_ETC1,
//! ETC2 RGB.
ECF_ETC2_RGB,
//! ETC2 ARGB.
ECF_ETC2_ARGB,
/** The following formats may only be used for render target textures. */
/** Floating point formats. */
......
......@@ -652,6 +652,8 @@ bool CD3D9Driver::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const
return true;
case EVDF_TEXTURE_COMPRESSED_DXT:
return true;
case EVDF_TEXTURE_CUBEMAP:
return false;
default:
return false;
};
......
......@@ -852,7 +852,7 @@ IImage* CImageLoaderDDS::loadImage(io::IReadFile* file) const
if (tmpHeight > 1)
tmpHeight >>= 1;
mipMapsDataSize = IImage::getDataSizeFromFormat(format, tmpWidth, tmpHeight);
mipMapsDataSize += IImage::getDataSizeFromFormat(format, tmpWidth, tmpHeight);
}
while (tmpWidth != 1 || tmpHeight != 1);
......
// Copyright (C) 2013-2015 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#include "CImageLoaderPVR.h"
#ifdef _IRR_COMPILE_WITH_PVR_LOADER_
#include "IReadFile.h"
#include "os.h"
#include "CImage.h"
#include "irrString.h"
namespace irr
{
namespace video
{
//! returns true if the file maybe is able to be loaded by this class
//! based on the file extension (e.g. ".tga")
bool CImageLoaderPVR::isALoadableFileExtension(const io::path& filename) const
{
return core::hasFileExtension(filename, "pvr");
}
//! returns true if the file maybe is able to be loaded by this class
bool CImageLoaderPVR::isALoadableFileFormat(io::IReadFile* file) const
{
if (!file)
return false;
c8 fourCC[4];
file->seek(0);
file->read(&fourCC, 4);
/*if (header.Version == 0x03525650) // TO-DO - fix endiannes
{
printf("Bad endian2\n");
fourCC[0] = os::Byteswap::byteswap(fourCC[0]);
fourCC[1] = os::Byteswap::byteswap(fourCC[1]);
fourCC[2] = os::Byteswap::byteswap(fourCC[2]);
fourCC[3] = os::Byteswap::byteswap(fourCC[3]);
}*/
return (fourCC[0] == 'P' && fourCC[1] == 'V' && fourCC[2] == 'R');
}
//! creates a surface from the file
IImage* CImageLoaderPVR::loadImage(io::IReadFile* file) const
{
SPVRHeader header;
IImage* image = 0;
ECOLOR_FORMAT format = ECF_UNKNOWN;
u32 dataSize = 0;
u32 mipMapsDataSize = 0;
file->seek(0);
file->read(&header, sizeof(SPVRHeader));
/*if (header.Version == 0x03525650) // TO-DO - fix endiannes
{
header.Flags = os::Byteswap::byteswap(header.Flags);
header.PixelFormat = os::Byteswap::byteswap(header.PixelFormat);
header.ColourSpace = os::Byteswap::byteswap(header.ColourSpace);
header.ChannelType = os::Byteswap::byteswap(header.ChannelType);
header.Height = os::Byteswap::byteswap(header.Height);
header.Width = os::Byteswap::byteswap(header.Width);
header.Depth = os::Byteswap::byteswap(header.Depth);
header.NumSurfaces = os::Byteswap::byteswap(header.NumSurfaces);
header.NumFaces = os::Byteswap::byteswap(header.NumFaces);
header.MipMapCount = os::Byteswap::byteswap(header.MipMapCount);
header.MetDataSize = os::Byteswap::byteswap(header.MetDataSize);
}*/
c8 fourCC[4];
u32 key;
u32 helperDataSize;
if (header.MetDataSize > 0)
{
file->read(&fourCC, 4);
file->read(&key, sizeof(u32));
file->read(&helperDataSize, sizeof(u32));
file->seek(helperDataSize, true);
}
if (header.PixelFormat & 0xFFFFFFFF00000000) // Uncompressed texture formats
{
// TO-DO add support for uncompressed images.
}
else // Compressed texture formats
{
switch(header.PixelFormat)
{
case 0: // PVRTC 2bpp RGB
format = ECF_PVRTC_RGB2;
break;
case 1: // PVRTC 2bpp RGBA
format = ECF_PVRTC_ARGB2;
break;
case 2: // PVRTC 4bpp RGB
format = ECF_PVRTC_RGB4;
break;
case 3: // PVRTC 4bpp RGBA
format = ECF_PVRTC_ARGB4;
break;
case 4: // PVRTC-II 2bpp
format = ECF_PVRTC2_ARGB2;
break;
case 5: // PVRTC-II 4bpp
format = ECF_PVRTC2_ARGB4;
break;
case 6: // ETC1
format = ECF_ETC1;
break;
case 7: // DXT1 / BC1
format = ECF_DXT1;
break;
case 8: // DXT2
case 9: // DXT3 / BC2
format = ECF_DXT3;
break;
case 10: // DXT4
case 11: // DXT5 / BC3
format = ECF_DXT5;
break;
case 22: // ETC2 RGB
format = ECF_ETC2_RGB;
break;
case 23: // ETC2 RGBA
format = ECF_ETC2_ARGB;
break;
default:
format = ECF_UNKNOWN;
break;
}
if (format != ECF_UNKNOWN)
{
// 3D textures, texture arrays, cube maps textures aren't currently supported
if (header.Depth < 2 && header.NumSurfaces < 2 && header.NumFaces < 2)
{
dataSize = IImage::getDataSizeFromFormat(format, header.Width, header.Height);
u8* data = new u8[dataSize];
file->read(data, dataSize);
image = new CImage(format, core::dimension2d<u32>(header.Width, header.Height), data, true, true);
if (header.MipMapCount > 1)
{
u32 tmpWidth = header.Width;
u32 tmpHeight = header.Height;
do
{
if (tmpWidth > 1)
tmpWidth >>= 1;
if (tmpHeight > 1)
tmpHeight >>= 1;
mipMapsDataSize += IImage::getDataSizeFromFormat(format, tmpWidth, tmpHeight);
}
while (tmpWidth != 1 || tmpHeight != 1);
u8* mipMapsData = new u8[mipMapsDataSize];
file->read(mipMapsData, mipMapsDataSize);
image->setMipMapsData(mipMapsData, true, true);
}
}
}
}
return image;
}
//! creates a loader which is able to load pvr images
IImageLoader* createImageLoaderPVR()
{
return new CImageLoaderPVR();
}
} // end namespace video
} // end namespace irr
#endif
// Copyright (C) 2013-2015 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#ifndef __C_IMAGE_LOADER_PVR_H_INCLUDED__
#define __C_IMAGE_LOADER_PVR_H_INCLUDED__
#include "IrrCompileConfig.h"
#ifdef _IRR_COMPILE_WITH_PVR_LOADER_
#include "IImageLoader.h"
namespace irr
{
namespace video
{
// byte-align structures
#include "irrpack.h"
/* structures */
struct SPVRHeader
{
u32 Version;
u32 Flags;
u64 PixelFormat;
u32 ColourSpace;
u32 ChannelType;
u32 Height;
u32 Width;
u32 Depth;
u32 NumSurfaces;
u32 NumFaces;
u32 MipMapCount;
u32 MetDataSize;
} PACK_STRUCT;
// Default alignment
#include "irrunpack.h"
/*!
Surface Loader for PVR images
*/
class CImageLoaderPVR : public IImageLoader
{
public:
//! 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;
};
} // end namespace video
} // end namespace irr
#endif // compiled with PVR loader
#endif
......@@ -35,6 +35,9 @@ IImageLoader* createImageLoaderTGA();
//! creates a loader which is able to load psd images
IImageLoader* createImageLoaderPSD();
//! creates a loader which is able to load psd images
IImageLoader* createImageLoaderPVR();
//! creates a loader which is able to load dds images
IImageLoader* createImageLoaderDDS();
......@@ -138,6 +141,9 @@ CNullDriver::CNullDriver(io::IFileSystem* io, const core::dimension2d<u32>& scre
#ifdef _IRR_COMPILE_WITH_PSD_LOADER_
SurfaceLoader.push_back(video::createImageLoaderPSD());
#endif
#ifdef _IRR_COMPILE_WITH_PVR_LOADER_
SurfaceLoader.push_back(video::createImageLoaderPVR());
#endif
#if defined(_IRR_COMPILE_WITH_DDS_LOADER_) || defined(_IRR_COMPILE_WITH_DDS_DECODER_LOADER_)
SurfaceLoader.push_back(video::createImageLoaderDDS());
#endif
......@@ -1394,7 +1400,7 @@ bool CNullDriver::checkImage(const core::array<IImage*>& image) const
status = false;
}
break;
/*case ECF_PVRTC_RGB2:
case ECF_PVRTC_RGB2:
case ECF_PVRTC_ARGB2:
case ECF_PVRTC_RGB4:
case ECF_PVRTC_ARGB4:
......@@ -1431,7 +1437,7 @@ bool CNullDriver::checkImage(const core::array<IImage*>& image) const
os::Printer::log("ETC2 texture compression not available.", ELL_ERROR);
status = false;
}
break;*/
break;
default:
break;
}
......
......@@ -141,6 +141,36 @@ typedef char GLchar;
#endif
#endif
#if !defined(GL_VERSION_1_3)
#ifdef GL_ARB_texture_cube_map
#define GL_TEXTURE_CUBE_MAP GL_TEXTURE_CUBE_MAP_ARB
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB
#elif defined(GL_EXT_texture_cube_map)
#define GL_TEXTURE_CUBE_MAP GL_TEXTURE_CUBE_MAP_EXT
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT
#else
#define GL_TEXTURE_CUBE_MAP 0
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0
#endif
#endif
// Irrlicht's OpenGL version.
#define IRR_OPENGL_VERSION 14
......
......@@ -823,6 +823,8 @@ bool COpenGLExtensionHandler::queryFeature(E_VIDEO_DRIVER_FEATURE feature) const
return true;
case EVDF_TEXTURE_COMPRESSED_DXT:
return FeatureAvailable[IRR_EXT_texture_compression_s3tc];
case EVDF_TEXTURE_CUBEMAP:
return (Version >= 130) || FeatureAvailable[IRR_ARB_texture_cube_map] || FeatureAvailable[IRR_EXT_texture_cube_map];
default:
return false;
};
......
......@@ -745,6 +745,8 @@
<Unit filename="CImageLoaderPPM.h" />
<Unit filename="CImageLoaderPSD.cpp" />
<Unit filename="CImageLoaderPSD.h" />
<Unit filename="CImageLoaderPVR.cpp" />
<Unit filename="CImageLoaderPVR.h" />
<Unit filename="CImageLoaderRGB.cpp" />
<Unit filename="CImageLoaderRGB.h" />
<Unit filename="CImageLoaderTGA.cpp" />
......
......@@ -1134,6 +1134,7 @@
<ClInclude Include="CImageLoaderPNG.h" />
<ClInclude Include="CImageLoaderPPM.h" />
<ClInclude Include="CImageLoaderPSD.h" />
<ClInclude Include="CImageLoaderPVR.h" />
<ClInclude Include="CImageLoaderRGB.h" />
<ClInclude Include="CImageLoaderTGA.h" />
<ClInclude Include="CImageLoaderWAL.h" />
......@@ -1377,6 +1378,7 @@
<ClCompile Include="CImageLoaderPNG.cpp" />
<ClCompile Include="CImageLoaderPPM.cpp" />
<ClCompile Include="CImageLoaderPSD.cpp" />
<ClCompile Include="CImageLoaderPVR.cpp" />
<ClCompile Include="CImageLoaderRGB.cpp" />
<ClCompile Include="CImageLoaderTGA.cpp" />
<ClCompile Include="CImageLoaderWAL.cpp" />
......
......@@ -909,6 +909,9 @@
<ClInclude Include="CImageLoaderPSD.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
<ClInclude Include="CImageLoaderPVR.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
<ClInclude Include="CImageLoaderRGB.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
......@@ -1679,6 +1682,9 @@
<ClCompile Include="CImageLoaderPSD.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
<ClCompile Include="CImageLoaderPVR.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
<ClCompile Include="CImageLoaderRGB.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
......
......@@ -1133,6 +1133,7 @@
<ClInclude Include="CImageLoaderPNG.h" />
<ClInclude Include="CImageLoaderPPM.h" />
<ClInclude Include="CImageLoaderPSD.h" />
<ClInclude Include="CImageLoaderPVR.h" />
<ClInclude Include="CImageLoaderRGB.h" />
<ClInclude Include="CImageLoaderTGA.h" />
<ClInclude Include="CImageLoaderWAL.h" />
......@@ -1377,6 +1378,7 @@
<ClCompile Include="CImageLoaderPNG.cpp" />
<ClCompile Include="CImageLoaderPPM.cpp" />
<ClCompile Include="CImageLoaderPSD.cpp" />
<ClCompile Include="CImageLoaderPVR.cpp" />
<ClCompile Include="CImageLoaderRGB.cpp" />
<ClCompile Include="CImageLoaderTGA.cpp" />
<ClCompile Include="CImageLoaderWAL.cpp" />
......
......@@ -915,6 +915,9 @@
<ClInclude Include="CImageLoaderPSD.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
<ClInclude Include="CImageLoaderPVR.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
<ClInclude Include="CImageLoaderRGB.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
......@@ -1679,6 +1682,9 @@
<ClCompile Include="CImageLoaderPSD.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
<ClCompile Include="CImageLoaderPVR.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
<ClCompile Include="CImageLoaderRGB.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
......
......@@ -1133,6 +1133,7 @@
<ClInclude Include="CImageLoaderPNG.h" />
<ClInclude Include="CImageLoaderPPM.h" />
<ClInclude Include="CImageLoaderPSD.h" />
<ClInclude Include="CImageLoaderPVR.h" />
<ClInclude Include="CImageLoaderRGB.h" />
<ClInclude Include="CImageLoaderTGA.h" />
<ClInclude Include="CImageLoaderWAL.h" />
......@@ -1377,6 +1378,7 @@
<ClCompile Include="CImageLoaderPNG.cpp" />
<ClCompile Include="CImageLoaderPPM.cpp" />
<ClCompile Include="CImageLoaderPSD.cpp" />
<ClCompile Include="CImageLoaderPVR.cpp" />
<ClCompile Include="CImageLoaderRGB.cpp" />
<ClCompile Include="CImageLoaderTGA.cpp" />
<ClCompile Include="CImageLoaderWAL.cpp" />
......
......@@ -915,6 +915,9 @@
<ClInclude Include="CImageLoaderPSD.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
<ClInclude Include="CImageLoaderPVR.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
<ClInclude Include="CImageLoaderRGB.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
......@@ -1679,6 +1682,9 @@
<ClCompile Include="CImageLoaderPSD.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
<ClCompile Include="CImageLoaderPVR.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
<ClCompile Include="CImageLoaderRGB.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
......
......@@ -1143,6 +1143,7 @@
<ClInclude Include="CImageLoaderPNG.h" />
<ClInclude Include="CImageLoaderPPM.h" />
<ClInclude Include="CImageLoaderPSD.h" />
<ClInclude Include="CImageLoaderPVR.h" />
<ClInclude Include="CImageLoaderRGB.h" />
<ClInclude Include="CImageLoaderTGA.h" />
<ClInclude Include="CImageLoaderWAL.h" />
......@@ -1387,6 +1388,7 @@
<ClCompile Include="CImageLoaderPNG.cpp" />
<ClCompile Include="CImageLoaderPPM.cpp" />
<ClCompile Include="CImageLoaderPSD.cpp" />
<ClCompile Include="CImageLoaderPVR.cpp" />
<ClCompile Include="CImageLoaderRGB.cpp" />
<ClCompile Include="CImageLoaderTGA.cpp" />
<ClCompile Include="CImageLoaderWAL.cpp" />
......
......@@ -915,6 +915,9 @@
<ClInclude Include="CImageLoaderPSD.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
<ClInclude Include="CImageLoaderPVR.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
<ClInclude Include="CImageLoaderRGB.h">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClInclude>
......@@ -1679,6 +1682,9 @@
<ClCompile Include="CImageLoaderPSD.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
<ClCompile Include="CImageLoaderPVR.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
<ClCompile Include="CImageLoaderRGB.cpp">
<Filter>Irrlicht\video\Null\Loader</Filter>
</ClCompile>
......
......@@ -39,7 +39,7 @@ IRROBJ = CBillboardSceneNode.o CCameraSceneNode.o CDummyTransformationSceneNode.
IRRPARTICLEOBJ = CParticleAnimatedMeshSceneNodeEmitter.o CParticleBoxEmitter.o CParticleCylinderEmitter.o CParticleMeshEmitter.o CParticlePointEmitter.o CParticleRingEmitter.o CParticleSphereEmitter.o CParticleAttractionAffector.o CParticleFadeOutAffector.o CParticleGravityAffector.o CParticleRotationAffector.o CParticleSystemSceneNode.o CParticleScaleAffector.o
IRRANIMOBJ = CSceneNodeAnimatorCameraFPS.o CSceneNodeAnimatorCameraMaya.o CSceneNodeAnimatorCollisionResponse.o CSceneNodeAnimatorDelete.o CSceneNodeAnimatorFlyCircle.o CSceneNodeAnimatorFlyStraight.o CSceneNodeAnimatorFollowSpline.o CSceneNodeAnimatorRotation.o CSceneNodeAnimatorTexture.o
IRRDRVROBJ = CNullDriver.o COpenGLCacheHandler.o COpenGLDriver.o COpenGLNormalMapRenderer.o COpenGLParallaxMapRenderer.o COpenGLShaderMaterialRenderer.o COpenGLSLMaterialRenderer.o COpenGLExtensionHandler.o CD3D9Driver.o CD3D9HLSLMaterialRenderer.o CD3D9NormalMapRenderer.o CD3D9ParallaxMapRenderer.o CD3D9ShaderMaterialRenderer.o CD3D9Texture.o
IRRIMAGEOBJ = CColorConverter.o CImage.o CImageLoaderBMP.o CImageLoaderDDS.o CImageLoaderJPG.o CImageLoaderPCX.o CImageLoaderPNG.o CImageLoaderPSD.o CImageLoaderTGA.o CImageLoaderPPM.o CImageLoaderWAL.o CImageLoaderRGB.o \
IRRIMAGEOBJ = CColorConverter.o CImage.o CImageLoaderBMP.o CImageLoaderDDS.o CImageLoaderJPG.o CImageLoaderPCX.o CImageLoaderPNG.o CImageLoaderPSD.o CImageLoaderPVR.o CImageLoaderTGA.o CImageLoaderPPM.o CImageLoaderWAL.o CImageLoaderRGB.o \
CImageWriterBMP.o CImageWriterJPG.o CImageWriterPCX.o CImageWriterPNG.o CImageWriterPPM.o CImageWriterPSD.o CImageWriterTGA.o
IRRVIDEOOBJ = CVideoModeList.o CFPSCounter.o $(IRRDRVROBJ) $(IRRIMAGEOBJ)
IRRSWRENDEROBJ = CSoftwareDriver.o CSoftwareTexture.o CTRFlat.o CTRFlatWire.o CTRGouraud.o CTRGouraudWire.o CTRNormalMap.o CTRStencilShadow.o CTRTextureFlat.o CTRTextureFlatWire.o CTRTextureGouraud.o CTRTextureGouraudAdd.o CTRTextureGouraudNoZ.o CTRTextureGouraudWire.o CZBuffer.o CTRTextureGouraudVertexAlpha2.o CTRTextureGouraudNoZ2.o CTRTextureLightMap2_M2.o CTRTextureLightMap2_M4.o CTRTextureLightMap2_M1.o CSoftwareDriver2.o CSoftwareTexture2.o CTRTextureGouraud2.o CTRGouraud2.o CTRGouraudAlpha2.o CTRGouraudAlphaNoZ2.o CTRTextureDetailMap2.o CTRTextureGouraudAdd2.o CTRTextureGouraudAddNoZ2.o CTRTextureWire2.o CTRTextureLightMap2_Add.o CTRTextureLightMapGouraud2_M4.o IBurningShader.o CTRTextureBlend.o CTRTextureGouraudAlpha.o CTRTextureGouraudAlphaNoZ.o CDepthBuffer.o CBurningShader_Raster_Reference.o
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment