DevCon bits: GpiWCBitBlt, GpiBitBlt

User avatar
Eugene Gorbunoff
Site Admin
Posts: 685
Joined: Sat Apr 09, 2005 11:18
Location: St.Petersburg, Russia

DevCon bits: GpiWCBitBlt, GpiBitBlt

Postby Eugene Gorbunoff » Thu Mar 18, 2010 11:02

From: Glassman
Date: 2010/03/18
теги tags: GpiWCBitBlt, GpiBitBlt, баг, координаты
Область: GpiWCBitBlt и наверное GpiBitBlt. Похоже, что проблема появилась вместе с разработкой GRADD.

Необходимые пояснения

Code: Select all

LONG lHits = GpiWCBitBlt( HPS hpsTarget, HBITMAP hbmSource, LONG lCount,
                          PPOINTL aptlPoints, LONG lRop, ULONG flOptions );


По описанию, aptlPoints задает четыре точки POINTL. Две первых описывают inclusive-inclusive прямоугольную область, куда нужно копировать изображение. Две следующих - inclusive-exclusive часть изображения, которую нужно копировать. При этом, hpsTarget тоже имеет какие-то размеры.

Проблема

Если размеры первой области (в которую нужно копировать изображение) превышает размеры hpsTarget, то кординаты второй области (части изображения) переворачиваются по вертикали. Т.е. x начинает отсчитываться не снизу, как принято в OS/2, а сверху. В большинстве случаев, требуется копирования всего изображения и, соответственно, описанная проблема на процесс никак не влияет. А вот при копировании куска картинки, очень даже легко получить изображение не того места, которого хотелось бы.

Возможное решение

Следить за тем, чтобы размеры области копирования не превышали размер пространства отображения hpsTarget. Самая частая ошибка - использование inclusive-exclusive прямоугольника вместо inclusive-inclusive.

Return to “Developers / Разработчики”

Who is online

Users browsing this forum: No registered users and 0 guests

cron