Рисование строки с использованием IDISPLAY_DrawText в текущем растровом буфере - PullRequest
1 голос
/ 01 сентября 2009

Этот вопрос относится к платформе BREW, которая используется в телефонах CDMA. Но я думаю, что эта тема также связана с общим буфером памяти для графики.

Я просто хочу спросить: как мне написать строку, используя IDISPLAY_DrawText, в текущем буфере растровых изображений? Этот буфер растровых изображений используется IDISPLAY_BitBlt для рисования всего изображения на экране. Моя проблема в том, что если я использую IDISPLAY_DrawText, строка не будет отрисовываться, потому что всегда есть IDISPLAY_Bitblt для отрисовки обновленного буфера растровых изображений.

Большое спасибо, ребята.

Ответы [ 2 ]

2 голосов
/ 25 сентября 2009

IFONT_DrawText может использоваться для рисования непосредственно в растровое изображение. Затем вы можете смешать / скопировать это растровое изображение, как хотите.

Однако большую часть времени само растровое изображение IDisplay уже находится вне экрана и копируется на экран только при вызове IDISPLAY_Update / IDISPLAY_UpdateEx. Таким образом, ваш внеэкранный буфер может быть избыточным ...

Интерфейс IFONT определен в AEEFont.h в BREW SDK 2.x и более поздних версиях. Он также содержит функции для измерения размера текста, которые могут помочь с макетом.

1 голос
/ 01 сентября 2009

Я не знаю BREW, поэтому я попытаюсь ответить на общий вопрос, если я правильно понял.
В общем, вы рисуете закадровый буфер или даже несколько. Вот где вы делаете ваши вызовы DrawText. Если у вас есть несколько буферов, вы объединяете их в общий буфер размером с экран. Затем при обновлении экрана BitBlt рисует этот общий буфер в экранном буфере. Или, если это позволяет аппаратное обеспечение, он просто меняет буферы. Это классическая двойная буферизация.

Если я отвечу на ваш вопрос, возможно, вам нужно предоставить больше информации. Если кто-то, знающий BREW, не понял этого и не ответил на него лучше меня! : -)

...