Go to the
documentation of this file.
00001 #ifndef __FBTEXTURE_H__
00002 #define __FBTEXTURE_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00043 #include <kaydaradef.h>
00044 #ifndef FBSDK_DLL
00045
00048 #define FBSDK_DLL K_DLLIMPORT
00049 #endif
00050
00051 #include <fbsdk/fbcomponent.h>
00052 #include <fbsdk/fbcore.h>
00053 #include <fbsdk/fbproperties.h>
00054 #include <fbsdk/fbvideo.h>
00055
00056 #ifdef FBSDKUseNamespace
00057 namespace FBSDKNamespace {
00058 #endif
00059
00060
00062
00064 __FB_FORWARD( FBTexture );
00065
00070 enum FBTextureUseType {
00071 kFBTextureUseAll,
00072 kFBTextureUseColor,
00073 kFBTextureUseShadowMap,
00074 kFBTextureUseLightMap,
00075 kFBTextureUseSphericalReflexionMap,
00076 kFBTextureUseSphereReflexionMap,
00077 kFBTextureUseBumpNormalMap
00078 };
00079
00083 enum FBTextureMapping {
00084 kFBTextureNoMapping,
00085 kFBTextureMappingUV,
00086 kFBTextureMappingXY,
00087 kFBTextureMappingYZ,
00088 kFBTextureMappingXZ,
00089 kFBTextureMappingSpherical,
00090 kFBTextureMappingCylindrical,
00091 kFBTextureMappingEnvironment,
00092 kFBTextureMappingProjection
00093 };
00094
00098 enum FBTextureBlendMode {
00099 kFBTextureBlendTranslucent,
00100 kFBTextureBlendAdditive,
00101 kFBTextureBlendModulate,
00102 kFBTextureBlendModulate2,
00103 };
00104
00105 FB_DEFINE_ENUM( FBSDK_DLL, TextureUseType );
00106 FB_DEFINE_ENUM( FBSDK_DLL, TextureMapping );
00107 FB_DEFINE_ENUM( FBSDK_DLL, TextureBlendMode );
00108
00110
00111
00112 FB_FORWARD(FBRenderOptions);
00113
00114 class FBSDK_DLL FBTexture : public FBBox {
00115 __FBClassDeclare( FBTexture,FBBox );
00116 public:
00121 FBTexture(const char* pName, HIObject pObject=NULL);
00122 virtual void FBDelete();
00123
00128 FBTexture* Clone();
00129
00130 FBPropertyString Filename;
00131 FBPropertyInt Width;
00132 FBPropertyInt Height;
00133 FBPropertyTextureUseType UseType;
00134 FBPropertyTextureMapping Mapping;
00135 FBPropertyTextureBlendMode BlendMode;
00136 FBPropertyAnimatableVector3d Translation;
00137 FBPropertyAnimatableVector3d Rotation;
00138 FBPropertyAnimatableVector3d Scaling;
00139 FBPropertyAnimatableDouble Alpha;
00140 FBPropertyBool SwapUV;
00141 FBPropertyInt CroppingX[2];
00142 FBPropertyInt CroppingY[2];
00143 FBPropertyVideo Video;
00144 FBPropertyBool TakeBased;
00145
00146 void OGLInit(FBRenderOptions* pRenderOptions = NULL);
00147 unsigned int GetTextureObject();
00148 double* GetMatrix();
00149 };
00150
00152
00155
00156 class FBSDK_DLL FBPropertyListTexture : public FBPropertyListComponent
00157 {
00158 public:
00159 FBPropertyListTexture();
00166 virtual int Add( FBTexture* pItem );
00171 FBTexture* operator[](int pIndex);
00172
00173 private:
00174 inline virtual int Add ( FBComponent* pItem ) { return Add((FBTexture*)pItem); }
00175 };
00176
00178
00180 __FB_FORWARD( FBLayeredTexture );
00181
00183
00184
00185 class FBSDK_DLL FBLayeredTexture : public FBTexture {
00186 __FBClassDeclare( FBLayeredTexture,FBTexture );
00187 public:
00192 FBLayeredTexture(const char* pName, HIObject pObject=NULL);
00193 virtual void FBDelete();
00194
00199 FBLayeredTexture* Clone();
00200
00201 FBPropertyListTexture Layers;
00202 };
00203
00204 #ifdef FBSDKUseNamespace
00205 }
00206 #endif
00207
00208 #endif