Cogs.Core
IResourceLoader.h
1#pragma once
2
3#include "Resources.h"
4
5#include "Foundation/Platform/FileContents.h"
6
7namespace Cogs::Core
8{
9 class Context;
10
11 template<typename ResourceType, typename LoadInfoType>
13 {
14 public:
15 virtual ~IResourceLoader() {}
16
17 virtual bool canLoad(Context * context, const LoadInfoType & loadInfo) = 0;
18
19 virtual bool load(Context * context, const LoadInfoType & loadInfo) = 0;
20 };
21
22 template<typename ResourceType, typename LoadInfoType>
24 public:
25 // Takes ownership of loadInfo
26 virtual void load(Context* context, LoadInfoType* loadInfo) = 0;
27 };
28
29 template<typename ResourceType, typename LoadInfoType>
31 {
32 public:
33 virtual bool load(Context * context, const LoadInfoType & loadInfo, std::unique_ptr<FileContents> contents) = 0;
34 };
35
36 template<typename ResourceType, typename LoadInfoType>
38 {
39 public:
40 virtual bool load(Context* context, const LoadInfoType& loadInfo, const void* dataPtr, size_t dataSize) = 0;
41 };
42
43}
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition: Context.h:83
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....