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

//----------------------------------------------------------------------------
//
// swprov.hpp
//
// Base software HAL provider class.
//
// Copyright (C) Microsoft Corporation, 1997.
//
//----------------------------------------------------------------------------
#ifndef _SWPROV_HPP_
#define _SWPROV_HPP_
//----------------------------------------------------------------------------
//
// SwHalProvider
//
// Implements the base HAL provider for the software rasterizers.
//
//----------------------------------------------------------------------------
class SwHalProvider : public IHalProvider
{
public:
// IUnknown.
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* ppvObj);
STDMETHOD_(ULONG, AddRef)(THIS);
STDMETHOD_(ULONG, Release)(THIS);
};
//----------------------------------------------------------------------------
//
// RefRastHalProvider
//
// Specific provider for the reference rasterizer.
//
//----------------------------------------------------------------------------
class RefRastHalProvider : public SwHalProvider
{
public:
STDMETHOD(GetInterface)(THIS_
LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
LPD3DHALPROVIDER_INTERFACEDATA pInterfaceData,
DWORD dwVersion);
STDMETHOD(GetCaps)(THIS_
LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
LPD3DDEVICEDESC pHwDesc,
LPD3DDEVICEDESC pHelDesc,
DWORD dwVersion);
};
//----------------------------------------------------------------------------
//
// OptRastHalProvider
//
// Specific provider for the optimized software rasterizer.
//
//----------------------------------------------------------------------------
class OptRastHalProvider : public SwHalProvider
{
private:
DWORD m_BeadSet;
public:
OptRastHalProvider(THIS_
DWORD);
STDMETHOD(GetInterface)(THIS_
LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
LPD3DHALPROVIDER_INTERFACEDATA pInterfaceData,
DWORD dwVersion);
STDMETHOD(GetCaps)(THIS_
LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
LPD3DDEVICEDESC pHwDesc,
LPD3DDEVICEDESC pHelDesc,
DWORD dwVersion);
};
//----------------------------------------------------------------------------
//
// RampRastHalProvider
//
// Specific provider for the ramp software rasterizer.
//
//----------------------------------------------------------------------------
class RampRastHalProvider : public SwHalProvider
{
public:
STDMETHOD(GetInterface)(THIS_
LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
LPD3DHALPROVIDER_INTERFACEDATA pInterfaceData,
DWORD dwVersion);
STDMETHOD(GetCaps)(THIS_
LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
LPD3DDEVICEDESC pHwDesc,
LPD3DDEVICEDESC pHelDesc,
DWORD dwVersion);
};
//----------------------------------------------------------------------------
//
// NullDeviceHalProvider
//
// Specific provider for the null device.
//
//----------------------------------------------------------------------------
class NullDeviceHalProvider : public SwHalProvider
{
public:
STDMETHOD(GetInterface)(THIS_
LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
LPD3DHALPROVIDER_INTERFACEDATA pInterfaceData,
DWORD dwVersion);
STDMETHOD(GetCaps)(THIS_
LPDDRAWI_DIRECTDRAW_GBL pDdGbl,
LPD3DDEVICEDESC pHwDesc,
LPD3DDEVICEDESC pHelDesc,
DWORD dwVersion);
};
#endif // #ifndef _SWPROV_HPP_