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