source: OGRE/trunk/ogrenew/RenderSystems/Direct3D9/src/OgreD3D9DriverList.cpp @ 692

Revision 692, 2.6 KB checked in by mattausch, 18 years ago (diff)

adding ogre 1.2 and dependencies

Line 
1/*
2-----------------------------------------------------------------------------
3This source file is part of OGRE
4    (Object-oriented Graphics Rendering Engine)
5For the latest info, see http://www.ogre3d.org/
6
7Copyright (c) 2000-2005 The OGRE Team
8Also see acknowledgements in Readme.html
9
10This program is free software; you can redistribute it and/or modify it under
11the terms of the GNU Lesser General Public License as published by the Free Software
12Foundation; either version 2 of the License, or (at your option) any later
13version.
14
15This program is distributed in the hope that it will be useful, but WITHOUT
16ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
18
19You should have received a copy of the GNU Lesser General Public License along with
20this program; if not, write to the Free Software Foundation, Inc., 59 Temple
21Place - Suite 330, Boston, MA 02111-1307, USA, or go to
22http://www.gnu.org/copyleft/lesser.txt.
23-----------------------------------------------------------------------------
24*/
25#include "OgreD3D9DriverList.h"
26#include "OgreLogManager.h"
27#include "OgreException.h"
28
29namespace Ogre
30{
31        D3D9DriverList::D3D9DriverList( LPDIRECT3D9 pD3D ) : mpD3D(pD3D)
32        {
33                if( !mpD3D )
34                        OGRE_EXCEPT( Exception::ERR_INVALIDPARAMS, "Direct3D9 interface pointer is NULL", "D3D9DriverList::D3D9DriverList" );
35                enumerate();
36        }
37
38        D3D9DriverList::~D3D9DriverList(void)
39        {
40                mDriverList.clear();
41        }
42
43        BOOL D3D9DriverList::enumerate()
44        {
45                LogManager::getSingleton().logMessage( "D3D9: Driver Detection Starts" );
46                for( UINT iAdapter=0; iAdapter < mpD3D->GetAdapterCount(); ++iAdapter )
47                {
48                        D3DADAPTER_IDENTIFIER9 adapterIdentifier;
49                        D3DDISPLAYMODE d3ddm;
50                        mpD3D->GetAdapterIdentifier( iAdapter, 0, &adapterIdentifier );
51                        mpD3D->GetAdapterDisplayMode( iAdapter, &d3ddm );
52
53                        mDriverList.push_back( D3D9Driver( mpD3D, iAdapter, adapterIdentifier, d3ddm ) );
54                }
55
56                LogManager::getSingleton().logMessage( "D3D9: Driver Detection Ends" );
57
58                return TRUE;
59        }
60
61        size_t D3D9DriverList::count() const
62        {
63                return mDriverList.size();
64        }
65
66        D3D9Driver* D3D9DriverList::item( size_t index )
67        {
68                return &mDriverList.at( index );
69        }
70
71        D3D9Driver* D3D9DriverList::item( const String &name )
72        {
73                std::vector<D3D9Driver>::iterator it = mDriverList.begin();
74                if (it == mDriverList.end())
75                        return NULL;
76
77                for (;it != mDriverList.end(); ++it)
78                {
79                        if (it->DriverDescription() == name)
80                                return &(*it);
81                }
82
83                return NULL;
84        }
85}
Note: See TracBrowser for help on using the repository browser.