dX-programmierung.pdf
(
300 KB
)
Pobierz
Angewandte DirectX-
Programmierung
Sebastian Böhm
Bundesgymnasium und Bundesrealgymnasium Wien 23
Vienna Bilingual Schooling
Draschestraße 90-92
Angewandte DirectX-
Programmierung
Fachbereichsarbeit aus Informatik
eingereicht von:
Sebastian Böhm, Klasse 8B
bei:
Mag. Karin Reinbacher
2001/2002
Wien, 13. Februar 2002
INHALTSVERZEICHNIS
KAPITEL 1 VORWORT...................................................................... 4
Inhalt dieser Arbeit.......................................................................................................................................... 4
Motivation für die Themenwahl ................................................................................................................... 4
KAPITEL 2 GRUNDLAGEN .............................................................. 6
Was ist DirectX? ............................................................................................................................................... 6
Die Geschichte von DirectX ........................................................................................................................... 6
DirectX-Komponenten .................................................................................................................................... 9
Vor - und Nachteile von DirectX.................................................................................................................10
KAPITEL 3 DIRECTDRAW.............................................................. 12
Grafik-Rendering unter Windows .............................................................................................................12
Die Architektur von DirectDraw ...............................................................................................................14
DirectDr aw initialisieren..............................................................................................................................15
DirectDrawCreate()......................................................................................................................................15
QueryInterface() ...........................................................................................................................................16
SetCooperativeLevel() .................................................................................................................................16
SetDisplayMode() ........................................................................................................................................17
Verwendung von DirectDraw Surfaces ....................................................................................................19
CreateSurface() .............................................................................................................................................21
DDSURFACEDESC2 .................................................................................................................................21
DDCOLORKEY...........................................................................................................................................23
DDSCAPS2...................................................................................................................................................25
DirectDraw Offscreen Surfaces ..................................................................................................................28
GetDC()..........................................................................................................................................................29
ReleaseDC() ..................................................................................................................................................29
Blt() .................................................................................................................................................................30
CreateClipper() .............................................................................................................................................31
SetClipList() ..................................................................................................................................................32
RGNDATA....................................................................................................................................................32
RGNDATAHEADER..................................................................................................................................32
Flip() ...............................................................................................................................................................33
KAPITEL 4 DIRECTX AUDIO.......................................................... 38
Digitale Sounds Vs. Sythesizersounds .......................................................................................................38
Die Architektur von DirectX Audio..........................................................................................................39
DirectX Audio-Programmierung ...............................................................................................................40
InitAudio() .....................................................................................................................................................40
SetSearchDirectory()....................................................................................................................................42
2
Sebastian Böhm
Angewandte DirectX-Programmierung
LoadObjectFromFile().................................................................................................................................42
PlaySegment() ...............................................................................................................................................43
DirectX Audio Shutdown .............................................................................................................................44
KAPITEL 5 DIRECTINPUT .............................................................. 47
Grundlegendes ................................................................................................................................................47
Die Architektur von DirectInput ...............................................................................................................47
DirectInput-Programmierung ....................................................................................................................48
DirectInput8Create()....................................................................................................................................48
CreateDevice() ..............................................................................................................................................49
SetDataFormat() ...........................................................................................................................................50
SetCooperativeLevel() .................................................................................................................................50
Acquire() ........................................................................................................................................................51
GetDeviceState() ..........................................................................................................................................51
DIMOUSESTATE.......................................................................................................................................52
Shutdown von DirectInput ..........................................................................................................................53
KAPITEL 6 SCHLUSSWORT .......................................................... 57
Zukunft von DirectX .....................................................................................................................................57
KAPITEL 7 ANHANG ....................................................................... 58
Anhang A: GPL ..............................................................................................................................................58
Anhang B: Sourcen ........................................................................................................................................64
GameCon
(Game Console)
Echtzeit-Anwendungscontainer.....................................................64
blent
(Blitter Entity)
Grafikengine
.........................................................................................................66
sober (Sound
Buffer)
Soundengine.....................................................................................................71
dice
(DirectInput Class Entity)
DirectInput-Wrapper
.....................................................................74
Anhang C: Einige in DirectInput verfügbare DIK-Codes ..................................................................79
Anhang D: Literaturverzeichnis ................................................................................................................ 80
3
Sebastian Böhm
Angewandte DirectX-Programmierung
Kapitel 1:
Vorwort
Kapitel 1
Vorwort
Inhalt dieser Arbeit
Diese Arbeit setzt sich mit dem Thema „Angewandte DirectX-Programmierung“
auseinander, was bedeutet, dass die Beschäftigung mit dem Thema „DirectX“ eine sehr
praxisnahe sein soll. In je einem eigenen Kapitel werden die Grundlagen der Benutzung
der Schnittstellen DirectDraw, DirectSound und DirectInput erläutert, wobei es zu jedem
Kapitel auch ein oder mehrere Sourcecode-Beispiel(e) gibt, die die genaue Art der
Benutzung demonstrieren. Weiters befinden sich im Anhang die Quellcodes zu weiteren
von mir verfassten Anwendungen, die die Benutzung von DirectX erklären bzw.
erleichtern sollen, und die ich parallel zur Verfassung dieser Fachbereichsarbeit
programmiert habe. Dies wären im Detail: Eine Container-Anwendung für Echtzeit-
Multimedia -Anwendungen, eine DirectDraw-Grafikengine, ein DirectSound-Wrapper
sowie ein DirectInput Wrapper. Abgesehen davon habe ich ein Tetris-artiges Spiel namens
„snip“ programmiert, das als Beispiel für die Benutzung meiner Engine bzw. meiner
Wrapper dienen soll. Alle erwähnten Utility-Sourcen sind im Anhang des Textes
abgedruckt, während der Quellcode meines Spiels nur auf der unten erwähnten Seite
abrufbar ist, da er den natürlichen Umfang einer Fachbereichsarbeit sprengen würde.
Diese Fachbereichsarbeit, sowie die Quellcodes meiner Zusatzprogramme liegen diesem
Dokument auf CD-ROM bei und sind unter dem URL
http://snip.sourceforge.net
erhältlich.
Während die Demo-Programme (am Ende jedes Kapitels) Public -Domain sind, habe ich
alle anderen Quellcodes unter die
Gnu Public License
(siehe Anhang A) gestellt.
Motivation für die Themenwahl
Da ich mich schon seit geraumer Zeit für Computer interessiere, war es für mich von
vornherein klar, dass zu meinen Maturafächern Informatik gehören würde. Hierbei kam
mir meine Begeisterung für das Programmieren und den Umgang mit Computern im
Allgemeinen zugute. Im Besonderen interessiere ich mich für Multimedia -Anwendungen
und daher fasste ich den Entschluss, DirectX als Thema meiner Fachbereichsarbeit zu
wählen.
4
Sebastian Böhm
Angewandte DirectX-Programmierung
Plik z chomika:
jacekplacekjacek
Inne pliki z tego folderu:
DirectX. Rendering w czasie rzeczywistym - Kelly Dempski [Helion].pdf
(160325 KB)
DirectX 3D Graphics Programming Bible.pdf
(53946 KB)
3d_game_programming_with_DirectX11.pdf
(24480 KB)
Direct3D.ShaderX.Vertex.and.Pixel.Shader.Tips.and.Tricks_Wolfgang.F.Engel_Wordware.Pub_2002.pdf
(10514 KB)
Introduction To 3D Game Programming With DirectX 9.0 (2003).pdf
(6775 KB)
Inne foldery tego chomika:
Arduino
Asembler
C++
GDB
Gdi
Zgłoś jeśli
naruszono regulamin