OgreRenderToVertexBuffer.h
Go to the documentation of this file.
/*
-----------------------------------------------------------------------------
This source file is part of OGRE
(Object-oriented Graphics Rendering Engine)
For the latest info, see http://www.ogre3d.org/
Copyright (c) 2000-2013 Torus Knot Software Ltd
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-----------------------------------------------------------------------------
*/
#ifndef __RenderToVertexBuffer_H__
#define __RenderToVertexBuffer_H__
#include "OgrePrerequisites.h"
#include "OgreMaterial.h"
#include "OgreRenderOperation.h"
namespace Ogre {
class _OgreExport RenderToVertexBuffer
{
public:
RenderToVertexBuffer();
virtual ~RenderToVertexBuffer();
VertexDeclaration* getVertexDeclaration();
unsigned int getMaxVertexCount() const { return mMaxVertexCount; }
void setMaxVertexCount(unsigned int maxVertexCount) { mMaxVertexCount = maxVertexCount; }
RenderOperation::OperationType getOperationType() const { return mOperationType; }
void setOperationType(RenderOperation::OperationType operationType) { mOperationType = operationType; }
void setResetsEveryUpdate(bool resetsEveryUpdate) { mResetsEveryUpdate = resetsEveryUpdate; }
bool getResetsEveryUpdate() const { return mResetsEveryUpdate; }
virtual void getRenderOperation(RenderOperation& op) = 0;
virtual void update(SceneManager* sceneMgr) = 0;
virtual void reset() { mResetRequested = true; }
void setSourceRenderable(Renderable* source) { mSourceRenderable = source; }
const Renderable* getSourceRenderable() const { return mSourceRenderable; }
const MaterialPtr& getRenderToBufferMaterial() { return mMaterial; }
void setRenderToBufferMaterialName(const String& materialName);
protected:
RenderOperation::OperationType mOperationType;
bool mResetsEveryUpdate;
bool mResetRequested;
MaterialPtr mMaterial;
Renderable* mSourceRenderable;
VertexData* mVertexData;
unsigned int mMaxVertexCount;
};
typedef SharedPtr<RenderToVertexBuffer> RenderToVertexBufferSharedPtr;
}
#endif
Ogre::Renderable
Abstract class defining the interface all renderable objects must implement.
Definition: OgreRenderable.h:63
_OgreExport
#define _OgreExport
Definition: OgrePlatform.h:257
Ogre::VertexData
Summary class collecting together vertex source information.
Definition: OgreVertexIndexData.h:49
Ogre::RenderToVertexBuffer::mMaterial
MaterialPtr mMaterial
Definition: OgreRenderToVertexBuffer.h:140
Ogre::RenderToVertexBuffer::mSourceRenderable
Renderable * mSourceRenderable
Definition: OgreRenderToVertexBuffer.h:141
Ogre::RenderToVertexBuffer::getOperationType
RenderOperation::OperationType getOperationType() const
What type of primitives does this object generate?
Definition: OgreRenderToVertexBuffer.h:80
Ogre::RenderToVertexBuffer::getRenderToBufferMaterial
const MaterialPtr & getRenderToBufferMaterial()
Get the material which is used to render the geometry into the vertex buffer.
Definition: OgreRenderToVertexBuffer.h:129
Ogre::RenderToVertexBuffer::mResetRequested
bool mResetRequested
Definition: OgreRenderToVertexBuffer.h:139
Ogre::RenderToVertexBuffer::getSourceRenderable
const Renderable * getSourceRenderable() const
Get the source renderable of this object.
Definition: OgreRenderToVertexBuffer.h:123
Ogre::RenderToVertexBuffer
An object which renders geometry to a vertex.
Definition: OgreRenderToVertexBuffer.h:51
Ogre::VertexDeclaration
This class declares the format of a set of vertex inputs, which can be issued to the rendering API th...
Definition: OgreHardwareVertexBuffer.h:337
OgrePrerequisites.h
Ogre::RenderToVertexBuffer::setResetsEveryUpdate
void setResetsEveryUpdate(bool resetsEveryUpdate)
Set whether this object resets its buffers each time it updates.
Definition: OgreRenderToVertexBuffer.h:90
OgreRenderOperation.h
Ogre::RenderToVertexBufferSharedPtr
SharedPtr< RenderToVertexBuffer > RenderToVertexBufferSharedPtr
Definition: OgreRenderToVertexBuffer.h:146
Ogre::String
_StringBase String
Definition: OgrePrerequisites.h:439
Ogre::RenderToVertexBuffer::mResetsEveryUpdate
bool mResetsEveryUpdate
Definition: OgreRenderToVertexBuffer.h:138
Ogre::RenderToVertexBuffer::mVertexData
VertexData * mVertexData
Definition: OgreRenderToVertexBuffer.h:142
Ogre::RenderOperation::OperationType
OperationType
The rendering operation type to perform.
Definition: OgreRenderOperation.h:48
Ogre::RenderToVertexBuffer::mMaxVertexCount
unsigned int mMaxVertexCount
Definition: OgreRenderToVertexBuffer.h:143
Ogre::RenderToVertexBuffer::reset
virtual void reset()
Reset the vertex buffer to the initial state.
Definition: OgreRenderToVertexBuffer.h:111
Ogre
Definition: OgreAndroidLogListener.h:34
Ogre::RenderToVertexBuffer::getResetsEveryUpdate
bool getResetsEveryUpdate() const
Does this object reset its buffer each time it updates?
Definition: OgreRenderToVertexBuffer.h:95
Ogre::SharedPtr< Material >
Ogre::RenderToVertexBuffer::setOperationType
void setOperationType(RenderOperation::OperationType operationType)
Set the type of primitives that this object generates.
Definition: OgreRenderToVertexBuffer.h:85
Ogre::RenderToVertexBuffer::setMaxVertexCount
void setMaxVertexCount(unsigned int maxVertexCount)
Set the maximum number of vertices that the buffer will hold.
Definition: OgreRenderToVertexBuffer.h:75
Ogre::RenderOperation
&#39;New&#39; rendering operation using vertex buffers.
Definition: OgreRenderOperation.h:45
OgreMaterial.h
Ogre::RenderToVertexBuffer::getMaxVertexCount
unsigned int getMaxVertexCount() const
Get the maximum number of vertices that the buffer will hold.
Definition: OgreRenderToVertexBuffer.h:70
Ogre::RenderToVertexBuffer::setSourceRenderable
void setSourceRenderable(Renderable *source)
Set the source renderable of this object.
Definition: OgreRenderToVertexBuffer.h:118
Ogre::SceneManager
Manages the organisation and rendering of a &#39;scene&#39; i.e.
Definition: OgreSceneManager.h:143
Ogre::RenderToVertexBuffer::mOperationType
RenderOperation::OperationType mOperationType
Definition: OgreRenderToVertexBuffer.h:137

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.