source: OGRE/trunk/ogrenew/OgreMain/src/OgreHardwareIndexBuffer.cpp @ 657

Revision 657, 2.8 KB checked in by mattausch, 19 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 "OgreStableHeaders.h"
26#include "OgreHardwareIndexBuffer.h"
27#include "OgreHardwareBufferManager.h"
28#include "OgreDefaultHardwareBufferManager.h"
29
30
31namespace Ogre {
32
33    //-----------------------------------------------------------------------------
34    HardwareIndexBuffer::HardwareIndexBuffer(IndexType idxType,
35        size_t numIndexes, HardwareBuffer::Usage usage,
36        bool useSystemMemory, bool useShadowBuffer)
37        : HardwareBuffer(usage, useSystemMemory, useShadowBuffer), mIndexType(idxType), mNumIndexes(numIndexes)
38    {
39        // Calculate the size of the indexes
40        switch (mIndexType)
41        {
42        case IT_16BIT:
43            mIndexSize = sizeof(unsigned short);
44            break;
45        case IT_32BIT:
46            mIndexSize = sizeof(unsigned int);
47            break;
48        }
49        mSizeInBytes = mIndexSize * mNumIndexes;
50
51        // Create a shadow buffer if required
52        if (mUseShadowBuffer)
53        {
54            mpShadowBuffer = new DefaultHardwareIndexBuffer(mIndexType,
55                mNumIndexes, HardwareBuffer::HBU_DYNAMIC);
56        }
57
58
59    }
60    //-----------------------------------------------------------------------------
61    HardwareIndexBuffer::~HardwareIndexBuffer()
62    {
63                HardwareBufferManager* mgr = HardwareBufferManager::getSingletonPtr();
64                if (mgr)
65                {
66                        mgr->_notifyIndexBufferDestroyed(this);
67                }
68
69        if (mpShadowBuffer)
70        {
71            delete mpShadowBuffer;
72        }
73    }
74    //-----------------------------------------------------------------------------
75    HardwareIndexBufferSharedPtr::HardwareIndexBufferSharedPtr(HardwareIndexBuffer* buf)
76        : SharedPtr<HardwareIndexBuffer>(buf)
77    {
78
79    }
80
81}
82
Note: See TracBrowser for help on using the repository browser.