@@ -861,6 +861,44 @@ var WebGLPipeline = new Class({
861861 return this ;
862862 } ,
863863
864+ /**
865+ * Adds a single vertex to the current vertex buffer and increments the
866+ * `vertexCount` property by 1.
867+ *
868+ * This method is called directly by `batchTri` and `batchQuad`.
869+ *
870+ * It does not perform any batch limit checking itself, so if you need to call
871+ * this method directly, do so in the same way that `batchQuad` does, for example.
872+ *
873+ * @method Phaser.Renderer.WebGL.Pipelines.MultiPipeline#batchVert
874+ * @since 3.50.0
875+ *
876+ * @param {number } x - The vertex x position.
877+ * @param {number } y - The vertex y position.
878+ * @param {number } u - UV u value.
879+ * @param {number } v - UV v value.
880+ * @param {integer } unit - Texture unit to which the texture needs to be bound.
881+ * @param {(number|boolean) } tintEffect - The tint effect for the shader to use.
882+ * @param {number } tint - The tint color value.
883+ */
884+ batchVert : function ( x , y , u , v , unit , tintEffect , tint )
885+ {
886+ var vertexViewF32 = this . vertexViewF32 ;
887+ var vertexViewU32 = this . vertexViewU32 ;
888+
889+ var vertexOffset = ( this . vertexCount * this . currentShader . vertexComponentCount ) - 1 ;
890+
891+ vertexViewF32 [ ++ vertexOffset ] = x ;
892+ vertexViewF32 [ ++ vertexOffset ] = y ;
893+ vertexViewF32 [ ++ vertexOffset ] = u ;
894+ vertexViewF32 [ ++ vertexOffset ] = v ;
895+ vertexViewF32 [ ++ vertexOffset ] = unit ;
896+ vertexViewF32 [ ++ vertexOffset ] = tintEffect ;
897+ vertexViewU32 [ ++ vertexOffset ] = tint ;
898+
899+ this . vertexCount ++ ;
900+ } ,
901+
864902 /**
865903 * Adds the vertices data into the batch and flushes if full.
866904 *
@@ -918,60 +956,12 @@ var WebGLPipeline = new Class({
918956 unit = this . setTexture2D ( texture ) ;
919957 }
920958
921- var vertexViewF32 = this . vertexViewF32 ;
922- var vertexViewU32 = this . vertexViewU32 ;
923-
924- var vertexOffset = ( this . vertexCount * this . currentShader . vertexComponentCount ) - 1 ;
925-
926- vertexViewF32 [ ++ vertexOffset ] = x0 ;
927- vertexViewF32 [ ++ vertexOffset ] = y0 ;
928- vertexViewF32 [ ++ vertexOffset ] = u0 ;
929- vertexViewF32 [ ++ vertexOffset ] = v0 ;
930- vertexViewF32 [ ++ vertexOffset ] = unit ;
931- vertexViewF32 [ ++ vertexOffset ] = tintEffect ;
932- vertexViewU32 [ ++ vertexOffset ] = tintTL ;
933-
934- vertexViewF32 [ ++ vertexOffset ] = x1 ;
935- vertexViewF32 [ ++ vertexOffset ] = y1 ;
936- vertexViewF32 [ ++ vertexOffset ] = u0 ;
937- vertexViewF32 [ ++ vertexOffset ] = v1 ;
938- vertexViewF32 [ ++ vertexOffset ] = unit ;
939- vertexViewF32 [ ++ vertexOffset ] = tintEffect ;
940- vertexViewU32 [ ++ vertexOffset ] = tintBL ;
941-
942- vertexViewF32 [ ++ vertexOffset ] = x2 ;
943- vertexViewF32 [ ++ vertexOffset ] = y2 ;
944- vertexViewF32 [ ++ vertexOffset ] = u1 ;
945- vertexViewF32 [ ++ vertexOffset ] = v1 ;
946- vertexViewF32 [ ++ vertexOffset ] = unit ;
947- vertexViewF32 [ ++ vertexOffset ] = tintEffect ;
948- vertexViewU32 [ ++ vertexOffset ] = tintBR ;
949-
950- vertexViewF32 [ ++ vertexOffset ] = x0 ;
951- vertexViewF32 [ ++ vertexOffset ] = y0 ;
952- vertexViewF32 [ ++ vertexOffset ] = u0 ;
953- vertexViewF32 [ ++ vertexOffset ] = v0 ;
954- vertexViewF32 [ ++ vertexOffset ] = unit ;
955- vertexViewF32 [ ++ vertexOffset ] = tintEffect ;
956- vertexViewU32 [ ++ vertexOffset ] = tintTL ;
957-
958- vertexViewF32 [ ++ vertexOffset ] = x2 ;
959- vertexViewF32 [ ++ vertexOffset ] = y2 ;
960- vertexViewF32 [ ++ vertexOffset ] = u1 ;
961- vertexViewF32 [ ++ vertexOffset ] = v1 ;
962- vertexViewF32 [ ++ vertexOffset ] = unit ;
963- vertexViewF32 [ ++ vertexOffset ] = tintEffect ;
964- vertexViewU32 [ ++ vertexOffset ] = tintBR ;
965-
966- vertexViewF32 [ ++ vertexOffset ] = x3 ;
967- vertexViewF32 [ ++ vertexOffset ] = y3 ;
968- vertexViewF32 [ ++ vertexOffset ] = u1 ;
969- vertexViewF32 [ ++ vertexOffset ] = v0 ;
970- vertexViewF32 [ ++ vertexOffset ] = unit ;
971- vertexViewF32 [ ++ vertexOffset ] = tintEffect ;
972- vertexViewU32 [ ++ vertexOffset ] = tintTR ;
973-
974- this . vertexCount += 6 ;
959+ this . batchVert ( x0 , y0 , u0 , v0 , unit , tintEffect , tintTL ) ;
960+ this . batchVert ( x1 , y1 , u0 , v1 , unit , tintEffect , tintBL ) ;
961+ this . batchVert ( x2 , y2 , u1 , v1 , unit , tintEffect , tintBR ) ;
962+ this . batchVert ( x0 , y0 , u0 , v0 , unit , tintEffect , tintTL ) ;
963+ this . batchVert ( x2 , y2 , u1 , v1 , unit , tintEffect , tintBR ) ;
964+ this . batchVert ( x3 , y3 , u1 , v0 , unit , tintEffect , tintTR ) ;
975965
976966 return hasFlushed ;
977967 } ,
@@ -1028,36 +1018,9 @@ var WebGLPipeline = new Class({
10281018 unit = this . setTexture2D ( texture ) ;
10291019 }
10301020
1031- var vertexViewF32 = this . vertexViewF32 ;
1032- var vertexViewU32 = this . vertexViewU32 ;
1033-
1034- var vertexOffset = ( this . vertexCount * this . currentShader . vertexComponentCount ) - 1 ;
1035-
1036- vertexViewF32 [ ++ vertexOffset ] = x0 ;
1037- vertexViewF32 [ ++ vertexOffset ] = y0 ;
1038- vertexViewF32 [ ++ vertexOffset ] = u0 ;
1039- vertexViewF32 [ ++ vertexOffset ] = v0 ;
1040- vertexViewF32 [ ++ vertexOffset ] = unit ;
1041- vertexViewF32 [ ++ vertexOffset ] = tintEffect ;
1042- vertexViewU32 [ ++ vertexOffset ] = tintTL ;
1043-
1044- vertexViewF32 [ ++ vertexOffset ] = x1 ;
1045- vertexViewF32 [ ++ vertexOffset ] = y1 ;
1046- vertexViewF32 [ ++ vertexOffset ] = u0 ;
1047- vertexViewF32 [ ++ vertexOffset ] = v1 ;
1048- vertexViewF32 [ ++ vertexOffset ] = unit ;
1049- vertexViewF32 [ ++ vertexOffset ] = tintEffect ;
1050- vertexViewU32 [ ++ vertexOffset ] = tintTR ;
1051-
1052- vertexViewF32 [ ++ vertexOffset ] = x2 ;
1053- vertexViewF32 [ ++ vertexOffset ] = y2 ;
1054- vertexViewF32 [ ++ vertexOffset ] = u1 ;
1055- vertexViewF32 [ ++ vertexOffset ] = v1 ;
1056- vertexViewF32 [ ++ vertexOffset ] = unit ;
1057- vertexViewF32 [ ++ vertexOffset ] = tintEffect ;
1058- vertexViewU32 [ ++ vertexOffset ] = tintBL ;
1059-
1060- this . vertexCount += 3 ;
1021+ this . batchVert ( x0 , y0 , u0 , v0 , unit , tintEffect , tintTL ) ;
1022+ this . batchVert ( x1 , y1 , u0 , v1 , unit , tintEffect , tintTR ) ;
1023+ this . batchVert ( x2 , y2 , u1 , v1 , unit , tintEffect , tintBL ) ;
10611024
10621025 return hasFlushed ;
10631026 } ,
0 commit comments