Leírás
A számítástechnika iránt komolyabban érdeklődők közül biztosan sokan gondoltak már arra, hogy milyen jó lenne grafikus programozási ismereteiket, megoldásaikat a számítógépekben megtalálható videokártyák (GPU) számítási kapacitásának bevonásával elvégezni. Erre napjainkban számos lehetőség van programozási szempontból, ám a legtöbbjük megtanulása tetemes időt és energiát igényel. Felmerül a kérdés: nem lehetne egyszerűbben? Nos, a válasz: igen! A Microsoft Direct2D programozási felülete pontosan ezt az igényt hivatott és képes is lefedni. Könyvünk a modern GPU-k által gyorsított grafika programozásához nyújt bevezetőt, Microsoft Windows asztali gépes platformon, C++ programozási nyelven. A Direct2D professzionális eszközkészletet kínál grafika programozásához, mindezt azonban egyszerű, könnyen tanulható módon és ami a legfontosabb: DirectX alapokon. Kiadványunk ennek az elsajátításához nyújt hathatós segítséget. A függvények, forráskódok magyarázata mellett a könyv gazdag letölthető melléklettel is rendelkezik, mely a bemutatott technikák egyéni, otthoni körülmények között elvégezhető kipróbálását könnyíti meg. Sok más mellett olyan kérdésekre kap választ az olvasó, mint hogy hogyan lehet meglévő alkalmazásainkba integrálni Direct2D alapú megjelenítést, hogyan lehet egyszerű geometriai alakzatokat hardveres gyorsítással megjeleníteni, vagy éppen tetszőleges grafikát akár háromszögekre lebontva kirajzoltatni a videokártyával. A Direct2D ugyan alapvetően "csak" a kétdimenziós megjelenítésről szól, a háromdimenziós megjelenítés használatának mikéntjét is bemutatjuk Direct2D segítségével, utat nyitva ezzel látványos és gyors, térbeli megjelenítést kínáló alkalmazások kifejlesztéséhez is. A könyv ismeretanyagának elsajátításával az olvasó képes lesz önállóan olyan, grafikus megjelenítést használó alkalmazásokat készíteni, melyek kihasználják a modern GPU-kban rejlő óriási teljesítménypotenciált.
A könyv melléklete letölthető innen: http://www.bbs.hu/letoltes/d2d.zip
Tartalomjegyzék:
TARTALOMJEGYZÉK 3
1. Előszó 5
2. A Direct2D madártávlatból 8
2.1. Mi az a Direct2D? 8
2.2. Miért Direct2D? 9
2.3. Mit csinál a Direct2D? 10
2.4. Mire használhatjuk a Direct2D-t? 10
2.5. Milyen gyors a Direct2D? 10
3. A Direct2D és a Visual Studio 12
3.1. A fejlesztőeszköz kipróbálása 14
3.2. Régi típusú függvények - figyelmeztetés kikapcsolása 21
3.3. Külső könyvtárak hozzáadása projektekhez 21
3.4. Hibakeresés Visual Studioban 22
4. Direct2D alapok 24
4.1. Fejlécállományok 24
4.2. A rajzolás folyamata 25
4.2.1. Direct2D Koordinátarendszer 28
4.2.2. Erőforrások kezelése 28
4.3. Egy egyszerű Direct2D alkalmazás 29
5. A rajzolás alapjai Direct2D-ben 34
5.1. A rajzterület 35
5.2. A képernyő törlése 35
5.3. Alapvető képernyőadatok kezelése 36
5.3.1. Bitképmérethatár lekérdezése 36
5.3.2. Pixelformátum lekérdezése 36
5.3.3. Pixelméret lekérdezése 37
5.3.4. RenderTarget méretének lekérdezése 38
5.3.5. DPI lekérdezése 38
5.3.6. DPI megváltoztatása 38
5.3.7. Élsimítás beállítása 39
5.3.8. Szöveg élsimításának beállítása 39
5.4. Színek megadása 40
5.5. Ecset (Brush) használata 40
5.5.1. Egyszerű ecset 41
5.5.2. Átmenetes ecset 42
5.5.3. Bitkép alapú ecset 47
5.5.4. Ecset átlátszósága 53
5.6. Vonaltulajdonságok beállítása 53
5.7. Flush 55
5.8. Kivágás megadása 56
5.9. Transzformációk alkalmazása 56
5.10. Pontok rajzolása 59
5.11. Vonalrajzolás 59
5.12. Ellipszis rajzolása 60
5.13. Négyzet rajzolása 61
5.14. Lekerekített sarkú négyzet rajzolása 63
5.15. Szöveg kirajzolása 65
5.15.1. További formázási metódusok 68
5.16. Bitképek kezelése 69
6. Haladó rajzolási technikák 74
6.1. Összetett geometria rajzolása 74
6.2. Meshek kezelése és tesszelláció 78
6.2.1. Szoftveres tesszelláció 82
6.2.2. Vonalrajzolás háromszögekkel 84
6.3. GeometrySink vagy Mesh? 84
6.3.1. Különböző színű háromszögek 84
6.3.2. Szupergyors rajzolás háromszögekkel 85
6.4. Rétegek használata 86
6.4.1. Rétegek transzformációja 89
6.4.2. Speciális esetek, effektezés 89
6.5. Képkivágás gyorsabban 90
6.6. Off-screen renderelés megvalósítása 92
6.7. A Direct3D és a Direct2D összekapcsolása 94
6.8. Teljesítményjavítás 98
6.8.1. Alapértelmezett képernyőtörlés felülírása 98
6.8.2. BeginDraw-EndrDraw hívások minimalizálása 99
6.8.3. Off-screen renderelés 99
7. Háromdimenzió és a Direct2D 100
7.1. Hátsólap eldobás 104
8. Záró gondolatok 107
9. Függelék 108
10. Ajánlott irodalom 111