VTK  9.3.0
vtkOpenGLES30PolyDataMapper2D.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
20 #ifndef vtkOpenGLES30PolyDataMapper2D_h
21 #define vtkOpenGLES30PolyDataMapper2D_h
22 
24 
25 #include "vtkOpenGLVertexBufferObjectGroup.h" // for ivar
26 #include "vtkRenderingOpenGL2Module.h" // for export macro
27 
28 VTK_ABI_NAMESPACE_BEGIN
29 
30 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLES30PolyDataMapper2D : public vtkOpenGLPolyDataMapper2D
31 {
32 public:
35  void PrintSelf(ostream& os, vtkIndent indent) override;
36 
38  {
39  PrimitiveStart = 0,
40  PrimitivePoints = 0,
44  PrimitiveEnd
45  };
46 
50  void RenderOverlay(vtkViewport* viewport, vtkActor2D* actor) override;
51 
58 
59 protected:
62 
66  void BuildShaders(std::string& VertexCode, std::string& fragmentCode, std::string& geometryCode,
67  vtkViewport* ren, vtkActor2D* act) override;
68 
73 
79 
83  void UpdateShaders(vtkOpenGLHelper& cellBO, vtkViewport* viewport, vtkActor2D* act) override;
84 
89  vtkOpenGLHelper& cellBO, vtkViewport* viewport, vtkActor2D* act) override;
90 
94  void UpdateVBO(vtkActor2D* act, vtkViewport* viewport);
95 
96  std::vector<unsigned int> PrimitiveIndexArrays[PrimitiveEnd];
97  vtkNew<vtkOpenGLVertexBufferObjectGroup> PrimitiveVBOGroup[PrimitiveEnd];
98  PrimitiveTypes CurrentDrawCallPrimtiveType = PrimitiveEnd;
99 
100 private:
102  void operator=(const vtkOpenGLES30PolyDataMapper2D&) = delete;
103 };
104 
105 VTK_ABI_NAMESPACE_END
106 #endif
a actor that draws 2D data
Definition: vtkActor2D.h:35
a simple class to control print indentation
Definition: vtkIndent.h:29
2D PolyData support for OpenGL ES 3.0
void BuildShaders(std::string &VertexCode, std::string &fragmentCode, std::string &geometryCode, vtkViewport *ren, vtkActor2D *act) override
Build the shader source code.
static vtkOpenGLES30PolyDataMapper2D * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void ReplaceShaderPointSize(std::string &VSSource, vtkViewport *ren, vtkActor2D *act)
In GLES 3.0, point size is set from the vertex shader.
void UpdateVBO(vtkActor2D *act, vtkViewport *viewport)
Update the scene when necessary.
void ReplaceShaderWideLines(std::string &VSSource, vtkViewport *ren, vtkActor2D *act)
GLES 3.0 does not support wide lines (width > 1).
void UpdateShaders(vtkOpenGLHelper &cellBO, vtkViewport *viewport, vtkActor2D *act) override
Determine what shader to use and compile/link it.
void RenderOverlay(vtkViewport *viewport, vtkActor2D *actor) override
Actually draw the poly data.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
void SetMapperShaderParameters(vtkOpenGLHelper &cellBO, vtkViewport *viewport, vtkActor2D *act) override
Set the shader parameters related to the mapper/input data, called by UpdateShader.
~vtkOpenGLES30PolyDataMapper2D() override
2D PolyData support for OpenGL
abstract specification for Viewports
Definition: vtkViewport.h:45
window superclass for vtkRenderWindow
Definition: vtkWindow.h:28
@ string
Definition: vtkX3D.h:490