00001
00002
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 #ifndef TURBULENCE_RENDER_CALLBACK_H
00031 #define TURBULENCE_RENDER_CALLBACK_H
00032
00033 #include "foundation/Px.h"
00034 #include "UserRenderCallback.h"
00035
00036 namespace nvidia
00037 {
00038 namespace apex
00039 {
00040
00041 PX_PUSH_PACK_DEFAULT
00042
00043 class TurbulenceRenderable;
00044
00048 struct TurbulenceVelocityFormat
00049 {
00053 enum Enum
00054 {
00055 DEFAULT = 0,
00056 HALF4 = RenderDataFormat::HALF4,
00057 FLOAT4 = RenderDataFormat::FLOAT4,
00058 };
00059 };
00060
00064 struct TurbulenceDensityFormat
00065 {
00069 enum Enum
00070 {
00071 DEFAULT = 0,
00072 UBYTE1 = RenderDataFormat::UBYTE1,
00073 HALF1 = RenderDataFormat::HALF1,
00074 FLOAT1 = RenderDataFormat::FLOAT1,
00075 };
00076 };
00077
00081 struct TurbulenceFlameFormat
00082 {
00086 enum Enum
00087 {
00088 DEFAULT = 0,
00089 HALF4 = RenderDataFormat::HALF4,
00090 FLOAT4 = RenderDataFormat::FLOAT4,
00091 };
00092 };
00093
00097 struct TurbulenceRenderLayout
00098 {
00099 TurbulenceRenderLayout()
00100 {
00101 setDefaults();
00102 }
00103
00105 void setDefaults()
00106 {
00107 velocityFormat = TurbulenceVelocityFormat::DEFAULT;
00108 densityFormat = TurbulenceDensityFormat::DEFAULT;
00109 flameFormat = TurbulenceFlameFormat::DEFAULT;
00110 }
00111
00113 TurbulenceVelocityFormat::Enum velocityFormat;
00114
00116 TurbulenceDensityFormat::Enum densityFormat;
00117
00119 TurbulenceFlameFormat::Enum flameFormat;
00120 };
00121
00125 class TurbulenceRenderCallback : public UserRenderCallback
00126 {
00127 public:
00129 virtual void onCreatedTurbulenceRenderable(TurbulenceRenderable& ) {}
00130
00132 virtual void onUpdatedTurbulenceRenderable(TurbulenceRenderable& ) {}
00133
00135 virtual void onReleasingTurbulenceRenderable(TurbulenceRenderable& ) {}
00136
00138 virtual bool getTurbulenceRenderLayout(TurbulenceRenderLayout& renderLayout, uint32_t sizeX, uint32_t sizeY, uint32_t sizeZ, uint32_t densitySizeMultiplier, uint32_t flameSizeMultiplier)
00139 {
00140 PX_UNUSED(renderLayout);
00141 PX_UNUSED(sizeX);
00142 PX_UNUSED(sizeY);
00143 PX_UNUSED(sizeZ);
00144 PX_UNUSED(densitySizeMultiplier);
00145 PX_UNUSED(flameSizeMultiplier);
00146 return false;
00147 }
00148 };
00149
00150 PX_POP_PACK
00151
00152 }
00153 }
00154
00155 #endif // TURBULENCE_RENDER_CALLBACK_H