Strona główna | Informacje | Społeczność | Rozwój | mójReactOS | Kontakt

  1. Strona główna
  2. Społeczność
  3. Rozwój
  4. mójReactOS

  1. Spis treści
  2. Zespół ReactOS
  3. Forum
  4. Wiki
  5. Listy dyskusyjne
  6. Kanały IRC
  7. Newslettery
  8. Blogi
  9. Najczęstsze pytania

Community > ReactOS Newsletter Archive > ReactOS Newsletter: Biuletyn 64

Biuletyn 64

by Z98 on 2009-09-15
translated by Mariusz Przybylski on 2009-09-22

Tłumaczenie: Mariusz Przybylski

top

Kolor i wypełnienie


Kolorowane kursory nie są często używane przez aplikacje, jednak przez gry z całą pewnością, nie wspominając o Winampie. Podczas używania Winampa, Gregor Schneider zauważył, że kursor zmienia się w czarny kwadrat, co skłoniło go do analizy kodu z zamiarem wyeliminowania problemu. W kilkunastu miejscach znalazł komentarze zwracające uwagę na brak obsługi kolorów, dzięki czemu miał parę wskazówek co do tego, gdzie brakuje kodu. Na szczęście większość pracy była prosta, a modyfikacje parametrów funkcji rysujących i użycie płaszczyzny kolorów okazały się wystarczające, by osiągnąć podstawową funkcjonalność. Jednakże problemy tkwiły również w niższej warstwie podsystemu Win32, a spora jego część była właściwie wykomentowana. Podczas gdy kursor był już widoczny, czarny kwadrat nadal pokazywał się wokół niego.

W czasie gdy Gregor nad tym pracował, Timo Kreuzer postanowił sprawdzić problemy ujawnione przez aplikację Paint Benedikta Freisena. Mimo, że Paint wygląda i działa świetnie na Windows, to wg Timo na ReactOS wygląda po prostu paskudnie. Jedną z przyczyn były oczywiście kolorowane kursory, więc zaczął naprawiać silnik graficzny. Kluczową funkcją jest SetPointerShape, która ma wersję Drv oraz Eng, w zależności od tego czy obsługuje ją sterownik, czy też musi zostać obsłużona przez silnik graficzny Windows. W obu przypadkach funkcja otrzymuje dwie bitmapy, z których druga zawiera informacje o kolorach przy rysowaniu kursora. Ta druga bitmapa była do tej pory ignorowana w kodzie, ale Timo dodał potrzebną funkcjonalność by zaczęła działać. Następną rzeczą na liście, z którą trzeba będzie się uporać, jest przezroczystość (alphablending).

Inny problem nad którym Gregor pracował również został ujawniony przez aplikację Paint. Podczas jej używania Gregor zauważył, że jego ulubione narzędzie - wypełnianie - nie działało. Analizując problem zauważył, że funkcjonalność tego narzędzia nie jest kompletna. Większość kodu była na miejscu, a cały łańcuch wywołań funkcji odpowiedzialny za działanie wypełniania również był w porządku, za wyjątkiem paru ostatnich, które przeprowadzały właściwe rysowanie. Gregor wykonał bardzo prostą implementację, po czym optymalizował ją, aż wydajność była odpowiednia do właściwego użytku.

top

Opóźnione importowanie


Biblioteki dołączane dynamicznie (DLL) używane są w celu współdzielenia kodu i funkcjonalności między aplikacjami bez potrzeby powielania tej funkcjonalności dla każdej aplikacji z osobna. Oszczędza to pamięć, ponieważ biblioteka DLL ładowana jest tylko raz dla wielu aplikacji.

Pierwsze ładowanie biblioteki może trochę trwać i może nawet opóźnić uruchomienie się aplikacji. Jednym ze sposobów na uniknięcie tego opóźnienia jest odwlekanie ładowania biblioteki do czasu aż będzie potrzebna, przypuszczalnie po starcie aplikacji. Do tego właśnie służy opóźnione importowanie, którego obsługa nie była jednak zaimplementowana w dlltool. Z tego powodu Timo Kreuzer postanowił ją dodać. Samo tworzenie kodu było dość proste, jednak Timo zmagał się z ustawieniem środowiska konstrukcyjnego pod dlltool. Łatka wysłana została autorom, co miejmy nadzieję pomoże większej ilości osób. Ekipa mingw x64 wyraziła już wobec niej swoje zainteresowanie. Zdaniem Timo wersja na inne platformy powinna być równie prosta.

top

Baza danych kompatybilności


[..] Danny Gotte przepisał zarówno interfejs jak i strukturę bazy danych, ułatwiając dodawanie i edytowanie nowych wpisów. Jak dotąd baza danych wygląda znacznie lepiej niż w przeszłości, a od wydania Danny wprowadza dodatkowe poprawki w oparciu o opinie użytkowników. W zamierzeniu baza danych ma posiadać również rekordy dotyczące sprzętu, zastępując listę ad-hoc na wiki. W tym celu zapraszamy wszystkich do testowania i sprawdzenia jak dobrze działa. W miarę jak liczba wpisów będzie rosnąć, łatwiej będzie nam sprawdzić co działa a co nie na ReactOSie.

top

Zwycięzca konkursu na projekt strony


Gratulacje dla Shek-Yu Leung, znanego na forum jako numpy. Na jego projekt składały się 4 wersje robocze, z czego ostatnia uznana została przez jury za najlepszą. Ogólnie mówiąc prace nadesłane przez użytkowników były różne. Od drobnych zmian w obecnym wizerunku, po całkowicie nowe projekty graficzne. Było parę ciekawych stylów, które być może posłużą za inspirację przy odnawianiu naszego serwisu, jednak Leung był jednym z tych, którym udało się połączyć zarówno świeżość wyglądu jak i ciekawy pomysł na rozplanowanie elementów. Ekipa ReactOS chce podziękować wszystkim którzy wzięli udział w konkursie.


top

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.