Main Page -
Class Hierarchy -
Class List -
File List -
Class Members -
Related Pages -

Information | Reference | SourceForge Project | Author
Muli3D

Reference: Muli3D: m3dcore_volumetexture.h Source File

m3dcore_volumetexture.h

Go to the documentation of this file.
00001 /* 00002 Muli3D - a software rendering library 00003 Copyright (C) 2004, 2005 Stephan Reiter <streiter@aon.at> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Lesser General Public 00007 License as published by the Free Software Foundation; either 00008 version 2.1 of the License, or (at your option) any later version. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Lesser General Public License for more details. 00014 00015 You should have received a copy of the GNU Lesser General Public 00016 License along with this library; if not, write to the Free Software 00017 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 */ 00019 00022 00023 #ifndef __M3DCORE_VOLUMETEXTURE_H__ 00024 #define __M3DCORE_VOLUMETEXTURE_H__ 00025 00026 #include "../m3dbase.h" 00027 #include "../m3dtypes.h" 00028 00029 #include "m3dcore_basetexture.h" 00030 00032 class CMuli3DVolumeTexture : public IMuli3DBaseTexture 00033 { 00034 protected: 00035 ~CMuli3DVolumeTexture(); 00036 00037 friend class CMuli3DDevice; 00040 CMuli3DVolumeTexture( class CMuli3DDevice *i_pParent ); 00041 00052 result Create( uint32 i_iWidth, uint32 i_iHeight, uint32 i_iDepth, 00053 uint32 i_iMipLevels, m3dformat i_fmtFormat ); 00054 00055 m3dtexsampleinput eGetTexSampleInput(); 00056 00067 result SampleTexture( vector4 &o_vColor, float32 i_fU, float32 i_fV, 00068 float32 i_fW, const vector4 *i_pXGradient, const vector4 *i_pYGradient, 00069 const uint32 *i_pSamplerStates ); 00070 00071 public: 00076 result GenerateMipSubLevels( uint32 i_iSrcLevel ); 00077 00084 result Clear( uint32 i_iMipLevel, const vector4 &i_vColor, const m3dbox *i_pBox ); 00085 00095 result LockBox( uint32 i_iMipLevel, void **o_ppData, const m3dbox *i_pBox ); 00096 00101 result UnlockBox( uint32 i_iMipLevel ); 00102 00106 class CMuli3DVolume *pGetMipLevel( uint32 i_iMipLevel ); 00107 00108 m3dformat fmtGetFormat(); 00109 uint32 iGetFormatFloats(); 00110 uint32 iGetMipLevels(); 00111 00114 uint32 iGetWidth( uint32 i_iMipLevel = 0 ); 00115 00118 uint32 iGetHeight( uint32 i_iMipLevel = 0 ); 00119 00122 uint32 iGetDepth( uint32 i_iMipLevel = 0 ); 00123 00124 private: 00125 uint32 m_iMipLevels; 00126 float32 m_fSquaredWidth, m_fSquaredHeight, m_fSquaredDepth; 00127 class CMuli3DVolume **m_ppMipLevels; 00128 }; 00129 00130 #endif // __M3DCORE_VOLUMETEXTURE_H__

Documentation created with doxygen SourceForge.net Logo