#279 Use frame buffer objects for snapshots when available, otherwise use grabFrameBuffer()

This commit is contained in:
Magne Sjaastad
2016-08-31 17:34:31 +02:00
parent 457c3c732b
commit 0128baddff
7 changed files with 145 additions and 66 deletions

View File

@@ -255,21 +255,14 @@ void RimView::updateViewerWidget()
//--------------------------------------------------------------------------------------------------
QImage RimView::snapshotWindowContent()
{
QImage image;
if (m_viewer)
{
m_viewer->repaint();
GLint currentReadBuffer;
glGetIntegerv(GL_READ_BUFFER, &currentReadBuffer);
glReadBuffer(GL_FRONT);
image = m_viewer->grabFrameBuffer();
glReadBuffer(currentReadBuffer);
return m_viewer->snapshotImage();
}
return image;
return QImage();
}
//--------------------------------------------------------------------------------------------------

View File

@@ -154,6 +154,7 @@ public:
void selectOverlayInfoConfig();
virtual QImage snapshotWindowContent() override;
virtual void zoomAll() override;
@@ -197,9 +198,6 @@ protected:
virtual void resetLegendsInViewer() = 0;
virtual void calculateCurrentTotalCellVisibility(cvf::UByteArray* totalVisibility) = 0;
virtual QImage snapshotWindowContent() override;
QPointer<RiuViewer> m_viewer;
caf::PdmField<int> m_currentTimeStep;