anx.framework/Samples/WpfEditor/MainWindow.xaml.cs
SND\AstrorEnales_cp ef734ddcd3 Implemented the MediaPlayer and MediaQueue classes as preparation for native Song playback.
Also added the FrameworkDispatcher calls in the Game class.
Checking for possible fire and forget sound instances to be disposed in the FrameworkDispatcher update chain.
2015-03-15 01:11:17 +01:00

65 lines
1.6 KiB
C#

using System;
using System.Threading;
using System.Windows;
using System.Windows.Threading;
using ANX.Framework;
using ANX.Framework.Graphics;
using ANX.Framework.NonXNA;
// This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license
namespace WpfEditor
{
public partial class MainWindow
{
private GraphicsDevice device;
private readonly ThreadStart emptyThreadStart;
public MainWindow()
{
InitializeComponent();
emptyThreadStart = delegate { };
//AddInSystemFactory.Instance.SetPreferredSystem(AddInType.RenderSystem, "OpenGL3");
AddInSystemFactory.Instance.SetPreferredSystem(AddInType.RenderSystem, "DirectX10");
}
protected override void OnActivated(EventArgs e)
{
base.OnActivated(e);
Initialize();
while (IsVisible)
{
if (Application.Current != null)
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, emptyThreadStart);
Tick();
}
}
public void Initialize()
{
device = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, GraphicsProfile.HiDef,
new PresentationParameters
{
BackBufferWidth = GamePanel.Width,
BackBufferHeight = GamePanel.Height,
BackBufferFormat = SurfaceFormat.Color,
DeviceWindowHandle = GamePanel.Handle,
PresentationInterval = PresentInterval.Default,
});
}
public void Tick()
{
device.Clear(ClearOptions.Target, Color.CornflowerBlue, 0f, 0);
device.Present();
}
}
}