Копирование значений Depth-Stencil
Среда выполнения Microsoft Direct3D вызывает функцию Blt драйвера отображения пользовательского режима для копирования значений трафарета глубины из видеопамяти в системную память или наоборот. Драйвер и оборудование должны выполнять преобразования формата из или во все поддерживаемые драйвером непрозрачные форматы элементов глубины (то есть все форматы, определенные типом перечисления D3DDDIFORMAT , кроме D3DDDIFMT_D*_LOCKABLE) в любой из следующих форматов:
D3DDDIFMT_D16_LOCKABLE
D3DDDIFMT_D32_LOCKABLE
D3DDDIFMT_D32F_LOCKABLE
D3DDDIFMT_S8_LOCKABLE
Драйвер отменяет все каналы (глубину или набор элементов), которые присутствуют в исходном формате, но не присутствуют в целевом формате. Среда выполнения не допускает копирования между поверхностями трафарета глубины, которые не имеют общих типов каналов.
Драйвер сначала преобразует значение глубины источника в 32-разрядное целое число без знака, а затем из 32-разрядного целого числа без знака в целевое представление. Для обоих этих преобразований применяются следующие правила:
Если значение глубины источника является значением с плавающей запятой, применяется привязка к [0,1], а результат умножается на _MAX_UINT.
Если источник является целочисленным и назначением является целочисленное значение меньшей точности, удаляются самые правые лишние биты.
Если источник является целочисленным и назначением является целочисленное значение более высокой точности, то крайние правые дополнительные биты реплицируются из наиболее значительных левых битов.
Если источник является целочисленным, а назначение — значением с плавающей запятой, то 32-разрядное целое число преобразуется в значение с плавающей запятой, а результат делится на _MAX_UINT.
Драйвер не обязан обеспечивать специальную обработку неоднородно распределенных значений глубины.
Драйвер расширяет значение исходного набора элементов до 8-битового целого числа (то есть драйвер заполняет значение исходного набора элементов нулями слева). Если целевое представление использует более низкую точность, драйвер должен отбрасывать наиболее значительные биты для выполнения преобразования.
Драйверы отображения пользовательского режима должны поддерживать копии элементов глубины произвольных подпроектов. Однако драйверы не обязаны выполнять операции зеркало, растяжения или цветового ключа во время копирования трафарета глубины. Выборка точек неявно требуется при копировании трафарета глубины.