@@ -34,7 +34,7 @@ var MeshPipeline = new Class({
3434
3535 config . fragShader = GetFastValue ( config , 'fragShader' , ShaderSourceFS ) ,
3636 config . vertShader = GetFastValue ( config , 'vertShader' , ShaderSourceVS ) ,
37- config . vertexCapacity = GetFastValue ( config , 'vertexCapacity' , 2048 * 8 ) ,
37+ config . vertexCapacity = GetFastValue ( config , 'vertexCapacity' , 8 ) ,
3838 config . vertexSize = GetFastValue ( config , 'vertexSize' , 32 ) ,
3939 config . attributes = GetFastValue ( config , 'attributes' , [
4040 {
@@ -68,15 +68,6 @@ var MeshPipeline = new Class({
6868
6969 WebGLPipeline . call ( this , config ) ;
7070
71- /**
72- * Float32 view of the array buffer containing the pipeline's vertices.
73- *
74- * @name Phaser.Renderer.WebGL.Pipelines.MeshPipeline#vertexViewF32
75- * @type {Float32Array }
76- * @since 3.0.0
77- */
78- this . vertexViewF32 = new Float32Array ( this . vertexData ) ;
79-
8071 this . forceZero = true ;
8172 } ,
8273
@@ -134,7 +125,12 @@ var MeshPipeline = new Class({
134125 renderer . setFloat3 ( program , 'uLightAmbient' , light . ambient . x , light . ambient . y , light . ambient . z ) ;
135126 renderer . setFloat3 ( program , 'uLightDiffuse' , light . diffuse . x , light . diffuse . y , light . diffuse . z ) ;
136127 renderer . setFloat3 ( program , 'uLightSpecular' , light . specular . x , light . specular . y , light . specular . z ) ;
128+
137129 renderer . setFloat3 ( program , 'uCameraPosition' , camera . x , camera . y , camera . z ) ;
130+
131+ renderer . setFloat3 ( program , 'uFogColor' , mesh . fogColor . r , mesh . fogColor . g , mesh . fogColor . b ) ;
132+ renderer . setFloat1 ( program , 'uFogNear' , mesh . forNear ) ;
133+ renderer . setFloat1 ( program , 'uFogFar' , mesh . forFar ) ;
138134 } ,
139135
140136 drawModel : function ( mesh , model )
@@ -153,36 +149,14 @@ var MeshPipeline = new Class({
153149 renderer . setTextureZero ( model . frame . glTexture ) ;
154150 renderer . setInt1 ( program , 'uTexture' , 0 ) ;
155151
156- // All the uniforms are finally bound, so now lets draw our faces!
152+ // All the uniforms are finally bound, so let's buffer our data
157153
158- var vertexViewF32 = this . vertexViewF32 ;
159-
160- var vertices = model . vertices ;
161-
162- for ( var i = 0 ; i < vertices . length ; i ++ )
163- {
164- if ( this . shouldFlush ( 1 ) )
165- {
166- this . flush ( ) ;
167- }
168-
169- var vertexOffset = ( this . vertexCount * this . vertexComponentCount ) - 1 ;
170-
171- var vert = vertices [ i ] ;
172-
173- vertexViewF32 [ ++ vertexOffset ] = vert . x ;
174- vertexViewF32 [ ++ vertexOffset ] = vert . y ;
175- vertexViewF32 [ ++ vertexOffset ] = vert . z ;
176- vertexViewF32 [ ++ vertexOffset ] = vert . nx ;
177- vertexViewF32 [ ++ vertexOffset ] = vert . ny ;
178- vertexViewF32 [ ++ vertexOffset ] = vert . nz ;
179- vertexViewF32 [ ++ vertexOffset ] = vert . u ;
180- vertexViewF32 [ ++ vertexOffset ] = vert . v ;
154+ var gl = this . gl ;
181155
182- this . vertexCount ++ ;
183- }
156+ // STATIC because the buffer data doesn't change, the uniforms do
157+ gl . bufferData ( gl . ARRAY_BUFFER , model . vertexData , gl . STATIC_DRAW ) ;
184158
185- this . flush ( ) ;
159+ gl . drawArrays ( this . topology , 0 , model . vertexCount ) ;
186160 }
187161
188162} ) ;
0 commit comments