OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::Viewport Class Reference

An abstraction of a viewport, i.e. More...

#include <OgreViewport.h>

+ Inheritance diagram for Ogre::Viewport:

Public Member Functions

 Viewport ()
 
 Viewport (Real left, Real top, Real width, Real height)
 The usual constructor. More...
 
virtual ~Viewport ()
 Default destructor. More...
 
void _clearUpdatedFlag ()
 
bool _isUpdated () const
 
void _setupAspectRatio (Camera *cullCamera)
 
void _setVisibilityMask (uint32 mask, uint32 lightMask)
 Sets a per-viewport visibility mask. More...
 
void _updateCullPhase01 (Camera *renderCamera, Camera *cullCamera, const Camera *lodCamera, uint8 firstRq, uint8 lastRq, bool reuseCullData)
 Instructs the viewport to updates its contents. More...
 
void _updateDimensions ()
 Notifies the viewport of a possible change in dimensions. More...
 
void _updateRenderPhase02 (Camera *camera, const Camera *lodCamera, uint8 firstRq, uint8 lastRq)
 
bool coversEntireTarget () const
 
void getActualDimensions (int &left, int &top, int &width, int &height) const
 Access to actual dimensions (based on target size). More...
 
int getActualHeight () const
 Gets one of the actual dimensions of the viewport, a value in pixels. More...
 
int getActualLeft () const
 Gets one of the actual dimensions of the viewport, a value in pixels. More...
 
int getActualTop () const
 Gets one of the actual dimensions of the viewport, a value in pixels. More...
 
int getActualWidth () const
 Gets one of the actual dimensions of the viewport, a value in pixels. More...
 
uint8 getCurrentMip () const
 
TextureGpugetCurrentTarget () const
 
ColourBufferType getDrawBuffer () const
 Returns the current colour buffer type for this viewport. More...
 
Real getHeight () const
 Gets one of the relative dimensions of the viewport, a value between 0.0 and 1.0. More...
 
Real getLeft () const
 Gets one of the relative dimensions of the viewport, a value between 0.0 and 1.0. More...
 
uint32 getLightVisibilityMask () const
 
const StringgetMaterialScheme () const
 Get the material scheme which the viewport should use. More...
 
bool getOverlaysEnabled () const
 Returns whether or not Overlay objects (created in the SceneManager) are displayed in this viewport. More...
 
int getScissorActualHeight () const
 
int getScissorActualLeft () const
 
int getScissorActualTop () const
 
int getScissorActualWidth () const
 
Real getScissorHeight () const
 
Real getScissorLeft () const
 
Real getScissorTop () const
 
Real getScissorWidth () const
 
Real getTop () const
 Gets one of the relative dimensions of the viewport, a value between 0.0 and 1.0. More...
 
uint32 getVisibilityMask () const
 Gets a per-viewport visibility mask. More...
 
Real getWidth () const
 Gets one of the relative dimensions of the viewport, a value between 0.0 and 1.0. More...
 
void pointOrientedToScreen (const Vector2 &v, int orientationMode, Vector2 &outv)
 Convert oriented input point coordinates to screen coordinates. More...
 
void pointOrientedToScreen (Real orientedX, Real orientedY, int orientationMode, Real &screenX, Real &screenY)
 
bool scissorsMatchViewport () const
 
void setDimensions (TextureGpu *newTarget, const Vector4 &relativeVp, const Vector4 &scissors, uint8 mipLevel)
 Sets the dimensions (after creation). More...
 
void setDrawBuffer (ColourBufferType colourBuffer)
 Sets the draw buffer type for the next frame. More...
 
void setMaterialScheme (const String &schemeName)
 Set the material scheme which the viewport should use. More...
 
void setOverlaysEnabled (bool enabled)
 Tells this viewport whether it should display Overlay objects. More...
 
void setScissors (Real left, Real top, Real width, Real height)
 Only sets the scissor regions. More...
 

Public Attributes

size_t mGlobalIndex
 Index in the vector holding this MO reference (could be our parent node, or a global array tracking all movable objecst to avoid memory leaks). More...
 

Detailed Description

An abstraction of a viewport, i.e.

a rendering region on a render target.

Remarks
A viewport is the meeting of a camera and a rendering surface - the camera renders the scene from a viewpoint, and places its results into some subset of a rendering target, which may be the whole surface or just a part of the surface. Each viewport has a single camera as source and a single target as destination. A camera only has 1 viewport, but a render target may have several. A viewport also has a Z-order, i.e. if there is more than one viewport on a single render target and they overlap, one must obscure the other in some predetermined way.

