Mam takie małe pytanie... jak w assemblerze wygląda zapis kolorów( jak wygląda "TColor") i czy do tego jest potrzebne nieporęczne RGB( jeśli tak, to w jakiej bibliotece jest, bo nie chce mi się szukać :P)
Zapomnij o czymś takim jak TColor :D i o RGB.... takie wygody ma tylko C, jeśli chcesz mieć taki bajer to musisz sobie je samemu zaprogramować heh... I szczerze polecam zrobienie funkcji tworzącej z RGB numer koloru jest to proste i zależy od głębi kolorów jakiej używasz.
COLORREF w WinAPI jest zdefiniowane jako DWORD, gdzie bajty (w littleendian):
czerwony, zielony, niebieski, 00
Tutaj informacje:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/colors_9xiq.asp
TColor np. z Delphi jest zgodne z tym, z malym wyjatkiem. Tam, gdzie w COLORREF jest 00, Delphi ma (o ile pamietam) 3 mozliwe wartosci (0, 1, 2) odpowiadajace za ew. mapowanie kolorow czy cos takiego (nigdy nie zwracalem na to uwagi). Ale dla zgodnosci 00 mozesz spokojnie uzywac.
Czyli:
Kolor dd 0
mov al, [czerwony]
mov byte [Kolor], al
mov al, [zielony]
mov byte [Kolor+1], al
mov al, [niebieski]
mov byte [Kolor+2], al
; do +3 nic nie wpisuje, bo juz mam zero :P
A więc colordef jest tablicą trzech wartości R,G i B? tak?
Mozna tak traktowac. Dokladniej to jest 1 liczba typu dword, ktorej czesci (bajty) odpowiadaja odpowiedniej skladowej.
W asm masz duza mozliwosc interpretacji. Musisz wiedziec jedynie, ze kolor zajmuje 4 kolejne bajty w pamieci, a 3 pierwsze to po kolei skladowe R, G i B. Czy bedziesz to interpretowal jako tablice 4xbyte, czy jako tablice 2xword, czy jako liczbe dword, to juz od ciebie tylko zalezy.