add gfx.text3d.spawn(...)

This commit is contained in:
MihailRis
2024-11-14 10:32:50 +03:00
parent c4170c07c5
commit eb5715eba9
7 changed files with 57 additions and 15 deletions
+8 -13
View File
@@ -78,25 +78,20 @@ void TextsRenderer::renderTexts(
bool hudVisible,
bool frontLayer
) {
std::vector<TextNote> notes;
NotePreset preset;
preset.displayMode = NoteDisplayMode::STATIC_BILLBOARD;
preset.color = glm::vec4(0, 0, 0, 1);
preset.scale = 0.005f;
notes.emplace_back(
L"Segmentation fault",
std::move(preset),
glm::vec3(0.5f, 99.5f, 0.0015f)
);
auto& shader = assets.require<Shader>("ui3d");
shader.use();
shader.uniformMatrix("u_projview", camera.getProjView());
shader.uniformMatrix("u_apply", glm::mat4(1.0f));
batch.begin();
for (const auto& note : notes) {
renderText(note, context, camera, settings, hudVisible);
for (const auto& [id, note] : notes) {
renderText(*note, context, camera, settings, hudVisible);
}
batch.flush();
}
u64id_t TextsRenderer::add(std::unique_ptr<TextNote> note) {
u64id_t uid = nextNote++;
notes[uid] = std::move(note);
return uid;
}
+10
View File
@@ -1,5 +1,10 @@
#pragma once
#include <unordered_map>
#include <memory>
#include "typedefs.hpp"
class DrawContext;
class Camera;
class Assets;
@@ -13,6 +18,9 @@ class TextsRenderer {
const Assets& assets;
const Frustum& frustum;
std::unordered_map<u64id_t, std::unique_ptr<TextNote>> notes;
u64id_t nextNote = 1;
void renderText(
const TextNote& note,
const DrawContext& context,
@@ -30,4 +38,6 @@ public:
bool hudVisible,
bool frontLayer
);
u64id_t add(std::unique_ptr<TextNote> note);
};
+1 -1
View File
@@ -39,7 +39,6 @@ class WorldRenderer {
std::unique_ptr<LineBatch> lineBatch;
std::unique_ptr<Batch3D> batch3d;
std::unique_ptr<ChunksRenderer> chunks;
std::unique_ptr<TextsRenderer> texts;
std::unique_ptr<GuidesRenderer> guides;
std::unique_ptr<Skybox> skybox;
std::unique_ptr<ModelBatch> modelBatch;
@@ -67,6 +66,7 @@ class WorldRenderer {
float fogFactor
);
public:
std::unique_ptr<TextsRenderer> texts;
std::unique_ptr<ParticlesRenderer> particles;
static bool showChunkBorders;