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