我在使用Short2作爲我的頂點數據中的(x,y)位置時遇到了問題。這是我的頂點結構:可以在WP7上使用Short2作爲頂點位置嗎?
struct VertexPositionShort : IVertexType
{
private static VertexElement[]
vertexElements = new VertexElement[]
{
new VertexElement(0, VertexElementFormat.Short2, VertexElementUsage.Position, 0),
};
private static VertexDeclaration
vertexDeclaration = new VertexDeclaration(vertexElements);
public Short2
Position;
public static VertexDeclaration Declaration
{
get { return new VertexDeclaration(vertexElements); }
}
VertexDeclaration IVertexType.VertexDeclaration
{
get { return new VertexDeclaration(vertexElements); }
}
}
使用WP7模擬器,沒有什麼如果我用這個結構繪製的 - 沒有文物,沒有!但是,如果我使用一個結構相同的Short2結構被Vector2替換,那麼它完全可以正常工作。
我發現這是一個模擬器特定問題的引用:「在Windows Phone模擬器中,SkinnedEffect骨骼索引通道必須指定爲整數頂點元素格式之一 - Byte4,Short2或Short4 。這種相同的整數數據格式不能用於其他着色器輸入通道,如仿真器上的顏色,位置和紋理座標。「 (http://www.softpedia.com/progChangelog/Windows-Phone-Developer-Tools-Changelog-154611.html)但是,這是從2010年7月,我會認爲這個限制已經被修復了...?不幸的是我沒有一個設備去測試。
任何人都可以證實,這仍然是一個問題在模擬器或指向我的另一個原因,爲什麼這是行不通的?
我剛剛在一臺真正的WP7設備(HTC 7 Mozart)上測試過這個功能,令我驚訝的是,我得到了和模擬器相同的結果!用Short2位置繪製的所有東西都不會呈現......想法? – Bob