00001 /* 00002 Copyright (C) 2005-2007 Feeling Software Inc. 00003 Portions of the code are: 00004 Copyright (C) 2005-2007 Sony Computer Entertainment America 00005 00006 MIT License: http://www.opensource.org/licenses/mit-license.php 00007 */ 00008 00014 #ifndef _FCD_EFFECT_PASS_STATE_H_ 00015 #define _FCD_EFFECT_PASS_STATE_H_ 00016 00017 #ifndef __FCD_OBJECT_H_ 00018 #include "FCDocument/FCDObject.h" 00019 #endif // __FCD_OBJECT_H_ 00020 #ifndef _FU_DAE_ENUM_H_ 00021 #include "FUtils/FUDaeEnum.h" 00022 #endif // _FU_DAE_ENUM_H_ 00023 #ifndef _FU_PARAMETER_H_ 00024 #include "FUtils/FUParameter.h" 00025 #endif // _FU_PARAMETER_H_ 00026 00036 class FCOLLADA_EXPORT FCDEffectPassState : public FCDObject 00037 { 00038 private: 00039 DeclareObjectType(FCDObject); 00040 DeclareParameter(uint32, FUParameterQualifiers::SIMPLE, type, FC("Type")); // FUDaePassState::State 00041 00042 // Data remains state-specific, un-parameterizable and will 00043 // pretty much always require custom UI. 00044 uint8* data; 00045 size_t dataSize; 00046 00047 public: 00054 FCDEffectPassState(FCDocument* document, FUDaePassState::State renderState); 00055 00057 virtual ~FCDEffectPassState(); 00058 00061 FUDaePassState::State GetType() const { return (FUDaePassState::State) *type; } 00062 00065 size_t GetDataSize() const { return dataSize; } 00066 00069 uint8* GetData() { return data; } 00070 const uint8* GetData() const { return data; } 00074 void SetDefaultValue(); 00075 00081 FCDEffectPassState* Clone(FCDEffectPassState* clone = NULL) const; 00082 }; 00083 00084 #endif // _FCD_EFFECT_PASS_STATE_H_