netlib.narod.ru< Назад | Оглавление | Далее >

16.6. Определяемые пользователем функции

Функции в HLSL имеют следующие особенности:

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

bool foo(in const bool b, // Входное значение bool
         out int r1,      // Выходное значение int
         inout float r2)  // Входное и выходное значение float
{
     if( b ) // Проверяем входное значение
     {
          r1 = 5; // Возвращаем значение через r1
     }
     else
     {
          r1 = 1; // Возвращаем значение через r1
     }

     // Поскольку r2 объявлена с ключевым словом inout
     // мы можем использовать ее как входное значение
     // и возвращать значения через нее
     r2 = r2 * r2 * r2;

     return true;
}

Функция почти полностью аналогична коду на C++, за исключением ключевых слов in, out и inout.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz