update renderer class to reflect changes in abstract interface

This commit is contained in:
WLs50
2025-04-05 14:32:55 +02:00
parent 0280b40ca5
commit 13875f17fe
3 changed files with 21 additions and 4 deletions

View File

@@ -80,21 +80,27 @@ class NvRenderer : public gfx_renderer, public MaResourceRegistry {
virtual gfx::geometrybank_handle Create_Bank() override;
virtual gfx::geometry_handle Insert(gfx::index_array &Indices,
gfx::vertex_array &Vertices,
gfx::userdata_array &Userdata,
gfx::geometrybank_handle const &Geometry,
int const Type) override;
virtual gfx::geometry_handle Insert(gfx::vertex_array &Vertices,
gfx::userdata_array &Userdata,
gfx::geometrybank_handle const &Geometry,
int const Type) override;
virtual bool Replace(gfx::vertex_array &Vertices,
gfx::userdata_array &Userdata,
gfx::geometry_handle const &Geometry, int const Type,
std::size_t const Offset = 0) override;
virtual bool Append(gfx::vertex_array &Vertices,
gfx::userdata_array &Userdata,
gfx::geometry_handle const &Geometry,
int const Type) override;
virtual gfx::index_array const &Indices(
gfx::geometry_handle const &Geometry) const override;
virtual gfx::vertex_array const &Vertices(
gfx::geometry_handle const &Geometry) const override;
const gfx::userdata_array &UserData(
const gfx::geometry_handle &Geometry) const override;
virtual material_handle Fetch_Material(std::string const &Filename,
bool const Loadnow = true) override;
virtual void Bind_Material(material_handle const Material,

View File

@@ -736,7 +736,8 @@ gfx::geometrybank_handle NvRenderer::Create_Bank() {
gfx::geometry_handle NvRenderer::Insert(
gfx::index_array &Indices, gfx::vertex_array &Vertices,
gfx::geometrybank_handle const &Geometry, int const Type) {
gfx::userdata_array &Userdata, gfx::geometrybank_handle const &Geometry,
int const Type) {
if (!Type || Type >= TP_ROTATOR) return {};
auto &bank = m_geometry_banks[Geometry.bank - 1];
@@ -765,8 +766,8 @@ gfx::geometry_handle NvRenderer::Insert(
}
gfx::geometry_handle NvRenderer::Insert(
gfx::vertex_array &Vertices, gfx::geometrybank_handle const &Geometry,
int const Type) {
gfx::vertex_array &Vertices, gfx::userdata_array &Userdata,
gfx::geometrybank_handle const &Geometry, int const Type) {
if (!Type || Type >= TP_ROTATOR) return {};
auto &bank = m_geometry_banks[Geometry.bank - 1];
@@ -834,6 +835,7 @@ gfx::geometry_handle NvRenderer::Insert(
}
bool NvRenderer::Replace(gfx::vertex_array &Vertices,
gfx::userdata_array &Userdata,
gfx::geometry_handle const &Geometry, int const Type,
std::size_t const Offset) {
if (!Type || Type >= TP_ROTATOR) return false;
@@ -879,6 +881,7 @@ bool NvRenderer::Replace(gfx::vertex_array &Vertices,
}
bool NvRenderer::Append(gfx::vertex_array &Vertices,
gfx::userdata_array &Userdata,
gfx::geometry_handle const &Geometry, int const Type) {
return false;
}
@@ -903,6 +906,12 @@ gfx::vertex_array const &NvRenderer::Vertices(
.m_vertices;
}
const gfx::userdata_array &NvRenderer::UserData(
const gfx::geometry_handle &Geometry) const {
const static gfx::userdata_array array{};
return array;
}
material_handle NvRenderer::Fetch_Material(std::string const &Filename,
bool const Loadnow) {
auto filename{Filename};

View File

@@ -316,6 +316,7 @@ void NvRenderer::GatherTracksForBatching() {
track_batch.m_material = batch.m_material;
track_batch.m_geometry_origin = batch.m_geometry_origin;
std::vector<gfx::basic_vertex> vertices{};
std::vector<gfx::vertex_userdata> userdatas{};
std::vector<gfx::basic_index> indices{};
for (int j = 0; j < batch.m_tracks.size(); ++j) {
const auto& track = batch.m_tracks[j];
@@ -344,7 +345,8 @@ void NvRenderer::GatherTracksForBatching() {
track_batch.m_regions_need_update.resize(
track_batch.m_draw_commands.size());
auto bank = Create_Bank();
track_batch.m_geometry = Insert(indices, vertices, bank, GL_TRIANGLES);
track_batch.m_geometry =
Insert(indices, vertices, userdatas, bank, GL_TRIANGLES);
}
m_track_quadtree.Build(builder);
}