DX2D のプロジェクト

自動生成から XAML を外したプロジェクトを作成します。

プロジェクトの構築は結構面倒で、圧縮形式で提供することにします。
Visual Studio Express 2012 for Windows 8 で作成したプロジェクトです。
Windows 8.1 以降では動かないようなのでアップロードを廃止します。
XAML を外した Direct2D の Down Load

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの作成

  1. 自動生成された Direct2D のプロジェクトには XAML が組み込まれています。
    XAML を利用して画像などを描画するときは便利なのですが、時には邪魔になることがあります。
    そこで Direct3D のプロジェクトと同じように XAML を外したプロジェクトを作成することにしました。
    Microsoft のサンプルプログラムの多くは XAML が組み込まれていないので、これに対応する目的も持っています。
    XAML を外したプロジェクトの構築は結構面倒で、圧縮形式で提供することにします。
  2. ページ先頭のプロジェクト(ZIP で圧縮)をダウンロードして、実行してみて下さい。
    Auto2D TEXT の矩形描画と同じように赤色の矩形が描画されます。
  3. Main.cpp を選択してソースコードを表示して下さい。
    main() が最初に起動されるメソッドで、 directXAppSourceを引数にして、CoreApplication::Run()を実行します。
    ref new で生成される directXAppSource もこのメソッドの近くで定義しています。
    [Platform::MTAThread]
    int main(Platform::Array<Platform::String^>^)
    {
        auto directXAppSource = ref new DirectXAppSource();
        CoreApplication::Run(directXAppSource);
        return 0;
    }
    
  4. Main::Run() メソッドから、矩形を描画する Render() メソッドを呼び出します。
    void Main::Run()
    {
        Render();
        Present();
    
        m_window->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessUntilQuit);
    }
    
  5. 矩形を描画する Render() メソッドです。
    極力シンプルに仕上げるために、BackSurface(FrontSurface?)に直接描画しています。
    詳細は Auto2D TEXT を参照して下さい。
    void Main::Render()
    {
        m_d2dContext->BeginDraw();
    
        m_d2dContext->Clear(D2D1::ColorF(D2D1::ColorF::CornflowerBlue));
        D2D1_RECT_F rectangle1 = D2D1::RectF(200.0f, 200.0f, 600.0f, 400.0f);
        m_d2dContext->FillRectangle(&rectangle1, m_redBrush.Get());
    
        HRESULT hr = m_d2dContext->EndDraw();
        if (hr != D2DERR_RECREATE_TARGET)
        {   DX::ThrowIfFailed(hr);
        }
    }
    

超初心者のプログラム入門(DirectX Store)