1. 07 Nov, 2016 1 commit
  2. 01 Nov, 2016 1 commit
    • Ken Martin's avatar
      Remove ES2 support for VTK 8.0 · 0f750114
      Ken Martin authored
      ES2 is causing headaches and code mess and is
      getting old. Remove for 8.0 so we can focus on
      more modern APIs. Most Apple and Adroid devices
      from the past 4 years support ES3.
      0f750114
  3. 21 Oct, 2016 1 commit
  4. 10 Oct, 2016 1 commit
    • Ken Martin's avatar
      ifdef out valuepass code on ES2 · 048f89ab
      Ken Martin authored
      ValuePass was having issues with OpenGL ES2 so
      this topic ifdefs the code on that platform.  The result
      is fairly messy so it really needs another pass at
      some point to do it right. This is a quick fix as
      we are heading to a release.
      048f89ab
  5. 07 Oct, 2016 1 commit
  6. 06 Oct, 2016 1 commit
  7. 28 Sep, 2016 1 commit
    • Ken Martin's avatar
      add option to render points as spheres · 9c2c3adf
      Ken Martin authored
      This topic adds an option for vtkProperty to
      request that any points rendered be draw as
      spheres.  It is used in conjunction with
      the PointSize attribute in property.
      9c2c3adf
  8. 23 Sep, 2016 1 commit
    • Kitware Robot's avatar
      Reindent using the reindentation script. · f830ff47
      Kitware Robot authored
      This commit reindents the code with the following utility:
      Utilities/Maintenance/vtk-reindent-code.py
      
      This utility changes the positions of the braces so that they are no
      longer indented relative to the code block they reside in.
      
      The bash command line used was the following:
      
      for d in Charts Common Deprecated Domains Examples Filters GUISupport \
               Geovis IO Imaging Infovis Interaction Parallel Rendering \
               Testing Views Web Wrapping; do
        for e in cxx cxx.in txx txx.in hxx hxx.in h h.in c c.in; do
          find "${d}" -name "*.${e}" -exec \
            python Utilities/Maintenance/vtk_reindent_code.py {} +
        done
      done
      f830ff47
  9. 20 Sep, 2016 1 commit
  10. 19 Sep, 2016 3 commits
  11. 18 Sep, 2016 1 commit
    • Ken Martin's avatar
      Rework the CompositePolyDataMapper2 · 7912d340
      Ken Martin authored
      The old approach used a fast path for a very narrow set of
      conditions and then used a slow path for everything else.
      This approach required two sets of code,
      
      - GenericCompositePolydataMapper2
      - CompositePolyDataMapper2
      
      and had performance issues as the slow path was slower
      than OpenGL1 for some cases. This reworking consolidates
      the two approach together. The basic approach is that
      all blocks with the same VBO structure get grouped together
      and rendered as one. The number of different VBO structures is
      small so this results in a a small number of things to render.
      
      Each of those things (handled with a Helper class) gets rendered
      using its own VBO and IBOs with special code to handle the cases
      where uniforms have to be changed between blocks etc.
      
      The results are generally much faster. Some additional
      optimizations have resulted in further performance improvements.
      Generally this new class is as fast as the old fast path and
      tens to hundreds of times faster for the slow path.
      
      This class is still complex and could probably be reworked
      another three times. The complexity is largly driven by
      how complex the task is as each block can have different
      primitives, point/cell data arrays, etc.
      
      This topic adds four more tests for this class. As this
      class is the workhourse for ParaView it really needs far
      more testing in VTK. The three additional tests cover
      some use cases I know tend to cause issues.
      
      At the same time this topic changes how point picking is
      done to prevent some bad behavior. The old approach
      rendered surfaces for all passes up to the primId pass.
      The problem with that is that the point pass rendering may
      not match up with the surface rendering resulting in point
      Ids associated with incoreect composite/prop/process ids.
      It mixes two sets of data haphazzardly. Very bad. This
      topic cuases all point selection to be done by rendering
      points.
      7912d340
  12. 16 Sep, 2016 1 commit
    • Ken Martin's avatar
      work on better resource management for OpenGL · d0e64da3
      Ken Martin authored
      new approach to ReleaseGraphicsResources where objects
      that use opengl resources can register themselves
      with their current window/context so that when either they
      delete or the context is deleted the resources will be
      cleared correctly.
      d0e64da3
  13. 09 Sep, 2016 1 commit
  14. 30 Aug, 2016 1 commit
  15. 26 Aug, 2016 1 commit
  16. 25 Aug, 2016 1 commit
  17. 24 Aug, 2016 1 commit
  18. 19 Aug, 2016 1 commit
    • Bill Lorensen's avatar
      ENH: Introduce vtkMTimeType · 9333d9d1
      Bill Lorensen authored
      This is a fix for:
      vtk/vtk#14310
      
      Windows applications that run for a long time report that rendered
      objects do not change. This is because the modified time on a Windows
      system is 32 bits. This causes overflows that defeat the modified time
      mechanism. This patch defines a new type, vtkMTimeType that is 64
      unsigned integer regardless of the architecture.
      
      A mechanism to provide backward compatibility is introduced. The
      preprocessor define "VTK_HAS_MTIME_TYPE" can be used in applications
      that must build against VTK versions that use the "unsigned long" type
      for MTime's.
      
      Methodology used to find MTime occurences:
      1) Identify files as follows:
         git grep "unsigned long" | grep ime | cut -d":" -f1,1 | sort | uniq
      2) Hand edit each of those files replacing "unsigned long" with
         "vtkMTimeType" where appropriate.
      3) Temporarily change typedef for vtkMTimeType to "double" to detect
         missing conversions
      9333d9d1
  19. 17 Aug, 2016 1 commit
  20. 11 Aug, 2016 1 commit
    • David C. Lonie's avatar
      Add Depth stage to polydata fragment shaders. · 101f9eeb
      David C. Lonie authored
      The depth peelers currently assume gl_FragCoord.z is always the depth,
      but the imposter shaders in Domains/Chemistry modify the depth.
      
      This patch adds a //VTK::Depth::Impl hook into the fragment shader
      template, before any depth peeling processing is applied. The depth
      is stored into gl_FragDepth, and all depth processing now uses this
      variable instead of gl_FragCoord.z.
      101f9eeb
  21. 18 Jul, 2016 1 commit
    • Ken Martin's avatar
      fix cell coloring of degenerate polygons · 4664aa98
      Ken Martin authored
      gl_PrimitiveID seems ot not get incremented for
      degenerate polygons consistently even if the
      point IDs are different but the ocations are the same.
      This topic skips rendering any polys that are
      degenerate based on point locations. It regresses
      back to OpenGL1 how it triangulates polygons to a
      simple algorithm as opposed to using vtkPolygon
      4664aa98
  22. 06 Jul, 2016 1 commit
  23. 08 Jun, 2016 1 commit
    • David C. Lonie's avatar
      Support multi-stage render passes in point gaussian mapper. · 7bae2498
      David C. Lonie authored
      vtkOpenGLPointGaussianMapper was not aware of the new multi-stage
      renderpass system that allows shaders to change in-between stages.
      This was causing all rendering to occur using the "InitializeDepth"
      stage shaders from vtkDualDepthPeelingPass, which only extract depth
      information.
      7bae2498
  24. 06 Jun, 2016 1 commit
  25. 06 May, 2016 1 commit
    • David C. Lonie's avatar
      Replace SafeDownCast calls on arrays with vtkArrayDownCast. · 0d71a308
      David C. Lonie authored
      SafeDownCast performs a series of virtual calls and string comparisons,
      which is quite slow, especially when used in worker functions.
      
      vtkArrayDownCast will switch between SafeDownCast and the more
      efficient FastDownCast (only available for common vtkAbstractArray
      subclasses) depending on whether or not FastDownCast is defined for
      the specific array type.
      0d71a308
  26. 26 Apr, 2016 3 commits
  27. 22 Apr, 2016 1 commit
  28. 18 Apr, 2016 1 commit
  29. 11 Apr, 2016 1 commit
    • David C. Lonie's avatar
      Add vtkDualDepthPeelingPass. · 19d945f7
      David C. Lonie authored
      This implements a new depth peeling algorithm that peels layers of
      fragments from both the front and back of the translucent geometry at
      once.
      
      This also introduces vtkOpenGLRenderPass, which provides a virtual API
      that allows custom shader code replacements without the need to edit
      all mappers.
      
      The older vtkDepthPeelingPass has been updated to use the new
      vtkOpenGLRenderPass API, and is left in VTK as a fallback for drivers
      that lack support for the dual peeling features (floating point textures
      in particular).
      19d945f7
  30. 28 Mar, 2016 1 commit
    • David Thompson's avatar
      Shift and scale VBO when precision requires it. · bc389ab2
      David Thompson authored
      This change identifies datasets that are far from their origins
      (relative to their bounds), which can result in precision problems
      when rendering. Problem datasets have their VBO modified and
      transforms concatenated to the view/display transforms sent to the
      shaders by the mapper to correct the problem.
      
      OpenGL drivers often use reduced-precision point coordinates; if the
      most significant bits are all used by a large translation then
      renderings are often misleading and frame-to-frame differences
      exaggerated. To counter this, this commit makes each VBO store shift
      and scale vectors generated when CreateVBO is called. If the origin
      is more than 10,000 bounding-box lengths away, transform the points
      as they are written to the VBO (this condition forces a slow-path where
      the VBO is generated, not copied directly from the vtkPoints array).
      When this occurs, the VBO presents a flag that informs the mapper to
      concatenate an inverse transform to the model-to-display and
      model-to-viewport matrices. Since these transformations include the
      camera projection and are done on the CPU with high precision, the
      translation is factored out of the data when the camera is nearby.
      
      This change also makes the VBO objects that the mappers own
      publicly accessible so that applications can override the behavior,
      either to manually set the shift and scale (as calling AppendVBO
      multiple times cannot compute a proper shift and scale) or to
      disable it should it cause issues.
      
      Thanks to Ken Martin for suggesting this approach.
      bc389ab2
  31. 08 Mar, 2016 1 commit
  32. 10 Feb, 2016 1 commit
    • Joachim Pouderoux's avatar
      Use GL time query to probe mapper rendering time. · 0ff60a5b
      Joachim Pouderoux authored
      So far the TimeToDraw was always set to 0.0001. Now the
      time take by the rendering calls performed by the mapper
      is evaluated using the time query provided by the GPU
      for the previous frame.
      
      This patch allows to make vtkLODMapper work as expected.
      Limitation:
       - for new backend only.
       - not supported by GLES
      0ff60a5b
  33. 29 Jan, 2016 1 commit
  34. 25 Jan, 2016 1 commit
  35. 09 Jan, 2016 1 commit
  36. 08 Jan, 2016 1 commit