[#2]
Re: BltPattern() - dwa pytania
@pch,
post #1
1. do czego jest ostatni argument?
bytecnt - BytesPerRow for mask <--- o ten tu
Liczba bajtow w kazdej linii maski - musi byc parzysta
2. czy musi moja "siatka" musi tak sie paskudnie schodzic na granicy?
Upewnij sie czy bytecnt jest poprawny - prawdopodobnie to jest przyczyna. Maska musi byc linearna tzn. kazda linia musi w pamieci lezec zaraz za poprzednia. Aha, i powinna byc wielkosci obszaru czyli maxx-x1 na maxy-y1
i tu pytanie bonusowe - czy przy uzyciu tej komendy w C parametr maxx tej jest ignorowany?
Nie, sluzy on do zdefiniowania konca obszaru, na ktorym bedzie zaaplikowana maska. Jesli twoja maska ma 16 pikseli szerokosci i bytecnt jest poprawny (2), to z tego co pamietam, nie bedzie w petli aplikowana dla kazdych 16 kolejnych pikseli w linii a bedzie aplikowane
kolejne slowo maski az do osiagniecia maxx. Stad bierze sie wadliwy pattern na polaczeniu - 1 slowo twojej maski konczy sie 1 a 2 zaczyna tez 1.. Gdy maska jest mniejsza od obszaru maskowanego moga pojawic sie smieci z pamieci za buforem maski.
Niewlasciwy bytecnt bedzie tez mial wplyw na aplikowanie patternu, jesli podales inna wartosc to w nastepnej linii bedzie aplikowane slowo maski spod maska+nr linii*bytecnt.
W skrocie - maska musi pokrywac caly obszar, na ktory ma byc aplikowana i jej bytecnt musi byc poprawnie ustawiony.