[#1] Wypełnianie obszaru kolorem Os 1.3
Do wypełniania obszaru kolorem w os 1.3 mamy funkcję RectFill()
funkcja ta znakomicie wypałnia obszar RastPortu jest tylko jeden
problem... jak wybrać kolor wypełnianego obszaru? Ustawienie
kolorku przez SetAPen() czy SetBPen() nic nie daje więc jak?
Co ciekawe RectFill() reaguje na zmiany trybu rysowania
wprowadzane przez funkcję SetDrMd().
[#2] Re: Wypełnianie obszaru kolorem Os 1.3

@68k_tester, post #1

przeciez jest opisane w autodocach

Fills the rectangular region specified by the
parameters with the chosen pen colors, areafill
pattern, and drawing mode. If no areafill pattern is
specified, fill the rectangular region with the FgPen
color, taking into account the drawing mode.



Ostatnia modyfikacja: 21.06.2009 20:35:10
[#3] Re: Wypełnianie obszaru kolorem Os 1.3

@rzookol, post #2

I co mam z tego wiedzieć? Aby zmienić kolor?
[#4] Re: Wypełnianie obszaru kolorem Os 1.3

@68k_tester, post #3

no, że powinien wypełniać FgPenem, do tego że reaguje na drawing mode czyli SetDrMd() sam doszedłes

[#5] Re: Wypełnianie obszaru kolorem Os 1.3

@rzookol, post #4

W os 1.3 FgPen'em nie wypełnia choć powinno , ale właśnie w RastPort zmieniłem pole AOLPen i teraz wypełnia tym co tam ustawiam. Czegoś tu chyba nie rozumiem albo przerwa na piwo potrzebna....
[#6] Re: Wypełnianie obszaru kolorem Os 1.3

@68k_tester, post #5

Witam,

Ustaw SetDrMd na JAM1 i powinno pójść z FgPen'em.

Pozdrawiam

[#7] Re: Wypełnianie obszaru kolorem Os 1.3

@asman, post #6

Faktycznie ruszyło..
Ustawienie funkcją SetDrMd() trybu JAM1 lub JAM2 pozwala na wybieranie koloru poprzez SetAPen() dla funkcji RectFill().

Mam tu jednak jeszcze inny problem... belka okna w systemie 1.3 i 3.x ma inne wymiary a w Mui z AmiKit'u jest nawet jeszcze
większa!!! Jak ustalić rozmiar belki tytułowej okna tak aby zamalowywanie obszaru okna danym kolorem nie kolidowało z jej wymiarami???
Czy jest gdzieś w systemie od 1.3 do 3.x przechowywana informacja o tych wymiarach???


Pozdrawiam
[#8] Re: Wypełnianie obszaru kolorem Os 1.3

@68k_tester, post #7

Przy otwieraniu nowego okna mozna podac wymiary wnetrza okna, wtedy wielkosc belki nie ma znaczenia.
Wiem ze da sie to zrobic w systemie 2.x ale czy zadziala w 1.3 to nie wiem.

Tagi:
WA_InnerWidth,
WA_InnerHeight,
[#9] Re: Wypełnianie obszaru kolorem Os 1.3

@68k_tester, post #7

Najlepiej otwórz okno typu Gimmezerozero, wtedy współrzędne (0,0) zaczynają się lewym, górnym wnętrzu okna. GZWidth i GZHeight zawierają wymiary wnętrza okna. Jeślin nie, to są takie 4 zmienne w strukturze Window, nazwa zaczyna się od Border.
[#10] Re: Wypełnianie obszaru kolorem Os 1.3

@68k_tester, post #7

Witam 68k_tester,

Ustawienie funkcją SetDrMd() trybu JAM1 lub JAM2 pozwala na wybieranie koloru poprzez SetAPen() dla funkcji RectFill().

Można tak powiedzieć, ale po prawdzie jeśli używasz JAM1 to jeden kolor jest używany ( FgPen ) do rysowania, w przypadku JAM1 dwa ( FgPen i BgPen ).

Niezbędne informacje znajdziesz tutaj.
http://pub.elowar.com/AmigaDev/Libraries_Manual_guide/node0351.html#line2


Pozdrawiam

[#11] Re: Wypełnianie obszaru kolorem Os 1.3

@cholok, post #9

Ustawiłem Gimmezerozero ale mam 32 gadgety i jeszcze pola tekstowe
przesuwanie takiego okna przy 7.14Mhz to masakra.



-Właśnie znalazłem w strukturze (Window) pola Border od offsetu #54
wyliczm wymiary i to jest dobre rozwiązanie.(działa szybko)

Dzięki
Pozdrowienia.



Ostatnia modyfikacja: 23.06.2009 09:44:25
[#12] Re: Wypełnianie obszaru kolorem Os 1.3

@Phibrizzo, post #8

Nie spotkałem się z czymś takim jak:
Tagi:
WA_InnerWidth,
WA_InnerHeight,

W (v34) chyba tego nie stosowali!
[#13] Re: Wypełnianie obszaru kolorem Os 1.3

@asman, post #10

Testując wypełnianie obszaru sprawdziłem dwie funkcje.
Ich działanie jest identyczne... po co dwie osobne funkcje o takim samym działaniu???



move.l WindowBase,a1
move.l 50(a1),a1 ;Pobieramy RastPort.
move.l GfxBase,a6 ;Baza 'graphics.library'.
jsr ClearScreen(a6) ;Wypełniamy Okno danym kolorem.


move.l WindowBase,a1
move.l 50(a1),a1 ;Pobieramy RastPort.
moveq #2,d0 ;Podajemy kolor do wypelnienia RastPortu.
move.l GfxBase,a6 ;Adres bazy 'graphics.library'.
jsr SetRast(a6) ;Wypełniamy RastPort danym kolorem.
[#14] Re: Wypełnianie obszaru kolorem Os 1.3

@68k_tester, post #13

Ich działanie nie jest identyczne, tylko w niektórych przypadkach daje ten sam rezultat, ale wcale nie musi.
[#15] Re: Wypełnianie obszaru kolorem Os 1.3

@68k_tester, post #12

W 1.3 nie ma tagów.
[#16] Re: Wypełnianie obszaru kolorem Os 1.3

@68k_tester, post #13

Witam 68k_tester,

ClearScreen czyści ekran od aktualnego położenia kursora do konca rastporta. Aby wyczyścić cały ekran musisz dla pewności najpierw zrobić Move( rp, 0,0 ) i w przypadku jeśli DrawMode jest COMPLEMENT to wypełni BgPen'em. A SetRast wypełnia cały rastport danym kolorem. Trzeba nadmienić, że ClearScreen może używać blittera.

Edit:
Ja jestem ciekawy co by było szybsze. użycie Move( rp, 0, 0 ) + setDrMd(rp, JAM1 ) + ClearScreen( rp ) czy uzycie SetRast( rp, 0 ). Tylko mam wątpliwości czy można zrobić taką podmiankę.

Pozdrawiam



Ostatnia modyfikacja: 23.06.2009 12:34:31
[#17] Re: Wypełnianie obszaru kolorem Os 1.3

@68k_tester, post #13

Zgodnie z dokumentacją, funkcja ClearScreen() ma tylko jeden parametr, przekazywany w rejestrze a1.

[#18] Re: Wypełnianie obszaru kolorem Os 1.3

@asman, post #16

Trzeba nadmienić, że ClearScreen może używać blittera.

SetRast() też może.

[#19] Re: Wypełnianie obszaru kolorem Os 1.3

@Grzegorz Kraszewski, post #18

Witam,

A takie pytanie z innej beczki ;). A skąd wiadomo że SetRast może z blittera korzystać ?

Pozdrawiam

[#20] Re: Wypełnianie obszaru kolorem Os 1.3

@asman, post #19

A skąd wiadomo że SetRast może z blittera korzystać?

Stąd wiadomo, że w dokumentacji nie jest napisane, że nie może.

[#21] Re: Wypełnianie obszaru kolorem Os 1.3

@Grzegorz Kraszewski, post #20

Stąd wiadomo, że w dokumentacji nie jest napisane, że nie może.

Racja. Dzięki



Ostatnia modyfikacja: 23.06.2009 13:11:48
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