Constructor & Destructor Documentation

◆ Viewport() [1/2]

Ogre::Viewport::Viewport ( Real  left,
Real  top,
Real  width,
Real  height 
)

The usual constructor.

Parameters
cameraPointer to a camera to be the source for the image.
targetPointer to the render target to be the destination for the rendering.
left,top,width,heightDimensions of the viewport, expressed as a value between 0 and 1. This allows the dimensions to apply irrespective of changes in the target's size: e.g. to fill the whole area, values of 0,0,1,1 are appropriate.
ZOrderRelative Z-order on the target. Lower = further to the front.

◆ Viewport() [2/2]

Ogre::Viewport::Viewport ( )

◆ ~Viewport()

virtual Ogre::Viewport::~Viewport ( )
virtual

Default destructor.

Member Function Documentation

◆ _clearUpdatedFlag()

void Ogre::Viewport::_clearUpdatedFlag ( )

◆ _isUpdated()

bool Ogre::Viewport::_isUpdated ( ) const

◆ _setupAspectRatio()

void Ogre::Viewport::_setupAspectRatio ( Camera cullCamera)

◆ _setVisibilityMask()

void Ogre::Viewport::_setVisibilityMask ( uint32  mask,
uint32  lightMask 
)

Sets a per-viewport visibility mask.

Remarks
The visibility mask is a way to exclude objects from rendering for a given viewport. For each object in the frustum, a check is made between this mask and the objects visibility flags (
See also
MovableObject::setVisibilityFlags), and if a binary 'and' returns zero, the object will not be rendered.
Viewport's visibility mask assumes the user knows what he's doing with the reserved flags!

◆ _updateCullPhase01()

void Ogre::Viewport::_updateCullPhase01 ( Camera renderCamera,
Camera cullCamera,
const Camera lodCamera,
uint8  firstRq,
uint8  lastRq,
bool  reuseCullData 
)

Instructs the viewport to updates its contents.

◆ _updateDimensions()

void Ogre::Viewport::_updateDimensions ( )

Notifies the viewport of a possible change in dimensions.

Remarks
Used by the target to update the viewport's dimensions (usually the result of a change in target size).
Note
Internal use by Ogre only.

◆ _updateRenderPhase02()

void Ogre::Viewport::_updateRenderPhase02 ( Camera camera,
const Camera lodCamera,
uint8  firstRq,
uint8  lastRq 
)

◆ coversEntireTarget()

bool Ogre::Viewport::coversEntireTarget ( ) const

◆ getActualDimensions()

void Ogre::Viewport::getActualDimensions ( int &  left,
int &  top,
int &  width,
int &  height 
) const

Access to actual dimensions (based on target size).

◆ getActualHeight()

int Ogre::Viewport::getActualHeight ( ) const

Gets one of the actual dimensions of the viewport, a value in pixels.

◆ getActualLeft()

int Ogre::Viewport::getActualLeft ( ) const

Gets one of the actual dimensions of the viewport, a value in pixels.

◆ getActualTop()

int Ogre::Viewport::getActualTop ( ) const

Gets one of the actual dimensions of the viewport, a value in pixels.

◆ getActualWidth()

int Ogre::Viewport::getActualWidth ( ) const

Gets one of the actual dimensions of the viewport, a value in pixels.

◆ getCurrentMip()

uint8 Ogre::Viewport::getCurrentMip ( ) const
inline

◆ getCurrentTarget()

TextureGpu* Ogre::Viewport::getCurrentTarget ( ) const
inline

◆ getDrawBuffer()

ColourBufferType Ogre::Viewport::getDrawBuffer ( ) const

Returns the current colour buffer type for this viewport.

◆ getHeight()

Real Ogre::Viewport::getHeight ( ) const

Gets one of the relative dimensions of the viewport, a value between 0.0 and 1.0.

◆ getLeft()

Real Ogre::Viewport::getLeft ( ) const

Gets one of the relative dimensions of the viewport, a value between 0.0 and 1.0.

◆ getLightVisibilityMask()

uint32 Ogre::Viewport::getLightVisibilityMask ( ) const
inline

◆ getMaterialScheme()

const String& Ogre::Viewport::getMaterialScheme ( ) const
inline

Get the material scheme which the viewport should use.

◆ getOverlaysEnabled()

bool Ogre::Viewport::getOverlaysEnabled ( ) const

Returns whether or not Overlay objects (created in the SceneManager) are displayed in this viewport.

◆ getScissorActualHeight()

int Ogre::Viewport::getScissorActualHeight ( ) const
inline

◆ getScissorActualLeft()

