Windows.UI.Composition

Slides:



Advertisements
Hasonló előadás
A bemutató készítés bemutatója
Advertisements

Bemutató-készítés PowerPoint.
A program a „Tudáshasznosulást, tudástranszfert segítő eszköz-, és feltételrendszer kialakítása, fejlesztése a Műegyetemen” (TÁMOP /1/KMR )
ADATBÁZISOK.
Hatékonyságvizsgálat, dokumentálás
Új online technológiák: lehetőségek és kihívások Kerese István Fejlesztési platform üzletág igazgató Microsoft Magyarország
C++ programozási nyelv Gyakorlat hét
Social Networking alkalmazás fejlesztése ASP.NET 3.5-tel Árvai Zoltán Consultant, Trainer Számalk Oktatóközpont.
IT-DEV-CON – IT-DEV-CON Kollár László Fejlesztési platform üzletág igazgató - Microsoft.
BSP-fák használata játék- engine fejlesztésében a nagy kiterjedésű zárt terek megjelenítéséhez Előadó: Boromissza Gergely Konzulens: dr. Szirmay-Kalos.
Piacképes programozói tudás a középiskolában
Iratkezelő rendszer fejlesztése WPF alapokon
A Microsoft rendszermenedzsment víziója A Dynamic Systems Initiative A System Definition Model Az üzemeltetésre tervezett szoftverek A SDM jelentősége.
Számítógépes geometriai leíró nyelvek
Jakab András Program-koordinátor Microsoft Program.
Geometriai modellezés
Stílus, mesteroldal, témák
Virtuális méréstechnika
Kincses Zoltán, Mingesz Róbert, Vadai Gergely
Mérés és adatgyűjtés laboratóriumi gyakorlat Makan Gergely, Mingesz Róbert, Nagy Tamás 2. óra szeptember 9., 10. v
A bemutató készítés bemutatója
Közös kinézet Mester oldal, témák, skin-ek, css Webalkalkalmazás fejlesztése ASP.NET-ben Krizsán Zoltán.
Átállás.
Célkeresztben az érettségi! A legjobb és leghatékonyabb eszközt akarjuk Kevesebb hibalehetőség, barátságos hibaüzenetek Kiváló fejlesztőeszköz Gyorsan.
Rétegek használata GIMP képszerkesztő programban
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
Microsoft Access Vezérlőelemek.
MACROMEDIA FLASH Mire használható? példák. MACROMEDIA FLASH vektor – bitmap.
További vezérlőelemek
Vírus típusú csaj: Észre sem veszed, és beköltözött a lakásodba, mindent kisajátít. Internet típusú csaj: Fizetned kell, hogy hozzáférjél.
Hálózati Bombermen Belicza András Konzulens: Rajacsics Tamás BME-AAIT.
Számítógépes grafika 3. gyakorlat.
Bevezetés az alakmodellezésbe I. Budapesti Műszaki Főiskola Neumann János Informatikai Főiskolai Kar A Műszaki Tervezés Rendszerei 2000/2001 tanév, I.
Bátyai Krisztián NetAcademia Oktatóközpont oktató, fejlesztő MCT, MCPD
A program a „Tudáshasznosulást, tudástranszfert segítő eszköz-, és feltételrendszer kialakítása, fejlesztése a Műegyetemen” (TÁMOP /1/KMR )
Készítette: Gergó Márton Konzulens: Engedy István 2009/2010 tavasz.
Vizuális alkalmazások a FoxProban Páll Éva Boglárka.
LOGO Webszolgáltatások Készítette: Kovács Zoltán IV. PTM.
Önálló labor munka Csillag Kristóf 2005/2006. őszi félév Téma: „Argument Mapping (és hasonló) technológiákon alapuló döntéstámogató rendszerek vizsgálata”
Rajzolás WPF alkalmazásokban
IWiW – második hullám Simó György T-Online Magyarország Zrt, vezérigazgató.
1 Add az APK-t! Add az APK-t! Automatizált apptesztelés 2013/10/13.
Matematika I. 1. heti előadás Műszaki Térinformatika 2013/2014. tanév szakirányú továbbképzés tavaszi félév Deák Ottó mestertanár.
Többváltozós adatelemzés
Objektumorientált tervezés Út az objektumig Az objektum fogalma, jellemzői Objektummal kapcsolatos fogalmak Hardverfogalmak A rendszer modell nézetei Objektumorientált.
Prezentáció és grafika
Visual Basic 2008 Express Edition
IT-DEV-CON – Játékfejlesztés a Windows Phone 7 erejével Pellek Krisztián ELTE.
Varga Viktor – G36ECF 1/5 Vendéglátói szoftverek sajátosságai Varga Viktor.
Vírusok eltávolítása. Vírusok eltávolítására két módszert ajánlanak Az első a biztonsági másolatról történő helyreállítás Biztonsági másolat hiányában.
CUDA C/C++ programozás Egyéb eszköztárak vegyesen A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt.
Grafikai lehetőségek WPF-ben Egyszerű grafika (Shape-ek)
Miért jó nekünk kutatóknak a felhő?
Chapter 6 Input Technologies and Techniques. Jó vagy rossz? Toll vs. érintés + kézírás, rajzolás + pontos kijelölés + extra funkciók (pl gomb) - mindig.
Számítógépes grafika I. AUTOCAD alapok 3. előadás.
Informatikai eszközök a virtuális valóság szolgálatában Hapák József ELTE-IK X. Eötvös Konferencia.
Szebb és használhatóbb programok Vezérlőelemek dinamikus felhelyezése.
A számítógépes grafika alapjai, PPKE-ITK, Benedek Csaba, 2010 Tanagyag forrás © Szirmay-Kalos László, BME A számítógépes grafika céljai és feladatai 1.
Informatikai gyakorlatok 11. évfolyam
Grafikus felhasználói felületek Linux alatt. Grafikus Interface A grafikus felhasználói felület (angolul graphical user interface, röviden GUI) olyan,
Csajtípusok az informatikus férfiak szerint PéPéeS
Alkalmazásfejlesztés F#-ban Dunaújvárosi Főiskola Kiss Gyula mérnökinformatikus hallgató Nemzeti Tehetség Program Tehetségútlevél Program „NTP-TÚP ”
Windows Presentation Foundation
Informatikai gyakorlatok 11. évfolyam
Gépészeti informatika (BMEGEMIBXGI)
Neumann János Informatikai Kar
Ubuntu – ismerkedés Fájlok és könyvtárak
Adatkötés Sablonokkal
JavaScript a böngészőben
DRUPAL Előadja: Nagy Nikoletta :05.
Előadás másolata:

