From d8cc250280b37b169a0a781e409420f62552df3b Mon Sep 17 00:00:00 2001 From: Lucas Gandel <lucas.gandel@kitware.com> Date: Thu, 18 Nov 2021 17:02:46 +0100 Subject: [PATCH] Add RenderFramebuffer FlipY test --- Rendering/OpenGL2/Testing/Cxx/CMakeLists.txt | 1 + .../Testing/Cxx/TestFlipRenderFramebuffer.cxx | 79 +++++++++++++++++++ .../TestFlipRenderFramebuffer.png.sha512 | 1 + 3 files changed, 81 insertions(+) create mode 100644 Rendering/OpenGL2/Testing/Cxx/TestFlipRenderFramebuffer.cxx create mode 100644 Rendering/OpenGL2/Testing/Data/Baseline/TestFlipRenderFramebuffer.png.sha512 diff --git a/Rendering/OpenGL2/Testing/Cxx/CMakeLists.txt b/Rendering/OpenGL2/Testing/Cxx/CMakeLists.txt index 2ce57943f8e..57df1793f31 100644 --- a/Rendering/OpenGL2/Testing/Cxx/CMakeLists.txt +++ b/Rendering/OpenGL2/Testing/Cxx/CMakeLists.txt @@ -36,6 +36,7 @@ vtk_add_test_cxx(vtkRenderingOpenGL2CxxTests tests TestFXAAFilter.cxx TestFXAAPass.cxx TestFXAAWithEDLPass.cxx + TestFlipRenderFramebuffer.cxx TestFloor.cxx TestFluidMapper.cxx TestFramebufferHDR.cxx diff --git a/Rendering/OpenGL2/Testing/Cxx/TestFlipRenderFramebuffer.cxx b/Rendering/OpenGL2/Testing/Cxx/TestFlipRenderFramebuffer.cxx new file mode 100644 index 00000000000..ed07b9e8bd2 --- /dev/null +++ b/Rendering/OpenGL2/Testing/Cxx/TestFlipRenderFramebuffer.cxx @@ -0,0 +1,79 @@ +/*========================================================================= + + Program: Visualization Toolkit + + Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen + All rights reserved. + See Copyright.txt or http://www.kitware.com/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notice for more information. + +=========================================================================*/ + +#include "vtkActor.h" +#include "vtkAxesActor.h" +#include "vtkConeSource.h" +#include "vtkNew.h" +#include "vtkOpenGLPolyDataMapper.h" +#include "vtkOpenGLRenderWindow.h" +#include "vtkRegressionTestImage.h" +#include "vtkRenderWindowInteractor.h" +#include "vtkRenderer.h" +#include "vtkTestUtilities.h" +#include "vtkTextActor.h" +#include "vtkTextProperty.h" + +//------------------------------------------------------------------------------ +int TestFlipRenderFramebuffer(int argc, char* argv[]) +{ + vtkNew<vtkRenderWindow> renderWindow; + renderWindow->SetSize(600, 600); + vtkOpenGLRenderWindow::SafeDownCast(renderWindow)->FramebufferFlipYOn(); + + vtkNew<vtkRenderWindowInteractor> iren; + iren->SetRenderWindow(renderWindow.Get()); + + renderWindow->SetNumberOfLayers(2); + + vtkNew<vtkRenderer> renderer; + renderWindow->AddRenderer(renderer); + + vtkNew<vtkRenderer> overlay; + renderWindow->AddRenderer(overlay); + overlay->SetLayer(1); + overlay->SetViewport(0, 0, 0.4, 0.4); + + // cone + vtkNew<vtkConeSource> source; + source->SetDirection(0, 1, 0); + + vtkNew<vtkOpenGLPolyDataMapper> mapper; + mapper->SetInputConnection(source->GetOutputPort()); + + vtkNew<vtkActor> actor; + actor->SetMapper(mapper); + renderer->AddActor(actor); + + // text actor + vtkNew<vtkTextActor> textActor; + textActor->SetInput("FlipY Tests"); + textActor->GetTextProperty()->SetFontSize(30); + renderer->AddActor(textActor); + + // axes actor overlay + vtkNew<vtkAxesActor> axes; + overlay->AddActor(axes); + + renderer->ResetCamera(); + renderWindow->Render(); + + int retVal = vtkRegressionTestImage(renderWindow.Get()); + if (retVal == vtkRegressionTester::DO_INTERACTOR) + { + iren->Start(); + } + + return !retVal; +} diff --git a/Rendering/OpenGL2/Testing/Data/Baseline/TestFlipRenderFramebuffer.png.sha512 b/Rendering/OpenGL2/Testing/Data/Baseline/TestFlipRenderFramebuffer.png.sha512 new file mode 100644 index 00000000000..dee12ee15ed --- /dev/null +++ b/Rendering/OpenGL2/Testing/Data/Baseline/TestFlipRenderFramebuffer.png.sha512 @@ -0,0 +1 @@ +168ed08e12d1606b2dc5098e75a122c488edb6616799e7aa254cddc874845598c8036287b86122bf6c1ff877aa639057a458dff87b442582fdc6d978de70e553 -- GitLab