netlib.narod.ru | < Назад | Оглавление | Далее > |
Для справки мы приводим здесь ключевые слова, определенные в HLSL:
asm bool compile const decl do double else extern false float for half if in inline inout int matrix out pass pixelshader return sampler shared static string struct technique texture true typedef uniform vector vertexshader void volatile while
Во втором списке приведены идентификаторы, которые зарезервированы и в данный момент не используются, но в будущих версиях могут стать ключевыми словами:
auto break case catch char class const_cast continue default delete dynamic_cast enum explicit friend goto long mutable namespace new operator private protected public register reinterpret_cast short signed sizeof static_cast switch template this throw try typename union unsigned using virtual
Набор поддерживаемых HLSL инструкций для ветвления, повторов и общего потока программы очень похож на инструкции C++. Синтаксис этих инструкций тоже полностью аналогичен C++.
Инструкция Return:
return (выражение);
Инструкции If и If...Else:
if(условие) { инструкция(s); } if( условие ) { инструкция(s); } else { инструкция(s); }
Инструкция for:
for(инициализация; условие; изменение) { инструкция(s); }
Инструкция while:
while( условие ) { инструкция(s); }
Инструкция do...while:
do { инструкция(s); } while(условие);
HLSL поддерживает очень гибкую схему приведения типов. Синтаксис приведения в HLSL тот же самый, что и в C. Например, чтобы преобразовать значение типа float в значение типа matrix, мы напишем:
float f = 5.0f; matrix m = (matrix)f;
В примерах из этой книги вы сможете понять смысл приведения из синтаксиса. Однако, если вам потребуется дополнительная информация по поддерживаемым приведениям типов, вы найдете ее в документации DirectX SDK, выбрав на вкладке Contents пункт DirectX Graphics\Reference\Shader Reference\High Level Shading Language\Type.
netlib.narod.ru | < Назад | Оглавление | Далее > |