CLBufferWrite

Записывает массив в буфер OpenCL и возвращает количество записанных элементов.

uint  CLBufferWrite(
   int          buffer,                    // хендл на буфер OpenCL
   const void&  data[],                    // массив значений
   uint         buffer_offset=0,           // смещение в OpenCL буфере в байтах, по умолчанию 0
   uint         data_offset=0,             // смещение в массиве в элементах, по умолчанию 0
   uint         data_count=WHOLE_ARRAY     // количество значений из массива для записи, по умолчанию весь массив
   );

Параметры

buffer

[in]  Хендл буфера OpenCL.

data[]

[in]  Массив значений, которые необходимо записать в буфер OpenCL. Передается по ссылке.

buffer_offset

[in]  Смещение в OpenCL буфере в байтах, с которого начинается запись. По умолчанию запись идет с самого начала буфера.

data_offset

[in]  Индекс первого элемента массива, начиная с которого берутся значения из массива для записи в OpenCL буфер. По умолчанию значения берутся с самого начала массива.

data_count

[in]  Количество значений, которые нужно записать. По умолчанию все значения массива.

Возвращаемое значение

Количество записанных элементов, в случае ошибки возвращается 0. Для получения информации об ошибке используйте функцию GetLastError().

Примечание

Для одномерных массивов номер элемента, с которого начинается чтение данных для записи в буфер OpenCL, вычисляется с учётом флага AS_SERIES.

Массив с размерностью два и более представляется как одномерный. В этом случае data_offset – это количество элементов, которое следует пропустить в представлении, а не количество элементов в первой размерности.