Home | nevrax.com |
|
texture_mem.cppGo to the documentation of this file.00001 00007 /* Copyright, 2000 Nevrax Ltd. 00008 * 00009 * This file is part of NEVRAX NEL. 00010 * NEVRAX NEL is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2, or (at your option) 00013 * any later version. 00014 00015 * NEVRAX NEL is distributed in the hope that it will be useful, but 00016 * WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * General Public License for more details. 00019 00020 * You should have received a copy of the GNU General Public License 00021 * along with NEVRAX NEL; see the file COPYING. If not, write to the 00022 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00023 * MA 02111-1307, USA. 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 CTEXTUREMEM 00040 \*==================================================================*/ 00041 00042 /*------------------------------------------------------------------*\ 00043 doGenerate() 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); // the texture datas ... :) 00070 00072 ITexture *CTextureMem::Create1x1WhiteTex() 00073 { 00074 std::auto_ptr<CTextureMem> tex(new CTextureMem((uint8 *) &WhitePix, 00075 sizeof(WhitePix), 00076 false, /* dont delete */ 00077 false, /* not a file */ 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 } // NL3D |