diff --git a/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.cxx index 80dcf173e046dbf6aacbc2660cde0d1c52fa0cc7..240b7e49137341f6250c15ded2244cd527ed3e7c 100644 --- a/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.cxx +++ b/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.cxx @@ -252,6 +252,34 @@ int vtkGenericOpenGLRenderWindow::ReadPixels( return VTK_ERROR; } +int vtkGenericOpenGLRenderWindow::SetPixelData( + int x1, int y1, int x2, int y2, unsigned char* data, int front, int right) +{ + if (this->ReadyForRendering) + { + this->MakeCurrent(); + this->GetState()->ResetFramebufferBindings(); + return this->Superclass::SetPixelData(x1, y1, x2, y2, data, front, right); + } + + vtkWarningMacro("`SetPixelData` called before window is ready for rendering; ignoring."); + return VTK_ERROR; +} + +int vtkGenericOpenGLRenderWindow::SetPixelData( + int x1, int y1, int x2, int y2, vtkUnsignedCharArray* data, int front, int right) +{ + if (this->ReadyForRendering) + { + this->MakeCurrent(); + this->GetState()->ResetFramebufferBindings(); + return this->Superclass::SetPixelData(x1, y1, x2, y2, data, front, right); + } + + vtkWarningMacro("`SetPixelData` called before window is ready for rendering; ignoring."); + return VTK_ERROR; +} + int vtkGenericOpenGLRenderWindow::SetRGBACharPixelData( int x1, int y1, int x2, int y2, unsigned char* data, int front, int blend, int right) { diff --git a/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.h b/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.h index c51fa8a486f9d52d5dd211698a234664eeb267f4..2d60957ebc75e71fbdaa6fbed03db432858fb905 100644 --- a/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.h +++ b/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.h @@ -178,6 +178,10 @@ protected: int ReadPixels( const vtkRecti& rect, int front, int glFormat, int glType, void* data, int right) override; + int SetPixelData( + int x1, int y1, int x2, int y2, unsigned char* data, int front, int right) override; + int SetPixelData( + int x1, int y1, int x2, int y2, vtkUnsignedCharArray* data, int front, int right) override; int SetRGBACharPixelData( int x1, int y1, int x2, int y2, unsigned char* data, int front, int blend, int right) override; int SetRGBACharPixelData(int x, int y, int x2, int y2, vtkUnsignedCharArray* data, int front,