HGE::Texture_Lock
Захватывает текстуру для прямого доступа.
DWORD *Texture_Lock(
HTEXTURE texture,
bool bReadOnly = true,
int left = 0,
int top = 0,
int width = 0,
int height = 0
);
Параметры
- texture
- Идентификатор текстуры, которую необходимо захватить.
- bReadOnly
- Необязательный параметр. Если равен true, текстура не будет обновлена после освобождения.
- left
- Необязательный параметр, X-координата верхнего левого угла области текстуры, которую надо
захватить.
- top
- Необязательный параметр, Y-координата верхнего левого угла области текстуры, которую надо
захватить.
- width
- Необязательный параметр, ширина области текстуры, которую надо захватить.
- height
- Необязательный параметр, высота области текстуры, которую надо захватить.
Возвращаемое значение
В случае успеха, возвращается указатель на захваченные данные текстуры. В противном случае 0.
Примечания
Данные захваченной текстуры - массив типа DWORD значений цвета.
Захватить можно только 32-битную текстуру, так что захват не работает на некоторых очень старых
видоекартах, таких как Intel Solano. Цели рендеринга и сжатые текстуры также не могут быть
захвачены.
Если была указана область текстуры, полученный указатель сдвинут соответствующим образом от начала
данных текстуры. Чтобы обратиться к указанной области используйте следующий синтаксис:
DWORD color = locked_ptr[y*tex_width+x];
Где tex_width ширина текстуры, которую можно узнать вызывая функцию Texture_GetWidth.
Если вы не собираетесь изменять текстуру, а просто собираетесь прочитать значения нескольких
пикселей - всегда утанавливайте bReadOnly в true, это позволит опустить обновление
текстуры в видеопамяти, и будет работать быстрее. Также, если вы изменяете только часть текстуры,
всегда указывайте область. Тогда только указанная область будте обнавлена в видеопамяти.
Когда обращение к текстуре закончено, необходимо освободить ее используя вызов функции Texture_Unlock.
Требования
Заголовок: hge.h
Библиотека импорта: hge.lib
Смотрите также
Texture_Unlock
|