Начать отображение
#include <gf/gf.h>int gf_draw_begin( gf_context_t context );
gf
Данная функция начинает отображение, используя для этого получаемый контекст. Функция обеспечивает поток эксклюзивный доступ к аппаратному обеспечению и подготавливает оборудование к получения команд отрисовки. Также она обеспечивает применение всех текущих настроек контекста. Как только Вам больше не требуется эксклюзивный доступ к аппаратному обеспечению, следует вызвать gf_draw_end().
Хотя общее адресное пространство и позволяет легко предоставить общий доступ к контексту разным потокам одного процесса, с этим следует быть осторожными. Необходимо обеспечить вызов gf_draw_begin() каждым потоком перед началом рисования. Если не следовать этому совету, два потока могут получить доступ к аппаратному обеспечению одновременно, что оставит аппаратное обеспечение в неопределенном состоянии. Это будет иметь непредсказуемые последствия как для аппаратного, так и для программного обеспечения. |
Вследствие того, что данная функция блокирует аппаратное обеспечение для эксклюзивного доступа для вызывающего потока, Вам нужно следовать советам ниже, чтобы обеспечить корректность работы других потоков, ожидающих отображения, и избежать потенциальных взаимных блокировок:
Чтобы начать отображение, нужно использовать поверхность, связанную с контекстом (используйте gf_context_set_surface()). Если с контекстом не связана ни одна поверхность, функция завершится с ошибкой. |
Следует вызывать gf_draw_begin() всякий раз, когда происходит попытка отображения в различные контексты.
NULL
Графическая подсистема ЗОСРВ «Нейтрино», Graphics Framework
gf_draw_end(), gf_context_set_surface()
Основы рисования: Многопоточные приложения
Предыдущий раздел: GF API