KisaragiLibrary
 
読み取り中…
検索中…
一致する文字列を見つけられません
Resouce.hpp
[詳解]
1#pragma once
2
3#include <memory>
4#include <functional>
6
7namespace Kisaragi_ECS
8{
9 /// <summary>
10 /// Resouceの保有と破棄を行う型
11 /// </summary>
13 {
14 public:
15 //resourceの破棄に扱われる関数
16 std::function<void()> destroy;
17
18 //resourceデータ
19 std::shared_ptr<void> resource;
20
22 {
23 if (destroy)
24 {
25 destroy();
26 }
27 else
28 {
29 Debug::PrintWarningStatic("ResourceInfo : destroyが登録されていません");
30 }
31 }
32 };
33
34 /// <summary>
35 /// リソースの基底クラス
36 /// </summary>
37 /// <typeparam name="T">リソースの型</typeparam>
38 template<class T>
40 {
41 protected:
42 std::shared_ptr<ResourceInfo> info;
43
44 public:
45
46 Resource() = delete;
47 Resource(std::shared_ptr<ResourceInfo> _info) :info{ _info } {};
48
49 /// <summary>
50 /// リソースを返す
51 /// </summary>
52 operator const T&()
53 {
54 return *std::static_pointer_cast<T>(info.get()->resource);
55 }
56
57
58 };
59
61
62
63}
DebugConsole操作クラス
リソースの基底クラス
Definition Resouce.hpp:40
std::shared_ptr< ResourceInfo > info
Definition Resouce.hpp:42
Resource(std::shared_ptr< ResourceInfo > _info)
Definition Resouce.hpp:47
Resouceの保有と破棄を行う型
Definition Resouce.hpp:13
~ResourceInfo()
Definition Resouce.hpp:21
std::shared_ptr< void > resource
Definition Resouce.hpp:19
std::function< void()> destroy
Definition Resouce.hpp:16
Definition Resouce.hpp:8
Resource< int > Image
Definition Resouce.hpp:60