Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
IResource.h
Ir a la documentación de este archivo.
1
6#pragma once
7#include "Prerequisites.h"
8
9enum class
11 Unknown,
12 Model3D,
13 Texture,
14 Sound,
15 Shader,
17};
18
19enum class
22 Loading,
23 Loaded,
24 Failed
25};
26
27class IResource {
28public:
29 IResource(const std::string& name)
30 : m_name(name)
31 , m_filePath("")
34 , m_id(GenerateID())
35 { }
36 virtual ~IResource() = default;
37
38 // Crear recurso GPU
39 virtual bool init() = 0;
40 // Carga desde disco
41 virtual bool load(const std::string& filename) = 0;
42 // Liberar memoria
43 virtual void unload() = 0;
44 // Para profiler
45 virtual size_t getSizeInBytes() const = 0;
46
47 void SetPath(const std::string& path) { m_filePath = path; }
48 void SetType(ResourceType t) { m_type = t; }
50
51
52 const std::string& GetName() const { return m_name; }
53 const std::string& GetPath() const { return m_filePath; }
54 ResourceType GetType() const { return m_type; }
55 ResourceState GetState() const { return m_state; }
56 uint64_t GetID() const { return m_id; }
57
58protected:
59 std::string m_name;
60 std::string m_filePath;
63 uint64_t m_id;
64
65private:
66 static uint64_t GenerateID()
67 {
68 static uint64_t nextID = 1;
69 return nextID++;
70 }
71};
72
ResourceState
Definition IResource.h:20
ResourceType
Definition IResource.h:10
Declara la API de Prerequisites dentro del subsistema Core.
IResource(const std::string &name)
Definition IResource.h:29
void SetPath(const std::string &path)
Definition IResource.h:47
virtual bool load(const std::string &filename)=0
std::string m_name
Definition IResource.h:59
const std::string & GetName() const
Definition IResource.h:52
void SetType(ResourceType t)
Definition IResource.h:48
static uint64_t GenerateID()
Definition IResource.h:66
ResourceType GetType() const
Definition IResource.h:54
ResourceType m_type
Definition IResource.h:61
virtual size_t getSizeInBytes() const =0
std::string m_filePath
Definition IResource.h:60
virtual void unload()=0
uint64_t GetID() const
Definition IResource.h:56
const std::string & GetPath() const
Definition IResource.h:53
virtual bool init()=0
uint64_t m_id
Definition IResource.h:63
virtual ~IResource()=default
ResourceState m_state
Definition IResource.h:62
void SetState(ResourceState s)
Definition IResource.h:49
ResourceState GetState() const
Definition IResource.h:55
Describe el estado fijo compartido por una o mas instancias de material.
Definition Material.h:23