Embedded v´yvoj v Clutteru a Mx ˇ Pavel Simerda
[email protected]
OpenMobility 2011 ˇ Creative Commons Uved’te autora 3.0 Cesko
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
Embedded“ ”
Obl´ıben´y buzzword ˇ a´ zaˇr´ızen´ı (v automobilech, budovach, ´ Vestaven ´ venkovn´ıch terminalech) Jednouˇ ´ celova´ zaˇr´ızen´ı ´ RAM Mal´y v´ypoˇcetn´ı v´ykon, malo Alternativn´ı architektury (ARM)
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
MeeGo
Embedded linuxova´ distribuce ´ zneˇ Intel O v´yvoj se stara´ pˇrevaˇ Pod hlaviˇckou Linux Foundation
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
ˇ ı kompetenc´ı“ Rozdelen´ ”
Glib/GType/GObject – implementace OOP v jazyce C COGL – objektove´ API nad OpenGL Clutter – knihovna pro tvorbu GUI nad COGL API Mx – knihovna GUI prvku˚ pro Clutter ´ ı vide´ı ClutterGst – knihovna prvku˚ pro zobrazovan´ Mash – knihovna pro pouˇzit´ı 3D modelu˚ v Clutteru ClutterGtk – knihovna pro propojen´ı Clutteru a Gtk Cally – rozˇs´ırˇen´ı Clutteru o pˇr´ıstupnost
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
GObject
´ Zakladn´ ı objektov´y typ pro knihovny napsane´ v C Implementace v C Prvky z dynamicky typovan´ych jazyku˚ ˇ ı knihoven jin´ym jazykum Introspekce a zpˇr´ıstupnen´ ˚ ´ Signaly
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
COGL
ˇ a´ knihovna (mezi OpenGL a Clutterem) N´ızkourov ´ nov Vznikla kvuli ˚ Clutteru a spoleˇcneˇ se vyv´ıj´ı ´ Lze pouˇz´ıt nezavisle na Clutteru ˇ zne´ aplikace nen´ı potˇreba ji znat ´ Pro beˇ
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
Clutter
Knihovna pro tvorbu GUI ´ ı stavebn´ı prvky Obsahuje univerzaln´ Nezahrnuje vzhled prvku˚ ´ re Pouˇziteln´y pro aplikaˇcn´ı v´yvojaˇ
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
Clutter – stavebn´ı prvky
´ ClutterActor – zakladn´ ı tˇr´ıda grafick´ych prvku˚ Clutteru ClutterStage – abstrakce plochy cˇ i okna ClutterRectangle – jednoduch´y obdeln´ık ´ ClutterTexture – plocha s obrazkem ClutterClone – ukazuje jin´y prvek ClutterText – textov´y prvek
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
Mx
Grafick´y toolkit nad Clutterem ˇ zne´ ovladac´ ´ Obsahuje beˇ ı prvky Obsahuje v´ychoz´ı vzhled ˇ ´ ı pomoc´ı syntaxe CSS Umoˇznuje stylovan´ Ma´ cˇ itelnou implementaci
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
Mx – abstraktn´ı tˇr´ıdy
´ MxWidget – zakladn´ ı tˇr´ıda grafick´ych prvku˚ Mx MxBin – kontejner pro jeden prvek
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
Mx – neviditelne´ prvky
MxApplication – aplikace MxWindow – hlavn´ı okno MxAction – uˇzivatelske´ akce ´ MxClipboard – abstrakce schranky ´ ˇ prvku˚ MxFocusManager – spravce v´yberu MxStyle – naˇcten´y stylopis
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
´ Mx – ovladac´ ı prvky
MxButton – tlaˇc´ıtko MxLabel – popisek MxEntry – editaˇcn´ı pole MxComboBox – kombobox ´ ı hodnot MxSlider – posuvn´ık pro stavovan´
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
Mx – kontejnery
´ MxFrame – rameˇ cek ´ MxExpander – schovavac´ ı sekce ´ ı MxViewport – kontejner pro pro scrollovan´ ´ ı cˇ i hoizontaln´ ´ ı MxBoxLayout – kontejner pro vertikaln´ ´ an´ ´ ı prvku˚ sklad MxNotebook – pˇrep´ınateln´y kontejner MxStack – Kontejner, jehoˇz prvky jsou zobrazene´ pˇres sebe MxOffscreen – kontejner mimo viditelnou obrazovku.
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
Mx – rozhran´ı
MxDraggable MxDroppable MxFocusable MxScrollable MxStylable
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
´ Mx – ukazka v Pythonu (nefunkˇcn´ı)
#!/usr/bin/python3 from gi.repository import Mx application = Mx.Application(application_name="Test") window = application.create_window() window.show() application.run()
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
´ Mx – ukazka 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 Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
´ Mx – ukazka vC #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 Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
ClutterGst
Knihovna pro zobrazen´ı videa z ruzn´ ˚ ych zdroju˚ ´ Zdroje jsou pˇr´ıstupne´ pomoc´ı streamoveho frameworku GStreamer ClutterGstVideoSink ClutterGstVideoTexture
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
ClutterGstVideoSink
V´ystupn´ı prvek GStreameru, kter´y um´ı kreslit do ClutterTexture Lze zapojit do grafu prvku˚ v GStreameru ˇ s´ı pˇr´ıpady Vhodn´y pro sloˇzitejˇ
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx
ClutterGstVideoTexture
Odvozen´y od ClutterTexture ´ an´ ´ ı vide´ı do aplikace Hotov´y prvek pro vklad
ˇ Pavel Simerda
[email protected]
Embedded v´yvoj v Clutteru a Mx