Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • VTK VTK
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 757
    • Issues 757
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 205
    • Merge requests 205
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • VTK
  • VTKVTK
  • Merge requests
  • !5214

Qt widgets refactor

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Utkarsh Ayachit requested to merge utkarsh.ayachit/vtk:qvtkopenglwidget_refactor into master Feb 18, 2019
  • Overview 147
  • Commits 7
  • Pipelines 35
  • Changes 43

Cleanups the QT/VTK rendering classes as follows:

  1. Consolidates rendering logic between QVTKOpenGLWindow and QVTKOpenGLNativeWidget to avoid duplication. The crux of the VTK-Qt OpenGL rendering code now sits in a new class QVTKRenderWindowAdapter. QVTKOpenGLWindow and QVTKOpenGLNativeWidget simply calls methods on QVTKRenderWindowAdapter at appropriate points in painting and resizing.

  2. QVTKRenderWindowAdapter is designed to exist together with a valid QOpenGLContext. QVTKOpenGLWindow and QVTKOpenGLNativeWidget create and destroy instances of QVTKRenderWindowAdapter every time new context is created/destroyed. This keeps code in QVTKRenderWindowAdapter simpler since it doesn't need to handle cases where context is invalid.

  3. QVTKRenderWindowAdapter uses an internal FBO to do all the rendering. This avoids issues like paraview/paraview#18513 (closed), paraview/paraview#18446 (closed).

  4. API on QVTKOpenGLWindow, QVTKOpenGLNativeWidget and QVTKOpenGLWidget has been updated to follow Qt-style for naming public methods since these classes are QObject subclasses. All non-confirming public methods have been marked as deprecated.

  5. Tests have been updated to tests all three variants i.e. QVTKOpenGLWindow, QVTKOpenGLNativeWidget and QVTKOpenGLWidget without duplicating the test code. This should make it easier to more tests that continue to consistently tests these 3 variants.

  6. Changes minimum recommended Qt version to 5.6 (Qt 5.5 is supported with limited functionality)

Edited Mar 13, 2019 by Utkarsh Ayachit
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: qvtkopenglwidget_refactor