NvFlow.h File Reference

#include "NvFlowContext.h"
#include "NvFlowShader.h"

Go to the source code of this file.

Data Structures

struct  NvFlowColorMapData
 Required information for writing to a CPU mapped color map. More...
struct  NvFlowCrossSectionDesc
 Description required to create cross section object. More...
struct  NvFlowCrossSectionParams
 Parameters needed to render cross section. More...
struct  NvFlowDeviceDesc
 Description required for creating a Flow device. More...
struct  NvFlowDeviceQueueDesc
 Description required for creating a Flow device queue. More...
struct  NvFlowDeviceQueueStatus
 Flow device queue status to allow app to throttle maximum queued work. More...
struct  NvFlowGridDesc
 Description required to create a grid. More...
struct  NvFlowGridEmitCustomAllocParams
 Necessary parameters/resources for custom grid block allocation. More...
struct  NvFlowGridEmitCustomEmitLayerParams
 Necessary parameters/resources for custom emit operations. More...
struct  NvFlowGridEmitCustomEmitParams
 Handle for requesting per layer emitter data. More...
struct  NvFlowGridEmitParams
 Parameters for both emission and collision. More...
struct  NvFlowGridExportDebugVisView
 Debug vis data. More...
struct  NvFlowGridExportHandle
 Texture channel export handle. More...
struct  NvFlowGridExportImportLayeredMapping
 Description applying to all exported layers. More...
struct  NvFlowGridExportImportLayerMapping
 Description of a single exported layer. More...
struct  NvFlowGridExportLayeredView
 Description applying to all exported layers. More...
struct  NvFlowGridExportLayerView
 Description of a single exported layer. More...
struct  NvFlowGridExportSimpleShape
 Data to visualize simple shape. More...
struct  NvFlowGridImportDesc
 Description required to create GridImport. More...
struct  NvFlowGridImportHandle
 Texture channel handle. More...
struct  NvFlowGridImportLayeredView
 Description applying to all imported layers. More...
struct  NvFlowGridImportLayerView
 Description of a single imported layer. More...
struct  NvFlowGridImportParams
 Parameters for grabbing import view. More...
struct  NvFlowGridImportStateCPUParams
 Parameters for grabbing import view. More...
struct  NvFlowGridMaterialHandle
 Handle provided by grid to reference materials. More...
struct  NvFlowGridMaterialParams
 Grid material parameters. More...
struct  NvFlowGridMaterialPerComponent
 Grid material per component parameters. More...
struct  NvFlowGridParams
 Parameters controlling grid behavior. More...
struct  NvFlowGridProxyDesc
 Parameters need to create a grid proxy. More...
struct  NvFlowGridProxyFlushParams
 Parameters need to create a multi-GPU proxy. More...
struct  NvFlowGridResetDesc
 Description required to reset a NvFlowGrid. More...
struct  NvFlowParticleSurfaceData
 Particle data. More...
struct  NvFlowParticleSurfaceDesc
 Description for creation. More...
struct  NvFlowParticleSurfaceEmitParams
 Parameter for surface emission. More...
struct  NvFlowParticleSurfaceParams
 Parameters for update. More...
struct  NvFlowQueryTime
 CPU/GPU timing info. More...
struct  NvFlowRenderMaterialHandle
 A handle to a volume render material. More...
struct  NvFlowRenderMaterialParams
 Per material parameters for Flow grid rendering. More...
struct  NvFlowRenderMaterialPoolDesc
 Description necessary to create render material. More...
struct  NvFlowSDFGenDesc
 Description required for creating a signed distance field generator. More...
struct  NvFlowSDFGenMeshParams
 Simple mesh description. More...
union  NvFlowShapeDesc
 Shared type for shape descriptions. More...
struct  NvFlowShapeDescBox
 Description of a box. More...
struct  NvFlowShapeDescCapsule
 Description of a capsule. More...
