File RenderTarget.h

namespace Ogre

File: MovableText.h

Description: This creates a billboarding object that display a text. Note: This object must have a dedicated scene node since it will rotate it to face the camera (OGRE 2.1)

Author

2003 by cTh see gavocanov@rambler.ru 2006 by barraq see nospam@barraquand.com 2012 to work with newer versions of OGRE by MindCalamity mindcalamity@gmail.com 2015 to work on OGRE 2.1 (but not on older versions anymore) by Jayray jeremy.richert1@gmail.com

namespace Gsage

Typedefs

typedef RenderTarget *RenderTargetPtr
class RenderTarget : public EventSubscriber<RenderTarget>

Subclassed by Gsage::RttRenderTarget, Gsage::WindowRenderTarget

Public Functions

RenderTarget(const std::string &name, Ogre::RenderTarget *wrapped, const DataProxy &parameters, Engine *engine)
RenderTarget(const std::string &name, RenderTargetType::Type type, const DataProxy &parameters, Engine *engine)
virtual ~RenderTarget()
const std::string &getName() const

Get RenderTarget name

RenderTargetType::Type getType() const

Get RenderTarget type

void initialize(Ogre::SceneManager *sceneManager)

Initialize with scene manager

Parameters
  • sceneManager: Ogre::SceneManager

virtual int getWidth() const

Get render target width

virtual int getHeight() const

Get render target height

virtual void setWidth(int width)

Set render target width

Parameters
  • width:

virtual void setHeight(int height)

Set render target height

Parameters
  • height:

virtual void setDimensions(int width, int height)

Set render target dimensions

Parameters
  • width:

  • height:

virtual void setPosition(int x, int y)

Set render target position

Parameters
  • x:

  • y:

virtual void setCamera(Ogre::Camera *camera)

Set render target camera

Parameters
  • camera:

virtual Ogre::Camera *getCamera()

Get camera

virtual Ogre::Viewport *getViewport()

Get viewport

virtual void update()

Update render target

bool isAutoUpdated() const

Is render target auto updated

Ogre::RenderTarget *getOgreRenderTarget()

Get underlying Ogre::RenderTarget

bool isMouseOver() const

Check if mouse over

void switchToDefaultCamera()

Switches back to default camera

virtual bool onTextureEvent(EventDispatcher *sender, const Event &event)
std::tuple<Ogre::Vector3, Entity *> raycast(Ogre::Real defaultDistance, Ogre::Real closestDistance, unsigned int flags) const

Raycast and get object and 3d point under the pointer

Return

tuple: point and object hit by ray

Parameters
  • defaultDistance: If nothing is hit, use ray and point on it

  • closestDistance: Closest raycast distance

  • flags: Objects flags filter

Protected Functions

virtual void updateCameraAspectRatio()
virtual void configureViewport(Ogre::Viewport *viewport)

Protected Attributes

Ogre::RenderTarget *mWrappedTarget
std::string renderQueueSequenceName
int mX
int mY
int mWidth
int mHeight
DataProxy mParameters
const std::string mName
Ogre::Camera *mCurrentCamera
Ogre::Camera *mDefaultCamera
bool mAutoUpdate
RenderTargetType::Type mType
bool mHasQueueSequence
bool mDestroying
int mSamples
Engine *mEngine
Ogre::SceneManager *mSceneManager
std::shared_ptr<MOC::CollisionTools> mCollisionTools
bool mContinuousRaycast
bool mMouseOver
Ogre::Vector2 mMousePosition
std::string mRolledOverObject
bool mRenderQueueSequenceCreated

Private Functions

void subscribe()
bool handleRaycast(EventDispatcher *sender, const Event &event)
bool handleMouseEvent(EventDispatcher *sender, const Event &event)
std::tuple<Ogre::Ray, bool> getRay() const
void doRaycasting(float x, float y, unsigned int flags = 0xFFFF, bool select = false)
class RenderTargetFactory
#include <RenderTarget.h>

Factory creates Ogre::RenderTarget wrapped into Gsage wrapper

Public Functions

RenderTargetPtr create(const std::string &name, RenderTargetType::Type type, const DataProxy &parameters, Engine *engine)

Create render target of specified type

Parameters
  • name: render target name

  • type: RenderTargetType:Rtt or RenderTargetType::Window

  • parameters: additional parameters

  • engine: Engine instance

RenderTargetPtr wrap(Ogre::RenderTarget *renderTarget, const std::string &name, const DataProxy &parameters, Engine *engine)

Wrap render target

Parameters
  • renderTarget: Ogre::RenderTarget

  • name: wrapped rt name

  • parameters: additional parameters

  • engine: Engine instance

class RttRenderTarget : public Gsage::RenderTarget
#include <RenderTarget.h>

Wraps Ogre RT target

Public Functions

RttRenderTarget(const std::string &name, const DataProxy &parameters, Engine *engine)
virtual ~RttRenderTarget()
void setDimensions(int width, int height)

Set render target dimensions

Parameters
  • width:

  • height:

Protected Functions

void createTexture(const std::string &name, unsigned int width, unsigned int height, unsigned int samples, Ogre::PixelFormat pixelFormat)
bool onTextureEvent(EventDispatcher *sender, const Event &event)

Protected Attributes

TexturePtr mTexture

Private Functions

void wrap()
class WindowRenderTarget : public Gsage::RenderTarget
#include <RenderTarget.h>

Wrapped Ogre::RenderWindow

Public Functions

WindowRenderTarget(const std::string &name, const DataProxy &parameters, Engine *engine)
virtual ~WindowRenderTarget()
void setDimensions(int width, int height)

Set render target dimensions

Parameters
  • width:

  • height: