Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

dxdraw1.fillrect


Green_Templar ©   (2005-04-02 00:32:00) 

form1.DXDraw1.Surface.FillRect(menui[0,0],clred); рисует мне синий прямоугольник, а с clblue рисует чёрный. Экран 1024*768*16. Почему так глючит и как нарисовать правильным цветом?


Green_Templar   (2005-04-09 01:26:00) [1]

Окончательно запутался:
rect рисует прямоугольник с цветом RGB:888. Значит, максимальное число, которое можно нарисовать, $ffffff. Но при $0ff000 оно рисует мне красный, а при $ff0000 - чёрный!!! Почему? Благо, колормэтч работает исправно, но хотелось бы задавать цвет константой чтобы выйграть время...


Green_Templar   (2005-04-06 00:24:00) [2]

Именно в диапазоне? Не в множестве? А можно пример c ColorSpace?


NikeOLD   (2005-04-05 14:52:00) [3]

ColorKey - цветовой ключ, т.е. цвет, который будет рендерится прозрачным
ColorSpace - пространство цветовых ключей. Все цвета лежащие в указнном диапазоне будут считаться прозрачными.

Прикол с цветами имеет банальное решение. В DirectDraw используется прямая последовательность цветов RGB, а Боланд извратился со своим TColor до ABGR, где А - это неиспользуемое значение, требующееся лишь для непосредственной работы с палитрами. Решение проблемы - перевести цвет из BGR в RGB, хотя бы функцией ColorMatch.


Green_Templar   (2005-04-04 01:50:00) [4]

А что такое ColorSpace & ColorKey? Там же, в справке ДэлфиХ увидел.


Omar2002   (2005-04-03 21:58:00) [5]

да - и еще там написано, что если хочешь перегнать цвет из TColor, то можно юзать функцию TDirectDrawSurface.ColorMatch с синтаксисом:

function ColorMatch(Col:TColor):Integer;


Omar2002   (2005-04-03 21:54:00) [6]

странно, ну вобще может быть такое или нет я не слышал. Но в хелпе можешь посмотреть - там так написано
procedureFillRect(Rect:TRect;DevCol:Longint);


Green_Templar   (2005-04-02 23:56:00) [7]

Ну в хексе я умею, но где-то читал, что лучше всего использовать константы, типо они суперточны, а левое число может иметь разное значение цвета на разных машинах. Видимо, бред читал (или понял так).


Omar2002   (2005-04-02 21:45:00) [8]

вобще-то там цвет указывается как число типа LongInt. напримр 198476. Ну а уж какой это цвет - считай сам. Все очень просто пишешь цвет в хексе например 00FFAA12 переводишь его в лонгинт и все. Деталей е помню, ну немного по-экспериментируешь :)))


Наверх

Титульная страница Поиск, карта сайта Написать письмо