00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00022
00023
#ifndef __M3DCORE_CUBETEXTURE_H__
00024
#define __M3DCORE_CUBETEXTURE_H__
00025
00026
#include "../m3dbase.h"
00027
#include "../m3dtypes.h"
00028
00029
#include "m3dcore_basetexture.h"
00030
00032 class CMuli3DCubeTexture :
public IMuli3DBaseTexture
00033 {
00034
protected:
00035
~CMuli3DCubeTexture();
00036
00037
friend class CMuli3DDevice;
00040
CMuli3DCubeTexture(
class CMuli3DDevice *i_pParent );
00041
00050
result Create(
uint32 i_iEdgeLength,
uint32 i_iMipLevels,
00051
m3dformat i_fmtFormat );
00052
00053
m3dtexsampleinput eGetTexSampleInput();
00054
00065
result SampleTexture( vector4 &o_vColor,
float32 i_fU,
float32 i_fV,
00066
float32 i_fW,
const vector4 *i_pXGradient,
const vector4 *i_pYGradient,
00067
const uint32 *i_pSamplerStates );
00068
00069
public:
00074
result GenerateMipSubLevels(
uint32 i_iSrcLevel );
00075
00085
result LockRect(
m3dcubefaces i_Face,
uint32 i_iMipLevel,
void **o_ppData,
00086
const m3drect *i_pRect );
00087
00093
result UnlockRect(
m3dcubefaces i_Face,
uint32 i_iMipLevel );
00094
00095
m3dformat fmtGetFormat();
00096
uint32 iGetFormatFloats();
00097
uint32 iGetMipLevels();
00098
00101
uint32 iGetEdgeLength(
uint32 i_iMipLevel = 0 );
00102
00106
class CMuli3DTexture *
pGetCubeFace(
m3dcubefaces i_Face );
00107
00108
private:
00109
class CMuli3DTexture *m_ppCubeFaces[6];
00110 };
00111
00112
#endif // __M3DCORE_CUBETEXTURE_H__