Tag: sharpdx

既然Xna不受支持,那么更好的选择是什么?

Xna不受支持,不幸的是我最近开始游戏编程(约9个月)。 什么是更好的选择,DirectX或OpenGl。 现在,我不认为DirectX或OpenGl有C#的官方库,那么对于新手来说哪个更好呢? 我听说过像Mono,SharpDx和SlimDx这样的东西..但是DirectX相比OpenGl有什么优势,反之亦然。 另外,这些Mono,SharpDx和SlimDx被称为什么? 他们有一定的名字吗?

SharpFX 2.5在WPF中的DirectX11中

我正在尝试使用SharpDX 2.5将DirectX 11实现到WPF中。 可悲的是http://directx4wpf.codeplex.com/和http://sharpdxwpf.codeplex.com/与SharpDX 2.5无法正常工作。 我也无法将WPFHost DX10示例移植到DX11,并且此示例的完整代码包已关闭: http : //www.indiedev.de/wiki/DirectX_in_WPF_integrieren 有人可以提出另一种实施方式吗?

SharpDX在WPF中渲染

我想尽快画出线条。 出于这个原因,我使用InteropBitmap实现了一个方法。 这非常有效。 下一步是与ShardDX进行比较。 基本上我想要做的是:在BackgroundWorker中运行以下代码。 这确实告知WPF有关WIC的更新。 我发现这个代码(创建ShapeDX和绘制线所需的所有代码)比使用InteropBitmap做同样的时间长约10ms。 我现在的问题很简单,如何加快速度? 我可以以某种方式更改代码,我只需要调用BeginDraw,创建行和EndDraw,而不是总是执行所有这些图像编码/解码的东西吗? 还是有更好的方法? var wicFactory = new ImagingFactory(); var d2dFactory = new SharpDX.Direct2D1.Factory(); const int width = 800; const int height = 200; var wicBitmap = new Bitmap(wicFactory, width, height, SharpDX.WIC.PixelFormat.Format32bppBGR, BitmapCreateCacheOption.CacheOnLoad); var renderTargetProperties = new RenderTargetProperties(RenderTargetType.Default, new PixelFormat(Format.Unknown, AlphaMode.Unknown), 0, 0, RenderTargetUsage.None, FeatureLevel.Level_DEFAULT); var d2dRenderTarget = new […]

使用DeviceCreationFlags.Debug启动SharpDX / DirectX应用程序

我正在尝试使用DeviceCreationFlags.Debug启动我的directX / SharpDX应用程序但是我在启动时遇到以下崩溃: SharpDX.SharpDXException: HRESULT: [0x80004005], Module: [General], ApiCode: [E_FAIL/Unspecified error], Message: Unspecified error at SharpDX.Result.CheckError() at SharpDX.Direct3D11.Device.CreateDevice(Adapter adapter, DriverType driverType, DeviceCreationFlags flags, FeatureLevel[] featureLevels) at SharpDX.Direct3D11.Device..ctor(Adapter adapter, DeviceCreationFlags flags, FeatureLevel[] featureLevels) at SharpDX.Toolkit.Graphics.GraphicsDevice..ctor(GraphicsAdapter adapter, DeviceCreationFlags flags, FeatureLevel[] featureLevels) at SharpDX.Toolkit.GamePlatform.CreateDevice(GraphicsDeviceInformation deviceInformation) at SharpDX.Toolkit.GraphicsDeviceManager.CreateDevice(GraphicsDeviceInformation newInfo) at SharpDX.Toolkit.GraphicsDeviceManager.ChangeOrCreateDevice(Boolean forceCreate) at SharpDX.Toolkit.GraphicsDeviceManager.SharpDX.Toolkit.IGraphicsDeviceManager.CreateDevice() at SharpDX.Toolkit.Game.InitializeBeforeRun() at SharpDX.Toolkit.GameWindowDesktop.Run() at […]

如何在WinRT中使用SharpDX同时播放多个声音?

我正在尝试制作乐器类型的应用程序。 我遇到的问题是只有旧的声音完成后才能播放新的声音。 我希望能够同时播放它们。 这就是我的代码的样子: 首先,MyWave类只包含音频缓冲区和其他一些信息: class MyWave { public AudioBuffer Buffer { get; set; } public uint[] DecodedPacketsInfo { get; set; } public WaveFormat WaveFormat { get; set; } } 在SoundPlayer类中: private XAudio2 xaudio; private MasteringVoice mvoice; Dictionary sounds; // Constructor public SoundPlayer() { xaudio = new XAudio2(); xaudio.StartEngine(); mvoice = new MasteringVoice(xaudio); sounds = […]

在Windows Phone 8中同时播放两个音频文件的最佳方法

目前正在研究如何在Windows Phone 8中同时播放两个mp3或aac格式文件。 目前我正在使用XNA SoundEffect类,但只允许WAV文件不适合通过网络传输。 虽然研究我遇到SharpDX,但似乎主要迎合.WAV或一次播放一个文件。 我还发现了这个问题: 在Windows 8 Metro App(C#/ XAML)中同时播放两个声音在Windows 8中可以使用多个媒体元素,但我不确定它们是否在Windows Phone中( 这个问题似乎不同意 ) 任何想法将不胜感激。 更新:它不能通过MediaElement完成,因为我认为http://msdn.microsoft.com/en-us/library/windowsphone/design/hh202883(v=vs.105).aspx

从Windows 8应用程序中生成的缓冲区播放声音

我正在将一些C#Windows Phone 7应用移植到Windows 8。 手机应用程序使用XNA SoundEffect从缓冲区播放任意声音。 在最简单的情况下,我只需创建所需持续时间和频率的正弦波。 持续时间和频率都可能有很大差异,所以我宁愿不依赖MediaElements(除非有一些方法可以改变基本文件的频率,但这只会帮助我生成单一频率)。 WinRT中的XNA SoundEffectInstance相当于什么? 我假设我需要使用DirectX,但我不确定如何从其他C#/ XAML应用程序中进行此操作。 我已经看过SharpDX ,但它似乎没有我认为我需要使用的DirectSound,SecondaryBuffer,SecondaryBuffer类。 我上面做了一些假设。 可能是我正在寻找错误的类,或者有一种完全独立的方式从Windows 8应用程序生成任意声音。 我找到了一个使用SharpDX的XAudio2通过AudioBuffer播放wav文件的例子 。 这看起来很有希望,我只需要将生成的音频缓冲区替换为本机文件流。 PM>安装包装SharpDX PM> Install-Package SharpDX.XAudio2 public void PlaySound() { XAudio2 xaudio; MasteringVoice masteringVoice; xaudio = new XAudio2(); masteringVoice = new MasteringVoice(xaudio); var nativefilestream = new NativeFileStream( @”Assets\SpeechOn.wav”, NativeFileMode.Open, NativeFileAccess.Read, NativeFileShare.Read); var soundstream = new SoundStream(nativefilestream); var […]