mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01: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::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,
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user