WINTERMUTE: doFlip WA is also needed for 3D renderers
This commit is contained in:
parent
a2a6867a1b
commit
134e412a00
3 changed files with 3 additions and 3 deletions
|
@ -234,7 +234,7 @@ BaseImage *BaseRenderOpenGL3D::takeScreenshot() {
|
||||||
glReadPixels(_viewportRect.left, g_system->getHeight() - _viewportRect.bottom, _viewportRect.width(), _viewportRect.height(),
|
glReadPixels(_viewportRect.left, g_system->getHeight() - _viewportRect.bottom, _viewportRect.width(), _viewportRect.height(),
|
||||||
GL_RGBA, GL_UNSIGNED_BYTE, surface->getPixels());
|
GL_RGBA, GL_UNSIGNED_BYTE, surface->getPixels());
|
||||||
flipVertical(surface);
|
flipVertical(surface);
|
||||||
Graphics::Surface *converted = surface->convertTo(Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0));
|
Graphics::Surface *converted = surface->convertTo(getPixelFormat());
|
||||||
screenshot->copyFrom(converted);
|
screenshot->copyFrom(converted);
|
||||||
delete surface;
|
delete surface;
|
||||||
delete converted;
|
delete converted;
|
||||||
|
|
|
@ -348,7 +348,7 @@ BaseImage *BaseRenderOpenGL3DShader::takeScreenshot() {
|
||||||
glReadPixels(_viewportRect.left, g_system->getHeight() - _viewportRect.bottom, _viewportRect.width(), _viewportRect.height(),
|
glReadPixels(_viewportRect.left, g_system->getHeight() - _viewportRect.bottom, _viewportRect.width(), _viewportRect.height(),
|
||||||
GL_RGBA, GL_UNSIGNED_BYTE, surface->getPixels());
|
GL_RGBA, GL_UNSIGNED_BYTE, surface->getPixels());
|
||||||
flipVertical(surface);
|
flipVertical(surface);
|
||||||
Graphics::Surface *converted = surface->convertTo(Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0));
|
Graphics::Surface *converted = surface->convertTo(getPixelFormat());
|
||||||
screenshot->copyFrom(converted);
|
screenshot->copyFrom(converted);
|
||||||
delete surface;
|
delete surface;
|
||||||
delete converted;
|
delete converted;
|
||||||
|
|
|
@ -50,7 +50,7 @@ SaveThumbHelper::~SaveThumbHelper(void) {
|
||||||
BaseImage *SaveThumbHelper::storeThumb(bool doFlip, int width, int height) {
|
BaseImage *SaveThumbHelper::storeThumb(bool doFlip, int width, int height) {
|
||||||
BaseImage *thumbnail = nullptr;
|
BaseImage *thumbnail = nullptr;
|
||||||
if (_gameRef->getSaveThumbWidth() > 0 && _gameRef->getSaveThumbHeight() > 0) {
|
if (_gameRef->getSaveThumbWidth() > 0 && _gameRef->getSaveThumbHeight() > 0) {
|
||||||
if (doFlip && !_gameRef->_useD3D) {
|
if (doFlip) {
|
||||||
// when using opengl on windows it seems to be necessary to do this twice
|
// when using opengl on windows it seems to be necessary to do this twice
|
||||||
// works normally for direct3d
|
// works normally for direct3d
|
||||||
_gameRef->displayContent(false);
|
_gameRef->displayContent(false);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue