How to use the @bentley/imodeljs-frontend.IModelApp.tileAdmin function in @bentley/imodeljs-frontend

To help you get started, we’ve selected a few @bentley/imodeljs-frontend examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github imodeljs / imodeljs / integration-tests / core / src / frontend / TestViewport.ts View on Github external
public async waitForAllTilesToRender(): Promise {
    this.renderFrame();

    // NB: ToolAdmin loop is not turned on, and this viewport is not tracked by ViewManager - must manually pump tile request scheduler.
    IModelApp.tileAdmin.process();

    if (this.areAllTilesLoaded)
      return Promise.resolve();

    await new Promise((resolve: any) => setTimeout(resolve, 100));

    // This viewport isn't added to ViewManager, so it won't be notified (and have its scene invalidated) when new tiles become loaded.
    this.sync.invalidateScene();
    return this.waitForAllTilesToRender();
  }
github imodeljs / imodeljs / test-apps / perf-test-app / src / frontend / TestViewport.ts View on Github external
public async waitForAllTilesToRender(): Promise {
    this.renderFrame();

    // NB: ToolAdmin loop is not turned on, and this vieport is not tracked by ViewManager - must manually pump tile request scheduler.
    IModelApp.tileAdmin.process();

    if (this.areAllTilesLoaded)
      return Promise.resolve();

    await new Promise((resolve: any) => setTimeout(resolve, 100));

    // This viewport isn't added to ViewManager, so it won't be notified (and have its scene invalidated) when new tiles become loaded.
    this.sync.invalidateScene();
    return this.waitForAllTilesToRender();
  }
github imodeljs / imodeljs / test-apps / display-performance-test-app / src / frontend / DisplayPerformanceTestApp.ts View on Github external
const timer = new StopWatch(undefined, true);
  let haveNewTiles = true;
  while (haveNewTiles) {
    theViewport!.sync.setRedrawPending;
    theViewport!.sync.invalidateScene();
    theViewport!.renderFrame();

    // The scene is ready when (1) all required TileTree roots have been created and (2) all required tiles have finished loading
    const sceneContext = theViewport!.createSceneContext();
    activeViewState.viewState!.createScene(sceneContext);
    sceneContext.requestMissingTiles();
    haveNewTiles = !(activeViewState.viewState!.areAllTileTreesLoaded) || sceneContext.hasMissingTiles || 0 < sceneContext.missingTiles.size;

    // NB: The viewport is NOT added to the ViewManager's render loop, therefore we must manually pump the tile request scheduler...
    if (haveNewTiles)
      IModelApp.tileAdmin.process();

    // debugPrint(haveNewTiles ? "Awaiting tile loads..." : "...All tiles loaded.");

    await resolveAfterXMilSeconds(100);
  }
  theViewport!.continuousRendering = false;
  theViewport!.renderFrame();
  timer.stop();
  curTileLoadingTime = timer.current.milliseconds;
}
github imodeljs / imodeljs / core / frontend-devtools / src / widgets / TileStatisticsTracker.ts View on Github external
private updateMaxActive(value: number): void {
    IModelApp.tileAdmin.maxActiveRequests = value;
  }
github imodeljs / imodeljs / core / frontend-devtools / src / widgets / TileStatisticsTracker.ts View on Github external
private addMaxActive(parent: HTMLElement): void {
    const div = document.createElement("div");

    const label = document.createElement("label") as HTMLLabelElement;
    label.style.display = "inline";
    label.htmlFor = "maxActiveRequests";
    label.innerText = "Max Active Requests: ";
    div.appendChild(label);

    createNumericInput({
      parent: div,
      id: "maxActiveRequests",
      display: "inline",
      min: 0,
      step: 1,
      value: IModelApp.tileAdmin.maxActiveRequests,
      handler: (value, _input) => this.updateMaxActive(value),
    });

    parent.appendChild(div);
  }