空気を読まずに質問。

時々見かけるラッパーライブラリに、
SetRendeState()に与える値を自前で控えておいて、
直前に与えた値と違いがなければ実際のSetRenderState()の呼び出しを
行わないとか、DrawPrimitive()の手前でまとめて実行するようにしてたりするのだけど、
こんなんを自前で実装する意味ってあるのかな?

たとえばこう。

DWORD m_RSLighting = TRUE;
...

HRESULT
SetLight(ID3DDevice& device, DWORD state)
{
if(m_RSLighting == state)
return S_OK;

m_RSLighting == state;
return device.SetRenderState(D3DRS_LIGHT, state);
}


GetRenderState()等がある以上、D3DDevice()内部でもステートは管理してるのだろうし
SetRenderState()のカラ呼び自体はパフォーマンスに影響するとは思えないのだけど…。
いや、確かめてないからわからないんだけどね。