/// <summary> /// Called when the application is creating its Ultraviolet context. /// </summary> /// <returns>The Ultraviolet context.</returns> protected override UltravioletContext OnCreatingUltravioletContext() { var graphicsConfig = OpenGLGraphicsConfiguration.Default; graphicsConfig.MultiSampleBuffers = 1; graphicsConfig.MultiSampleSamples = 8; graphicsConfig.SrgbBuffersEnabled = false; graphicsConfig.SrgbDefaultForTexture2D = false; var contextConfig = new SDL2UltravioletConfiguration(); contextConfig.SupportsHighDensityDisplayModes = true; contextConfig.EnableServiceMode = ShouldRunInServiceMode(); contextConfig.WatchViewFilesForChanges = ShouldDynamicallyReloadContent(); contextConfig.Plugins.Add(new OpenGLGraphicsPlugin(graphicsConfig)); contextConfig.Plugins.Add(new BASSAudioPlugin()); contextConfig.Plugins.Add(new FreeTypeFontPlugin()); contextConfig.Plugins.Add(new PresentationFoundationPlugin()); PopulateConfiguration(contextConfig); #if DEBUG contextConfig.Debug = true; contextConfig.DebugLevels = DebugLevels.Error | DebugLevels.Warning; contextConfig.DebugCallback = (uv, level, message) => { System.Diagnostics.Debug.WriteLine(message); }; #endif return(new SDL2UltravioletContext(this, contextConfig)); }
protected override UltravioletContext OnCreatingUltravioletContext() { var configuration = new SDL2UltravioletConfiguration(); configuration.Plugins.Add(new OpenGLGraphicsPlugin()); configuration.Plugins.Add(new BASSAudioPlugin()); return(new SDL2UltravioletContext(this, configuration)); }
protected override UltravioletContext OnCreatingUltravioletContext() { var configuration = new SDL2UltravioletConfiguration(); configuration.EnableServiceMode = ShouldRunInServiceMode(); configuration.WatchViewFilesForChanges = ShouldDynamicallyReloadContent(); configuration.Plugins.Add(new OpenGLGraphicsPlugin()); configuration.Plugins.Add(new BASSAudioPlugin()); configuration.Plugins.Add(new FreeTypeFontPlugin()); configuration.Plugins.Add(new PresentationFoundationPlugin()); return(new SDL2UltravioletContext(this, configuration)); }
private static SDL2UltravioletConfiguration SetConfiguration() { var configuration = new SDL2UltravioletConfiguration { InitialWindowPosition = new Rectangle(Point2.Zero, new Size2(1280, 720)), }; configuration.Plugins.Add(new OpenGLGraphicsPlugin()); configuration.Plugins.Add(new BASSAudioPlugin()); configuration.Plugins.Add(new FreeTypeFontPlugin()); #if DEBUG AddDebugConfig(configuration); #endif return(configuration); }
/// <summary> /// Initializes a new instance of the <see cref="SDL2UltravioletContext"/> class. /// </summary> /// <param name="host">The object that is hosting the Ultraviolet context.</param> /// <param name="configuration">The Ultraviolet Framework configuration settings for this context.</param> public unsafe SDL2UltravioletContext(IUltravioletHost host, SDL2UltravioletConfiguration configuration) : base(host, configuration) { Contract.Require(configuration, nameof(configuration)); if (!InitSDL(configuration)) { throw new SDL2Exception(); } this.onWindowDrawing = (context, time, window) => ((SDL2UltravioletContext)context).OnWindowDrawing(time, window); this.onWindowDrawn = (context, time, window) => ((SDL2UltravioletContext)context).OnWindowDrawn(time, window); eventFilter = new SDL_EventFilter(SDLEventFilter); eventFilterPtr = Marshal.GetFunctionPointerForDelegate(eventFilter); SDL_SetEventFilter(eventFilterPtr, IntPtr.Zero); LoadSubsystemAssemblies(configuration); this.swapChainManager = IsRunningInServiceMode ? new DummySwapChainManager(this) : SwapChainManager.Create(); this.platform = InitializePlatformSubsystem(configuration); this.graphics = InitializeGraphicsSubsystem(configuration); if (!this.platform.IsPrimaryWindowInitialized) { throw new InvalidOperationException(UltravioletStrings.PrimaryWindowMustBeInitialized); } this.audio = InitializeAudioSubsystem(configuration); this.input = InitializeInputSubsystem(); this.content = InitializeContentSubsystem(); this.ui = InitializeUISubsystem(configuration); PumpEvents(); InitializeContext(); InitializeViewProvider(configuration); InitializePlugins(configuration); }
/// <inheritdoc/> protected override UltravioletContext OnCreatingUltravioletContext() { var configuration = new SDL2UltravioletConfiguration(); configuration.Headless = headless; configuration.EnableServiceMode = serviceMode; configuration.IsHardwareInputDisabled = true; configuration.Debug = true; configuration.DebugLevels = DebugLevels.Error | DebugLevels.Warning; configuration.DebugCallback = (uv, level, message) => { System.Diagnostics.Debug.WriteLine(message); }; var needsGraphicsSubsystem = !plugins?.Any(x => x is OpenGLGraphicsPlugin) ?? true; if (needsGraphicsSubsystem) { plugins = plugins ?? new List <UltravioletPlugin>(); plugins.Add(new OpenGLGraphicsPlugin()); } var needsAudioSubsystem = !(plugins?.Any(x => x is BASSAudioPlugin || x is FMODAudioPlugin) ?? false); if (needsAudioSubsystem) { plugins = plugins ?? new List <UltravioletPlugin>(); plugins.Add(new BASSAudioPlugin()); } foreach (var plugin in plugins) { configuration.Plugins.Add(plugin); } configurer?.Invoke(configuration); return(new SDL2UltravioletContext(this, configuration)); }