Strona główna | Informacje | Społeczność | Rozwój | mójReactOS | Kontakt
|
Community > ReactOS Newsletter Archive > ReactOS Newsletter: Biuletyn 75Biuletyn 75by Z98 on 2010-08-06 Tłumaczenie: Caemyr Wyszedł Starcraft 2... Czy trzeba więcej wyjaśnień? topRysowanie BitmapBitmapy są głównym surowcem, za pomocą którego podsystem Win32 rysuje obiekty. Z drugiej strony, termin bitmapa ma znaczenie o wiele szersze niż tylko pliki "bmp" - podstawowy i szeroko stosowany format zapisu obrazów, których to właściwa nazwa brzmi DIB - Device Indepedent Bitmap. Jak sama nazwa wskazuje, prócz bitmap niezależnych od urządzenia (rysującego), istnieją także bitmapy zależne, specyficzne dla urządzenia graficznego i wykorzystywane przezeń do rysowania. Prawidłowa konwersja pomiędzy oboma rodzajami bitmap jest podstawowym warunkiem poprawnego rysowania obiektów na ekranie, a jakiekolwiek błędy na tym etapie wywołają wyraźnie widoczne zniekształcenia obrazów czy też ich przekoloryzowania. Właśnie problem poprawnej konwersji od niedawna absorbuje Jérôme Gardou w jego pracach nad gałęzią YAROTOWS. W formacie DIB przechowywanych jest wiele informacji, niezbędnych do prawidłowego wyświetlenia obrazu, takie jak format koloru, rozdzielczość, paleta urządzenia, użyta do stworzenia obrazu, rodzaj użytej kompresji no i oczywiście wartości kanałów czerwonego, zielonego i niebieskiego dla każdego piksela, składającego się na obraz. Informacje te przechowywane są w ściśle określonych strukturach, które niestety nie zostały, w przeważającej większości, zaimplementowane poprawnie w ReactOS, w szczególności dotyczy to tych starszych, koniecznych do zachowania kompatybilności z poprzednimi wersjami Win32/Windows. Jérôme załatał już większość dziur, pozostawiając sobie jeszcze jedną poważną funkcję, która nadal nie działa jak należy. Gdy tylko się i z nią upora, nadejdzie pora na dużą aktualizację głównego drzewa ReactOS z gałęzi YAROTOWS. topObsługa sieci w LiveCDCameron Gutman w dalszym ciągu ulepsza stos sieci, a ostatnio udało mu się naprawić całą serię błędów, uniemożliwiających korzystanie z sieci na ReactOS LiveCD. Karty sieciowe oraz niektóre protokoły, tak jak chociażby TCP/IP, są obsługiwane za pośrednictwem dedykowanych sterowników. Z drugiej strony NDIS jest sterownikiem, odpowiedzialnym za zarządzanie interakcjami pomiędzy pozostałymi sterownikami w stosie sieci, a przede wszystkim za powiadamianie sterowników protokołów (na przykład TCP/IP) o obecności kart sieciowych. Aby otrzymywać takie powiadomienia, sterownik protokołu musi samemu być zarejestrowany w NDIS. W przypadku ReactOS, jeden z problemów polegał na tym, że sterownik TCP/IP nie był w ogóle uruchamiany po instalacji, z kolei inny dotyczył NDIS, który to nie powiadamiał sterowników protokołów o dodaniu kart sieciowych w systemie. Każdy z tych dwóch problemów, osobno nawet uniemożliwiał korzystanie z sieci, a w przypadku LiveCD występowały obydwa. Przy nich drobiazgiem zdawał się być trzeci, uniemożliwiający również usłudze DHCP odnalezienie nowo-dodanych adapterów sieci. Poza problemem z DHCP, który nadal czeka na ostateczne rozwiązanie, dwa pierwsze udało się Cameronowi rozwiązać, umożliwiając użytkownikom ReactOS LiveCD korzystanie z internetu. topCMakeRBuild od dawna uznawany był w naszym projekcie za zło konieczne. Mimo dobrych intencji jego twórcy (które niestety przepadły w mrokach dziejów), RBuild stał się trudnym do opanowania i rozwijania, przestarzałym i bardzo mało wydajnym narzędziem. Nie jest w stanie zapewnić odpowiedniej warstwy abstrakcji w stosunku do narzędzi, jakim jest kompilator i linker, a co gorsze przywiązał ReactOS do GCC, skutecznie utrudniając wszelkie próby skorzystania z innych kompilatorów, jak choćby MSVC. Mimo licznych prób naprawy, ostatniej której podjął się KJK::Hyperion, żadna nie zakończyła się sukcesem. KJK, ostatni zwolennik RBuild już nie jest aktywnym członkiem projektu i w najbliższym czasie nie będzie kontynuował swoich prac. W międzyczasie, CMake już zwrócił na siebie uwagę deweloperów ReactOS, lecz do tej pory nikt nie pokusił się na poważniejszą próbę jego wykorzystania. Niedawno Amine Khaldi wraz z Sir_Richardem z ROS-ARM rozpoczęli pracę nad gałęzią, której celem jest właśnie adaptacja CMake na potrzeby naszego projektu. W ciągu dwóch tygodni udało im się już skompilować sporą część bibliotek statycznych trybu użytkownika i narzędzia hosta. Przed nimi nadal dużo pracy, jednak postępy jakich dokonują pozwalają wierzyć na ostateczny sukces. Wraz z porzuceniem RBuild i adaptacją mamy nadzieję poprawić wydajność kompilacji a także poprawić jakość kodu. Już do tej pory udało się, dzięki ich pracy, wykryć i naprawić bardzo poważny błąd w kernel32.
top |