Initial commit
This commit is contained in:
82
Include/ZRendererUtil/ZParticleStorageAllocator.h
Normal file
82
Include/ZRendererUtil/ZParticleStorageAllocator.h
Normal file
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
ZParticleGenerator.h
|
||||
Author: James Russell <jcrussell@762studios.com>
|
||||
|
||||
Purpose: The particle generator is responsible for generating / allocating the particle data
|
||||
and storing it for the duration the particle emitter is alive.
|
||||
|
||||
Also responsible for cleanup.
|
||||
|
||||
Changelog
|
||||
2011/08/28 - creation (jcrussell)
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef _ZPARTICLESTORAGEALLOCATOR_H
|
||||
#define _ZPARTICLESTORAGEALLOCATOR_H
|
||||
|
||||
#include <ZUtil/ZUtil.hpp>
|
||||
|
||||
//Forward Declaration
|
||||
class ZParticleEffect;
|
||||
class ZParticleEmitter;
|
||||
|
||||
class ZParticleStorageAllocator
|
||||
{
|
||||
public:
|
||||
//Virtual Destructor
|
||||
virtual ~ZParticleStorageAllocator() { }
|
||||
|
||||
/*
|
||||
virtual public ZParticleGenerator::AllocateParticleStorage
|
||||
|
||||
Allocates particle storage for this particle emitter.
|
||||
|
||||
@param _emitter - the emitter we are creating storage for
|
||||
@param _maxParticles - the number of particles we allocate storage for
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void AllocateParticleStorage(ZParticleEmitter* _emitter, size_t _maxParticles) = 0;
|
||||
|
||||
/*
|
||||
virtual public ZParticleGenerator::DeallocateParticleStorage
|
||||
|
||||
Deallocates storage previously allocated with AllocateParticleStorage.
|
||||
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void DeallocateParticleStorage() = 0;
|
||||
|
||||
/*
|
||||
virtual public ZParticleStorageAllocator::GetParticleFormat
|
||||
|
||||
Returns a string 'type' indicating the type of particle storage used by this allocator. Checked
|
||||
against the other strategies to ensure compatibility.
|
||||
|
||||
@return (ZString)
|
||||
@context (all)
|
||||
*/
|
||||
virtual ZString GetParticleFormat() = 0;
|
||||
|
||||
/*
|
||||
virtual public ZParticleStorageAllocator::Update
|
||||
|
||||
Updates the storage allocator, indicating another frame has passed.
|
||||
|
||||
@param _effect - the particle effect
|
||||
@param _emitter - the particle emitter
|
||||
@param _dt - amount of time passed (in ms)
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void Update(ZParticleEffect *_effect,
|
||||
ZParticleEmitter *_emitter,
|
||||
size_t _dt
|
||||
) = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user