Директивы препроцессора (HLSL)

Директивы препроцессора, такие как #define и #ifdef, обычно используются для упрощения изменения исходных программ и упрощения компиляции в разных средах выполнения. Директивы в файле исходного кода позволяют препроцессору выполнять определенные действия. Например, препроцессор может заменять токены в тексте, вставлять содержимое других файлов в файл исходного кода или отключать компиляцию части файла путем удаления разделов текста. Строки препроцессора распознаются и выполняются до расширения макросов. Поэтому если макрос разворачивается в нечто, похожее на команду препроцессора, эта команда не распознается препроцессором.

В операторах препроцессора используется тот же набор символов, что и в операторах файла исходного кода, но escape-последовательности не поддерживаются. Набор символов в операторах препроцессора совпадает с кодировкой выполнения. Препроцессор также распознает отрицательные значения символов.

Препроцессор HLSL распознает следующие директивы:

Знак решетки (#) должен быть первым непробельным символом в строке, содержащей директиву; между знаком решетки и первой буквой директивы пробельные символы допускаются. Некоторые директивы содержат аргументы или значения. Любой текст, следующий после директивы (за исключением аргумента или значения, представляющих собой часть директивы), должен предваряться разделителем однострочного комментария (//) или заключаться в разделители комментариев (/* */). Строки, содержащие директивы препроцессора, можно продолжать, ставя непосредственно перед маркером конца строки обратную косую черту (\).

Директивы препроцессора могут находиться в любом месте файла исходного кода, но применяются только к оставшейся части файла.

Приложение (DirectX HLSL)