kategoria: ANSI C
[#1] Czym zastapic funkcje... ?
Ogolnie, czym zastapic pewne funkcje z wszyzysz systemow aby program dzialal na nizszych.

Dla przykladu mam taki kawalek programu:

struct BitMap *BM_DoubleBuf;
struct RastPort RP_DoubleBuf;

(...)

BM_DoubleBuf = AllocBitMap(25, 25, 5, BMF_MINPLANES | BMF_CLEAR, RastPort->BitMap);
InitRastPort(&RP_DoubleBuf);
RP_DoubleBuf.BitMap = BM_DoubleBuf;
RP_DoubleBuf.Layer  = NULL;


Jednak funkcja AllocBitMap(); istnieje dopiero od V39. Czy da sie to zastapic czyms zeby dzialalo pod np 2.x, lub nawet 1.3?
[#2] Re: Czym zastapic funkcje... ?

@Phibrizzo, post #1

Ja 100 lat nie pisałem pod AmigaOS, więc niech ci co piszą aktualnie, poprawią mnie bez rozstrzelania jak coś pomylę .

W takich przypadkach nie pozostaje nic innego jak samemu zaimplementować funkcję której Tobie brakuje, na podstawie dokumentacji... Często nie potrzebujesz nawet całej funkcjonalności którą dana funkcja ma - więc wystarczy zaimplementować to, co twój kod potrzebuje...

W tym przypadku chyba nie powinno być to trudne.. AllocBitMap() jak sama nazwa wskazuje, przydziela blok pamięci, a że pod BitMapę, stąd i parametry jak pod bit mapę, no i zwraca gotową, wypełnioną strukturę BitMap. Implementacja polegała by więc na policzeniu z parametrów wysokosci, szerokości i głębokości, ile tej pamięci potrzeba, zaalokowaniu jej (AllocMem()), pamiętając, aby zaalokować jako MEMF_CHIP bo to na bitplane; zaalokowaniu także pamięci na strukturę BitMap i odpowiednie jej zainicjowanie i zwrócenie. Jak zależy ci np. na BMF_CLEAR, to też musisz zaimplementować - sprawdzić, że dane wywołanie jest z BMF_CLEAR i zadbać o wypełnienie alokowanej na bitmapę pamięci zerami.



Ostatnia aktualizacja: 21.03.2017 17:58:19 przez APair
[wyróżniony] [#3] Re: Czym zastapic funkcje... ?

@Phibrizzo, post #1

wszystko lata na ks1.3

Do alokacji bitplane'ów podobno trzeba używać AllocRaster ale AllocMem też działa.
[#4] Re: Czym zastapic funkcje... ?

@teh_KaiN, post #3

Jak mi pokazales ten kod to przypomnialem sobie ze gdzies to juz widzialem.
Poszperalem u siebie i... bingo znalazlem :)
Kozystalem z tego od paru lat i nawet nie wiedzialem ze to zastepuje ta funkcje :)
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