Ejemplo n.º 1
0
 private ShaderWindow(ShaderWindowSettings configuration, DisplayDevice display)
     : base(configuration.Width, configuration.Height,
            configuration.GraphicsMode == null ? GraphicsMode.Default : configuration.GraphicsMode.CreateGraphicsMode(),
            DefaultTitle, GameWindowFlags.Default, display)
 {
     settings              = configuration;
     VSync                 = configuration.VSync;
     swapSync              = configuration.SwapSync;
     clearColor            = configuration.ClearColor;
     clearMask             = configuration.ClearMask;
     Title                 = configuration.Title ?? DefaultTitle;
     CursorVisible         = configuration.CursorVisible;
     Location              = configuration.Location.GetValueOrDefault(Location);
     WindowBorder          = configuration.WindowBorder;
     WindowState           = configuration.WindowState;
     Viewport              = DefaultViewport;
     Scissor               = DefaultViewport;
     TargetRenderFrequency = configuration.TargetRenderFrequency;
     TargetUpdateFrequency = configuration.TargetUpdateFrequency.GetValueOrDefault(
         VSync != VSyncMode.Off && configuration.TargetRenderFrequency == 0
         ? display.RefreshRate
         : configuration.TargetRenderFrequency);
     updateFrame     = new Subject <FrameEvent>();
     renderFrame     = new Subject <FrameEvent>();
     resourceManager = new ResourceManager();
     shaders         = new List <Shader>();
 }
Ejemplo n.º 2
0
        public ShaderWindow(ShaderWindowSettings configuration)
        //     : this(configuration, DisplayDevice.GetDisplay(configuration.DisplayDevice) ?? DisplayDevice.Default)
        // {
        // }

        // private ShaderWindow(ShaderWindowSettings configuration, DisplayDevice display)
        // : base(configuration.Width, configuration.Height,
        //        configuration.GraphicsMode == null ? GraphicsMode.Default : configuration.GraphicsMode.CreateGraphicsMode(),
        //        DefaultTitle, GameWindowFlags.Default, display)
        {
            settings = configuration;
            // VSync = configuration.VSync;
            // swapSync = configuration.SwapSync;
            // clearColor = configuration.ClearColor;
            // clearMask = configuration.ClearMask;
            // Title = configuration.Title ?? DefaultTitle;
            // CursorVisible = configuration.CursorVisible;
            // Location = configuration.Location.GetValueOrDefault(Location);
            // WindowBorder = configuration.WindowBorder;
            // WindowState = configuration.WindowState;

            // TargetRenderFrequency = configuration.TargetRenderFrequency;
            // TargetUpdateFrequency = configuration.TargetUpdateFrequency.GetValueOrDefault(
            //     VSync != VSyncMode.Off && configuration.TargetRenderFrequency == 0
            //     ? display.RefreshRate
            //     : configuration.TargetRenderFrequency);
            updateFrame     = new Subject <FrameEvent>();
            renderFrame     = new Subject <FrameEvent>();
            resourceManager = new ResourceManager();
            shaders         = new List <Shader>();
            Console.WriteLine("hello window");
        }
        protected override void OnLoad(EventArgs e)
        {
            var loadResult = DialogResult.Cancel;

            CurrentDirectory = Environment.CurrentDirectory;
            try { configuration = ConfigurationHelper.LoadConfiguration(out loadResult); }
            catch (SecurityException ex) { ShowReadError(ex.Message); }
            catch (IOException ex) { ShowReadError(ex.Message); }
            catch (XmlException ex) { ShowReadError(ex.Message); }
            catch (InvalidOperationException ex)
            {
                ShowReadError(ex.InnerException != null ? ex.InnerException.Message : ex.Message);
            }

            if (loadResult == DialogResult.Cancel)
            {
                Close();
                return;
            }

            if (Owner != null)
            {
                glslEditor.Icon     = Icon = Owner.Icon;
                glslEditor.ShowIcon = ShowIcon = true;
            }

            initialHeight = Height;
            shaderCollectionEditor.Items  = configuration.Shaders;
            meshCollectionEditor.Items    = configuration.Meshes;
            textureCollectionEditor.Items = configuration.Textures;
            initialCollectionEditorHeight = shaderCollectionEditor.Height;
            UpdateSelectedPage();
            base.OnLoad(e);
        }
Ejemplo n.º 4
0
        public static void SaveConfiguration(ShaderWindowSettings configuration)
        {
            var serializer = new XmlSerializer(typeof(ShaderWindowSettings));

            using (var writer = XmlWriter.Create(DefaultConfigurationFile, new XmlWriterSettings {
                Indent = true
            }))
            {
                serializer.Serialize(writer, configuration);
            }
        }
Ejemplo n.º 5
0
        internal static IObservable <ShaderWindow> CreateWindow(ShaderWindowSettings configuration)
        {
            return(Observable.Create <ShaderWindow>(observer =>
            {
                // return Task.Factory.StartNew(() =>
                // {
                // GraphicsContext.ShareContexts = false;
                using (var window = new ShaderWindow(configuration))
                    // using (var notification = cancellationToken.Register(window.Close))
                    using (var disposable = SubjectManager.ReserveSubject())
                    {
                        var subject = disposable.Subject;
                        window.Load += delegate
                        {
                            observer.OnNext(window);
                            subject.OnNext(window);
                        };

                        window.Unload += delegate
                        {
                            subject.OnCompleted();
                            observer.OnCompleted();
                        };

                        try { window.Run(); }
                        catch (Exception ex)
                        {
                            observer.OnError(ex);
                            subject.OnError(ex);
                        }
                    }
                // },
                // cancellationToken,
                // TaskCreationOptions.LongRunning,
                // TaskScheduler.Default);
                return Disposable.Empty;
            }));
        }
Ejemplo n.º 6
0
 public ShaderWindow(ShaderWindowSettings configuration)
     : this(configuration, DisplayDevice.GetDisplay(configuration.DisplayDevice) ?? DisplayDevice.Default)
 {
 }