diff options
author | Piotr Dziwiński <piotrdz@gmail.com> | 2014-06-24 19:42:25 +0200 |
---|---|---|
committer | Piotr Dziwiński <piotrdz@gmail.com> | 2014-06-24 19:42:25 +0200 |
commit | ae13e0a62121d7fc8fa5ec5769ea5e7125443146 (patch) | |
tree | e2d5883e04bd01342f51d6457a130d663fc5eafd /src/graphics/engine/engine.cpp | |
parent | 52cf9e2815688481f689e03e67c5fc983ed1351b (diff) | |
parent | f5ba2a27d4422401317d814c60048121f9804429 (diff) | |
download | colobot-ae13e0a62121d7fc8fa5ec5769ea5e7125443146.tar.gz colobot-ae13e0a62121d7fc8fa5ec5769ea5e7125443146.tar.bz2 colobot-ae13e0a62121d7fc8fa5ec5769ea5e7125443146.zip |
Merge pull request #304 from MohamedWaheed/dev
Savefile screenshot implementation and screenshot loading bug fix
Diffstat (limited to 'src/graphics/engine/engine.cpp')
-rw-r--r-- | src/graphics/engine/engine.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index d6e4415..e0861d2 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -424,9 +424,20 @@ void CEngine::FrameUpdate() bool CEngine::WriteScreenShot(const std::string& fileName, int width, int height) { - // TODO write screenshot: not very important for now - GetLogger()->Debug("CEngine::WriteSceenShot(): stub!\n"); - return true; + void *pixels = m_device->GetFrameBufferPixels(); + CImage img({width,height}); + + img.SetDataPixels(pixels); + img.flipVertically(); + + if ( img.SavePNG(fileName.c_str()) ){ + GetLogger()->Info("Save SceenShot Saved Successfully!\n"); + return true; + } + else{ + GetLogger()->Error("%s!\n",img.GetError().c_str()); + return false; + } } bool CEngine::GetPause() |