[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
Mon Apr 4 06:27:36 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):
@kas1e and @BeWorld2018
I don't understand how it renders now with the patch.
Is it possible to make a screenshot in the middle of the transition?
If it's too fast, you can change the setting in scummvm.ini file by
setting transition_speed to something like -400 (note the minus sign).
Another test is possible although this looks more like a workaround.
By looking at MiniGL code, one can see that `glReadPixels` calls
`W3D_FlushFrame` and `W3D_WaitIdle` before reading pixels. This is not
done in `glCopyTexImage2D`.
The main problem with the workaround is that I am not sure MiniGL will
issue the `W3D_FlushFrame` when doing `glFinish`.
{{{#!diff
diff --git a/engines/myst3/gfx_opengl_texture.cpp
b/engines/myst3/gfx_opengl_texture.cpp
index bae85ba2e7f..40f07c44dfe 100644
--- a/engines/myst3/gfx_opengl_texture.cpp
+++ b/engines/myst3/gfx_opengl_texture.cpp
@@ -139,10 +139,13 @@ void OpenGLTexture::copyFromFramebuffer(const
Common::Rect &screen) {
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);
+ // Ensure everything is rendered before capturing framebuffer
+ glFinish();
+
glCopyTexImage2D(GL_TEXTURE_2D, 0, internalFormat, screen.left,
screen.top, internalWidth, internalHeight, 0);
}
} // End of namespace Myst3
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/13169#comment:11>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list