@@ -180,56 +180,59 @@ static Shader GetShader(string shaderName) {
180
180
public static readonly bool supportComputeBuffer ;
181
181
182
182
static CanvasShader ( ) {
183
- var convexFillShader = GetShader ( "UIWidgets/canvas_convexFill" ) ;
184
- var fill0Shader = GetShader ( "UIWidgets/canvas_fill0" ) ;
185
- var fill1Shader = GetShader ( "UIWidgets/canvas_fill1" ) ;
186
- var stroke0Shader = GetShader ( "UIWidgets/canvas_stroke0" ) ;
187
- var stroke1Shader = GetShader ( "UIWidgets/canvas_stroke1" ) ;
188
- var texShader = GetShader ( "UIWidgets/canvas_tex" ) ;
189
- var stencilShader = GetShader ( "UIWidgets/canvas_stencil" ) ;
190
- var filterShader = GetShader ( "UIWidgets/canvas_filter" ) ;
191
- var shadowBoxShader = GetShader ( "UIWidgets/ShadowBox" ) ;
192
- var shadowRBoxShader = GetShader ( "UIWidgets/ShadowRBox" ) ;
193
- var strokeAlphaShader = GetShader ( "UIWidgets/canvas_strokeAlpha" ) ;
194
-
195
183
var convexFillShaderCompute = GetShader ( "UIWidgets/canvas_convexFill_cb" ) ;
196
- var fill0ShaderCompute = GetShader ( "UIWidgets/canvas_fill0_cb" ) ;
197
- var fill1ShaderCompute = GetShader ( "UIWidgets/canvas_fill1_cb" ) ;
198
- var stroke0ShaderCompute = GetShader ( "UIWidgets/canvas_stroke0_cb" ) ;
199
- var stroke1ShaderCompute = GetShader ( "UIWidgets/canvas_stroke1_cb" ) ;
200
- var texShaderCompute = GetShader ( "UIWidgets/canvas_tex_cb" ) ;
201
- var stencilShaderCompute = GetShader ( "UIWidgets/canvas_stencil_cb" ) ;
202
- var filterShaderCompute = GetShader ( "UIWidgets/canvas_filter_cb" ) ;
203
- var shadowBoxShaderCompute = GetShader ( "UIWidgets/ShadowBox_cb" ) ;
204
- var shadowRBoxShaderCompute = GetShader ( "UIWidgets/ShadowRBox_cb" ) ;
205
- var strokeAlphaShaderCompute = GetShader ( "UIWidgets/canvas_strokeAlpha_cb" ) ;
206
-
207
- _convexFillMat = new MaterialByBlendModeStencilComp ( convexFillShader ) ;
208
- _fill0Mat = new MaterialByStencilComp ( fill0Shader ) ;
209
- _fill1Mat = new MaterialByBlendMode ( fill1Shader ) ;
210
- _stroke0Mat = new MaterialByBlendModeStencilComp ( stroke0Shader ) ;
211
- _stroke1Mat = new Material ( stroke1Shader ) { hideFlags = HideFlags . HideAndDontSave } ;
212
- _strokeAlphaMat = new MaterialByBlendModeStencilComp ( strokeAlphaShader ) ;
213
- _texMat = new MaterialByBlendModeStencilComp ( texShader ) ;
214
- _stencilMat = new Material ( stencilShader ) { hideFlags = HideFlags . HideAndDontSave } ;
215
- _filterMat = new Material ( filterShader ) { hideFlags = HideFlags . HideAndDontSave } ;
216
- _shadowBox = new Material ( shadowBoxShader ) { hideFlags = HideFlags . HideAndDontSave } ;
217
- _shadowRBox = new Material ( shadowRBoxShader ) { hideFlags = HideFlags . HideAndDontSave } ;
218
-
219
- _convexFillMat_cb = new MaterialByBlendModeStencilComp ( convexFillShaderCompute ) ;
220
- _fill0Mat_cb = new MaterialByStencilComp ( fill0ShaderCompute ) ;
221
- _fill1Mat_cb = new MaterialByBlendMode ( fill1ShaderCompute ) ;
222
- _stroke0Mat_cb = new MaterialByBlendModeStencilComp ( stroke0ShaderCompute ) ;
223
- _stroke1Mat_cb = new Material ( stroke1ShaderCompute ) { hideFlags = HideFlags . HideAndDontSave } ;
224
- _strokeAlphaMat_cb = new MaterialByBlendModeStencilComp ( strokeAlphaShaderCompute ) ;
225
- _texMat_cb = new MaterialByBlendModeStencilComp ( texShaderCompute ) ;
226
- _stencilMat_cb = new Material ( stencilShaderCompute ) { hideFlags = HideFlags . HideAndDontSave } ;
227
- _filterMat_cb = new Material ( filterShaderCompute ) { hideFlags = HideFlags . HideAndDontSave } ;
228
- _shadowBox_cb = new Material ( shadowBoxShaderCompute ) { hideFlags = HideFlags . HideAndDontSave } ;
229
- _shadowRBox_cb = new Material ( shadowRBoxShaderCompute ) { hideFlags = HideFlags . HideAndDontSave } ;
230
-
231
- //check compute buffer support
232
184
supportComputeBuffer = convexFillShaderCompute . isSupported ;
185
+
186
+ //if compute buffer is not supported, load normal shaders
187
+ if ( ! PictureFlusher . supportComputeBuffer ) {
188
+ var convexFillShader = GetShader ( "UIWidgets/canvas_convexFill" ) ;
189
+ var fill0Shader = GetShader ( "UIWidgets/canvas_fill0" ) ;
190
+ var fill1Shader = GetShader ( "UIWidgets/canvas_fill1" ) ;
191
+ var stroke0Shader = GetShader ( "UIWidgets/canvas_stroke0" ) ;
192
+ var stroke1Shader = GetShader ( "UIWidgets/canvas_stroke1" ) ;
193
+ var texShader = GetShader ( "UIWidgets/canvas_tex" ) ;
194
+ var stencilShader = GetShader ( "UIWidgets/canvas_stencil" ) ;
195
+ var filterShader = GetShader ( "UIWidgets/canvas_filter" ) ;
196
+ var shadowBoxShader = GetShader ( "UIWidgets/ShadowBox" ) ;
197
+ var shadowRBoxShader = GetShader ( "UIWidgets/ShadowRBox" ) ;
198
+ var strokeAlphaShader = GetShader ( "UIWidgets/canvas_strokeAlpha" ) ;
199
+
200
+ _convexFillMat = new MaterialByBlendModeStencilComp ( convexFillShader ) ;
201
+ _fill0Mat = new MaterialByStencilComp ( fill0Shader ) ;
202
+ _fill1Mat = new MaterialByBlendMode ( fill1Shader ) ;
203
+ _stroke0Mat = new MaterialByBlendModeStencilComp ( stroke0Shader ) ;
204
+ _stroke1Mat = new Material ( stroke1Shader ) { hideFlags = HideFlags . HideAndDontSave } ;
205
+ _strokeAlphaMat = new MaterialByBlendModeStencilComp ( strokeAlphaShader ) ;
206
+ _texMat = new MaterialByBlendModeStencilComp ( texShader ) ;
207
+ _stencilMat = new Material ( stencilShader ) { hideFlags = HideFlags . HideAndDontSave } ;
208
+ _filterMat = new Material ( filterShader ) { hideFlags = HideFlags . HideAndDontSave } ;
209
+ _shadowBox = new Material ( shadowBoxShader ) { hideFlags = HideFlags . HideAndDontSave } ;
210
+ _shadowRBox = new Material ( shadowRBoxShader ) { hideFlags = HideFlags . HideAndDontSave } ;
211
+ }
212
+ else {
213
+ var fill0ShaderCompute = GetShader ( "UIWidgets/canvas_fill0_cb" ) ;
214
+ var fill1ShaderCompute = GetShader ( "UIWidgets/canvas_fill1_cb" ) ;
215
+ var stroke0ShaderCompute = GetShader ( "UIWidgets/canvas_stroke0_cb" ) ;
216
+ var stroke1ShaderCompute = GetShader ( "UIWidgets/canvas_stroke1_cb" ) ;
217
+ var texShaderCompute = GetShader ( "UIWidgets/canvas_tex_cb" ) ;
218
+ var stencilShaderCompute = GetShader ( "UIWidgets/canvas_stencil_cb" ) ;
219
+ var filterShaderCompute = GetShader ( "UIWidgets/canvas_filter_cb" ) ;
220
+ var shadowBoxShaderCompute = GetShader ( "UIWidgets/ShadowBox_cb" ) ;
221
+ var shadowRBoxShaderCompute = GetShader ( "UIWidgets/ShadowRBox_cb" ) ;
222
+ var strokeAlphaShaderCompute = GetShader ( "UIWidgets/canvas_strokeAlpha_cb" ) ;
223
+
224
+ _convexFillMat_cb = new MaterialByBlendModeStencilComp ( convexFillShaderCompute ) ;
225
+ _fill0Mat_cb = new MaterialByStencilComp ( fill0ShaderCompute ) ;
226
+ _fill1Mat_cb = new MaterialByBlendMode ( fill1ShaderCompute ) ;
227
+ _stroke0Mat_cb = new MaterialByBlendModeStencilComp ( stroke0ShaderCompute ) ;
228
+ _stroke1Mat_cb = new Material ( stroke1ShaderCompute ) { hideFlags = HideFlags . HideAndDontSave } ;
229
+ _strokeAlphaMat_cb = new MaterialByBlendModeStencilComp ( strokeAlphaShaderCompute ) ;
230
+ _texMat_cb = new MaterialByBlendModeStencilComp ( texShaderCompute ) ;
231
+ _stencilMat_cb = new Material ( stencilShaderCompute ) { hideFlags = HideFlags . HideAndDontSave } ;
232
+ _filterMat_cb = new Material ( filterShaderCompute ) { hideFlags = HideFlags . HideAndDontSave } ;
233
+ _shadowBox_cb = new Material ( shadowBoxShaderCompute ) { hideFlags = HideFlags . HideAndDontSave } ;
234
+ _shadowRBox_cb = new Material ( shadowRBoxShaderCompute ) { hideFlags = HideFlags . HideAndDontSave } ;
235
+ }
233
236
}
234
237
235
238
static readonly int _viewportId = Shader . PropertyToID ( "_viewport" ) ;
0 commit comments