@@ -107,67 +107,67 @@ cc.shaderCache = /** @lends cc.shaderCache# */{
107107 _programs : { } ,
108108
109109 _init : function ( ) {
110- this . loadDefaultShaders ( ) ;
110+ // this.loadDefaultShaders();
111111 return true ;
112112 } ,
113113
114114 _loadDefaultShader : function ( program , type ) {
115115 switch ( type ) {
116- case this . TYPE_POSITION_TEXTURECOLOR :
116+ case cc . SHADER_POSITION_TEXTURECOLOR :
117117 program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_TEXTURE_COLOR_VERT , cc . SHADER_POSITION_TEXTURE_COLOR_FRAG ) ;
118118 program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
119119 program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
120120 program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
121121 break ;
122- case this . TYPE_SPRITE_POSITION_TEXTURECOLOR :
122+ case cc . SHADER_SPRITE_POSITION_TEXTURECOLOR :
123123 program . initWithVertexShaderByteArray ( cc . SHADER_SPRITE_POSITION_TEXTURE_COLOR_VERT , cc . SHADER_POSITION_TEXTURE_COLOR_FRAG ) ;
124124 program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
125125 program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
126126 program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
127127 break ;
128- case this . TYPE_POSITION_TEXTURECOLOR_ALPHATEST :
128+ case cc . SHADER_POSITION_TEXTURECOLORALPHATEST :
129129 program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_TEXTURE_COLOR_VERT , cc . SHADER_POSITION_TEXTURE_COLOR_ALPHATEST_FRAG ) ;
130130 program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
131131 program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
132132 program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
133133 break ;
134- case this . TYPE_SPRITE_POSITION_TEXTURECOLOR_ALPHATEST :
134+ case cc . SHADER_SPRITE_POSITION_TEXTURECOLORALPHATEST :
135135 program . initWithVertexShaderByteArray ( cc . SHADER_SPRITE_POSITION_TEXTURE_COLOR_VERT , cc . SHADER_POSITION_TEXTURE_COLOR_ALPHATEST_FRAG ) ;
136136 program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
137137 program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
138138 program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
139139 break ;
140- case this . TYPE_POSITION_COLOR :
140+ case cc . SHADER_POSITION_COLOR :
141141 program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_COLOR_VERT , cc . SHADER_POSITION_COLOR_FRAG ) ;
142142 program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
143143 program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
144144 break ;
145- case this . TYPE_SPRITE_POSITION_COLOR :
145+ case cc . SHADER_SPRITE_POSITION_COLOR :
146146 program . initWithVertexShaderByteArray ( cc . SHADER_SPRITE_POSITION_COLOR_VERT , cc . SHADER_POSITION_COLOR_FRAG ) ;
147147 program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
148148 program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
149149 break ;
150- case this . TYPE_POSITION_TEXTURE :
150+ case cc . SHADER_POSITION_TEXTURE :
151151 program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_TEXTURE_VERT , cc . SHADER_POSITION_TEXTURE_FRAG ) ;
152152 program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
153153 program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
154154 break ;
155- case this . TYPE_POSITION_TEXTURE_UCOLOR :
155+ case cc . SHADER_POSITION_TEXTURE_UCOLOR :
156156 program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_TEXTURE_UCOLOR_VERT , cc . SHADER_POSITION_TEXTURE_UCOLOR_FRAG ) ;
157157 program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
158158 program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
159159 break ;
160- case this . TYPE_POSITION_TEXTURE_A8COLOR :
160+ case cc . SHADER_POSITION_TEXTUREA8COLOR :
161161 program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_TEXTURE_A8COLOR_VERT , cc . SHADER_POSITION_TEXTURE_A8COLOR_FRAG ) ;
162162 program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
163163 program . addAttribute ( cc . ATTRIBUTE_NAME_COLOR , cc . VERTEX_ATTRIB_COLOR ) ;
164164 program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
165165 break ;
166- case this . TYPE_POSITION_UCOLOR :
166+ case cc . SHADER_POSITION_UCOLOR :
167167 program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_UCOLOR_VERT , cc . SHADER_POSITION_UCOLOR_FRAG ) ;
168168 program . addAttribute ( "aVertex" , cc . VERTEX_ATTRIB_POSITION ) ;
169169 break ;
170- case this . TYPE_POSITION_LENGTH_TEXTURECOLOR :
170+ case cc . SHADER_POSITION_LENGTHTEXTURECOLOR :
171171 program . initWithVertexShaderByteArray ( cc . SHADER_POSITION_COLOR_LENGTH_TEXTURE_VERT , cc . SHADER_POSITION_COLOR_LENGTH_TEXTURE_FRAG ) ;
172172 program . addAttribute ( cc . ATTRIBUTE_NAME_POSITION , cc . VERTEX_ATTRIB_POSITION ) ;
173173 program . addAttribute ( cc . ATTRIBUTE_NAME_TEX_COORD , cc . VERTEX_ATTRIB_TEX_COORDS ) ;
@@ -188,85 +188,6 @@ cc.shaderCache = /** @lends cc.shaderCache# */{
188188 * loads the default shaders
189189 */
190190 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 ;
270191 } ,
271192
272193 /**
@@ -336,6 +257,12 @@ cc.shaderCache = /** @lends cc.shaderCache# */{
336257 * @param {String } key
337258 */
338259 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+
339266 return this . _programs [ key ] ;
340267 } ,
341268
@@ -345,7 +272,7 @@ cc.shaderCache = /** @lends cc.shaderCache# */{
345272 * @return {cc.GLProgram }
346273 */
347274 getProgram : function ( shaderName ) {
348- return this . _programs [ shaderName ] ;
275+ return this . programForKey ( shaderName ) ;
349276 } ,
350277
351278 /**
0 commit comments