「MonoGame/クラスライブラリ/RenderTargetUsage列挙体」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
30行目: | 30行目: | ||
=== DiscardContentsの注意点 === | === DiscardContentsの注意点 === | ||
− | + | DiscardContentsは「GraphicsDevice.SetRenderTargetするたびに破棄(初期化)される」という特徴がある。この特性があるためレンダリング系APIの呼出順序を間違えると残念なことになる。 | |
<source lang="csharp"> | <source lang="csharp"> | ||
GraphicsDevice.SetRenderTarget(このRenderTargetは初期化される); | GraphicsDevice.SetRenderTarget(このRenderTargetは初期化される); | ||
</source> | </source> | ||
− | ちなみにGraphicsDeviceが最初から持っているレンダリングターゲット([[DirectX]]でいう[[プライマリサーフェイス]]、SetRenterTarget(null) | + | ちなみにGraphicsDeviceが最初から持っているレンダリングターゲット([[DirectX]]でいう[[プライマリサーフェイス]]、SetRenterTarget(null))に相当するものはDiscardContentsに設定されている。 |
このため、たとば以下のコードは正常に動作しない。 | このため、たとば以下のコードは正常に動作しない。 | ||
52行目: | 52行目: | ||
// プライマリサーフェイスは問答無用でDiscardContents設定なので | // プライマリサーフェイスは問答無用でDiscardContents設定なので | ||
// 内容はクリアされ(1)の塗りつぶしは無かったことにされる。 | // 内容はクリアされ(1)の塗りつぶしは無かったことにされる。 | ||
− | // | + | // (2)のレンダーターゲットは影響を受けない。 |
gd.SetRenderTarget(null); | gd.SetRenderTarget(null); | ||