MCPcopy Create free account
hub / github.com/StereoKit/StereoKit / render_init

Function render_init

StereoKitC/systems/render.cpp:186–262  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

184///////////////////////////////////////////
185
186bool render_init() {
187 local = {};
188 local.initialized = true;
189 local.camera_root = matrix_identity;
190 local.camera_root_final = matrix_identity;
191 local.camera_root_final_inv = matrix_identity;
192 local.sim_origin = matrix_identity;
193 local.sim_head = matrix_identity;
194 local.clip_planes = {0.02f, 50};
195 local.fov = 90;
196 local.ortho_near_clip = 0.0f;
197 local.ortho_far_clip = 50.0f;
198 local.ortho_viewport_height = 1.0f;
199 local.clear_col = color128{0,0,0,0};
200 local.list_primary = -1;
201 local.scale = 1;
202 local.multisample = 1;
203 local.primary_filter = render_layer_all_first_person;
204 local.capture_filter = render_layer_all_first_person;
205 local.list_active = -1;
206
207 local.shader_globals = material_buffer_create(1, sizeof(local.global_buffer));
208 local.shader_blit = skg_buffer_create(nullptr, 1, sizeof(render_blit_data_t), skg_buffer_type_constant, skg_use_dynamic);
209#if !defined(SKG_OPENGL) && (defined(_DEBUG) || defined(SK_GPU_LABELS))
210 skg_buffer_name(&local.shader_blit, "sk/render/blit_buffer");
211#endif
212
213 local.instance_buffer = skg_buffer_create(nullptr, render_instance_max, sizeof(render_transform_buffer_t), skg_buffer_type_constant, skg_use_dynamic);
214#if !defined(SKG_OPENGL) && (defined(_DEBUG) || defined(SK_GPU_LABELS))
215 skg_buffer_name(&local.instance_buffer, "sk/render/instance_buffer");
216#endif
217 local.instance_list.resize(render_instance_max);
218
219 // Setup a default camera
220 render_set_clip(local.clip_planes.x, local.clip_planes.y);
221
222 // Set up resources for doing blit operations
223 local.blit_quad = mesh_find(default_id_mesh_screen_quad);
224
225 // Create a default skybox
226 local.sky_mesh = mesh_create();
227 vind_t inds [] = {2,1,0, 3,2,0};
228 vert_t verts[] = {
229 vert_t{ {-1, 1,1}, {0,0,1}, {0,0}, {255,255,255,255} },
230 vert_t{ { 1, 1,1}, {0,0,1}, {1,0}, {255,255,255,255} },
231 vert_t{ { 1,-1,1}, {0,0,1}, {1,1}, {255,255,255,255} },
232 vert_t{ {-1,-1,1}, {0,0,1}, {0,1}, {255,255,255,255} }, };
233 mesh_set_data(local.sky_mesh, verts, _countof(verts), inds, _countof(inds));
234 mesh_set_id (local.sky_mesh, "sk/render/skybox_mesh");
235
236 // Create a default skybox material
237 shader_t shader_sky = shader_find(default_id_shader_sky);
238 local.sky_mat_default = material_create(shader_sky);
239 material_set_id (local.sky_mat_default, "sk/render/skybox_material");
240 material_set_queue_offset(local.sky_mat_default, 100);
241 material_set_depth_write (local.sky_mat_default, false);
242 material_set_depth_test (local.sky_mat_default, depth_test_less_or_eq);
243 render_set_skymaterial(local.sky_mat_default);

Callers

nothing calls this directly

Calls 15

material_buffer_createFunction · 0.85
skg_buffer_createFunction · 0.85
skg_buffer_nameFunction · 0.85
render_set_clipFunction · 0.85
mesh_findFunction · 0.85
mesh_createFunction · 0.85
mesh_set_dataFunction · 0.85
mesh_set_idFunction · 0.85
shader_findFunction · 0.85
material_createFunction · 0.85
material_set_idFunction · 0.85

Tested by

no test coverage detected