Crazy Eddie's GUI System 0.8.7
Loading...
Searching...
No Matches
RendererModules/Direct3D10/RenderTarget.h
1/***********************************************************************
2 created: Sat Mar 7 2009
3 author: Paul D Turner (parts based on code by Rajko Stojadinovic)
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 _CEGUIDirect3D10RenderTarget_h_
28#define _CEGUIDirect3D10RenderTarget_h_
29
30#include "../../RenderTarget.h"
31#include "CEGUI/RendererModules/Direct3D10/Renderer.h"
32#include "../../Rect.h"
33
34// Unfortunately, MinGW-w64 doesn't have <d3dx10.h>
35#ifdef __MINGW32__
36 #include <d3d10.h>
37 #include <d3dx9.h>
38#else
39 #include <d3dx10.h>
40#endif
41
42#if defined(_MSC_VER)
43# pragma warning(push)
44# pragma warning(disable : 4251)
45#endif
46
47// Start of CEGUI namespace section
48namespace CEGUI
49{
51template <typename T = RenderTarget>
52class D3D10_GUIRENDERER_API Direct3D10RenderTarget : public T
53{
54public:
57
58 // implement parts of RenderTarget interface
59 void draw(const GeometryBuffer& buffer);
60 void draw(const RenderQueue& queue);
61 void setArea(const Rectf& area);
62 const Rectf& getArea() const;
63 void activate();
64 void deactivate();
66 const Vector2f& p_in,
67 Vector2f& p_out) const;
68
69protected:
71 void updateMatrix() const;
73 void setupViewport(D3D10_VIEWPORT& vp) const;
74
78 ID3D10Device& d_device;
82 mutable D3DXMATRIX d_matrix;
84 mutable bool d_matrixValid;
86 mutable float d_viewDistance;
87};
88
89} // End of CEGUI namespace section
90
91#if defined(_MSC_VER)
92# pragma warning(pop)
93#endif
94
95#endif // end of guard _CEGUIDirect3D10RenderTarget_h_
Implementation of an ntermediate RenderTarget for the Direct3D 10 API.
Definition RendererModules/Direct3D10/RenderTarget.h:53
void setArea(const Rectf &area)
Set the area for this RenderTarget. The exact action this function will take depends upon what the co...
void deactivate()
Deactivate the render target after having completed rendering.
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 ...
bool d_matrixValid
true when d_matrix is valid and up to date
Definition RendererModules/Direct3D10/RenderTarget.h:84
void updateMatrix() const
helper that initialises the cached matrix
Direct3D10Renderer & d_owner
Renderer that created and owns the render target.
Definition RendererModules/Direct3D10/RenderTarget.h:76
const Rectf & getArea() const
Return the area defined for this RenderTarget.
void activate()
Activate the render target and put it in a state ready to be drawn to.
Rectf d_area
holds defined area for the RenderTarget
Definition RendererModules/Direct3D10/RenderTarget.h:80
void setupViewport(D3D10_VIEWPORT &vp) const
helper to initialise the D3D10_VIEWPORT vp for this target.
D3DXMATRIX d_matrix
projection / view matrix cache
Definition RendererModules/Direct3D10/RenderTarget.h:82
void draw(const RenderQueue &queue)
Draw geometry from the given RenderQueue onto the surface that this RenderTarget represents.
float d_viewDistance
tracks viewing distance (this is set up at the same time as d_matrix)
Definition RendererModules/Direct3D10/RenderTarget.h:86
ID3D10Device & d_device
D3D10Device interface.
Definition RendererModules/Direct3D10/RenderTarget.h:78
void draw(const GeometryBuffer &buffer)
Draw geometry from the given GeometryBuffer onto the surface that this RenderTarget represents.
Direct3D10RenderTarget(Direct3D10Renderer &owner)
Constructor.
Renderer implementation using Direct3D 10.
Definition RendererModules/Direct3D10/Renderer.h:69
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
Main namespace for Crazy Eddie's GUI Library.
Definition arch_overview.dox:1