mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-07 03:13:49 +00:00
Do not create DepthImageTexture when N64DepthCompare option is off.
This commit is contained in:
parent
12a2b3741e
commit
fca44abb5f
|
@ -43,7 +43,7 @@ DepthBuffer::~DepthBuffer()
|
||||||
void DepthBuffer::initDepthImageTexture(FrameBuffer * _pBuffer)
|
void DepthBuffer::initDepthImageTexture(FrameBuffer * _pBuffer)
|
||||||
{
|
{
|
||||||
#ifdef GL_IMAGE_TEXTURES_SUPPORT
|
#ifdef GL_IMAGE_TEXTURES_SUPPORT
|
||||||
if (m_pDepthImageTexture != NULL)
|
if (!video().getRender().isImageTexturesSupported() || config.frameBufferEmulation.N64DepthCompare == 0 || m_pDepthImageTexture != NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_pDepthImageTexture = textureCache().addFrameBufferTexture();
|
m_pDepthImageTexture = textureCache().addFrameBufferTexture();
|
||||||
|
@ -233,7 +233,7 @@ void DepthBufferList::saveBuffer(u32 _address)
|
||||||
void DepthBufferList::clearBuffer()
|
void DepthBufferList::clearBuffer()
|
||||||
{
|
{
|
||||||
#ifdef GL_IMAGE_TEXTURES_SUPPORT
|
#ifdef GL_IMAGE_TEXTURES_SUPPORT
|
||||||
if (!video().getRender().isImageTexturesSupported())
|
if (!video().getRender().isImageTexturesSupported() || config.frameBufferEmulation.N64DepthCompare == 0)
|
||||||
return;
|
return;
|
||||||
if (m_pCurrent == NULL || m_pCurrent->m_FBO == 0)
|
if (m_pCurrent == NULL || m_pCurrent->m_FBO == 0)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -312,7 +312,7 @@ void FrameBufferList::attachDepthBuffer()
|
||||||
pDepthBuffer->initDepthBufferTexture(m_pCurrent);
|
pDepthBuffer->initDepthBufferTexture(m_pCurrent);
|
||||||
m_pCurrent->m_pDepthBuffer = pDepthBuffer;
|
m_pCurrent->m_pDepthBuffer = pDepthBuffer;
|
||||||
pDepthBuffer->setDepthAttachment();
|
pDepthBuffer->setDepthAttachment();
|
||||||
if (video().getRender().isImageTexturesSupported())
|
if (video().getRender().isImageTexturesSupported() && config.frameBufferEmulation.N64DepthCompare != 0)
|
||||||
pDepthBuffer->bindDepthImageTexture();
|
pDepthBuffer->bindDepthImageTexture();
|
||||||
} else
|
} else
|
||||||
m_pCurrent->m_pDepthBuffer = NULL;
|
m_pCurrent->m_pDepthBuffer = NULL;
|
||||||
|
|
|
@ -196,7 +196,7 @@ void InitShaderCombiner()
|
||||||
assert(check_shader_compile_status(g_test_alpha_shader_object));
|
assert(check_shader_compile_status(g_test_alpha_shader_object));
|
||||||
|
|
||||||
#ifdef GL_IMAGE_TEXTURES_SUPPORT
|
#ifdef GL_IMAGE_TEXTURES_SUPPORT
|
||||||
if (video().getRender().isImageTexturesSupported()) {
|
if (video().getRender().isImageTexturesSupported() && config.frameBufferEmulation.N64DepthCompare != 0) {
|
||||||
g_calc_depth_shader_object = glCreateShader(GL_FRAGMENT_SHADER);
|
g_calc_depth_shader_object = glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
glShaderSource(g_calc_depth_shader_object, 1, &depth_compare_shader_float, NULL);
|
glShaderSource(g_calc_depth_shader_object, 1, &depth_compare_shader_float, NULL);
|
||||||
glCompileShader(g_calc_depth_shader_object);
|
glCompileShader(g_calc_depth_shader_object);
|
||||||
|
@ -467,12 +467,8 @@ ShaderCombiner::ShaderCombiner(Combiner & _color, Combiner & _alpha, const gDPCo
|
||||||
" } \n"
|
" } \n"
|
||||||
);
|
);
|
||||||
|
|
||||||
if (video().getRender().isImageTexturesSupported()) {
|
if (video().getRender().isImageTexturesSupported() && config.frameBufferEmulation.N64DepthCompare != 0)
|
||||||
if (config.frameBufferEmulation.N64DepthCompare)
|
strFragmentShader.append(" if (!depth_compare()) discard; \n");
|
||||||
strFragmentShader.append(" if (!depth_compare()) discard; \n");
|
|
||||||
else
|
|
||||||
strFragmentShader.append(" depth_compare(); \n");
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef USE_TOONIFY
|
#ifdef USE_TOONIFY
|
||||||
strFragmentShader.append(" toonify(intensity); \n");
|
strFragmentShader.append(" toonify(intensity); \n");
|
||||||
|
@ -516,7 +512,7 @@ ShaderCombiner::ShaderCombiner(Combiner & _color, Combiner & _alpha, const gDPCo
|
||||||
if (bUseLod)
|
if (bUseLod)
|
||||||
glAttachShader(m_program, g_calc_mipmap_shader_object);
|
glAttachShader(m_program, g_calc_mipmap_shader_object);
|
||||||
glAttachShader(m_program, g_test_alpha_shader_object);
|
glAttachShader(m_program, g_test_alpha_shader_object);
|
||||||
if (video().getRender().isImageTexturesSupported())
|
if (video().getRender().isImageTexturesSupported() && config.frameBufferEmulation.N64DepthCompare != 0)
|
||||||
glAttachShader(m_program, g_calc_depth_shader_object);
|
glAttachShader(m_program, g_calc_depth_shader_object);
|
||||||
glAttachShader(m_program, g_calc_noise_shader_object);
|
glAttachShader(m_program, g_calc_noise_shader_object);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user