/// <summary> /// Creates a new effect pass. /// Marked as internal to prevent users from creating it. /// </summary> internal SilverlightEffectPass(string name, GraphicsDevice device, Stream vertexShaderCode, Stream pixelShaderCode, Stream vertexShaderParameters, Stream pixelShaderParameters) { this.device = device; Name = name; // Assembly codes Dictionary <string, SilverlightEffectInternalParameter> tempParameters = new Dictionary <string, SilverlightEffectInternalParameter>(); // Shaders if (vertexShaderCode != null) { vertexShader = VertexShader.FromStream(device, vertexShaderCode); ExtractConstantsRegisters(vertexShaderParameters, false, tempParameters); } if (pixelShaderCode != null) { pixelShader = PixelShader.FromStream(device, pixelShaderCode); ExtractConstantsRegisters(pixelShaderParameters, true, tempParameters); } parameters = new List <SilverlightEffectInternalParameter>(tempParameters.Values); for (int index = 0; index < SamplerStatesCount; index++) { samplerStates[index] = new SilverlightEffectSamplerState(index); } }
/// <summary> /// Creates a new effect pass. /// Marked as internal to prevent users from creating it. /// </summary> internal SilverlightEffectPass(string name, GraphicsDevice device, Stream vertexShaderCode, Stream pixelShaderCode, Stream vertexShaderParameters, Stream pixelShaderParameters) { this.device = device; Name = name; // Shaders vertexShader = VertexShader.FromStream(device, vertexShaderCode); pixelShader = PixelShader.FromStream(device, pixelShaderCode); // Assembly codes Dictionary<string, SilverlightEffectInternalParameter> tempParameters = new Dictionary<string, SilverlightEffectInternalParameter>(); ExtractConstantsRegisters(vertexShaderParameters, false, tempParameters); ExtractConstantsRegisters(pixelShaderParameters, true, tempParameters); parameters = new List<SilverlightEffectInternalParameter>(tempParameters.Values); for (int index = 0; index < SamplerStatesCount; index++) { samplerStates[index] = new SilverlightEffectSamplerState(index); } }