перечисление D3DRENDERSTATETYPE (d3d9types.h)
В D3DRENDERSTATETYPE перечисленном типе перечислены различные атрибуты или состояния отрисовки. Перечислители D3DRENDERSTATETYPE, которые используются исключительно драйверами, могут указывать сведения о отрисовке или атрибут текстуры. Следующие состояния отрисовки используются драйверами отображения:
Синтаксис
typedef enum _D3DRENDERSTATETYPE {
D3DRS_ZENABLE,
D3DRS_FILLMODE,
D3DRS_SHADEMODE,
D3DRS_ZWRITEENABLE,
D3DRS_ALPHATESTENABLE,
D3DRS_LASTPIXEL,
D3DRS_SRCBLEND,
D3DRS_DESTBLEND,
D3DRS_CULLMODE,
D3DRS_ZFUNC,
D3DRS_ALPHAREF,
D3DRS_ALPHAFUNC,
D3DRS_DITHERENABLE,
D3DRS_ALPHABLENDENABLE,
D3DRS_FOGENABLE,
D3DRS_SPECULARENABLE,
D3DRS_FOGCOLOR,
D3DRS_FOGTABLEMODE,
D3DRS_FOGSTART,
D3DRS_FOGEND,
D3DRS_FOGDENSITY,
D3DRS_RANGEFOGENABLE,
D3DRS_STENCILENABLE,
D3DRS_STENCILFAIL,
D3DRS_STENCILZFAIL,
D3DRS_STENCILPASS,
D3DRS_STENCILFUNC,
D3DRS_STENCILREF,
D3DRS_STENCILMASK,
D3DRS_STENCILWRITEMASK,
D3DRS_TEXTUREFACTOR,
D3DRS_WRAP0,
D3DRS_WRAP1,
D3DRS_WRAP2,
D3DRS_WRAP3,
D3DRS_WRAP4,
D3DRS_WRAP5,
D3DRS_WRAP6,
D3DRS_WRAP7,
D3DRS_CLIPPING,
D3DRS_LIGHTING,
D3DRS_AMBIENT,
D3DRS_FOGVERTEXMODE,
D3DRS_COLORVERTEX,
D3DRS_LOCALVIEWER,
D3DRS_NORMALIZENORMALS,
D3DRS_DIFFUSEMATERIALSOURCE,
D3DRS_SPECULARMATERIALSOURCE,
D3DRS_AMBIENTMATERIALSOURCE,
D3DRS_EMISSIVEMATERIALSOURCE,
D3DRS_VERTEXBLEND,
D3DRS_CLIPPLANEENABLE,
D3DRS_POINTSIZE,
D3DRS_POINTSIZE_MIN,
D3DRS_POINTSPRITEENABLE,
D3DRS_POINTSCALEENABLE,
D3DRS_POINTSCALE_A,
D3DRS_POINTSCALE_B,
D3DRS_POINTSCALE_C,
D3DRS_MULTISAMPLEANTIALIAS,
D3DRS_MULTISAMPLEMASK,
D3DRS_PATCHEDGESTYLE,
D3DRS_DEBUGMONITORTOKEN,
D3DRS_POINTSIZE_MAX,
D3DRS_INDEXEDVERTEXBLENDENABLE,
D3DRS_COLORWRITEENABLE,
D3DRS_TWEENFACTOR,
D3DRS_BLENDOP,
D3DRS_POSITIONDEGREE,
D3DRS_NORMALDEGREE,
D3DRS_SCISSORTESTENABLE,
D3DRS_SLOPESCALEDEPTHBIAS,
D3DRS_ANTIALIASEDLINEENABLE,
D3DRS_MINTESSELLATIONLEVEL,
D3DRS_MAXTESSELLATIONLEVEL,
D3DRS_ADAPTIVETESS_X,
D3DRS_ADAPTIVETESS_Y,
D3DRS_ADAPTIVETESS_Z,
D3DRS_ADAPTIVETESS_W,
D3DRS_ENABLEADAPTIVETESSELLATION,
D3DRS_TWOSIDEDSTENCILMODE,
D3DRS_CCW_STENCILFAIL,
D3DRS_CCW_STENCILZFAIL,
D3DRS_CCW_STENCILPASS,
D3DRS_CCW_STENCILFUNC,
D3DRS_COLORWRITEENABLE1,
D3DRS_COLORWRITEENABLE2,
D3DRS_COLORWRITEENABLE3,
D3DRS_BLENDFACTOR,
D3DRS_SRGBWRITEENABLE,
D3DRS_DEPTHBIAS,
D3DRS_WRAP8,
D3DRS_WRAP9,
D3DRS_WRAP10,
D3DRS_WRAP11,
D3DRS_WRAP12,
D3DRS_WRAP13,
D3DRS_WRAP14,
D3DRS_WRAP15,
D3DRS_SEPARATEALPHABLENDENABLE,
D3DRS_SRCBLENDALPHA,
D3DRS_DESTBLENDALPHA,
D3DRS_BLENDOPALPHA,
D3DRS_FORCE_DWORD
} D3DRENDERSTATETYPE;
Константы
D3DRS_ZENABLE Тип перечисления D3DZBUFFERTYPE, представляющий состояние буферизации глубины. |
D3DRS_FILLMODE Тип перечисления D3DFILLMODE. |
D3DRS_SHADEMODE Тип перечисления D3DSHADEMODE. |
D3DRS_ZWRITEENABLE Значение TRUE, чтобы приложение записывайте в буфер глубины. Значение по умолчанию — TRUE. Этот элемент позволяет приложению предотвратить обновление буфера глубины системой с новыми значениями глубины. Если значение FALSE, сравнение глубины по-прежнему выполняется в соответствии с состоянием отрисовки D3DRS_ZFUNC, предполагая, что буферизация глубины происходит, но значения глубины не записываются в буфер. |
D3DRS_ALPHATESTENABLE Значение TRUE для включения альфа-тестирования пикселей. Если тест проходит, пиксель обрабатывается буфером кадра. В противном случае все обработка буфера кадров пропускается для пикселя. |
D3DRS_LASTPIXEL Значение по умолчанию — TRUE, которое включает рисование последнего пикселя в строке. Чтобы предотвратить рисование последнего пикселя, задайте для этого значения значение FALSE. |
D3DRS_SRCBLEND Тип перечисления D3DBLEND. |
D3DRS_DESTBLEND Тип перечисления D3DBLEND. |
D3DRS_CULLMODE Тип перечисления D3DCULL, указывающий, как выбрасываются треугольники с задней стороной, если вообще. |
D3DRS_ZFUNC Тип перечисления D3DCMPFUNC, позволяющий приложению принимать или отклонять пиксель на основе расстояния от камеры. Значение глубины пикселя сравнивается со значением буфера глубины. Если значение глубины пикселя передает функцию сравнения, пиксель записывается. Значение глубины записывается в буфер глубины, только если состояние отрисовки равно TRUE. |
D3DRS_ALPHAREF Значение, указывающее ссылочное альфа-значение, для которого тестируются пиксели при включении альфа-тестирования. Это 8-разрядное значение, размещенное в низких 8 битах значения состояния отрисовки DWORD. Значения могут варьироваться от 0x00000000 до 0x000000FF. Значение по умолчанию — 0. |
D3DRS_ALPHAFUNC Тип перечисления D3DCMPFUNC, позволяющий приложению принимать или отклонять пиксель на основе его альфа-значения. |
D3DRS_DITHERENABLE Значение TRUE для включения dithering. Значение по умолчанию — FALSE. |
D3DRS_ALPHABLENDENABLE Значение TRUE для включения прозрачности с альфа-смешанным форматом. Значение по умолчанию — FALSE. Тип альфа-смешивания определяется состояниями D3DRS_SRCBLEND и D3DRS_DESTBLEND отрисовки. |
D3DRS_FOGENABLE True, чтобы включить смешение тумана. Значение по умолчанию — FALSE. |
D3DRS_SPECULARENABLE Значение TRUE для включения зрителя. Значение по умолчанию — FALSE. Спекулярные выделения вычисляются так, как будто каждая вершина в объекте, зажигаемая, находится в источнике объекта. Это дает ожидаемые результаты до тех пор, пока объект моделируется вокруг источника и расстояние от света к объекту относительно большой. В других случаях результаты не определены. Если для этого элемента задано значение TRUE, то зриемый цвет добавляется к базовому цвету после каскада текстуры, но до альфа-смешения. |
D3DRS_FOGCOLOR Структура D3DCOLORVALUE. |
D3DRS_FOGTABLEMODE D3DFOGMODE перечислимый тип, представляющий формулу тумана, которая будет использоваться для тумана пикселей. |
D3DRS_FOGSTART Глубина, с которой начинаются эффекты пикселя или вершины тумана для линейного режима тумана. Значение по умолчанию — 0.0f. Глубина указана в мировом пространстве для тумана вершин и пространства устройства [0.0, 1.0] или мирового пространства для тумана пикселей. Для пиксельного тумана эти значения находятся в пространстве устройства, когда система использует z для вычислений тумана и мирового пространства, когда система использует туман относительно глаз (w-fog). |
D3DRS_FOGEND Глубина, в которой пиксель или вершинные эффекты тумана заканчиваются для линейного режима тумана. Значение по умолчанию — 1.0f. Глубина указана в мировом пространстве для тумана вершин и пространства устройства [0.0, 1.0] или мирового пространства для тумана пикселей. Для пиксельного тумана эти значения находятся в пространстве устройства, когда система использует z для вычислений тумана и в мировом пространстве, когда система использует туман относительно глаз (w-fog). |
D3DRS_FOGDENSITY Плотность тумана для пиксельного или вершинного тумана, используемого в экспоненциальных режимах тумана (D3DFOG_EXP и D3DFOG_EXP2). Допустимые значения плотности варьируются от 0,0 до 1.0. |
D3DRS_RANGEFOGENABLE Значение TRUE для включения тумана вершин на основе диапазона. Значение по умолчанию — FALSE, в этом случае система использует туман на основе глубины. В тумане на основе диапазона расстояние объекта от средства просмотра используется для вычисления эффектов тумана, а не глубины объекта (т. е. координаты z) в сцене. В тумане на основе диапазона все методы тумана работают как обычно, за исключением того, что они используют диапазон вместо глубины в вычислениях. Диапазон является правильным фактором, используемым для вычислений тумана, но глубина обычно используется, так как диапазон занимает много времени для вычислений и глубины, как правило, уже доступен. Использование глубины для вычисления тумана имеет нежелательный эффект при изменении туманности периферийных объектов по мере перемещения глаза зрителя - в этом случае глубина изменяется, и диапазон остается постоянным. Так как оборудование в настоящее время не поддерживает туман на основе диапазона пикселей, исправление диапазона предлагается только для тумана вершин. |
D3DRS_STENCILENABLE Значение TRUE, чтобы включить набор элементов или FALSE, чтобы отключить набор элементов. Значение по умолчанию — FALSE. |
D3DRS_STENCILFAIL Тип перечисления D3DSTENCILOP, указывающий операцию набора элементов для выполнения, если тест набора элементов завершается ошибкой. Значение по умолчанию — D3DSTENCILOP_KEEP. |
D3DRS_STENCILZFAIL Тип перечисления D3DSTENCILOP, указывающий операцию набора элементов для выполнения, если тест наборов проходит, а тест глубины (z-test) завершается ошибкой. |
D3DRS_STENCILPASS Тип перечисления D3DSTENCILOP, указывающий операцию набора элементов для выполнения, если тесты глубины и глубины (z) проходят. |
D3DRS_STENCILFUNC Функция сравнения используется для сравнения ссылочного значения с записью буфера набора элементов. Это сравнение применяется только к битам в значении ссылки и записи буфера наборов элементов, заданных в маске набора элементов (устанавливается состоянием отрисовки D3DRS_STENCILMASK). Если значение TRUE, тест набора элементов проходит. |
D3DRS_STENCILREF Значение ссылки int для теста наборов элементов. Значение по умолчанию — 0. |
D3DRS_STENCILMASK Маска применяется к значению ссылки и каждой записи буфера набора элементов, чтобы определить значительные биты для теста наборов элементов. Маска по умолчанию 0xFFFFFFFF. |
D3DRS_STENCILWRITEMASK Маска записи, применяемая к значениям, записанным в буфер набора элементов. Маска по умолчанию 0xFFFFFFFF. |
D3DRS_TEXTUREFACTOR Цвет, используемый для смешивания с несколькими текстурами с аргументом D3DTA_TFACTOR текстуры или операцией D3DTOP_BLENDFACTORALPHA смешения текстур. |
D3DRS_WRAP0 Поведение упаковки текстур для нескольких наборов координат текстур. Допустимые значения для этого состояния отрисовки могут быть любым сочетанием D3DWRAPCOORD_0 (или D3DWRAP_U), D3DWRAPCOORD_1 (или D3DWRAP_V), D3DWRAPCOORD_2 (или D3DWRAP_W) и флагов D3DWRAPCOORD_3. Это приводит к тому, что система будет упаковывать в сторону первого, второго, третьего и четвертого измерений, иногда называемые направлениями s, t, r и q для данной текстуры. Значение по умолчанию для этого состояния отрисовки равно 0 (оболочка отключена во всех направлениях). |
D3DRS_WRAP1 См. D3DRS_WRAP0. |
D3DRS_WRAP2 См. D3DRS_WRAP0. |
D3DRS_WRAP3 См. D3DRS_WRAP0. |
D3DRS_WRAP4 См. D3DRS_WRAP0. |
D3DRS_WRAP5 См. D3DRS_WRAP0. |
D3DRS_WRAP6 См. D3DRS_WRAP0. |
D3DRS_WRAP7 См. D3DRS_WRAP0. |
D3DRS_CLIPPING ЗНАЧЕНИЕ TRUE, чтобы включить примитивное вырезка с помощью Direct3D или FALSE, чтобы отключить его. Значение по умолчанию — TRUE. |
D3DRS_LIGHTING ЗНАЧЕНИЕ TRUE, чтобы включить освещение Direct3D или FALSE, чтобы отключить его. Значение по умолчанию — TRUE. Правильно освещены только вершины, включающие норму вершины; вершины, которые не содержат нормального, используют точечный продукт 0 во всех вычислениях освещения. |
D3DRS_AMBIENT Цвет окружающего света. |
D3DRS_FOGVERTEXMODE Формула тумана, используемая для тумана вершин. |
D3DRS_COLORVERTEX ЗНАЧЕНИЕ TRUE, чтобы включить цвет вершины или FALSE, чтобы отключить его. Значение по умолчанию — TRUE. Включение цвета вершин позволяет системе включать цвет, определенный для отдельных вершин в вычислениях освещения. |
D3DRS_LOCALVIEWER ЗНАЧЕНИЕ TRUE, чтобы включить относительные вспышки камеры или FALSE для использования ортогональных зрительных выделений. Значение по умолчанию — TRUE. Приложения, использующие ортогональную проекцию, должны указывать FALSE. |
D3DRS_NORMALIZENORMALS ЗНАЧЕНИЕ TRUE, чтобы включить автоматическую нормализацию норм вершин или FALSE, чтобы отключить ее. Значение по умолчанию — FALSE. Включение этой функции приводит к нормализации нормальной вершины для вершин после преобразования их в пространство камеры, что может быть вычислительным временем. |
D3DRS_DIFFUSEMATERIALSOURCE Диффузный источник цвета для вычислений освещения. |
D3DRS_SPECULARMATERIALSOURCE Спекулярный источник цвета для вычислений освещения. |
D3DRS_AMBIENTMATERIALSOURCE Внешний источник цвета для вычислений освещения. |
D3DRS_EMISSIVEMATERIALSOURCE Эмистивный источник цвета для вычислений освещения. |
D3DRS_VERTEXBLEND Количество матриц, используемых для смешивания геометрии, если таковые есть. |
D3DRS_CLIPPLANEENABLE Включает или отключает определяемые пользователем плоскости вырезки. Допустимые значения — это все DWORD, в которых состояние каждого бита (задано или не задано) переключает состояние активации соответствующего определяемого пользователем плоскости вырезки. Наименьший значимый бит (бит 0) управляет первым отрезки плоскости по индексу 0, а последующие биты управляют активацией отрезки плоскостей с более высокими индексами. Если задан бит, система применяет соответствующий плоскость вырезки во время отрисовки сцены. Значение по умолчанию — 0. |
D3DRS_POINTSIZE Значение с плавающей запятой, указывающее размер, используемый для вычислений размера точек в случаях, когда размер точки не указан для каждой вершины. Это значение не используется, если вершина содержит размер точки. Это значение находится в единицах пространства экрана, если D3DRS_POINTSCALEENABLE имеет значение FALSE; в противном случае это значение находится в единицах мирового пространства. Значением по умолчанию является значение, возвращаемое драйвером. Если драйвер возвращает значение 0 или 1, значение по умолчанию равно 64, что позволяет эмуляции размера точки программного обеспечения. |
D3DRS_POINTSIZE_MIN Значение с плавающей запятой, указывающее минимальный размер примитивов точек. Примитивы точек зажаты к этому размеру во время отрисовки. При установке этого значения меньше 1,0 приводит к удалению точек, когда точка не охватывает центр пикселей, а антиализирование отключается или отрисовывается с меньшей интенсивностью при включении защиты. Значение по умолчанию — 1.0f. Диапазон для этого значения больше или равен 0,0f. |
D3DRS_POINTSPRITEENABLE Если значение TRUE, координаты текстуры примитивов точек задаются таким образом, чтобы все текстуры сопоставлялись на каждой точке. При значении FALSE координаты текстур вершины используются для всей точки. Значение по умолчанию — FALSE. Вы можете достичь точек одно пикселя в стиле DirectX 7, задав D3DRS_POINTSCALEENABLE значение FALSE и D3DRS_POINTSIZE значение 1.0, которое является значениями по умолчанию. |
D3DRS_POINTSCALEENABLE Логическое значение, которое управляет вычислением размера для примитивов точек. Если значение true, размер точки интерпретируется как значение пространства камеры и масштабируется функцией расстояния и frustum для просмотра масштабирования оси y для вычисления окончательного размера точки пространства экрана. Если значение FALSE, размер точки интерпретируется как пространство экрана и используется непосредственно. Значение по умолчанию — FALSE. |
D3DRS_POINTSCALE_A Значение с плавающей запятой, которое управляет затуханием размера на основе расстояния для примитивов точек. Активен только в том случае, если D3DRS_POINTSCALEENABLE имеет значение TRUE. Значение по умолчанию — 1.0f. Диапазон для этого значения больше или равен 0,0f. |
D3DRS_POINTSCALE_B Значение с плавающей запятой, которое управляет затуханием размера на основе расстояния для примитивов точек. Активен только в том случае, если D3DRS_POINTSCALEENABLE имеет значение TRUE. Значение по умолчанию — 0.0f. Диапазон для этого значения больше или равен 0,0f. |
D3DRS_POINTSCALE_C Значение с плавающей запятой, которое управляет затуханием размера на основе расстояния для примитивов точек. Активен только в том случае, если D3DRS_POINTSCALEENABLE имеет значение TRUE. Значение по умолчанию — 0.0f. Диапазон для этого значения больше или равен 0,0f. |
D3DRS_MULTISAMPLEANTIALIAS Логическое значение, определяющее, как вычисляются отдельные образцы при использовании многофакторного буфера целевого буфера отрисовки. Если задано значение TRUE, вычисляются несколько выборок таким образом, чтобы полная защита сцены выполнялась выборкой по разным позициям выборки для каждого из нескольких выборок. Если задано значение FALSE, все несколько примеров записываются с одинаковым значением выборки в центре пикселей, что позволяет выполнять отрисовку в многофакторном буфере. Это состояние отрисовки не действует при отрисовке в один буфер выборки. Значение по умолчанию — TRUE. |
D3DRS_MULTISAMPLEMASK Каждый бит в этой маске, начиная с наименьшего значительного бита (LSB), управляет изменением одного из примеров в целевом объекте многофакторной отрисовки. Таким образом, для 8-выборочных целевых объектов отрисовки низкий байт содержит восемь операций записи для каждого из восьми выборок. Это состояние отрисовки не действует при отрисовке в один буфер выборки. Значение по умолчанию — 0xFFFFFFFF. Это состояние отрисовки позволяет использовать многофакторный буфер в качестве буфера накопления, выполняя многострастную отрисовку геометрии, где каждый проход обновляет подмножество примеров. Если есть многосамплесные и включенные образцы k, результирующая интенсивность отрисованного изображения должна иметь значение k/n. Каждый компонент RGB каждого пикселя учитывается k/n. |
D3DRS_PATCHEDGESTYLE Задает, будут ли края исправлений использовать тесселяции с плавающей запятой. |
D3DRS_DEBUGMONITORTOKEN Устанавливается только для отладки монитора. |
D3DRS_POINTSIZE_MAX Значение с плавающей запятой, указывающее максимальный размер, к которому будут закреплены спрайты точек. Значение должно быть меньше или равно члену maxPointSize D3DCAPS9 и больше или равно D3DRS_POINTSIZE_MIN. Значение по умолчанию — 64.0. |
D3DRS_INDEXEDVERTEXBLENDENABLE Логическое значение, которое включает или отключает индексированные смешения вершин. Значение по умолчанию — FALSE. Если задано значение TRUE, включена перемешивание индексированных вершин. Если задано значение FALSE, то отключается перемешивание индексированных вершин. Если это состояние отрисовки включено, пользователь должен передавать индексы матрицы в виде упакованного DWORDwith каждой вершины. Если состояние отрисовки отключено и смешение вершин включено через состояние D3DRS_VERTEXBLEND, это эквивалентно использованию индексов матрицы 0, 1, 2, 3 в каждой вершине. |
D3DRS_COLORWRITEENABLE Значение UINT, которое включает запись на канал для буфера цветов отрисовки. Набор битов приводит к обновлению цветового канала во время трехмерной отрисовки. Четкий бит приводит к тому, что цветной канал не влияет. |
D3DRS_TWEENFACTOR Значение с плавающей запятой, которое управляет коэффициентом настройки. |
D3DRS_BLENDOP Значение, используемое для выбора арифметической операции, применяемой при отображении состояния альфа-смешивания, D3DRS_ALPHABLENDENABLE, имеет значение TRUE. Если возможность устройства D3DPMISCCAPS_BLENDOP не поддерживается, D3DBLENDOP_ADD выполняется. |
D3DRS_POSITIONDEGREE Степень интерполяции положения N-patch. Значения могут быть D3DDEGREE_CUBIC (по умолчанию) или D3DDEGREE_LINEAR. |
D3DRS_NORMALDEGREE Степень нормальной интерполяции N-patch. Значения могут быть D3DDEGREE_LINEAR (по умолчанию) или D3DDEGREE_QUADRATIC. |
D3DRS_SCISSORTESTENABLE ЗНАЧЕНИЕ TRUE, чтобы включить тестирование ножницы и FALSE, чтобы отключить его. Значение по умолчанию — FALSE. |
D3DRS_SLOPESCALEDEPTHBIAS Используется для определения того, сколько предвзятости можно применить к сопланарным примитивам для уменьшения z-боевых действий. Значение по умолчанию — 0. |
D3DRS_ANTIALIASEDLINEENABLE Значение TRUE для включения защиты от линии, FALSE для отключения антиалиасинга линии. Значение по умолчанию — FALSE. |
D3DRS_MINTESSELLATIONLEVEL Минимальный уровень тесселяции. Значение по умолчанию — 1.0f. |
D3DRS_MAXTESSELLATIONLEVEL Максимальный уровень тесселяции. Значение по умолчанию — 1.0f. |
D3DRS_ADAPTIVETESS_X Количество адаптивных тесселлате в направлении x. Значение по умолчанию — 0.0f. |
D3DRS_ADAPTIVETESS_Y Сумма адаптивно тесселлате, в направлении y. Значение по умолчанию — 0.0f. |
D3DRS_ADAPTIVETESS_Z Сумма адаптивно тесселлате в направлении z. Значение по умолчанию — 1.0f. |
D3DRS_ADAPTIVETESS_W Количество адаптивно тесселлате в направлении w. Значение по умолчанию — 0.0f. |
D3DRS_ENABLEADAPTIVETESSELLATION ЗНАЧЕНИЕ TRUE для включения адаптивной тесселяции, FALSE для отключения. |
D3DRS_TWOSIDEDSTENCILMODE TRUE включает двухстороннее набор элементов, false отключает его. Значение по умолчанию — FALSE. Приложение должно задать для D3DRS_CULLMODE значение D3DCULL_NONE, чтобы включить двухсторонняя режим набора элементов. Если порядок ветвления треугольника по часовой стрелке, будут использоваться операции D3DRS_STENCIL*. Если порядок подмотки счетчиков, будут использоваться операции D3DRS_CCW_STENCIL*. |
D3DRS_CCW_STENCILFAIL Операция набора элементов для выполнения, если тест набора элементов CCW завершается сбоем. |
D3DRS_CCW_STENCILZFAIL Операция набора элементов для выполнения, если тест набора элементов CCW проходит и z-test завершается сбоем. |
D3DRS_CCW_STENCILPASS Операция набора элементов для выполнения, если передаются наборы элементов CCW и z-тесты. |
D3DRS_CCW_STENCILFUNC Функция сравнения. Проверка набора элементов CCW проходит, если ((ref & маска) функция наборов (набор элементов & маска)) имеет значение TRUE. |
D3DRS_COLORWRITEENABLE1 Дополнительные значения ColorWriteEnable для устройств. |
D3DRS_COLORWRITEENABLE2 Дополнительные значения ColorWriteEnable для устройств. |
D3DRS_COLORWRITEENABLE3 Дополнительные значения ColorWriteEnable для устройств. |
D3DRS_BLENDFACTOR Константный коэффициент смешивания во время альфа-смешивания. |
D3DRS_SRGBWRITEENABLE Включение гамма-записи в SRGB. Формат должен предоставлять D3DUSAGE_SRGBWRITE. Значение по умолчанию — 0. |
D3DRS_DEPTHBIAS Значение с плавающей запятой, используемое для сравнения значений глубины. |
D3DRS_WRAP8 См. D3DRS_WRAP0. |
D3DRS_WRAP9 См. D3DRS_WRAP0. |
D3DRS_WRAP10 См. D3DRS_WRAP0. |
D3DRS_WRAP11 См. D3DRS_WRAP0. |
D3DRS_WRAP12 См. D3DRS_WRAP0. |
D3DRS_WRAP13 См. D3DRS_WRAP0. |
D3DRS_WRAP14 См. D3DRS_WRAP0. |
D3DRS_WRAP15 См. D3DRS_WRAP0. |
D3DRS_SEPARATEALPHABLENDENABLE True включает отдельный режим смешивания для альфа-канала. Значение по умолчанию — FALSE. Если задано значение FALSE, то факторы и операции, применяемые к альфа-данным, должны совпадать с параметрами, определенными для цвета. Этот режим эффективно жестко включен в false для реализаций, которые не задают D3DPMISCCAPS_SEPARATEALPHABLEND крышки. |
D3DRS_SRCBLENDALPHA Это значение игнорируется, если D3DRS_SEPARATEALPHABLENDENABLE значение TRUE. |
D3DRS_DESTBLENDALPHA Это значение игнорируется, если D3DRS_SEPARATEALPHABLENDENABLE значение TRUE. |
D3DRS_BLENDOPALPHA Значение, используемое для выбора арифметической операции, применяемой к отдельному альфа-смешаю при состоянии отрисовки, D3DRS_SEPARATEALPHABLENDENABLE, имеет значение TRUE. |
D3DRS_FORCE_DWORD Заставляет это перечисление скомпилировать до 32 битов. Без этого значения некоторые компиляторы позволяют этому перечислению компилироваться в размер, отличный от 32 битов. Это значение не используется. |
Замечания
Эти состояния отрисовки предназначены только для внутреннего использования:
D3DRENDERSTATE_EVICTMANAGEDTEXTURES
Определяет, вытеснять ли текстуры из памяти. Драйвер использует тип данных BOOL без значения по умолчанию, чтобы определить, следует ли вытеснить.
Это состояние отрисовки определяет, вытеснит ли драйвер текстуры, которыми он управляет (в отличие от текстур, управляемых средой выполнения Direct3D) из памяти видео. Если значение состояния отрисовки TRUE, драйвер вытесняет текстуры. В противном случае драйвер не вытесняет эти текстуры.
D3DRENDERSTATE_SCENECAPTURE
Указывает сведения о начальной сцене или конечные сцены для геометрических данных, захваченных в кадре. Драйвер использует тип данных BOOL со значением по умолчанию TRUE для обнаружения сведений о захвате сцены.
Драйвер отвечает на D3DRENDERSTATE_SCENECAPTURE сначала с TRUE для начала сведений о сцене, а затем FALSE для получения геометрических данных в кадре. Пример реализации см. в permedia2 примера драйвера, который поставляется с пакетом средств разработки драйверов Windows (DDK). Использование состояния отрисовки D3DRENDERSTATE_SCENECAPTURE в вызове D3dDrawPrimitives2 заменяет устаревшие D3DHALCallbacks—>подпрограмму обратного вызова D3dSceneCapture.
Необходимо выполнить обновление драйвера, реализующего устаревшие D3DHALCallbacks->D3dSceneCapture подпрограмму обратного вызова с помощью состояния D3DRENDERSTATE_SCENECAPTURE отрисовки. Подпрограмма обратного вызова D3dSceneCapture использует константы D3DHAL_SCENE_CAPTURE_START и D3DHAL_SCENE_CAPTURE_END, чтобы указать, соответственно, начало и конец сцены. Значения этих констант соответственно: 0 и 1. Если вы используете эти константы вместо TRUE и FALSE в этом состоянии отрисовки, то значение будет точно противоположностью того, что вы планируете.
D3DRS_DELETERTPATCH
только Версии DirectX 8.0 и более поздних версий.
Удаляет прямоугольное или треугольное исправление из памяти. Драйвер использует тип данных DWORD без значения по умолчанию для обнаружения исправления для удаления.
Это состояние отрисовки уведомляет драйвер о том, что исправление должно быть удалено. Значение этого состояния отрисовки — это дескриптор затронутого исправления. Все кэшированные сведения должны быть освобождены, а дескриптор должен быть удален из таблицы исправлений драйвера. Это состояние отрисовки не отображается приложениям, но создается внутренне, когда приложение вызывает функцию DeletePatch. Это состояние отрисовки отправляется драйверу, только если исправления удаляются явным образом DeletePatch. Все остальные исправления следует очистить при уничтожении устройства.
D3DRS_MAXPIXELSHADERINST
только версии DirectX 9.0 и более поздних версий.
Определяет максимальное количество инструкций, которые может выполнять сборщик шейдера пикселей.
Драйвер использует тип данных DWORD со значением по умолчанию D3DINFINITEINSTRUCTIONS (0xffffffff), чтобы сообщить максимальное количество инструкций по шейдеру пикселей. Это максимальное число зависит от версии шейдера пикселей, поддерживаемых устройством отображения, как показано в следующей таблице.
Версия | Максимальное число |
---|---|
ранее 2_0 | 0 |
2_0 | От 96 до D3DINFINITEINSTRUCTIONS |
3_0 и более поздние версии | От 2⁶ (0x0000ffff) до D3DINFINITEINSTRUCTIONS |
D3DINFINITEINSTRUCTIONS представляет практически неограниченное количество.
Допустимые значения для этого состояния отрисовки — это числа, которые являются возможностями 2; Если драйвер задает любое другое целое число, среда выполнения использует следующую ближайшую мощность 2 числа.
Среда выполнения задает maxVShaderInstructionsExecuted член структуры D3DCAPS9 этим максимальным числом.
D3DRS_MAXVERTEXSHADERINST
только версии DirectX 9.0 и более поздних версий.
Определяет максимальное количество инструкций, которые может выполнять сборщик вершинных шейдеров.
Драйвер использует тип данных DWORD со значением по умолчанию D3DINFINITEINSTRUCTIONS (0xffffffff), чтобы сообщить максимальное количество инструкций вершинного шейдера. Это максимальное число зависит от версии шейдера вершин, поддерживаемых устройством отображения, как показано в следующей таблице.
Версия | Максимальное число |
---|---|
ранее 2_0 | 0 |
2_0 и более поздние версии | От 2⁶ (0x0000ffff) до D3DINFINITEINSTRUCTIONS |
D3DINFINITEINSTRUCTIONS представляет практически неограниченное количество.
Допустимые значения для этого состояния отрисовки — это числа, которые являются возможностями 2; Если драйвер задает любое другое целое число, среда выполнения использует следующую ближайшую мощность 2 числа.
Среда выполнения задает maxVShaderInstructionsExecuted член структуры D3DCAPS9 этим максимальным числом.
Драйвер использует эти состояния отрисовки при выполнении графической отрисовки. Только состояния отрисовки, относящиеся к драйверам, включены в документацию по комплекту драйверов Windows (WDK). Состояния отрисовки, доступные для приложений DirectX, включены в документацию по пакету SDK DirectX. Эти состояния отрисовки на уровне приложения включают такие характеристики, как включение альфа-смешивания, включение дитеринга, использование освещения Direct3D и тип заливки.
Чтобы обновить определенное состояние отрисовки, Direct3D сохраняет сведения о состоянии отрисовки, а затем вызывает драйвера D3dDrawPrimitives2 подпрограмму обратного вызова. Сведения, предоставленные драйверу, позволяют:
Определите, что оно должно обновить одно или несколько состояний отрисовки.
Определите, какие состояния отрисовки необходимо обновить и какие новые значения состояния отрисовки должны быть.
Обратите внимание, что для выполнения определенных состояний отрисовки драйвер должен иметь ранее установленные флаги возможностей в соответствующем элементе структуры D3DPRIMCAPS.
Чтобы указать определенное обновление состояния отрисовки, Direct3D вставляет структуру D3DHAL_DP2COMMAND в буфер команд, задав элемент bCommand этой структуры на D3DDP2OP_RENDERSTATE (см. описание D3DDP2OP_RENDERSTATE в D3DHAL_DP2OPERATION) и задание wStateCount члена той же структуры число обновляемых состояний отрисовки.
Сразу после структуры D3DHAL_DP2COMMAND Direct3D вставляет одну D3DHAL_DP2RENDERSTATE структуру в буфер команд для обновления каждого состояния отрисовки. Элемент RenderState этой структуры определяет состояние отрисовки, которое необходимо изменить; Новое значение этого состояния отрисовки указывается в элементе dwState (для значений DWORD) или в элементе fState (для значений D3DVALUE).
На следующем рисунке показана часть буфера команд, содержащая команду D3DDP2OP_RENDERSTATE и две структуры D3DHAL_DP2RENDERSTATE. Первая из трех структур указывает, что необходимо обновить два состояния отрисовки. Вторая структура указывает, что состояние D3DRENDERSTATE_FILLMODE отрисовки необходимо изменить на D3DFILL_SOLID. Третья структура указывает, что состояние D3DRENDERSTATE_SHADEMODE отрисовки должно быть обновлено до D3DSHADE_GOURAUD.

дополнительные заметки
Полные списки всех включенных типов отрисовки см. в документации по D3DTEXTURESTAGESTATETYPE, D3DTEXTUREOP и D3DTEXTUREFILTER перечисленных типов.
Некоторые изменения были внесены в D3DRENDERSTATETYPE перечисленного типа для DirectX 5.0 и более последующих. D3DRENDERSTATE_BLENDENABLE полностью удален, хотя он определен как D3DRENDERSTATE_ALPHABLENDENABLE в файле заголовка d3dtypes.h. Дополнительные сведения см. в D3DRENDERSTATE_COLORKEYENABLE. 128 целых значений интервала [128, 255] зарезервированы для флагов оболочки координат текстуры. Они создаются с помощью макросов D3DWRAP_U и D3DWRAP_V. При использовании слова флагов сохраняется прямая совместимость с координатами текстуры более высокого измерения, чем 2D.
Многотекстовые макросы и D3DRENDERSTATE_TEXTUREFACTOR переопределяют все элементы управления смешения этапов текстуры (COLOR{OP,ARG1,ARG2} & АЛЬФА{OP,ARG1,ARG2}).
Требования
Требование | Ценность |
---|---|
заголовка | d3d9types.h (include D3dhal.h) |