В следующей строке .NET XNA иногда будет ошибка.
VertexBuffer v = new VertexBuffer(GraphicsDevice, typeof(VertexPositionColorTexture), 4, BufferUsage.None);
Выдается исключение InvalidOperationException, и оно сообщает мне, что:
"The current vertex declaration does not include all the elements
required by the current vertex shader."
Я использую BasicEffect в качестве шейдера. Теперь я изменяю форматы в буферах вершин, которые я выводю, но они выводятся сразу. Я не связываю несколько буферов одновременно. Они просто сразу выводятся с примитивными функциями. Для моих различных форматов (думаю, 3) у некоторых нет текстур (VertexPositionColor), у некоторых нет цветов (VertexPositionTexture) и т. Д. По мере продвижения я также настраиваю TexturesEnabled, VertexColorEnabled и т. Д. Я также вызываю Apply для каждого из EffectPass (есть только один проход; счет равен 1)
effect.CurrentTechnique.Passes.First<EffectPass>().Apply();
Эта строка сделана до первой заданной.
Сейчас происходит ошибка в месте, где я готовлюсь нарисовать спрайт TriangleStrip на экране. В этом случае я использую VertexColoring, TextureEnabled, для текстуры задано значение, которое я хочу вывести (отладка этого значения показывает, что он загружен нормально). LightingEnabled имеет значение false.
Позвольте мне также отметить, что это для проекта Windows Phone 7.