WebGLPipeline

.Renderer.WebGL. WebGLPipeline

`WebGLPipeline`是所有核心移相器管道使用的基类. 它描述了在WebGL中呈现元素的方式.在内部,它处理 编译着色器,创建顶点缓冲区,分配图元拓扑和 绑定顶点属性,所有这些都基于给定的配置数据. 管道通过传入一个 `WebGLPipelineConfig` 对象来配置.请 请参阅此类型的文档,以全面了解配置选项 对你可用. 通常,您不会直接从这个类扩展,而是会扩展 从核心管线之一,如多管线. 每个渲染步骤的管道流如下: 1) onPreRender - 在渲染步骤开始时调用一次 2) onRender - 调用需要渲染的每个场景摄像机(因此每个渲染步骤可以多次调用) 3) 内部流量: 3a) bind (仅当游戏对象正在使用此管道且当前未激活时调用) 3b) onBind (对使用此管道的每个游戏对象调用) 3c) flush (可由游戏对象,内部方法或通过改变管道从外部调用) 4) onPostRender - 在渲染步骤结束时调用一次

Constructor

new WebGLPipeline(config)

Since:
  • 3.0.0
Parameters:
Name Type Description
config Phaser.Types.Renderer.WebGL.WebGLPipelineConfig 此网络总帐管道的配置对象.

Extends

Members

active :boolean

Since:
  • 3.10.0
指示当前管道是否处于活动状态. 切换此属性以启用或禁用管道呈现任何内容.
Type:
  • boolean

bytes :Uint8Array

Since:
  • 3.0.0
Uint8视图到 `vertexData` ArrayBuffer.用于上传顶点缓冲资源到GPU.
Type:
  • Uint8Array

config :Phaser.Types.Renderer.WebGL.WebGLPipelineConfig

Since:
  • 3.50.0
用于创建此管道的配置对象. 将此对象视为 `read only`,因为在创建后更改它不会 以任何方式影响这条管道.但是,它在内部用于克隆 和开机后设置.
Type:

currentRenderTarget :Phaser.Renderer.WebGL.RenderTarget

Since:
  • 3.50.0
对 `WebGlPipeline.RenderTargets` 数组中当前绑定的渲染目标实例的引用.
Type:

currentShader :Phaser.Renderer.WebGL.WebGLShader

Since:
  • 3.50.0
对 `WebGLPipeline.shaders` 数组中当前绑定的WebGLShader实例的引用. 对于许多管道,这是唯一的着色器,所以这是一种快速引用它的方法 数组查找.
Type:

currentUnit :number

Since:
  • 3.50.0
保存最近分配的纹理单元. 将该值视为只读.
Type:
  • number

forceZero :boolean

Since:
  • 3.50.0
有些管道需要强制使用纹理零(像光管道). 在这种情况下,应该设置此属性.
Type:
  • boolean

game :Phaser.Game

Since:
  • 3.0.0
管道绑定到的相位器游戏实例.
Type:

gl :WebGLRenderingContext

Since:
  • 3.0.0
此WebGL管道使用的WebGL上下文.
Type:
  • WebGLRenderingContext

glReset :boolean

Since:
  • 3.53.0
自上次以来,总帐上下文是否已重置为移相器默认值 这条管道被封了?当管道管理器 通常在移交给第三方渲染器(如Spine)后,重置自身. 您应该将此属性视为只读.
Type:
  • boolean

(readonly) hasBooted :boolean

Since:
  • 3.50.0
指示此管道是否已启动. 只有当游戏实例本身以及所有相关联的系统 完全准备好.
Type:
  • boolean

height :number

Since:
  • 3.0.0
当前视口的高度.
Type:
  • number

(readonly) isPostFX :boolean

Since:
  • 3.50.0
指示这是否是一个后外汇管道.
Type:
  • boolean

(nullable) manager :Phaser.Renderer.WebGL.PipelineManager

Since:
  • 3.50.0
对网络总帐管道管理器的引用. 这最初是未定义的,仅在添加此管道时设置 给经理.
Type:

name :string

Since:
  • 3.0.0
管道的名称.用于游戏对象的识别和设置.
Type:
  • string

projectionHeight :number

Since:
  • 3.50.0
投影矩阵的缓存高度.
Type:
  • number

projectionMatrix :Phaser.Math.Matrix4

Since:
  • 3.50.0
投影矩阵,由着色器用作 `uProjectionMatrix` 均匀.
Type:

projectionWidth :number

Since:
  • 3.50.0
投影矩阵的缓存宽度.
Type:
  • number

renderer :Phaser.Renderer.WebGL.WebGLRenderer

Since:
  • 3.0.0
此管道绑定到的WebGL渲染器实例.
Type:

renderTargets :Array.<Phaser.Renderer.WebGL.RenderTarget>

Since:
  • 3.50.0
属于此管道的渲染目标实例的数组.
Type:

shaders :Array.<Phaser.Renderer.WebGL.WebGLShader>

Since:
  • 3.50.0
