add particles stats to debug panel

This commit is contained in:
MihailRis
2024-11-02 21:07:34 +03:00
parent 217176f74f
commit cee214754b
4 changed files with 24 additions and 4 deletions
+12 -2
View File
@@ -1,17 +1,22 @@
#include "ParticlesRenderer.hpp"
#include "assets/Assets.hpp"
#include "assets/assets_util.hpp"
#include "graphics/core/Shader.hpp"
#include "graphics/core/Texture.hpp"
#include "graphics/render/MainBatch.hpp"
#include "window/Camera.hpp"
size_t ParticlesRenderer::visibleParticles = 0;
size_t ParticlesRenderer::aliveEmitters = 0;
ParticlesRenderer::ParticlesRenderer(const Assets& assets)
: batch(std::make_unique<MainBatch>(1024)) {
auto region = util::get_texture_region(assets, "blocks:grass_side", "");
Emitter emitter(glm::vec3(0, 100, 0), Particle {
glm::vec3(), glm::vec3(), 5.0f, UVRegion(0,0,1,1)
}, assets.get<Texture>("gui/error"), 0.003f, -1);
glm::vec3(), glm::vec3(), 5.0f, region.region
},region.texture, 0.001f, -1);
emitters.push_back(std::move(emitter));
}
@@ -24,9 +29,14 @@ void ParticlesRenderer::render(
const auto& up = camera.up;
batch->begin();
aliveEmitters = emitters.size();
visibleParticles = 0;
for (auto& [texture, vec] : particles) {
batch->setTexture(texture);
visibleParticles += vec.size();
auto iter = vec.begin();
while (iter != vec.end()) {
auto& particle = *iter;