Started work on BeginRenderPass, enough to get a clear screen!
							parent
							
								
									40b6ec0e91
								
							
						
					
					
						commit
						56ebde7567
					
				|  | @ -850,21 +850,69 @@ static void D3D11_QueueDestroyGraphicsPipeline( | |||
| /* Graphics State */ | ||||
| 
 | ||||
| static void D3D11_BeginRenderPass( | ||||
| 	Refresh_Renderer* driverData, | ||||
| 	Refresh_CommandBuffer* commandBuffer, | ||||
| 	Refresh_Rect* renderArea, | ||||
| 	Refresh_ColorAttachmentInfo* colorAttachmentInfos, | ||||
| 	Refresh_Renderer *driverData, | ||||
| 	Refresh_CommandBuffer *commandBuffer, | ||||
| 	Refresh_Rect *renderArea, | ||||
| 	Refresh_ColorAttachmentInfo *colorAttachmentInfos, | ||||
| 	uint32_t colorAttachmentCount, | ||||
| 	Refresh_DepthStencilAttachmentInfo* depthStencilAttachmentInfo | ||||
| 	Refresh_DepthStencilAttachmentInfo *depthStencilAttachmentInfo | ||||
| ) { | ||||
| 	NOT_IMPLEMENTED | ||||
| 	D3D11Renderer *renderer = (D3D11Renderer*) driverData; | ||||
| 	D3D11CommandBuffer *cmdbuf = (D3D11CommandBuffer*) commandBuffer; | ||||
| 	D3D11Texture *texture; | ||||
| 	float clearColors[4]; | ||||
| 	ID3D11RenderTargetView *rtViews[MAX_COLOR_TARGET_BINDINGS]; | ||||
| 	ID3D11DepthStencilView *dsView = NULL; | ||||
| 	D3D11_VIEWPORT viewports[1]; | ||||
| 	D3D11_RECT scissorRects[1]; | ||||
| 	uint8_t i; | ||||
| 
 | ||||
| 	/* Get the RTVs for each color attachment. */ | ||||
| 	for (i = 0; i < colorAttachmentCount; i += 1) | ||||
| 	{ | ||||
| 		rtViews[i] = ((D3D11Texture*) colorAttachmentInfos[i].texture)->rtv; | ||||
| 	} | ||||
| 
 | ||||
| 	/* FIXME: Get the DSV for the depth stencil attachment, if one exists! */ | ||||
| 
 | ||||
| 	/* Set the render targets. */ | ||||
| 	ID3D11DeviceContext_OMSetRenderTargets( | ||||
| 		cmdbuf->context, | ||||
| 		colorAttachmentCount, | ||||
| 		rtViews, | ||||
| 		NULL | ||||
| 	); | ||||
| 
 | ||||
| 	/* Perform load ops on those render targets. */ | ||||
| 	for (i = 0; i < colorAttachmentCount; i += 1) | ||||
| 	{ | ||||
| 		texture = (D3D11Texture*) colorAttachmentInfos[i].texture; | ||||
| 
 | ||||
| 		if (colorAttachmentInfos[i].loadOp == REFRESH_LOADOP_CLEAR) | ||||
| 		{ | ||||
| 			clearColors[0] = colorAttachmentInfos[i].clearColor.x; | ||||
| 			clearColors[1] = colorAttachmentInfos[i].clearColor.y; | ||||
| 			clearColors[2] = colorAttachmentInfos[i].clearColor.z; | ||||
| 			clearColors[3] = colorAttachmentInfos[i].clearColor.w; | ||||
| 
 | ||||
| 			ID3D11DeviceContext_ClearRenderTargetView( | ||||
| 				cmdbuf->context, | ||||
| 				texture->rtv, | ||||
| 				clearColors | ||||
| 			); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	/* FIXME: Set viewport and scissor state */ | ||||
| 
 | ||||
| 	/* FIXME: What should we do with render area? */ | ||||
| } | ||||
| 
 | ||||
| static void D3D11_EndRenderPass( | ||||
| 	Refresh_Renderer* driverData, | ||||
| 	Refresh_CommandBuffer* commandBuffer | ||||
| ) { | ||||
| 	NOT_IMPLEMENTED | ||||
| 	/* FIXME: What should we do here? */ | ||||
| } | ||||
| 
 | ||||
| static void D3D11_BindGraphicsPipeline( | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue