fbsdk/fbshader.h File Reference

fbshader.h File Reference
#include <kaydaradef.h>
#include <fbsdk/fbcomponent.h>
#include <fbsdk/fbcore.h>

File Description

Declaration for the classes FBShaderManager, FBShader, FBPropertyListShader and other subclasses.

Definition in file fbshader.h.

Classes

class  FBShaderManager
 Shader manager. More...
 
class  FBShaderModelInfo
 
class  FBRenderOptions
 
class  FBShader
 Shader class. More...
 
class  FBPropertyListShader
 PropertyList: Shader More...
 
class  FBShaderLighted
 Lighted shader class. More...
 
class  FBShaderShadowLive
 Shader Shadow Live class. More...
 

Namespaces

 ORSDK2018
 

Macros

#define FBSDK_DLL   K_DLLIMPORT
 Be sure that FBSDK_DLL is defined only once... More...
 
#define FBRegisterShader(UniqueNameStr, ClassName, Label, Description, IconFilename)
 Shader class registration. More...
 
#define FBShaderDeclare(ClassName, Parent )
 Shader class declaration. More...
 
#define FBShaderImplementation(ThisComponent)   FBClassImplementation( ThisComponent )
 Shader class implementation. More...
 

Typedefs

typedef KRenderOptions * HKRenderOptions
 
typedef KModelRenderInfo * HKModelRenderInfo
 
typedef KShaderModelInfo * HKShaderModelInfo
 
typedef class FBPropertyBaseEnum< enum FBRenderingPass > FBPropertyRenderingPass
 
typedef class FBPropertyBaseEnum< enum FBAlphaSource > FBPropertyAlphaSource
 
typedef class FBPropertyBaseEnum< enum FBShaderCapacity > FBPropertyShaderCapacity
 
typedef class FBPropertyBaseEnum< enum FBShaderPassActionCallback > FBPropertyShaderPassActionCallback
 
typedef class FBPropertyBase< FBShader *, kFBPT_object > FBPropertyBaseShader
 
typedef class FBPropertyBaseComponent< FBShader * > FBPropertyShader
 
typedef class FBPropertyBaseList< FBShader * > FBPropertyBaseListShader
 
typedef class FBPropertyBase< FBShaderLighted *, kFBPT_object > FBPropertyBaseShaderLighted
 
typedef class FBPropertyBaseComponent< FBShaderLighted * > FBPropertyShaderLighted
 
typedef class FBPropertyBase< FBShaderShadowLive *, kFBPT_object > FBPropertyBaseShaderShadowLive
 
typedef class FBPropertyBaseComponent< FBShaderShadowLive * > FBPropertyShaderShadowLive
 
typedef class FBPropertyBaseEnum< enum FBShadowType > FBPropertyShadowType
 
typedef class FBPropertyBaseEnum< enum FBShadowFrameType > FBPropertyShadowFrameType
 

Enumerations

enum  FBRenderingPass {
  kFBPassInvalid = 0, kFBPassPreRender = 1 << 0, kFBPassFlat = 1 << 1, kFBPassLighted = 1 << 2,
  kFBPassMatte = 1 << 3, kFBPassZTranslucent = 1 << 4, kFBPassZTranslucentAlphaTest = 1 << 5, kFBPassTranslucent = 1 << 6,
  kFBPassAddColor = 1 << 7, kFBPassTranslucentZSort = 1 << 8, kFBPassPostRender = 1 << 9
}
 Rendering Pass. More...
 
enum  FBAlphaSource {
  kFBAlphaSourceNoAlpha, kFBAlphaSourceAccurateAlpha, kFBAlphaSourceTransluscentAlpha, kFBAlphaSourceMatteAlpha,
  kFBAlphaSource2DTransparency, kFBAlphaSourceAdditiveAlpha, kFBAlphaSourceTransluscentZSortAlpha
}
 Shader transparency computation. More...
 
enum  FBShaderCapacity {
  kFBShaderCapacityNone = 0, kFBShaderCapacityMaterialEffect = 1 << 0, kFBShaderCapacityDrawInstanced = 1 << 1, kFBShaderCapacityDrawShadow = 1 << 2,
  kFBShaderCapactiyDrawTextureLayer = 1 << 3
}
 Shader Capacity. More...
 
enum  FBShaderPassActionCallback {
  kFBShaderPassActionNone = 0, kFBShaderPassTypeBegin = 1 << 0, kFBShaderPassTypeEnd = 1 << 1, kFBShaderPassInstanceBegin = 1 << 2,
  kFBShaderPassInstanceEnd = 1 << 3, kFBShaderPassMaterialBegin = 1 << 4, kFBShaderPassMaterialEnd = 1 << 5, kFBShaderPassGeometryBegin = 1 << 6,
  kFBShaderPassGeometryEnd = 1 << 7, kFBShaderPassModelsDraw = 1 << 8, kFBShaderPassModelDraw = 1 << 9
}
 Shader Pass Action Callback. More...
 
enum  FBShadowType {
  kFBShadowTypeShadowTranslucentPlanar, kFBShadowTypeShadowProjectiveTexture, kFBShadowTypeLightMapProjectiveTexture, kFBShadowTypeZShadowProjectiveTexture,
  kFBShadowTypeZLightMapProjectiveTexture, kFBShadowTypeShadowOpaquePlanar
}
 Shadow types. More...
 
enum  FBShadowFrameType { kFBShadowFrameTypeShadowReceiver, kFBShadowFrameTypeShadowCaster, kFBShadowFrameTypeShadowCubeMap }
 Shadow calculation methods. More...
 

Macro Definition Documentation

#define FBRegisterShader (   UniqueNameStr,
  ClassName,
  Label,
  Description,
  IconFilename 
)
Value:
HIObject RegisterShader##ClassName( HIObject /*pOwner*/,const char* pName,void * /*pData*/) \
{ \
ClassName *Class = new ClassName( pName ); \
Class->UniqueName = UniqueNameStr; \
Class->ShaderDescription = Description; \
if (Class->FBCreate()) { \
return Class->GetHIObject(); \
} else { \
delete Class; \
return NULL; \
} \
} \
FBLibraryModule( ClassName ) \
{ \
FBRegisterObject( ClassName##R1,"renderer/usershader/ogl",Label,Description,RegisterShader##ClassName,true, IconFilename ); \
FBRegisterObject( ClassName##R2,"FbxStorable/Shader",UniqueNameStr,Description,RegisterShader##ClassName,true, IconFilename ); \
}
#define FBRegisterObject(LocalId, Path, Name, Description, Constructor, IsMultipleAllowed, IconFilename)
Event registration/un-registration.
Definition: fbcomponent.h:387
#define NULL
Definition: kaydara.h:169
#define FBLibraryModule(Name)
FBLibraryModule Define a module registration call.
Definition: fbcomponent.h:1211

Shader class registration.

Parameters
UniqueNameStrUnique name.
ClassNameShader class name.
LabelShort description.
DescriptionLong description.
IconFilenameName of the file containing the icon.
+ Examples:

Definition at line 71 of file fbshader.h.

#define FBSDK_DLL   K_DLLIMPORT

Be sure that FBSDK_DLL is defined only once...

Definition at line 50 of file fbshader.h.

#define FBShaderDeclare (   ClassName,
  Parent 
)
Value:
FBClassDeclare( ClassName,Parent); \
public: \
ClassName(const char* pName):Parent(pName) { FBClassInit; } \
private:
#define FBClassInit
Class initialization.
Definition: fbdefines.h:64
#define FBClassDeclare(Name, Parent)
Class declaration.
Definition: fbdefines.h:85

Shader class declaration.

Parameters
ClassNameShader class name.
ParentClass parent.
+ Examples:

Definition at line 94 of file fbshader.h.

Typedef Documentation

typedef KModelRenderInfo* HKModelRenderInfo

Definition at line 57 of file fbshader.h.

typedef KRenderOptions* HKRenderOptions

Definition at line 56 of file fbshader.h.

typedef KShaderModelInfo* HKShaderModelInfo

Definition at line 58 of file fbshader.h.

Go to the source code of this file.