instead of using backbuffer image, use the screenshot so it captures everything
virtuals removed and replaced with override where necessary on the rest of the code base, clang-tidy to the rescue.
GL layer was missing _captureBackBuffer() implementation which caused screenShot() function to fail. Also caused ScreenShot::capture() to be called every frame afterward which caused significant performance issues.