VTK  9.6.20260202
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
19
20#ifndef vtkOpenGLES30PolyDataMapper2D_h
21#define vtkOpenGLES30PolyDataMapper2D_h
22
24
25#include "vtkOpenGLVertexBufferObjectGroup.h" // for ivar
26#include "vtkRenderingOpenGL2Module.h" // for export macro
27#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
28
29VTK_ABI_NAMESPACE_BEGIN
31
32class VTKRENDERINGOPENGL2_EXPORT VTK_MARSHALAUTO vtkOpenGLES30PolyDataMapper2D
34{
35public:
40 void PrintSelf(ostream& os, vtkIndent indent) override;
41
42 // NOLINTNEXTLINE(readability-enum-initial-value)
52
56 void RenderOverlay(vtkViewport* viewport, vtkActor2D* actor) override;
57
64
65protected:
68
72 void BuildShaders(std::string& VertexCode, std::string& fragmentCode, std::string& geometryCode,
73 vtkViewport* ren, vtkActor2D* act) override;
74
78 void ReplaceShaderPointSize(std::string& VSSource, vtkViewport* ren, vtkActor2D* act);
79
84 void ReplaceShaderWideLines(std::string& VSSource, vtkViewport* ren, vtkActor2D* act);
85
89 void UpdateShaders(vtkOpenGLHelper& cellBO, vtkViewport* viewport, vtkActor2D* act) override;
90
95 vtkOpenGLHelper& cellBO, vtkViewport* viewport, vtkActor2D* act) override;
96
100 void UpdateVBO(vtkActor2D* act, vtkViewport* viewport);
101
102 std::vector<unsigned int> PrimitiveIndexArrays[PrimitiveEnd];
105
106private:
108 void operator=(const vtkOpenGLES30PolyDataMapper2D&) = delete;
109};
110
111#define vtkOpenGLES30PolyDataMapper2D_OVERRIDE_ATTRIBUTES \
112 vtkOpenGLES30PolyDataMapper2D::CreateOverrideAttributes()
113VTK_ABI_NAMESPACE_END
114#endif
a actor that draws 2D data
Definition vtkActor2D.h:145
a simple class to control print indentation
Definition vtkIndent.h:108
Allocate and hold a VTK object.
Definition vtkNew.h:167
void BuildShaders(std::string &VertexCode, std::string &fragmentCode, std::string &geometryCode, vtkViewport *ren, vtkActor2D *act) override
Build the shader source code.
static vtkOverrideAttribute * CreateOverrideAttributes()
std::vector< unsigned int > PrimitiveIndexArrays[PrimitiveEnd]
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.
vtkNew< vtkOpenGLVertexBufferObjectGroup > PrimitiveVBOGroup[PrimitiveEnd]
~vtkOpenGLES30PolyDataMapper2D() override
Attribute for vtkObjectFactory overrides.
abstract specification for Viewports
Definition vtkViewport.h:66
window superclass for vtkRenderWindow
Definition vtkWindow.h:61
#define VTK_MARSHALAUTO
#define VTK_NEWINSTANCE