3. グラフィックスの初期化
-節の内容-
ウィンドウの表示の次はグラフィックスの初期化です。 -サンプルコード- //----------------------------------------------------- // ファイル名 : main.cpp // 更新日 : 2011.11.12 (Sat) 9:33 // 作成者 : ぬっち // 概要 : 「3. グラフィックスの初期化」のサンプルファイル。 //----------------------------------------------------- //----------------------------------------------------- // インクルード //----------------------------------------------------- #include <MAPIL/MAPIL.h> //----------------------------------------------------- // メイン関数 //----------------------------------------------------- int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow ) { // MAPILライブラリの機能を使えるようにする。 using namespace MAPIL; // GUIデバイスの作成。 IGUIDevice guiDev = CreateGUIDevice( GUI_API_WIN32API ); // GUIファクトリーの作成。 GUIFactory* pGUIFactory = CreateGUIFactory( guiDev ); // グラフィックスデバイスの作成 IGraphicsDevice graphicsDev = CreateGraphicsDevice( GRAPHICS_API_DIRECT3D ); // グラフィックスファクトリーの作成 GraphicsFactory* pGraphicsFactory = CreateGraphicsFactory( graphicsDev ); // ウィンドウリソースの取得。 IWindow window = pGUIFactory->CreateWnd( TSTR( "Window" ) ); // グラフィックスコンテキストの取得。 IGraphicsContext graphicsContext = pGUIFactory->CreateGraphicsContext( TSTR( "Graphics Context" ) ); // GUIデバイスのインスタンス化 guiDev->Create(); // ウィンドウのインスタンス化。 window->Create( TSTR( "MAPIL Sample" ), 640, 480 ); // グラフィックスコンテキストのインスタンス化。 graphicsContext->Create( TSTR( "Graphics Context" ), 640, 480, window ); // グラフィックスデバイスのインスタンス化 graphicsDev->Create( graphicsContext ); // グラフィックスコントローラの取得 IGraphicsController graphicsController = pGraphicsFactory->CreateGraphicsController( TSTR( "Graphics Controller" ) ); // グラフィックスコントローラのインスタンス化 graphicsController->Create( graphicsContext ); // メインループ while( !window->ProcessMessage() ){ // 描画開始 graphicsController->BeginRendering(); // 描画処理をここに記述する // 描画修了 graphicsController->EndRendering(); } // 後始末。 SafeDelete( pGraphicsFactory ); SafeDelete( pGUIFactory ); return 0; }
ソースコード -サンプルコードの説明-
グラフィックス機能を使うにあたって、追加されたコードは多いですが、基本的な流れはウィンドウの作成とほぼ同じです。 -実行結果-
上記のサンプルを実行すると、前回の真っ白なウィンドウとは違って真っ黒な画面が表示されます。 |