message: EN: TFS#885155: Added createForData() create method for TextureHandle.
diff: @@ -138,7 +138,7 @@ export class TextureHandle implements IDisposable {
  }
  /** Creates a texture for a framebuffer attachment (no data specified). */
  - public static createForAttachment(width: number, height: number, format: GL.Texture.Format, dataType: GL.Texture.DataType /* , isTranslucent: boolean */ ) {
  + public static createForAttachment(width: number, height: number, format: GL.Texture.Format, dataType: GL.Texture.DataType) {
  const glTex: WebGLTexture | undefined = this.createTextureHandle();
  if (undefined === glTex) {
  return undefined;
  @@ -151,12 +151,27 @@ export class TextureHandle implements IDisposable {
  params.height = height;
  params.wrapMode = GL.Texture.WrapMode.ClampToEdge;
  params.wantInterpolate = true;
  - // ###TODO: isTranslucent flag - shouldn't this just be determined based on format?
  return new TextureHandle(glTex, params);
  }
  - // ###TODO: lookup table textures: createForVertexLookup, createForAnimationLookup
  + /** Creates a texture for storing data accessed by shaders. */
  + public static createForData(width: number, height: number, data: Uint8Array) {
  + const glTex: WebGLTexture | undefined = this.createTextureHandle();
  + if (undefined === glTex) {
  + return undefined;
  + }
  +
  + const params: TextureCreateParams = new TextureCreateParams();
  + params.format = GL.Texture.Format.Rgba;
  + params.dataType = GL.Texture.DataType.UnsignedByte;
  + params.width = width;
  + params.height = height;
  + params.rawData = data;
  + params.wrapMode = GL.Texture.WrapMode.ClampToEdge;
  +
  + return new TextureHandle(glTex, params);
  + }
  public dispose() {
  if (undefined !== this._glTexture) {
  