mirror of
https://github.com/photonstorm/phaser
synced 2025-02-20 07:58:31 +00:00
Getting to the point where the 'render' call is just array population, no calculation.
This commit is contained in:
parent
4c60effae4
commit
d19148aec0
1 changed files with 35 additions and 41 deletions
|
@ -382,8 +382,8 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
|
|
||||||
render: function (sprite)
|
render: function (sprite)
|
||||||
{
|
{
|
||||||
var frame = sprite.frame;
|
// var frame = sprite.frame;
|
||||||
var source = frame.source;
|
var source = sprite.frame.source;
|
||||||
|
|
||||||
// Check TextureSource
|
// Check TextureSource
|
||||||
if (this.currentTextureSource !== source)
|
if (this.currentTextureSource !== source)
|
||||||
|
@ -410,13 +410,12 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
this.currentTextureSource = source;
|
this.currentTextureSource = source;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the Texture UVs
|
/*
|
||||||
var uvs = frame.uvs;
|
|
||||||
|
|
||||||
var aX = sprite.anchorX;
|
var aX = sprite.anchorX;
|
||||||
var aY = sprite.anchorY;
|
var aY = sprite.anchorY;
|
||||||
|
|
||||||
var w0, w1, h0, h1;
|
var w0, w1, h0, h1;
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (texture.trim)
|
if (texture.trim)
|
||||||
|
@ -440,6 +439,7 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
w0 = (frame.width) * (1 - aX);
|
w0 = (frame.width) * (1 - aX);
|
||||||
w1 = (frame.width) * -aX;
|
w1 = (frame.width) * -aX;
|
||||||
|
|
||||||
|
@ -447,7 +447,7 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
h1 = frame.height * -aY;
|
h1 = frame.height * -aY;
|
||||||
|
|
||||||
var resolution = source.resolution;
|
var resolution = source.resolution;
|
||||||
var textureIndex = source.glTextureIndex;
|
*/
|
||||||
|
|
||||||
// A Sprite Transform Update would need:
|
// A Sprite Transform Update would need:
|
||||||
// w0, w1, h0, h1, resolution, roundPixels
|
// w0, w1, h0, h1, resolution, roundPixels
|
||||||
|
@ -459,6 +459,7 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
// Perhaps Frame is a requirement for all GameObjects, no matter what they actually render
|
// Perhaps Frame is a requirement for all GameObjects, no matter what they actually render
|
||||||
// So maybe Image, etc should extend a BaseGameObject, which includes Transform, Frame and Color?
|
// So maybe Image, etc should extend a BaseGameObject, which includes Transform, Frame and Color?
|
||||||
|
|
||||||
|
/*
|
||||||
var wt = sprite.transform.world;
|
var wt = sprite.transform.world;
|
||||||
|
|
||||||
var a = wt.a / resolution;
|
var a = wt.a / resolution;
|
||||||
|
@ -467,6 +468,7 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
var d = wt.d / resolution;
|
var d = wt.d / resolution;
|
||||||
var tx = wt.tx;
|
var tx = wt.tx;
|
||||||
var ty = wt.ty;
|
var ty = wt.ty;
|
||||||
|
*/
|
||||||
|
|
||||||
// var cw = frame.cutWidth;
|
// var cw = frame.cutWidth;
|
||||||
// var ch = frame.cutHeight;
|
// var ch = frame.cutHeight;
|
||||||
|
@ -503,21 +505,30 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// These are just views into the same typed array
|
/*
|
||||||
var colors = this.colors;
|
|
||||||
var positions = this.positions;
|
|
||||||
|
|
||||||
if (this.renderer.roundPixels)
|
if (this.renderer.roundPixels)
|
||||||
{
|
{
|
||||||
tx |= 0;
|
tx |= 0;
|
||||||
ty |= 0;
|
ty |= 0;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// These are just views into the same typed array
|
||||||
|
var colors = this.colors;
|
||||||
|
var positions = this.positions;
|
||||||
|
|
||||||
|
var uvs = sprite.frame.uvs;
|
||||||
|
var verts = sprite.transform.glVertextData;
|
||||||
|
|
||||||
|
// var textureIndex = source.glTextureIndex;
|
||||||
|
|
||||||
var i = this.currentBatchSize * this.vertSize;
|
var i = this.currentBatchSize * this.vertSize;
|
||||||
|
|
||||||
// Top Left vert (xy, uv, color)
|
// Top Left vert (xy, uv, color)
|
||||||
positions[i++] = a * w1 + c * h1 + tx;
|
// positions[i++] = a * w1 + c * h1 + tx;
|
||||||
positions[i++] = d * h1 + b * w1 + ty;
|
// positions[i++] = d * h1 + b * w1 + ty;
|
||||||
|
positions[i++] = verts.x0;
|
||||||
|
positions[i++] = verts.y0;
|
||||||
positions[i++] = uvs.x0;
|
positions[i++] = uvs.x0;
|
||||||
positions[i++] = uvs.y0;
|
positions[i++] = uvs.y0;
|
||||||
colors[i++] = sprite.color._glTint.topLeft + (sprite.color.worldAlpha * 255 << 24);
|
colors[i++] = sprite.color._glTint.topLeft + (sprite.color.worldAlpha * 255 << 24);
|
||||||
|
@ -525,8 +536,10 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
// positions[i++] = textureIndex;
|
// positions[i++] = textureIndex;
|
||||||
|
|
||||||
// Top Right vert (xy, uv, color)
|
// Top Right vert (xy, uv, color)
|
||||||
positions[i++] = a * w0 + c * h1 + tx;
|
// positions[i++] = a * w0 + c * h1 + tx;
|
||||||
positions[i++] = d * h1 + b * w0 + ty;
|
// positions[i++] = d * h1 + b * w0 + ty;
|
||||||
|
positions[i++] = verts.x1;
|
||||||
|
positions[i++] = verts.y1;
|
||||||
positions[i++] = uvs.x1;
|
positions[i++] = uvs.x1;
|
||||||
positions[i++] = uvs.y1;
|
positions[i++] = uvs.y1;
|
||||||
colors[i++] = sprite.color._glTint.topRight + (sprite.color.worldAlpha * 255 << 24);
|
colors[i++] = sprite.color._glTint.topRight + (sprite.color.worldAlpha * 255 << 24);
|
||||||
|
@ -534,8 +547,10 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
// positions[i++] = textureIndex;
|
// positions[i++] = textureIndex;
|
||||||
|
|
||||||
// Bottom Right vert (xy, uv, color)
|
// Bottom Right vert (xy, uv, color)
|
||||||
positions[i++] = a * w0 + c * h0 + tx;
|
// positions[i++] = a * w0 + c * h0 + tx;
|
||||||
positions[i++] = d * h0 + b * w0 + ty;
|
// positions[i++] = d * h0 + b * w0 + ty;
|
||||||
|
positions[i++] = verts.x2;
|
||||||
|
positions[i++] = verts.y2;
|
||||||
positions[i++] = uvs.x2;
|
positions[i++] = uvs.x2;
|
||||||
positions[i++] = uvs.y2;
|
positions[i++] = uvs.y2;
|
||||||
colors[i++] = sprite.color._glTint.bottomRight + (sprite.color.worldAlpha * 255 << 24);
|
colors[i++] = sprite.color._glTint.bottomRight + (sprite.color.worldAlpha * 255 << 24);
|
||||||
|
@ -543,8 +558,10 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
// positions[i++] = textureIndex;
|
// positions[i++] = textureIndex;
|
||||||
|
|
||||||
// Bottom Left vert (xy, uv, color)
|
// Bottom Left vert (xy, uv, color)
|
||||||
positions[i++] = a * w1 + c * h0 + tx;
|
// positions[i++] = a * w1 + c * h0 + tx;
|
||||||
positions[i++] = d * h0 + b * w1 + ty;
|
// positions[i++] = d * h0 + b * w1 + ty;
|
||||||
|
positions[i++] = verts.x3;
|
||||||
|
positions[i++] = verts.y3;
|
||||||
positions[i++] = uvs.x3;
|
positions[i++] = uvs.x3;
|
||||||
positions[i++] = uvs.y3;
|
positions[i++] = uvs.y3;
|
||||||
colors[i++] = sprite.color._glTint.bottomLeft + (sprite.color.worldAlpha * 255 << 24);
|
colors[i++] = sprite.color._glTint.bottomLeft + (sprite.color.worldAlpha * 255 << 24);
|
||||||
|
@ -554,29 +571,6 @@ Phaser.Renderer.WebGL.BatchManager.prototype = {
|
||||||
this.sprites[this.currentBatchSize++] = sprite;
|
this.sprites[this.currentBatchSize++] = sprite;
|
||||||
},
|
},
|
||||||
|
|
||||||
addVertexData: function (x, y, uvX, uvY, tint, bgColor, gameObject)
|
|
||||||
{
|
|
||||||
var colors = this.colors;
|
|
||||||
var positions = this.positions;
|
|
||||||
var i = this.currentBatchSize * (this.vertSize / 4);
|
|
||||||
|
|
||||||
// Top Left vert (xy, uv, color)
|
|
||||||
positions[i++] = x;
|
|
||||||
positions[i++] = y;
|
|
||||||
positions[i++] = uvX;
|
|
||||||
positions[i++] = uvY;
|
|
||||||
|
|
||||||
// positions[i++] = textureIndex;
|
|
||||||
|
|
||||||
colors[i++] = tint;
|
|
||||||
colors[i++] = bgColor;
|
|
||||||
|
|
||||||
if (gameObject)
|
|
||||||
{
|
|
||||||
this.sprites[this.currentBatchSize++] = gameObject;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
flush: function ()
|
flush: function ()
|
||||||
{
|
{
|
||||||
// If the batch is length 0 then return as there is nothing to draw
|
// If the batch is length 0 then return as there is nothing to draw
|
||||||
|
|
Loading…
Add table
Reference in a new issue