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>(); }
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); }
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); } }
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; })); }
public ShaderWindow(ShaderWindowSettings configuration) : this(configuration, DisplayDevice.GetDisplay(configuration.DisplayDevice) ?? DisplayDevice.Default) { }