struct  NvFlowShapeDescPlane
 Description of a plane. More...
struct  NvFlowShapeDescSDF
 Description of a signed distance field shape. More...
struct  NvFlowShapeDescSphere
 Desription of a sphere. More...
struct  NvFlowShapeSDFData
 Required information for writing to a CPU mapped signed distance field. More...
struct  NvFlowShapeSDFDesc
 Description required to create a signed distance field object. More...
struct  NvFlowSupport
 Description of feature support on the queried Flow context GPU. More...
struct  NvFlowVolumeLightingParams
 Parameters for Flow grid lighting. More...
struct  NvFlowVolumeRenderDesc
 Description needed to a create a volume render object. More...
struct  NvFlowVolumeRenderLMSParams
 Parameters for VRWorks lens matched shading rendering. More...
struct  NvFlowVolumeRenderMultiResParams
 Parameters for VRWorks multires rendering. More...
struct  NvFlowVolumeRenderParams
 Parameters for Flow grid rendering. More...
struct  NvFlowVolumeRenderViewport
 Rendering viewport. More...
struct  NvFlowVolumeShadowDebugRenderParams
 Parameters required to visualize shadow block allocation. More...
struct  NvFlowVolumeShadowDesc
 Description required to create volume shadow object. More...
struct  NvFlowVolumeShadowParams
 Parameters required to update volume shadows. More...
struct  NvFlowVolumeShadowStats
 Stats on currently active volume shadow. More...

Typedefs

typedef void(* NvFlowGridEmitCustomAllocFunc )(void *userdata, const NvFlowGridEmitCustomAllocParams *params)
typedef void(* NvFlowGridEmitCustomEmitFunc )(void *userdata, NvFlowUint *dataFrontIdx, const NvFlowGridEmitCustomEmitParams *params)

Enumerations

enum  NvFlowDeviceMode { eNvFlowDeviceModeProxy = 0, eNvFlowDeviceModeUnique = 1 }
 Device Type. More...
enum  NvFlowDeviceQueueType { eNvFlowDeviceQueueTypeGraphics = 0, eNvFlowDeviceQueueTypeCompute = 1, eNvFlowDeviceQueueTypeCopy = 2 }
 Types of queues. More...
enum  NvFlowGridComponent {
  eNvFlowGridComponentVelocity = 0, eNvFlowGridComponentSmoke = 1, eNvFlowGridComponentTemperature = 2, eNvFlowGridComponentFuel = 3,
  eNvFlowGridNumComponents = 4
}
 Grid component IDs. More...
enum  NvFlowGridDebugVisFlags {
  eNvFlowGridDebugVisDisabled = 0x00, eNvFlowGridDebugVisBlocks = 0x01, eNvFlowGridDebugVisEmitBounds = 0x02, eNvFlowGridDebugVisShapesSimple = 0x04,
  eNvFlowGridDebugVisCount
}
 Flags to control grid debug visualization. More...
enum  NvFlowGridEmitMode {
  eNvFlowGridEmitModeDefault = 0, eNvFlowGridEmitModeDisableVelocity = 0x01, eNvFlowGridEmitModeDisableDensity = 0x02, eNvFlowGridEmitModeDisableAlloc = 0x04,
  eNvFlowGridEmitModeAllocShape = 0x08, eNvFlowGridEmitModeAllocShapeOnly = 0x0F
}
 Emitter modes. More...
enum  NvFlowGridImportMode { eNvFlowGridImportModePoint = 0, eNvFlowGridImportModeLinear = 1 }
 Grid import modes. More...
enum  NvFlowGridProxyType { eNvFlowGridProxyTypePassThrough = 0, eNvFlowGridProxyTypeMultiGPU = 1, eNvFlowGridProxyTypeInterQueue = 2 }
 Proxy types. More...
