Preparing search index...

    Class ProceduralTextureProvider

    Provides a texture that can be written to or read from. Can be accessed using Texture.control on a Procedural Texture.

    // @input Component.Image image

    var width = 64;
    var height = 64;
    var channels = 4; // RGBA

    var newTex = ProceduralTextureProvider.createWithFormat(width, height, TextureFormat.RGBA8Unorm);
    var newData = new Uint8Array(width * height * channels);

    for (var y=0; y<height; y++) {
    for (var x=0; x<width; x++) {
    // Calculate index
    var index = (y * width + x) * channels;

    // Set R, G, B, A
    newData[index] = (x / (width-1)) * 255;
    newData[index+1] = (y / (height-1)) * 255;
    newData[index+2] = 0;
    newData[index+3] = 255;
    }
    }

    newTex.control.setPixels(0, 0, width, height, newData);
    script.image.mainPass.baseTex = newTex;

    Hierarchy (View Summary)

    Index

    Methods

    • Creates a new, blank Texture Provider using the passed in dimensions and Colorspace. The ProceduralTextureProvider can be accessed through the control property on the returned texture.

      Parameters

      Returns Texture

    • Creates a new Procedural Texture based on the passed in texture. The ProceduralTextureProvider can be accessed through the control property on the returned texture.

      Parameters

      Returns Texture

    • Creates a new provider stored with the specifiedformat.

      Parameters

      Returns Texture

    • Returns a Promise that resolves once this Provider has finished loading its resource.

      Returns Promise<void>

      If the Provider is already loaded when ensureLoaded() is called, the returned Promise resolves immediately. Otherwise it resolves once loading completes.

      Completion is determined by the Provider's load status (see Provider.getLoadStatus). Some Providers only become loaded once supporting runtime data is available — for example, a Provider whose resource depends on tracking will not report loaded until the relevant tracking data has arrived — so the returned Promise stays pending until that data is produced.

      This method is useful when Lens script needs to await a Provider before reading its data — for example, waiting for a remote-asset Provider to finish downloading before sampling it.

      Lens Scripting Version 370

      Fetch a Texture at runtime via RemoteMediaModule and wait for its Provider to finish loading before using it:

      const internetModule = require("LensStudio:InternetModule");
      const remoteMediaModule = require("LensStudio:RemoteMediaModule");

      function loadImageTexture(url) {
      const resource = internetModule.makeResourceFromUrl(url);
      return new Promise((resolve, reject) => {
      remoteMediaModule.loadResourceAsImageTexture(resource, resolve, reject);
      });
      }

      const texture = await loadImageTexture("https://example.com/image.png");

      // Wait until the fetched Texture's Provider has finished loading before using it.
      await texture.control.ensureLoaded();
      print("Texture ready, loadStatus: " + texture.control.getLoadStatus());
    • Returns the texture's aspect ratio, which is calculated as width / height.

      Returns number

    • Exposes User Data

      Returns a Uint8 array containing the pixel values in a region of the texture. The region starts at the pixel coordinate x, y, and extends rightward by width and upward by height. Values returned are integers ranging from 0 to 255

      Parameters

      • x: number
      • y: number
      • width: number
      • height: number
      • data: Uint8Array

      Returns void

    • Exposes User Data

      Returns a Float32 array containing the pixel values in a region of the texture. The region starts at the pixel coordinates x, y, and extends rightward by width and upward by height.

      Parameters

      • x: number
      • y: number
      • width: number
      • height: number
      • data: Float32Array

      Returns void

      Lens Scripting Version 196

    • Returns the fully-qualified JavaScript type name for this class (for example, "Component.Camera"). This is a static accessor (no instance required) and returns the same value as the instance getTypeName().

      Returns string

    • Returns the width of the texture in pixels.

      Returns number

    • Returns true if the object matches or derives from the passed in type.

      Parameters

      • type: string

      Returns boolean

    • Returns true if this object is the same as other. Useful for checking if two references point to the same thing.

      Parameters

      Returns boolean

    • Sets a region of pixels on the texture. The region starts at the pixel coordinates x, y, and extends rightward by width and upward by height. Uses the values of the passed in Uint8Array data, which should be integer values ranging from 0 to 255.

      When used with createWithFormat, use TextureFormat.RGBA8Unorm. This is the corresponding format for Uint8Array.

      Parameters

      • x: number
      • y: number
      • width: number
      • height: number
      • data: Uint8Array

      Returns void

    • Sets a region of pixels on the texture. The region starts at the pixel coordinates x, y, and extends rightward by width and upward by height. Uses the values of the passed in Float32Array data.

      Parameters

      • x: number
      • y: number
      • width: number
      • height: number
      • data: Float32Array

      Returns void

      Lens Scripting Version 196