forked from MoonsideGames/Refresh
Started work on BeginRenderPass, enough to get a clear screen!
parent
a93d49a05e
commit
aded55449b
|
@ -850,21 +850,69 @@ static void D3D11_QueueDestroyGraphicsPipeline(
|
||||||
/* Graphics State */
|
/* Graphics State */
|
||||||
|
|
||||||
static void D3D11_BeginRenderPass(
|
static void D3D11_BeginRenderPass(
|
||||||
Refresh_Renderer* driverData,
|
Refresh_Renderer *driverData,
|
||||||
Refresh_CommandBuffer* commandBuffer,
|
Refresh_CommandBuffer *commandBuffer,
|
||||||
Refresh_Rect* renderArea,
|
Refresh_Rect *renderArea,
|
||||||
Refresh_ColorAttachmentInfo* colorAttachmentInfos,
|
Refresh_ColorAttachmentInfo *colorAttachmentInfos,
|
||||||
uint32_t colorAttachmentCount,
|
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(
|
static void D3D11_EndRenderPass(
|
||||||
Refresh_Renderer* driverData,
|
Refresh_Renderer* driverData,
|
||||||
Refresh_CommandBuffer* commandBuffer
|
Refresh_CommandBuffer* commandBuffer
|
||||||
) {
|
) {
|
||||||
NOT_IMPLEMENTED
|
/* FIXME: What should we do here? */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void D3D11_BindGraphicsPipeline(
|
static void D3D11_BindGraphicsPipeline(
|
||||||
|
|
Loading…
Reference in New Issue