DirectX9で描画したものをWPFに表示

using System;

using DX = SharpDX;
using DX3D9 = SharpDX.Direct3D9;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows;
using System.Windows.Media.Imaging;
using System.Windows.Controls;

namespace Project1
{
static class Program
{
[STAThread]
static void Main()
{
//画像ファイル
const string imageFile = "test1.png";

//WPFの設定
var window = new Window();
var content = new Image();
var image = new D3DImage(); //DirectX9で描画したものを表示するのに必要

//Direct3D9の設定
var direct = new DX3D9.Direct3D();
var pp = new DX3D9. PresentParameters(300, 300);
var device = new DX3D9.Device(direct, 0, DX3D9.DeviceType.Hardware, IntPtr.Zero, DX3D9.CreateFlags.HardwareVertexProcessing, pp);
var sprite = new DX3D9.Sprite(device);

var texture = DX3D9.Texture.FromFile(device, imageFile);

window.MouseDown += (sender, e) =>
{
//DirectX9で描画
device.BeginScene();
sprite.Begin(DX3D9.SpriteFlags.AlphaBlend);
device.Clear(DX3D9.ClearFlags.Target, DX.Color.Black, 0, 0);

sprite.Draw(texture, DX.Color.White);

sprite.End();
device.EndScene();
device.Present();
//DIrectX9での描画はここまで

//DirectX9で描画したものをWPFで表示
image.Lock();
image.SetBackBuffer(D3DResourceType.IDirect3DSurface9, device.GetBackBuffer(0, 0).NativePointer);
image.AddDirtyRect(new Int32Rect(0, 0, 300, 300));
image.Unlock();

};

content.Source = image;
window.Content = content;
window.ShowDialog();
}
}
}
スポンサーサイト
プロフィール

みにおん

Author:みにおん
c#でゲームを作る人です
web小説なども書いています

低学歴で馬鹿なのパート従業員
ですが、よろしく

相互リンク・ブロとも募集中です
コメントなどご自由にどうぞ

ホームページを見る
Twitter(個人ページ)
PIXIV(個人ページ)

○自作ゲーム一覧
ふりーむ
フリーゲーム夢幻
100%ふりげストア
ゲームモリモリ

・web小説
最後の時の夢

よろしければ、1日1クリックお願いします
にほんブログ村 ゲームブログ 無料ゲームへ
にほんブログ村

にほんブログ村 小説ブログ ライトノベル(小説)へ
にほんブログ村

最新記事
最新コメント
月別アーカイブ
カテゴリ
ブロとも一覧

誰よりも楽しく普通のこと

ゲームアプリ、ラインスタンプ開発日記(MMA Bros)

ミリオネアインテリジェンス!!!!! 資格編

ひろかずのブログ

srpの路地裏
検索フォーム
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示
リンク
アクセスランキング
QRコード
QR