From d1c58904f4b884efc18bf42998f3e4d9bce9ce6e Mon Sep 17 00:00:00 2001 From: BZLZHH Date: Sat, 29 Nov 2025 20:02:08 +0800 Subject: [PATCH] [Fix] (MG_Backend/DirectGLES): Bind sampler object in backend. --- MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp b/MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp index f786b600..5b51df3f 100644 --- a/MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp +++ b/MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp @@ -353,6 +353,7 @@ namespace MobileGL::MG_Backend::DirectGLES { const auto& textureObject = bindingSlot.GetBoundObject(); if (!textureObject) continue; + // Bind texture object auto target = textureObject->GetTarget(); if (target == TextureTarget::TextureBuffer || target == TextureTarget::Texture1D || target == TextureTarget::TextureRectangle || target == TextureTarget::Texture2DMultisampleArray || @@ -368,6 +369,17 @@ namespace MobileGL::MG_Backend::DirectGLES { GLenum targetGL = MG_Util::ConvertTextureTargetToGLEnum(target); backendTextureIt->second->Bind(targetGL); } + + // Bind sampler object + const auto& samplerObject = textureUnit.GetSamplerObject(); + if (samplerObject) { + const auto& backendSamplerIt = SamplerImpl::g_backendSamplerObjects.find(samplerObject); + if (backendSamplerIt != SamplerImpl::g_backendSamplerObjects.end()) { + backendSamplerIt->second->Bind(unit); + } + } else { + MG_External::GLES::glBindSampler(unit, 0); + } } const auto& currentProgram = MG_State::pGLContext->GetCurrentProgram();