mesh patch 1
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
|
||||
/*
|
||||
# ______ ____ ___
|
||||
# | \/ ____| |___|
|
||||
# | | | \ | |
|
||||
#-----------------------------------------------------------------------
|
||||
# Copyright 2022, tyra - https://github.com/h4570/tyra
|
||||
# Licenced under Apache License 2.0
|
||||
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "./mesh_builder_material_data.hpp"
|
||||
#include "./mesh_builder_frame_data.hpp"
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
class MeshBuilderData {
|
||||
public:
|
||||
MeshBuilderData();
|
||||
~MeshBuilderData();
|
||||
|
||||
MeshBuilderFrameData** frames;
|
||||
u32 framesCount;
|
||||
|
||||
MeshBuilderMaterialData** materials;
|
||||
u32 materialsCount;
|
||||
|
||||
bool textureCoordsEnabled, normalsEnabled, manyColorsEnabled;
|
||||
|
||||
void allocateFrames(const u32& count);
|
||||
void allocateMaterials(const u32& count);
|
||||
void allocate(const u32& framesCount, const u32& materialsCount);
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
@@ -1,35 +0,0 @@
|
||||
|
||||
/*
|
||||
# ______ ____ ___
|
||||
# | \/ ____| |___|
|
||||
# | | | \ | |
|
||||
#-----------------------------------------------------------------------
|
||||
# Copyright 2022, tyra - https://github.com/h4570/tyra
|
||||
# Licenced under Apache License 2.0
|
||||
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <tamtypes.h>
|
||||
#include "math/vec4.hpp"
|
||||
#include "renderer/models/color.hpp"
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
class MeshBuilderFrameData {
|
||||
public:
|
||||
MeshBuilderFrameData();
|
||||
~MeshBuilderFrameData();
|
||||
|
||||
Vec4 *vertices, *normals, *textureCoords;
|
||||
Color* colors;
|
||||
u32 verticesCount, textureCoordsCount, normalsCount, colorsCount;
|
||||
|
||||
void allocateTextureCoords(const u32& count);
|
||||
void allocateVertices(const u32& count);
|
||||
void allocateNormals(const u32& count);
|
||||
void allocateColors(const u32& count);
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
@@ -1,31 +0,0 @@
|
||||
|
||||
/*
|
||||
# ______ ____ ___
|
||||
# | \/ ____| |___|
|
||||
# | | | \ | |
|
||||
#-----------------------------------------------------------------------
|
||||
# Copyright 2022, tyra - https://github.com/h4570/tyra
|
||||
# Licenced under Apache License 2.0
|
||||
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <tamtypes.h>
|
||||
#include <string>
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
class MeshBuilderMaterialData {
|
||||
public:
|
||||
MeshBuilderMaterialData();
|
||||
~MeshBuilderMaterialData();
|
||||
|
||||
std::string name;
|
||||
u32 *vertexFaces, *textureCoordFaces, *normalFaces, *colorFaces;
|
||||
u32 count;
|
||||
|
||||
void allocateFaces(const u32& count);
|
||||
};
|
||||
|
||||
} // namespace Tyra
|
||||
@@ -11,7 +11,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "../../loader.hpp"
|
||||
#include "../builder/mesh_builder_data.hpp"
|
||||
#include "../builder2/mesh_builder2_data.hpp"
|
||||
#include <string>
|
||||
|
||||
namespace Tyra {
|
||||
@@ -22,11 +22,11 @@ class MD2Loader : public Loader {
|
||||
MD2Loader();
|
||||
~MD2Loader();
|
||||
|
||||
MeshBuilderData* load(const char* fullpath, const float& scale,
|
||||
const bool& invertT);
|
||||
MeshBuilder2Data* load(const char* fullpath, const float& scale,
|
||||
const bool& invertT);
|
||||
|
||||
inline MeshBuilderData* load(const std::string& fullpath, const float& scale,
|
||||
const bool& invertT) {
|
||||
inline MeshBuilder2Data* load(const std::string& fullpath, const float& scale,
|
||||
const bool& invertT) {
|
||||
return load(fullpath.c_str(), scale, invertT);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -34,10 +34,16 @@ class ObjLoader : public Loader {
|
||||
}
|
||||
|
||||
private:
|
||||
void setInitialData(MeshBuilder2Data* output, const tinyobj::attrib_t& attrib,
|
||||
const std::vector<tinyobj::shape_t>& shapes,
|
||||
const std::vector<tinyobj::material_t>& materials,
|
||||
const u16& framesCount);
|
||||
void addOutputMaterialsAndFrames(
|
||||
MeshBuilder2Data* output, const tinyobj::attrib_t& attrib,
|
||||
const std::vector<tinyobj::shape_t>& shapes,
|
||||
const std::vector<tinyobj::material_t>& materials,
|
||||
const u16& framesCount);
|
||||
|
||||
void scan(MeshBuilder2Data* output, const tinyobj::attrib_t& attrib,
|
||||
const std::vector<tinyobj::shape_t>& shapes,
|
||||
const std::vector<tinyobj::material_t>& materials,
|
||||
const u16& frameIndex);
|
||||
|
||||
void importFrame(MeshBuilder2Data* output, const tinyobj::attrib_t& attrib,
|
||||
const std::vector<tinyobj::shape_t>& shapes,
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "loaders/3d/builder/mesh_builder_data.hpp"
|
||||
#include "../mesh_frame.hpp"
|
||||
#include "../mesh_material_frame.hpp"
|
||||
#include "./dynamic_mesh_anim_state.hpp"
|
||||
@@ -20,7 +19,6 @@ namespace Tyra {
|
||||
|
||||
class DynamicMesh : public Mesh {
|
||||
public:
|
||||
explicit DynamicMesh(const MeshBuilderData& data);
|
||||
explicit DynamicMesh(const MeshBuilder2Data& data);
|
||||
explicit DynamicMesh(const DynamicMesh& mesh);
|
||||
~DynamicMesh();
|
||||
|
||||
@@ -19,7 +19,6 @@ namespace Tyra {
|
||||
|
||||
class Mesh {
|
||||
public:
|
||||
explicit Mesh(const MeshBuilderData& data);
|
||||
explicit Mesh(const MeshBuilder2Data& data);
|
||||
explicit Mesh(const Mesh& mesh);
|
||||
~Mesh();
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "./mesh_material.hpp"
|
||||
#include "loaders/3d/builder/mesh_builder_data.hpp"
|
||||
#include "loaders/3d/builder2/mesh_builder2_data.hpp"
|
||||
#include "renderer/3d/bbox/bbox.hpp"
|
||||
|
||||
@@ -19,7 +18,6 @@ namespace Tyra {
|
||||
|
||||
class MeshFrame {
|
||||
public:
|
||||
explicit MeshFrame(const MeshBuilderData& data, const u32& index);
|
||||
explicit MeshFrame(const MeshBuilder2Data& data, const u32& index);
|
||||
explicit MeshFrame(const MeshFrame& frame);
|
||||
~MeshFrame();
|
||||
|
||||
@@ -11,15 +11,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "debug/debug.hpp"
|
||||
#include "loaders/3d/builder/mesh_builder_data.hpp"
|
||||
#include "loaders/3d/builder2/mesh_builder2_data.hpp"
|
||||
#include "./mesh_material_frame.hpp"
|
||||
#include "loaders/3d/builder2/mesh_builder2_data.hpp"
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
class MeshMaterial {
|
||||
public:
|
||||
explicit MeshMaterial(const MeshBuilderData& data, const u32& materialIndex);
|
||||
explicit MeshMaterial(const MeshBuilder2Data& data, const u32& materialIndex);
|
||||
explicit MeshMaterial(const MeshMaterial& material);
|
||||
~MeshMaterial();
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "loaders/3d/builder/mesh_builder_data.hpp"
|
||||
#include "loaders/3d/builder2/mesh_builder2_data.hpp"
|
||||
#include "./renderer/3d/bbox/bbox.hpp"
|
||||
|
||||
@@ -18,8 +17,6 @@ namespace Tyra {
|
||||
|
||||
class MeshMaterialFrame {
|
||||
public:
|
||||
explicit MeshMaterialFrame(const MeshBuilderData& data, const u32& frameIndex,
|
||||
const u32& materialIndex);
|
||||
explicit MeshMaterialFrame(const MeshBuilder2Data& data,
|
||||
const u32& frameIndex, const u32& materialIndex);
|
||||
explicit MeshMaterialFrame(const MeshMaterialFrame& frame);
|
||||
@@ -41,15 +38,6 @@ class MeshMaterialFrame {
|
||||
std::string getPrint(const char* name = nullptr) const;
|
||||
|
||||
private:
|
||||
void allocateVertices(const MeshBuilderData& data, const u32& frameIndex,
|
||||
const u32& materialIndex);
|
||||
void allocateTextureCoords(const MeshBuilderData& data, const u32& frameIndex,
|
||||
const u32& materialIndex);
|
||||
void allocateNormals(const MeshBuilderData& data, const u32& frameIndex,
|
||||
const u32& materialIndex);
|
||||
void allocateColors(const MeshBuilderData& data, const u32& frameIndex,
|
||||
const u32& materialIndex);
|
||||
|
||||
BBox* bbox;
|
||||
|
||||
u8 _isMother;
|
||||
|
||||
@@ -18,7 +18,6 @@ namespace Tyra {
|
||||
|
||||
class StaticMesh : public Mesh {
|
||||
public:
|
||||
StaticMesh(const MeshBuilderData& data);
|
||||
StaticMesh(const MeshBuilder2Data& data);
|
||||
StaticMesh(const StaticMesh& mesh);
|
||||
~StaticMesh();
|
||||
|
||||
@@ -50,6 +50,7 @@ class DynPipRenderer {
|
||||
|
||||
prim_t* prim;
|
||||
lod_t* lod;
|
||||
u16 packetSize;
|
||||
|
||||
packet2_t* packets[2];
|
||||
packet2_t* programsPacket;
|
||||
|
||||
@@ -85,7 +85,7 @@ class StaPipQBufferRenderer {
|
||||
static const u16 buffersCount;
|
||||
|
||||
StaPipVU1Program* getProgramByName(const StaPipProgramName& name);
|
||||
void addBufferDataToPacket(StaPipQBuffer** buffers, const u32& count);
|
||||
void addBuffersDataToPacket(const u32& from, const u32& to);
|
||||
void sendPacket();
|
||||
StaPipVU1Program* getAsIsProgramByBag(const StaPipBag* bag);
|
||||
StaPipVU1Program* getCullProgramByType(const StaPipProgramType& programType);
|
||||
|
||||
Reference in New Issue
Block a user