Wtyczka filtrująca
W samouczku Pierwszy krok użyliśmy wtyczki procedure. Tego typu wtyczki działają bez potrzeby wprowadzania obrazu lub możliwości rysowania jako danych wejściowych. Zwykle używamy wtyczki do zmiany obrazu i jego rysunków. Wtyczki takie jak te nazywane są wtyczkami filter.
Co to jest drawable?
Drawable w Lumi oznacza element obrazu, na którym można rysować, taki jak warstwa lub kanał. Wtyczki filtrujące zazwyczaj działają na tych elementach.
Przykład prostej wtyczki filtrującej
#!/usr/bin/env lumi-scheme-interpreter-0.1
(define (scheme-simple-filter-plug-in image drawables)
;; Użyj instrukcji let, aby zdefiniować zmienną wiadomości i kod główny
(let ((message "hello, world"))
;; Wyświetl wiadomość w konsoli komunikatów Lumi
(lumi-message message)
;; Odwróć kolory pierwszego wybranego drawable
(lumi-drawable-invert (vector-ref drawables 0) 1)))
;; Rejestruje wtyczkę
(scheme-register-filter
"scheme-simple-filter-plug-in" ;; Nazwa procedury głównej
"Simple Filter Plug-in Demo" ;; Nazwa wyświetlana w menu Lumi
"Tests a basic Scheme filter plug-in" ;; Opis podpowiedzi
"Author Name" ;; Podziękuj sobie za pracę
"License" ;; Licencja
"Date written" ;; Data napisania
"*" ;; Wskazuje, że ta wtyczka wymaga obrazu
SF-ONE-OR-MORE-DRAWABLE) ;; Wymaga co najmniej jednego wybranego drawable
;; Określ lokalizację menu dla wtyczki
(scheme-menu-register
"scheme-simple-filter-plug-in"
"<Image>/Plug-in")Skopiuj tekst i zapisz go jako simple-filter-plug-in.scm w folderze o nazwie simple-filter-plug-in w jednym z folderów wtyczek Lumi. Folder wtyczek Lumi to dowolny folder wymieniony w:
Lumi > Edytuj > Preferencje > Foldery > Wtyczki
W systemie Linux kliknij prawym przyciskiem myszy plik simple-filter-plug-in.scm, przejdź do Właściwości > Uprawnienia i zaznacz Zezwalaj na wykonywanie pliku jako programu. Gdy plik znajdzie się we właściwym miejscu, będzie wykonywalny i wolny od błędów składniowych, po ponownym uruchomieniu Lumi pojawi się on w górnym pasku nagłówka menu, wewnątrz menu o nazwie Wtyczka.
Uruchamianie wtyczki
- Otwórz obraz (ta wtyczka filtrująca wymaga do działania obrazu).
- Otwórz Narzędzia → Debugowanie → Konsola wiadomości, aby zobaczyć komunikat.
- Z menu Wtyczka wybierz opcję Simple Filter Plug-in Demo.
- Kolory jednej z wybranych warstw zostaną odwrócone, a w konsoli komunikatów zostanie wyświetlony komunikat.
Edytowanie wtyczki
Możesz dostosować wtyczkę, edytując jej plik .scm. Na przykład, aby zmienić wyświetlany komunikat:
- Otwórz plik i znajdź linię definiującą
message. - Zastąp
"hello, world"swoim niestandardowym tekstem. - Zapisz plik.
W Lumi w wersji 3 wtyczki nie wymagają odświeżania, aby zapisane zmiany zaczęły obowiązywać. Aby zobaczyć zaktualizowany komunikat, wystarczy ponownie uruchomić wtyczkę.
Badanie wtyczki
Linia Shebang
Pierwsza linijka gwarantuje, że skrypt będzie działać jako wtyczka w Lumi 3:
#!/usr/bin/env lumi-scheme-interpreter-0.1Definicja procedury
Procedura przyjmuje dwa argumenty: aktywny obraz i wybrane rysunki.
(define (scheme-simple-filter-plug-in image drawables)Podstawowa logika
Instrukcja let definiuje zmienną i wykonuje operacje na rysunku.
(let ((message "hello, world"))
(lumi-message message) ;; Wyświetla wiadomość w konsoli komunikatów Lumi
(lumi-drawable-invert (vector-ref drawables 0) 1)) ;; Odwraca kolory pierwszego wybranego drawableRejestracja wtyczki
Wtyczka jest zarejestrowana w Lumi jako wtyczka filtrująca:
(scheme-register-filter
"scheme-simple-filter-plug-in" ;; Rejestruje procedurę główną
"Simple Filter Plug-in Demo" ;; Nazwa wyświetlana w menu Lumi
"Tests a basic Scheme filter plug-in" ;; Opis podpowiedzi
"Author Name" ;; Imię i nazwisko autora
"License" ;; Typ licencji
"Date written" ;; Data napisania
"*" ;; Wskazuje, że wtyczka wymaga obrazu
SF-ONE-OR-MORE-DRAWABLE) ;; Wymaga co najmniej jednego wybranego drawableRejestracja menu
Ta linia określa lokalizację menu wtyczki:
(scheme-menu-register
"scheme-simple-filter-plug-in"
"<Image>/Plug-in")Rozwiązywanie problemów
Jeśli wtyczka nie zostanie wyświetlona, sprawdź jej lokalizację, nazwę i właściwości pliku wykonywalnego.
Lokalizacja musi znajdować się na ścieżce wyszukiwania wtyczki. Nazwa pliku musi być zgodna z nazwą folderu zawierającego. Plik musi być ustawiony jako wykonywalny.
Konsola wiadomości to cenne narzędzie do rozwiązywania problemów z niestandardowymi wtyczkami. Jeśli Twoja wtyczka nie zachowuje się zgodnie z oczekiwaniami, sprawdź tutaj komunikaty o błędach lub dzienniki. Okno Terminalu może również udostępniać informacje dotyczące debugowania i raportować problemy z ładowaniem.