Go to the documentation of this file.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