[#1] "przezroczystosc" problem [C]
czy ma ktos pojecie a raczej zrodlowke [w C] ;), jak prosto i przyjemnie zrobic w okienku systemowym graficzny efekt "maski"/"przezroczystosci" ?

Ciezko mi zwerbalizowac - juz tlumacze:
Chodzi o to: jest np. gra [na Workbench'u ofcoz] - i ganiają sobie w okienku rozne bitmapy/brusze [jak kto woli], ktore zachodza na siebie, tudziez widac pod jakimkolwiek elementem tlo [background z polska ;)], czyli np. gania sobie w takim oknie narysowana kratka, miedzy ktorej szczebelkami ma byc widac wszystko co jest "pod spodem" - no wlasnie.

pomocy!
[#2] Re: "przezroczystosc" problem [C]

@offca, post #1

Hehe... dobre pytanie. Pytanie o to, co to są sprite'y, tryb dual playfield itd. Ale czy to kiedykolwiek chodziło pod workiem, śmiem wątpić, raczej nie. Oprócz sprite-myszki ofkoz. ;)

[#3] Re: "przezroczystosc" problem [C]

@offca, post #1

AmigaOS nie zapewnia żadnego wsparcia dla kanału alpha, więc jeżeli chcesz zrobićefekt półprzezroczystości, to musisz sobie sam spreparować odpowiednią bitmapę i wblitować ją w okno. Nie wyobrażam sobie zrobienia tego w grafice planarnej, więc czeka Cię konwersja p2c/c2p w zależności od ekranu na jakim otwarty jest WB. W grafice chunky przygotowanie takiej bitmapy jest proste. Dla każdego pixela bitmapy obliczasz kolor biorąc odpowiednie pixele z obu bitmap źródłowych i przeliczasz z uwzględnieniem żądanego współczynnika przenikania. Tak czy siak będziesz do tego potrzebował dość sporo mocy CPU a i tak sensownie to będzie działać dopiero na karcie GFX i najlepiej czymś szybszym niż 68060 (vide transparentne MagicMenu).

Jeżeli jednak nie potrzebujesz półprzeroczystości a tylko przesłanianie z "dziurami", to zainteresuj się BOBami. To jedyny systemowy sposób zrealizowania tego zadania i działa całkiem sprawnie nawet na AGA i słabych CPU pod warunkiem, że BOBy nie są na pół ekranu. Koniecznie użyj podwójnego buforowania, bo inaczej ruch będzie bardzo migotliwy (flickering).
[#4] Re: "przezroczystosc" problem [C]

@ArtPo, post #2

Sprite'y i oparte na nich BOBy działają świetnie na WB pod warunkiem, że się do ich obsługi użyje funkcji systemowych a nie wali po rejestrach. Wtedy nawet na kartach GFX, MorphOSie czy Amithlonie będzie to działać, ale mogą być kłopoty z użyciem większej ilości sprite'ów. BOBów to ograniczenie nie dotyczy.

Ekran w trybie Dual-Playfield można sobie spod systemu otworzyć, ale nie da się wymusić, żeby w takim trybie był ekran WorkBencha. W ogóle nie da się użyć Intuition na takim ekranie a zatem nie da się nawet otworzyć okna nie wspominając i jakichś jego elementach, IDCMP, itp.
[#5] Re: "przezroczystosc" problem [C]

@Jacek Rzeuski, post #4

Dzięki za odpowiedź, chociaż szczerze mówiąc nie liczyłem na jakieś "poważniejsze" roztrząsanie tego problemu, a używanie zaawansowanego hardware Amigi pod systemem uważam za z góry chybione. Nigdy dokładnie nawet nie szukałem czy w funkcjach systemowych jest w ogóle coś takiego jak np. wykrywanie kolizji, co jest raczej niezbędne do jakiegoś rozsądnego używania sprite'ów.

Zwróć też uwagę że BOBy czyli obiekty blittera nie są oparte na sprite'ach i są to sprawy zupełnie niezależne, konkretnie sprite'y nie mają nic wspólnego z blitterem, chyba że BOB przeniesiony przez blitter stanie się już częścią playfield'u i będzie nas interesowało wykrywanie kolizji pomiędzy sprite'ami a playfield'em. W poście poniżej używasz określenia bitmapa w odniesieniu do danych grafiki chunky. To określenie ma zastosowanie wyłącznie do bitplanów, a gdy mamy do czynienia z grafiką w trybie chunky używamy słowa "array" czyli tablica danych.

[#6] Re: "przezroczystosc" problem [C]

@ArtPo, post #5

W AmigaOS jest wykrywanie kolizji sprite'ów i BOBów: graphics/DoCollision().

BOBy są oparte na sprite'ach w AmigaOS w tym sensie, że BOBy są "przypięte" do struktury Sprite, która również jest wykorzystywana przez sprite'y. Oczywiście w tej strukturze jest flaga informująca czy chodzi o sprite czy BOB i dalej system wie co z tym zrobić. W hardware Amigi rzeczywiście BOBy i sprite'y nie mają ze sobą nic wspólnego, ale w przypadku pracy AmigaOS na kartach GFX tak niekoniecznie musi być. Twórcy systemu jak widzisz wykazali tu pewną dalekowzroczność i nie przywiązali w tym punkcie systemu do hardware. Być może mieli jakieś przecieki na temat organizacji sprite i BOBów w przyszłych chipsetach?

Pod pojęciem bitmapa rozumiem to co rozumie pod nim AmigaOS, czyli strukturę BitMap opisującą fragment pamięci o określonej organizacji przeznaczony do operacji graficznych. Oczywiscie ta organizacja jest zupełnie inna w przypadku chipsetu Amigi a inna na kartach GFX. AmigaOS to "przykrywa" dla użytkownika, ale gdy brak funkcji systemowych realizujących żądaną operację, to trzeba zaczać się samemu grzebać w bitach i bajtach i zainteresować sposobem organizacji danych. Znowu zatem patrzysz przez pryzmat hardware Amigi a nie jej systemu operacyjnego. Radziłbym szybko się od tego odzwyczaić, jeżeli zamierzasz tworzyć jakiś soft do Amigi. Amiga oparta na chipsecie ECS/AGA to już dziś właściwie historia.
[#7] Re: "przezroczystosc" problem [C]

@Jacek Rzeuski, post #6

Hmmm... Ta "historia" jest u mnie rzeczywistością. A softu raczej tworzyć nie zamierzam, chyba że zostanę do tego zmuszony okolicznościami. Tak jak to już miało miejsce i musiałem opracować pewne zagadnienie, gdyż wiedziałem że jestem jedyną osobą, która ma odpowiednią wiedzę co do hardware i może to zrobić. I właśnie moje doświadczenie w różnych dziedzinach elektroniki (nie tylko Amigi) mówi mi, że "Amiga" oparta nie na ECS/AGA co do zgodności, stabilności a przede wszystkim efektywności w porównaniu do prawdziwej Ami, na zawsze pozostanie "pobożnym życzeniem".

[#8] Re: "przezroczystosc" problem [C]

@ArtPo, post #7

Daj spokój. Dobrze wiesz, że najbardziej badziewny pecet jaki można kupić w sklepie ma wydajność daleko lepszą niż chipset najbardziej wypasionych Amig. Czasy custom chips odeszły do lamusa. Nawet do konsol zaczyna się nie opłacać ich budować.

Zgodność Amig z ECS/AGA już od lat nie jest do niczego potrzebna a wręcz jest upierdliwa. Niech no jakiś program się nie wypromuje na kartę GFX a tu nigdzie nie ma pod ręką monitora pracującego w PAL. Albo dźwięk zamiast przez AHI do karty GFX, do której jest podpięty wzmacniacz pójdzie na Paulę, bo ktoś tak napisał program. Powie Ci to każdy posiadacz rozbudowanej Amigi, Pegasosa czy Amithlona. Albo odpal sobie WinUAE, to sam się przekonasz. Taka Amiga nie ustępuje tej hardkorowej niczym w stabilności a brak ECS/AGA tylko pozytywnie wpływa na efektywność jej pracy oraz zdrowe ciało i nerwy użytkownika.
[#9] Re: "przezroczystosc" problem [C]

@ArtPo, post #7

"a przede wszystkim efektywności"

a przedewszystkim: widziałeś Pegasosa ? ;)

[#10] Re: "przezroczystosc" problem [C]

@Jacek Rzeuski, post #3

qrde! padl mi twardziel, stad nie moglem "zywo" reagowac na tradycyjne juz w tym swiecie zboczenie z watku w strone wojny peg/amiga :( -od tego sa chyba inne dzialy jak sadze...

wracajac do tematu - dzieki za info, ale to jest oczywiste -tu moja wina -kajam sie, nie sprecyzowalem dosc dokladnie, a wiec do sedna:

chodzi mi o "przezroczystosc" z DZIURAMI -nie zaden alpha channel, ma dzialac normalnie pod systemem a na kartach gfx w szczegolnosci -ufff...
wiem, ze "cos" sie z tym chrzanilo...
moze ktos ma pod reka jakas dzialajaca zrodlowke ??? pliss
[#11] Re: "przezroczystosc" problem [C]

@Jacek Rzeuski, post #8

Czasy custom chips odeszły do lamusa. Nawet do konsol zaczyna się nie opłacać ich budować.

ekhm... EmotionEngine w PS2... ekhm.. dopalacze 3d w kazdym pc...
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