2017-03-05 71 views
0

我正在研究UWPC#蓝牙应用程序与3D表示视图。 (手和手指将接收传感器ST微电子WESU)uwp directx和c#开发

目前,我用蓝牙的windows phone 8应用程序(台式机和Windows手机)与ti传感器标签和DirectX示例。

现在我到了从stmicro wesu传感器读取具有自定义UWP BLE示例(最初存在于Windows SDK中)的计算四元数。

但现在它可以正常工作ble/sharpdx/uwpWindows 10。但是当我现在尝试在Lumia 640上执行应用程序时,我有一个例外。

问题是它使用DirectX 9,并且它不被UWP锐xx支持。

锋锐的dx团队向我证实,UWP不适用于DirectX 9(core.net,如果我没有记错的话)。

我试着降级用于像素着色器和vertax着色器的版本如下,但它没有完成这项工作。

所以我的问题是我怎样才能到达运行上Lumia 640

// 
using (var vertexShaderByteCode = ShaderBytecode.CompileFromFile("vertexShader.hlsl", "main", "vs_4_0_level_9_1", ShaderFlags.None)) 
{ 
    vertexShader = new D3D11.VertexShader(this.device,vertexShaderByteCode); 
    inputSignature = new ShaderSignature(vertexShaderByteCode); 
} 

// 
using (var pixelShaderByteCode = ShaderBytecode.CompileFromFile("pixelShader.hlsl", "main", "ps_4_0_level_9_1", ShaderFlags.None)) 
{ 
    pixelShader = new D3D11.PixelShader(this.device , pixelShaderByteCode); 
} 

triangle initialisation with pixel shader and vertex shader

+0

的Lumia 640仅根据该链路(https://www.microsoft.com/en-gb/mobile/phone/lumia640/specifications/)支持DirectX 11。所以它只是不支持DirectX 9.你确定你的问题是与着色器字节码(它通常向后兼容,很少有功能在HLSL中被弃用),而不是你正在引用的SharpDX库? – PhillipH

回答

0

好,我跟你agreee,它只是去渲染

vs_4_0_level_9_1 ps_4_0_level_9_1

使用(D3D11.Device defaultDevice =新的D3D11。设备(D3D.DriverType.Hardware,D3D11.DeviceCreationFlags。))

enter image description here