mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 10:29:19 +02:00
update renderer class to reflect changes in abstract interface
This commit is contained in:
@@ -80,21 +80,27 @@ class NvRenderer : public gfx_renderer, public MaResourceRegistry {
|
|||||||
virtual gfx::geometrybank_handle Create_Bank() override;
|
virtual gfx::geometrybank_handle Create_Bank() override;
|
||||||
virtual gfx::geometry_handle Insert(gfx::index_array &Indices,
|
virtual gfx::geometry_handle Insert(gfx::index_array &Indices,
|
||||||
gfx::vertex_array &Vertices,
|
gfx::vertex_array &Vertices,
|
||||||
|
gfx::userdata_array &Userdata,
|
||||||
gfx::geometrybank_handle const &Geometry,
|
gfx::geometrybank_handle const &Geometry,
|
||||||
int const Type) override;
|
int const Type) override;
|
||||||
virtual gfx::geometry_handle Insert(gfx::vertex_array &Vertices,
|
virtual gfx::geometry_handle Insert(gfx::vertex_array &Vertices,
|
||||||
|
gfx::userdata_array &Userdata,
|
||||||
gfx::geometrybank_handle const &Geometry,
|
gfx::geometrybank_handle const &Geometry,
|
||||||
int const Type) override;
|
int const Type) override;
|
||||||
virtual bool Replace(gfx::vertex_array &Vertices,
|
virtual bool Replace(gfx::vertex_array &Vertices,
|
||||||
|
gfx::userdata_array &Userdata,
|
||||||
gfx::geometry_handle const &Geometry, int const Type,
|
gfx::geometry_handle const &Geometry, int const Type,
|
||||||
std::size_t const Offset = 0) override;
|
std::size_t const Offset = 0) override;
|
||||||
virtual bool Append(gfx::vertex_array &Vertices,
|
virtual bool Append(gfx::vertex_array &Vertices,
|
||||||
|
gfx::userdata_array &Userdata,
|
||||||
gfx::geometry_handle const &Geometry,
|
gfx::geometry_handle const &Geometry,
|
||||||
int const Type) override;
|
int const Type) override;
|
||||||
virtual gfx::index_array const &Indices(
|
virtual gfx::index_array const &Indices(
|
||||||
gfx::geometry_handle const &Geometry) const override;
|
gfx::geometry_handle const &Geometry) const override;
|
||||||
virtual gfx::vertex_array const &Vertices(
|
virtual gfx::vertex_array const &Vertices(
|
||||||
gfx::geometry_handle const &Geometry) const override;
|
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,
|
virtual material_handle Fetch_Material(std::string const &Filename,
|
||||||
bool const Loadnow = true) override;
|
bool const Loadnow = true) override;
|
||||||
virtual void Bind_Material(material_handle const Material,
|
virtual void Bind_Material(material_handle const Material,
|
||||||
|
|||||||
@@ -736,7 +736,8 @@ gfx::geometrybank_handle NvRenderer::Create_Bank() {
|
|||||||
|
|
||||||
gfx::geometry_handle NvRenderer::Insert(
|
gfx::geometry_handle NvRenderer::Insert(
|
||||||
gfx::index_array &Indices, gfx::vertex_array &Vertices,
|
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 {};
|
if (!Type || Type >= TP_ROTATOR) return {};
|
||||||
|
|
||||||
auto &bank = m_geometry_banks[Geometry.bank - 1];
|
auto &bank = m_geometry_banks[Geometry.bank - 1];
|
||||||
@@ -765,8 +766,8 @@ gfx::geometry_handle NvRenderer::Insert(
|
|||||||
}
|
}
|
||||||
|
|
||||||
gfx::geometry_handle NvRenderer::Insert(
|
gfx::geometry_handle NvRenderer::Insert(
|
||||||
gfx::vertex_array &Vertices, gfx::geometrybank_handle const &Geometry,
|
gfx::vertex_array &Vertices, gfx::userdata_array &Userdata,
|
||||||
int const Type) {
|
gfx::geometrybank_handle const &Geometry, int const Type) {
|
||||||
if (!Type || Type >= TP_ROTATOR) return {};
|
if (!Type || Type >= TP_ROTATOR) return {};
|
||||||
|
|
||||||
auto &bank = m_geometry_banks[Geometry.bank - 1];
|
auto &bank = m_geometry_banks[Geometry.bank - 1];
|
||||||
@@ -834,6 +835,7 @@ gfx::geometry_handle NvRenderer::Insert(
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool NvRenderer::Replace(gfx::vertex_array &Vertices,
|
bool NvRenderer::Replace(gfx::vertex_array &Vertices,
|
||||||
|
gfx::userdata_array &Userdata,
|
||||||
gfx::geometry_handle const &Geometry, int const Type,
|
gfx::geometry_handle const &Geometry, int const Type,
|
||||||
std::size_t const Offset) {
|
std::size_t const Offset) {
|
||||||
if (!Type || Type >= TP_ROTATOR) return false;
|
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,
|
bool NvRenderer::Append(gfx::vertex_array &Vertices,
|
||||||
|
gfx::userdata_array &Userdata,
|
||||||
gfx::geometry_handle const &Geometry, int const Type) {
|
gfx::geometry_handle const &Geometry, int const Type) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -903,6 +906,12 @@ gfx::vertex_array const &NvRenderer::Vertices(
|
|||||||
.m_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,
|
material_handle NvRenderer::Fetch_Material(std::string const &Filename,
|
||||||
bool const Loadnow) {
|
bool const Loadnow) {
|
||||||
auto filename{Filename};
|
auto filename{Filename};
|
||||||
|
|||||||
@@ -316,6 +316,7 @@ void NvRenderer::GatherTracksForBatching() {
|
|||||||
track_batch.m_material = batch.m_material;
|
track_batch.m_material = batch.m_material;
|
||||||
track_batch.m_geometry_origin = batch.m_geometry_origin;
|
track_batch.m_geometry_origin = batch.m_geometry_origin;
|
||||||
std::vector<gfx::basic_vertex> vertices{};
|
std::vector<gfx::basic_vertex> vertices{};
|
||||||
|
std::vector<gfx::vertex_userdata> userdatas{};
|
||||||
std::vector<gfx::basic_index> indices{};
|
std::vector<gfx::basic_index> indices{};
|
||||||
for (int j = 0; j < batch.m_tracks.size(); ++j) {
|
for (int j = 0; j < batch.m_tracks.size(); ++j) {
|
||||||
const auto& track = batch.m_tracks[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_regions_need_update.resize(
|
||||||
track_batch.m_draw_commands.size());
|
track_batch.m_draw_commands.size());
|
||||||
auto bank = Create_Bank();
|
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);
|
m_track_quadtree.Build(builder);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user