00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "std3d.h"
00027
00028 #include "3d/texture_mem.h"
00029 #include "nel/misc/mem_stream.h"
00030
00031 #include <memory>
00032
00033
00034 namespace NL3D
00035 {
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 void CTextureMem::doGenerate()
00046 {
00047 if (_Data)
00048 {
00049 if (_IsFile)
00050 {
00051 NLMISC::CMemStream m (true);
00052 m.fill (_Data, _Length);
00053 load (m);
00054 }
00055 else
00056 {
00057 resize(_TexWidth, _TexHeight, _TexType);
00058 ::memcpy(&getPixels(0)[0], _Data, _Length);
00059 buildMipMaps();
00060 }
00061 }
00062 else
00063 {
00064 makeDummy();
00065 }
00066 }
00067
00068
00069 static NLMISC::CRGBA WhitePix(255, 255, 255, 255);
00070
00072 ITexture *CTextureMem::Create1x1WhiteTex()
00073 {
00074 std::auto_ptr<CTextureMem> tex(new CTextureMem((uint8 *) &WhitePix,
00075 sizeof(WhitePix),
00076 false,
00077 false,
00078 1, 1)
00079 );
00080 tex->setShareName("#WhitePix1x1");
00081 return tex.release();
00082 }
00083
00085 void CTextureMem::setAllowDegradation(bool allow)
00086 {
00087 _AllowDegradation= allow;
00088 }
00089
00090
00091 }