overloads, tutorial 04 init
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
#include <string>
|
||||
#include "renderer/models/color.hpp"
|
||||
#include "loaders/3d/obj_loader/tiny_obj_loader.hpp"
|
||||
#include <memory.h>
|
||||
|
||||
namespace Tyra {
|
||||
|
||||
@@ -40,11 +41,12 @@ class ObjLoader : public Loader {
|
||||
ObjLoader();
|
||||
~ObjLoader();
|
||||
|
||||
MeshBuilderData* load(const char* fullpath);
|
||||
MeshBuilderData* load(const char* fullpath, const ObjLoaderOptions& options);
|
||||
MeshBuilderData* load(const std::string& fullpath);
|
||||
MeshBuilderData* load(const std::string& fullpath,
|
||||
const ObjLoaderOptions& options);
|
||||
std::unique_ptr<MeshBuilderData> load(const char* fullpath);
|
||||
std::unique_ptr<MeshBuilderData> load(const char* fullpath,
|
||||
const ObjLoaderOptions& options);
|
||||
std::unique_ptr<MeshBuilderData> load(const std::string& fullpath);
|
||||
std::unique_ptr<MeshBuilderData> load(const std::string& fullpath,
|
||||
const ObjLoaderOptions& options);
|
||||
|
||||
private:
|
||||
void addOutputMaterialsAndFrames(
|
||||
|
||||
@@ -18,8 +18,8 @@ namespace Tyra {
|
||||
|
||||
class DynamicMesh : public Mesh {
|
||||
public:
|
||||
explicit DynamicMesh(const MeshBuilderData& data);
|
||||
explicit DynamicMesh(const DynamicMesh& mesh);
|
||||
explicit DynamicMesh(const MeshBuilderData* data);
|
||||
DynamicMesh(const DynamicMesh& mesh);
|
||||
~DynamicMesh();
|
||||
|
||||
std::vector<MeshFrame*> frames;
|
||||
|
||||
@@ -19,8 +19,8 @@ namespace Tyra {
|
||||
|
||||
class Mesh {
|
||||
public:
|
||||
explicit Mesh(const MeshBuilderData& data);
|
||||
explicit Mesh(const Mesh& mesh);
|
||||
explicit Mesh(const MeshBuilderData* data);
|
||||
Mesh(const Mesh& mesh);
|
||||
~Mesh();
|
||||
|
||||
u8 isMother;
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Tyra {
|
||||
|
||||
class StaticMesh : public Mesh {
|
||||
public:
|
||||
StaticMesh(const MeshBuilderData& data);
|
||||
explicit StaticMesh(const MeshBuilderData* data);
|
||||
StaticMesh(const StaticMesh& mesh);
|
||||
~StaticMesh();
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <vector>
|
||||
#include "./models/texture.hpp"
|
||||
#include "renderer/3d/mesh/mesh.hpp"
|
||||
#include "renderer/core/2d/sprite/sprite.hpp"
|
||||
#include "loaders/texture/base/texture_loader_selector.hpp"
|
||||
#include <string>
|
||||
|
||||
@@ -32,11 +33,14 @@ class TextureRepository {
|
||||
/**
|
||||
* Returns single texture.
|
||||
* nullptr if not found.
|
||||
* @param t_id
|
||||
* For 3D: MeshMaterial id.
|
||||
* For 2D: Sprite id.
|
||||
*/
|
||||
Texture* getBySpriteOrMesh(const u32& t_id) const;
|
||||
Texture* getBySpriteId(const u32& t_id) const;
|
||||
|
||||
/**
|
||||
* Returns single texture.
|
||||
* nullptr if not found.
|
||||
*/
|
||||
Texture* getByMeshMaterialId(const u32& t_id) const;
|
||||
|
||||
/**
|
||||
* Returns single texture.
|
||||
@@ -50,14 +54,6 @@ class TextureRepository {
|
||||
*/
|
||||
const s32 getIndexOf(const u32& t_texId) const;
|
||||
|
||||
// ----
|
||||
// Setters
|
||||
// ----
|
||||
|
||||
// ----
|
||||
// Other
|
||||
// ----
|
||||
|
||||
/**
|
||||
* Add unlinked texture.
|
||||
* @param fullpath Full path to texture file. Example: "host:texture.png"
|
||||
@@ -81,37 +77,38 @@ class TextureRepository {
|
||||
/**
|
||||
* Add linked textures in given path for mesh material names.
|
||||
*/
|
||||
void addByMesh(Mesh* mesh, const char* directory, const char* extension);
|
||||
void addByMesh(const Mesh* mesh, const char* directory,
|
||||
const char* extension);
|
||||
|
||||
/**
|
||||
* Add linked textures in given path for mesh material names.
|
||||
*/
|
||||
inline void addByMesh(Mesh* mesh, const std::string& directory,
|
||||
inline void addByMesh(const Mesh* mesh, const std::string& directory,
|
||||
const char* extension) {
|
||||
addByMesh(mesh, directory.c_str(), extension);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove texture from repository.
|
||||
* Texture is NOT destructed.
|
||||
* Texture IS destructed.
|
||||
*/
|
||||
void removeByIndex(const u32& t_index);
|
||||
void free(const u32& texId);
|
||||
void free(const Texture* tex);
|
||||
void free(const Texture& tex);
|
||||
void freeBySprite(const Sprite& sprite);
|
||||
void freeByMesh(const Mesh& mesh);
|
||||
void freeByMesh(const Mesh* mesh);
|
||||
|
||||
/**
|
||||
* Remove texture from repository.
|
||||
* Texture is NOT destructed.
|
||||
* Not recommended.
|
||||
*/
|
||||
void removeById(const u32& t_texId);
|
||||
|
||||
/**
|
||||
* Remove texture from repository.
|
||||
* Texture IS destructed.
|
||||
*/
|
||||
void free(const u32& t_texId);
|
||||
void free(const Texture* t_tex);
|
||||
void free(const Texture& t_tex);
|
||||
|
||||
private:
|
||||
void removeByIndex(const u32& t_index);
|
||||
|
||||
std::vector<Texture*> textures;
|
||||
TextureLoaderSelector texLoaderSelector;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user