Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.9 KiB

  1. //----------------------------------------------------------------------------
  2. //
  3. // swprov.hpp
  4. //
  5. // Base software HAL provider class.
  6. //
  7. // Copyright (C) Microsoft Corporation, 1997.
  8. //
  9. //----------------------------------------------------------------------------
  10. #ifndef _SWPROV_HPP_
  11. #define _SWPROV_HPP_
  12. //----------------------------------------------------------------------------
  13. //
  14. // SwHalProvider
  15. //
  16. // Implements the base HAL provider for the software rasterizers.
  17. //
  18. //----------------------------------------------------------------------------
  19. class SwHalProvider : public IHalProvider
  20. {
  21. public:
  22. // IUnknown.
  23. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* ppvObj);
  24. STDMETHOD_(ULONG, AddRef)(THIS);
  25. STDMETHOD_(ULONG, Release)(THIS);
  26. };
  27. //----------------------------------------------------------------------------
  28. //
  29. // RefRastHalProvider
  30. //
  31. // Specific provider for the reference rasterizer.
  32. //
  33. //----------------------------------------------------------------------------
  34. class RefRastHalProvider : public SwHalProvider
  35. {
  36. public:
  37. STDMETHOD(GetInterface)(THIS_
  38. LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
  39. LPD3DHALPROVIDER_INTERFACEDATA pInterfaceData,
  40. DWORD dwVersion);
  41. STDMETHOD(GetCaps)(THIS_
  42. LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
  43. LPD3DDEVICEDESC pHwDesc,
  44. LPD3DDEVICEDESC pHelDesc,
  45. DWORD dwVersion);
  46. };
  47. //----------------------------------------------------------------------------
  48. //
  49. // OptRastHalProvider
  50. //
  51. // Specific provider for the optimized software rasterizer.
  52. //
  53. //----------------------------------------------------------------------------
  54. class OptRastHalProvider : public SwHalProvider
  55. {
  56. private:
  57. DWORD m_BeadSet;
  58. public:
  59. OptRastHalProvider(THIS_
  60. DWORD);
  61. STDMETHOD(GetInterface)(THIS_
  62. LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
  63. LPD3DHALPROVIDER_INTERFACEDATA pInterfaceData,
  64. DWORD dwVersion);
  65. STDMETHOD(GetCaps)(THIS_
  66. LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
  67. LPD3DDEVICEDESC pHwDesc,
  68. LPD3DDEVICEDESC pHelDesc,
  69. DWORD dwVersion);
  70. };
  71. //----------------------------------------------------------------------------
  72. //
  73. // RampRastHalProvider
  74. //
  75. // Specific provider for the ramp software rasterizer.
  76. //
  77. //----------------------------------------------------------------------------
  78. class RampRastHalProvider : public SwHalProvider
  79. {
  80. public:
  81. STDMETHOD(GetInterface)(THIS_
  82. LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
  83. LPD3DHALPROVIDER_INTERFACEDATA pInterfaceData,
  84. DWORD dwVersion);
  85. STDMETHOD(GetCaps)(THIS_
  86. LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
  87. LPD3DDEVICEDESC pHwDesc,
  88. LPD3DDEVICEDESC pHelDesc,
  89. DWORD dwVersion);
  90. };
  91. //----------------------------------------------------------------------------
  92. //
  93. // NullDeviceHalProvider
  94. //
  95. // Specific provider for the null device.
  96. //
  97. //----------------------------------------------------------------------------
  98. class NullDeviceHalProvider : public SwHalProvider
  99. {
  100. public:
  101. STDMETHOD(GetInterface)(THIS_
  102. LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
  103. LPD3DHALPROVIDER_INTERFACEDATA pInterfaceData,
  104. DWORD dwVersion);
  105. STDMETHOD(GetCaps)(THIS_
  106. LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
  107. LPD3DDEVICEDESC pHwDesc,
  108. LPD3DDEVICEDESC pHelDesc,
  109. DWORD dwVersion);
  110. };
  111. #endif // #ifndef _SWPROV_HPP_