vtkSequencePass.h 2.35 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkSequencePass.h

  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.

=========================================================================*/
// .NAME vtkSequencePass - Execute render passes sequentially.
// .SECTION Description
// vtkSequencePass executes a list of render passes sequentially.
// This class allows to define a sequence of render passes at run time.
// The other solution to write a sequence of render passes is to write an
// effective subclass of vtkRenderPass.
//
// As vtkSequencePass is a vtkRenderPass itself, it is possible to have a
// hierarchy of render passes built at runtime.
// .SECTION See Also
// vtkRenderPass

27 28
#ifndef vtkSequencePass_h
#define vtkSequencePass_h
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

#include "vtkRenderingOpenGL2Module.h" // For export macro
#include "vtkRenderPass.h"

class vtkRenderPassCollection;

class VTKRENDERINGOPENGL2_EXPORT vtkSequencePass : public vtkRenderPass
{
public:
  static vtkSequencePass *New();
  vtkTypeMacro(vtkSequencePass,vtkRenderPass);
  void PrintSelf(ostream& os, vtkIndent indent);

  //BTX
  // Description:
  // Perform rendering according to a render state \p s.
  // \pre s_exists: s!=0
  virtual void Render(const vtkRenderState *s);
  //ETX

  // Description:
  // Release graphics resources and ask components to release their own
  // resources.
  // \pre w_exists: w!=0
  virtual void ReleaseGraphicsResources(vtkWindow *w);

  // Description:
  // The ordered list of render passes to execute sequentially.
  // If the pointer is NULL or the list is empty, it is silently ignored.
  // There is no warning.
  // Initial value is a NULL pointer.
  vtkGetObjectMacro(Passes,vtkRenderPassCollection);
  virtual void SetPasses(vtkRenderPassCollection *passes);

protected:
  vtkRenderPassCollection *Passes;

  vtkSequencePass();
  virtual ~vtkSequencePass();

private:
  vtkSequencePass(const vtkSequencePass&);  // Not implemented.
  void operator=(const vtkSequencePass&);  // Not implemented.
};

#endif