1 /*********************************************************************** 2 created: Tue Mar 10 2009 3 author: Paul D Turner (parts based on code by Keith Mok) 4 *************************************************************************/ 5 /*************************************************************************** 6 * Copyright (C) 2004 - 2009 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 _CEGUIDirectFBRenderTarget_h_ 28 #define _CEGUIDirectFBRenderTarget_h_ 29 30 #include "../../RenderTarget.h" 31 #include "../../Rect.h" 32 #include <directfb.h> 33 34 // Start of CEGUI namespace section 35 namespace CEGUI 36 { 37 class DirectFBRenderer; 38 39 //! Implementation of CEGUI::RenderTarget for DirectFB 40 class DirectFBRenderTarget : public RenderTarget 41 { 42 public: 43 //! Constructor. 44 DirectFBRenderTarget(DirectFBRenderer& owner, IDirectFBSurface& target); 45 46 // Implement RenderTarget interface 47 void draw(const GeometryBuffer& buffer); 48 void draw(const RenderQueue& queue); 49 void setArea(const Rectf& area); 50 const Rectf& getArea() const; 51 bool isImageryCache() const; 52 void activate(); 53 void deactivate(); 54 void unprojectPoint(const GeometryBuffer& buff, 55 const Vector2f& p_in, Vector2f& p_out) const; 56 57 protected: 58 //! DirectFBRenderer that created and owns this RenderTarget. 59 DirectFBRenderer& d_owner; 60 //! IDirectFBSurface targetted by this RenderTarget. 61 IDirectFBSurface& d_target; 62 //! holds defined area for the RenderTarget 63 Rectf d_area; 64 }; 65 66 } // End of CEGUI namespace section 67 68 #endif // end of guard _CEGUIDirectFBRenderTarget_h_ 69