Example #1
0
//+-----------------------------------------------------------------------------
//
//  Member:
//      CRendererManager::EnsureRenderers
//
//  Synopsis:
//      Makes sure the CRenderer objects exist
//
//------------------------------------------------------------------------------
HRESULT
CRendererManager::EnsureRenderers()
{
    HRESULT hr = S_OK;

    if (!m_rgRenderers)
    {
        IFC(EnsureHWND());

        assert(m_cAdapters);    
        m_rgRenderers = new CRenderer*[m_cAdapters];
        IFCOOM(m_rgRenderers);
        ZeroMemory(m_rgRenderers, m_cAdapters * sizeof(m_rgRenderers[0]));

        for (UINT i = 0; i < m_cAdapters; ++i)
        {
            IFC(CTriangleRenderer::Create(m_pD3D, m_pD3DEx, m_hwnd, i, &m_rgRenderers[i]));
        }

        // Default to the default adapter 
        m_pCurrentRenderer = m_rgRenderers[0];
    }

Cleanup:
    return hr;
}
Example #2
0
//+-----------------------------------------------------------------------------
//
//  Member:
//      CRendererManager::Create
//
//  Synopsis:
//      Creates the manager
//
//------------------------------------------------------------------------------
HRESULT
CRendererManager::Create(CRendererManager **ppManager)
{
    HRESULT hr = S_OK;

    *ppManager = new CRendererManager();
    IFCOOM(*ppManager);

Cleanup:
    return hr;
}
Example #3
0
//------------------------------------------------------------------------------
HRESULT 
	CRenderer::Create(IDirect3D9 *pD3D, IDirect3D9Ex *pD3DEx, HWND hwnd, UINT uAdapter, CRenderer **ppRenderer)
{
	HRESULT hr = S_OK;

	CRenderer *pRenderer = new CRenderer();
	IFCOOM(pRenderer);

	IFC(pRenderer->Init(pD3D, pD3DEx, hwnd, uAdapter));

	*ppRenderer = pRenderer;
	pRenderer = NULL;

Cleanup:
	delete pRenderer;

	return hr;
}