11var Class = require ( '../../utils/Class' ) ;
22var Utils = require ( './Utils' ) ;
33
4+ /**
5+ * @classdesc
6+ * [description]
7+ *
8+ * @class WebGLPipeline
9+ * @memberOf Phaser.Renderer.WebGL
10+ * @constructor
11+ * @since 3.0.0
12+ *
13+ * @param {object } config - [description]
14+ */
415var WebGLPipeline = new Class ( {
516
6- initialize :
17+ initialize :
718
8- function WebGLPipeline ( config )
19+ function WebGLPipeline ( config )
920 {
21+ /**
22+ * [description]
23+ *
24+ * @name Phaser.Renderer.WebGL.WebGLPipeline#name
25+ * @type {string }
26+ * @since 3.0.0
27+ */
1028 this . name = 'WebGLPipeline' ;
29+
30+ /**
31+ * [description]
32+ *
33+ * @name Phaser.Renderer.WebGL.WebGLPipeline#game
34+ * @type {Phaser.Game }
35+ * @since 3.0.0
36+ */
1137 this . game = config . game ;
38+
39+ /**
40+ * [description]
41+ *
42+ * @name Phaser.Renderer.WebGL.WebGLPipeline#view
43+ * @type {HTMLCanvasElement }
44+ * @since 3.0.0
45+ */
1246 this . view = config . game . canvas ;
47+
48+ /**
49+ * [description]
50+ *
51+ * @name Phaser.Renderer.WebGL.WebGLPipeline#resolution
52+ * @type {number }
53+ * @since 3.0.0
54+ */
1355 this . resolution = config . game . config . resolution ;
56+
57+ /**
58+ * [description]
59+ *
60+ * @name Phaser.Renderer.WebGL.WebGLPipeline#width
61+ * @type {number }
62+ * @since 3.0.0
63+ */
1464 this . width = config . game . config . width * this . resolution ;
65+
66+ /**
67+ * [description]
68+ *
69+ * @name Phaser.Renderer.WebGL.WebGLPipeline#height
70+ * @type {number }
71+ * @since 3.0.0
72+ */
1573 this . height = config . game . config . height * this . resolution ;
74+
75+ /**
76+ * [description]
77+ *
78+ * @name Phaser.Renderer.WebGL.WebGLPipeline#gl
79+ * @type {[type] }
80+ * @since 3.0.0
81+ */
1682 this . gl = config . gl ;
83+
84+ /**
85+ * [description]
86+ *
87+ * @name Phaser.Renderer.WebGL.WebGLPipeline#vertexCount
88+ * @type {number }
89+ * @default 0
90+ * @since 3.0.0
91+ */
1792 this . vertexCount = 0 ;
93+
94+ /**
95+ * [description]
96+ *
97+ * @name Phaser.Renderer.WebGL.WebGLPipeline#vertexCapacity
98+ * @type {integer }
99+ * @since 3.0.0
100+ */
18101 this . vertexCapacity = config . vertexCapacity ;
102+
103+ /**
104+ * [description]
105+ *
106+ * @name Phaser.Renderer.WebGL.WebGLPipeline#renderer
107+ * @type {Phaser.Renderer.WebGL.WebGLRenderer }
108+ * @since 3.0.0
109+ */
19110 this . renderer = config . renderer ;
111+
112+ /**
113+ * [description]
114+ *
115+ * @name Phaser.Renderer.WebGL.WebGLPipeline#vertexData
116+ * @type {[type] }
117+ * @since 3.0.0
118+ */
20119 this . vertexData = ( config . vertices ? config . vertices : new ArrayBuffer ( config . vertexCapacity * config . vertexSize ) ) ;
120+
121+ /**
122+ * [description]
123+ *
124+ * @name Phaser.Renderer.WebGL.WebGLPipeline#vertexBuffer
125+ * @type {[type] }
126+ * @since 3.0.0
127+ */
21128 this . vertexBuffer = this . renderer . createVertexBuffer ( ( config . vertices ? config . vertices : this . vertexData . byteLength ) , this . gl . STREAM_DRAW ) ;
129+
130+ /**
131+ * [description]
132+ *
133+ * @name Phaser.Renderer.WebGL.WebGLPipeline#program
134+ * @type {[type] }
135+ * @since 3.0.0
136+ */
22137 this . program = this . renderer . createProgram ( config . vertShader , config . fragShader ) ;
138+
139+ /**
140+ * [description]
141+ *
142+ * @name Phaser.Renderer.WebGL.WebGLPipeline#attributes
143+ * @type {[type] }
144+ * @since 3.0.0
145+ */
23146 this . attributes = config . attributes ;
147+
148+ /**
149+ * [description]
150+ *
151+ * @name Phaser.Renderer.WebGL.WebGLPipeline#vertexSize
152+ * @type {[type] }
153+ * @since 3.0.0
154+ */
24155 this . vertexSize = config . vertexSize ;
156+
157+ /**
158+ * [description]
159+ *
160+ * @name Phaser.Renderer.WebGL.WebGLPipeline#topology
161+ * @type {[type] }
162+ * @since 3.0.0
163+ */
25164 this . topology = config . topology ;
165+
166+ /**
167+ * [description]
168+ *
169+ * @name Phaser.Renderer.WebGL.WebGLPipeline#bytes
170+ * @type {Uint8Array }
171+ * @since 3.0.0
172+ */
26173 this . bytes = new Uint8Array ( this . vertexData ) ;
27- // This will store the amount of components of 32 bit length
174+
175+ /**
176+ * This will store the amount of components of 32 bit length
177+ *
178+ * @name Phaser.Renderer.WebGL.WebGLPipeline#vertexComponentCount
179+ * @type {[type] }
180+ * @since 3.0.0
181+ */
28182 this . vertexComponentCount = Utils . getComponentCount ( config . attributes ) ;
29183 } ,
30184
185+ /**
186+ * [description]
187+ *
188+ * @method Phaser.Renderer.WebGL.WebGLPipeline#shouldFlush
189+ * @since 3.0.0
190+ *
191+ * @return {boolean } [description]
192+ */
31193 shouldFlush : function ( )
32194 {
33- return this . vertexCount >= this . vertexCapacity ;
195+ return ( this . vertexCount >= this . vertexCapacity ) ;
34196 } ,
35197
198+ /**
199+ * [description]
200+ *
201+ * @method Phaser.Renderer.WebGL.WebGLPipeline#resize
202+ * @since 3.0.0
203+ *
204+ * @param {number } width - [description]
205+ * @param {number } height - [description]
206+ * @param {number } resolution - [description]
207+ *
208+ * @return {Phaser.Renderer.WebGL.WebGLPipeline } [description]
209+ */
36210 resize : function ( width , height , resolution )
37211 {
38212 this . width = width * resolution ;
39213 this . height = height * resolution ;
40214 return this ;
41215 } ,
42216
217+ /**
218+ * [description]
219+ *
220+ * @method Phaser.Renderer.WebGL.WebGLPipeline#bind
221+ * @since 3.0.0
222+ *
223+ * @return {Phaser.Renderer.WebGL.WebGLPipeline } [description]
224+ */
43225 bind : function ( )
44226 {
45227 var gl = this . gl ;
@@ -71,30 +253,73 @@ var WebGLPipeline = new Class({
71253 return this ;
72254 } ,
73255
256+ /**
257+ * [description]
258+ *
259+ * @method Phaser.Renderer.WebGL.WebGLPipeline#onBind
260+ * @since 3.0.0
261+ *
262+ * @return {Phaser.Renderer.WebGL.WebGLPipeline } [description]
263+ */
74264 onBind : function ( )
75265 {
76266 // This is for updating uniform data it's called on each bind attempt.
77267 return this ;
78268 } ,
79269
270+ /**
271+ * [description]
272+ *
273+ * @method Phaser.Renderer.WebGL.WebGLPipeline#onPreRender
274+ * @since 3.0.0
275+ *
276+ * @return {Phaser.Renderer.WebGL.WebGLPipeline } [description]
277+ */
80278 onPreRender : function ( )
81279 {
82280 // called once every frame
83281 return this ;
84282 } ,
85283
284+ /**
285+ * [description]
286+ *
287+ * @method Phaser.Renderer.WebGL.WebGLPipeline#onRender
288+ * @since 3.0.0
289+ *
290+ * @param {Phaser.Scene } scene - [description]
291+ * @param {Phaser.Cameras.Scene2D.Camera } camera - [description]
292+ *
293+ * @return {Phaser.Renderer.WebGL.WebGLPipeline } [description]
294+ */
86295 onRender : function ( scene , camera )
87296 {
88297 // called for each camera
89298 return this ;
90299 } ,
91300
301+ /**
302+ * [description]
303+ *
304+ * @method Phaser.Renderer.WebGL.WebGLPipeline#onPostRender
305+ * @since 3.0.0
306+ *
307+ * @return {Phaser.Renderer.WebGL.WebGLPipeline } [description]
308+ */
92309 onPostRender : function ( )
93310 {
94311 // called once every frame
95312 return this ;
96313 } ,
97314
315+ /**
316+ * [description]
317+ *
318+ * @method Phaser.Renderer.WebGL.WebGLPipeline#flush
319+ * @since 3.0.0
320+ *
321+ * @return {Phaser.Renderer.WebGL.WebGLPipeline } [description]
322+ */
98323 flush : function ( )
99324 {
100325 var gl = this . gl ;
@@ -114,6 +339,14 @@ var WebGLPipeline = new Class({
114339 return this ;
115340 } ,
116341
342+ /**
343+ * [description]
344+ *
345+ * @method Phaser.Renderer.WebGL.WebGLPipeline#destroy
346+ * @since 3.0.0
347+ *
348+ * @return {Phaser.Renderer.WebGL.WebGLPipeline } [description]
349+ */
117350 destroy : function ( )
118351 {
119352 var gl = this . gl ;
0 commit comments