Windows.UI.Composition ENTERPRISE DEVELOPER MEETUP, 2016.02.24. DEME TAMÁS Windows.UI.Composition Rövid intro… az új vizuális réteg a Xaml és a DirectX között

Gyönyörű alkalmazások Mozgás Dinamika, effektek A tömegből kiemelő design Hozz el új, korábban lehetetlen UI megoldásokat UWP appjaidba a Composition API segítségével! Az API célja a következő generációs felhasználói élmények lehetővé tétele: az előadás során megmutatom, hogy hogyan lehet kihasználni az új visualokat, effekteket és animációkat a skálázható, gördülékeny és gyönyörű eredményekért.

A ma bemutatásra kerülő API célja a videóban látott jövő alapjainak lerakása. A csapat szavaival élve

A Composition réteg bemutatása A megismert újdonságok használata Demók (shiny!) Ma az alábbi 3 dolgot szeretném nektek megmutatni

Miért van rá szükség? Sok mélyen gyökerező probléma megoldására hivatott A XAML jó, és tudsz vele cool dolgokat csinálni De mégsem tűnik annyira fluidnak az eredmény… Illetve nyilván sok dolgot _nem_ tudsz vele megcsinálni

Windows.UI.Composition a “next-gen UI framework” Egy új megjelenítési réteg Az alap minden jövőbeli Windows platform számára Dinamikus, interakív tartalomra optimalizálva DX és XAML interop Használható C#, C++, C++/CX alól Megjegyezni: Tudunk appot írni akár csak composition használatával, nem kell Xaml egyáltalán

Megjelenítési réteg? dwm.exe A videókártyád A monitorod System Compositor Composition API dwm.exe XAML Keret-rendszerek Windows shell Grafikus hardver A videókártyád Előbb azt mondtam, hogy ez egy új megjelenítési réteg… ez mit jelent pontosan? Microsoft Edge / IE Win32 appok Képernyő A monitorod

Mi nem? Nem raszterizáló “Képet eszik”, D2D, D3D és Dwrite tartalmakat Nem egy magas-szintű keretrendszer, tehát nincs: App Modell Komplex layout Controlok Scriptelés Adatkötés Stílusok Most, hogy tudjuk, hogy mi ez – fontos tudni azt is, hogy ez mi nem.

Beillesztés a meglévő technológiák közé Könnyű Universal Windows Application Windows.UI.Xaml Visualok, animációk, effektek… Controlok, layout, adatkötés… Raszterizáció, renderelés… Keretrendszer Windows.UI.Composition Megjelenítési réteg Nézzük meg, h hogy illeszkedik be a meglévő technológiák közé DirectX megoldások Grafikus réteg Lehetséges

Ez van a csomagban Content Visual-ok Effekt rendszer Pehelykönnyű rendering objektumok családja Effekt rendszer Valós időben animálható, láncolható effektek Animációs rendszer Keretrendszer független, UI száltól nem függő animációk SpriteVisual Szín kitöltés Kép kitöltés D2D/D3D tartalom Composition-DrawingImage AnchorPoint Hátlap láthatóság Alap XAML interop Szín effektek Kontraszt Szürkeárnyalat Gamma eltolás Színárnyalat eltolás … Keyframe-es animációk Expression animációk Operátorok! Szín animációk Quaterniók 3 fő része van a composition api-nak

