[Scummvm-tracker] [ScummVM :: Bugs] #13169: Myst III Exile: missing scene transition effect on PowerPC (big-endian) machines on all OSes
ScummVM :: Bugs
trac at scummvm.org
Sun Apr 3 13:40:17 UTC 2022
#13169: Myst III Exile: missing scene transition effect on PowerPC (big-endian)
machines on all OSes
-------------------------------------------+----------------------------
Reporter: kas1e | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: Myst3
Version: | Resolution:
Keywords: big endian, BE, Myst3, AmigaOS | Game: Myst 3: Exile
-------------------------------------------+----------------------------
Comment (by lephilousophe):
I managed to reproduce the white screen bug using GL4ES and Mesa on Linux.
It's due to the fact that GL4ES doesn't mark its texture object as valid
when using `glCopyTexImage2D`.
A call to `glTexImage2D` before corrects the problem although it shouldn't
be needed.
What happens if you use the following patch?
Here, with GL4ES it works.
{{{#!diff
--- a/engines/myst3/gfx_opengl_texture.cpp
+++ b/engines/myst3/gfx_opengl_texture.cpp
@@ -135,10 +135,11 @@ void OpenGLTexture::copyFromFramebuffer(const
Common::Rect &screen) {
internalHeight = upperPowerOfTwo(height);
internalWidth = upperPowerOfTwo(width);
}
glBindTexture(GL_TEXTURE_2D, id);
+ glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, internalWidth,
internalHeight, 0, internalFormat, GL_UNSIGNED_BYTE, nullptr);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glCopyTexImage2D(GL_TEXTURE_2D, 0, internalFormat, screen.left,
screen.top, internalWidth, internalHeight, 0);
}
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/13169#comment:5>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list