トップ «前の日(06-15) 最新 次の日(06-17)» 追記

SewiGの日記

2004|01|04|05|06|07|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|

2005-06-16 [木]

[Other] 生協で大人買いなんて

うまい捧大学生協で駄菓子を大人買いする友人がいたので、横から見てました。


2006-06-16 [金]

[Programming][C#] C#で2D Programming on Direct3D (1)

Managed DirectXを使えばC#でもDirectXが扱えます。.NET Frameworkのおいしい仕様とDirectXの豊富な機能が使えるのは便利。

環境構築

  1. VisualStudio 2005や.NET Frameworkといった開発環境をインストール
  2. DirectX SDKの最新版をインストール
  3. PATHを通す

DirectX SDKをインストールするときにVisualStudioの設定も行われるので順番は間違えないようにしましょう。PATHは例えば、「C:\Program Files\Microsoft Visual Studio 8\VC\bin」を追加しておくと、コマンドプロンプトでvcvars32を実行するだけで、いろいろと設定できます。

C#でDirectXの初期化

→ ソースコード (csmdx_init.zip)

まず、上記のソースコードをコンパイルして実行してみましょう。C#でManaged DirectXのコンパイルをする方法は次の通りです。

  • コマンドラインでコンパイルする場合
> csc /t:winexe /lib:"C:\WINDOWS\Microsoft.NET\DirectX for Managed Code\1.0.2902.0" /r:Microsoft.DirectX.Direct3D.dll,Microsoft.DirectX.dll MainApplication.cs Window.cs

"C:\WINDOWS\Microsoft.NET\DirectX for Managed Code\1.0.2902.0"の部分は各自の環境に書き換えてください。「/t:winexe」でコンパイルしたら、GUIプログラミングでコマンドプロンプトが出ません。

  • VisualStudio 2005の場合

プロジェクトの「参照の追加」で、「.NET」タブから「Microsoft.DirectX.Direct3D.dll」と「Microsoft.DirectX.dll」を選択します。それからプロジェクトをビルドします。

実行ファイルを起動して、白いウィンドウが表示されれば成功です。

解説

まずは、名前空間に以下を追加。

using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

それから、Deviceオブジェクトの生成に必要なパラメータはPresentParametersです。PresentParameters.Windowedをfalseにするとフルスクリーンモードになります。PresentParameters.SwapEffectはいろいろな表示アルゴリズムから最適なものが選択されます。PresentParameters.BackBuffer〜でバックバッファのパラメータが設定できます。

パラメータが用意できたら、Deviceオブジェクトの生成。グラフィックカードの種類によってモードが変わります。ハードウェアを利用する方法から順に生成を試みます。

あとは、OnPaint()で描画を行います。次回、画像を描画する方法について考えます。

Deviceオブジェクトは使い終わったらDisposeで破棄します。


2007-06-16 [土]

[Other] Vista DVDのホログラム

Windows VistaのDVDラベルに謎の三人組のホログラムがあって、それはデザインチームの写真でした、という話。

偽造しにくくするというか、透かしというか。別に写真が入っていようが動作に問題ないんだから、「この写真は何だ!?」とかいっていちゃもんつけてるひとがいるってのが驚きです。遊び心遊び心。


Copyright © 2004-2008 SewiG All rights reserved.