Crazy Eddie's GUI System 0.8.7
Loading...
Searching...
No Matches
RendererModules/Direct3D9/RenderTarget.h
1/***********************************************************************
2 created: Tue Feb 10 2009
3 author: Paul D Turner
4*************************************************************************/
5/***************************************************************************
6 * Copyright (C) 2004 - 2011 Paul D Turner & The CEGUI Development Team
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining
9 * a copy of this software and associated documentation files (the
10 * "Software"), to deal in the Software without restriction, including
11 * without limitation the rights to use, copy, modify, merge, publish,
12 * distribute, sublicense, and/or sell copies of the Software, and to
13 * permit persons to whom the Software is furnished to do so, subject to
14 * the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be
17 * included in all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 ***************************************************************************/
27#ifndef _CEGUIDirect3D9RenderTarget_h_
28#define _CEGUIDirect3D9RenderTarget_h_
29
30#include "CEGUI/RendererModules/Direct3D9/Renderer.h"
31#include "../../RenderTarget.h"
32#include "../../Rect.h"
33
34#if defined(_MSC_VER)
35# pragma warning(push)
36# pragma warning(disable : 4251)
37#endif
38
39// Start of CEGUI namespace section
40namespace CEGUI
41{
46template <typename T = RenderTarget>
47class DIRECT3D9_GUIRENDERER_API Direct3D9RenderTarget : public T
48{
49public:
52
53 // implement parts of RenderTarget interface
55 void draw(const RenderQueue& queue);
56 void setArea(const Rectf& area);
57 const Rectf& getArea() const;
58 void activate();
59 void deactivate();
61 const Vector2f& p_in,
62 Vector2f& p_out) const;
63
64protected:
66 void updateMatrix() const;
69
79 mutable bool d_matrixValid;
81 mutable float d_viewDistance;
82};
83
84} // End of CEGUI namespace section
85
86#if defined(_MSC_VER)
87# pragma warning(pop)
88#endif
89
90#endif // end of guard _CEGUIDirect3D9RenderTarget_h_
Intermediate Direct3D9 implementation of a RenderTarget.
Definition RendererModules/Direct3D9/RenderTarget.h:48
LPDIRECT3DDEVICE9 d_device
Direct3DDevice9 interface obtained from our owner.
Definition RendererModules/Direct3D9/RenderTarget.h:73
void draw(const GeometryBuffer &buffer)
Draw geometry from the given GeometryBuffer onto the surface that this RenderTarget represents.
Direct3D9Renderer & d_owner
Direct3D9Renderer that created this object.
Definition RendererModules/Direct3D9/RenderTarget.h:71
Direct3D9RenderTarget(Direct3D9Renderer &owner)
Constructor.
void deactivate()
Deactivate the render target after having completed rendering.
float d_viewDistance
tracks viewing distance (this is set up at the same time as d_matrix)
Definition RendererModules/Direct3D9/RenderTarget.h:81
void setArea(const Rectf &area)
Set the area for this RenderTarget. The exact action this function will take depends upon what the co...
D3DMATRIX d_matrix
projection / view matrix cache
Definition RendererModules/Direct3D9/RenderTarget.h:77
void unprojectPoint(const GeometryBuffer &buff, const Vector2f &p_in, Vector2f &p_out) const
Take point p_in unproject it and put the result in p_out. Resulting point is local to GeometryBuffer ...
const Rectf & getArea() const
Return the area defined for this RenderTarget.
void setupViewport(D3DVIEWPORT9 &vp) const
helper to initialise the D3DVIEWPORT9 vp for this target.
Rectf d_area
holds defined area for the RenderTarget
Definition RendererModules/Direct3D9/RenderTarget.h:75
void activate()
Activate the render target and put it in a state ready to be drawn to.
bool d_matrixValid
true when d_matrix is valid and up to date
Definition RendererModules/Direct3D9/RenderTarget.h:79
void draw(const RenderQueue &queue)
Draw geometry from the given RenderQueue onto the surface that this RenderTarget represents.
void updateMatrix() const
helper that initialises the cached matrix
Renderer class to interface with Direct3D 9.
Definition RendererModules/Direct3D9/Renderer.h:65
Abstract class defining the interface for objects that buffer geometry for later rendering.
Definition GeometryBuffer.h:44
Class that represents a queue of GeometryBuffer objects to be rendered.
Definition RenderQueue.h:54
base class for properties able to do native set/get
Definition TypedProperty.h:50
Main namespace for Crazy Eddie's GUI Library.
Definition arch_overview.dox:1