FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

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小説
最後の時の夢

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

ボロボロのガタガタ

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

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

ひろかずのブログ

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

この人とブロともになる

RSSリンクの表示
リンク
アクセスランキング
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。