MCPcopy Create free account
hub / github.com/Kitware/VTK / Render

Method Render

Rendering/Core/vtkRendererCollection.cxx:13–53  ·  view source on GitHub ↗

Forward the Render() method to each renderer in the list.

Source from the content-addressed store, hash-verified

11
12// Forward the Render() method to each renderer in the list.
13void vtkRendererCollection::Render()
14{
15 vtkRenderer *ren, *firstRen;
16 vtkRenderWindow* renWin;
17 int numLayers, i;
18
19 vtkCollectionSimpleIterator rsit;
20 this->InitTraversal(rsit);
21 firstRen = this->GetNextRenderer(rsit);
22 if (firstRen == nullptr)
23 {
24 // We cannot determine the number of layers because there are no
25 // renderers. No problem, just return.
26 return;
27 }
28 renWin = firstRen->GetRenderWindow();
29 numLayers = renWin->GetNumberOfLayers();
30
31 // Only have the renderers render from back to front. This is necessary
32 // because transparent renderers clear the z-buffer before each render and
33 // then overlay their image.
34 for (i = 0; i < numLayers; i++)
35 {
36 for (this->InitTraversal(rsit); (ren = this->GetNextRenderer(rsit));)
37 {
38 if (ren->GetLayer() == i)
39 {
40 ren->Render();
41 }
42 }
43 }
44
45 // Let the user know if they have put a renderer at an unused layer.
46 for (this->InitTraversal(rsit); (ren = this->GetNextRenderer(rsit));)
47 {
48 if (ren->GetLayer() < 0 || ren->GetLayer() >= numLayers)
49 {
50 vtkErrorMacro(<< "Invalid layer for renderer: not rendered.");
51 }
52 }
53}
54
55vtkRenderer* vtkRendererCollection::GetFirstRenderer()
56{

Callers

nothing calls this directly

Calls 5

GetLayerMethod · 0.80
RenderMethod · 0.65
InitTraversalMethod · 0.45
GetRenderWindowMethod · 0.45
GetNumberOfLayersMethod · 0.45

Tested by

no test coverage detected