yzt
2023-05-26 de4278af2fd46705a40bac58ec01122db6b7f3d7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import Color from "../Core/Color.js";
import DeveloperError from "../Core/DeveloperError.js";
import Resource from "../Core/Resource.js";
import ColorMaterialProperty from "./ColorMaterialProperty.js";
import createPropertyDescriptor from "./createPropertyDescriptor.js";
import ImageMaterialProperty from "./ImageMaterialProperty.js";
 
function createMaterialProperty(value) {
  if (value instanceof Color) {
    return new ColorMaterialProperty(value);
  }
 
  if (
    typeof value === "string" ||
    value instanceof Resource ||
    value instanceof HTMLCanvasElement ||
    value instanceof HTMLVideoElement
  ) {
    var result = new ImageMaterialProperty();
    result.image = value;
    return result;
  }
 
  //>>includeStart('debug', pragmas.debug);
  throw new DeveloperError("Unable to infer material type: " + value);
  //>>includeEnd('debug');
}
 
/**
 * @private
 */
function createMaterialPropertyDescriptor(name, configurable) {
  return createPropertyDescriptor(name, configurable, createMaterialProperty);
}
export default createMaterialPropertyDescriptor;