MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / receiver_main

Function receiver_main

samples/render_graph/cross-process/receiver.cpp:234–388  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

232}
233
234int receiver_main(int argc, char* argv[])
235{
236 auto id = skr_get_current_process_id();
237 SKR_LOG_DEBUG(u8"exec_mode: %s, process id: %lld", argv[1], id);
238 const SProcessId provider_id = std::stol(argv[2]);
239 SKR_LOG_TRACE(u8"provider id: %lld", provider_id);
240
241 MDB_env* env = nullptr;
242 MDB_dbi dbi = ~0;
243 env_create(&env);
244
245 // initialize renderer
246 if (SDL_Init(SDL_INIT_EVERYTHING) != 0) return -1;
247 auto renderer = SkrNew<ReceiverRenderer>();
248 renderer->create_window();
249 renderer->create_api_objects();
250 renderer->create_blit_pipeline();
251
252 // initialize render graph
253 namespace render_graph = skr::render_graph;
254 auto graph = render_graph::RenderGraph::create(
255 [=](render_graph::RenderGraphBuilder& builder) {
256 builder.with_device(renderer->device)
257 .with_gfx_queue(renderer->gfx_queue);
258 });
259
260 // loop
261 bool quit = false;
262 CGPUTextureId cached_texture = nullptr;
263 STimer db_timer;
264 int64_t elapsed_ms = 0;
265 skr_init_timer(&db_timer);
266 while (!quit)
267 {
268 if (dbi == ~0)
269 {
270 elapsed_ms += skr_timer_get_msec(&db_timer, true);
271 if (elapsed_ms >= 500)
272 {
273 dbi_create(env, &dbi, true);
274 SKR_LOG_TRACE(u8"db id: %u", dbi);
275 elapsed_ms = 0;
276 }
277 }
278
279 SDL_Event event;
280 while (SDL_PollEvent(&event))
281 {
282 if (SDL_GetWindowID(renderer->sdl_window) == event.window.windowID)
283 {
284 if (!SDLEventHandler(&event, renderer->sdl_window))
285 {
286 quit = true;
287 }
288 }
289 if (event.type == SDL_WINDOWEVENT)
290 {
291 Uint8 window_event = event.window.event;

Callers 1

mainFunction · 0.85

Calls 15

env_createFunction · 0.85
skr_init_timerFunction · 0.85
skr_timer_get_msecFunction · 0.85
dbi_createFunction · 0.85
cgpu_wait_queue_idleFunction · 0.85
cgpu_free_swapchainFunction · 0.85
cgpu_create_swapchainFunction · 0.85
cgpu_wait_fencesFunction · 0.85
cgpu_acquire_next_imageFunction · 0.85
cgpu_free_textureFunction · 0.85

Tested by

no test coverage detected