[Fix] (MG_Backend/DirectGLES): fix renaming error in BackendFramebufferObject::SyncToBackend

This commit is contained in:
2026-02-03 23:43:55 +08:00
parent 74509ae0a3
commit 77378bbf07
+9 -5
View File
@@ -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);