Handleiding voor: Opnemen van een opdrachtlijst
Een opdrachtlijst is een opgenomen lijst met renderingopdrachten. In dit onderwerp wordt beschreven hoe u een opdrachtlijstkunt maken en opnemen. Gebruik een opdrachtlijst om renderopdrachten vast te leggen en deze later af te spelen. Een opdrachtlijst is handig voor het splitsen van renderingtaken tussen threads.
Een opdrachtlijst opnemen
Er moet een opdrachtlijst worden gemaakt op basis van een uitgestelde context, die apparaatstatus- en renderingacties bevat. Maak op basis van een apparaat een uitgestelde context door ID3D11Device::CreateDeferredContextaan te roepen.
HRESULT hr; ID3D11DeviceContext* pDeferredContext = NULL; hr = g_pd3dDevice->CreateDeferredContext(0, &pDeferredContext);
Gebruik de uitgestelde context om weer te geven.
float ClearColor[4] = { 0.0f, 0.125f, 0.3f, 1.0f }; pDeferredContext->ClearRenderTargetView( g_pRenderTargetView, ClearColor ); // Add additional rendering commands ...
In dit eenvoudige voorbeeld wordt een renderdoel gewist, maar u kunt extra renderopdrachten toevoegen.
Maak/record een opdrachtlijst door ID3D11DeviceContext::FinishCommandList aan te roepen en een aanwijzer door te geven aan een niet-geïnitialiseerde ID3D11CommandList interface.
ID3D11CommandList* pd3dCommandList = NULL; HRESULT hr; hr = pDeferredContext->FinishCommandList(FALSE, &pd3dCommandList);
Wanneer de methode wordt geretourneerd, wordt er een opdrachtlijst gemaakt met alle renderopdrachten en wordt er een interface geretourneerd naar de toepassing.
De booleaanse parameter vertelt de runtime wat te doen met de pijplijnstatus in de uitgestelde uitvoeringscontext. TRUE betekent dat de status van de apparaatcontext wordt hersteld naar de toestand vóór de opdrachtenlijst na voltooiing van de opname, terwijl ONWAAR betekent dat de status na opname niet wordt gewijzigd. Dit betekent dat de apparaatcontext de statuswijzigingen in de opdrachtlijst weergeeft.
Verwante onderwerpen
-
Direct3D 11 gebruiken