示例#1
0
        public AnalysisDebugRenderer(Font font, Player.Player player)
        {
            projection = Matrix4.CreateOrthographicOffCenter(0f, 1f, 1f, 0f, 0.0f, 10f);  // 0,0 in top left

            float offset    = 1.0f;
            int   drawOrder = 1;

            components.Add(waterfall = new DebugSpectrumWaterfall()
            {
                DrawOrder = drawOrder++, ModelMatrix = GetLayout(0.5f, ref offset), ProjectionMatrix = projection
            });
            components.Add(freqTracker = new BasicShaderHost("debugpeakfreq.glsl|vert", "debugpeakfreq.glsl|frag")
            {
                DrawOrder = drawOrder++, ModelMatrix = GetLayout(0.3f, ref offset), ProjectionMatrix = projection
            });
            components.Add(spectrum = new DebugSpectrum()
            {
                DrawOrder = drawOrder++, ModelMatrix = GetLayout(0.2f, ref offset), ProjectionMatrix = projection
            });
            components.Add(waterfall2 = new DebugSpectrum2()
            {
                DrawOrder = drawOrder++, ModelMatrix = GetLayout(0.2f, ref offset), ProjectionMatrix = projection
            });
            components.Add(datagraphs = new DebugAudioData(font, player.FilterOutputNames)
            {
                DrawOrder = drawOrder++, ModelMatrix = GetLayout(10.0f, ref offset), ProjectionMatrix = projection
            });
            components.Add(keyboardActions = new KeyboardActionManager()
            {
                KeyboardPriority = 100
            }, 1);

            components.Add(parameterEditor = new ParameterEditor(font)
            {
                DrawOrder = drawOrder++
            });

            keyboardActions.Add(Keys.Up, 0, () => { ypostarget += yshift; });
            keyboardActions.Add(Keys.Down, 0, () => { ypostarget -= yshift; });

            //parameterEditor.AddParameter("p1", () => 123.4567f, (f) => { });
            //parameterEditor.AddParameter("p2", () => 0.007f, (f) => { });

            // copy parameters over
            foreach (var p in player.FilterParameters)
            {
                parameterEditor.AddParameter($"{p.Item1}_{p.Item2.Name}", p.Item2.GetValue, p.Item2.SetValue, p.Item2.Delta);
            }
        }
示例#2
0
 public BasicShaderRenderer()
 {
     components.Add(shaderHost = new BasicShaderHost(@"shaderhost.glsl|vert", @"effects/pulse.glsl|effect"));
 }