Esempio n. 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);
            }
        }
Esempio n. 2
0
        public VisHost(Player.Player player)
            : base(
                GameWindowSettings.Default,
                //new GameWindowSettings {
                //    IsMultiThreaded = false,
                //    UpdateFrequency = 120
                //},
                new NativeWindowSettings
        {
            Size       = new Vector2i(1600, 900),
            APIVersion = new Version(4, 5),
            Profile    = ContextProfile.Compatability,
            Flags      = ContextFlags.Default,
            Title      = "NeuralBeat3",
            API        = ContextAPI.OpenGL
        })
        {
            Player = player;


            //TargetRenderFrequency = 144f;
            //this.RenderFrequency = 144.0;
            VSync = VSyncMode.On;

            UpdateFrame += VisHost_UpdateFrame;
            RenderFrame += VisHost_RenderFrame;
            Load        += VisHost_Load;
            Unload      += VisHost_Unload;
            Resize      += VisHost_Resize;
            Closed      += VisHost_Closed;
            Closing     += VisHost_Closing;

            //Keyboard.KeyDown += Keyboard_KeyDown;
            //Keyboard.KeyUp += Keyboard_KeyUp;
            this.KeyDown += Keyboard_KeyDown;
            this.KeyUp   += Keyboard_KeyUp;

            // set default shader loader
            ShaderProgram.DefaultLoader = new OpenTKExtensions.Loaders.MultiPathFileSystemLoader(SHADERPATH);


            // framedata setup
            frameData.GlobalTextures = globalTextures;

            // create components
            //components.Add(font = new Font(@"res\font\calibrib.ttf_sdf.2048.png", @"res\font\calibrib.ttf_sdf.2048.txt"), 1);
            components.Add(font            = new Font(@"res\font\lucon.ttf_sdf.1024.png", @"res\font\lucon.ttf_sdf.1024.txt"), 1);
            components.Add(text            = new TextManager("texmgr", font), 2);
            components.Add(keyboardActions = new KeyboardActionManager()
            {
                KeyboardPriority = int.MaxValue
            }, 1);
            components.Add(globalTextures);
            components.Add(frameCounter = new OpenTKExtensions.Components.FrameCounter(font));
            components.Add(switcher     = new ComponentSwitcher()
            {
                KeyForward = new KeySpec(Keys.Tab), KeyBackward = new KeySpec(Keys.Tab, KeyModifiers.Shift)
            });

            switcher.Add(new Renderers.AnalysisDebugRenderer(font, Player));
            switcher.Add(new Renderers.BasicShaderRenderer());
            switcher.Add(new Renderers.ParticleRenderer());

            var graph = new ComponentGraph();

            graph.Add(new ParticleNode()
            {
                Name = "particles"
            });
            graph.Add(new ScreenOutputNode()
            {
                Name = "output"
            });;
            graph.AddEdge(new NodePortReference()
            {
                Node = "particles", Port = "tex"
            }, new NodePortReference()
            {
                Node = "output", Port = "tex"
            });

            switcher.Add(graph);


            //Thread.CurrentThread.Priority = ThreadPriority.AboveNormal;
        }