[Fix] (GLImpl/Program, MG_Backend/DirectGLES): guard against not linked program object

This commit is contained in:
2025-11-06 23:21:23 +08:00
parent 98a8a3a5e9
commit 7228b01c2d
2 changed files with 6 additions and 5 deletions
@@ -223,7 +223,7 @@ namespace MobileGL::MG_Backend::DirectGLES {
namespace PrgramImpl {
void SyncCurrentProgram() {
auto currentProgram = MG_State::pGLContext->GetCurrentProgram();
if (!currentProgram) {
if (!currentProgram || !currentProgram->GetLinkStatus()) {
MG_External::GLES::glUseProgram(0);
return;
}
@@ -311,7 +311,7 @@ namespace MobileGL::MG_Backend::DirectGLES {
MG_External::GLES::glActiveTexture(GL_TEXTURE0 + originalActiveUnit);
const auto& currentProgram = MG_State::pGLContext->GetCurrentProgram();
if (currentProgram) {
if (currentProgram && currentProgram->GetLinkStatus()) {
const auto& backendProgramIt = PrgramImpl::g_backendProgramObjects.find(currentProgram);
if (backendProgramIt != PrgramImpl::g_backendProgramObjects.end()) {
backendProgramIt->second->Use();