Обработка кодов шейдеров
Драйвер отображения пользовательского режима использует объявления вершин и маркеры в коде каждого отдельного пикселя и шейдера вершин для программирования сборщиков шейдеров.
Драйвер отображения пользовательского режима получает код вершины и пиксельного шейдера, когда среда выполнения Microsoft Direct3D вызывает функции CreateVertexShaderFunc и CreatePixelShader драйвера соответственно. Драйвер отображения пользовательского режима получает объявления вершин, когда среда выполнения вызывает функцию CreateVertexShaderDecl драйвера. Объявления вершин состоят из массивов структур D3DDDIVERTEXELEMENT . Драйвер отображения пользовательского режима преобразует код шейдера и объявления вершинных шейдеров в аппаратный формат и связывает код и объявления шейдера с дескрипторами и дескрипторами объявлений. Среда выполнения использует созданные дескрипторы в вызовах функций SetVertexShaderDecl, SetVertexShaderFunc и SetPixelShader , чтобы задать объявление вершинного шейдера, а также шейдеры вершин и пикселей, чтобы все последующие операции рисования использовали их.
Дополнительные сведения о формате отдельного кода шейдера и токенах, составляющих каждый код шейдера, см. в разделе Коды шейдеров Direct3D.
Примечание Когда приложение создает вершинные шейдеры, пиксельные шейдеры и объявления вершин, код и объявление шейдера для каждого из них заканчивается конечным маркером. Когда среда выполнения Direct3D, в свою очередь, передает запросы на создание вершин и шейдера пикселей драйверу отображения пользовательского режима, код вершин и шейдера пикселей, сопровождающий запросы, заканчивается конечными маркерами. Однако, когда среда выполнения передает запросы на создание объявления вершин, объявления вершин, сопровождающие запросы, не заканчиваются конечными токенами.