mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-10 21:28:32 +09:00
[Fix] (MG_Backend/DirectGLES): fix renaming error in BackendFramebufferObject::SyncToBackend
This commit is contained in:
@@ -898,16 +898,20 @@ namespace MobileGL::MG_Backend::DirectGLES {
|
|||||||
m_frontendReadBuffer = frontendReadBuf;
|
m_frontendReadBuffer = frontendReadBuf;
|
||||||
|
|
||||||
// For consistency, we need to find the compacted attachment index of this read buffer
|
// For consistency, we need to find the compacted attachment index of this read buffer
|
||||||
auto it =
|
auto it = std::find(m_compactedFrontendDrawBuffers,
|
||||||
std::find(m_compactedFrontendDrawBuffers,
|
m_compactedFrontendDrawBuffers + FramebufferObject::MAX_DRAW_BUFFERS, frontendReadBuf);
|
||||||
m_compactedFrontendDrawBuffers + FramebufferObject::MAX_DRAW_BUFFERS, frontendReadBuf);
|
|
||||||
|
|
||||||
|
// TODO: what if sync ReadBuffer first then DrawBuffer?
|
||||||
|
GLenum glBackendReadBuffer = GL_NONE;
|
||||||
Bool notFound = (it == m_compactedFrontendDrawBuffers + FramebufferObject::MAX_DRAW_BUFFERS);
|
Bool notFound = (it == m_compactedFrontendDrawBuffers + FramebufferObject::MAX_DRAW_BUFFERS);
|
||||||
if (notFound) {
|
if (notFound) {
|
||||||
MGLOG_D("%s: read buffer not found in draw buffer, use as in frontend", __func__);
|
MGLOG_D("%s: read buffer not found in draw buffer, use as in frontend", __func__);
|
||||||
|
glBackendReadBuffer = MG_Util::ConvertFramebufferAttachmentTypeToGLEnum(frontendReadBuf);
|
||||||
|
} else {
|
||||||
|
MGLOG_D("%s: read buffer found in draw buffer, keep it consistent as in read buffers", __func__);
|
||||||
|
auto index = std::distance(m_compactedFrontendDrawBuffers, it);
|
||||||
|
glBackendReadBuffer = m_backendDrawBuffers[index];
|
||||||
}
|
}
|
||||||
auto backendReadBuffer = notFound ? frontendReadBuf : *it;
|
|
||||||
GLenum glBackendReadBuffer = MG_Util::ConvertFramebufferAttachmentTypeToGLEnum(backendReadBuffer);
|
|
||||||
if (m_backendReadBuffer == glBackendReadBuffer) break;
|
if (m_backendReadBuffer == glBackendReadBuffer) break;
|
||||||
m_backendReadBuffer = glBackendReadBuffer;
|
m_backendReadBuffer = glBackendReadBuffer;
|
||||||
MG_External::GLES::glReadBuffer(glBackendReadBuffer);
|
MG_External::GLES::glReadBuffer(glBackendReadBuffer);
|
||||||
|
|||||||
Reference in New Issue
Block a user