Embedded v[PleaseinsertPrerenderUnicode{Ă
Transkript
Embedded vývoj v Clutteru a Mx Pavel Šimerda [email protected] OpenMobility 2011 Creative Commons Uved’te autora 3.0 Česko Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Embedded“ ” Oblı́bený buzzword Vestavěná zařı́zenı́ (v automobilech, budovách, venkovnı́ch terminálech) Jednoúčelová zařı́zenı́ Malý výpočetnı́ výkon, málo RAM Alternativnı́ architektury (ARM) Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx MeeGo Embedded linuxová distribuce O vývoj se stará převážně Intel Pod hlavičkou Linux Foundation Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Rozdělenı́ kompetencı́“ ” Glib/GType/GObject – implementace OOP v jazyce C COGL – objektové API nad OpenGL Clutter – knihovna pro tvorbu GUI nad COGL API Mx – knihovna GUI prvků pro Clutter ClutterGst – knihovna prvků pro zobrazovánı́ videı́ Mash – knihovna pro použitı́ 3D modelů v Clutteru ClutterGtk – knihovna pro propojenı́ Clutteru a Gtk Cally – rozšı́řenı́ Clutteru o přı́stupnost Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx GObject Základnı́ objektový typ pro knihovny napsané v C Implementace v C Prvky z dynamicky typovaných jazyků Introspekce a zpřı́stupněnı́ knihoven jiným jazykům Signály Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx COGL Nı́zkoúrovňová knihovna (mezi OpenGL a Clutterem) Vznikla kvůli Clutteru a společně se vyvı́jı́ Lze použı́t nezávisle na Clutteru Pro běžné aplikace nenı́ potřeba ji znát Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Clutter Knihovna pro tvorbu GUI Obsahuje univerzálnı́ stavebnı́ prvky Nezahrnuje vzhled prvků Použitelný pro aplikačnı́ vývojáře Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Clutter – stavebnı́ prvky ClutterActor – základnı́ třı́da grafických prvků Clutteru ClutterStage – abstrakce plochy či okna ClutterRectangle – jednoduchý obdelnı́k ClutterTexture – plocha s obrázkem ClutterClone – ukazuje jiný prvek ClutterText – textový prvek Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Mx Grafický toolkit nad Clutterem Obsahuje běžné ovládacı́ prvky Obsahuje výchozı́ vzhled Umožňuje stylovánı́ pomocı́ syntaxe CSS Má čitelnou implementaci Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Mx – abstraktnı́ třı́dy MxWidget – základnı́ třı́da grafických prvků Mx MxBin – kontejner pro jeden prvek Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Mx – neviditelné prvky MxApplication – aplikace MxWindow – hlavnı́ okno MxAction – uživatelské akce MxClipboard – abstrakce schránky MxFocusManager – správce výběru prvků MxStyle – načtený stylopis Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Mx – ovládacı́ prvky MxButton – tlačı́tko MxLabel – popisek MxEntry – editačnı́ pole MxComboBox – kombobox MxSlider – posuvnı́k pro stavovánı́ hodnot Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Mx – kontejnery MxFrame – rámeček MxExpander – schovávacı́ sekce MxViewport – kontejner pro pro scrollovánı́ MxBoxLayout – kontejner pro vertikálnı́ či hoizontálnı́ skládánı́ prvků MxNotebook – přepı́natelný kontejner MxStack – Kontejner, jehož prvky jsou zobrazené přes sebe MxOffscreen – kontejner mimo viditelnou obrazovku. Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Mx – rozhranı́ MxDraggable MxDroppable MxFocusable MxScrollable MxStylable Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Mx – ukázka v Pythonu (nefunkčnı́) #!/usr/bin/python3 from gi.repository import Mx application = Mx.Application(application_name="Test") window = application.create_window() window.show() application.run() Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Mx – ukázka v Pythonu (workarounds) #!/usr/bin/python3 import sys from gi.repository import Clutter, Mx # workarounds Clutter.init(sys.argv) Mx.set_locale() application = Mx.Application(application_name="Test") window = application.create_window() window.show() application.run() Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx Mx – ukázka v C #include <stdlib.h> #include <mx/mx.h> int main (int argc, char **argv) { MxApplication *application = mx_application_new(&argc, &argv, "Test", 0); MxWindow *window = mx_application_create_window(application); ClutterActor *button = mx_button_new_with_label("Button"); mx_window_set_child(window, button); mx_window_show(window); mx_application_run(application); exit(EXIT_SUCCESS); } CPPFLAGS += ‘pkg-config --cflags mx-1.0‘ LDFLAGS += ‘pkg-config --libs mx-1.0‘ Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx ClutterGst Knihovna pro zobrazenı́ videa z různých zdrojů Zdroje jsou přı́stupné pomocı́ streamového frameworku GStreamer ClutterGstVideoSink ClutterGstVideoTexture Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx ClutterGstVideoSink Výstupnı́ prvek GStreameru, který umı́ kreslit do ClutterTexture Lze zapojit do grafu prvků v GStreameru Vhodný pro složitějšı́ přı́pady Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx ClutterGstVideoTexture Odvozený od ClutterTexture Hotový prvek pro vkládánı́ videı́ do aplikace Pavel Šimerda [email protected] Embedded vývoj v Clutteru a Mx
Podobné dokumenty
alternativní PDF podoba - Ponořme se do Pythonu 3
• V kapitole Serializace pythonovských objektů se naučíte, proč modul pickle pro Python 3 definuje nový datový formát,
který je zpětně nekompatibilní s verzí pro Python 2. (Nápověda: Důvodem jsou b...
IZR_PF
Cílově nový Registr zvířat směřuje k tomu, aby se ulehčila komunikace mezi chovateli a
pověřenou osobou a chovatel měl k dispozici možnost, jak efektivně vyřešit problémy
v evidenci. S touto ambicí...
openMagazin 7/2011
Když jsem před více než rokem psal o Clementine, nebylo moc co popisovat: portfolio funkcí tohoto hudebního přehrávače nebylo vůbec rozsáhlé a když jsem
se rozplýval nad tím, že se mi zhroutil pouz...
openMagazin 02/2010
"modra", "purpurova", "tyrkysova", "bila");
do {
my $number = 37 – $#colors;
my $color = shift @colors;
print "\033[${number}m${color}, \033[1mtucna ${color}\033[0m\n";
} while (@colors);
zadání tutoriálu
Python. Popularita tohoto jazyka však nepramenı́ pouze z velmi pohodlné syntaxe, ale také z rozsáhlého
systému kvalitnı́ch knihoven – kolekcı́ užitečných algoritmů, funkcı́ a podprogramů...
Mobilní hra Block Runner Anotace Zadání projektu Návod na
○ Překážka A: hráč se jí bude muset vyhýbat. Pokud do hráče překážka najede, hra
skončí.
○ Překážka B: hráč ji bude moct sbírat. Pokud ji hráč sebere, dostane skóre.
○ Překážka C:...
Zpracování obrazu pro vzdálenou vizualizaci
hřiště a určuje polohu jednotlivých robotů na základě značky umístěné na každém robotu. Další
kamery jsou určené pro vizualizaci.
Pro realizaci úloh budou uživatelé využívat senzorová data z robotů...