Рисование DIB, находящегося в памя

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
alexlin59
In need of some credit
In need of some credit
Posts: 4
Joined: Mon Jun 22, 2009 11:18 am
Location: Veliky Novgorod, Russia

Рисование DIB, находящегося в памя

Post by alexlin59 » Tue Jun 23, 2009 9:30 am

Здравствуйте.
Такая проблема: есть поток массивов в памяти, содержащих в себе изображение в формате 16 bpp 565 (т. е. 5 бит - красный, 6 бит - зеленый и 5 бит голубой). Надо эти изображения отрисовывать в окне по мере их поступления в программу. В Windows API есть несколько функций, которые играючи справляются с данной проблемой (StretchDIBits, DrawDibDraw). Есть ли что-то аналогичное по функциональности в wxWidgets? А если нет, помогите пожалуйста найти обходной путь. Фреймы поступают часто, поэтому на перелопачивание формата времени нет.

Заранее спасибо за помощь.
Ubuntu 9.04, Code::Blocks 8.02, wxWidgets 2.8

Kolya
Experienced Solver
Experienced Solver
Posts: 85
Joined: Mon Dec 11, 2006 11:35 am
Location: /dev/null

Re: Рисование DIB, находящегося в па

Post by Kolya » Tue Jun 23, 2009 8:02 pm

Обычно если необходимо реализовать некую функциональность в wxWidgets и известны методы под конкретную платформу, то стоит попытаться найти эти методы в wx.

В данном случае стоит посмотреть
wxDC::Blit
wxDC::StretchBlit
Они находятся в файле wxWidgets/src/msw/dc.cpp

Если не получится, то придется использовать в целях оптимизации WinAPI.

alexlin59
In need of some credit
In need of some credit
Posts: 4
Joined: Mon Jun 22, 2009 11:18 am
Location: Veliky Novgorod, Russia

Post by alexlin59 » Wed Jun 24, 2009 8:19 am

Не подходит.
Во-первых я пишу для Ubuntu и WinAPI тут никаким боком... Методы WinAPI я привел для аналогии. Поскольку считал, что что-то подобное должно быть реализовано в wxWidgets и для платформы Linux.
Во-вторых и Blit и StretchBlit копируют MemoryDC на DC, а как я в MemoryDC смогу отрисовать мою картинку - это и есть главный вопрос. Может в GDK легче реализовать что-то подобное, подскажите, если кто знает.
Ubuntu 9.04, Code::Blocks 8.02, wxWidgets 2.8

Post Reply