source: OGRE/trunk/ogrenew/RenderSystems/Direct3D7/src/OgreD3D7TextureManager.cpp @ 657

Revision 657, 2.9 KB checked in by mattausch, 18 years ago (diff)

added ogre dependencies and patched ogre sources

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 "OgreD3D7TextureManager.h"
26#include "OgreD3D7Texture.h"
27
28namespace Ogre {
29
30/* Auto-inlining must be disabled for this method otherwise problems with the
31   DLL boundary occur on the constructor in release mode. */
32#if OGRE_COMPILER == OGRE_COMPILER_MSVC
33    #pragma auto_inline( off )
34#endif
35
36    D3DTextureManager::D3DTextureManager(LPDIRECT3DDEVICE7 lpD3D)
37        : TextureManager()
38    {
39        mlpD3DDevice = lpD3D;
40        lpD3D->AddRef();
41
42        // register with group manager
43        ResourceGroupManager::getSingleton()._registerResourceManager(mResourceType, this);
44    }
45
46#if OGRE_COMPILER == OGRE_COMPILER_MSVC
47    #pragma auto_inline( on )
48#endif
49
50    //-----------------------------------------------------------------------
51    D3DTextureManager::~D3DTextureManager()
52    {
53        __safeRelease( &mlpD3DDevice );
54        // unregister with group manager
55        ResourceGroupManager::getSingleton()._unregisterResourceManager(mResourceType);
56    }
57    //-----------------------------------------------------------------------
58    Resource* D3DTextureManager::createImpl(const String& name,
59        ResourceHandle handle, const String& group, bool isManual,
60        ManualResourceLoader* loader, const NameValuePairList* createParams)
61    {
62        return new D3DTexture(this, name, handle, group, isManual, loader, mlpD3DDevice);
63    }
64        //-----------------------------------------------------------------------
65        void D3DTextureManager::reloadAfterLostDevice(void)
66        {
67                // We've been restored after a lost device and need to repopulate the
68                // texture data
69                for (ResourceMap::iterator i = mResources.begin(); i != mResources.end(); ++i)
70                {
71                        D3DTexturePtr t = i->second;
72                        t->restoreFromLostDevice();
73                }
74        }
75}
Note: See TracBrowser for help on using the repository browser.