-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathconfiguration.proto
More file actions
66 lines (62 loc) · 2.69 KB
/
Copy pathconfiguration.proto
File metadata and controls
66 lines (62 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright (C) 2016,2018,2021,2026 Rodrigo Jose Hernandez Cordoba
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package AeonGames;
import "property.proto";
/* Backend-specific renderer settings, addressed generically by plugin name.
PluginName matches the renderer/plugin identifier (e.g. "Vulkan", "OpenGL");
each Property is a name:value pair the matching renderer plugin reads for the
keys it recognises. This keeps knobs that only one backend needs out of the
shared, backend-agnostic RendererSettingsMsg fields below. */
message PluginSettingsMsg {
string PluginName = 1;
repeated PropertyMsg Property = 2;
}
/* Renderer resource-policy / quality settings. The named fields are backend-
agnostic and honoured by every renderer; each is optional so an omitted field
keeps the engine's compiled-in default (a value of 0 is never assumed). Knobs
that do not generalise across backends live under PluginSettings instead. */
message RendererSettingsMsg {
optional uint32 BindlessTextureCapacity = 1;
optional uint32 BindlessMaterialCapacity = 2;
optional uint64 UniformPoolInitialCapacity = 3;
optional uint64 StoragePoolInitialCapacity = 4;
optional uint32 PrefilteredEnvironmentFaceSize = 5;
optional uint32 PrefilteredEnvironmentMipCount = 6;
optional uint32 SkyboxEnvironmentFaceSize = 7;
optional uint32 DirectionalShadowMapResolution = 8;
optional uint32 SpotShadowMapResolution = 9;
optional uint32 PointShadowMapResolution = 10;
repeated PluginSettingsMsg PluginSettings = 11;
}
message ConfigurationMsg {
string PluginDirectory = 1;
/*
So this causes an issue where
you cannot have packages before plugins
or plugins and packages intertwined.
While this is probably best for the computer,
seems prone to human error.
Protobuf upstream won't be adding
'repeated oneof' functionality,
so it may be a good idea to encapsulate these
into their own message object, Plugins and Packages,
this way at least users can see two distinct sections
on the file.
Then again I may just leave it as is.
*/
repeated string Plugin = 2;
repeated string Package = 3;
RendererSettingsMsg Renderer = 4;
}