mirror of
https://github.com/photonstorm/phaser
synced 2024-11-23 21:24:09 +00:00
Removed un-needed Quad Pipeline and shaders
This commit is contained in:
parent
f37a61de27
commit
2ff76eb4b5
7 changed files with 0 additions and 367 deletions
|
@ -19,7 +19,6 @@ var WebGLSnapshot = require('../snapshot/WebGLSnapshot');
|
|||
// Default Pipelines
|
||||
var BitmapMaskPipeline = require('./pipelines/BitmapMaskPipeline');
|
||||
var ForwardDiffuseLightPipeline = require('./pipelines/ForwardDiffuseLightPipeline');
|
||||
var QuadShaderPipeline = require('./pipelines/QuadShaderPipeline');
|
||||
var TextureTintPipeline = require('./pipelines/TextureTintPipeline');
|
||||
|
||||
/**
|
||||
|
@ -605,7 +604,6 @@ var WebGLRenderer = new Class({
|
|||
this.addPipeline('TextureTintPipeline', new TextureTintPipeline({ game: game, renderer: this }));
|
||||
this.addPipeline('BitmapMaskPipeline', new BitmapMaskPipeline({ game: game, renderer: this }));
|
||||
this.addPipeline('Light2D', new ForwardDiffuseLightPipeline({ game: game, renderer: this, maxLights: config.maxLights }));
|
||||
this.addPipeline('QuadShaderPipeline', new QuadShaderPipeline({ game: game, renderer: this }));
|
||||
|
||||
this.setBlendMode(CONST.BlendModes.NORMAL);
|
||||
|
||||
|
|
|
@ -1,238 +0,0 @@
|
|||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2019 Photon Storm Ltd.
|
||||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
var Class = require('../../../utils/Class');
|
||||
var ModelViewProjection = require('./components/ModelViewProjection');
|
||||
var ShaderSourceFS = require('../shaders/QuadShader-frag.js');
|
||||
var ShaderSourceVS = require('../shaders/QuadShader-vert.js');
|
||||
var TransformMatrix = require('../../../gameobjects/components/TransformMatrix');
|
||||
var WebGLPipeline = require('../WebGLPipeline');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
*
|
||||
* A single quad with its own custom shader applied to it.
|
||||
* The quad can have a size, position, rotation and scale.
|
||||
*
|
||||
* Once the quad is drawn the batch is flushed. There is no batching of these objects.
|
||||
*
|
||||
* @class QuadShaderPipeline
|
||||
* @extends Phaser.Renderer.WebGL.WebGLPipeline
|
||||
* @memberof Phaser.Renderer.WebGL.Pipelines
|
||||
* @constructor
|
||||
* @since 3.17.0
|
||||
*
|
||||
* @param {object} config - The configuration options for this Pipeline, as described above.
|
||||
*/
|
||||
var QuadShaderPipeline = new Class({
|
||||
|
||||
Extends: WebGLPipeline,
|
||||
|
||||
Mixins: [
|
||||
ModelViewProjection
|
||||
],
|
||||
|
||||
initialize:
|
||||
|
||||
function QuadShaderPipeline (config)
|
||||
{
|
||||
WebGLPipeline.call(this, {
|
||||
game: config.game,
|
||||
renderer: config.renderer,
|
||||
gl: config.renderer.gl,
|
||||
topology: config.renderer.gl.TRIANGLES,
|
||||
vertShader: ShaderSourceVS,
|
||||
fragShader: ShaderSourceFS,
|
||||
vertexCapacity: 6,
|
||||
vertexSize: Float32Array.BYTES_PER_ELEMENT * 2,
|
||||
attributes: [
|
||||
{
|
||||
name: 'inPosition',
|
||||
size: 2,
|
||||
type: config.renderer.gl.FLOAT,
|
||||
normalized: false,
|
||||
offset: 0
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
/**
|
||||
* Float32 view of the array buffer containing the pipeline's vertices.
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.Pipelines.QuadShaderPipeline#vertexViewF32
|
||||
* @type {Float32Array}
|
||||
* @since 3.17.0
|
||||
*/
|
||||
this.vertexViewF32 = new Float32Array(this.vertexData);
|
||||
|
||||
/**
|
||||
* A temporary Transform Matrix, re-used internally during batching.
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.Pipelines.QuadShaderPipeline#_tempMatrix1
|
||||
* @private
|
||||
* @type {Phaser.GameObjects.Components.TransformMatrix}
|
||||
* @since 3.17.0
|
||||
*/
|
||||
this._tempMatrix1 = new TransformMatrix();
|
||||
|
||||
/**
|
||||
* A temporary Transform Matrix, re-used internally during batching.
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.Pipelines.QuadShaderPipeline#_tempMatrix2
|
||||
* @private
|
||||
* @type {Phaser.GameObjects.Components.TransformMatrix}
|
||||
* @since 3.17.0
|
||||
*/
|
||||
this._tempMatrix2 = new TransformMatrix();
|
||||
|
||||
/**
|
||||
* A temporary Transform Matrix, re-used internally during batching.
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.Pipelines.QuadShaderPipeline#_tempMatrix3
|
||||
* @private
|
||||
* @type {Phaser.GameObjects.Components.TransformMatrix}
|
||||
* @since 3.17.0
|
||||
*/
|
||||
this._tempMatrix3 = new TransformMatrix();
|
||||
|
||||
/**
|
||||
* A temporary Transform Matrix, re-used internally during batching.
|
||||
*
|
||||
* @name Phaser.Renderer.WebGL.Pipelines.QuadShaderPipeline#_tempMatrix4
|
||||
* @private
|
||||
* @type {Phaser.GameObjects.Components.TransformMatrix}
|
||||
* @since 3.17.0
|
||||
*/
|
||||
this._tempMatrix4 = new TransformMatrix();
|
||||
|
||||
this.defaultProgram = this.program;
|
||||
|
||||
this.mvpInit();
|
||||
},
|
||||
|
||||
/**
|
||||
* Called every time the pipeline needs to be used.
|
||||
* It binds all necessary resources.
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.Pipelines.QuadShaderPipeline#bind
|
||||
* @since 3.17.0
|
||||
*
|
||||
* @return {this} This WebGLPipeline instance.
|
||||
*/
|
||||
// bind: function ()
|
||||
// {
|
||||
// WebGLPipeline.prototype.bind.call(this);
|
||||
// },
|
||||
|
||||
/**
|
||||
* Resizes this pipeline and updates the projection.
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.Pipelines.QuadShaderPipeline#resize
|
||||
* @since 3.17.0
|
||||
*
|
||||
* @param {number} width - The new width.
|
||||
* @param {number} height - The new height.
|
||||
* @param {number} resolution - The resolution.
|
||||
*
|
||||
* @return {this} This WebGLPipeline instance.
|
||||
*/
|
||||
resize: function (width, height, resolution)
|
||||
{
|
||||
WebGLPipeline.prototype.resize.call(this, width, height, resolution);
|
||||
|
||||
this.projOrtho(0, this.width, this.height, 0, -1000.0, 1000.0);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Uploads the vertex data and emits a draw call for the current batch of vertices.
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.Pipelines.QuadShaderPipeline#flush
|
||||
* @since 3.17.0
|
||||
*
|
||||
* @return {this} This WebGLPipeline instance.
|
||||
*/
|
||||
flush: function ()
|
||||
{
|
||||
if (this.flushLocked)
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
var gl = this.gl;
|
||||
var vertexCount = 6;
|
||||
var topology = this.topology;
|
||||
var vertexSize = this.vertexSize;
|
||||
|
||||
gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.bytes.subarray(0, vertexCount * vertexSize));
|
||||
|
||||
// 0 = first batch index
|
||||
// 6 = batchVertexCount
|
||||
gl.drawArrays(topology, 0, vertexCount);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Renders a single quad using the current shader and then flushes the batch.
|
||||
*
|
||||
* @method Phaser.Renderer.WebGL.Pipelines.QuadShaderPipeline#draw
|
||||
* @since 3.17.0
|
||||
*
|
||||
* @param {number} x - Horizontal top left coordinate of the rectangle.
|
||||
* @param {number} y - Vertical top left coordinate of the rectangle.
|
||||
* @param {number} width - Width of the rectangle.
|
||||
* @param {number} height - Height of the rectangle.
|
||||
* @param {Phaser.GameObjects.Components.TransformMatrix} currentMatrix - The current transform.
|
||||
* @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - The parent transform.
|
||||
*/
|
||||
draw: function (x, y, width, height, currentMatrix, parentMatrix)
|
||||
{
|
||||
var calcMatrix = this._tempMatrix3;
|
||||
|
||||
// Multiply and store result in calcMatrix, only if the parentMatrix is set, otherwise we'll use whatever values are already in the calcMatrix
|
||||
if (parentMatrix)
|
||||
{
|
||||
parentMatrix.multiply(currentMatrix, calcMatrix);
|
||||
}
|
||||
|
||||
var xw = x + width;
|
||||
var yh = y + height;
|
||||
|
||||
var x0 = calcMatrix.getX(x, y);
|
||||
var y0 = calcMatrix.getY(x, y);
|
||||
|
||||
var x1 = calcMatrix.getX(x, yh);
|
||||
var y1 = calcMatrix.getY(x, yh);
|
||||
|
||||
var x2 = calcMatrix.getX(xw, yh);
|
||||
var y2 = calcMatrix.getY(xw, yh);
|
||||
|
||||
var x3 = calcMatrix.getX(xw, y);
|
||||
var y3 = calcMatrix.getY(xw, y);
|
||||
|
||||
var vertexViewF32 = this.vertexViewF32;
|
||||
|
||||
vertexViewF32[0] = x0;
|
||||
vertexViewF32[1] = y0;
|
||||
vertexViewF32[2] = x1;
|
||||
vertexViewF32[3] = y1;
|
||||
vertexViewF32[4] = x2;
|
||||
vertexViewF32[5] = y2;
|
||||
vertexViewF32[6] = x0;
|
||||
vertexViewF32[7] = y0;
|
||||
vertexViewF32[8] = x2;
|
||||
vertexViewF32[9] = y2;
|
||||
vertexViewF32[10] = x3;
|
||||
vertexViewF32[11] = y3;
|
||||
|
||||
this.flush();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
module.exports = QuadShaderPipeline;
|
|
@ -12,7 +12,6 @@ module.exports = {
|
|||
|
||||
BitmapMaskPipeline: require('./BitmapMaskPipeline'),
|
||||
ForwardDiffuseLightPipeline: require('./ForwardDiffuseLightPipeline'),
|
||||
QuadShaderPipeline: require('./QuadShaderPipeline'),
|
||||
TextureTintPipeline: require('./TextureTintPipeline'),
|
||||
ModelViewProjection: require('./components/ModelViewProjection')
|
||||
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
module.exports = [
|
||||
'#define SHADER_NAME PHASER_QUAD_SHADER_FS',
|
||||
'',
|
||||
'precision mediump float;',
|
||||
'',
|
||||
'uniform float time;',
|
||||
'uniform vec2 resolution;',
|
||||
'uniform vec2 mouse;',
|
||||
'',
|
||||
'varying vec2 fragCoord;',
|
||||
'',
|
||||
'vec3 hsv2rgb (vec3 c)',
|
||||
'{',
|
||||
' vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);',
|
||||
' vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);',
|
||||
' return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);',
|
||||
'}',
|
||||
'',
|
||||
'void main (void)',
|
||||
'{',
|
||||
' // Normalized pixel coordinates (from 0 to 1)',
|
||||
' // vec2 uv = fragCoord / resolution.xy;',
|
||||
'',
|
||||
' // Time varying pixel color',
|
||||
' // vec3 col = 0.5 + 0.5 * cos(time + uv.xyx + vec3(0,2,4));',
|
||||
'',
|
||||
' // gl_FragColor = vec4(col, 1.0);',
|
||||
'',
|
||||
' // vec2 gg = gl_FragCoord.xy;',
|
||||
' vec2 gg = fragCoord.xy;',
|
||||
' float bins = 10.0;',
|
||||
' vec2 pos = (gg / resolution.xy);',
|
||||
'',
|
||||
' // https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/gl_FragCoord.xhtml',
|
||||
'',
|
||||
' // vec2 pos = vec2(resolution.x / gl_FragCoord.x, resolution.y / gl_FragCoord.y);',
|
||||
'',
|
||||
' float bin = floor(pos.x * bins);',
|
||||
'',
|
||||
' gl_FragColor = vec4(hsv2rgb(vec3(bin/bins, 0.5, 1.0)), 1.0);',
|
||||
'}',
|
||||
''
|
||||
].join('\n');
|
|
@ -1,23 +0,0 @@
|
|||
module.exports = [
|
||||
'#define SHADER_NAME PHASER_QUAD_SHADER_VS',
|
||||
'',
|
||||
'precision mediump float;',
|
||||
'',
|
||||
'// These are set in ModelViewProjection.mvpUpdate',
|
||||
'uniform mat4 uProjectionMatrix;',
|
||||
'uniform mat4 uViewMatrix;',
|
||||
'uniform mat4 uModelMatrix;',
|
||||
'',
|
||||
'// These are set in QuadShaderPipeline',
|
||||
'attribute vec2 inPosition;',
|
||||
'',
|
||||
'varying vec2 fragCoord;',
|
||||
'',
|
||||
'void main ()',
|
||||
'{',
|
||||
' gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * vec4(inPosition, 1.0, 1.0);',
|
||||
'',
|
||||
' fragCoord = inPosition;',
|
||||
'}',
|
||||
''
|
||||
].join('\n');
|
|
@ -1,40 +0,0 @@
|
|||
#define SHADER_NAME PHASER_QUAD_SHADER_FS
|
||||
|
||||
precision mediump float;
|
||||
|
||||
uniform float time;
|
||||
uniform vec2 resolution;
|
||||
uniform vec2 mouse;
|
||||
|
||||
varying vec2 fragCoord;
|
||||
|
||||
vec3 hsv2rgb (vec3 c)
|
||||
{
|
||||
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
||||
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
||||
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
||||
}
|
||||
|
||||
void main (void)
|
||||
{
|
||||
// Normalized pixel coordinates (from 0 to 1)
|
||||
// vec2 uv = fragCoord / resolution.xy;
|
||||
|
||||
// Time varying pixel color
|
||||
// vec3 col = 0.5 + 0.5 * cos(time + uv.xyx + vec3(0,2,4));
|
||||
|
||||
// gl_FragColor = vec4(col, 1.0);
|
||||
|
||||
// vec2 gg = gl_FragCoord.xy;
|
||||
vec2 gg = fragCoord.xy;
|
||||
float bins = 10.0;
|
||||
vec2 pos = (gg / resolution.xy);
|
||||
|
||||
// https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/gl_FragCoord.xhtml
|
||||
|
||||
// vec2 pos = vec2(resolution.x / gl_FragCoord.x, resolution.y / gl_FragCoord.y);
|
||||
|
||||
float bin = floor(pos.x * bins);
|
||||
|
||||
gl_FragColor = vec4(hsv2rgb(vec3(bin/bins, 0.5, 1.0)), 1.0);
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
#define SHADER_NAME PHASER_QUAD_SHADER_VS
|
||||
|
||||
precision mediump float;
|
||||
|
||||
// These are set in ModelViewProjection.mvpUpdate
|
||||
uniform mat4 uProjectionMatrix;
|
||||
uniform mat4 uViewMatrix;
|
||||
uniform mat4 uModelMatrix;
|
||||
|
||||
// These are set in QuadShaderPipeline
|
||||
attribute vec2 inPosition;
|
||||
|
||||
varying vec2 fragCoord;
|
||||
|
||||
void main ()
|
||||
{
|
||||
gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * vec4(inPosition, 1.0, 1.0);
|
||||
|
||||
fragCoord = inPosition;
|
||||
}
|
Loading…
Reference in a new issue