Cogs.Core
Bridge.h
1#pragma once
2
3#include "BridgeApi.h"
4
5// C-compilable code must use typedef.
6
8typedef void NeedsUpdateCallback(void* data);
9
11typedef void LoggerCallback(const char * message, const char * source, int category);
12
14typedef void FileLineLoggerCallback(const char * file, int line, const char * message, const char * source, int category);
15
17typedef void RenderCallback(BridgeContext* context);
18
21typedef void ComponentNotifyCallback(BridgeContext* context, int componentId, size_t entityId, int notification, const void* data, size_t dataSize);
22
23COGSCORE_BRIDGE EntityId getNoInternalIdValue();
24
25COGSCORE_BRIDGE void initializeStatic();
26COGSCORE_BRIDGE void cleanupStatic();
27
29COGSCORE_BRIDGE BridgeContext* createContext(const char ** variables, const int count);
31COGSCORE_BRIDGE CogsBool initializeContext(BridgeContext* ctx, BridgeView* defaultView, CogsBool initializeEngine);
32COGSCORE_BRIDGE CogsBool updateContext(BridgeContext * ctx);
33COGSCORE_BRIDGE void destroyContext(BridgeContext * ctx);
34
35// Views represent windows attached to cameras that render to them directly.
37COGSCORE_BRIDGE BridgeView* createView(BridgeContext* ctx, void* windowData);
38COGSCORE_BRIDGE void destroyView(BridgeView* bv);
40COGSCORE_BRIDGE CogsBool initializeView(BridgeView* bv, EntityId cameraId);
41COGSCORE_BRIDGE void setViewCamera(BridgeView* bv, EntityId cameraId);
42COGSCORE_BRIDGE EntityId getViewCamera(BridgeView* bv);
43
45COGSCORE_BRIDGE BridgeContext* getViewContext(BridgeView* bv);
46
48COGSCORE_BRIDGE BridgeView* getDefaultView(BridgeContext* ctx);
49
50COGSCORE_BRIDGE void * getSharedSurface(BridgeContext * ctx);
51
52COGSCORE_BRIDGE void setupContext(BridgeContext * ctx);
53
55COGSCORE_BRIDGE void clearContext(BridgeContext * ctx);
56
57COGSCORE_BRIDGE void prependSearchPath(BridgeContext * context, const char * path);
58
59COGSCORE_BRIDGE CogsBool loadScene(BridgeContext * context, const char * filename, int flags);
60COGSCORE_BRIDGE CogsBool loadAsset(BridgeContext * context, const char * filename, EntityId rootId, int flags);
62COGSCORE_BRIDGE CogsBool loadAssetFromString(BridgeContext* context, const char* contents, EntityId rootId, int flags);
63COGSCORE_BRIDGE CogsBool writeAsset(BridgeContext * context, const char * filename, EntityId rootId, int flags);
64COGSCORE_BRIDGE CogsBool writeModel(BridgeContext * context, const char * filename, EntityId rootId);
65
66COGSCORE_BRIDGE CogsBool loadPermutations(BridgeContext * context, const char * name);
67
68COGSCORE_BRIDGE EntityId createEntity(BridgeContext * ctx, const char * type);
69COGSCORE_BRIDGE void destroyEntity(BridgeContext * ctx, EntityId id);
70COGSCORE_BRIDGE uint32_t getEntityStoreRevision(BridgeContext * ctx);
71
75COGSCORE_BRIDGE const char * getEntityName(BridgeContext * ctx, EntityId entityId);
76COGSCORE_BRIDGE void setEntityName(BridgeContext * ctx, EntityId entityId, const char * name);
77
78COGSCORE_BRIDGE EntityId getEntityParent(BridgeContext * context, EntityId entityId);
79
80COGSCORE_BRIDGE void addChildEntity(BridgeContext * ctx, EntityId parentId, EntityId childId);
81COGSCORE_BRIDGE void removeChildEntity(BridgeContext * ctx, EntityId parentId, EntityId childId);
82
94COGSCORE_BRIDGE void setEntityParent(BridgeContext* ctx, EntityId parentId, EntityId childId);
95
96COGSCORE_BRIDGE void addComponent(BridgeContext * context, EntityId entityId, ComponentId componentId);
97COGSCORE_BRIDGE void removeComponent(BridgeContext * context, EntityId entityId, ComponentId componentId);
98
102COGSCORE_BRIDGE int getChildren(BridgeContext * context, EntityId entityId, EntityId * ids, int idCount);
103
108COGSCORE_BRIDGE int getComponents(BridgeContext * context, EntityId entityId, ComponentId * ids);
109
113COGSCORE_BRIDGE int getEntitiesWithComponent(BridgeContext * context, ComponentId componentId, EntityId * ids, int idCount);
114
126COGSCORE_BRIDGE EntityId getEntityId(BridgeContext * ctx, const char * name);
127
141COGSCORE_BRIDGE EntityId getEntityFull(BridgeContext * ctx, EntityId rootId, const char* name, const int exactName);
142COGSCORE_BRIDGE const char * getEntityTemplate(BridgeContext * context, EntityId entityId);
143
145COGSCORE_BRIDGE int getNumComponents(BridgeContext* ctx, EntityId entityId);
146
148COGSCORE_BRIDGE int getComponentType(BridgeContext* ctx, EntityId entityId, int componentNo);
149
152COGSCORE_BRIDGE void setLoggerLevel(const char* level);
153
154COGSCORE_BRIDGE void setLoggerCallback(LoggerCallback * callback);
155COGSCORE_BRIDGE void setFileLineLoggerCallback(FileLineLoggerCallback * callback);
156
162COGSCORE_BRIDGE void setUpdateCallback(BridgeContext * ctx, NeedsUpdateCallback* callback, void * data);
163
165COGSCORE_BRIDGE CogsBool needsUpdate(BridgeContext * ctx);
166
167COGSCORE_BRIDGE void setVariable(BridgeContext * ctx, const char * name, const char * value);
168COGSCORE_BRIDGE void setBoolVariable(BridgeContext * ctx, const char * name, CogsBool value);
169COGSCORE_BRIDGE void setIntVariable(BridgeContext * ctx, const char * name, int value);
170COGSCORE_BRIDGE void setFloatVariable(BridgeContext * ctx, const char * name, float value);
171COGSCORE_BRIDGE void setDoubleVariable(BridgeContext * ctx, const char * name, double value);
172
174COGSCORE_BRIDGE CogsBool hasVariable(BridgeContext* ctx, const char* name);
175
177COGSCORE_BRIDGE char * getVariable(BridgeContext * ctx, const char * name);
178COGSCORE_BRIDGE CogsBool getBoolVariable(BridgeContext * ctx, const char * name);
179COGSCORE_BRIDGE int getIntVariable(BridgeContext * ctx, const char * name);
180COGSCORE_BRIDGE float getFloatVariable(BridgeContext * ctx, const char * name);
181COGSCORE_BRIDGE double getDoubleVariable(BridgeContext * ctx, const char * name);
182
183COGSCORE_BRIDGE char * getVariableOrDefault(BridgeContext * ctx, const char * name, const char * defaultValue);
184COGSCORE_BRIDGE CogsBool getBoolVariableOrDefault(BridgeContext * ctx, const char * name, CogsBool defaultValue);
185COGSCORE_BRIDGE int getIntVariableOrDefault(BridgeContext * ctx, const char * name, int defaultValue);
186COGSCORE_BRIDGE float getFloatVariableOrDefault(BridgeContext * ctx, const char * name, float defaultValue);
187COGSCORE_BRIDGE double getDoubleVariableOrDefault(BridgeContext * ctx, const char * name, double defaultValue);
188
189COGSCORE_BRIDGE CogsBool eraseVariable(BridgeContext * ctx, const char * name);
190
191COGSCORE_BRIDGE const void* loadExtensionModule(const char * name);
192COGSCORE_BRIDGE CogsBool checkExtension(const char * name);
193COGSCORE_BRIDGE void* getExtensionSymbol(const char * extension, const char* symbol);
194
195COGSCORE_BRIDGE const char * getLicenseText(BridgeContext * ctx);
196
198COGSCORE_BRIDGE void setPostSystemsUpdateCallback(BridgeContext* ctx, RenderCallback* callback);
199COGSCORE_BRIDGE void setPreRenderCallback(BridgeContext* ctx, RenderCallback* callback);
200COGSCORE_BRIDGE void setPostRenderCallback(BridgeContext* ctx, RenderCallback* callback);
201COGSCORE_BRIDGE void setComponentNotifyCallback(BridgeContext* ctx, ComponentNotifyCallback* callback);
202
203COGSCORE_BRIDGE void registerDynamicType(BridgeContext * ctx, const char * name, size_t messageMask);
204COGSCORE_BRIDGE void registerMessageCallback(BridgeContext * ctx, EntityId entityId, ComponentId componentId, void * callback);
205COGSCORE_BRIDGE void registerUserData(BridgeContext * ctx, EntityId entityId, ComponentId componentId, void * userData);
206COGSCORE_BRIDGE int getMessageId(BridgeContext * ctx, const char * name);
207
208COGSCORE_BRIDGE void addInputActionMapping(BridgeContext * ctx, const char * name, const char * device, const char * action);
209COGSCORE_BRIDGE CogsBool getInputAction(BridgeContext * ctx, const char * name);
210
211COGSCORE_BRIDGE void addInputAxisMapping(BridgeContext * ctx, const char * name, const char * device, const char * axis, float scale);
212COGSCORE_BRIDGE float getInputAxis(BridgeContext * ctx, const char * name);
213
214COGSCORE_BRIDGE void gainedFocus(BridgeView* bv, double timestamp_ms);
215COGSCORE_BRIDGE void lostFocus(BridgeView* bv, double timestamp_ms);
216
217// Functions for triggering input events from outside the engine.
218COGSCORE_BRIDGE void inputTriggerPointerPress(BridgeView* bv, int pointerType, PointerId pointerId, int button, int x, int y, double timestamp_ms);
219COGSCORE_BRIDGE void inputTriggerPointerRelease(BridgeView* bv, int pointerType, PointerId pointerId, int button, int x, int y, double timestamp_ms);
220COGSCORE_BRIDGE void inputTriggerPointerMove(BridgeView* bv, int pointerType, PointerId pointerId, int x, int y, double timestamp_ms);
221COGSCORE_BRIDGE void inputTriggerMouseWheel(BridgeView* bv, int deltaValue, double timestamp_ms);
222
223COGSCORE_BRIDGE void inputTriggerKeyDown(BridgeView* bv, int key, double timestamp_ms);
224COGSCORE_BRIDGE void inputTriggerKeyUp(BridgeView* bv, int key, double timestamp_ms);
225COGSCORE_BRIDGE void inputTriggerKeyChar(BridgeView* bv, const char* ch, double timestamp_ms);
226
233COGSCORE_BRIDGE CogsBool hasGuiInputFocus(BridgeView * bv, int inputDeviceTypes);
234
235COGSCORE_BRIDGE void setClipboardCallbacks(GetClipboardTextFn getter, SetClipboardTextFn setter);