46
правокИзменения
Нет описания правки
== Применение ==
Перед началом вывода графики необходимо чтобы у нас был [[AHI#Контекст устройства|контекст устройства]] ('''dCtx'''), на которое будем выводить графику и две [[AHI#Поверхности|поверхности]] - экранная поверхность ('''sDisp''') и внеэкранная поверхность ('''sDraw'''). Если у нас их нет - смотрим [[AHI#Инициализация|здесь]] как их получить. Как только их получилиполучены поверхности, мы сохраняем их в дополнительные переменные '''sRealDisp''' и '''sRealDraw''', т.к. они нам ещё понадобятся.
Итак, графика инициализирована. Можем приступать к работе.
AHISURFACE_T tSurface;
// Установка экранной поверхности
AhiDispSurfSet(dCtx, sDraw, 0);
// Установка поверхности для рисования
AhiDrawSurfDstSet(dCtx, sDisp, 0);
// Изображение получено на экране
sDraw = tSurface;
</pre>
Далее повторяем все действия с первого пункта, пока необходимо выводить графику
</li>
<li>'''Возвращаем значения sDisp и sDraw'''<br>Перед выходом из эльфа '''ОБЯЗАТЕЛЬНО''' необходимо вернуть их значения, которые были выданы телефоном. Т.к. не известно, в какой из двух переменных ('''sDisp''' или '''sDraw''') находится реальная экранная поверхность, мы воспользуемся переменными '''sRealDisp''' и '''sRealDraw''', о которых говорилось в самом начале.<pre>/ol/ Установка экранной поверхностиAhiDispSurfSet(dCtx, sRealDisp, 0);// Установка поверхности для рисованияAhiDrawSurfDstSet(dCtx, sRealDraw, 0);</pre>
И только тогда выходим из эльфа.
</li>
</ol>
== См. также ==
* [[AHI]] - драйвер для чипов ATI
* [[LdrDisplayCbkReg]] - функция для создания callback'ов для рисования поверх [[UIS]]
* [[LdrDisplayCbkUnReg]] - функция для удаления callback'ов, созданных с помощью [[LdrDisplayCbkReg]]
* [[Предотвращение мерцания]] - Классический метод предотвращения мерцания при выводе графики