[W32ASM] kolorki :)

0

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)

0

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.

0

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
0

A więc colordef jest tablicą trzech wartości R,G i B? tak?

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1