[#1] BltPattern() - dwa pytania
Czesc,
1. do czego jest ostatni argument?

rp - points to the destination RastPort for the blit.
mask - points to 2 dimensional mask if needed
if mask == NULL then use a rectangle.
xl,yl - coordinates of upper left of rectangular region in RastPort
maxx,maxy - points to lower right of rectangular region in RastPort
bytecnt - BytesPerRow for mask <--- o ten tu


2. czy musi moja "siatka" musi tak sie paskudnie schodzic na granicy?
moj pattern to tablica "wordow"
0101010101010101
1010101010101010
....

na rysunku zaznaczylem na pomaranczowo gdzie sie zaczyna pattern i jak widac kolejny doczepiony na prawo jest wyswietlany o jeden pixel nizej niz poprzedni

i tu pytanie bonusowe - czy przy uzyciu tej komendy w C parametr maxx tej jest ignorowany? tzn u mnie pattren jest wyswietlany w szerz tyle razy ile wielokrotnosci 16 zmiesci sie w wartosci maxx (mozliwe ze to wrapper blitza ma blad)



Ostatnia aktualizacja: 05.07.2022 09:21:19 przez pch
[#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.
[#3] Re: BltPattern() - dwa pytania

@docent, post #2

Dzieki za podpowiedzi,

co do bytecnt to mam ustawione na 2 - przyznam, ze szukalem tej wartosci na zasadzie "hit & miss" patrzac na wizualny wynik tego co wpisalem, jedynie 2 dawalo siatke.

dzis sie za to wezme, bo mam nadzieje ze z blokowaniem IDCMP sie upralem wiec przysiade do tego.
[#4] Re: BltPattern() - dwa pytania

@pch, post #3

no niestety , nie moge ogarnac paternu by dzialalo jak nalezy wiec moze jakis inny sposob na pokazanie ze okno "mysli":

1. piekne przekreslenie po przekatnych zawartosci okna - wyglada to.. lepiej nie mowic
2. czesciowe zamazanie tekstu, i tu chodzi mi o efekt, ktory moglbym uzyskac w DPaint-ie nastepujaco:
-mam napis
-wycinam go jako brusz (tak ze tlo brusha jest przezroczyste oczywiscie)
-najezdzam moim bruszem dokladnie na oryginalny napis a potem go przesuwam (tego brusza) o 1pxl w prawo i jeden w dol i wciskam RMB

czyli bede blitowal te sama bitmape tylko przesunieta -> i moje pytanie: jaki Mintern uzyc?
bo nie bardzo mi sie chce teraz czytac/zaglebiac/zrozumiec zasade jego dzialanie dzialnia , heh - i na to przyjdzie kiedys czas

Uzylem podrecznikowych wartosci (z neta) czyli $030, $050, $080 ale tylklo ten ostatni dal podobny efekt (znaczy tlo zostalo szare a napis sie wykropkowal no ale troche za bardzo, dwa pierwsze blitowaly "inverted" bitmape).

Dzieki


Ostatnia aktualizacja: 09.07.2022 11:11:33 przez pch
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem