forked from MoonsideGames/Refresh
Compare commits
2 Commits
509bd278c7
...
0555023100
Author | SHA1 | Date |
---|---|---|
Caleb Cornett | 0555023100 | |
Caleb Cornett | 3c22699dbb |
|
@ -465,11 +465,11 @@ static void D3D11_DrawPrimitives(
|
||||||
uint32_t vertexParamOffset,
|
uint32_t vertexParamOffset,
|
||||||
uint32_t fragmentParamOffset
|
uint32_t fragmentParamOffset
|
||||||
) {
|
) {
|
||||||
D3D11CommandBuffer *cmdbuf = (D3D11CommandBuffer*) commandBuffer;
|
D3D11CommandBuffer *d3d11CommandBuffer = (D3D11CommandBuffer*) commandBuffer;
|
||||||
|
|
||||||
ID3D11DeviceContext_Draw(
|
ID3D11DeviceContext_Draw(
|
||||||
cmdbuf->context,
|
d3d11CommandBuffer->context,
|
||||||
PrimitiveVerts(cmdbuf->graphicsPipeline->primitiveType, primitiveCount),
|
PrimitiveVerts(d3d11CommandBuffer->graphicsPipeline->primitiveType, primitiveCount),
|
||||||
vertexStart
|
vertexStart
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -789,6 +789,10 @@ static Refresh_GraphicsPipeline* D3D11_CreateGraphicsPipeline(
|
||||||
|
|
||||||
if (vertShaderModule->shader == NULL)
|
if (vertShaderModule->shader == NULL)
|
||||||
{
|
{
|
||||||
|
/* FIXME:
|
||||||
|
* Could we store a flag in the shaderc output to mark if a shader is vertex/fragment?
|
||||||
|
* Then we could compile on shader module creation instead of at bind time.
|
||||||
|
*/
|
||||||
res = renderer->D3DCompileFunc(
|
res = renderer->D3DCompileFunc(
|
||||||
vertShaderModule->shaderSource,
|
vertShaderModule->shaderSource,
|
||||||
vertShaderModule->shaderSourceLength,
|
vertShaderModule->shaderSourceLength,
|
||||||
|
@ -1312,48 +1316,48 @@ static void D3D11_BindGraphicsPipeline(
|
||||||
Refresh_GraphicsPipeline *graphicsPipeline
|
Refresh_GraphicsPipeline *graphicsPipeline
|
||||||
) {
|
) {
|
||||||
D3D11Renderer *renderer = (D3D11Renderer*) driverData;
|
D3D11Renderer *renderer = (D3D11Renderer*) driverData;
|
||||||
D3D11CommandBuffer *cmdbuf = (D3D11CommandBuffer*) commandBuffer;
|
D3D11CommandBuffer *d3d11CommandBuffer = (D3D11CommandBuffer*) commandBuffer;
|
||||||
D3D11GraphicsPipeline *pipeline = (D3D11GraphicsPipeline*) graphicsPipeline;
|
D3D11GraphicsPipeline *pipeline = (D3D11GraphicsPipeline*) graphicsPipeline;
|
||||||
|
|
||||||
cmdbuf->graphicsPipeline = pipeline;
|
d3d11CommandBuffer->graphicsPipeline = pipeline;
|
||||||
|
|
||||||
ID3D11DeviceContext_OMSetBlendState(
|
ID3D11DeviceContext_OMSetBlendState(
|
||||||
cmdbuf->context,
|
d3d11CommandBuffer->context,
|
||||||
pipeline->colorAttachmentBlendState,
|
pipeline->colorAttachmentBlendState,
|
||||||
pipeline->blendConstants,
|
pipeline->blendConstants,
|
||||||
pipeline->multisampleState.sampleMask
|
pipeline->multisampleState.sampleMask
|
||||||
);
|
);
|
||||||
|
|
||||||
ID3D11DeviceContext_OMSetDepthStencilState(
|
ID3D11DeviceContext_OMSetDepthStencilState(
|
||||||
cmdbuf->context,
|
d3d11CommandBuffer->context,
|
||||||
pipeline->depthStencilState,
|
pipeline->depthStencilState,
|
||||||
pipeline->stencilRef
|
pipeline->stencilRef
|
||||||
);
|
);
|
||||||
|
|
||||||
ID3D11DeviceContext_IASetPrimitiveTopology(
|
ID3D11DeviceContext_IASetPrimitiveTopology(
|
||||||
cmdbuf->context,
|
d3d11CommandBuffer->context,
|
||||||
RefreshToD3D11_PrimitiveType[pipeline->primitiveType]
|
RefreshToD3D11_PrimitiveType[pipeline->primitiveType]
|
||||||
);
|
);
|
||||||
|
|
||||||
ID3D11DeviceContext_IASetInputLayout(
|
ID3D11DeviceContext_IASetInputLayout(
|
||||||
cmdbuf->context,
|
d3d11CommandBuffer->context,
|
||||||
pipeline->inputLayout
|
pipeline->inputLayout
|
||||||
);
|
);
|
||||||
|
|
||||||
ID3D11DeviceContext_RSSetState(
|
ID3D11DeviceContext_RSSetState(
|
||||||
cmdbuf->context,
|
d3d11CommandBuffer->context,
|
||||||
pipeline->rasterizerState
|
pipeline->rasterizerState
|
||||||
);
|
);
|
||||||
|
|
||||||
ID3D11DeviceContext_VSSetShader(
|
ID3D11DeviceContext_VSSetShader(
|
||||||
cmdbuf->context,
|
d3d11CommandBuffer->context,
|
||||||
pipeline->vertexShader,
|
pipeline->vertexShader,
|
||||||
NULL,
|
NULL,
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
ID3D11DeviceContext_PSSetShader(
|
ID3D11DeviceContext_PSSetShader(
|
||||||
cmdbuf->context,
|
d3d11CommandBuffer->context,
|
||||||
pipeline->fragmentShader,
|
pipeline->fragmentShader,
|
||||||
NULL,
|
NULL,
|
||||||
0
|
0
|
||||||
|
@ -1365,7 +1369,22 @@ static void D3D11_SetViewport(
|
||||||
Refresh_CommandBuffer *commandBuffer,
|
Refresh_CommandBuffer *commandBuffer,
|
||||||
Refresh_Viewport *viewport
|
Refresh_Viewport *viewport
|
||||||
) {
|
) {
|
||||||
NOT_IMPLEMENTED
|
D3D11CommandBuffer *d3d11CommandBuffer = (D3D11CommandBuffer*) commandBuffer;
|
||||||
|
D3D11_VIEWPORT vp =
|
||||||
|
{
|
||||||
|
viewport->x,
|
||||||
|
viewport->y,
|
||||||
|
viewport->w,
|
||||||
|
viewport->h,
|
||||||
|
viewport->minDepth,
|
||||||
|
viewport->maxDepth
|
||||||
|
};
|
||||||
|
|
||||||
|
ID3D11DeviceContext_RSSetViewports(
|
||||||
|
d3d11CommandBuffer->context,
|
||||||
|
1,
|
||||||
|
&vp
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void D3D11_SetScissor(
|
static void D3D11_SetScissor(
|
||||||
|
@ -1373,7 +1392,20 @@ static void D3D11_SetScissor(
|
||||||
Refresh_CommandBuffer *commandBuffer,
|
Refresh_CommandBuffer *commandBuffer,
|
||||||
Refresh_Rect *scissor
|
Refresh_Rect *scissor
|
||||||
) {
|
) {
|
||||||
NOT_IMPLEMENTED
|
D3D11CommandBuffer *d3d11CommandBuffer = (D3D11CommandBuffer*)commandBuffer;
|
||||||
|
D3D11_RECT rect =
|
||||||
|
{
|
||||||
|
scissor->x,
|
||||||
|
scissor->y,
|
||||||
|
scissor->x + scissor->w,
|
||||||
|
scissor->y + scissor->h
|
||||||
|
};
|
||||||
|
|
||||||
|
ID3D11DeviceContext_RSSetScissorRects(
|
||||||
|
d3d11CommandBuffer->context,
|
||||||
|
1,
|
||||||
|
&rect
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void D3D11_BindVertexBuffers(
|
static void D3D11_BindVertexBuffers(
|
||||||
|
@ -1739,7 +1771,7 @@ static Refresh_Texture* D3D11_AcquireSwapchainTexture(
|
||||||
uint32_t *pHeight
|
uint32_t *pHeight
|
||||||
) {
|
) {
|
||||||
D3D11Renderer *renderer = (D3D11Renderer*) driverData;
|
D3D11Renderer *renderer = (D3D11Renderer*) driverData;
|
||||||
D3D11CommandBuffer *cmdbuf = (D3D11CommandBuffer*) commandBuffer;
|
D3D11CommandBuffer *d3d11CommandBuffer = (D3D11CommandBuffer*) commandBuffer;
|
||||||
D3D11WindowData *windowData;
|
D3D11WindowData *windowData;
|
||||||
D3D11SwapchainData *swapchainData;
|
D3D11SwapchainData *swapchainData;
|
||||||
DXGI_SWAP_CHAIN_DESC swapchainDesc;
|
DXGI_SWAP_CHAIN_DESC swapchainDesc;
|
||||||
|
@ -1774,7 +1806,7 @@ static Refresh_Texture* D3D11_AcquireSwapchainTexture(
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Let the command buffer know it's associated with this swapchain. */
|
/* Let the command buffer know it's associated with this swapchain. */
|
||||||
cmdbuf->swapchainData = swapchainData;
|
d3d11CommandBuffer->swapchainData = swapchainData;
|
||||||
|
|
||||||
/* Send the dimensions to the out parameters. */
|
/* Send the dimensions to the out parameters. */
|
||||||
*pWidth = swapchainData->texture.twod.width;
|
*pWidth = swapchainData->texture.twod.width;
|
||||||
|
@ -1782,7 +1814,6 @@ static Refresh_Texture* D3D11_AcquireSwapchainTexture(
|
||||||
|
|
||||||
/* Return the swapchain texture */
|
/* Return the swapchain texture */
|
||||||
return (Refresh_Texture*) &swapchainData->texture;
|
return (Refresh_Texture*) &swapchainData->texture;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Refresh_TextureFormat D3D11_GetSwapchainFormat(
|
static Refresh_TextureFormat D3D11_GetSwapchainFormat(
|
||||||
|
|
Loading…
Reference in New Issue