2010/2011 ősz Klár Gergely  A DirectX egy alacsonyszintű API gyűjtemény  Multimédiás alkalmazások futtatására, írására szolgál  Részei.

Slides:



Advertisements
Hasonló előadás
Sor láncolt ábrázolással
Advertisements

Osztály leszármaztatás
Grafikus felhasználó felület Windows alatt
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
C++ programozási nyelv Gyakorlat hét
Programozás III KOLLEKCIÓK 2..
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Objective- C Bereczki Gréta Tamara
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Dinamikus tömbök.
7. előadás (2005. április 12.) Láncolt lista File kezelés 1.
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek.
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Tömbök ismétlés Osztályok Java-ban Garbage collection
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Függvények, mutatók Csernoch Mária.
Mutatók, tömbök, függvények
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
A C++ programozási nyelvSoós Sándor 1/10 C++ programozási nyelv Gyakorlat - 5. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
A C++ programozási nyelvSoós Sándor 1/15 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
A C++ programozási nyelvSoós Sándor 1/12 C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
Számítógépes grafika OpenGL 1. gyakorlat.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Delphi programozás 8. ELŐADÁS ADO ActiveX Data Objects.
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
P ROGRAMOZÁS I/O műveletek. S YSTEM.C ONSOLE A programjainknak fontos része a felhasználóval való kommunikáció. Adatokat kell kérni tőle, vagy közölnünk.
Számítógépes grafika 3. gyakorlat.
2008/2009 tavasz Klár Gergely  A DirectX egy alacsonyszintű API gyűjtemény  Multimédiás alkalmazások futtatására, írására szolgál 
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
1 Add az APK-t! Add az APK-t! Automatizált apptesztelés 2013/10/13.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
DirectX9 empty project Szécsi László. Visual Studio Első indításkor C++ választása.
Environment mapping Szécsi László. Új osztály: Lab3EnvMap copy&paste: Lab2Trafo.h -> Lab3EnvMap.h copy&paste: Lab2Trafo.cpp -> Lab3EnvMap.cpp copy&paste:
DirectX9 empty project Szécsi László. Project létrehozása Microsoft DirectX SDK (August 2008) telepítése Start Menu \ Microsoft DirectX SDK (August 2008)\
Visual Basic 2008 Express Edition
Számítógépes grafika DirectX 2. gyakorlat. Emlékeztető Előző órán áttekintettük a szükséges WinAPI- s alapokat Illetve röviden beletekintettünk a félév.
Java programozási nyelv Tömbök
Java programozási nyelv Metódusok
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Objektum orientált programozás 3. Függvények Nagy Szilvia.
Objektum orientált programozás
2. gyakorlat DirectX 2007/2008 tavasz Klár Gergely
Objektumvezérelt rendszerek tervezése
Számítógépes grafika gyakorlat DirectX segítség A következő dolgokra van szükség: CG Toolkit: 
Programozás III KIVÉTEL.
Objektumorientált alapjai ISZAM III.évf. részére Bunkóczi László.
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Ficsor Lajos A C++ programozási nyelv I. CPP1/ 1 Osztály és objektum fogalma.
Számítógépes grafika gyakorlat: DirectX 2007/2008 tavasz Klár Gergely
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
Opencms modul fejlesztés Krizsán Zoltán. Modulok fajtái Nincs előírás, csak tipikus tennivalók: –Content type: új típus(oka)t vezet be. –Template: új.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Programozás III JPA.
Neumann János Informatikai Kar
a programegységek között
Neumann János Informatikai Kar
Neumann János Informatikai Kar
A CLIPS keretrendszer
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Előadás másolata:

