00001 #ifndef __GXSKY
00002 #define __GXSKY
00003
00004 #include "GXStandardDefines.h"
00005
00006
00007 class CGXSky
00008 {
00009 public:
00010 CGXSky();
00011 virtual ~CGXSky();
00012
00013 virtual void Cleanup();
00014
00015 virtual bool SetSkyColors(D3DXCOLOR* pLowerColor, D3DXCOLOR* pUpperColor);
00016 virtual void GetSkyColors(D3DXCOLOR* pLowerColor, D3DXCOLOR* pUpperColor);
00017
00018 virtual bool Init(CGXDeviceContainer* pDevice, UINT uTextureSize,
00019 UINT uVertexCount, float fRadius,
00020 float fCloudyFactor);
00021
00022 virtual bool DrawPrimitive(D3DXMATRIX* pMat);
00023
00024
00025 protected:
00026 IDirect3DVertexBuffer8* m_pVB;
00027 IDirect3DIndexBuffer8* m_pIB;
00028 IDirect3DTexture8* m_pTexture;
00029
00030 CGXDeviceContainer* m_pDevice;
00031
00032 D3DXCOLOR m_LowerColor;
00033 D3DXCOLOR m_UpperColor;
00034
00035 DWORD m_dwShader;
00036
00037 UINT m_uIndexCount;
00038 UINT m_uVertexCount;
00039
00040 float m_fCloudyFactor;
00041
00042
00043 protected:
00044
00045 virtual bool InitTexture(UINT uSize);
00046 virtual bool InitShader();
00047 virtual bool InitGeometry(float fRadius, UINT uVertCount);
00048
00049 virtual bool ReverseTriangles();
00050 virtual bool SetTextureCoords();
00051
00052 };
00053
00054
00055
00056 void GXCloudFiller(D3DXCOLOR* pOut, const D3DXCOLOR* pMin,
00057 const D3DXCOLOR* pMax, float fRand,
00058 void* pCloudyFactor, const D3DXVECTOR2* pCoords);
00059
00060
00061 #endif