particle batching almost good

This commit is contained in:
d1str4ught
2025-08-26 03:18:09 +02:00
parent f78aa5bbc8
commit 5db6e9c3d9
13 changed files with 386 additions and 113 deletions

View File

@@ -1,8 +1,11 @@
#pragma once
#include "UserInterface/Locale_inc.h"
#include "Type.h"
#include "Eterlib/GrpBase.h"
#include "EterLib/Pool.h"
#include <array>
class CParticleProperty;
class CEmitterProperty;
@@ -38,11 +41,8 @@ class CParticleInstance
D3DXVECTOR2 m_v2Scale;
float m_fRotation;
#ifdef WORLD_EDITOR
D3DXCOLOR m_Color;
#else
DWORDCOLOR m_dcColor;
#endif
BYTE m_byTextureAnimationType;
float m_fLastFrameTime;
@@ -68,7 +68,11 @@ class CParticleInstance
void Transform(const D3DXMATRIX * c_matLocal=NULL);
void Transform(const D3DXMATRIX * c_matLocal, const float c_fZRotation);
TPTVertex * GetParticleMeshPointer();
#ifdef ENABLE_BATCHED_PARTICLE_RENDERING
const std::array<TPDTVertex, 6>& GetParticleMeshPointer();
#else
const std::array<TPTVertex, 4>& GetParticleMeshPointer();
#endif
void DeleteThis();
@@ -76,7 +80,12 @@ class CParticleInstance
protected:
void __Initialize();
TPTVertex m_ParticleMesh[4];
#ifdef ENABLE_BATCHED_PARTICLE_RENDERING
std::array<TPDTVertex, 6> m_ParticleMesh;
#else
std::array<TPTVertex, 4> m_ParticleMesh;
#endif
public:
static CDynamicPool<CParticleInstance> ms_kPool;