D3DMaterial.h
上传用户:wymy58
上传日期:2007-01-07
资源大小:2086k
文件大小:1k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // Copyright (C) 1998-1999 DXGuide.  All Rights Reserved.
  2. // File: D3DMaterial.h
  3. #ifndef _D3DMATERIAL__H
  4. #define _D3DMATERIAL__H
  5. #if _MSC_VER >= 1000
  6. #pragma once
  7. #endif // _MSC_VER >= 1000
  8. #pragma warning(disable: 4201)
  9. #include <d3d.h>
  10. #pragma warning(default: 4201)
  11. class CD3DMaterial
  12. {
  13. friend class CD3DDevice;
  14. protected:
  15. enum
  16. {
  17. MaterialColorFlagsDefaultValue = D3D_ML_AMBIENT | D3D_ML_DIFFUSE,
  18. };
  19. protected:
  20. CD3DMaterial(void);
  21. virtual ~CD3DMaterial();
  22. protected:
  23. bool Create(CD3DDevice*  pD3DDevice);
  24. public:
  25. void Set(void);
  26. public:
  27. void SetMaterial(LPD3DMATERIAL7  lpMat);
  28. void SetColor(const D3DCOLORVALUE&  dcvColor,
  29. DWORD  dwColorFlags = MaterialColorFlagsDefaultValue);
  30. void SetColor(D3DVALUE  dvR, D3DVALUE  dvG, D3DVALUE  dvB,
  31. D3DVALUE  dvA, DWORD  dwColorFlags = MaterialColorFlagsDefaultValue);
  32. const D3DCOLORVALUE* GetColor(DWORD  dwColorFlags) const;
  33. void SetAlpha(const D3DVALUE&  dvAlpha);
  34. D3DVALUE GetAlpha(void) const;
  35. void SetPower(const D3DVALUE&  dvPower);
  36. D3DVALUE GetPower(void) const;
  37. protected:
  38. D3DMATERIAL7 m_d3dMaterial;
  39. bool m_bChanged;
  40. CD3DDevice* m_pD3DDevice;
  41. };
  42. #include "D3DMaterial.inl"
  43. #endif  // _D3DMATERIAL__H