Przejdź do głównej zawartości

OpenSUSE 11.3, Intel GM45 i WebGL w Firefoxie

Miałem problem z uruchomieniem aplikacji internetowych napisanych przy użyciu stosunkowo nowej technologii jaką jest WebGL. Mam laptopa ze zintegrowanym chipsetem graficznym Intel GM45, który oczywiście nie wspiera sprzętowo renderowania 3D. Odpalenie WebGL w Firefoxie 10.0.0.2 przysporzyło mi trochę problemów pod systemem OpenSUSE (w moim przypadku w starej wersji 11.3 64bit z repozytorium ciągłym Thumbelweed ).

Poniżej przedstawiam kolejne kroki jakie wykonałem, a po których WebGL wystartował przy renderowaniu software'owym:


Najpierw musimy zainstalować bibliotekę Mesa (jeśli jej jeszcze nie mamy):
sudo zypper in Mesa
W Firefoxie należy w pasku adresu wpisać:
about:config

W wyszukiwarce można odfiltrować zmienne odpowiedzialne za WebGL poprzez wpisanie:

webgl

Ustawiamy odpowiednie zmienne jak poniżej
  • webgl.force-enabled  jako: true
  • webgl.force_osmesa jako: true
  • webgl.osmesalib jako: /usr/lib64/libOSMesa.so.7
Oczywiście jeśli masz inną wersję Mesy to link symboliczny będzie miał zapewne inną nazwę. Jeśli nie posiadasz takiego linku symbolicznego to oczywiście należy podać ścieżkę bezpośrednią do biblioteki lub utworzyć sobie odpowiednie łącze symboliczne. Zdziwiła mnie mała niekonsekwencja w nazewnictwie zmiennych - jedne z minusem, inne z podkreśleniem, a jeszcze inne pisane razem - no ale może konsekwencja jest, a po prostu ja nie znam konwencji przyjętej w projekcie Firefox.

Po ponownym uruchomieniu Firefoxa WebGL zaczął działać =)


Artykuł udostępniany na licencji CC-BY-SA-3.0

Komentarze

Popularne posty z tego bloga

WordPress -> SQL Injection poprzez plugin Webdorado SpiderCalendar

W zeszłym roku sprawdziłem jakość kodu oraz poprawność przetwarzania danych wejściowych przez plugin „Form Maker” przygotowany przez wydawcę Webdorado. Tym razem postanowiłem sprawdzić czy autor poprawił jakoś kodu swoich produktów. Należy tutaj nadmienić, że poza wersjami darmowymi opartymi na licencji GNU/GPLv2 oferuje on również wersję płatne z dodatkowymi szablonami. Tym razem postaram się opisać wszelkie przeszkody, które musiałem pokonać aby n apisać działającego exploita. Zacząłem zabawę tak, że program był dla mnie black-boxem, ale niestety skończyło się na przejrzeniu kodu. Zapraszam do lektury. Poniżej można zobaczyć jeden z widoków częściowych kalendarza, który domyślnie jest wywoływany z JavaScriptu jako XHR, można jednak go z powodzeniem otworzyć w przeglądarce jako widok główny: http://localhost:8888/wp/wp-admin/admin-ajax.php?action=spiderbigcalendar_month&theme_id=13&calendar=1&select=month,list,week,day,&date=2015-02&many_sp_calend

Inkscape - Ikona koperty

Podstawą naszej pracy będzie oczywiście narysowanie koperty. Lepszy efekt uzyskamy, jeśli narysujemy ją pod pewnym kątem. Musimy jednak oczywiście pamiętać, że konieczne będzie zachowanie proporcji oraz prawidłowe użycie rzutu. Rysujemy najpierw zewnętrzne kontury, potem wewnętrzne elementy, do momentu uzyskania podobnych efektów jak na poniższym zrzucie szkieletowym. By uzyskać widok szkieletowy włączamy opcję Widok -> Tryb Wyświetlania -> Szkieletowy . Z powyginanych trójkątów postaramy się zrobić coś w rodzaju cieni. Grubość linii koperty, które należy narysować u siebie ustawiłem na 4 - tak,by przy mniejszym rozmiarze ikony koperta była bardziej widoczna. Zresztą porównajcie to z oczekiwanym efektem końcowym. Po narysowaniu koperty przejdźmy do tworzenia tła pod kopertę. Jak widać na powyższym załączniku, będzie ono okrągłe. Korzystając z narzędzia "owal" by uzyskać idealne koło przytrzymujemy Ctrl+Shift, podczas gdy rysujemy. Wykorzystany gradient to gradient typu

Przydatne skrypty w MS SQL Server dla platformy Azure

 Jak przygotować skrypt, który wyłączy "Constrainty" w MS SQL Azure:     SELECT 'ALTER TABLE [' + s.name + '].[' + o.name + '] NOCHECK CONSTRAINT ' + i.name AS a     FROM sys.foreign_keys i     INNER JOIN sys.objects o ON i.parent_object_id = o.OBJECT_ID     INNER JOIN sys.schemas s ON o.schema_id = s.schema_id Jak przygotować skrypt, który wycziści wszystkie tabele, po tym jak wyłączysz "Constrainty" w MS SQL Azure:     SELECT DISTINCT 'DELETE FROM  [' + t.name + '] ' AS a     FROM sys.tables t     WHERE t.name <> 'appusers' AND t.name <> 'flyway_schema_history'; Jak przygotować skrypt, który włączy "Constrainty" w MS SQL Azure:     SELECT 'ALTER TABLE [' + s.name + '].[' + o.name + '] CHECK CONSTRAINT ' + i.name AS a     FROM sys.foreign_keys i     INNER JOIN sys.objects o ON i.parent_object_id = o.OBJECT_ID     INNER JOIN sys.schemas s ON o.schema_id = s.schema_i