overloads, tutorial 04 init

This commit is contained in:
h4570
2022-08-21 19:44:47 +02:00
parent 409ee294eb
commit 4fa65fc535
25 changed files with 232 additions and 77 deletions
@@ -15,15 +15,15 @@
namespace Tyra {
DynamicMesh::DynamicMesh(const MeshBuilderData& data) : Mesh(data) {
if (data.materials[0]->frames.size() == 1) {
DynamicMesh::DynamicMesh(const MeshBuilderData* data) : Mesh(data) {
if (data->materials[0]->frames.size() == 1) {
TYRA_WARN(
"Frames count should be greater than 1 for DynamicMesh! Maybe you "
"should use StaticMesh?");
}
for (u32 i = 0; i < data.materials[0]->frames.size(); i++) {
frames.push_back(new MeshFrame(data, i));
for (u32 i = 0; i < data->materials[0]->frames.size(); i++) {
frames.push_back(new MeshFrame(*data, i));
}
animation.resetAll(frames);
+4 -4
View File
@@ -13,14 +13,14 @@
namespace Tyra {
Mesh::Mesh(const MeshBuilderData& data) {
Mesh::Mesh(const MeshBuilderData* data) {
init();
TYRA_ASSERT(data.materials.size() > 0,
TYRA_ASSERT(data->materials.size() > 0,
"Materials count must be greater than 0");
for (u32 i = 0; i < data.materials.size(); i++) {
auto* material = new MeshMaterial(data, i);
for (u32 i = 0; i < data->materials.size(); i++) {
auto* material = new MeshMaterial(*data, i);
if (material->frames.size() == 0) {
TYRA_WARN("Found empty material: ", material->name, ". Skipping...");
@@ -13,12 +13,12 @@
namespace Tyra {
StaticMesh::StaticMesh(const MeshBuilderData& data) : Mesh(data) {
if (data.materials[0]->frames.size() > 1)
StaticMesh::StaticMesh(const MeshBuilderData* data) : Mesh(data) {
if (data->materials[0]->frames.size() > 1)
TYRA_WARN("Static meshes should have only one frame, but ",
data.materials[0]->frames.size(), " frames were found");
data->materials[0]->frames.size(), " frames were found");
frame = new MeshFrame(data, 0);
frame = new MeshFrame(*data, 0);
}
StaticMesh::StaticMesh(const StaticMesh& mesh) : Mesh(mesh) {
@@ -106,7 +106,7 @@ void DynamicPipeline::render(const DynamicMesh* mesh,
u8 isPartInitialized = false;
auto* texture =
rendererCore->texture.repository.getBySpriteOrMesh(material->id);
rendererCore->texture.repository.getByMeshMaterialId(material->id);
TYRA_ASSERT(
texture, "Texture for material: ", material->name, "Id: ", material->id,
@@ -143,7 +143,7 @@ StaPipTextureBag* StaticPipeline::getTextureBag(
auto* result = new StaPipTextureBag();
result->texture =
rendererCore->texture.repository.getBySpriteOrMesh(material->id);
rendererCore->texture.repository.getByMeshMaterialId(material->id);
TYRA_ASSERT(
result->texture, "Texture for material: ", material->name,