Graphics shape fill added

shaders optimised - removed need for 4x4 matrix
draw elipse added
any shape can now be filled
This commit is contained in:
Mat Groves 2013-06-21 18:37:14 +01:00
parent 2ad9002a79
commit 72e38cccb0
105 changed files with 20670 additions and 4633 deletions

View file

@ -19,7 +19,7 @@
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 1.0.0</em>
<em>API Docs for: 1.3.0</em>
</div>
</div>
<div id="bd" class="yui3-g">
@ -168,11 +168,64 @@ PIXI.shaderVertexSrc = [
&quot;}&quot;
];
PIXI.primitiveShaderFragmentSrc = [
&quot;precision mediump float;&quot;,
&quot;varying vec4 vColor;&quot;,
&quot;void main(void) {&quot;,
&quot;gl_FragColor = vColor;&quot;,
&quot;}&quot;
];
PIXI.primitiveShaderVertexSrc = [
&quot;attribute vec2 aVertexPosition;&quot;,
&quot;attribute vec4 aColor;&quot;,
&quot;uniform vec2 projectionVector;&quot;,
&quot;varying vec4 vColor;&quot;,
&quot;void main(void) {&quot;,
&quot;gl_Position = vec4( aVertexPosition.x &#x2F; projectionVector.x -1.0, aVertexPosition.y &#x2F; -projectionVector.y + 1.0 , 0.0, 1.0);&quot;,
&quot;vColor = aColor;&quot;,
&quot;}&quot;
];
&#x2F;*
* primitive shader..
*&#x2F;
PIXI.initPrimitiveShader = function()
{
var gl = PIXI.gl;
var shaderProgram = PIXI.compileProgram(PIXI.primitiveShaderVertexSrc, PIXI.primitiveShaderFragmentSrc)
gl.useProgram(shaderProgram);
shaderProgram.vertexPositionAttribute = gl.getAttribLocation(shaderProgram, &quot;aVertexPosition&quot;);
shaderProgram.colorAttribute = gl.getAttribLocation(shaderProgram, &quot;aColor&quot;);
shaderProgram.projectionVector = gl.getUniformLocation(shaderProgram, &quot;projectionVector&quot;);
PIXI.primitiveProgram = shaderProgram;
}
PIXI.initDefaultShader = function()
{
var gl = this.gl;
var shaderProgram = PIXI.compileProgram(PIXI.shaderVertexSrc, PIXI.shaderFragmentSrc)
gl.useProgram(shaderProgram);
shaderProgram.vertexPositionAttribute = gl.getAttribLocation(shaderProgram, &quot;aVertexPosition&quot;);
shaderProgram.textureCoordAttribute = gl.getAttribLocation(shaderProgram, &quot;aTextureCoord&quot;);
shaderProgram.colorAttribute = gl.getAttribLocation(shaderProgram, &quot;aColor&quot;);
shaderProgram.mvMatrixUniform = gl.getUniformLocation(shaderProgram, &quot;uMVMatrix&quot;);
shaderProgram.samplerUniform = gl.getUniformLocation(shaderProgram, &quot;uSampler&quot;);
PIXI.shaderProgram = shaderProgram;
}
PIXI.CompileVertexShader = function(gl, shaderSrc)
{
return PIXI._CompileShader(gl, shaderSrc, gl.VERTEX_SHADER);
@ -210,6 +263,25 @@ PIXI.activateDefaultShader = function()
gl.enableVertexAttribArray(shaderProgram.colorAttribute);
}
PIXI.compileProgram = function(vertexSrc, fragmentSrc)
{
var gl = PIXI.gl;
var fragmentShader = PIXI.CompileFragmentShader(gl, fragmentSrc);
var vertexShader = PIXI.CompileVertexShader(gl, vertexSrc);
var shaderProgram = gl.createProgram();
gl.attachShader(shaderProgram, vertexShader);
gl.attachShader(shaderProgram, fragmentShader);
gl.linkProgram(shaderProgram);
if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {
alert(&quot;Could not initialise shaders&quot;);
}
return shaderProgram;
}
PIXI.activatePrimitiveShader = function()
{
var gl = PIXI.gl;
@ -217,13 +289,10 @@ PIXI.activatePrimitiveShader = function()
gl.disableVertexAttribArray(PIXI.shaderProgram.textureCoordAttribute);
gl.disableVertexAttribArray(PIXI.shaderProgram.colorAttribute);
var shaderProgram2 = PIXI.shaderProgram2;
gl.useProgram(PIXI.primitiveProgram);
gl.useProgram(shaderProgram2);
gl.enableVertexAttribArray(shaderProgram2.vertexPositionAttribute);
gl.enableVertexAttribArray(PIXI.shaderProgram2.colorAttribute);
gl.enableVertexAttribArray(PIXI.primitiveProgram.vertexPositionAttribute);
gl.enableVertexAttribArray(PIXI.primitiveProgram.colorAttribute);
}