DirectX9での矩形描画


using System;
using System.Xml;

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;
using System.Runtime.InteropServices;

namespace Project1
{

//四角形を描画するのに必要な構造体
struct DrawingData
{
//X値
public float X;
//Y値
public float Y;
//Z値。今回使いません
public float Z;
//色の数値
public int Color;

//描画用データの指定
public DrawingData(float x, float y, float z, DX.Color color)
{
this.X = x;
this.Y = y;
this.Z = z;
this.Color = color.ToBgra();
}
}


static class Program
{
[STAThread]
static void Main()
{
//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);

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


//描画する関数
//第一引数に、DX3D9.PrimitiveType.TriangleFanを指定し、
//第二引数に、2を指定することで、矩形を描画できる
//
//第三引数には、描画データを指定した配列を代入
device.DrawUserPrimitives(DX3D9.PrimitiveType.TriangleFan, 2, new DrawingData[]
{
//四角形を描画
//
//今回は灰色の四角形を描画
//始点が100,100で、横幅は100、縦幅は100の矩形
new DrawingData(100, 100, 0, DX.Color.Gray),
new DrawingData(200, 100, 0, DX.Color.Gray),
new DrawingData(200, 200, 0, DX.Color.Gray),
new DrawingData(100, 200, 0, DX.Color.Gray),
});


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