Embedded v[PleaseinsertPrerenderUnicode{Ă

Transkript

Embedded v[PleaseinsertPrerenderUnicode{Ă
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

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...

Více

IZR_PF

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í...

Více

openMagazin 7/2011

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...

Více

Pasivní Koherentní Lokace

Pasivní Koherentní Lokace Pasivní Koherentní Lokace Duben 2008

Více

openMagazin 02/2010

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);

Více

zadání tutoriálu

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ů...

Více

Mobilní hra Block Runner Anotace Zadání projektu Návod na

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:...

Více

Zpracování obrazu pro vzdálenou vizualizaci

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ů...

Více