Texture

new SuperMap3D.Texture()

Members

sampler : Object

采样此纹理时要使用的采样器。通过调用Sampler创建采样器。如果未指定此参数,则使用默认采样器。默认采样器在两个方向上都夹住纹理坐标,对放大和缩小都使用线性过滤,并使用最大各向异性为1.0。

Methods

staticSuperMap3D.Texture.fromFramebuffer(options)Texture

创建纹理,并将framebuffer的子影像复制到纹理中。 在不带参数的情况下,纹理的宽度和高度与framebuffer相同,并包含framebuffer的内容。
Name Type Description
options Object 具有以下属性的对象:
Name Type Default Description
context Context 创建纹理的上下文。
pixelFormat PixelFormat PixelFormat.RGB optional 纹理的内部像素格式。
framebufferXOffset Number 0 optional framebuffer x 方向上的偏移量,复制从这里开始。
framebufferYOffset Number 0 optional framebuffer y 方向上的偏移量,复制从这里开始。
width Number canvas.clientWidth optional 纹理的宽度(以象素为单位)。
height Number canvas.clientHeight optional 纹理的高度(以字节为单位)。
framebuffer Framebuffer defaultFramebuffer optional 创建纹理的framebuffer 。如果未指定此参数,则使用默认framebuffer 。
Returns:
包含framebuffer内容的纹理。
Throws:
  • DeveloperError : pixelFormat无效。
  • DeveloperError : pixelFormat 不能是 DEPTH_COMPONENT、DEPTH_STENCIL 或压缩格式。
  • DeveloperError : framebufferXOffset 必须大于或等于零。
  • DeveloperError : framebufferYOffset 必须大于或等于零。
  • DeveloperError : framebufferXOffset + width 必须小于或等于 canvas.clientWidth。
  • DeveloperError : framebufferYOffset + height 必须小于或等于 canvas.clientHeight。
Example:
// Create a texture with the contents of the framebuffer.
var t = Texture.fromFramebuffer({
    context : context
});
See:
  • Sampler

copyFrom(source, xOffset, yOffset)

从源ImageDataImageCanvasVideo,或者具有width、height和arrayBufferView属性的对象,将新的影像数据复制到这个纹理中。
Name Type Default Description
source Object ImageDataImageCanvasVideo,或者一个具有宽度、高度和arrayBufferView属性的对象。
xOffset Number 0 optional 要复制到纹理中的 x 方向偏移量。
yOffset Number 0 optional 要复制到纹理中的 y 方向偏移量。
Throws:
  • DeveloperError : 当纹理像素格式为 DEPTH_COMPONENT 或 DEPTH_STENCIL 时,无法调用 copyFrom。
  • DeveloperError : 无法使用压缩纹理像素格式调用 copyFrom。
  • DeveloperError : xOffset 必须大于或等于零。
  • DeveloperError : yOffset 必须大于或等于零。
  • DeveloperError : xOffset + source.width 必须小于或等于 width。
  • DeveloperError : yOffset + source.height 必须小于或等于 height。
  • DeveloperError : 此纹理已被销毁,即 destroy() 被调用。
Example:
texture.copyFrom({
  width : 1,
  height : 1,
  arrayBufferView : new Uint8Array([255, 0, 0, 255])
});

copyFromFramebuffer(xOffset, yOffset, framebufferXOffset, framebufferYOffset, width, height)

Name Type Default Description
xOffset Number 0 optional 要复制到纹理中的 x 方向偏移量。
yOffset Number 0 optional 要复制到纹理中的 Y 方向偏移量。
framebufferXOffset Number 0 optional 可选的
framebufferYOffset Number 0 optional 可选的
width Number width optional 可选的
height Number height optional 可选的
Throws:
  • DeveloperError : 当纹理像素格式为 DEPTH_COMPONENT 或 DEPTH_STENCIL 时,无法调用 copyFromFramebuffer。
  • DeveloperError : 当纹理像素数据类型为 FLOAT 时,无法调用 copyFromFramebuffer。
  • DeveloperError : 无法使用压缩纹理像素格式调用 copyFrom。
  • DeveloperError : 此纹理已被销毁,即 destroy() 被调用。
  • DeveloperError : xOffset 必须大于或等于零。
  • DeveloperError : yOffset 必须大于或等于零。
  • DeveloperError : framebufferXOffset 必须大于或等于零。
  • DeveloperError : framebufferYOffset 必须大于或等于零。
  • DeveloperError : xOffset + width 必须小于或等于 width。
  • DeveloperError : yOffset + height 必须小于或等于 height。

generateMipmap(hint)

Name Type Default Description
hint MipmapHint MipmapHint.DONT_CARE optional 可选的。
Throws:
  • DeveloperError : 当纹理像素格式为 DEPTH_COMPONENT 或 DEPTH_STENCIL 时,无法调用 generateMipmap。
  • DeveloperError : 当纹理像素格式为压缩格式时,无法调用 generateMipmap。
  • DeveloperError : 提示无效。
  • DeveloperError : 该纹理的宽度必须是 2 的幂次,才能调用 generateMipmap()。
  • DeveloperError : 该纹理的高度必须是 2 的幂次,才能调用 generateMipmap()。
  • DeveloperError : 此纹理已被销毁,即 destroy() 被调用。