@@ -107,67 +107,67 @@ cc.shaderCache = /** @lends cc.shaderCache# */{
107
107
_programs : { } ,
108
108
109
109
_init : function ( ) {
110
- this . loadDefaultShaders ( ) ;
110
+ // this.loadDefaultShaders();
111
111
return true ;
112
112
} ,
113
113
114
114
_loadDefaultShader : function ( program , type ) {
115
115
switch ( type ) {
116
- case this . TYPE_POSITION_TEXTURECOLOR :
116
+ case cc . SHADER_POSITION_TEXTURECOLOR :
117
117
program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_TEXTURE_COLOR_VERT , cc . SHADER_POSITION_TEXTURE_COLOR_FRAG ) ;
118
118
program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
119
119
program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
120
120
program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
121
121
break ;
122
- case this . TYPE_SPRITE_POSITION_TEXTURECOLOR :
122
+ case cc . SHADER_SPRITE_POSITION_TEXTURECOLOR :
123
123
program . initWithVertexShaderByteArray ( cc . SHADER_SPRITE_POSITION_TEXTURE_COLOR_VERT , cc . SHADER_POSITION_TEXTURE_COLOR_FRAG ) ;
124
124
program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
125
125
program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
126
126
program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
127
127
break ;
128
- case this . TYPE_POSITION_TEXTURECOLOR_ALPHATEST :
128
+ case cc . SHADER_POSITION_TEXTURECOLORALPHATEST :
129
129
program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_TEXTURE_COLOR_VERT , cc . SHADER_POSITION_TEXTURE_COLOR_ALPHATEST_FRAG ) ;
130
130
program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
131
131
program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
132
132
program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
133
133
break ;
134
- case this . TYPE_SPRITE_POSITION_TEXTURECOLOR_ALPHATEST :
134
+ case cc . SHADER_SPRITE_POSITION_TEXTURECOLORALPHATEST :
135
135
program . initWithVertexShaderByteArray ( cc . SHADER_SPRITE_POSITION_TEXTURE_COLOR_VERT , cc . SHADER_POSITION_TEXTURE_COLOR_ALPHATEST_FRAG ) ;
136
136
program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
137
137
program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
138
138
program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
139
139
break ;
140
- case this . TYPE_POSITION_COLOR :
140
+ case cc . SHADER_POSITION_COLOR :
141
141
program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_COLOR_VERT , cc . SHADER_POSITION_COLOR_FRAG ) ;
142
142
program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
143
143
program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
144
144
break ;
145
- case this . TYPE_SPRITE_POSITION_COLOR :
145
+ case cc . SHADER_SPRITE_POSITION_COLOR :
146
146
program . initWithVertexShaderByteArray ( cc . SHADER_SPRITE_POSITION_COLOR_VERT , cc . SHADER_POSITION_COLOR_FRAG ) ;
147
147
program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
148
148
program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
149
149
break ;
150
- case this . TYPE_POSITION_TEXTURE :
150
+ case cc . SHADER_POSITION_TEXTURE :
151
151
program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_TEXTURE_VERT , cc . SHADER_POSITION_TEXTURE_FRAG ) ;
152
152
program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
153
153
program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
154
154
break ;
155
- case this . TYPE_POSITION_TEXTURE_UCOLOR :
155
+ case cc . SHADER_POSITION_TEXTURE_UCOLOR :
156
156
program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_TEXTURE_UCOLOR_VERT , cc . SHADER_POSITION_TEXTURE_UCOLOR_FRAG ) ;
157
157
program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
158
158
program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
159
159
break ;
160
- case this . TYPE_POSITION_TEXTURE_A8COLOR :
160
+ case cc . SHADER_POSITION_TEXTUREA8COLOR :
161
161
program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_TEXTURE_A8COLOR_VERT , cc . SHADER_POSITION_TEXTURE_A8COLOR_FRAG ) ;
162
162
program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
163
163
program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
164
164
program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
165
165
break ;
166
- case this . TYPE_POSITION_UCOLOR :
166
+ case cc . SHADER_POSITION_UCOLOR :
167
167
program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_UCOLOR_VERT , cc . SHADER_POSITION_UCOLOR_FRAG ) ;
168
168
program . addAttribute ( "aVertex" , cc . VERTEX_ATTRIB_POSITION ) ;
169
169
break ;
170
- case this . TYPE_POSITION_LENGTH_TEXTURECOLOR :
170
+ case cc . SHADER_POSITION_LENGTHTEXTURECOLOR :
171
171
program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_COLOR_LENGTH_TEXTURE_VERT , cc . SHADER_POSITION_COLOR_LENGTH_TEXTURE_FRAG ) ;
172
172
program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
173
173
program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
@@ -188,85 +188,6 @@ cc.shaderCache = /** @lends cc.shaderCache# */{
188
188
* loads the default shaders
189
189
*/
190
190
loadDefaultShaders : function ( ) {
191
- // Position Texture Color shader
192
- var program = new cc . GLProgram ( ) ;
193
- this . _loadDefaultShader ( program , this . TYPE_POSITION_TEXTURECOLOR ) ;
194
- this . _programs [ cc . SHADER_POSITION_TEXTURECOLOR ] = program ;
195
- this . _programs [ "ShaderPositionTextureColor" ] = program ;
196
-
197
- // Position Texture Color shader with position precalculated
198
- program = new cc . GLProgram ( ) ;
199
- this . _loadDefaultShader ( program , this . TYPE_SPRITE_POSITION_TEXTURECOLOR ) ;
200
- this . _programs [ cc . SHADER_SPRITE_POSITION_TEXTURECOLOR ] = program ;
201
- this . _programs [ "ShaderSpritePositionTextureColor" ] = program ;
202
-
203
- // Position Texture Color alpha test
204
- program = new cc . GLProgram ( ) ;
205
- this . _loadDefaultShader ( program , this . TYPE_POSITION_TEXTURECOLOR_ALPHATEST ) ;
206
- this . _programs [ cc . SHADER_POSITION_TEXTURECOLORALPHATEST ] = program ;
207
- this . _programs [ "ShaderPositionTextureColorAlphaTest" ] = program ;
208
-
209
- // Position Texture Color alpha with position precalculated
210
- program = new cc . GLProgram ( ) ;
211
- this . _loadDefaultShader ( program , this . TYPE_SPRITE_POSITION_TEXTURECOLOR_ALPHATEST ) ;
212
- this . _programs [ cc . SHADER_SPRITE_POSITION_TEXTURECOLORALPHATEST ] = program ;
213
- this . _programs [ "ShaderSpritePositionTextureColorAlphaTest" ] = program ;
214
-
215
- //
216
- // Position, Color shader
217
- //
218
- program = new cc . GLProgram ( ) ;
219
- this . _loadDefaultShader ( program , this . TYPE_POSITION_COLOR ) ;
220
- this . _programs [ cc . SHADER_POSITION_COLOR ] = program ;
221
- this . _programs [ "ShaderPositionColor" ] = program ;
222
-
223
- //
224
- // Position, Color shader with position precalculated
225
- //
226
- program = new cc . GLProgram ( ) ;
227
- this . _loadDefaultShader ( program , this . TYPE_SPRITE_POSITION_COLOR ) ;
228
- this . _programs [ cc . SHADER_SPRITE_POSITION_COLOR ] = program ;
229
- this . _programs [ "ShaderSpritePositionColor" ] = program ;
230
-
231
- //
232
- // Position Texture shader
233
- //
234
- program = new cc . GLProgram ( ) ;
235
- this . _loadDefaultShader ( program , this . TYPE_POSITION_TEXTURE ) ;
236
- this . _programs [ cc . SHADER_POSITION_TEXTURE ] = program ;
237
- this . _programs [ "ShaderPositionTexture" ] = program ;
238
-
239
- //
240
- // Position, Texture attribs, 1 Color as uniform shader
241
- //
242
- program = new cc . GLProgram ( ) ;
243
- this . _loadDefaultShader ( program , this . TYPE_POSITION_TEXTURE_UCOLOR ) ;
244
- this . _programs [ cc . SHADER_POSITION_TEXTURE_UCOLOR ] = program ;
245
- this . _programs [ "ShaderPositionTextureUColor" ] = program ;
246
-
247
- //
248
- // Position Texture A8 Color shader
249
- //
250
- program = new cc . GLProgram ( ) ;
251
- this . _loadDefaultShader ( program , this . TYPE_POSITION_TEXTURE_A8COLOR ) ;
252
- this . _programs [ cc . SHADER_POSITION_TEXTUREA8COLOR ] = program ;
253
- this . _programs [ "ShaderPositionTextureA8Color" ] = program ;
254
-
255
- //
256
- // Position and 1 color passed as a uniform (to similate glColor4ub )
257
- //
258
- program = new cc . GLProgram ( ) ;
259
- this . _loadDefaultShader ( program , this . TYPE_POSITION_UCOLOR ) ;
260
- this . _programs [ cc . SHADER_POSITION_UCOLOR ] = program ;
261
- this . _programs [ "ShaderPositionUColor" ] = program ;
262
-
263
- //
264
- // Position, Legth(TexCoords, Color (used by Draw Node basically )
265
- //
266
- program = new cc . GLProgram ( ) ;
267
- this . _loadDefaultShader ( program , this . TYPE_POSITION_LENGTH_TEXTURECOLOR ) ;
268
- this . _programs [ cc . SHADER_POSITION_LENGTHTEXTURECOLOR ] = program ;
269
- this . _programs [ "ShaderPositionLengthTextureColor" ] = program ;
270
191
} ,
271
192
272
193
/**
@@ -336,6 +257,12 @@ cc.shaderCache = /** @lends cc.shaderCache# */{
336
257
* @param {String } key
337
258
*/
338
259
programForKey : function ( key ) {
260
+ if ( ! this . _programs [ key ] ) {
261
+ var program = new cc . GLProgram ( ) ;
262
+ this . _loadDefaultShader ( program , key ) ;
263
+ this . _programs [ key ] = program ;
264
+ }
265
+
339
266
return this . _programs [ key ] ;
340
267
} ,
341
268
@@ -345,7 +272,7 @@ cc.shaderCache = /** @lends cc.shaderCache# */{
345
272
* @return {cc.GLProgram }
346
273
*/
347
274
getProgram : function ( shaderName ) {
348
- return this . _programs [ shaderName ] ;
275
+ return this . programForKey ( shaderName ) ;
349
276
} ,
350
277
351
278
/**
0 commit comments