enum  NvFlowGridTextureChannel { eNvFlowGridTextureChannelVelocity = 0, eNvFlowGridTextureChannelDensity = 1, eNvFlowGridTextureChannelDensityCoarse = 2, eNvFlowGridTextureChannelCount }
 Grid texture channel, four components per channel. More...
enum  NvFlowMultiRes { eNvFlowMultiRes1x1x1 = 0, eNvFlowMultiRes2x2x2 = 1 }
 Enumeration used to describe density texture channel resolution relative to velocity resolution. More...
enum  NvFlowMultiResRayMarch {
  eNvFlowMultiResRayMarchDisabled = 0, eNvFlowMultiResRayMarch2x2 = 1, eNvFlowMultiResRayMarch4x4 = 2, eNvFlowMultiResRayMarch8x8 = 3,
  eNvFlowMultiResRayMarch16x16 = 4
}
 Multiple resolution options for offscreen ray march. More...
enum  NvFlowShapeType {
  eNvFlowShapeTypeSDF = 0, eNvFlowShapeTypeSphere = 1, eNvFlowShapeTypeBox = 2, eNvFlowShapeTypeCapsule = 3,
  eNvFlowShapeTypePlane = 4
}
 Types of shapes for emit/collide behavior. More...
enum  NvFlowVolumeRenderDownsample { eNvFlowVolumeRenderDownsampleNone = 0, eNvFlowVolumeRenderDownsample2x2 = 1 }
 Downsample options for offscreen ray march. More...
enum  NvFlowVolumeRenderMode {
  eNvFlowVolumeRenderMode_colormap = 0, eNvFlowVolumeRenderMode_raw = 1, eNvFlowVolumeRenderMode_rainbow = 2, eNvFlowVolumeRenderMode_debug = 3,
  eNvFlowVolumeRenderModeCount
}
 Render modes. More...

Functions

