Tramway SDK
api.h
Go to the documentation of this file.
1// Tramway Drifting and Dungeon Exploration Simulator SDK Runtime
2
3#ifndef TRAM_SDK_RENDER_API_H
4#define TRAM_SDK_RENDER_API_H
5
6#include <render/render.h>
7#include <render/renderer.h>
8
15namespace tram::Render::API {
16
17void Init();
18void RenderFrame();
19
20drawlistentry_t InsertDrawListEntry();
21void RemoveDrawListEntry(drawlistentry_t entry);
22
23uint32_t GetFlags(drawlistentry_t entry);
24void SetFlags(drawlistentry_t entry, uint32_t flags);
25void SetLayer(drawlistentry_t entry, layer_t layer);
26void SetPose(drawlistentry_t entry, Pose* pose);
27void SetLightmap(drawlistentry_t entry, texturehandle_t lightmap);
28void SetLights(drawlistentry_t entry, light_t* lights);
29void SetMatrix(drawlistentry_t entry, const mat4& matrix);
30void SetFadeDistance(drawlistentry_t entry, float near, float far);
31
32void SetDrawListVertexArray(drawlistentry_t entry, vertexarray_t vertex_array_handle);
33void SetDrawListIndexArray(drawlistentry_t entry, indexarray_t index_array_handle);
34void SetDrawListIndexRange(drawlistentry_t entry, uint32_t index_offset, uint32_t index_length);
35void SetDrawListSpriteArray(drawlistentry_t entry, spritearray_t sprite_array_handle);
36
37void SetDrawListShader(drawlistentry_t entry, vertexformat_t vertex_format, materialtype_t material_type);
38void SetDrawListTextures(drawlistentry_t entry, size_t texture_count, texturehandle_t* textures);
39
40void SetDrawListColors(drawlistentry_t entry, size_t count, vec4* color);
41void SetDrawListSpecularities(drawlistentry_t entry, size_t count, float* weights, float* exponents, float* transparencies);
42void SetDrawListTextureOffsets(drawlistentry_t entry, size_t count, vec4* offset);
43void SetDrawListAABB(drawlistentry_t entry, vec3 min, vec3 max);
44
45texturehandle_t CreateTexture(ColorMode color_mode, TextureFilter texture_filter, uint32_t width, uint32_t height, void* data);
46
47void CreateIndexedVertexArray(VertexDefinition vertex_format, vertexarray_t& vertex_array, indexarray_t& index_array, size_t vertex_size, void* vertex_data, size_t index_size, void* index_data);
48
49void CreateVertexArray(VertexDefinition vertex_format, vertexarray_t& vertex_array);
50void UpdateVertexArray(vertexarray_t& vertex_buffer, size_t data_size, void* data);
51
52spritearray_t CreateSpriteArray();
53void UpdateSpriteArray(spritearray_t array, size_t data_size, void* data);
54
55void SetScreenSize(float width, float height);
56void SetScreenClear(vec3 clear_color, bool clear);
58void SetViewParameters(vec3 position, quat rotation, layer_t layer);
59
60light_t MakeLight();
61void DeleteLight(light_t light);
62void SetLightParameters(light_t light, vec3 location, vec3 color, float distance, vec3 direction, float exponent);
63
64void RegisterShader(vertexformat_t format, materialtype_t type, const char* vertex_shader, const char* fragment_shader);
65
66void SetViewMatrix(const mat4& matrix, layer_t layer);
67void SetProjectionMatrix(const mat4& matrix, layer_t layer);
68void GetScreen(char* buffer, int w, int h);
69
76};
77
79uint32_t GetMaxIndexRangeLength();
80void SetDevice(void*);
81
82bool IsDebugMode();
83void SetDebugMode(bool);
84
85}
86
87#endif // TRAM_SDK_RENDER_API_H
Rendering backend API.
uint32_t GetFlags(drawlistentry_t entry)
Definition: renderer.cpp:242
void RenderFrame()
Definition: renderer.cpp:62
void SetFlags(drawlistentry_t entry, uint32_t flags)
Definition: renderer.cpp:246
ContextType GetContext()
Definition: renderer.cpp:803
uint32_t GetMaxIndexRangeLength()
Definition: renderer.cpp:807
drawlistentry_t InsertDrawListEntry()
Definition: renderer.cpp:234
void UpdateVertexArray(vertexarray_t &vertex_buffer, size_t data_size, void *data)
Definition: renderer.cpp:690
void SetViewMatrix(const mat4 &matrix, layer_t layer)
Definition: renderer.cpp:732
void UpdateSpriteArray(spritearray_t array, size_t data_size, void *data)
Definition: renderer.cpp:626
void Init()
Definition: renderer.cpp:768
void SetDrawListShader(drawlistentry_t entry, vertexformat_t vertex_format, materialtype_t material_type)
Definition: renderer.cpp:302
void SetLightmap(drawlistentry_t entry, texturehandle_t lightmap)
Definition: renderer.cpp:258
void SetDrawListIndexArray(drawlistentry_t entry, indexarray_t index_array_handle)
Definition: renderer.cpp:293
void SetScreenSize(float width, float height)
Definition: renderer.cpp:50
void SetScreenClear(vec3 clear_color, bool clear)
Definition: renderer.cpp:54
void SetDrawListVertexArray(drawlistentry_t entry, vertexarray_t vertex_array_handle)
Definition: renderer.cpp:286
void RemoveDrawListEntry(drawlistentry_t entry)
Definition: renderer.cpp:238
ContextType
Definition: api.h:70
@ CONTEXT_WEBGL
Definition: api.h:72
@ CONTEXT_NONE
Definition: api.h:75
@ CONTEXT_DIRECT3D
Definition: api.h:73
@ CONTEXT_OPENGL
Definition: api.h:71
@ CONTEXT_SOFTWARE
Definition: api.h:74
void SetPose(drawlistentry_t entry, Pose *pose)
Definition: renderer.cpp:254
void RegisterShader(vertexformat_t format, materialtype_t type, const char *vertex_shader, const char *fragment_shader)
Definition: shader.cpp:221
void SetFadeDistance(drawlistentry_t entry, float near, float far)
Definition: renderer.cpp:415
void SetDrawListAABB(drawlistentry_t entry, vec3 min, vec3 max)
Definition: renderer.cpp:375
texturehandle_t CreateTexture(ColorMode color_mode, TextureFilter texture_filter, uint32_t width, uint32_t height, void *data)
Definition: renderer.cpp:346
void GetScreen(char *buffer, int w, int h)
Definition: renderer.cpp:744
void CreateVertexArray(VertexDefinition vertex_format, vertexarray_t &vertex_array)
Definition: renderer.cpp:655
void SetDebugMode(bool)
Definition: renderer.cpp:789
void SetLightParameters(light_t light, vec3 location, vec3 color, float distance, vec3 direction, float exponent)
Definition: renderer.cpp:329
light_t MakeLight()
Definition: renderer.cpp:310
void SetProjectionMatrix(const mat4 &matrix, layer_t layer)
Definition: renderer.cpp:737
void SetDrawListSpriteArray(drawlistentry_t entry, spritearray_t sprite_array_handle)
Definition: renderer.cpp:428
void SetDrawListSpecularities(drawlistentry_t entry, size_t count, float *weights, float *exponents, float *transparencies)
Definition: renderer.cpp:266
bool IsDebugMode()
Definition: renderer.cpp:785
void SetViewParameters(vec3 position, quat rotation, layer_t layer)
Definition: renderer.cpp:117
void SetLightingParameters(vec3 sun_direction, vec3 sun_color, vec3 ambient_color, layer_t layer)
Definition: renderer.cpp:44
void SetDrawListTextureOffsets(drawlistentry_t entry, size_t count, vec4 *offset)
Definition: renderer.cpp:394
void SetDrawListTextures(drawlistentry_t entry, size_t texture_count, texturehandle_t *textures)
Definition: renderer.cpp:306
void SetDrawListColors(drawlistentry_t entry, size_t count, vec4 *color)
Definition: renderer.cpp:262
void SetDrawListIndexRange(drawlistentry_t entry, uint32_t index_offset, uint32_t index_length)
Definition: renderer.cpp:297
void SetLights(drawlistentry_t entry, light_t *lights)
Definition: renderer.cpp:272
void DeleteLight(light_t light)
Definition: renderer.cpp:320
void SetMatrix(drawlistentry_t entry, const mat4 &matrix)
Definition: renderer.cpp:278
void CreateIndexedVertexArray(VertexDefinition vertex_format, vertexarray_t &vertex_array, indexarray_t &index_array, size_t vertex_size, void *vertex_data, size_t index_size, void *index_data)
Definition: renderer.cpp:608
void SetDevice(void *)
Definition: renderer.cpp:811
spritearray_t CreateSpriteArray()
Definition: renderer.cpp:595
void SetLayer(drawlistentry_t entry, layer_t layer)
Definition: renderer.cpp:250
vec3 ambient_color
Definition: render.cpp:40
uint32_t vertexformat_t
Definition: render.h:19
vec3 sun_color
Definition: render.cpp:39
uint32_t layer_t
Definition: render.h:17
uint32_t materialtype_t
Definition: render.h:20
ColorMode
Texture color mode.
Definition: renderer.h:27
TextureFilter
Texture filters.
Definition: renderer.h:35
vec3 sun_direction
Definition: render.cpp:38
char buffer[500]
Definition: logging.cpp:60
glm::vec4 vec4
Definition: math.h:15
glm::vec3 vec3
Definition: math.h:11
glm::quat quat
Definition: math.h:12
glm::mat4 mat4
Definition: math.h:14