Контракты Microsoft Code без Visual Studio

Этот вопрос о переполнении стека:

Контракты кода Microsoft и сервер сборки CI

спрашивает, как заставить контракты кода работать на сервере сборки без установки Visual Studio 2010. Мы пытаемся сделать то же самое. Мы выполнили шаги, описанные в принятом ответе, но не смогли заставить его работать.

CodeContracts не будет установлен на сервере сборки, если не будет Visual Studio. Итак, следуя предложению, мы Мы сделали следующее:

  1. Мы скопировали содержимое % programfiles% \ Microsoft \ Contracts \ Bin с машины для разработки с установленными Visual Studio 2010 Ultimate и Code Contracts Premium на сервер сборки.
  2. Мы также скопировали папку MSBuild \ v4.0 , которая содержит Microsoft.CodeContracts.targets и Microsoft.CodeContractAnalysis.targets .

Согласно документации CodeContracts ,

Использование msbuild в проекте или решении, которое использует контракты, включенные через пользовательский интерфейс VS, будет выполнять те же действия, что и соответствующая сборка в VS.

Это наш вариант использования, мы просто вызываем MSBuild в нашем решении файл, как показано ниже. Файл решения создается с помощью Visual Studio со всеми ожидаемыми параметрами контракта кода, настроенными для перезаписи. Я новичок в OpenGL ES, но у меня уже есть опыт работы с обычным OpenGL. Мне сказали, что использовать чересстрочные массивы для буферов вершин намного быстрее из-за оптимизации, позволяющей избежать ...

Эй. Я новичок в OpenGL ES, но у меня уже есть опыт работы с обычным OpenGL. Мне сказали, что использование чересстрочных массивов для буферов вершин намного быстрее из-за оптимизации, позволяющей избежать промахов в кэше.
Я разработал формат вершин, который я буду использовать, который выглядит следующим образом

struct SVertex
{
    float x,y,z;
    float nx,ny,nz;
    float tx,ty,tz;
    float bx,by,bz;
    float tu1,tv1;
    float tu2,tv2;
};

Затем я использовал «glVertexAttribPointer (index, 3, GL_FLOAT, GL_FALSE, stride, v)»; чтобы указать на массив вершин. Индекс - это один из атрибутов, которые я хочу использовать, а все остальное в порядке, кроме шага. Это сработало, прежде чем я решил добавить это в уравнение. Я передал шаг как sizeof (SVertex) и как 13 * 4, но ни один из них не работает.
Если это имеет какое-то значение, я рисую такие примитивы

glDrawElements(GL_TRIANGLES,surface->GetIndexCount()/3,GL_UNSIGNED_INT,surface->IndPtr());

. В спецификациях OpenGL написано, что шаг должен быть размером в байтах от конца атрибута (в данном случае z) до следующего атрибута того же типа ( в данном случае x). Таким образом, по моим расчетам это должно быть 13 (nx, ny, nz, tx, ty .... tuv2, tv2) умноженное на 4 (размер поплавка).
Да, и еще один момент: дисплей просто пустой.
Может ли кто-нибудь помочь мне с этим?
Большое спасибо.

7
задан genpfault 21 April 2011 в 18:59
поделиться