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;
|