int Ogre::Viewport::getScissorActualLeft ( ) const
inline

◆ getScissorActualTop()

int Ogre::Viewport::getScissorActualTop ( ) const
inline

◆ getScissorActualWidth()

int Ogre::Viewport::getScissorActualWidth ( ) const
inline

◆ getScissorHeight()

Real Ogre::Viewport::getScissorHeight ( ) const
inline

◆ getScissorLeft()

Real Ogre::Viewport::getScissorLeft ( ) const
inline

◆ getScissorTop()

Real Ogre::Viewport::getScissorTop ( ) const
inline

◆ getScissorWidth()

Real Ogre::Viewport::getScissorWidth ( ) const
inline

◆ getTop()

Real Ogre::Viewport::getTop ( ) const

Gets one of the relative dimensions of the viewport, a value between 0.0 and 1.0.

◆ getVisibilityMask()

uint32 Ogre::Viewport::getVisibilityMask ( ) const
inline

Gets a per-viewport visibility mask.

See also
Viewport::setVisibilityMask

◆ getWidth()

Real Ogre::Viewport::getWidth ( ) const

Gets one of the relative dimensions of the viewport, a value between 0.0 and 1.0.

◆ pointOrientedToScreen() [1/2]

void Ogre::Viewport::pointOrientedToScreen ( const Vector2 v,
int  orientationMode,
Vector2 outv 
)

Convert oriented input point coordinates to screen coordinates.

◆ pointOrientedToScreen() [2/2]

void Ogre::Viewport::pointOrientedToScreen ( Real  orientedX,
Real  orientedY,
int  orientationMode,
Real screenX,
Real screenY 
)

◆ scissorsMatchViewport()

bool Ogre::Viewport::scissorsMatchViewport ( ) const

◆ setDimensions()

void Ogre::Viewport::setDimensions ( TextureGpu newTarget,
const Vector4 relativeVp,
const Vector4 scissors,
uint8  mipLevel 
)

Sets the dimensions (after creation).

Parameters
leftLeft point of viewport.
topTop point of the viewport.
widthWidth of the viewport.
heightHeight of the viewport.
overrideScissorsWhen true, the scissor dimensions will be the same as the viewport's
See also
setScissors
Note
Dimensions relative to the size of the target, represented as real values between 0 and 1. i.e. the full target area is 0, 0, 1, 1.

◆ setDrawBuffer()

void Ogre::Viewport::setDrawBuffer ( ColourBufferType  colourBuffer)

Sets the draw buffer type for the next frame.

Remarks
Specifies the particular buffer that will be targeted by the render target. Should be used if the render target supports quad buffer stereo. If the render target does not support stereo (ie. left and right), then only back and front will be used.
Parameters
bufferSpecifies the particular buffer that will be targeted by the render target.

◆ setMaterialScheme()

void Ogre::Viewport::setMaterialScheme ( const String schemeName)
inline

Set the material scheme which the viewport should use.

Remarks
This allows you to tell the system to use a particular material scheme when rendering this viewport, which can involve using different techniques to render your materials.
See also
Technique::setSchemeName

◆ setOverlaysEnabled()

void Ogre::Viewport::setOverlaysEnabled ( bool  enabled)

Tells this viewport whether it should display Overlay objects.

Remarks
Overlay objects are layers which appear on top of the scene. They are created via SceneManager::createOverlay and every viewport displays these by default. However, you probably don't want this if you're using multiple viewports, because one of them is probably a picture-in-picture which is not supposed to have overlays of it's own. In this case you can turn off overlays on this viewport by calling this method.
Parameters
enabledIf true, any overlays are displayed, if false they are not.

◆ setScissors()

void Ogre::Viewport::setScissors ( Real  left,
Real  top,
Real  width,
Real  height 
)

Only sets the scissor regions.

The scissor rectangle must be fully inside the viewport rectangle. See setDimensions() for param description

Remarks
Only the scissor rect is set here; but the HLMS macroblock controls whether scissor testing is enabled or not (See HlmsMacroblock). On some RenderSystem implementations (i.e. OpenGL), scissor testing needs to be enabled when clearing a region of the screen. In those cases, if scissor testing is disabled at the time of the clear, scissor testing will be temporarily enabled and then disabled.

Member Data Documentation

◆ mGlobalIndex

size_t Ogre::Viewport::mGlobalIndex

Index in the vector holding this MO reference (could be our parent node, or a global array tracking all movable objecst to avoid memory leaks).

Used for O(1) removals.

Remarks
It is the parent (or our creator) the one that sets this value, not ourselves. Do NOT modify it manually.

The documentation for this class was generated from the following file: