Buffer

new SuperMap3D.Buffer()

内存缓冲区

Methods

staticSuperMap3D.Buffer.createIndexBuffer()IndexBuffer

创建索引buffer,其中包含 GPU 控制内存中的键入索引。 索引buffer可以附加到顶点数组,以选择渲染Context的顶点。Draw 可以使用整个索引buffer或由偏移量和计数定义的索引buffer的子集来呈现。
Name Type Description
options.context Context 创建buffer的上下文。
options.typedArray ArrayBufferView optional 类型数组,包含要复制到buffer的数据。
options.sizeInBytes Number optional 以字节为单位定义buffer大小的数字。 如果未给出 options.typedArray 则必须填写。
options.usage BufferUsage 指定buffer的预期使用模式。在某些 GL 实现中,这可能会严重影响性能。参见 BufferUsage
options.indexDatatype IndexDatatype buffer中索引的数据类型。
Returns:
索引buffer,准备连接到顶点数组。
Throws:
  • DeveloperError : 必须指定任意一个选项。typearray或options.sizeInBytes,但不是两者都有。
  • DeveloperError : IndexDatatype.UNSIGNED_INT 需要 OES_element_index_uint,而本系统不支持 OES_element_index_uint。请检查 context.elementIndexUint。
  • DeveloperError : 以字节为单位的大小必须大于零。
  • DeveloperError : 无效使用。
  • DeveloperError : 无效的索引数据类型。
Examples:
// Example 1. Create a stream index buffer of unsigned shorts that is
// 16 bytes in size.
var buffer = Buffer.createIndexBuffer({
    context : context,
    sizeInBytes : 16,
    usage : BufferUsage.STREAM_DRAW,
    indexDatatype : IndexDatatype.UNSIGNED_SHORT
});
// Example 2. Create a static index buffer containing three unsigned shorts.
var buffer = Buffer.createIndexBuffer({
    context : context,
    typedArray : new Uint16Array([0, 1, 2]),
    usage : BufferUsage.STATIC_DRAW,
    indexDatatype : IndexDatatype.UNSIGNED_SHORT
});
See:

staticSuperMap3D.Buffer.createVertexBuffer()VertexBuffer

创建顶点buffer,其中包含 GPU 控制内存中未键入的顶点数据。 顶点数组通过解释一个或多个顶点buffer中的原始数据,定义顶点的实际构成,如位置、法线、纹理坐标等。
Name Type Description
options.context Context 创建buffer的上下文。
options.typedArray ArrayBufferView optional 类型数组,包含要复制到buffer的数据。
options.sizeInBytes Number optional 一个定义buffer大小的Number类型值,以字节为单位。如果未给出options.typedArray,则必须提供。
options.usage BufferUsage 指定buffer的预期使用模式。在某些 GL 实现中,这可能会严重影响性能。参见 BufferUsage
Returns:
顶点buffer,准备连接到顶点数组。
Throws:
Examples:
// Example 1. Create a dynamic vertex buffer 16 bytes in size.
var buffer = Buffer.createVertexBuffer({
    context : context,
    sizeInBytes : 16,
    usage : BufferUsage.DYNAMIC_DRAW
});
// Example 2. Create a dynamic vertex buffer from three floating-point values.
// The data copied to the vertex buffer is considered raw bytes until it is
// interpreted as vertices using a vertex array.
var positionBuffer = buffer.createVertexBuffer({
    context : context,
    typedArray : new Float32Array([0, 0, 0]),
    usage : BufferUsage.STATIC_DRAW
});
See: