/usr/include/cegui-0.8.7/CEGUI/RenderTarget.h is in libcegui-mk2-dev 0.8.7-1.3+b2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | /***********************************************************************
created: Sun Jan 11 2009
author: Paul D Turner
*************************************************************************/
/***************************************************************************
* Copyright (C) 2004 - 2011 Paul D Turner & The CEGUI Development Team
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
***************************************************************************/
#ifndef _CEGUIRenderTarget_h_
#define _CEGUIRenderTarget_h_
#include "CEGUI/Base.h"
#include "CEGUI/EventSet.h"
#include "CEGUI/EventArgs.h"
#include "CEGUI/Vector.h"
#include "CEGUI/Rect.h"
// Start of CEGUI namespace section
namespace CEGUI
{
//! EventArgs class passed to subscribers of RenderTarget events.
class CEGUIEXPORT RenderTargetEventArgs : public EventArgs
{
public:
RenderTargetEventArgs(RenderTarget* target):
target(target)
{}
//! pointer to the RenderTarget that triggered the event.
RenderTarget* target;
};
/*!
\brief
Defines interface to some surface that can be rendered to. Concrete
instances of objects that implement the RenderTarget interface are
normally created via the Renderer object.
*/
class CEGUIEXPORT RenderTarget :
public EventSet,
public AllocatedObject<RenderTarget>
{
public:
//! Namespace for global events
static const String EventNamespace;
/** Event to be fired when the RenderTarget object's area has changed.
* Handlers are passed a const RenderTargetEventArgs reference with
* RenderTargetEventArgs::target set to the RenderTarget whose area changed.
*/
static const String EventAreaChanged;
/*!
\brief
Draw geometry from the given GeometryBuffer onto the surface that
this RenderTarget represents.
\param buffer
GeometryBuffer object holding the geometry that should be drawn to the
RenderTarget.
*/
virtual void draw(const GeometryBuffer& buffer) = 0;
/*!
\brief
Draw geometry from the given RenderQueue onto the surface that
this RenderTarget represents.
\param queue
RenderQueue object holding the geometry that should be drawn to the
RenderTarget.
*/
virtual void draw(const RenderQueue& queue) = 0;
/*!
\brief
Set the area for this RenderTarget. The exact action this function
will take depends upon what the concrete class is representing. For
example, with a 'view port' style RenderTarget, this should set the area
that the view port occupies on the display (or rendering window).
\param area
Rect object describing the new area to be assigned to the RenderTarget.
\note
When implementing this function, you should be sure to fire the event
RenderTarget::EventAreaChanged so that interested parties can know that
the change has occurred.
\exception InvalidRequestException
May be thrown if the RenderTarget does not support setting or changing
its area, or if the area change can not be satisfied for some reason.
*/
virtual void setArea(const Rectf& area) = 0;
/*!
\brief
Return the area defined for this RenderTarget.
\return
Rect object describing the currently defined area for this RenderTarget.
*/
virtual const Rectf& getArea() const = 0;
/*!
\brief
Return whether the RenderTarget is an implementation that caches
actual rendered imagery.
Typically it is expected that texture based RenderTargets would return
true in response to this call. Other types of RenderTarget, like
view port based targets, will more likely return false.
\return
- true if the RenderTarget does cache rendered imagery.
- false if the RenderTarget does not cache rendered imagery.
*/
virtual bool isImageryCache() const = 0;
/*!
\brief
Activate the render target and put it in a state ready to be drawn to.
\note
You MUST call this before doing any rendering - if you do not call this,
in the unlikely event that your application actually works, it will
likely stop working in some future version.
*/
virtual void activate() = 0;
/*!
\brief
Deactivate the render target after having completed rendering.
\note
You MUST call this after you finish rendering to the target - if you do
not call this, in the unlikely event that your application actually
works, it will likely stop working in some future version.
*/
virtual void deactivate() = 0;
/*!
\brief
Take point \a p_in unproject it and put the result in \a p_out.
Resulting point is local to GeometryBuffer \a buff.
*/
virtual void unprojectPoint(const GeometryBuffer& buff,
const Vector2f& p_in, Vector2f& p_out) const = 0;
};
} // End of CEGUI namespace section
#endif // end of guard _CEGUIRenderTarget_h_
|