Visual objektum Windows Composition Visual Tree Composition Visual Target CompositionObject Tulajdonságai Statikusan megadva Animációhoz kötve Alap pozicionálás Eltolás a szülőhöz vagy az ablakhoz képest Kivágás (Clipping) Transzformációk 2D és 3D egyaránt Fa felépítés Raszterizált tartalmak megjelenítése Visual Visual Visual Visual ContainerVisual Tulajdonságok felsorolása. … CompositionObject -> compositorra referencia, Visual adja az alapokat, Containernek lehet gyereke, Sprite-nak brush-ja… Brush Brush SpriteVisual Windows Composition Visual Tree Composition Visual hierarchia

Effektek Gazdag UI: Blending és Composite módok Animálhatóság: Szinte minden effekt tulajdonság animálható (pl. színtelítettség mértéke) Flexibilitás: Testreszabás, és sorba kötés Konzisztencia: Ugyanazt az effekt leírást használjuk képekhez, grafikákhoz és akár videókhoz Teljesítmény: Válogatott effektek a nagyon reszponzív (60FPS+) eredményekhez, sok objektumon Win2D megemlítése, descriptionök onnan

Keyframe animációk Idő alapú animáció “kulcskockák” alapján Easing funkciók: Lineáris vagy Bézier görbék alapján Változatos típusú tulajdonságok támogatása: Skalár Vector2/3/4 Quaterniók Több száz szimultán animációra optimalizálva Újrahasználhatóság fontos…, van completed event is

Példakód: // a _compositor és az _easing már adott var rectangle = ElementCompositionPreview.GetElementVisual(TopLeft); // nem lehet alább rectangle.Size.X / 2.0f, mert a Size XAML elemeknél 0,0 rectangle.CenterPoint = new Vector3(150.0f / 2.0f, 150.0f / 2.0f, 0.0f); var scaleAnimation = _compositor.CreateVector3KeyFrameAnimation(); scaleAnimation.Duration = TimeSpan.FromSeconds(3.0); scaleAnimation.IterationBehavior = AnimationIterationBehavior.Forever; scaleAnimation.InsertKeyFrame(0.0f, Vector3.One); scaleAnimation.InsertKeyFrame(0.5f, new Vector3(2.0f, 2.0f, 1.0f), _easing); scaleAnimation.InsertKeyFrame(1.0f, Vector3.One); rectangle.StartAnimation(nameof(rectangle.Scale), scaleAnimation);

Demo: Keyframe animációk és effektek

Expression animációk “Expression” = “Kifejezés”, azaz… Az animáció egy tulajdonság értékét egy matematikai funkció eredménye alapján határozza meg minden képkockára Nagyon könnyen készíthetünk: ragadós fejléceket, parallax animációkat, görgetés indikátorokat… Könnyen újrahasznosíthatóak Szintén több száz szimultán animációra optimalizálva Szintén újrahasználhatóság

Példakód var image = ElementCompositionPreview.GetElementVisual(Image); var compositor = image.Compositor; var sps = ElementCompositionPreview .GetScrollViewerManipulationPropertySet(ScrollViewer); var ea1 = compositor .CreateExpressionAnimation("sp.Translation.Y * parallaxModifier"); ea1.SetReferenceParameter("sp", sps); ea1.SetScalarParameter("parallaxModifier", 0.5f); image.StartAnimation("Offset.Y", ea1); Magic string 

Demo: Parallax scrolling demo

Némi mágia A Compositor mindig mindenről tudja, hogy hol van, ezért: Az animációk bármikor megállíthatóak, folytathatóak vagy akár futás közben kicserélhetőek Mindezt akadások nélkül Animációcsere esetén folyamatos átmenet a két állapot között Az animációk a Compositor szálban futnak: akár breakpointot is tehetünk a UI szál kódjába 

XAML és Composition Átjárás a két világ között: a Visual-ok segítségével <Grid> <WebView /> <Button /> </Grid> <ListView /> <SwapChainPanel /> < … /> < … /> Visual 8.1 hibák megemlítése: webview, swapchainpanel overlay lehetetlen volt - mostmár nem!

Átjárás Még kicsit gyerekcipőben ElementCompositionPreview.GetElementVisual() ElementCompositionPreview.GetElementChildVisual() ElementCompositionPreview.SetElementVisual() E… .GetScrollViewerManipulationPropertySet() A XAML elemek helyzete szinkronban marad a Composition-beli Visual párjuk helyzetével: működnek az interakciós események  A második pont annyira azért mégsem igaz…

A jövő Explicit animációk > implicit animációk? Kevesebb boilerplate Expression animációk “magic string”-ek nélkül Könnyebb XAML átjárás Több effekt (pl. Gaussian blur / blur behind ) A Compositor már most is OS szinten 1, szóval mi lenne ha a mindez nem csak appon belül működne?  Kiemelten lehet segíteni, én is írok libet, írjatok ti is.. 

További információk MSDN… nyilván  github.com/Microsoft/composition twitter.com/wincomposition WinComp@microsoft.com A csapat nagyon aktív GitHubon és Twitteren is, szóval írjatok bátran 

Q&A Kérdések? 

Köszönöm a figyelmet!