1
我想在SlimDX Direct3d9設備中設置狀態。SlimDX - 設置狀態塊
我有在frameRender函數beging的代碼。
device.BeginStateBlock();
device.SetRenderState(RenderState.ZEnable, false);
device.SetRenderState(RenderState.Lighting, false);
device.SetRenderState(RenderState.CullMode, Cull.None);
device.EndStateBlock();
但我發現了這個錯誤在調試窗口:
Object of type SlimDX.Direct3D9.StateBlock was not disposed. Stack trace of object creation:
我得到數以百萬計的線。他們都說同樣的事情。 我應該如何處理這些狀態?如何正確使用它?
那麼我應該如何使用它們?在哪裏創建它們以及如何應用它們?我應該把它們應用到每一幀?我應該每幀處理它們嗎? – Hooch
我不得不說,我不是那方面的專家,所以我可以或多或少地猜測。我會在應用程序的開始部分創建一個狀態塊,一個用於您需要的每個獨特的狀態塊。然後,您可以使用Apply方法來使用該塊,繪製該塊需要繪製的所有內容。請記住,directx是一種狀態機,一旦設置它保持設置,除非未設置或其他設置。在丟失設備並且您想要重置或關閉應用程序時,應該在另一方面進行處置。不幸的是,這就是我所能說的,我會試試這種方式。 – dowhilefor