44 * @license {@link https://opensource.org/licenses/MIT|MIT License }
55 */
66
7- var GetCalcMatrix = require ( '../GetCalcMatrix' ) ;
8-
97/**
108 * Renders this Game Object with the WebGL Renderer to the given Camera.
119 * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.
@@ -20,7 +18,7 @@ var GetCalcMatrix = require('../GetCalcMatrix');
2018 * @param {Phaser.Cameras.Scene2D.Camera } camera - The Camera that is rendering the Game Object.
2119 * @param {Phaser.GameObjects.Components.TransformMatrix } parentMatrix - This transform matrix is defined if the game object is nested
2220 */
23- var MeshWebGLRenderer = function ( renderer , src , camera , parentMatrix )
21+ var MeshWebGLRenderer = function ( renderer , src )
2422{
2523 var models = src . models ;
2624 var totalModels = models . length ;
@@ -30,88 +28,18 @@ var MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)
3028 return ;
3129 }
3230
33- var pipeline = renderer . pipelines . set ( src . pipeline , src ) ;
34-
35- var calcMatrix = GetCalcMatrix ( src , camera , parentMatrix ) . calc ;
36-
37- var vertexOffset = ( pipeline . vertexCount * pipeline . vertexComponentCount ) - 1 ;
38-
39- var debugVerts ;
40- var debugCallback = src . debugCallback ;
31+ renderer . pipelines . clear ( ) ;
4132
42- var a = calcMatrix . a ;
43- var b = calcMatrix . b ;
44- var c = calcMatrix . c ;
45- var d = calcMatrix . d ;
46- var e = calcMatrix . e ;
47- var f = calcMatrix . f ;
48-
49- var F32 = pipeline . vertexViewF32 ;
50- var U32 = pipeline . vertexViewU32 ;
51-
52- var globalAlpha = camera . alpha * src . alpha ;
33+ var pipeline = renderer . pipelines . set ( src . pipeline , src ) ;
5334
5435 for ( var m = 0 ; m < totalModels ; m ++ )
5536 {
5637 var model = models [ m ] ;
5738
58- var faces = model . faces ;
59- var totalFaces = faces . length ;
60- var alpha = globalAlpha * model . alpha ;
61-
62- if ( totalFaces === 0 || ! model . visible || alpha <= 0 )
63- {
64- continue ;
65- }
66-
67- if ( debugCallback )
68- {
69- debugVerts = [ ] ;
70- }
71-
72- var tintEffect = model . tintFill ;
73- var textureUnit = pipeline . setGameObject ( model ) ;
74-
75- for ( var i = 0 ; i < totalFaces ; i ++ )
76- {
77- var face = faces [ i ] ;
78-
79- if ( model . hideCCW && ! face . isCounterClockwise ( ) )
80- {
81- continue ;
82- }
83-
84- if ( pipeline . shouldFlush ( 3 ) )
85- {
86- pipeline . flush ( ) ;
87-
88- vertexOffset = 0 ;
89- }
90-
91- vertexOffset = face . vertex1 . load ( F32 , U32 , vertexOffset , textureUnit , tintEffect , alpha , a , b , c , d , e , f ) ;
92- vertexOffset = face . vertex2 . load ( F32 , U32 , vertexOffset , textureUnit , tintEffect , alpha , a , b , c , d , e , f ) ;
93- vertexOffset = face . vertex3 . load ( F32 , U32 , vertexOffset , textureUnit , tintEffect , alpha , a , b , c , d , e , f ) ;
94-
95- pipeline . vertexCount += 3 ;
96-
97- if ( debugCallback && model . drawDebug )
98- {
99- debugVerts . push (
100- F32 [ vertexOffset - 20 ] ,
101- F32 [ vertexOffset - 19 ] ,
102- F32 [ vertexOffset - 13 ] ,
103- F32 [ vertexOffset - 12 ] ,
104- F32 [ vertexOffset - 6 ] ,
105- F32 [ vertexOffset - 5 ]
106- ) ;
107- }
108- }
109-
110- if ( debugCallback && model . drawDebug )
111- {
112- debugCallback . call ( src , src , debugVerts ) ;
113- }
39+ pipeline . drawModel ( src , model ) ;
11440 }
41+
42+ renderer . pipelines . rebind ( ) ;
11543} ;
11644
11745module . exports = MeshWebGLRenderer ;
0 commit comments