- Introduced new MediaSystem creator (handling the whole Media namespace)
- Made the plugin handling internally way simpler (no tons of duplicated code anymore) - Added empty MediaSystem to have a default for now (Windows.OpenAL) - Added a PercentageCompleteAttribute which will be used to mark the current state of a class (0-100%)
This commit is contained in:
parent
ec48a838c7
commit
1cebf6f91e
@ -90,7 +90,8 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
|
||||
{
|
||||
AddInSystemFactory.Instance.Initialize();
|
||||
|
||||
AddInSystemFactory.Instance.PreferredInputSystem = "XInput";
|
||||
AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
AddInType.InputSystem, "XInput");
|
||||
XNAGamePadState xnastate = XNAGamePad.GetState(xnaplayer);
|
||||
ANXGamePadState anxstate = ANXGamePad.GetState(anxplayer);
|
||||
|
||||
|
@ -76,7 +76,8 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
|
||||
public void Setup()
|
||||
{
|
||||
AddInSystemFactory.Instance.Initialize();
|
||||
AddInSystemFactory.Instance.PreferredInputSystem = "Test";
|
||||
AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
AddInType.InputSystem, "Test");
|
||||
|
||||
}
|
||||
|
||||
|
@ -134,11 +134,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ANX.InputDevices.Test", "In
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiRenderTarget", "Samples\MultiRenderTarget\MultiRenderTarget.csproj", "{9C9C6245-35C2-4230-8E17-9038A228227F}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MediaSystems", "MediaSystems", "{6EDED295-0F32-4D05-A8EA-02F4BF89CF35}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ANX.MediaSystem.Windows.OpenAL", "MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj", "{97185A92-077D-4498-8B6A-8BFF04079044}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SubversionScc) = preSolution
|
||||
Svn-Managed = True
|
||||
Manager = AnkhSVN - Subversion Support for Visual Studio
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
@ -456,6 +456,16 @@ Global
|
||||
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|x86.ActiveCfg = Release|x86
|
||||
{9C9C6245-35C2-4230-8E17-9038A228227F}.Release|x86.Build.0 = Release|x86
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@ -493,5 +503,10 @@ Global
|
||||
{E4FFD875-95FC-48F2-8B6D-8483D0B71666} = {60824BDB-AC8A-42ED-9B79-111FB44669FF}
|
||||
{BD648BB8-EF28-453C-B4F5-EE3C93EB4DAF} = {60824BDB-AC8A-42ED-9B79-111FB44669FF}
|
||||
{6285F3EF-07DB-49C9-8CDE-A9092789FE4F} = {60824BDB-AC8A-42ED-9B79-111FB44669FF}
|
||||
{97185A92-077D-4498-8B6A-8BFF04079044} = {6EDED295-0F32-4D05-A8EA-02F4BF89CF35}
|
||||
EndGlobalSection
|
||||
GlobalSection(SubversionScc) = preSolution
|
||||
Svn-Managed = True
|
||||
Manager = AnkhSVN - Subversion Support for Visual Studio
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
@ -41,12 +41,6 @@
|
||||
<HintPath>..\lib\NLog\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Audio\AudioCategory.cs" />
|
||||
@ -420,7 +414,9 @@
|
||||
<Compile Include="Net\WriteLeaderboardsEventArgs.cs" />
|
||||
<Compile Include="NonXNA\AddIn.cs" />
|
||||
<Compile Include="NonXNA\AddInLoadingException.cs" />
|
||||
<Compile Include="NonXNA\AddInSystemInfo.cs" />
|
||||
<Compile Include="NonXNA\AddInType.cs" />
|
||||
<Compile Include="NonXNA\Development\PercentageCompleteAttribute.cs" />
|
||||
<Compile Include="NonXNA\InputDeviceFactory.cs" />
|
||||
<Compile Include="NonXNA\InputSystem\IGamePadCreator.cs" />
|
||||
<Compile Include="NonXNA\InputSystem\IKeyboard.cs" />
|
||||
@ -430,6 +426,7 @@
|
||||
<Compile Include="NonXNA\InputSystem\IKeyboardCreator.cs" />
|
||||
<Compile Include="NonXNA\InputSystem\IMouseCreator.cs" />
|
||||
<Compile Include="NonXNA\InputSystem\IMotionSensingDeviceCreator.cs" />
|
||||
<Compile Include="NonXNA\MediaSystem\IMediaSystemCreator.cs" />
|
||||
<Compile Include="NonXNA\NoInputDeviceException.cs" />
|
||||
<Compile Include="NonXNA\RenderSystem\EffectProcessorOutputFormat.cs" />
|
||||
<Compile Include="NonXNA\ICreator.cs" />
|
||||
|
@ -108,36 +108,24 @@ namespace ANX.Framework
|
||||
throw new AddInLoadingException("Error while initializing AddInSystem.", ex);
|
||||
}
|
||||
|
||||
IInputSystemCreator inputSystemCreator = AddInSystemFactory.Instance.GetDefaultCreator<IInputSystemCreator>();
|
||||
if (inputSystemCreator != null)
|
||||
{
|
||||
this.gameServices.AddService(typeof(IInputSystemCreator), inputSystemCreator);
|
||||
}
|
||||
|
||||
ISoundSystemCreator soundSystemCreator = AddInSystemFactory.Instance.GetDefaultCreator<ISoundSystemCreator>();
|
||||
if (soundSystemCreator != null)
|
||||
{
|
||||
this.gameServices.AddService(typeof(ISoundSystemCreator), soundSystemCreator);
|
||||
}
|
||||
|
||||
IRenderSystemCreator renderSystemCreator = AddInSystemFactory.Instance.GetDefaultCreator<IRenderSystemCreator>();
|
||||
if (renderSystemCreator != null)
|
||||
{
|
||||
this.gameServices.AddService(typeof(IRenderSystemCreator), renderSystemCreator);
|
||||
}
|
||||
|
||||
AddSystemCreator<IInputSystemCreator>();
|
||||
AddSystemCreator<ISoundSystemCreator>();
|
||||
AddSystemCreator<IMediaSystemCreator>();
|
||||
IRenderSystemCreator renderSystemCreator =
|
||||
AddSystemCreator<IRenderSystemCreator>();
|
||||
|
||||
logger.Info("creating GameHost");
|
||||
|
||||
if (renderSystemCreator != null)
|
||||
{
|
||||
this.host = renderSystemCreator.CreateGameHost(this);
|
||||
|
||||
this.host.Activated += new EventHandler<EventArgs>(this.HostActivated);
|
||||
this.host.Deactivated += new EventHandler<EventArgs>(this.HostDeactivated);
|
||||
this.host.Suspend += new EventHandler<EventArgs>(this.HostSuspend);
|
||||
this.host.Resume += new EventHandler<EventArgs>(this.HostResume);
|
||||
this.host.Idle += new EventHandler<EventArgs>(this.HostIdle);
|
||||
this.host.Exiting += new EventHandler<EventArgs>(this.HostExiting);
|
||||
this.host.Activated += HostActivated;
|
||||
this.host.Deactivated += HostDeactivated;
|
||||
this.host.Suspend += HostSuspend;
|
||||
this.host.Resume += HostResume;
|
||||
this.host.Idle += HostIdle;
|
||||
this.host.Exiting += HostExiting;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -163,7 +151,19 @@ namespace ANX.Framework
|
||||
//TODO: implement
|
||||
}
|
||||
|
||||
protected virtual void Initialize()
|
||||
#region AddSystemCreator
|
||||
private T AddSystemCreator<T>() where T : class, ICreator
|
||||
{
|
||||
T creator = AddInSystemFactory.Instance.GetDefaultCreator<T>();
|
||||
if (creator != null)
|
||||
{
|
||||
this.gameServices.AddService(typeof(T), creator);
|
||||
}
|
||||
return creator;
|
||||
}
|
||||
#endregion
|
||||
|
||||
protected virtual void Initialize()
|
||||
{
|
||||
//TODO: implement
|
||||
|
||||
|
@ -1,7 +1,5 @@
|
||||
#region Using Statements
|
||||
using System;
|
||||
|
||||
#endregion // Using Statements
|
||||
using System;
|
||||
using ANX.Framework.NonXNA.Development;
|
||||
|
||||
#region License
|
||||
|
||||
@ -52,64 +50,48 @@ using System;
|
||||
|
||||
namespace ANX.Framework
|
||||
{
|
||||
public class GameTime
|
||||
{
|
||||
private TimeSpan elapsedGameTime;
|
||||
private bool isRunningSlowly;
|
||||
private TimeSpan totalGameTime;
|
||||
[PercentageComplete(100)]
|
||||
public class GameTime
|
||||
{
|
||||
#region Public
|
||||
public TimeSpan ElapsedGameTime
|
||||
{
|
||||
get;
|
||||
internal set;
|
||||
}
|
||||
|
||||
public GameTime()
|
||||
{
|
||||
public TimeSpan TotalGameTime
|
||||
{
|
||||
get;
|
||||
internal set;
|
||||
}
|
||||
|
||||
}
|
||||
public bool IsRunningSlowly
|
||||
{
|
||||
get;
|
||||
internal set;
|
||||
}
|
||||
#endregion
|
||||
|
||||
public GameTime(TimeSpan totalGameTime, TimeSpan elapsedGameTime)
|
||||
{
|
||||
this.totalGameTime = totalGameTime;
|
||||
this.elapsedGameTime = elapsedGameTime;
|
||||
}
|
||||
#region Constructor
|
||||
public GameTime()
|
||||
{
|
||||
|
||||
public GameTime(TimeSpan totalGameTime, TimeSpan elapsedGameTime, bool isRunningSlowly)
|
||||
{
|
||||
this.totalGameTime = totalGameTime;
|
||||
this.elapsedGameTime = elapsedGameTime;
|
||||
this.isRunningSlowly = isRunningSlowly;
|
||||
}
|
||||
}
|
||||
|
||||
public TimeSpan ElapsedGameTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.elapsedGameTime;
|
||||
}
|
||||
internal set
|
||||
{
|
||||
this.elapsedGameTime = value;
|
||||
}
|
||||
}
|
||||
public GameTime(TimeSpan totalGameTime, TimeSpan elapsedGameTime)
|
||||
{
|
||||
this.TotalGameTime = totalGameTime;
|
||||
this.ElapsedGameTime = elapsedGameTime;
|
||||
}
|
||||
|
||||
public TimeSpan TotalGameTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.totalGameTime;
|
||||
}
|
||||
internal set
|
||||
{
|
||||
this.totalGameTime = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsRunningSlowly
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.isRunningSlowly;
|
||||
}
|
||||
internal set
|
||||
{
|
||||
this.isRunningSlowly = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
public GameTime(TimeSpan totalGameTime, TimeSpan elapsedGameTime,
|
||||
bool isRunningSlowly)
|
||||
{
|
||||
this.TotalGameTime = totalGameTime;
|
||||
this.ElapsedGameTime = elapsedGameTime;
|
||||
this.IsRunningSlowly = isRunningSlowly;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -51,6 +51,13 @@ namespace ANX.Framework.Media
|
||||
{
|
||||
public static class MediaPlayer
|
||||
{
|
||||
#region Events
|
||||
public static event EventHandler<EventArgs> ActiveSongChanged;
|
||||
public static event EventHandler<EventArgs> MediaStateChanged;
|
||||
#endregion
|
||||
|
||||
#region Public
|
||||
#region IsShuffled (TODO)
|
||||
public static bool IsShuffled
|
||||
{
|
||||
get
|
||||
@ -62,7 +69,9 @@ namespace ANX.Framework.Media
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region IsRepeating (TODO)
|
||||
public static bool IsRepeating
|
||||
{
|
||||
get
|
||||
@ -74,7 +83,9 @@ namespace ANX.Framework.Media
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Volume (TODO)
|
||||
public static float Volume
|
||||
{
|
||||
get
|
||||
@ -86,7 +97,9 @@ namespace ANX.Framework.Media
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region IsMuted (TODO)
|
||||
public static bool IsMuted
|
||||
{
|
||||
get
|
||||
@ -98,7 +111,9 @@ namespace ANX.Framework.Media
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region IsVisualizationEnabled (TODO)
|
||||
public static bool IsVisualizationEnabled
|
||||
{
|
||||
get
|
||||
@ -110,7 +125,9 @@ namespace ANX.Framework.Media
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Queue (TODO)
|
||||
public static MediaQueue Queue
|
||||
{
|
||||
get
|
||||
@ -118,7 +135,9 @@ namespace ANX.Framework.Media
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region State (TODO)
|
||||
public static MediaState State
|
||||
{
|
||||
get
|
||||
@ -126,7 +145,9 @@ namespace ANX.Framework.Media
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region PlayPosition (TODO)
|
||||
public static TimeSpan PlayPosition
|
||||
{
|
||||
get
|
||||
@ -134,7 +155,9 @@ namespace ANX.Framework.Media
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region GameHasControl (TODO)
|
||||
public static bool GameHasControl
|
||||
{
|
||||
get
|
||||
@ -142,53 +165,76 @@ namespace ANX.Framework.Media
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
public static event EventHandler<EventArgs> ActiveSongChanged;
|
||||
public static event EventHandler<EventArgs> MediaStateChanged;
|
||||
#region Constructor
|
||||
static MediaPlayer()
|
||||
{
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Play (TODO)
|
||||
public static void Play(Song song)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Play (TODO)
|
||||
public static void Play(SongCollection songCollection)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Play (TODO)
|
||||
public static void Play(SongCollection songCollection, int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Pause (TODO)
|
||||
public static void Pause()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Resume (TODO)
|
||||
public static void Resume()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Stop (TODO)
|
||||
public static void Stop()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region MoveNext (TODO)
|
||||
public static void MoveNext()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region MovePrevious (TODO)
|
||||
public static void MovePrevious()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region GetVisualizationData (TODO)
|
||||
public static void GetVisualizationData(VisualizationData data)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -76,14 +76,15 @@ namespace ANX.Framework.NonXNA
|
||||
|
||||
public AddIn(string fileName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(fileName))
|
||||
if (String.IsNullOrEmpty(fileName))
|
||||
{
|
||||
throw new ArgumentNullException("fileName");
|
||||
}
|
||||
|
||||
if (!File.Exists(fileName))
|
||||
if (File.Exists(fileName) == false)
|
||||
{
|
||||
throw new InvalidOperationException(String.Format("The AddIn '{0}' does not exist.", fileName));
|
||||
throw new InvalidOperationException(
|
||||
String.Format("The AddIn '{0}' does not exist.", fileName));
|
||||
}
|
||||
|
||||
this.fileName = fileName;
|
||||
@ -96,30 +97,14 @@ namespace ANX.Framework.NonXNA
|
||||
|
||||
if (this.assembly != null)
|
||||
{
|
||||
foreach (Type t in this.assembly.GetTypes().Where(p => typeof(IInputSystemCreator).IsAssignableFrom(p) ||
|
||||
typeof(IRenderSystemCreator).IsAssignableFrom(p) ||
|
||||
typeof(ISoundSystemCreator).IsAssignableFrom(p)
|
||||
))
|
||||
foreach (Type t in this.assembly.GetTypes().Where(p =>
|
||||
typeof(IInputSystemCreator).IsAssignableFrom(p) ||
|
||||
typeof(IRenderSystemCreator).IsAssignableFrom(p) ||
|
||||
typeof(ISoundSystemCreator).IsAssignableFrom(p) ||
|
||||
typeof(IMediaSystemCreator).IsAssignableFrom(p)))
|
||||
{
|
||||
this.creatorType = t;
|
||||
|
||||
if (typeof(IInputSystemCreator).IsAssignableFrom(t))
|
||||
{
|
||||
this.addInType = AddInType.InputSystem;
|
||||
}
|
||||
else if (typeof(IRenderSystemCreator).IsAssignableFrom(t))
|
||||
{
|
||||
this.addInType = AddInType.RenderSystem;
|
||||
}
|
||||
else if (typeof(ISoundSystemCreator).IsAssignableFrom(t))
|
||||
{
|
||||
this.addInType = AddInType.SoundSystem;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.addInType = AddInType.Unknown;
|
||||
}
|
||||
|
||||
this.addInType = AddInSystemFactory.GetAddInType(t);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -136,23 +121,27 @@ namespace ANX.Framework.NonXNA
|
||||
// Scan the addin for InputDeviceCreators and register them
|
||||
//
|
||||
|
||||
foreach (Type t in this.assembly.GetTypes().Where(p => typeof(IGamePadCreator).IsAssignableFrom(p)))
|
||||
foreach (Type t in this.assembly.GetTypes().Where(p =>
|
||||
typeof(IGamePadCreator).IsAssignableFrom(p)))
|
||||
{
|
||||
InputDeviceFactory.Instance.AddCreator(Activator.CreateInstance(t) as IGamePadCreator);
|
||||
}
|
||||
|
||||
foreach (Type t in this.assembly.GetTypes().Where(p => typeof(IKeyboardCreator).IsAssignableFrom(p)))
|
||||
foreach (Type t in this.assembly.GetTypes().Where(p =>
|
||||
typeof(IKeyboardCreator).IsAssignableFrom(p)))
|
||||
{
|
||||
InputDeviceFactory.Instance.AddCreator(Activator.CreateInstance(t) as IKeyboardCreator);
|
||||
}
|
||||
|
||||
foreach (Type t in this.assembly.GetTypes().Where(p => typeof(IMouseCreator).IsAssignableFrom(p)))
|
||||
foreach (Type t in this.assembly.GetTypes().Where(p =>
|
||||
typeof(IMouseCreator).IsAssignableFrom(p)))
|
||||
{
|
||||
InputDeviceFactory.Instance.AddCreator(Activator.CreateInstance(t) as IMouseCreator);
|
||||
}
|
||||
|
||||
#if XNAEXT
|
||||
foreach (Type t in this.assembly.GetTypes().Where(p => typeof(IMotionSensingDeviceCreator).IsAssignableFrom(p)))
|
||||
foreach (Type t in this.assembly.GetTypes().Where(p =>
|
||||
typeof(IMotionSensingDeviceCreator).IsAssignableFrom(p)))
|
||||
{
|
||||
InputDeviceFactory.Instance.AddCreator(Activator.CreateInstance(t) as IMotionSensingDeviceCreator);
|
||||
}
|
||||
@ -290,7 +279,9 @@ namespace ANX.Framework.NonXNA
|
||||
#endregion // Properties
|
||||
|
||||
#region Private Helpers
|
||||
private string[] FetchSupportedPlattforms(Assembly assembly)
|
||||
|
||||
#region FetchSupportedPlattforms
|
||||
private string[] FetchSupportedPlattforms(Assembly assembly)
|
||||
{
|
||||
string[] platforms = null;
|
||||
string[] res = assembly.GetManifestResourceNames();
|
||||
@ -323,10 +314,11 @@ namespace ANX.Framework.NonXNA
|
||||
|
||||
return platforms;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion // Private Helpers
|
||||
#endregion // Private Helpers
|
||||
|
||||
public int CompareTo(AddIn other)
|
||||
public int CompareTo(AddIn other)
|
||||
{
|
||||
return this.Priority.CompareTo(other.Priority);
|
||||
}
|
||||
|
@ -1,14 +1,10 @@
|
||||
#region Using Statements
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using ANX.Framework.Input;
|
||||
using System.Reflection;
|
||||
using NLog;
|
||||
using System.Collections;
|
||||
using System.Resources;
|
||||
using System.Xml.Linq;
|
||||
|
||||
#endregion // Using Statements
|
||||
|
||||
@ -71,22 +67,14 @@ namespace ANX.Framework.NonXNA
|
||||
private OperatingSystem operatingSystem;
|
||||
private Version operatingSystemVersion;
|
||||
|
||||
private string preferredRenderSystem;
|
||||
private bool preferredRenderSystemLocked;
|
||||
private string preferredInputSystem;
|
||||
private bool preferredInputSystemLocked;
|
||||
private string preferredSoundSystem;
|
||||
private bool preferredSoundSystemLocked;
|
||||
|
||||
private List<AddIn> renderSystems;
|
||||
private List<AddIn> inputSystems;
|
||||
private List<AddIn> soundSystems;
|
||||
private Dictionary<AddInType, AddInSystemInfo> addinSystems;
|
||||
|
||||
private static Logger logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion // Private Members
|
||||
|
||||
public static AddInSystemFactory Instance
|
||||
#region Public
|
||||
public static AddInSystemFactory Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
@ -98,24 +86,46 @@ namespace ANX.Framework.NonXNA
|
||||
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private AddInSystemFactory()
|
||||
public OperatingSystem OperatingSystem
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.operatingSystem;
|
||||
}
|
||||
}
|
||||
|
||||
public Version OperatingSystemVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.operatingSystemVersion;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
private AddInSystemFactory()
|
||||
{
|
||||
this.renderSystems = new List<AddIn>();
|
||||
this.inputSystems = new List<AddIn>();
|
||||
this.soundSystems = new List<AddIn>();
|
||||
|
||||
addinSystems = new Dictionary<AddInType, AddInSystemInfo>();
|
||||
addinSystems.Add(AddInType.InputSystem, new AddInSystemInfo());
|
||||
addinSystems.Add(AddInType.MediaSystem, new AddInSystemInfo());
|
||||
addinSystems.Add(AddInType.RenderSystem, new AddInSystemInfo());
|
||||
addinSystems.Add(AddInType.SoundSystem, new AddInSystemInfo());
|
||||
|
||||
this.creators = new Dictionary<string, ICreator>();
|
||||
|
||||
this.operatingSystem = Environment.OSVersion;
|
||||
this.operatingSystemVersion = this.operatingSystem.Version;
|
||||
logger.Info("Operating System: {0} ({1})", operatingSystem.VersionString, operatingSystemVersion.ToString());
|
||||
}
|
||||
#endregion
|
||||
|
||||
public void Initialize()
|
||||
#region Initialize
|
||||
public void Initialize()
|
||||
{
|
||||
if (!initialized)
|
||||
if (initialized == false)
|
||||
{
|
||||
initialized = true;
|
||||
|
||||
@ -125,25 +135,14 @@ namespace ANX.Framework.NonXNA
|
||||
|
||||
foreach (String file in Directory.EnumerateFiles(Path.GetDirectoryName(executingAssembly), "*.dll", SearchOption.TopDirectoryOnly))
|
||||
{
|
||||
if (!file.Equals(executingAssembly))
|
||||
if (file.Equals(executingAssembly) == false)
|
||||
{
|
||||
logger.Info("[ANX] trying to load '{0}'...", file);
|
||||
|
||||
AddIn addin = new AddIn(file);
|
||||
if (addin.IsValid && addin.IsSupported)
|
||||
{
|
||||
switch (addin.Type)
|
||||
{
|
||||
case AddInType.InputSystem:
|
||||
this.inputSystems.Add(addin);
|
||||
break;
|
||||
case AddInType.RenderSystem:
|
||||
this.renderSystems.Add(addin);
|
||||
break;
|
||||
case AddInType.SoundSystem:
|
||||
this.soundSystems.Add(addin);
|
||||
break;
|
||||
}
|
||||
addinSystems[addin.Type].AvailableSystems.Add(addin);
|
||||
logger.Info("[ANX] successfully loaded addin...");
|
||||
}
|
||||
else
|
||||
@ -156,8 +155,10 @@ namespace ANX.Framework.NonXNA
|
||||
SortAddIns();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
public void AddCreator(ICreator creator)
|
||||
#region AddCreator
|
||||
public void AddCreator(ICreator creator)
|
||||
{
|
||||
string creatorName = creator.Name.ToLowerInvariant();
|
||||
|
||||
@ -170,13 +171,17 @@ namespace ANX.Framework.NonXNA
|
||||
|
||||
logger.Debug("added creator '{0}'. Total count of registered creators is now {1}.", creatorName, creators.Count);
|
||||
}
|
||||
#endregion
|
||||
|
||||
public bool HasFramework(String name)
|
||||
#region HasFramework
|
||||
public bool HasFramework(String name)
|
||||
{
|
||||
return creators.ContainsKey(name.ToLowerInvariant());
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
public T GetCreator<T>(String name) where T : class, ICreator
|
||||
#region GetCreator
|
||||
public T GetCreator<T>(String name) where T : class, ICreator
|
||||
{
|
||||
if (!initialized)
|
||||
{
|
||||
@ -186,9 +191,11 @@ namespace ANX.Framework.NonXNA
|
||||
ICreator creator = null;
|
||||
creators.TryGetValue(name.ToLowerInvariant(), out creator);
|
||||
return creator as T;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
public IEnumerable<T> GetCreators<T>() where T : class, ICreator
|
||||
#region GetCreators
|
||||
public IEnumerable<T> GetCreators<T>() where T : class, ICreator
|
||||
{
|
||||
if (!initialized)
|
||||
{
|
||||
@ -197,18 +204,18 @@ namespace ANX.Framework.NonXNA
|
||||
|
||||
Type t = typeof(T);
|
||||
|
||||
foreach (ICreator creator in this.creators.Values)
|
||||
foreach (ICreator creator in this.creators.Values.Where(p =>
|
||||
p.GetType().GetInterfaces()[0].Equals(t)))
|
||||
{
|
||||
if (creator.GetType().GetInterfaces()[0].Equals(t))
|
||||
{
|
||||
yield return creator as T;
|
||||
}
|
||||
yield return creator as T;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
public T GetDefaultCreator<T>() where T : class, ICreator
|
||||
#region GetDefaultCreator
|
||||
public T GetDefaultCreator<T>() where T : class, ICreator
|
||||
{
|
||||
if (!initialized)
|
||||
if (initialized == false)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
@ -216,172 +223,80 @@ namespace ANX.Framework.NonXNA
|
||||
Type type = typeof(T);
|
||||
AddInType addInType = GetAddInType(type);
|
||||
|
||||
switch (addInType)
|
||||
{
|
||||
case AddInType.InputSystem:
|
||||
if (string.IsNullOrEmpty(preferredInputSystem))
|
||||
{
|
||||
if (inputSystems.Count > 0)
|
||||
{
|
||||
return inputSystems[0].Instance as T;
|
||||
}
|
||||
AddInSystemInfo info = addinSystems[addInType];
|
||||
if (String.IsNullOrEmpty(info.PreferredName))
|
||||
{
|
||||
if (info.AvailableSystems.Count > 0)
|
||||
{
|
||||
return info.AvailableSystems[0].Instance as T;
|
||||
}
|
||||
|
||||
throw new AddInLoadingException("couldn't get default input system because there are no registered input systems available");
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (AddIn addin in this.inputSystems)
|
||||
{
|
||||
if (addin.Name.Equals(preferredInputSystem, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return addin.Instance as T;
|
||||
}
|
||||
}
|
||||
throw new AddInLoadingException(String.Format(
|
||||
"Couldn't get default {0} because there are no " +
|
||||
"registered {0}s available!", addInType));
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (AddIn addin in info.AvailableSystems)
|
||||
{
|
||||
if (addin.Name.Equals(info.PreferredName,
|
||||
StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return addin.Instance as T;
|
||||
}
|
||||
}
|
||||
|
||||
throw new AddInLoadingException(String.Format("couldn't get default input system '{0}' because it was not found in the list of registered creators", preferredInputSystem));
|
||||
}
|
||||
case AddInType.RenderSystem:
|
||||
if (string.IsNullOrEmpty(preferredRenderSystem))
|
||||
{
|
||||
if (renderSystems.Count > 0)
|
||||
{
|
||||
return renderSystems[0].Instance as T;
|
||||
}
|
||||
throw new AddInLoadingException(String.Format(
|
||||
"Couldn't get default {0} '{1}' because it was not found in the " +
|
||||
"list of registered creators!", addInType, info.PreferredName));
|
||||
}
|
||||
|
||||
throw new AddInLoadingException("couldn't get default render system because there are no registered render systems available");
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (AddIn addin in this.renderSystems)
|
||||
{
|
||||
if (addin.Name.Equals(preferredRenderSystem, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return addin.Instance as T;
|
||||
}
|
||||
}
|
||||
|
||||
throw new AddInLoadingException(String.Format("couldn't get default render system '{0}' because it was not found in the list of registered creators", preferredRenderSystem));
|
||||
}
|
||||
case AddInType.SoundSystem:
|
||||
if (string.IsNullOrEmpty(preferredSoundSystem))
|
||||
{
|
||||
if (soundSystems.Count > 0)
|
||||
{
|
||||
return soundSystems[0].Instance as T;
|
||||
}
|
||||
|
||||
throw new AddInLoadingException("couldn't get default sound system because there are no registered sound systems available");
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (AddIn addin in this.soundSystems)
|
||||
{
|
||||
if (addin.Name.Equals(preferredSoundSystem, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return addin.Instance as T;
|
||||
}
|
||||
}
|
||||
|
||||
throw new AddInLoadingException(String.Format("couldn't get default sound system '{0}' because it was not found in the list of registered creators", preferredSoundSystem));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
throw new AddInLoadingException(String.Format("couldn't find a DefaultCreator of type '{0}'", type.FullName));
|
||||
throw new AddInLoadingException(String.Format(
|
||||
"Couldn't find a DefaultCreator of type '{0}'!", type.FullName));
|
||||
}
|
||||
#endregion
|
||||
|
||||
public void SortAddIns()
|
||||
#region SortAddIns
|
||||
public void SortAddIns()
|
||||
{
|
||||
this.inputSystems.Sort();
|
||||
this.renderSystems.Sort();
|
||||
this.soundSystems.Sort();
|
||||
foreach (AddInSystemInfo info in addinSystems.Values)
|
||||
{
|
||||
info.AvailableSystems.Sort();
|
||||
}
|
||||
|
||||
this.creators = this.creators.OrderBy(x => x.Value.Priority).ToDictionary(x => x.Key, x => x.Value);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
public OperatingSystem OperatingSystem
|
||||
#region GetPreferredSystem
|
||||
public string GetPreferredSystem(AddInType addInType)
|
||||
{
|
||||
return addinSystems[addInType].PreferredName;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region SetPreferredSystem
|
||||
public void SetPreferredSystem(AddInType addInType, string preferredName)
|
||||
{
|
||||
if (addinSystems[addInType].PreferredLocked)
|
||||
{
|
||||
throw new AddInLoadingException(String.Format(
|
||||
"Can't set preferred {0} because a {0} is alread in use.", addInType));
|
||||
}
|
||||
|
||||
addinSystems[addInType].PreferredName = preferredName;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region PreventSystemChange
|
||||
public void PreventSystemChange(AddInType addInType)
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.operatingSystem;
|
||||
}
|
||||
addinSystems[addInType].PreferredLocked = true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
public Version OperatingSystemVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.operatingSystemVersion;
|
||||
}
|
||||
}
|
||||
|
||||
public string PreferredRenderSystem
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.preferredRenderSystem;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.preferredRenderSystemLocked)
|
||||
{
|
||||
throw new AddInLoadingException("can't set preferred RenderSystem because a RenderSystem is alread in use.");
|
||||
}
|
||||
|
||||
this.preferredRenderSystem = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string PreferredInputSystem
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.preferredInputSystem;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.preferredInputSystemLocked)
|
||||
{
|
||||
throw new AddInLoadingException("can't set preferred InputSystem because a InputSystem is alread in use.");
|
||||
}
|
||||
|
||||
this.preferredInputSystem = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string PreferredSoundSystem
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.preferredSoundSystem;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.preferredSoundSystemLocked)
|
||||
{
|
||||
throw new AddInLoadingException("can't set preferred SoundSystem because a SoundSystem is alread in use.");
|
||||
}
|
||||
|
||||
this.preferredSoundSystem = value;
|
||||
}
|
||||
}
|
||||
|
||||
public void PreventRenderSystemChange()
|
||||
{
|
||||
this.preferredRenderSystemLocked = true;
|
||||
}
|
||||
|
||||
public void PreventInputSystemChange()
|
||||
{
|
||||
this.preferredInputSystemLocked = true;
|
||||
}
|
||||
|
||||
public void PreventSoundSystemChange()
|
||||
{
|
||||
this.preferredSoundSystemLocked = true;
|
||||
}
|
||||
|
||||
private AddInType GetAddInType(Type t)
|
||||
#region GetAddInType
|
||||
internal static AddInType GetAddInType(Type t)
|
||||
{
|
||||
if (typeof(IRenderSystemCreator).IsAssignableFrom(t))
|
||||
{
|
||||
@ -394,11 +309,16 @@ namespace ANX.Framework.NonXNA
|
||||
else if (typeof(ISoundSystemCreator).IsAssignableFrom(t))
|
||||
{
|
||||
return AddInType.SoundSystem;
|
||||
}
|
||||
}
|
||||
else if (typeof(IMediaSystemCreator).IsAssignableFrom(t))
|
||||
{
|
||||
return AddInType.MediaSystem;
|
||||
}
|
||||
else
|
||||
{
|
||||
return AddInType.Unknown;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
88
ANX.Framework/NonXNA/AddInSystemInfo.cs
Normal file
88
ANX.Framework/NonXNA/AddInSystemInfo.cs
Normal file
@ -0,0 +1,88 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
#region License
|
||||
|
||||
//
|
||||
// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
|
||||
//
|
||||
// This file is released under the Ms-PL license.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Microsoft Public License (Ms-PL)
|
||||
//
|
||||
// This license governs use of the accompanying software. If you use the software, you accept this license.
|
||||
// If you do not accept the license, do not use the software.
|
||||
//
|
||||
// 1.Definitions
|
||||
// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
|
||||
// here as under U.S. copyright law.
|
||||
// A "contribution" is the original software, or any additions or changes to the software.
|
||||
// A "contributor" is any person that distributes its contribution under this license.
|
||||
// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
|
||||
//
|
||||
// 2.Grant of Rights
|
||||
// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
|
||||
// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
|
||||
// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
|
||||
// or any derivative works that you create.
|
||||
// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
|
||||
// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
|
||||
// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
|
||||
// in the software or derivative works of the contribution in the software.
|
||||
//
|
||||
// 3.Conditions and Limitations
|
||||
// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
|
||||
// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
|
||||
// patent license from such contributor to the software ends automatically.
|
||||
// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
|
||||
// notices that are present in the software.
|
||||
// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
|
||||
// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
|
||||
// object code form, you may only do so under a license that complies with this license.
|
||||
// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
|
||||
// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
|
||||
// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
|
||||
// particular purpose and non-infringement.
|
||||
|
||||
#endregion // License
|
||||
|
||||
namespace ANX.Framework.NonXNA
|
||||
{
|
||||
internal class AddInSystemInfo
|
||||
{
|
||||
#region Public
|
||||
#region PreferredName
|
||||
public string PreferredName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region PreferredLocked
|
||||
public bool PreferredLocked
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region AvailableSystems
|
||||
public List<AddIn> AvailableSystems
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
public AddInSystemInfo()
|
||||
{
|
||||
AvailableSystems = new List<AddIn>();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -1,9 +1,4 @@
|
||||
#region Using Statements
|
||||
using System;
|
||||
|
||||
#endregion
|
||||
|
||||
#region License
|
||||
#region License
|
||||
|
||||
//
|
||||
// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
|
||||
@ -57,6 +52,7 @@ namespace ANX.Framework.NonXNA
|
||||
Unknown,
|
||||
RenderSystem,
|
||||
InputSystem,
|
||||
SoundSystem
|
||||
SoundSystem,
|
||||
MediaSystem
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,74 @@
|
||||
using System;
|
||||
|
||||
#region License
|
||||
|
||||
//
|
||||
// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
|
||||
//
|
||||
// This file is released under the Ms-PL license.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Microsoft Public License (Ms-PL)
|
||||
//
|
||||
// This license governs use of the accompanying software. If you use the software, you accept this license.
|
||||
// If you do not accept the license, do not use the software.
|
||||
//
|
||||
// 1.Definitions
|
||||
// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
|
||||
// here as under U.S. copyright law.
|
||||
// A "contribution" is the original software, or any additions or changes to the software.
|
||||
// A "contributor" is any person that distributes its contribution under this license.
|
||||
// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
|
||||
//
|
||||
// 2.Grant of Rights
|
||||
// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
|
||||
// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
|
||||
// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
|
||||
// or any derivative works that you create.
|
||||
// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
|
||||
// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
|
||||
// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
|
||||
// in the software or derivative works of the contribution in the software.
|
||||
//
|
||||
// 3.Conditions and Limitations
|
||||
// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
|
||||
// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
|
||||
// patent license from such contributor to the software ends automatically.
|
||||
// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
|
||||
// notices that are present in the software.
|
||||
// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
|
||||
// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
|
||||
// object code form, you may only do so under a license that complies with this license.
|
||||
// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
|
||||
// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
|
||||
// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
|
||||
// particular purpose and non-infringement.
|
||||
|
||||
#endregion // License
|
||||
|
||||
namespace ANX.Framework.NonXNA.Development
|
||||
{
|
||||
public class PercentageCompleteAttribute : Attribute
|
||||
{
|
||||
#region Public
|
||||
public int Percentage
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
/// <summary>
|
||||
/// Create a new percentage complete attribute.
|
||||
/// </summary>
|
||||
/// <param name="setPercentage">The percentage [0-100] value defining how
|
||||
/// "complete" the class is.</param>
|
||||
public PercentageCompleteAttribute(int setPercentage)
|
||||
{
|
||||
Percentage = setPercentage;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -1,14 +1,4 @@
|
||||
#region Using Statements
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using ANX.Framework.Input;
|
||||
|
||||
#endregion // Using Statements
|
||||
|
||||
#region License
|
||||
#region License
|
||||
|
||||
//
|
||||
// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
|
||||
|
55
ANX.Framework/NonXNA/MediaSystem/IMediaSystemCreator.cs
Normal file
55
ANX.Framework/NonXNA/MediaSystem/IMediaSystemCreator.cs
Normal file
@ -0,0 +1,55 @@
|
||||
using System;
|
||||
|
||||
#region License
|
||||
|
||||
//
|
||||
// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
|
||||
//
|
||||
// This file is released under the Ms-PL license.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Microsoft Public License (Ms-PL)
|
||||
//
|
||||
// This license governs use of the accompanying software. If you use the software, you accept this license.
|
||||
// If you do not accept the license, do not use the software.
|
||||
//
|
||||
// 1.Definitions
|
||||
// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
|
||||
// here as under U.S. copyright law.
|
||||
// A "contribution" is the original software, or any additions or changes to the software.
|
||||
// A "contributor" is any person that distributes its contribution under this license.
|
||||
// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
|
||||
//
|
||||
// 2.Grant of Rights
|
||||
// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
|
||||
// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
|
||||
// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
|
||||
// or any derivative works that you create.
|
||||
// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
|
||||
// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
|
||||
// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
|
||||
// in the software or derivative works of the contribution in the software.
|
||||
//
|
||||
// 3.Conditions and Limitations
|
||||
// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
|
||||
// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
|
||||
// patent license from such contributor to the software ends automatically.
|
||||
// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
|
||||
// notices that are present in the software.
|
||||
// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
|
||||
// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
|
||||
// object code form, you may only do so under a license that complies with this license.
|
||||
// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
|
||||
// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
|
||||
// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
|
||||
// particular purpose and non-infringement.
|
||||
|
||||
#endregion // License
|
||||
|
||||
namespace ANX.Framework.NonXNA
|
||||
{
|
||||
public interface IMediaSystemCreator : ICreator
|
||||
{
|
||||
}
|
||||
}
|
@ -67,8 +67,9 @@ namespace ANX.InputDevices.Test
|
||||
public IGamePad GamePad
|
||||
{
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
if (_gamePad == null)
|
||||
{
|
||||
_gamePad = new GamePad();
|
||||
@ -80,8 +81,9 @@ namespace ANX.InputDevices.Test
|
||||
public IMouse Mouse
|
||||
{
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
if (_mouse == null)
|
||||
{
|
||||
_mouse = new Mouse();
|
||||
@ -93,8 +95,9 @@ namespace ANX.InputDevices.Test
|
||||
public IKeyboard Keyboard
|
||||
{
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
if (_keyboard == null)
|
||||
{
|
||||
_keyboard = new Keyboard();
|
||||
|
@ -68,9 +68,10 @@ namespace ANX.InputSystem.Recording
|
||||
|
||||
public IGamePad GamePad
|
||||
{
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
if (gamePad == null)
|
||||
gamePad = new RecordingGamePad();
|
||||
return gamePad;
|
||||
@ -79,9 +80,10 @@ namespace ANX.InputSystem.Recording
|
||||
|
||||
public IMouse Mouse
|
||||
{
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
if (mouse == null)
|
||||
mouse = new RecordingMouse();
|
||||
return mouse;
|
||||
@ -90,9 +92,10 @@ namespace ANX.InputSystem.Recording
|
||||
|
||||
public IKeyboard Keyboard
|
||||
{
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
if (keyboard == null)
|
||||
keyboard = new RecordingKeyboard();
|
||||
return keyboard;
|
||||
@ -102,9 +105,10 @@ namespace ANX.InputSystem.Recording
|
||||
#if XNAEXT
|
||||
public IMotionSensingDevice MotionSensingDevice
|
||||
{
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
get
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
if (msd == null)
|
||||
msd = new RecordingMotionSensingDevice();
|
||||
return msd;
|
||||
|
@ -98,7 +98,8 @@ namespace ANX.InputDevices.Windows.XInput
|
||||
get
|
||||
{
|
||||
logger.Debug("returning a new GamePad device");
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
return InputDeviceFactory.Instance.GetDefaultGamePad();
|
||||
}
|
||||
}
|
||||
@ -114,8 +115,9 @@ namespace ANX.InputDevices.Windows.XInput
|
||||
{
|
||||
throw new NoInputDeviceException("couldn't find a default mouse device creator. Unable to create a mouse instance.");
|
||||
}
|
||||
logger.Debug("created a new Mouse device");
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
logger.Debug("created a new Mouse device");
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
}
|
||||
|
||||
return this.mouse;
|
||||
@ -133,8 +135,9 @@ namespace ANX.InputDevices.Windows.XInput
|
||||
{
|
||||
throw new NoInputDeviceException("couldn't find a default keyboard device creator. Unable to create a keyboard instance.");
|
||||
}
|
||||
logger.Debug("created a new Keyboard device");
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
logger.Debug("created a new Keyboard device");
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
}
|
||||
|
||||
return this.keyboard;
|
||||
@ -146,8 +149,9 @@ namespace ANX.InputDevices.Windows.XInput
|
||||
{
|
||||
get
|
||||
{
|
||||
logger.Debug("returning a new MotionSensingDevice device");
|
||||
AddInSystemFactory.Instance.PreventInputSystemChange();
|
||||
logger.Debug("returning a new MotionSensingDevice device");
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.InputSystem);
|
||||
return InputDeviceFactory.Instance.GetDefaultMotionSensingDevice();
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{97185A92-077D-4498-8B6A-8BFF04079044}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ANX.MediaSystem.Windows.OpenAL</RootNamespace>
|
||||
<AssemblyName>ANX.MediaSystem.Windows.OpenAL</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Creator.cs" />
|
||||
<Compile Include="Metadata.Designer.cs">
|
||||
<DependentUpon>Metadata.resx</DependentUpon>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\ANX.Framework\ANX.Framework.csproj">
|
||||
<Project>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</Project>
|
||||
<Name>ANX.Framework</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Metadata.resx">
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Metadata.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
90
MediaSystems/ANX.MediaSystem.Windows.OpenAL/Creator.cs
Normal file
90
MediaSystems/ANX.MediaSystem.Windows.OpenAL/Creator.cs
Normal file
@ -0,0 +1,90 @@
|
||||
using System;
|
||||
using ANX.Framework.NonXNA;
|
||||
|
||||
#region License
|
||||
|
||||
//
|
||||
// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
|
||||
//
|
||||
// This file is released under the Ms-PL license.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Microsoft Public License (Ms-PL)
|
||||
//
|
||||
// This license governs use of the accompanying software. If you use the software, you accept this license.
|
||||
// If you do not accept the license, do not use the software.
|
||||
//
|
||||
// 1.Definitions
|
||||
// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
|
||||
// here as under U.S. copyright law.
|
||||
// A "contribution" is the original software, or any additions or changes to the software.
|
||||
// A "contributor" is any person that distributes its contribution under this license.
|
||||
// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
|
||||
//
|
||||
// 2.Grant of Rights
|
||||
// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
|
||||
// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
|
||||
// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
|
||||
// or any derivative works that you create.
|
||||
// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
|
||||
// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
|
||||
// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
|
||||
// in the software or derivative works of the contribution in the software.
|
||||
//
|
||||
// 3.Conditions and Limitations
|
||||
// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
|
||||
// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
|
||||
// patent license from such contributor to the software ends automatically.
|
||||
// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
|
||||
// notices that are present in the software.
|
||||
// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
|
||||
// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
|
||||
// object code form, you may only do so under a license that complies with this license.
|
||||
// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
|
||||
// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
|
||||
// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
|
||||
// particular purpose and non-infringement.
|
||||
|
||||
#endregion // License
|
||||
|
||||
namespace ANX.MediaSystem.Windows.OpenAL
|
||||
{
|
||||
public class Creator : IMediaSystemCreator
|
||||
{
|
||||
#region Public
|
||||
#region Name
|
||||
public string Name
|
||||
{
|
||||
get { return "OpenAL"; }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Priority
|
||||
public int Priority
|
||||
{
|
||||
get { return 10; }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region IsSupported
|
||||
public bool IsSupported
|
||||
{
|
||||
get
|
||||
{
|
||||
//TODO: this is just a very basic version of test for support
|
||||
return AddInSystemFactory.Instance.OperatingSystem.Platform ==
|
||||
PlatformID.Win32NT;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
#region RegisterCreator
|
||||
public void RegisterCreator(AddInSystemFactory factory)
|
||||
{
|
||||
factory.AddCreator(this);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
72
MediaSystems/ANX.MediaSystem.Windows.OpenAL/Metadata.Designer.cs
generated
Normal file
72
MediaSystems/ANX.MediaSystem.Windows.OpenAL/Metadata.Designer.cs
generated
Normal file
@ -0,0 +1,72 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
// Laufzeitversion:4.0.30319.488
|
||||
//
|
||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code erneut generiert wird.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ANX.MediaSystem.Windows.OpenAL {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
/// </summary>
|
||||
// Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
|
||||
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
||||
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
||||
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
public class Metadata {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Metadata() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
public static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ANX.MediaSystem.Windows.OpenAL.Metadata", typeof(Metadata).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
||||
/// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
public static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Win32NT ähnelt.
|
||||
/// </summary>
|
||||
public static string SupportedPlatforms {
|
||||
get {
|
||||
return ResourceManager.GetString("SupportedPlatforms", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
123
MediaSystems/ANX.MediaSystem.Windows.OpenAL/Metadata.resx
Normal file
123
MediaSystems/ANX.MediaSystem.Windows.OpenAL/Metadata.resx
Normal file
@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="SupportedPlatforms" xml:space="preserve">
|
||||
<value>Win32NT</value>
|
||||
</data>
|
||||
</root>
|
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
||||
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
||||
// die mit einer Assembly verknüpft sind.
|
||||
[assembly: AssemblyTitle("ANX.MediaSystem.Windows.OpenAL")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("ANX.Framework Tea")]
|
||||
[assembly: AssemblyProduct("ANX.MediaSystem.Windows.OpenAL")]
|
||||
[assembly: AssemblyCopyright("Copyright © ANX.Framework Tea 2012")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
|
||||
// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
|
||||
// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
|
||||
[assembly: Guid("1395f0f5-84f8-4336-9c40-e9d80a3fef6b")]
|
||||
|
||||
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
||||
//
|
||||
// Hauptversion
|
||||
// Nebenversion
|
||||
// Buildnummer
|
||||
// Revision
|
||||
//
|
||||
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
||||
// übernehmen, indem Sie "*" eingeben:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
@ -9,7 +9,8 @@ namespace RecordingSample
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//This is technically unessasary, because there is only a reference to the RecordingSystem...
|
||||
AddInSystemFactory.Instance.PreferredInputSystem = "Recording";
|
||||
AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
AddInType.InputSystem, "Recording");
|
||||
|
||||
using (Game1 game = new Game1())
|
||||
{
|
||||
|
@ -91,6 +91,10 @@
|
||||
<Project>{DB88DDEB-7281-405D-8FCA-5681B6B2BD7A}</Project>
|
||||
<Name>ANX.InputSystem.Recording</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
|
||||
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
|
||||
<Name>ANX.Framework.Windows.DX10</Name>
|
||||
|
@ -83,32 +83,37 @@ namespace ANX.Framework.Windows.DX10
|
||||
}
|
||||
|
||||
public GameHost CreateGameHost(Game game)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new WindowsGameHost(game);
|
||||
}
|
||||
|
||||
public INativeGraphicsDevice CreateGraphicsDevice(PresentationParameters presentationParameters)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new GraphicsDeviceWindowsDX10(presentationParameters);
|
||||
}
|
||||
|
||||
public INativeBuffer CreateIndexBuffer(GraphicsDevice graphics, IndexElementSize size, int indexCount, BufferUsage usage)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new IndexBuffer_DX10(graphics, size, indexCount, usage);
|
||||
}
|
||||
|
||||
public INativeBuffer CreateVertexBuffer(GraphicsDevice graphics, VertexDeclaration vertexDeclaration, int vertexCount, BufferUsage usage)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new VertexBuffer_DX10(graphics, vertexDeclaration, vertexCount, usage);
|
||||
}
|
||||
|
||||
public INativeEffect CreateEffect(GraphicsDevice graphics, ANX.Framework.Graphics.Effect managedEffect, Stream vertexShaderByteCode, Stream pixelShaderByteCode)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
|
||||
Effect_DX10 effect = new Effect_DX10(graphics, managedEffect, vertexShaderByteCode, pixelShaderByteCode);
|
||||
|
||||
@ -116,8 +121,9 @@ namespace ANX.Framework.Windows.DX10
|
||||
}
|
||||
|
||||
public INativeEffect CreateEffect(GraphicsDevice graphics, ANX.Framework.Graphics.Effect managedEffect, System.IO.Stream byteCode)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
|
||||
Effect_DX10 effect = new Effect_DX10(graphics, managedEffect, byteCode);
|
||||
|
||||
@ -125,8 +131,9 @@ namespace ANX.Framework.Windows.DX10
|
||||
}
|
||||
|
||||
public Texture2D CreateTexture(GraphicsDevice graphics, string fileName)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
|
||||
//TODO: implement
|
||||
throw new NotImplementedException();
|
||||
@ -140,32 +147,37 @@ namespace ANX.Framework.Windows.DX10
|
||||
}
|
||||
|
||||
public INativeBlendState CreateBlendState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new BlendState_DX10();
|
||||
}
|
||||
|
||||
public INativeRasterizerState CreateRasterizerState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new RasterizerState_DX10();
|
||||
}
|
||||
|
||||
public INativeDepthStencilState CreateDepthStencilState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new DepthStencilState_DX10();
|
||||
}
|
||||
|
||||
public INativeSamplerState CreateSamplerState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new SamplerState_DX10();
|
||||
}
|
||||
|
||||
public byte[] GetShaderByteCode(PreDefinedShader type)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
|
||||
if (type == PreDefinedShader.SpriteBatch)
|
||||
{
|
||||
@ -202,8 +214,9 @@ namespace ANX.Framework.Windows.DX10
|
||||
|
||||
|
||||
public System.Collections.ObjectModel.ReadOnlyCollection<GraphicsAdapter> GetAdapterList()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
|
||||
SharpDX.DXGI.Factory factory = new Factory();
|
||||
|
||||
@ -256,15 +269,17 @@ namespace ANX.Framework.Windows.DX10
|
||||
}
|
||||
|
||||
public INativeTexture2D CreateTexture(GraphicsDevice graphics, SurfaceFormat surfaceFormat, int width, int height, int mipCount)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
|
||||
return new Texture2D_DX10(graphics, width, height, surfaceFormat, mipCount);
|
||||
}
|
||||
|
||||
public INativeRenderTarget2D CreateRenderTarget(GraphicsDevice graphics, int width, int height, bool mipMap, SurfaceFormat preferredFormat, DepthFormat preferredDepthFormat, int preferredMultiSampleCount, RenderTargetUsage usage)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
|
||||
return new RenderTarget2D_DX10(graphics, width, height, mipMap, preferredFormat, preferredDepthFormat, preferredMultiSampleCount, usage);
|
||||
}
|
||||
|
@ -106,7 +106,8 @@ namespace ANX.Framework.Windows.GL3
|
||||
public GameHost CreateGameHost(Game game)
|
||||
{
|
||||
logger.Info("creating OpenGL3 GameHost");
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new WindowsGameHost(game);
|
||||
}
|
||||
#endregion
|
||||
@ -115,7 +116,8 @@ namespace ANX.Framework.Windows.GL3
|
||||
public INativeEffect CreateEffect(GraphicsDevice graphics, Effect managedEffect,
|
||||
Stream byteCode)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
|
||||
return new EffectGL3(managedEffect, byteCode);
|
||||
}
|
||||
@ -123,7 +125,8 @@ namespace ANX.Framework.Windows.GL3
|
||||
public INativeEffect CreateEffect(GraphicsDevice graphics, Effect managedEffect,
|
||||
Stream vertexShaderByteCode, Stream pixelShaderByteCode)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
|
||||
return new EffectGL3(managedEffect, vertexShaderByteCode, pixelShaderByteCode);
|
||||
}
|
||||
@ -133,7 +136,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
INativeGraphicsDevice IRenderSystemCreator.CreateGraphicsDevice(
|
||||
PresentationParameters presentationParameters)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new GraphicsDeviceWindowsGL3(presentationParameters);
|
||||
}
|
||||
#endregion
|
||||
@ -151,7 +154,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
public INativeTexture2D CreateTexture(GraphicsDevice graphics,
|
||||
SurfaceFormat surfaceFormat, int width, int height, int mipCount)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new Texture2DGL3(surfaceFormat, width, height, mipCount);
|
||||
}
|
||||
#endregion
|
||||
@ -169,7 +172,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
public INativeBuffer CreateIndexBuffer(GraphicsDevice graphics,
|
||||
IndexElementSize size, int indexCount, BufferUsage usage)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new IndexBufferGL3(size, indexCount, usage);
|
||||
}
|
||||
#endregion
|
||||
@ -188,7 +191,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
VertexDeclaration vertexDeclaration, int vertexCount,
|
||||
BufferUsage usage)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new VertexBufferGL3(vertexDeclaration, vertexCount, usage);
|
||||
}
|
||||
#endregion
|
||||
@ -200,7 +203,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
/// <returns>Native Blend State.</returns>
|
||||
public INativeBlendState CreateBlendState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new BlendStateGL3();
|
||||
}
|
||||
#endregion
|
||||
@ -212,7 +215,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
/// <returns>Native Rasterizer State.</returns>
|
||||
public INativeRasterizerState CreateRasterizerState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new RasterizerStateGL3();
|
||||
}
|
||||
#endregion
|
||||
@ -224,7 +227,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
/// <returns>Native Depth Stencil State.</returns>
|
||||
public INativeDepthStencilState CreateDepthStencilState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new DepthStencilStateGL3();
|
||||
}
|
||||
#endregion
|
||||
@ -236,7 +239,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
/// <returns>Native Sampler State.</returns>
|
||||
public INativeSamplerState CreateSamplerState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new SamplerStateGL3();
|
||||
}
|
||||
#endregion
|
||||
@ -249,7 +252,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
/// <returns>Byte code of the shader.</returns>
|
||||
public byte[] GetShaderByteCode(PreDefinedShader type)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
|
||||
if (type == PreDefinedShader.SpriteBatch)
|
||||
{
|
||||
@ -287,7 +290,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
/// <returns>List of graphics adapters.</returns>
|
||||
public ReadOnlyCollection<GraphicsAdapter> GetAdapterList()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
|
||||
var result = new List<GraphicsAdapter>();
|
||||
foreach (DisplayDevice device in DisplayDevice.AvailableDisplays)
|
||||
@ -348,7 +351,7 @@ namespace ANX.Framework.Windows.GL3
|
||||
DepthFormat preferredDepthFormat, int preferredMultiSampleCount,
|
||||
RenderTargetUsage usage)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new RenderTarget2DGL3(width, height, mipMap, preferredFormat,
|
||||
preferredDepthFormat, preferredMultiSampleCount, usage);
|
||||
}
|
||||
|
@ -55,12 +55,15 @@ namespace ANX.Framework.Windows.GL3
|
||||
internal class WindowsGameWindow : ANX.Framework.GameWindow
|
||||
{
|
||||
#region Public
|
||||
#region Form
|
||||
internal static Form Form
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Handle
|
||||
public override IntPtr Handle
|
||||
{
|
||||
get
|
||||
@ -68,7 +71,9 @@ namespace ANX.Framework.Windows.GL3
|
||||
return Form.Handle;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region IsMinimized
|
||||
public override bool IsMinimized
|
||||
{
|
||||
get
|
||||
@ -76,6 +81,17 @@ namespace ANX.Framework.Windows.GL3
|
||||
return Form.WindowState == FormWindowState.Minimized;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ScreenDeviceName
|
||||
public override string ScreenDeviceName
|
||||
{
|
||||
get
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region AllowUserResizing
|
||||
public override bool AllowUserResizing
|
||||
@ -147,23 +163,19 @@ namespace ANX.Framework.Windows.GL3
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region BeginScreenDeviceChange
|
||||
public override void BeginScreenDeviceChange(bool willBeFullScreen)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region EndScreenDeviceChange
|
||||
public override void EndScreenDeviceChange(string screenDeviceName,
|
||||
int clientWidth, int clientHeight)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override string ScreenDeviceName
|
||||
{
|
||||
get
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -84,32 +84,35 @@ namespace ANX.RenderSystem.Windows.DX11
|
||||
}
|
||||
|
||||
public GameHost CreateGameHost(Game game)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new WindowsGameHost(game);
|
||||
}
|
||||
|
||||
public INativeGraphicsDevice CreateGraphicsDevice(PresentationParameters presentationParameters)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new GraphicsDeviceWindowsDX11(presentationParameters);
|
||||
}
|
||||
|
||||
public INativeBuffer CreateIndexBuffer(GraphicsDevice graphics, IndexElementSize size, int indexCount, BufferUsage usage)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(
|
||||
AddInType.RenderSystem);
|
||||
return new IndexBuffer_DX11(graphics, size, indexCount, usage);
|
||||
}
|
||||
|
||||
public INativeBuffer CreateVertexBuffer(GraphicsDevice graphics, VertexDeclaration vertexDeclaration, int vertexCount, BufferUsage usage)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new VertexBuffer_DX11(graphics, vertexDeclaration, vertexCount, usage);
|
||||
}
|
||||
|
||||
public INativeEffect CreateEffect(GraphicsDevice graphics, ANX.Framework.Graphics.Effect managedEffect, Stream vertexShaderByteCode, Stream pixelShaderByteCode)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
|
||||
Effect_DX11 effect = new Effect_DX11(graphics, managedEffect, vertexShaderByteCode, pixelShaderByteCode);
|
||||
|
||||
@ -117,8 +120,8 @@ namespace ANX.RenderSystem.Windows.DX11
|
||||
}
|
||||
|
||||
public INativeEffect CreateEffect(GraphicsDevice graphics, ANX.Framework.Graphics.Effect managedEffect, System.IO.Stream byteCode)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
|
||||
Effect_DX11 effect = new Effect_DX11(graphics, managedEffect, byteCode);
|
||||
|
||||
@ -126,8 +129,8 @@ namespace ANX.RenderSystem.Windows.DX11
|
||||
}
|
||||
|
||||
public Texture2D CreateTexture(GraphicsDevice graphics, string fileName)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
|
||||
//TODO: implement
|
||||
throw new NotImplementedException();
|
||||
@ -141,32 +144,32 @@ namespace ANX.RenderSystem.Windows.DX11
|
||||
}
|
||||
|
||||
public INativeBlendState CreateBlendState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new BlendState_DX11();
|
||||
}
|
||||
|
||||
public INativeRasterizerState CreateRasterizerState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new RasterizerState_DX11();
|
||||
}
|
||||
|
||||
public INativeDepthStencilState CreateDepthStencilState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new DepthStencilState_DX11();
|
||||
}
|
||||
|
||||
public INativeSamplerState CreateSamplerState()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
return new SamplerState_DX11();
|
||||
}
|
||||
|
||||
public byte[] GetShaderByteCode(PreDefinedShader type)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
|
||||
if (type == PreDefinedShader.SpriteBatch)
|
||||
{
|
||||
@ -203,8 +206,8 @@ namespace ANX.RenderSystem.Windows.DX11
|
||||
|
||||
|
||||
public System.Collections.ObjectModel.ReadOnlyCollection<GraphicsAdapter> GetAdapterList()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
|
||||
SharpDX.DXGI.Factory factory = new Factory();
|
||||
|
||||
@ -257,15 +260,15 @@ namespace ANX.RenderSystem.Windows.DX11
|
||||
}
|
||||
|
||||
public INativeTexture2D CreateTexture(GraphicsDevice graphics, SurfaceFormat surfaceFormat, int width, int height, int mipCount)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
|
||||
return new Texture2D_DX11(graphics, width, height, surfaceFormat, mipCount);
|
||||
}
|
||||
|
||||
public INativeRenderTarget2D CreateRenderTarget(GraphicsDevice graphics, int width, int height, bool mipMap, SurfaceFormat preferredFormat, DepthFormat preferredDepthFormat, int preferredMultiSampleCount, RenderTargetUsage usage)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventRenderSystemChange();
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.RenderSystem);
|
||||
|
||||
return new RenderTarget2D_DX11(graphics, width, height, mipMap, preferredFormat, preferredDepthFormat, preferredMultiSampleCount, usage);
|
||||
}
|
||||
|
@ -91,6 +91,10 @@
|
||||
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
|
||||
<Name>ANX.InputSystem.Standard</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
|
||||
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
|
||||
<Name>ANX.Framework.Windows.DX10</Name>
|
||||
|
@ -122,6 +122,10 @@
|
||||
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
|
||||
<Name>ANX.InputSystem.Standard</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
|
||||
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
|
||||
<Name>ANX.Framework.Windows.DX10</Name>
|
||||
|
@ -106,6 +106,10 @@
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\SampleContent\SampleContent.contentproj">
|
||||
<Project>{FA6E229D-4504-47B1-8A23-2D3FCC13F778}</Project>
|
||||
<Name>SampleContent</Name>
|
||||
|
@ -91,6 +91,10 @@
|
||||
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
|
||||
<Name>ANX.InputSystem.Standard</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
|
||||
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
|
||||
<Name>ANX.Framework.Windows.DX10</Name>
|
||||
|
@ -10,9 +10,11 @@ namespace RenderTarget
|
||||
/// Der Haupteinstiegspunkt für die Anwendung.
|
||||
/// </summary>
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//AddInSystemFactory.Instance.PreferredRenderSystem = "OpenGL3";
|
||||
//AddInSystemFactory.Instance.PreferredRenderSystem = "DirectX11";
|
||||
{
|
||||
//AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
// AddInType.RenderSystem, "OpenGL3");
|
||||
//AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
// AddInType.RenderSystem, "DirectX11");
|
||||
|
||||
using (Game1 game = new Game1())
|
||||
{
|
||||
|
@ -91,6 +91,10 @@
|
||||
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
|
||||
<Name>ANX.InputSystem.Standard</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
|
||||
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
|
||||
<Name>ANX.Framework.Windows.DX10</Name>
|
||||
|
@ -10,9 +10,10 @@ namespace WindowsGame1
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//AddInSystemFactory.Instance.PreferredRenderSystem = "OpenGL3";
|
||||
//AddInSystemFactory.Instance.PreferredRenderSystem = "DirectX11";
|
||||
{
|
||||
AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
AddInType.RenderSystem, "OpenGL3");
|
||||
//AddInType.RenderSystem, "DirectX11");
|
||||
|
||||
using (Game1 game = new Game1())
|
||||
{
|
||||
|
@ -91,6 +91,10 @@
|
||||
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
|
||||
<Name>ANX.InputSystem.Standard</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
|
||||
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
|
||||
<Name>ANX.Framework.Windows.DX10</Name>
|
||||
|
@ -128,6 +128,10 @@
|
||||
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
|
||||
<Name>ANX.InputSystem.Standard</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
|
||||
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
|
||||
<Name>ANX.Framework.Windows.DX10</Name>
|
||||
|
@ -10,8 +10,11 @@ namespace TextRendering
|
||||
/// Der Haupteinstiegspunkt für die Anwendung.
|
||||
/// </summary>
|
||||
static void Main(string[] args)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreferredRenderSystem = "OpenGL3";
|
||||
{
|
||||
//AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
// AddInType.RenderSystem, "OpenGL3");
|
||||
//AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
// AddInType.RenderSystem, "DirectX11");
|
||||
|
||||
using (Game1 game = new Game1())
|
||||
{
|
||||
|
@ -91,6 +91,10 @@
|
||||
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
|
||||
<Name>ANX.InputSystem.Standard</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
|
||||
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
|
||||
<Name>ANX.Framework.Windows.DX10</Name>
|
||||
|
@ -91,6 +91,10 @@
|
||||
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
|
||||
<Name>ANX.InputSystem.Standard</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
|
||||
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
|
||||
<Name>ANX.Framework.Windows.DX10</Name>
|
||||
|
@ -18,10 +18,15 @@ namespace WindowsGame1
|
||||
|
||||
AddInSelector selector = new AddInSelector();
|
||||
if (selector.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreferredRenderSystem = selector.cbRenderSystem.Text;
|
||||
AddInSystemFactory.Instance.PreferredSoundSystem = selector.cbAudioSystem.Text;
|
||||
AddInSystemFactory.Instance.PreferredInputSystem = selector.cbInputSystem.Text;
|
||||
{
|
||||
AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
AddInType.RenderSystem, selector.cbRenderSystem.Text);
|
||||
|
||||
AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
AddInType.SoundSystem, selector.cbAudioSystem.Text);
|
||||
|
||||
AddInSystemFactory.Instance.SetPreferredSystem(
|
||||
AddInType.InputSystem, selector.cbInputSystem.Text);
|
||||
|
||||
using (Game1 game = new Game1())
|
||||
{
|
||||
|
@ -119,6 +119,10 @@
|
||||
<Project>{49066074-3B7B-4A55-B122-6BD33AB73558}</Project>
|
||||
<Name>ANX.InputSystem.Standard</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\MediaSystems\ANX.MediaSystem.Windows.OpenAL\ANX.MediaSystem.Windows.OpenAL.csproj">
|
||||
<Project>{97185A92-077D-4498-8B6A-8BFF04079044}</Project>
|
||||
<Name>ANX.MediaSystem.Windows.OpenAL</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\RenderSystems\ANX.Framework.Windows.DX10\ANX.Framework.Windows.DX10.csproj">
|
||||
<Project>{5BE49183-2F6F-4527-AC90-D816911FCF90}</Project>
|
||||
<Name>ANX.Framework.Windows.DX10</Name>
|
||||
|
@ -157,7 +157,7 @@ namespace ANX.SoundSystem.OpenAL
|
||||
public ISoundEffectInstance CreateSoundEffectInstance(
|
||||
ISoundEffect nativeSoundEffect)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSoundSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.SoundSystem);
|
||||
return new OpenALSoundEffectInstance((OpenALSoundEffect)nativeSoundEffect);
|
||||
}
|
||||
#endregion
|
||||
@ -165,7 +165,7 @@ namespace ANX.SoundSystem.OpenAL
|
||||
#region CreateSoundEffect
|
||||
public ISoundEffect CreateSoundEffect(SoundEffect parent, Stream stream)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSoundSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.SoundSystem);
|
||||
return new OpenALSoundEffect(parent, stream);
|
||||
}
|
||||
#endregion
|
||||
@ -175,7 +175,7 @@ namespace ANX.SoundSystem.OpenAL
|
||||
int offset, int count, int sampleRate, AudioChannels channels,
|
||||
int loopStart, int loopLength)
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSoundSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.SoundSystem);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
@ -183,7 +183,7 @@ namespace ANX.SoundSystem.OpenAL
|
||||
#region CreateAudioListener (TODO)
|
||||
public IAudioListener CreateAudioListener()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSoundSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.SoundSystem);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
@ -191,7 +191,7 @@ namespace ANX.SoundSystem.OpenAL
|
||||
#region CreateAudioEmitter (TODO)
|
||||
public IAudioEmitter CreateAudioEmitter()
|
||||
{
|
||||
AddInSystemFactory.Instance.PreventSoundSystemChange();
|
||||
AddInSystemFactory.Instance.PreventSystemChange(AddInType.SoundSystem);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
Loading…
x
Reference in New Issue
Block a user