NvFlowCrossSection * NvFlowCreateCrossSection (NvFlowContext *context, const NvFlowCrossSectionDesc *desc)
NvFlowDevice * NvFlowCreateDevice (NvFlowContext *renderContext, const NvFlowDeviceDesc *desc)
NvFlowDeviceQueue * NvFlowCreateDeviceQueue (NvFlowDevice *device, const NvFlowDeviceQueueDesc *desc)
NvFlowGrid * NvFlowCreateGrid (NvFlowContext *context, const NvFlowGridDesc *desc)
NvFlowGridImport * NvFlowCreateGridImport (NvFlowContext *context, const NvFlowGridImportDesc *desc)
NvFlowGridImportStateCPU * NvFlowCreateGridImportStateCPU (NvFlowGridImport *gridImport)
NvFlowGridProxy * NvFlowCreateGridProxy (const NvFlowGridProxyDesc *desc)
NvFlowParticleSurface * NvFlowCreateParticleSurface (NvFlowContext *context, const NvFlowParticleSurfaceDesc *desc)
NvFlowRenderMaterialHandle NvFlowCreateRenderMaterial (NvFlowContext *context, NvFlowRenderMaterialPool *pool, const NvFlowRenderMaterialParams *params)
NvFlowRenderMaterialPool * NvFlowCreateRenderMaterialPool (NvFlowContext *context, const NvFlowRenderMaterialPoolDesc *desc)
NvFlowSDFGen * NvFlowCreateSDFGen (NvFlowContext *context, const NvFlowSDFGenDesc *desc)
NvFlowShapeSDF * NvFlowCreateShapeSDF (NvFlowContext *context, const NvFlowShapeSDFDesc *desc)
NvFlowShapeSDF * NvFlowCreateShapeSDFFromTexture3D (NvFlowContext *context, NvFlowTexture3D *texture)
NvFlowVolumeRender * NvFlowCreateVolumeRender (NvFlowContext *context, const NvFlowVolumeRenderDesc *desc)
NvFlowVolumeShadow * NvFlowCreateVolumeShadow (NvFlowContext *context, const NvFlowVolumeShadowDesc *desc)
void NvFlowCrossSectionParamsDefaults (NvFlowCrossSectionParams *params)
void NvFlowCrossSectionRender (NvFlowCrossSection *crossSection, NvFlowContext *context, const NvFlowCrossSectionParams *params)
bool NvFlowDedicatedDeviceAvailable (NvFlowContext *renderContext)
bool NvFlowDedicatedDeviceQueueAvailable (NvFlowContext *renderContext)
void NvFlowDeviceDescDefaults (NvFlowDeviceDesc *desc)
void NvFlowDeviceQueueConditionalFlush (NvFlowDeviceQueue *deviceQueue, NvFlowContext *context)
NvFlowContext * NvFlowDeviceQueueCreateContext (NvFlowDeviceQueue *deviceQueue)
void NvFlowDeviceQueueFlush (NvFlowDeviceQueue *deviceQueue, NvFlowContext *context)
void NvFlowDeviceQueueUpdateContext (NvFlowDeviceQueue *deviceQueue, NvFlowContext *context, NvFlowDeviceQueueStatus *status)
void NvFlowDeviceQueueWaitOnFence (NvFlowDeviceQueue *deviceQueue, NvFlowContext *context, NvFlowUint64 fenceValue)
NvFlowRenderMaterialHandle NvFlowGetDefaultRenderMaterial (NvFlowRenderMaterialPool *pool)
NvFlowGridMaterialHandle NvFlowGridCreateMaterial (NvFlowGrid *grid, const NvFlowGridMaterialParams *params)
void NvFlowGridDescDefaults (NvFlowGridDesc *desc)
void NvFlowGridEmit (NvFlowGrid *grid, const NvFlowShapeDesc *shapes, NvFlowUint numShapes, const NvFlowGridEmitParams *params, NvFlowUint numParams)
void NvFlowGridEmitCustomGetLayerParams (const NvFlowGridEmitCustomEmitParams *emitParams, NvFlowUint layerIdx, NvFlowGridEmitCustomEmitLayerParams *emitLayerParams)
void NvFlowGridEmitCustomRegisterAllocFunc (NvFlowGrid *grid, NvFlowGridEmitCustomAllocFunc func, void *userdata)
void NvFlowGridEmitCustomRegisterEmitFunc (NvFlowGrid *grid, NvFlowGridTextureChannel channel, NvFlowGridEmitCustomEmitFunc func, void *userdata)
void NvFlowGridEmitParamsDefaults (NvFlowGridEmitParams *params)
void NvFlowGridExportGetDebugVisView (NvFlowGridExport *gridExport, NvFlowGridExportDebugVisView *view)
NvFlowGridExportHandle NvFlowGridExportGetHandle (NvFlowGridExport *gridExport, NvFlowContext *context, NvFlowGridTextureChannel channel)
void NvFlowGridExportGetLayeredView (NvFlowGridExportHandle handle, NvFlowGridExportLayeredView *layeredView)
void NvFlowGridExportGetLayerView (NvFlowGridExportHandle handle, NvFlowUint layerIdx, NvFlowGridExportLayerView *layerView)
NvFlowGridMaterialHandle NvFlowGridGetDefaultMaterial (NvFlowGrid *grid)
NvFlowGridExport * NvFlowGridGetGridExport (NvFlowContext *context, NvFlowGrid *grid)
void NvFlowGridGPUMemUsage (NvFlowGrid *grid, NvFlowUint64 *numBytes)
NvFlowGridExport * NvFlowGridImportGetGridExport (NvFlowGridImport *gridImport, NvFlowContext *context)
NvFlowGridImportHandle NvFlowGridImportGetHandle (NvFlowGridImport *gridImport, NvFlowContext *context, const NvFlowGridImportParams *params)
void NvFlowGridImportGetLayeredView (NvFlowGridImportHandle handle, NvFlowGridImportLayeredView *layeredView)
void NvFlowGridImportGetLayerView (NvFlowGridImportHandle handle, NvFlowUint layerIdx, NvFlowGridImportLayerView *layerView)
void NvFlowGridImportReleaseChannel (NvFlowGridImport *gridImport, NvFlowContext *context, NvFlowGridTextureChannel channel)
NvFlowGridImportHandle NvFlowGridImportStateCPUGetHandle (NvFlowGridImport *gridImport, NvFlowContext *context, const NvFlowGridImportStateCPUParams *params)
void NvFlowGridImportUpdateStateCPU (NvFlowGridImportStateCPU *stateCPU, NvFlowContext *context, NvFlowGridExport *gridExport)
void NvFlowGridMaterialParamsDefaults (NvFlowGridMaterialParams *params)
void NvFlowGridParamsDefaults (NvFlowGridParams *params)
void NvFlowGridProxyFlush (NvFlowGridProxy *proxy, const NvFlowGridProxyFlushParams *params)
NvFlowGridExport * NvFlowGridProxyGetGridExport (NvFlowGridProxy *proxy, NvFlowContext *renderContext)
void NvFlowGridProxyPush (NvFlowGridProxy *proxy, NvFlowGridExport *gridExport, const NvFlowGridProxyFlushParams *params)
NvFlowResult NvFlowGridQuerySupport (NvFlowGrid *grid, NvFlowContext *context, NvFlowSupport *support)
NvFlowResult NvFlowGridQueryTime (NvFlowGrid *grid, NvFlowQueryTime *gpuTime, NvFlowQueryTime *cpuTime)
void NvFlowGridReleaseMaterial (NvFlowGrid *grid, NvFlowGridMaterialHandle material)
void NvFlowGridReset (NvFlowGrid *grid, const NvFlowGridResetDesc *desc)
void NvFlowGridResetDescDefaults (NvFlowGridResetDesc *desc)
void NvFlowGridSetMaterialParams (NvFlowGrid *grid, NvFlowGridMaterialHandle material, const NvFlowGridMaterialParams *params)
void NvFlowGridSetParams (NvFlowGrid *grid, const NvFlowGridParams *params)
void NvFlowGridSetTargetLocation (NvFlowGrid *grid, NvFlowFloat3 targetLocation)
void NvFlowGridUpdate (NvFlowGrid *grid, NvFlowContext *context, float dt)
void NvFlowGridUpdateEmitSDFs (NvFlowGrid *grid, NvFlowShapeSDF **sdfs, NvFlowUint numSdfs)
void NvFlowParticleSurfaceAllocFunc (NvFlowParticleSurface *surface, NvFlowContext *context, const NvFlowGridEmitCustomAllocParams *params)
NvFlowGridExport * NvFlowParticleSurfaceDebugGridExport (NvFlowParticleSurface *surface, NvFlowContext *context)
void NvFlowParticleSurfaceEmitDensityFunc (NvFlowParticleSurface *surface, NvFlowContext *context, NvFlowUint *dataFrontIdx, const NvFlowGridEmitCustomEmitParams *params, const NvFlowParticleSurfaceEmitParams *emitParams)
void NvFlowParticleSurfaceEmitVelocityFunc (NvFlowParticleSurface *surface, NvFlowContext *context, NvFlowUint *dataFrontIdx, const NvFlowGridEmitCustomEmitParams *params, const NvFlowParticleSurfaceEmitParams *emitParams)
void NvFlowParticleSurfaceUpdateParticles (NvFlowParticleSurface *surface, NvFlowContext *context, const NvFlowParticleSurfaceData *data)
void NvFlowParticleSurfaceUpdateSurface (NvFlowParticleSurface *surface, NvFlowContext *context, const NvFlowParticleSurfaceParams *params)
void NvFlowReleaseCrossSection (NvFlowCrossSection *crossSection)
void NvFlowReleaseDevice (NvFlowDevice *device)
void NvFlowReleaseDeviceQueue (NvFlowDeviceQueue *deviceQueue)
void NvFlowReleaseGrid (NvFlowGrid *grid)
void NvFlowReleaseGridImport (NvFlowGridImport *gridImport)
void NvFlowReleaseGridImportStateCPU (NvFlowGridImportStateCPU *stateCPU)
void NvFlowReleaseGridProxy (NvFlowGridProxy *proxy)
void NvFlowReleaseParticleSurface (NvFlowParticleSurface *surface)
void NvFlowReleaseRenderMaterial (NvFlowRenderMaterialHandle handle)
void NvFlowReleaseRenderMaterialPool (NvFlowRenderMaterialPool *pool)
void NvFlowReleaseSDFGen (NvFlowSDFGen *sdfGen)
void NvFlowReleaseShapeSDF (NvFlowShapeSDF *shape)
void NvFlowReleaseVolumeRender (NvFlowVolumeRender *volumeRender)
void NvFlowReleaseVolumeShadow (NvFlowVolumeShadow *volumeShadow)
NvFlowColorMapData NvFlowRenderMaterialColorMap (NvFlowContext *context, NvFlowRenderMaterialHandle handle)
void NvFlowRenderMaterialColorUnmap (NvFlowContext *context, NvFlowRenderMaterialHandle handle)
void NvFlowRenderMaterialParamsDefaults (NvFlowRenderMaterialParams *params)
void NvFlowRenderMaterialUpdate (NvFlowRenderMaterialHandle handle, const NvFlowRenderMaterialParams *params)
void NvFlowSDFGenReset (NvFlowSDFGen *sdfGen, NvFlowContext *context)
NvFlowTexture3D * NvFlowSDFGenShape (NvFlowSDFGen *sdfGen, NvFlowContext *context)
void NvFlowSDFGenUpdate (NvFlowSDFGen *sdfGen, NvFlowContext *context)
void NvFlowSDFGenVoxelize (NvFlowSDFGen *sdfGen, NvFlowContext *context, const NvFlowSDFGenMeshParams *params)
void NvFlowShapeSDFDescDefaults (NvFlowShapeSDFDesc *desc)
NvFlowShapeSDFData NvFlowShapeSDFMap (NvFlowShapeSDF *shape, NvFlowContext *context)
void NvFlowShapeSDFUnmap (NvFlowShapeSDF *shape, NvFlowContext *context)
void NvFlowVolumeRenderGridExport (NvFlowVolumeRender *volumeRender, NvFlowContext *context, NvFlowGridExport *gridExport, const NvFlowVolumeRenderParams *params)
NvFlowGridExport * NvFlowVolumeRenderLightGridExport (NvFlowVolumeRender *volumeRender, NvFlowContext *context, NvFlowGridExport *gridExport, const NvFlowVolumeLightingParams *params)
void NvFlowVolumeRenderParamsDefaults (NvFlowVolumeRenderParams *params)
void NvFlowVolumeRenderTexture3D (NvFlowVolumeRender *volumeRender, NvFlowContext *context, NvFlowTexture3D *density, const NvFlowVolumeRenderParams *params)
void NvFlowVolumeShadowDebugRender (NvFlowVolumeShadow *volumeShadow, NvFlowContext *context, const NvFlowVolumeShadowDebugRenderParams *params)
NvFlowGridExport * NvFlowVolumeShadowGetGridExport (NvFlowVolumeShadow *volumeShadow, NvFlowContext *context)
void NvFlowVolumeShadowGetStats (NvFlowVolumeShadow *volumeShadow, NvFlowVolumeShadowStats *stats)
void NvFlowVolumeShadowUpdate (NvFlowVolumeShadow *volumeShadow, NvFlowContext *context, NvFlowGridExport *gridExport, const NvFlowVolumeShadowParams *params)