How to use the @bentley/imodeljs-frontend.cssPixelsToDevicePixels 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 / test-apps / display-performance-test-app / src / frontend / DisplayPerformanceTestApp.ts View on Github external
function getRowData(finalFrameTimings: Array>, configs: DefaultConfigs, pixSelectStr?: string): Map {
  const rowData = new Map();
  rowData.set("iModel", configs.iModelName!);
  rowData.set("View", configs.viewName!);
  const w = cssPixelsToDevicePixels(configs.view!.width);
  const h = cssPixelsToDevicePixels(configs.view!.height);
  rowData.set("Screen Size", w + "X" + h);
  rowData.set("Skip & Time Renders", configs.numRendersToSkip + " & " + configs.numRendersToTime);
  rowData.set("Display Style", activeViewState.viewState!.displayStyle.name);
  rowData.set("Render Mode", getRenderMode());
  rowData.set("View Flags", getViewFlagsString() !== "" ? " " + getViewFlagsString() : "");
  rowData.set("Render Options", getRenderOpts() !== "" ? " " + getRenderOpts() : "");
  rowData.set("Tile Props", getTileProps() !== "" ? " " + getTileProps() : "");
  rowData.set("Bkg Map Props", getBackgroundMapProps() !== "" ? " " + getBackgroundMapProps() : "");
  if (pixSelectStr) rowData.set("ReadPixels Selector", " " + pixSelectStr);
  rowData.set("Tile Loading Time", curTileLoadingTime);
  rowData.set("Test Name", getTestName(configs));
  rowData.set("Browser", getBrowserName(IModelApp.queryRenderCompatibility().userAgent));

  // Calculate average timings
  if (pixSelectStr) { // timing read pixels
    let gpuTime = 0;
github imodeljs / imodeljs / test-apps / display-performance-test-app / src / frontend / DisplayPerformanceTestApp.ts View on Github external
async function createReadPixelsImages(testConfig: DefaultConfigs, pix: Pixel.Selector, pixStr: string) {
  const canvas = theViewport !== undefined ? theViewport.readImageToCanvas() : undefined;
  if (canvas !== undefined) {
    const ctx = canvas.getContext("2d");
    if (ctx) {
      const cssWidth = testConfig.view!.width;
      const cssHeight = testConfig.view!.height;
      const cssRect = new ViewRect(0, 0, cssWidth, cssHeight);

      const imgWidth = cssPixelsToDevicePixels(cssWidth);
      const imgHeight = cssPixelsToDevicePixels(cssHeight);

      ctx.clearRect(0, 0, canvas.width, canvas.height);
      const elemIdImgData = (pix & Pixel.Selector.Feature) ? ctx.createImageData(imgWidth, imgHeight) : undefined;
      const depthImgData = (pix & Pixel.Selector.GeometryAndDistance) ? ctx.createImageData(imgWidth, imgHeight) : undefined;
      const typeImgData = (pix & Pixel.Selector.GeometryAndDistance) ? ctx.createImageData(imgWidth, imgHeight) : undefined;

      theViewport!.readPixels(cssRect, pix, (pixels: any) => {
        if (undefined === pixels)
          return;
        for (let y = 0; y < imgHeight; ++y) {
          for (let x = 0; x < imgWidth; ++x) {
            const index = (x * 4) + (y * 4 * imgWidth);
            const pixel = pixels.getPixel(x, y);
            // // RGB for element ID
            if (elemIdImgData !== undefined) {
              const elemId = Id64.getLowerUint32(pixel.elementId ? pixel.elementId : "");
github imodeljs / imodeljs / test-apps / display-performance-test-app / src / frontend / DisplayPerformanceTestApp.ts View on Github external
function getRowData(finalFrameTimings: Array>, configs: DefaultConfigs, pixSelectStr?: string): Map {
  const rowData = new Map();
  rowData.set("iModel", configs.iModelName!);
  rowData.set("View", configs.viewName!);
  const w = cssPixelsToDevicePixels(configs.view!.width);
  const h = cssPixelsToDevicePixels(configs.view!.height);
  rowData.set("Screen Size", w + "X" + h);
  rowData.set("Skip & Time Renders", configs.numRendersToSkip + " & " + configs.numRendersToTime);
  rowData.set("Display Style", activeViewState.viewState!.displayStyle.name);
  rowData.set("Render Mode", getRenderMode());
  rowData.set("View Flags", getViewFlagsString() !== "" ? " " + getViewFlagsString() : "");
  rowData.set("Render Options", getRenderOpts() !== "" ? " " + getRenderOpts() : "");
  rowData.set("Tile Props", getTileProps() !== "" ? " " + getTileProps() : "");
  rowData.set("Bkg Map Props", getBackgroundMapProps() !== "" ? " " + getBackgroundMapProps() : "");
  if (pixSelectStr) rowData.set("ReadPixels Selector", " " + pixSelectStr);
  rowData.set("Tile Loading Time", curTileLoadingTime);
  rowData.set("Test Name", getTestName(configs));
  rowData.set("Browser", getBrowserName(IModelApp.queryRenderCompatibility().userAgent));

  // Calculate average timings
  if (pixSelectStr) { // timing read pixels
github imodeljs / imodeljs / test-apps / display-performance-test-app / src / frontend / DisplayPerformanceTestApp.ts View on Github external
async function createReadPixelsImages(testConfig: DefaultConfigs, pix: Pixel.Selector, pixStr: string) {
  const canvas = theViewport !== undefined ? theViewport.readImageToCanvas() : undefined;
  if (canvas !== undefined) {
    const ctx = canvas.getContext("2d");
    if (ctx) {
      const cssWidth = testConfig.view!.width;
      const cssHeight = testConfig.view!.height;
      const cssRect = new ViewRect(0, 0, cssWidth, cssHeight);

      const imgWidth = cssPixelsToDevicePixels(cssWidth);
      const imgHeight = cssPixelsToDevicePixels(cssHeight);

      ctx.clearRect(0, 0, canvas.width, canvas.height);
      const elemIdImgData = (pix & Pixel.Selector.Feature) ? ctx.createImageData(imgWidth, imgHeight) : undefined;
      const depthImgData = (pix & Pixel.Selector.GeometryAndDistance) ? ctx.createImageData(imgWidth, imgHeight) : undefined;
      const typeImgData = (pix & Pixel.Selector.GeometryAndDistance) ? ctx.createImageData(imgWidth, imgHeight) : undefined;

      theViewport!.readPixels(cssRect, pix, (pixels: any) => {
        if (undefined === pixels)
          return;
        for (let y = 0; y < imgHeight; ++y) {
          for (let x = 0; x < imgWidth; ++x) {
            const index = (x * 4) + (y * 4 * imgWidth);
            const pixel = pixels.getPixel(x, y);
            // // RGB for element ID
            if (elemIdImgData !== undefined) {
github imodeljs / imodeljs / integration-tests / core / src / frontend / TestViewport.ts View on Github external
vp.readPixels(rect, Pixel.Selector.All, (pixels: Pixel.Buffer | undefined) => {
    if (undefined === pixels)
      return;

    const sRect = rect.clone();
    sRect.left = cssPixelsToDevicePixels(sRect.left);
    sRect.right = cssPixelsToDevicePixels(sRect.right);
    sRect.bottom = cssPixelsToDevicePixels(sRect.bottom);
    sRect.top = cssPixelsToDevicePixels(sRect.top);

    for (let x = sRect.left; x < sRect.right; x++)
      for (let y = sRect.top; y < sRect.bottom; y++)
        set.insert(pixels.getPixel(x, y));
  }, excludeNonLocatable);
github imodeljs / imodeljs / integration-tests / core / src / frontend / TestViewport.ts View on Github external
vp.readPixels(rect, Pixel.Selector.All, (pixels: Pixel.Buffer | undefined) => {
    if (undefined === pixels)
      return;

    const sRect = rect.clone();
    sRect.left = cssPixelsToDevicePixels(sRect.left);
    sRect.right = cssPixelsToDevicePixels(sRect.right);
    sRect.bottom = cssPixelsToDevicePixels(sRect.bottom);
    sRect.top = cssPixelsToDevicePixels(sRect.top);

    for (let x = sRect.left; x < sRect.right; x++)
      for (let y = sRect.top; y < sRect.bottom; y++)
        set.insert(pixels.getPixel(x, y));
  }, excludeNonLocatable);
github imodeljs / imodeljs / integration-tests / core / src / frontend / TestViewport.ts View on Github external
vp.readPixels(rect, Pixel.Selector.All, (pixels: Pixel.Buffer | undefined) => {
    if (undefined === pixels)
      return;

    const sRect = rect.clone();
    sRect.left = cssPixelsToDevicePixels(sRect.left);
    sRect.right = cssPixelsToDevicePixels(sRect.right);
    sRect.bottom = cssPixelsToDevicePixels(sRect.bottom);
    sRect.top = cssPixelsToDevicePixels(sRect.top);

    for (let x = sRect.left; x < sRect.right; x++)
      for (let y = sRect.top; y < sRect.bottom; y++)
        set.insert(pixels.getPixel(x, y));
  }, excludeNonLocatable);
github imodeljs / imodeljs / integration-tests / core / src / frontend / TestViewport.ts View on Github external
vp.readPixels(rect, Pixel.Selector.All, (pixels: Pixel.Buffer | undefined) => {
    if (undefined === pixels)
      return;

    const sRect = rect.clone();
    sRect.left = cssPixelsToDevicePixels(sRect.left);
    sRect.right = cssPixelsToDevicePixels(sRect.right);
    sRect.bottom = cssPixelsToDevicePixels(sRect.bottom);
    sRect.top = cssPixelsToDevicePixels(sRect.top);

    for (let x = sRect.left; x < sRect.right; x++)
      for (let y = sRect.top; y < sRect.bottom; y++)
        set.insert(pixels.getPixel(x, y));
  }, excludeNonLocatable);