00001 /* 00002 ----------------------------------------------------------------------------- 00003 This source file is part of OGRE 00004 (Object-oriented Graphics Rendering Engine) 00005 For the latest info, see http://www.ogre3d.org/ 00006 00007 Copyright (c) 2000-2006 Torus Knot Software Ltd 00008 Also see acknowledgements in Readme.html 00009 00010 This program is free software; you can redistribute it and/or modify it under 00011 the terms of the GNU Lesser General Public License as published by the Free Software 00012 Foundation; either version 2 of the License, or (at your option) any later 00013 version. 00014 00015 This program is distributed in the hope that it will be useful, but WITHOUT 00016 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00017 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public License along with 00020 this program; if not, write to the Free Software Foundation, Inc., 59 Temple 00021 Place - Suite 330, Boston, MA 02111-1307, USA, or go to 00022 http://www.gnu.org/copyleft/lesser.txt. 00023 00024 You may alternatively use this source under the terms of a specific version of 00025 the OGRE Unrestricted License provided you have obtained such a license from 00026 Torus Knot Software Ltd. 00027 ----------------------------------------------------------------------------- 00028 */ 00029 #ifndef __RenderTargetListener_H__ 00030 #define __RenderTargetListener_H__ 00031 00032 00033 #include "OgrePrerequisites.h" 00034 00035 namespace Ogre { 00036 00039 struct RenderTargetEvent 00040 { 00042 RenderTarget* source; 00043 }; 00044 00047 struct RenderTargetViewportEvent 00048 { 00050 Viewport* source; 00051 }; 00052 00072 class _OgreExport RenderTargetListener 00073 { 00074 /* 00075 Note that this could have been an abstract class, but I made 00076 the explicit choice not to do this, because I wanted to give 00077 people the option of only implementing the methods they wanted, 00078 rather than having to create 'do nothing' implementations for 00079 those they weren't interested in. As such this class follows 00080 the 'Adapter' classes in Java rather than pure interfaces. 00081 */ 00082 public: 00083 virtual ~RenderTargetListener() {} 00095 virtual void preRenderTargetUpdate(const RenderTargetEvent& evt) { } 00104 virtual void postRenderTargetUpdate(const RenderTargetEvent& evt) { } 00105 00106 /* Called just before a Viewport on a RenderTarget is to be updated. 00107 @remarks 00108 This method is called before each viewport on the RenderTarget is 00109 rendered to. You can use this to perform per-viewport settings changes, 00110 such as showing / hiding particular overlays. 00111 */ 00112 virtual void preViewportUpdate(const RenderTargetViewportEvent& evt) { } 00113 00114 /* Called just after a Viewport on a RenderTarget is to be updated. 00115 @remarks 00116 This method is called after each viewport on the RenderTarget is 00117 rendered to. 00118 */ 00119 virtual void postViewportUpdate(const RenderTargetViewportEvent& evt) { } 00120 00124 virtual void viewportAdded(const RenderTargetViewportEvent& evt) {} 00128 virtual void viewportRemoved(const RenderTargetViewportEvent& evt) {} 00129 }; 00130 } 00131 00132 #endif
Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Sep 27 22:02:25 2009