![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 переводишь его в лонгинт и все. Деталей е помню, ну немного по-экспериментируешь :)))