LINUX.ORG.RU

SDL


0

0

Начинаю изучать SDL читаю док. с офф сайта в одном из примеров рисования точки присутствует строчка
bufp = (Uint8 *)screen->pixels + y*screen->pitch + x;
объясните пожалуйста что здесь происходит

anonymous

> bufp = (Uint8 *)screen->pixels + y*screen->pitch + x;

Судя по всему screen->pitch содержит ширину окна, screen->pixels - это массив байт (Uint8).

Соответственно тут bufp присваивается указатель на точку с координатами (x, y). Нарисовать ее можно так: bufp[0] = цвет.

PS: SDL в глаза не видел, писал в режиме телепатии :)

alexru ★★★★
()

pitch - это кол-во байт, необходимое для перехода на следующую строчку в эту же позицию по X. Pitch не обязательно равен видимой ширине, т.к. ради оптимизации доступа видеокарта в режиме 800x600 может иметь pitch 1024.

mv ★★★★★
()
Ответ на: комментарий от alexru

> PS: SDL в глаза не видел, писал в режиме телепатии :)

А это общая особенность. В Vesa и DirectDraw всё то же самое.

mv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.