Więcej światła!

Co bardziej zdolni albo ambitni użytkownicy niejednej aplikacji sami zabierają się za jej rozbudowanie. Najczęściej robią to, pisząc odpowiednią wtyczkę (plug-in), która dodaje do podstawowego programu nowe narzędzia i opcje. To w zasadzie nic trudnego – spróbuję przekonać Was o tym w dalszej części artykułu. Na warsztat weźmiemy przeglądarkę plików graficznych Futuris Imager. Przy okazji ogłaszamy konkurs na plug-in dla Futurisa. O szczegółach przeczytacie na sąsiedniej stronie.

Z programem dostarczane są wtyczki-filtry transformujące obrazy oraz plug-iny do importu i eksportu plików graficznych. Na stronie internetowej Futurisa oraz na CHIP-CD/DVD znajdziemy także pakiet SDK służący do pisania wtyczek dla programu. Takie narzędzie jest niezbędne zawsze wtedy, gdy chcemy stworzyć plug-in dla jakiejkolwiek aplikacji. SDK najczęściej zawiera biblioteki, które musimy dodać do naszego projektu w C/C++, Pascalu albo innym języku programowania. W pakiecie powinna się także znaleźć dokumentacja opisująca sposób posługiwania się SDK.

Działa, ale nie sam

Zanim zabierzemy się do pracy, odpowiedzmy na pytanie, czym właściwie jest wtyczka. Otóż plug-in to program, który współpracuje z aplikacją “macierzystą”. Wtyczka nie zawiera kodu wykonywalnego zapisanego w pliku EXE, a zatem nie może być uruchomiona samodzielnie.

Plug-iny są często dodawane do aplikacji przetwarzających dane strumieniowo, takich jak oprogramowanie do odtwarzania i generowania muzyki oraz obróbki wideo. Niejeden pakiet swoją popularność wręcz zawdzięcza plug-inom. Chyba najbardziej znanym przedstawicielem tej grupy programów jest Winamp, który w gruncie rzeczy składa się z wtyczek. Służą one do dekodowania danych, zapisywania ich, wizualizacji… Z plug-inów korzystają również bardzo duże pakiety, takie jak choćby 3ds max lub LightWave. W tym ostatnim każde narzędzie do modelowania obiektów trójwymiarowych jest odrębnym plug-inem.

W wypadku programów służących do obróbki dźwięku plug-iny są zestawiane w bloki, tworząc tzw. presety (konfiguracje). Za ich pomocą można łatwo użyć całej grupy hierarchicznie połączonych efektów dźwiękowych.

Od wejścia do wyjścia

Plug-iny możemy podzielić na trzy grupy: źródłowe, transformujące (filtry) oraz renderujące, czyli służące do prezentacji danych. Nietrudno co prawda znaleźć inne kategorie, ale te powyższe zupełnie nam wystarczą.

Wtyczka źródłowa dostarcza informacji głównemu programowi. Plug-iny renderujące same otrzymują dane do przetworzenia, a następnie np. prezentują je na ekranie. Filtry natomiast muszą zarówno pobierać informacje, jak i przekazywać je do dalszej obróbki.

Taki proces przetwarzania przedstawiany jest za pomocą grafu. Określa on, między jakimi plug-inami powinny przepływać dane. Najczęściej grafy są niemodyfikowalne, co znacznie upraszcza tworzenie wtyczek.

Dzięki pakietowi SDK Futuris Imagera możemy napisać plug-in dowolnego rodzaju – np. wtyczkę importu/eksportu do nowego, nieobsługiwanego jeszcze formatu obrazu. Proponuję jednak zrobić coś innego. Zajmiemy się filtrem transformującym, za pomocą którego będziemy mogli przekształcać przeglądane grafiki. Oczywiście nie obędzie się bez dobrania odpowiednich narzędzi.

Więcej:bezcatnews