4. 図形の描画
-節の内容-
前節で描画の準備が整いました。 -サンプルコード- //----------------------------------------------------- // ファイル名 : main.cpp // 更新日 : 2011.11.13 (Sun) 8:18 // 作成者 : ぬっち // 概要 : 「4. 図形の描画」のサンプルファイル。 //----------------------------------------------------- //----------------------------------------------------- // インクルード //----------------------------------------------------- #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 ); // Canvas2Dの取得 ICanvas2D canvas = pGraphicsFactory->CreateCanvas2D( TSTR( "Canvas 2D" ) ); // Canvas2Dのインスタンス化 canvas->Create(); // メインループ while( !window->ProcessMessage() ){ // 描画開始 graphicsController->BeginRendering(); // 描画処理をここに記述する // 図形描画の開始 canvas->Begin(); // 点の描画 canvas->DrawPoint( 20, 20, ColorARGB < float > ( 1.0f, 0.0f, 1.0f, 0.0f ), 1.0f ); // 線の描画 canvas->DrawLine( 300, 300, 400, 400, ColorARGB < float > ( 1.0f, 1.0f, 1.0f, 1.0f ), 1.0f ); // 円の描画 canvas->DrawCircle( 100, 100, 5.0f, ColorARGB < float > ( 1.0f, 1.0f, 0.0f, 1.0f ), 1.0f ); // 四角形の描画 canvas->DrawRect( 200, 200, 250, 250, ColorARGB < float > ( 1.0f, 0.0f, 0.0f, 1.0f ), 1.0f ); // 図形描画の終了 canvas->End(); // 描画修了 graphicsController->EndRendering(); } // 後始末。 SafeDelete( pGraphicsFactory ); SafeDelete( pGUIFactory ); return 0; }
ソースコード -サンプルコードの説明-
今回追加されたソースコードは今までのときと異なり、直感的でわかりやすいと思います。 -実行結果-
上記のサンプルを実行すると、真っ黒な画面の上に、緑色の点(1 pixel分なのでみにくいかもしれません。)、白色の線、紫色の円、青色の四角形が描画されていることがわかると思います。。 |