The Nebula Device 3: Direct3D9::D3D9ParticleRenderer Class Reference

The Nebula Device 3

Direct3D9::D3D9ParticleRenderer Class Reference

#include <d3d9particlerenderer.h>

Inheritance diagram for Direct3D9::D3D9ParticleRenderer:

Base::ParticleRendererBase Core::RefCounted Particles::ParticleRenderer

Detailed Description

Particle system renderer for D3D9/Xbox360. The renderer makes use of hardware instancing to prevent writing redundant data to dynamic vertex buffers.

See here for details: http://zeuxcg.blogspot.com/2007/09/particle-rendering-revisited.html

(C) 2008 Radon Labs GmbH

Public Member Functions

 D3D9ParticleRenderer ()
 constructor
virtual ~D3D9ParticleRenderer ()
 destructor
virtual void Setup ()
 setup the particle renderer
virtual void Discard ()
 discard the particle renderer
virtual void BeginAttach ()
 begin attaching visible particle systems
virtual void EndAttach ()
 finish attaching visible particle systems
IndexT GetCurParticleVertexIndex () const
 get the current vertex index
void AddCurParticleVertexIndex (IndexT add)
 add particle vertex index
void * GetCurVertexPtr ()
 get the current vertex pointer
void SetCurVertexPtr (void *ptr)
 set the current vertex pointer
const Ptr< CoreGraphics::VertexBuffer > & GetParticleVertexBuffer () const
 get particle vertex buffer
const Ptr< CoreGraphics::VertexBuffer > & GetCornerVertexBuffer () const
 get the corner vertex buffer
const Ptr< CoreGraphics::IndexBuffer > & GetCornerIndexBuffer () const
 get the corner index buffer
CoreGraphics::PrimitiveGroupGetPrimitiveGroup ()
 get the primitive group
const Ptr< CoreGraphics::VertexLayout > & GetVertexLayout () const
 get the vertex layout
bool IsValid () const
 return true if particle renderer has been setup
void AddVisibleParticleSystem (const Ptr< Particles::ParticleSystemInstance > &particleSystemInstance)
 attach a visible particle system instance
bool IsInAttach () const
 is renderer in attach?
void RenderParticleSystem (const Ptr< Particles::ParticleSystemInstance > &particleSystemInstance)
 render particles of previously attached particle system
int GetRefCount () const
 get the current refcount
void AddRef ()
 increment refcount by one
void Release ()
 decrement refcount and destroy object if refcount is zero
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
const Util::StringGetClassName () const
 get the class name
Util::FourCC GetClassFourCC () const
 get the class FourCC code

Static Public Member Functions

static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

Member Function Documentation

void Direct3D9::D3D9ParticleRenderer::BeginAttach (  )  [virtual]

begin attaching visible particle systems

This method is called once per frame before visible particle systems are attached.

Reimplemented from Base::ParticleRendererBase.

void Direct3D9::D3D9ParticleRenderer::EndAttach (  )  [virtual]

finish attaching visible particle systems

This method is called once per frame after visible particle systems are attached.

Reimplemented from Base::ParticleRendererBase.

int Core::RefCounted::GetRefCount (  )  const [inline, inherited]

get the current refcount

Return the current refcount of the object.

void Core::RefCounted::AddRef (  )  [inline, inherited]

increment refcount by one

Increment the refcount of the object.

void Core::RefCounted::Release (  )  [inline, inherited]

decrement refcount and destroy object if refcount is zero

Decrement the refcount and destroy object if refcount is zero.

const Util::String & Core::RefCounted::GetClassName (  )  const [inline, inherited]

get the class name

Get the class name of the object.

Util::FourCC Core::RefCounted::GetClassFourCC (  )  const [inline, inherited]

get the class FourCC code

Get the class FourCC of the object.

void Core::RefCounted::DumpRefCountingLeaks (  )  [static, inherited]

dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

This method should be called as the very last before an application exits.