• R/O
  • HTTP
  • SSH
  • HTTPS

CsWin10Desktop3: Commit

Visual C# 7.0, Windows10 Desktop App


Commit MetaInfo

Revisionec96e5c5136bb0a1922ad8ba4c22bf858eb7e4a5 (tree)
Time2017-09-24 15:45:46
Authorくまかみ工房 <kumakamikoubou@gmai...>
Commiterくまかみ工房

Log Message

グラフィックデバイスで、深度ステンシルの使用可否を指定できるように修正。

Change Summary

Incremental Difference

--- a/FDK/ApplicationForm.cs
+++ b/FDK/ApplicationForm.cs
@@ -81,14 +81,14 @@ namespace FDK
8181 /// <summary>
8282 /// 初期化処理。
8383 /// </summary>
84- public ApplicationForm( SizeF 設計画面サイズ, SizeF 物理画面サイズ )
84+ public ApplicationForm( SizeF 設計画面サイズ, SizeF 物理画面サイズ, bool 深度ステンシルを使う = true )
8585 {
8686 this.SetStyle( ControlStyles.ResizeRedraw, true );
8787 this.ClientSize = 物理画面サイズ.ToSize();
8888 this.MinimumSize = new Size( 640, 360 );
8989 this.Text = "FDK.ApplicationForm";
9090
91- ApplicationForm.グラフィックデバイス = new グラフィックデバイス( this.Handle, 設計画面サイズ, 物理画面サイズ );
91+ ApplicationForm.グラフィックデバイス = new グラフィックデバイス( this.Handle, 設計画面サイズ, 物理画面サイズ, 深度ステンシルを使う );
9292
9393 this.UserResized += this.OnUserResize;
9494
--- a/FDK/メディア/グラフィックデバイス.cs
+++ b/FDK/メディア/グラフィックデバイス.cs
@@ -192,12 +192,12 @@ namespace FDK.メディア
192192 /// <summary>
193193 /// 初期化処理。
194194 /// </summary>
195- public グラフィックデバイス( IntPtr hWindow, SizeF 設計画面サイズ, SizeF 物理画面サイズ )
195+ public グラフィックデバイス( IntPtr hWindow, SizeF 設計画面サイズ, SizeF 物理画面サイズ, bool 深度ステンシルを使う = true )
196196 {
197197 this._hWindow = hWindow;
198-
199198 this.設計画面サイズ = 設計画面サイズ;
200199 this.物理画面サイズ = 物理画面サイズ;
200+ this._深度ステンシルを使う = 深度ステンシルを使う;
201201
202202 SharpDX.MediaFoundation.MediaManager.Startup();
203203
@@ -333,6 +333,8 @@ namespace FDK.メディア
333333 /// </summary>
334334 private IntPtr _hWindow;
335335
336+ private bool _深度ステンシルを使う = true;
337+
336338 #region " グラフィックリソース(1) スワップチェーンに依存しないもの "
337339 //----------------
338340 //private SharpDX.Direct3D11.Device _D3DDevice = null; --> MediaFoundation と共有するので、必要時ごとに IMFDXGIDeviceManager から取得し、使ったら解放するライフサイクルとなる。
@@ -565,7 +567,7 @@ namespace FDK.メディア
565567 this._D3DDepthStencilView = new SharpDX.Direct3D11.DepthStencilView( d3dDevice, this._D3DDepthStencil, depthStencilViewDesc );
566568
567569 var depthSencilStateDesc = new SharpDX.Direct3D11.DepthStencilStateDescription() {
568- IsDepthEnabled = true, // 深度テストあり
570+ IsDepthEnabled = this._深度ステンシルを使う, // 深度テストあり?
569571 DepthWriteMask = SharpDX.Direct3D11.DepthWriteMask.All, // 書き込む
570572 DepthComparison = SharpDX.Direct3D11.Comparison.Less, // 手前の物体を描画
571573 IsStencilEnabled = false, // ステンシルテストなし。
--- a/FDK/メディア/画像.cs
+++ b/FDK/メディア/画像.cs
@@ -270,7 +270,7 @@ namespace FDK.メディア
270270 // コンバータに変換元フレームや変換後フォーマットなどを設定。
271271 converter.Initialize(
272272 sourceRef: sourceFrame,
273- dstFormat: SharpDX.WIC.PixelFormat.Format32bppPBGRA,
273+ dstFormat: SharpDX.WIC.PixelFormat.Format32bppPBGRA, // Premultiplied BGRA
274274 dither: BitmapDitherType.None,
275275 paletteRef: null,
276276 alphaThresholdPercent: 0.0,
Show on old repository browser