My Project
BlockPieceParticle.h
1 #pragma once
2 #include "BlockDynamicObject.h"
3 #include "ParticleElement.h"
4 
5 namespace ParaEngine
6 {
7  class CBlockPieceParticle;
8 
11  {
12  public:
14 
16  virtual ~CBlockPieceParticleElement();
17 
21  virtual int RenderParticle(SPRITEVERTEX** pVertexBuffer, SceneState* pSceneState);
22  virtual TextureEntity* GetTexture();
23  virtual bool IsPointTexture() { return true; }
24  virtual bool IsAlphaTested() { return false; }
25 
26  protected:
27  WeakPtr_type m_pParent;
28  };
29 
32  {
33  public:
35 
36  virtual ~CBlockPieceParticle();
37 
38  ATTRIBUTE_DEFINE_CLASS(CBlockPieceParticle);
39  ATTRIBUTE_SUPPORT_CREATE_FACTORY(CBlockPieceParticle);
40 
42  virtual int InstallFields(CAttributeClass* pClass, bool bOverride);
43 
44  ATTRIBUTE_METHOD1(CBlockPieceParticle, SetTextureFilename_s, const char*) { cls->SetTextureFilename(p1); return S_OK; }
45  public:
46  virtual HRESULT Draw(SceneState * sceneState);
47  virtual int PrepareRender(CBaseCamera* pCamera, SceneState* pSceneState);
48 
49  void SetTextureFilename(const std::string& texture);
50  public:
51  TextureEntity* GetTexture();
55  int RenderParticle(SPRITEVERTEX** pVertexBuffer, SceneState* pSceneState);
56  protected:
58  float CalculateOpacity();
60  void GenerateParticleUV();
61 
62  protected:
63 
64  ref_ptr<TextureEntity> m_texture;
65  ParticleRectUV m_texUVs;
66  ref_ptr<CBlockPieceParticleElement> m_particle_element;
67  };
68 }
69 
Which DXT Compression to Use? Obviously, there are some trade-offs between the different formats whic...
Definition: TextureEntity.h:29
an attribute class is a collection of attribute fields.
Definition: AttributeClass.h:10
It&#39;s used as parameter to Draw method of each scene object.
Definition: SceneState.h:284
different physics engine has different winding order.
Definition: EventBinding.h:32
Custom vertex type for the trees.
Definition: VertexFVF.h:146
virtual int RenderParticle(SPRITEVERTEX **pVertexBuffer, SceneState *pSceneState)
generate particle sprite vertex into the vertex buffer based on current camera setting (bill boarding...
Definition: BlockPieceParticle.cpp:33
Definition: BaseCamera.h:70
The ref_ptr class template stores a pointer to a dynamically allocated (AssetEntity|CRefCounted|BaseA...
Definition: PERefPtr.h:13
particle element
Definition: BlockPieceParticle.h:10
base class for a rectangle particle.
Definition: ParticleElement.h:21
a single particle object
Definition: BlockPieceParticle.h:31
Definition: BlockDynamicObject.h:10
for pre-calculated UV
Definition: ParticleElement.h:12