2017-03-05 72 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