Source: filters/BaseTextureFilter.js

import { BaseFilter } from "./BaseFilter";
import { FilterTextureTransformProps } from "../data/props/FilterTextureTransformProps";

/**
 * Base Texture filter
 * @extends {BaseFilter}
 */
export class BaseTextureFilter extends BaseFilter {
  /**
   * Creates an instance of BaseTextureFilter.
   * @constructor
   * @param {number} texture
   * @param {number} extendedValue
   * @param {number} translateX
   * @param {number} translateY
   * @param {number} cropX
   * @param {number} cropY
   * @param {number} cropWidth
   * @param {number} cropHeight
   */
  constructor(
    texture,
    extendedValue,
    translateX,
    translateY,
    cropX,
    cropY,
    cropWidth,
    cropHeight
  ) {
    super(extendedValue);

    this.textureTransform = new FilterTextureTransformProps(
      this,
      texture,
      translateX,
      translateY,
      cropX,
      cropY,
      cropWidth,
      cropHeight
    );
  }
}

// prettier-ignore
BaseTextureFilter.$createGLSL = (core) => "" +
  "vec4 " +
    "mskCl=texture(" +
      "uFTex," +
      "mod(vec2(vl[1],vl[2])+vTUv,1.)*vec2(vl[5]-vl[3],vl[6]-vl[4])" +
    ");" +
  core;