Cogs.Core
Source
Serialization
ResourceReader.h
1
#pragma once
2
3
#include "JsonParser.h"
4
5
#include <functional>
6
7
#include "EntityPtr.h"
8
9
#include "Resources/AssetDefinition.h"
10
11
namespace
Cogs
12
{
13
namespace
Core
14
{
15
class
Context;
16
struct
ExpressionContext;
17
18
struct
ReaderExtension
19
{
20
Reflection::TypeId
handleTypeId =
Reflection::NoType
;
21
std::function<void(
void
*,
const
Reflection::Field
* field,
const
FieldValue
& value)> setCallback;
22
std::function<void(
const
StringView
& name,
const
Value &)> readCallback;
23
};
24
25
ReaderExtension
* getExtensionReader(
size_t
code);
26
void
COGSCORE_DLL_API registerExtensionReader(
Context
* context,
const
StringView
& resourceType,
const
Reflection::Type
& handleType,
ReaderExtension
extension);
27
28
struct
ReaderContext
29
{
30
Context
* context =
nullptr
;
31
ExpressionContext
* ec =
nullptr
;
32
struct
Asset
* asset =
nullptr
;
33
};
34
35
void
readAssetDefinition(
ReaderContext
* context,
const
Value& jsonResource,
ResourceDefinition
& assetDefinition);
36
void
readModelDefinition(
ReaderContext
* context,
const
Value & jsonResource,
ResourceDefinition
& modelDefinition);
37
void
readTextureDefinition(
ReaderContext
* context,
const
Value & jsonResource,
ResourceDefinition
& textureDefinition);
38
void
readMaterialInstanceDefinition(
ReaderContext
* context,
const
Value & value,
ResourceDefinition
& materialInstanceDefinition);
39
40
void
readResources(
Context
* context,
const
Value & jsonResources,
int
flags = 0);
41
void
readResourceDefinitions(
Context
* context,
const
Value & jsonResources,
int
flags,
AssetDefinition
& asset);
42
43
StringView
readMesh(
Context
* context,
ResourceDefinition
& definition,
const
Value & jsonResource);
44
}
45
}
Cogs::Core::Context
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition:
Context.h:83
Cogs::Reflection::Field
Field definition describing a single data member of a data structure.
Definition:
Field.h:68
Cogs::Reflection::Type
Represents a discrete type definition, describing a native type class.
Definition:
Type.h:89
Cogs::StringView
Provides a weakly referenced view over the contents of a string.
Definition:
StringView.h:24
Cogs::Reflection::TypeId
uint16_t TypeId
Built in type used to uniquely identify a single type instance.
Definition:
Name.h:48
Cogs::Reflection::NoType
constexpr TypeId NoType
Definition of no type.
Definition:
Name.h:51
Cogs
Contains all Cogs related functionality.
Definition:
FieldSetter.h:23
Cogs::Core::AssetDefinition
Definition:
AssetDefinition.h:260
Cogs::Core::Asset
Definition:
Asset.h:10
Cogs::Core::ExpressionContext
Provides a context for evaluation of expressions.
Definition:
Expressions.h:54
Cogs::Core::FieldValue
Defines a value to apply to a field.
Definition:
EntityDefinition.h:76
Cogs::Core::ReaderContext
Definition:
ResourceReader.h:29
Cogs::Core::ReaderExtension
Definition:
ResourceReader.h:19
Cogs::Core::ResourceDefinition
Definition:
AssetDefinition.h:234
Generated by
1.9.6