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
28VTK_ABI_NAMESPACE_BEGIN
29
30class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLES30PolyDataMapper2D : public vtkOpenGLPolyDataMapper2D
31{
32public:
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
59protected:
62
66 void BuildShaders(std::string& VertexCode, std::string& fragmentCode, std::string& geometryCode,
67 vtkViewport* ren, vtkActor2D* act) override;
68
72 void ReplaceShaderPointSize(std::string& VSSource, vtkViewport* ren, vtkActor2D* act);
73
78 void ReplaceShaderWideLines(std::string& VSSource, vtkViewport* ren, vtkActor2D* act);
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
100private:
102 void operator=(const vtkOpenGLES30PolyDataMapper2D&) = delete;
103};
104
105VTK_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
Allocate and hold a VTK object.
Definition vtkNew.h:51
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.
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.
static vtkOpenGLES30PolyDataMapper2D * New()
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:25