mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-11 18:41:14 +00:00
Fix zawtooths during late game stage (#325)
This commit is contained in:
parent
55c593404b
commit
0cfcc0fb21
@ -73,7 +73,7 @@ Direct3DRMRenderer* OpenGL1Renderer::Create(DWORD width, DWORD height)
|
|||||||
GLuint depthRb;
|
GLuint depthRb;
|
||||||
glGenRenderbuffers(1, &depthRb);
|
glGenRenderbuffers(1, &depthRb);
|
||||||
glBindRenderbuffer(GL_RENDERBUFFER, depthRb);
|
glBindRenderbuffer(GL_RENDERBUFFER, depthRb);
|
||||||
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, width, height);
|
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, width, height);
|
||||||
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthRb);
|
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthRb);
|
||||||
|
|
||||||
if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) {
|
if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) {
|
||||||
@ -351,7 +351,7 @@ void OpenGL1Renderer::GetDesc(D3DDEVICEDESC* halDesc, D3DDEVICEDESC* helDesc)
|
|||||||
{
|
{
|
||||||
halDesc->dcmColorModel = D3DCOLORMODEL::RGB;
|
halDesc->dcmColorModel = D3DCOLORMODEL::RGB;
|
||||||
halDesc->dwFlags = D3DDD_DEVICEZBUFFERBITDEPTH;
|
halDesc->dwFlags = D3DDD_DEVICEZBUFFERBITDEPTH;
|
||||||
halDesc->dwDeviceZBufferBitDepth = DDBD_16;
|
halDesc->dwDeviceZBufferBitDepth = DDBD_24;
|
||||||
helDesc->dwDeviceRenderBitDepth = DDBD_32;
|
helDesc->dwDeviceRenderBitDepth = DDBD_32;
|
||||||
halDesc->dpcTriCaps.dwTextureCaps = D3DPTEXTURECAPS_PERSPECTIVE;
|
halDesc->dpcTriCaps.dwTextureCaps = D3DPTEXTURECAPS_PERSPECTIVE;
|
||||||
halDesc->dpcTriCaps.dwShadeCaps = D3DPSHADECAPS_ALPHAFLATBLEND;
|
halDesc->dpcTriCaps.dwShadeCaps = D3DPSHADECAPS_ALPHAFLATBLEND;
|
||||||
|
|||||||
@ -175,7 +175,7 @@ static SDL_GPUGraphicsPipeline* InitializeGraphicsPipeline(SDL_GPUDevice* device
|
|||||||
pipelineCreateInfo.depth_stencil_state.enable_stencil_test = false;
|
pipelineCreateInfo.depth_stencil_state.enable_stencil_test = false;
|
||||||
pipelineCreateInfo.target_info.color_target_descriptions = &colorTargets;
|
pipelineCreateInfo.target_info.color_target_descriptions = &colorTargets;
|
||||||
pipelineCreateInfo.target_info.num_color_targets = 1;
|
pipelineCreateInfo.target_info.num_color_targets = 1;
|
||||||
pipelineCreateInfo.target_info.depth_stencil_format = SDL_GPU_TEXTUREFORMAT_D16_UNORM;
|
pipelineCreateInfo.target_info.depth_stencil_format = SDL_GPU_TEXTUREFORMAT_D32_FLOAT;
|
||||||
pipelineCreateInfo.target_info.has_depth_stencil_target = true;
|
pipelineCreateInfo.target_info.has_depth_stencil_target = true;
|
||||||
|
|
||||||
SDL_GPUGraphicsPipeline* pipeline = SDL_CreateGPUGraphicsPipeline(device, &pipelineCreateInfo);
|
SDL_GPUGraphicsPipeline* pipeline = SDL_CreateGPUGraphicsPipeline(device, &pipelineCreateInfo);
|
||||||
@ -223,7 +223,7 @@ Direct3DRMRenderer* Direct3DRMSDL3GPURenderer::Create(DWORD width, DWORD height)
|
|||||||
}
|
}
|
||||||
|
|
||||||
SDL_GPUTextureCreateInfo depthTexInfo = textureInfo;
|
SDL_GPUTextureCreateInfo depthTexInfo = textureInfo;
|
||||||
depthTexInfo.format = SDL_GPU_TEXTUREFORMAT_D16_UNORM;
|
depthTexInfo.format = SDL_GPU_TEXTUREFORMAT_D32_FLOAT;
|
||||||
depthTexInfo.usage = SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET;
|
depthTexInfo.usage = SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET;
|
||||||
ScopedTexture depthTexture{device.ptr, SDL_CreateGPUTexture(device.ptr, &depthTexInfo)};
|
ScopedTexture depthTexture{device.ptr, SDL_CreateGPUTexture(device.ptr, &depthTexInfo)};
|
||||||
if (!depthTexture.ptr) {
|
if (!depthTexture.ptr) {
|
||||||
@ -657,7 +657,7 @@ void Direct3DRMSDL3GPURenderer::GetDesc(D3DDEVICEDESC* halDesc, D3DDEVICEDESC* h
|
|||||||
{
|
{
|
||||||
halDesc->dcmColorModel = D3DCOLORMODEL::RGB;
|
halDesc->dcmColorModel = D3DCOLORMODEL::RGB;
|
||||||
halDesc->dwFlags = D3DDD_DEVICEZBUFFERBITDEPTH;
|
halDesc->dwFlags = D3DDD_DEVICEZBUFFERBITDEPTH;
|
||||||
halDesc->dwDeviceZBufferBitDepth = DDBD_16; // Todo add support for other depths
|
halDesc->dwDeviceZBufferBitDepth = DDBD_32; // Todo add support for other depths
|
||||||
halDesc->dwDeviceRenderBitDepth = DDBD_32;
|
halDesc->dwDeviceRenderBitDepth = DDBD_32;
|
||||||
halDesc->dpcTriCaps.dwTextureCaps = D3DPTEXTURECAPS_PERSPECTIVE;
|
halDesc->dpcTriCaps.dwTextureCaps = D3DPTEXTURECAPS_PERSPECTIVE;
|
||||||
halDesc->dpcTriCaps.dwShadeCaps = D3DPSHADECAPS_ALPHAFLATBLEND;
|
halDesc->dpcTriCaps.dwShadeCaps = D3DPSHADECAPS_ALPHAFLATBLEND;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user