Usporedba Direct3D i OpenGL

Uvod u Windows API

U ovom dijelu se opisuje programiranje korištenjem Windows API-ja. Programiranje Direct3D aplikacije započinje kreiranjem forme u koju će se kasnije uključiti Direct3D. U nastavku je opisan "Hello World" primjer za korištenje Windows API-ja kao Win32 aplikacije kreirane u C++ programskom jeziku.

Win32 console vs. Win32 desktop aplikacija

Razvoj Direct3D aplikacije počinjemo kreiranjem Win32 prozora. U C++ moguće je kreirati konzolne i desktop aplikacije. Sljedeći isječak koda je kod za konzolnu aplikaciju. Ograničenje konzolne aplikacije je slaba suradnja s windowsima, upravljanje događajima, u nju nije moguće učitati Direct3D jer se radi o tekstualnom sučelju.

#include<iostream.h>

int main(){
	cout << Hello World << endl;
	return 0;
}

Zbog toga je potrebno kreirati desktop aplikaciju. U C++-u se to radi primjenom Windows APIja. To je teži način programiranja u odnosu na C# ili JAVA-u, ali je ohrabrujuća činjenica da se za Direct3D koristi isti kostur u svakoj Win32 aplikaciji. U Visual Studio je potrebno kreirati novi prazni Win32 projekt za C++ programski jezik gdje će se u source folderu kreirati novi C++ datoteka sa WinMain funkcijom.

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nShowCmd)
{
    MessageBox(NULL,
               L"Hello World!",
               L"Just another Hello World program!",
               MB_ICONEXCLAMATION | MB_OK);
    return 0;
}

Ovaj Win32 program prikazuje dijalog s porukom "Hello World". Za razliku od konzolne aplikacije, Win32 aplikacija za forme počinje s korištenjem datoteke zaglavlja windows.h. Ne koristi se main funkcija već WinMain funkcija koja se deklarira kao WINAPI funkcija (funkcija koja koristi Windows API). Značenje pojedinih parametara funkcija moguće je pročitati u MSDN dokumentaciji za Windows API.   

Izvornu datoteku za gornji program možete preuzeti klikom ovdje.

Slijedi: Kreiranje prozora s Windows API