![]() |
Public API Reference |
00001 /* 00002 Copyright (C) 2002 by Anders Stenberg 00003 Written by Anders Stenberg 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License as published by the Free Software Foundation; either 00008 version 2 of the License, or (at your option) any later version. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public 00016 License along with this library; if not, write to the Free 00017 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00018 */ 00019 00020 #ifndef __CS_IVIDEO_IEFFECTTECHNIQUE_H__ 00021 #define __CS_IVIDEO_IEFFECTTECHNIQUE_H__ 00022 00031 #include "csutil/scf.h" 00032 #include "cstypes.h" 00033 00034 struct iEffectPass; 00035 00038 00039 #define CS_TECHNIQUE_PASSED 0 00040 00041 #define CS_TECHNIQUE_FAILED 1 00042 00043 #define CS_TECHNIQUE_NOTVALIDATED 2 00044 00046 SCF_VERSION (iEffectTechnique, 0, 0, 1); 00047 00051 struct iEffectTechnique : public iBase 00052 { 00054 virtual csPtr<iEffectPass> CreatePass() = 0; 00056 virtual int GetPassCount() = 0; 00058 virtual iEffectPass* GetPass (int pass) = 0; 00059 00064 virtual void SetValidation (int validation) = 0; 00069 virtual int GetValidation() = 0; 00070 00072 virtual void SetQuality (float q) = 0; 00074 virtual float GetQuality() = 0; 00075 00077 virtual void SetClientFlags (uint32 flags) = 0; 00079 virtual uint32 GetClientFlags() = 0; 00080 00081 // Some way of setting user data/flags and automatically invalidating 00082 // techniques with some flag defined should be possible. 00083 // For example, an effect might have a "pixel shader"-flag, and then 00084 // the app can disable pixel shading by saying that all techniques 00085 // with the "pixel shader" flag are invalid (even though it might be 00086 // supported by the renderer). 00087 // --Anders Stenberg 00088 }; 00089 00092 #endif // __CS_IVIDEO_EFFECTTECHNIQUE_H__