属于此管道的所有WebGLShader实例的数组. 着色器管理自己的属性和制服,但共享相同的顶点数据缓冲区, 属于这条管道. 着色器是在调用 `setShadersFromConfig` 方法时设置的,这是自动发生的, 但也可以在游戏中的任何时候调用.有关详细信息,请参见方法文档.
Type:

topology :GLenum

Since:
  • 3.0.0
管道将用于提交绘制调用的原始拓扑. 如果配置中没有设置,则默认为GL_TRIANGLES.
Type:
  • GLenum

(readonly) vertexBuffer :WebGLBuffer

Since:
  • 3.0.0
保存顶点数据的网络缓冲区. 从 `vertexData` ArrayBuffer创建.如果在配置中设置了 `vertices` ,则 `STATIC_DRAW` 缓冲区 被创造出来.如果没有,则创建一个 `DYNAMIC_DRAW` 缓冲区.
Type:
  • WebGLBuffer

vertexCapacity :number

Since:
  • 3.0.0
此管道批处理在刷新之前可以容纳的顶点总数. 这默认为 `renderbatchsize * 6` ,其中 `batchSize` 在渲染器游戏配置中定义.
Type:
  • number

vertexCount :number

Since:
  • 3.0.0
Default Value:
  • 0
已添加到管道批次的当前顶点数.
Type:
  • number

(readonly) vertexData :ArrayBuffer

Since:
  • 3.0.0
顶点的原始字节缓冲区. 通过配置对象 `vertices` 属性设置,或生成新的数组缓冲区 大小 `vertexCapacity * vertexSize` .
Type:
  • ArrayBuffer

vertexViewF32 :Float32Array

Since:
  • 3.0.0
包含管道顶点的数组缓冲区的Float32视图.
Type:
  • Float32Array

vertexViewU32 :Uint32Array

Since:
  • 3.0.0
包含管道顶点的数组缓冲区的Uint32视图.
Type:
  • Uint32Array

view :HTMLCanvasElement

Since:
  • 3.0.0
此WebGL管道渲染到的画布.
Type:
  • HTMLCanvasElement

width :number

Since:
  • 3.0.0
当前视口的宽度.
Type:
  • number

Methods

addListener(event, fn, contextopt) → {this}

Since:
  • 3.0.0
Inherited From:
为给定事件添加侦听器.
Parameters:
Name Type Attributes Default Description
event string | symbol 事件名称.
fn function 侦听器函数.
context * <optional>
this 用来调用侦听器的上下文.
Returns:
`this`.
Type
this

batchQuad(gameObject, x0, y0, x1, y1, x2, y2, x3, y3, u0, v0, u1, v1, tintTL, tintTR, tintBL, tintBR, tintEffect, textureopt, unitopt) → {boolean}

Since:
  • 3.50.0
将顶点数据添加到批处理中,如果已满,则进行刷新. 假设有6个顶点,排列如下: ``` 0----3 |\ B| | \ | | \ | | A \| | \ 1----2 ``` 其中tx0/ty0 = 0,tx1/ty1 = 1,tx2/ty2 = 2,tx3/ty3 = 3
Parameters:
Name Type Attributes Default Description
gameObject Phaser.GameObjects.GameObject | null 游戏对象,如果有的话,画这个方块.
x0 number 左上角的x位置.
y0 number 左上角的y位置.
x1 number 左下角的x位置.
y1 number 左下角的y位置.
x2 number 右下角的x位置.
y2 number 右下角的y位置.
x3 number 右上角的x位置.
y3 number 右上角的y位置.
u0 number UV u0值.
v0 number UV v0值.
u1 number UV u1值.
v1 number UV v1值.
tintTL number 左上角的色调颜色值.
tintTR number 右上角的色调颜色值.
tintBL number 左下角的色调颜色值.
tintBR number 右下角的色调颜色值.
tintEffect number | boolean 着色器要使用的色调效果.
texture WebGLTexture <optional>
如果刷新发生,将分配给当前批处理的WebGLTexture.
unit number <optional>
0 纹理需要绑定到的纹理单元.
Returns:
如果此方法导致批处理刷新,则为 `true` ,否则为 `false` .
Type
boolean

batchTri(gameObject, x1, y1, x2, y2, x3, y3, u0, v0, u1, v1, tintTL, tintTR, tintBL, tintEffect, textureopt, unitopt) → {boolean}

Since:
  • 3.50.0
将顶点数据添加到批处理中,如果已满,则进行刷新. 假设有3个顶点,排列如下: ``` 0 |\ | \ | \ | \ | \ 1-----2 ```
Parameters:
Name Type Attributes Default Description
gameObject Phaser.GameObjects.GameObject | null 游戏对象,如果有的话,画这个方块.
x1 number 左下角的x位置.
y1 number 左下角的y位置.
x2 number 右下角的x位置.
y2 number 右下角的y位置.
x3 number 右上角的x位置.
y3 number 右上角的y位置.
u0 number UV u0值.
v0 number UV v0值.
u1 number UV u1值.
v1 number