cesium
Version:
Cesium is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.
297 lines (271 loc) • 11.7 kB
JavaScript
/*global define*/
define([
'../Core/defineProperties'
], function(
defineProperties) {
'use strict';
/**
* @private
*/
var ContextLimits = {
_maximumCombinedTextureImageUnits : 0,
_maximumCubeMapSize : 0,
_maximumFragmentUniformVectors : 0,
_maximumTextureImageUnits : 0,
_maximumRenderbufferSize : 0,
_maximumTextureSize : 0,
_maximumVaryingVectors : 0,
_maximumVertexAttributes : 0,
_maximumVertexTextureImageUnits : 0,
_maximumVertexUniformVectors : 0,
_minimumAliasedLineWidth : 0,
_maximumAliasedLineWidth : 0,
_minimumAliasedPointSize : 0,
_maximumAliasedPointSize : 0,
_maximumViewportWidth : 0,
_maximumViewportHeight : 0,
_maximumTextureFilterAnisotropy : 0,
_maximumDrawBuffers : 0,
_maximumColorAttachments : 0,
_highpFloatSupported: false,
_highpIntSupported: false
};
defineProperties(ContextLimits, {
/**
* The maximum number of texture units that can be used from the vertex and fragment
* shader with this WebGL implementation. The minimum is eight. If both shaders access the
* same texture unit, this counts as two texture units.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_COMBINED_TEXTURE_IMAGE_UNITS</code>.
*/
maximumCombinedTextureImageUnits : {
get: function () {
return ContextLimits._maximumCombinedTextureImageUnits;
}
},
/**
* The approximate maximum cube mape width and height supported by this WebGL implementation.
* The minimum is 16, but most desktop and laptop implementations will support much larger sizes like 8,192.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_CUBE_MAP_TEXTURE_SIZE</code>.
*/
maximumCubeMapSize : {
get: function () {
return ContextLimits._maximumCubeMapSize;
}
},
/**
* The maximum number of <code>vec4</code>, <code>ivec4</code>, and <code>bvec4</code>
* uniforms that can be used by a fragment shader with this WebGL implementation. The minimum is 16.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_FRAGMENT_UNIFORM_VECTORS</code>.
*/
maximumFragmentUniformVectors : {
get: function () {
return ContextLimits._maximumFragmentUniformVectors;
}
},
/**
* The maximum number of texture units that can be used from the fragment shader with this WebGL implementation. The minimum is eight.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_TEXTURE_IMAGE_UNITS</code>.
*/
maximumTextureImageUnits : {
get: function () {
return ContextLimits._maximumTextureImageUnits;
}
},
/**
* The maximum renderbuffer width and height supported by this WebGL implementation.
* The minimum is 16, but most desktop and laptop implementations will support much larger sizes like 8,192.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_RENDERBUFFER_SIZE</code>.
*/
maximumRenderbufferSize : {
get: function () {
return ContextLimits._maximumRenderbufferSize;
}
},
/**
* The approximate maximum texture width and height supported by this WebGL implementation.
* The minimum is 64, but most desktop and laptop implementations will support much larger sizes like 8,192.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_TEXTURE_SIZE</code>.
*/
maximumTextureSize : {
get: function () {
return ContextLimits._maximumTextureSize;
}
},
/**
* The maximum number of <code>vec4</code> varying variables supported by this WebGL implementation.
* The minimum is eight. Matrices and arrays count as multiple <code>vec4</code>s.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_VARYING_VECTORS</code>.
*/
maximumVaryingVectors : {
get: function () {
return ContextLimits._maximumVaryingVectors;
}
},
/**
* The maximum number of <code>vec4</code> vertex attributes supported by this WebGL implementation. The minimum is eight.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_VERTEX_ATTRIBS</code>.
*/
maximumVertexAttributes : {
get: function () {
return ContextLimits._maximumVertexAttributes;
}
},
/**
* The maximum number of texture units that can be used from the vertex shader with this WebGL implementation.
* The minimum is zero, which means the GL does not support vertex texture fetch.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_VERTEX_TEXTURE_IMAGE_UNITS</code>.
*/
maximumVertexTextureImageUnits : {
get: function () {
return ContextLimits._maximumVertexTextureImageUnits;
}
},
/**
* The maximum number of <code>vec4</code>, <code>ivec4</code>, and <code>bvec4</code>
* uniforms that can be used by a vertex shader with this WebGL implementation. The minimum is 16.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_VERTEX_UNIFORM_VECTORS</code>.
*/
maximumVertexUniformVectors : {
get: function () {
return ContextLimits._maximumVertexUniformVectors;
}
},
/**
* The minimum aliased line width, in pixels, supported by this WebGL implementation. It will be at most one.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>ALIASED_LINE_WIDTH_RANGE</code>.
*/
minimumAliasedLineWidth : {
get: function () {
return ContextLimits._minimumAliasedLineWidth;
}
},
/**
* The maximum aliased line width, in pixels, supported by this WebGL implementation. It will be at least one.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>ALIASED_LINE_WIDTH_RANGE</code>.
*/
maximumAliasedLineWidth : {
get: function () {
return ContextLimits._maximumAliasedLineWidth;
}
},
/**
* The minimum aliased point size, in pixels, supported by this WebGL implementation. It will be at most one.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>ALIASED_POINT_SIZE_RANGE</code>.
*/
minimumAliasedPointSize : {
get: function () {
return ContextLimits._minimumAliasedPointSize;
}
},
/**
* The maximum aliased point size, in pixels, supported by this WebGL implementation. It will be at least one.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>ALIASED_POINT_SIZE_RANGE</code>.
*/
maximumAliasedPointSize : {
get: function () {
return ContextLimits._maximumAliasedPointSize;
}
},
/**
* The maximum supported width of the viewport. It will be at least as large as the visible width of the associated canvas.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_VIEWPORT_DIMS</code>.
*/
maximumViewportWidth : {
get: function () {
return ContextLimits._maximumViewportWidth;
}
},
/**
* The maximum supported height of the viewport. It will be at least as large as the visible height of the associated canvas.
* @memberof ContextLimits
* @type {Number}
* @see {@link https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml|glGet} with <code>MAX_VIEWPORT_DIMS</code>.
*/
maximumViewportHeight : {
get: function () {
return ContextLimits._maximumViewportHeight;
}
},
/**
* The maximum degree of anisotropy for texture filtering
* @memberof ContextLimits
* @type {Number}
*/
maximumTextureFilterAnisotropy : {
get: function () {
return ContextLimits._maximumTextureFilterAnisotropy;
}
},
/**
* The maximum number of simultaneous outputs that may be written in a fragment shader.
* @memberof ContextLimits
* @type {Number}
*/
maximumDrawBuffers : {
get: function () {
return ContextLimits._maximumDrawBuffers;
}
},
/**
* The maximum number of color attachments supported.
* @memberof ContextLimits
* @type {Number}
*/
maximumColorAttachments : {
get: function () {
return ContextLimits._maximumColorAttachments;
}
},
/**
* High precision float supported (<code>highp</code>) in fragment shaders.
* @memberof ContextLimits
* @type {Boolean}
*/
highpFloatSupported : {
get: function () {
return ContextLimits._highpFloatSupported;
}
},
/**
* High precision int supported (<code>highp</code>) in fragment shaders.
* @memberof ContextLimits
* @type {Boolean}
*/
highpIntSupported : {
get: function () {
return ContextLimits._highpIntSupported;
}
}
});
return ContextLimits;
});