2010/2011 ősz Klár Gergely

 A DirectX egy alacsonyszintű API gyűjtemény  Multimédiás alkalmazások futtatására, írására szolgál  Részei ◦ DirectX Audio ◦ DirectX Graphics ◦ DirectX Input

 A fejlesztéshez DirectX SDK szükséges  Ingyenesen letölthető:  Használható „hagyományos” C++, illetve a.Net 1.1-es nyelvek bármelyikével

 A DirectX objektumai a COM platformon keresztül érhetők el  A megvalósítás rejtett, csak felületet kapunk  Sok kisebb interface-t érhetünk el egy nagy objektumok helyett  Nem használhatók a hagyományos C++ -os létrehozási és megszüntetési módszerek

 Minden COM metódus visszatérési érteke HRESULT típusú  Ennek az értéke jelzi, hogy a művelet sikeresen befejeződött-e vagy sem  A COM objektumokat interface-re mutató pointereken keresztül érhetjük el  Az egyes I…* pointerekhez általában tartozik LP… és P… elnevezés is, a kettő mindenben teljesen megegyezik  Pl. typedef struct IDirect3DDevice9 *LPDIRECT3DDEVICE9, *PDIRECT3DDEVICE9;

 SUCCEEDED(…), igaz ha a kapott HRESULT >= 0, azaz sikert jelez  FAILED(…), a fenti ellentéte  V(…), sikertelenség esetén feldob egy ablakot a hiba helyéről és részleteiről  V_RETURN(…), mint a V, de kiugrik az aktuális függvényből  SAFE_RELEASE(…), DX objektumok kényelmes felszabadítására, fontos: mindig 0 kezdőértékkel használjuk a pointereket, amiket ezzel szabadítunk fel

 Ez tartalmazza a Direct3D-t, amivel foglalkozni fogunk

 Bármilyen programban a D3D használata egy IDirect3D9 objektum létrehozásával kezdődik  Ezzel lekérhetők az elérhető eszközök, és létrehozható az IDirect3DDevice9 egy példánya  Az IDirect3DDevice9 biztosítja a kapcsolatot a videokártya és a programunk között  Ennek a metódusaival történik majd a tényleges képalkotás

 A Direct3D a képalkotáshoz szükséges adatokat erőforrásoknak (resources) nevezi  Ezeket memória kezelésük szerint a következő típusúak lehetnek ◦ DEFAULT: az erőforrás típusától függően kerül a rendszer vagy a videokártya memóriájába ◦ MANAGED: mindkét memóriában lesz példány, a rendszer automatikusan újratölti, ha a videokártya memóriájából elveszik ◦ SYSTEMMEM: a rendszermemóriában lesz elhelyezve, a Direct3D device-ok általában nem tudnak hozzáférni az ilyen erőforrásokhoz

 Device létrejötte és megszűnése: ilyenkor érdemes az előre ismert MANAGED erőforrásokat lefoglalni illetve elengedni  Reset Device: a létrehozás utáni és az eszköz visszaszerzése utáni állapot, a DEFAULT erőforrásokat itt kell [újra] lefoglalni  Lost Device: az eszköz elvesztése előtt következik be, tipikusan ALT+TAB, vagy minimalizálás hatására. A DEFAULT erőforrásokat itt kell felszabadítani  Felhasználói események

 Direct3D alkalmazások fejlesztését megkönnyítő könyvtár  A DirectX SDK része, az SDK példaprogramjai ezt használják  Leegyszerűsíti az ablak és eszköz létrehozást  Eseménykezelő függvényeket ad a felsorolt és további eseményekhez, mint például a rajzolás és új kép kezdete

 „Házi” objektumorientált keretrendszer  A DXUT-re épül  Fogadja annak minden eseményét  Saját alkalmazás ebből származtatva készíthető  A félév során a DirectX-es programokat ezzel készítjük az órákon

1. onCreateDevice 2. onResetDevice 3. DXUT main loop ◦ Futásközben 1.onFrameMove 2.onFrameRender ◦ Átméretezés, minimalizálás, ALT+TAB hatására 1.onLostDevice 2.onResetDevice ◦ Bármikor  msgProc  keyboardProc  mouseProc 4. onLostDevice 5. onDestroyDevice

 onCreateDevice ◦ D3DPOOL_MANAGED erőforrások létrehozása  onDestroyDevice ◦ onCreateDevice-ban létrehozott erőforrások felszabadítása  onResetDevice ◦ D3DPOOL_DEFAULT erőforrások létrehozása  onLostDevice ◦ onCreateDevice -ban létrehozott erőforrások felszabadítása

 onFrameMove ◦ Logikai feladatok (számítás, file-kezelés, kommunikáció, stb.)  onFrameRender ◦ Rajzolás

 keyboardProc ◦ Billentyűzet kezelés  mouseProc ◦ Egér kezelés  msgProc ◦ Bármilyen Windows-os üzenet kezelése

1. Saját osztály leszármaztatása 2. Használt metódusok felüldefiniálása 3. Header include-olása az EmptyProject.cpp -be  #include ”Sample1.hpp” 4. Objektum létrehozása WinMain -ben  myFrameWork = new Sample1();

 DXFrame(const WCHAR *windowTitle, int width, int height, bool windowed)  Minden paraméternek van default értéke  Leszármazott konstruktora megadhat más értékeket is