Поделиться через


Проверка значений индекса

Драйвер дисплея в пользовательском режиме может пройти "Разработано для Microsoft Windows" для тестирования логотипа оборудования, независимо от того, выполняется ли проверка индекса. Однако чтобы обеспечить работу драйвера с приложениями Microsoft DirectX, которые могут передавать недопустимые индексы, драйвер отображения пользовательского режима должен выполнять проверку индекса.

Следует учитывать следующие моменты:

  • Приложения DirectX 8.0 и DirectX 9.0 могут передавать значение шага 0 при отрисовки с помощью буфера вершин. В этом случае следует ссылаться только на вершину 0. Значение шага задается в элементе Stride структуры D3DDDIARG_SETSTREAMSOURCE при вызове функции SetStreamSource драйвера отображения пользовательского режима.

  • Вызов функции SetStreamSourceUM драйвера не включает размер данных вершины. То есть размер буфера пользовательской памяти, который предоставляет данные вершины, на которые указывает параметр pUMBufferSetStreamSourceUM , не указан.

  • Член NumVerticesструктуры D3DDDIARG_DRAWINDEXEDPRIMITIVE или D3DDDIARG_DRAWINDEXEDPRIMITIVE2 никогда не имеет значения 0 при вызове функции DrawIndexedPrimitive или DrawIndexedPrimitive2 драйвера. Драйвер должен установить максимально допустимый индекс (NumVertices - 1).