00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef TURBULENCE_RENDER_CALLBACK_H
00013 #define TURBULENCE_RENDER_CALLBACK_H
00014
00015 #include "foundation/Px.h"
00016 #include "UserRenderCallback.h"
00017
00018 namespace nvidia
00019 {
00020 namespace apex
00021 {
00022
00023 PX_PUSH_PACK_DEFAULT
00024
00025 class TurbulenceRenderable;
00026
00030 struct TurbulenceVelocityFormat
00031 {
00035 enum Enum
00036 {
00037 DEFAULT = 0,
00038 HALF4 = RenderDataFormat::HALF4,
00039 FLOAT4 = RenderDataFormat::FLOAT4,
00040 };
00041 };
00042
00046 struct TurbulenceDensityFormat
00047 {
00051 enum Enum
00052 {
00053 DEFAULT = 0,
00054 UBYTE1 = RenderDataFormat::UBYTE1,
00055 HALF1 = RenderDataFormat::HALF1,
00056 FLOAT1 = RenderDataFormat::FLOAT1,
00057 };
00058 };
00059
00063 struct TurbulenceFlameFormat
00064 {
00068 enum Enum
00069 {
00070 DEFAULT = 0,
00071 HALF4 = RenderDataFormat::HALF4,
00072 FLOAT4 = RenderDataFormat::FLOAT4,
00073 };
00074 };
00075
00079 struct TurbulenceRenderLayout
00080 {
00081 TurbulenceRenderLayout()
00082 {
00083 setDefaults();
00084 }
00085
00087 void setDefaults()
00088 {
00089 velocityFormat = TurbulenceVelocityFormat::DEFAULT;
00090 densityFormat = TurbulenceDensityFormat::DEFAULT;
00091 flameFormat = TurbulenceFlameFormat::DEFAULT;
00092 }
00093
00095 TurbulenceVelocityFormat::Enum velocityFormat;
00096
00098 TurbulenceDensityFormat::Enum densityFormat;
00099
00101 TurbulenceFlameFormat::Enum flameFormat;
00102 };
00103
00107 class TurbulenceRenderCallback : public UserRenderCallback
00108 {
00109 public:
00111 virtual void onCreatedTurbulenceRenderable(TurbulenceRenderable& ) {}
00112
00114 virtual void onUpdatedTurbulenceRenderable(TurbulenceRenderable& ) {}
00115
00117 virtual void onReleasingTurbulenceRenderable(TurbulenceRenderable& ) {}
00118
00120 virtual bool getTurbulenceRenderLayout(TurbulenceRenderLayout& renderLayout, uint32_t sizeX, uint32_t sizeY, uint32_t sizeZ, uint32_t densitySizeMultiplier, uint32_t flameSizeMultiplier)
00121 {
00122 PX_UNUSED(renderLayout);
00123 PX_UNUSED(sizeX);
00124 PX_UNUSED(sizeY);
00125 PX_UNUSED(sizeZ);
00126 PX_UNUSED(densitySizeMultiplier);
00127 PX_UNUSED(flameSizeMultiplier);
00128 return false;
00129 }
00130 };
00131
00132 PX_POP_PACK
00133
00134 }
00135 }
00136
00137 #endif // TURBULENCE_RENDER_CALLBACK_H