MCPcopy Create free account
hub / github.com/emscripten-core/emscripten / main_tick

Function main_tick

test/pthread/test_pthread_mandelbrot.cpp:398–572  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

396}
397
398void main_tick()
399{
400#ifndef SINGLETHREADED
401 const int threadsRunning = numThreadsRunning;
402 if (threadsRunning < maxThreadsRunning) return;
403#endif
404
405 wait_tasks();
406 numItersDoneOnCanvas += numItersPerFrame;
407
408#if defined(TEST_THREAD_PROFILING)
409 static bool reported = false;
410 if (!reported && numItersDoneOnCanvas > 50000)
411 {
412 reported = true;
413 emscripten_force_exit(0);
414 }
415#endif
416
417 double t = emscripten_get_now();
418 double dt = t - prevT;
419
420#ifndef NO_SDL
421 if (ENVIRONMENT_IS_WEB) {
422 SDL_Event event;
423 while (SDL_PollEvent(&event)) {
424 switch(event.type) {
425 case SDL_KEYDOWN:
426 switch (event.key.keysym.sym) {
427 case SDLK_RIGHT: hScroll = 1.f; break;
428 case SDLK_LEFT: hScroll = -1.f; break;
429 case SDLK_DOWN: vScroll = 1.f; break;
430 case SDLK_UP: vScroll = -1.f; break;
431 case SDLK_a: zoom = -1.f; break;
432 case SDLK_z: zoom = 1.f; break;
433 }
434 break;
435 case SDL_KEYUP:
436 switch (event.key.keysym.sym) {
437 case SDLK_RIGHT:
438 case SDLK_LEFT: hScroll = 0.f; break;
439 case SDLK_DOWN:
440 case SDLK_UP: vScroll = 0.f; break;
441 case SDLK_a:
442 case SDLK_z: zoom = 0.f; break;
443 }
444 break;
445 }
446 }
447 }
448#endif
449
450 float iterSize = 1.f / (incrX < incrY ? incrX : incrY);
451 unsigned int minItersBeforeDisplaying = 50 + (int)(iterSize / 10000.f);
452 prevT = t;
453 if (numItersDoneOnCanvas >= minItersBeforeDisplaying)
454 {
455 top += dt * vScroll * incrX / 5.f;

Callers 1

mainFunction · 0.70

Calls 7

wait_tasksFunction · 0.85
memcpyFunction · 0.85
memsetFunction · 0.85
sprintfFunction · 0.85
printfFunction · 0.85
register_tasksFunction · 0.85
emscripten_get_nowFunction · 0.50

Tested by

no test coverage detected