@@ -21,23 +21,7 @@ var node = {
21
21
return key ;
22
22
} ,
23
23
24
- createShaderDefinition : function ( device , options ) {
25
- // generate graph
26
- var rootDeclGLSL = options . shaderGraph . generateRootDeclGlsl ( ) ;
27
- var rootCallGLSL = options . shaderGraph . generateRootCallGlsl ( ) ;
28
-
29
- // GENERATE ATTRIBUTES
30
- var attributes = {
31
- vertex_position : SEMANTIC_POSITION ,
32
- vertex_normal : SEMANTIC_NORMAL ,
33
- vertex_color : SEMANTIC_COLOR ,
34
- vertex_texCoord0 : SEMANTIC_TEXCOORD0
35
- } ;
36
- if ( options . skin ) {
37
- attributes . vertex_boneWeights = SEMANTIC_BLENDWEIGHT ;
38
- attributes . vertex_boneIndices = SEMANTIC_BLENDINDICES ;
39
- }
40
-
24
+ _generateVertexShader : function ( device , options , rootDeclGLSL , rootCallGLSL ) {
41
25
var chunks = shaderChunks ;
42
26
43
27
// GENERATE VERTEX SHADER
@@ -109,6 +93,12 @@ var node = {
109
93
vshader = startCode + vshader ;
110
94
}
111
95
96
+ return vshader ;
97
+ } ,
98
+
99
+ _generateFragmentShader : function ( device , options , rootDeclGLSL , rootCallGLSL ) {
100
+ var chunks = shaderChunks ;
101
+
112
102
// GENERATE FRAGMENT SHADER
113
103
if ( options . forceFragmentPrecision && options . forceFragmentPrecision != "highp" &&
114
104
options . forceFragmentPrecision !== "mediump" && options . forceFragmentPrecision !== "lowp" )
@@ -119,7 +109,7 @@ var node = {
119
109
if ( options . forceFragmentPrecision === "mediump" && device . maxPrecision === "lowp" ) options . forceFragmentPrecision = "lowp" ;
120
110
}
121
111
122
- code = '' ;
112
+ var code = '' ;
123
113
124
114
if ( device . webgl2 ) {
125
115
code += versionCode ( device ) ;
@@ -179,7 +169,30 @@ var node = {
179
169
180
170
code += end ( ) ;
181
171
182
- var fshader = code ;
172
+ return code ;
173
+ } ,
174
+
175
+ createShaderDefinition : function ( device , options ) {
176
+ // generate graph
177
+ // TODO: support generation of shader variants based on options
178
+ var rootDeclGLSL = options . shaderGraph . generateRootDeclGlsl ( ) ;
179
+ var rootCallGLSL = options . shaderGraph . generateRootCallGlsl ( ) ;
180
+
181
+ // GENERATE ATTRIBUTES
182
+ var attributes = {
183
+ vertex_position : SEMANTIC_POSITION ,
184
+ vertex_normal : SEMANTIC_NORMAL ,
185
+ vertex_color : SEMANTIC_COLOR ,
186
+ vertex_texCoord0 : SEMANTIC_TEXCOORD0
187
+ } ;
188
+ if ( options . skin ) {
189
+ attributes . vertex_boneWeights = SEMANTIC_BLENDWEIGHT ;
190
+ attributes . vertex_boneIndices = SEMANTIC_BLENDINDICES ;
191
+ }
192
+
193
+ var vshader = this . _generateVertexShader ( device , options , rootDeclGLSL , rootCallGLSL ) ;
194
+
195
+ var fshader = this . _generateFragmentShader ( device , options , rootDeclGLSL , rootCallGLSL ) ;
183
196
184
197
return {
185
198
attributes : attributes ,
0 commit comments