home *** CD-ROM | disk | FTP | other *** search
/ Programming an RTS Game with Direct3D / Programming an RTS Game with Direct3D.iso / Examples / Chapter 12 / Example 12.1 / effect.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-01  |  1.3 KB  |  61 lines

  1. #ifndef RTS_EFFECT
  2. #define RTS_EFFECT
  3.  
  4. #include <windows.h>
  5. #include <d3dx9.h>
  6. #include <vector>
  7. #include "debug.h"
  8. #include "shader.h"
  9.  
  10. void LoadEffectResources(IDirect3DDevice9 *m_pDevice);
  11. void UnloadEffectResources();
  12.  
  13. //Transform Help structure
  14. struct TRANSFORM
  15. {
  16.     TRANSFORM();
  17.     TRANSFORM(D3DXVECTOR3 _pos);
  18.     TRANSFORM(D3DXVECTOR3 _pos, D3DXVECTOR3 _rot);
  19.     TRANSFORM(D3DXVECTOR3 _pos, D3DXVECTOR3 _rot, D3DXVECTOR3 _sca);
  20.  
  21.     void Init(D3DXVECTOR3 _pos);
  22.     void Init(D3DXVECTOR3 _pos, D3DXVECTOR3 _rot);
  23.     void Init(D3DXVECTOR3 _pos, D3DXVECTOR3 _rot, D3DXVECTOR3 _sca);
  24.  
  25.     D3DXMATRIX GetWorldMatrix();
  26.  
  27.     D3DXVECTOR3 m_pos, m_rot, m_sca;    
  28. };
  29.  
  30. //Virtual EFFECT class...
  31. class EFFECT
  32. {
  33.     public:
  34.         EFFECT(IDirect3DDevice9 *Dev);
  35.         ~EFFECT(){}
  36.         virtual void Update(float timeDelta) = 0;
  37.         virtual void Render() = 0;
  38.         virtual bool isDead() = 0;
  39.  
  40.         void PreRender();
  41.         void PostRender();
  42.  
  43.         IDirect3DDevice9 *m_pDevice;
  44.         float m_time;
  45.         D3DXVECTOR4 m_color;
  46. };
  47.  
  48. class EFFECT_SPELL : public EFFECT
  49. {
  50.     public:
  51.         EFFECT_SPELL(IDirect3DDevice9 *Dev, D3DXVECTOR3 _pos);
  52.         void Update(float timeDelta);
  53.         void Render();
  54.         bool isDead();
  55.  
  56.     private:        
  57.         TRANSFORM m_t1;        //Rune billboard transform
  58.         TRANSFORM m_c[10];    //Glow billboards
  59. };
  60.  
  61. #endif