次の方法で共有


D1111: クリップで十分な場合にレイヤーを使用する

PERF - レイヤーは 、NULL 不透明度マスク、1.0 不透明度、および軸揃え矩形ジオメトリック マスクで使用されています。 プッシュ/ポップ クリップ API では、パフォーマンスが向上して同じ結果が得られます。

プレースホルダー

インターフェイス

インターフェイスのアドレス。

   
エラー レベル Information

 

次のコードでは、レイヤーにプリミティブ (四角形) が 1 つだけ含まれており、D2D1_LAYER_PARAMETERS構造体のフィールドが既定値に設定されている場合、PushLayerPopLayer を使用します。 D2D1_LAYER_PARAMETERS構造体の既定値については、「LayerParameter」を参照してください。

        ID2D1Layer *m_pLayer;

        hr = m_pRenderTarget->CreateLayer(D2D1::SizeF(100, 100), &m_pLayer);
        m_pRenderTarget->PushLayer(D2D1::LayerParameters(), m_pLayer);
        m_pRenderTarget->FillRectangle(D2D1::RectF(100, 50, 400, 160), m_pBlackBrush);
        m_pRenderTarget->PopLayer();

この例では、次のデバッグ メッセージが生成されます。

DEBUG INFO - PERF - A layer is being used with a NULL opacity mask, 1.0 opacity, 
            and an axis aligned rectangular geometric mask.  
            The Push/Pop Clip API should achieve the same results with higher performance.

考えられる原因

レイヤーは、PushAxisAlignedClip メソッドと PopAxisAlignedClip メソッドで十分な場合に使用されました。