52 void GLRender(SoGLRenderAction* action)
override;
56 std::vector<SoView2DShaderCustomInclude*>
_includes;
#define SOVIEW2D_API
File to resolve system dependencies in View2D library.
Class managing an OpenGL shader program.
SoView2DExtension()
Constructor.
Container class for includes.
Container class to specify a change operation for the shader pipeline shader.
Stores information for each overlay to render.
void combineShaderString(const SoView2DShaderState ¤tState, const ShaderPipelineCodeTarget &source, std::string &output)
void applyFragmentOperations(const std::vector< SoView2DShaderOperation * > &operations)
void overwriteDrawingSettings(SoView2DDrawingSettings &settings) override
SoView2DShaderBuiltInFunctions::SetupState _setupState
SoView2DShaderBuiltInIncludes::IncludeContainer _builtInIncludes
void appendFunction(ShaderPipeline &pipeline, int step, SoView2DShaderBuiltInFunctions::SoView2DShaderFunction *function, const SoView2DShaderState ¤tState)
void addFragmentIncludes(const std::vector< SoView2DShaderCustomInclude * > &includes)
ShaderPipeline _fragmentPipeline
The fragment shader pipeline.
void draw(View2DSliceList *dsl, View2DSlice *dslice, int slice) override
Draws a border on the given slice.
void addOverlay(SoGLShaderProgram *program, SoView2DShaderOverlayInfo *overlay, float dx1, float dy1, float dx2, float dy2)
Adds the overlay uniforms to the shader program.
void fillDiagnosis(CachedShader ¤t, SoView2DShaderDiagnosis *diagnosisModule, SoState *state)
SoSFEnum blendMode
select the blend mode of the shader
SoView2DShaderBuiltInFunctions::WriteFragment _writeFragment
void GLRender(SoGLRenderAction *action) override
SoSFBool disableBaseImageDrawing
If enabled, the SoView2D does not draw its base image.
void createShaders(std::string &vertexShader, std::string &fragmentShader, SoState *state, const SoView2DShaderState ¤tState)
a list that holds all View2DSlice objects (lazily created) of a SoView2D
a single slice that is stored in a View2DSliceList, typically created by a View2DSliceList
Drawing settings that can be overwritten by extensions.
SoView2DShaderDiagnosis * _diagnosis
std::vector< SoView2DShaderOperation * > _operations
SoNodeList _shaderParameters
std::vector< SoView2DShaderCustomInclude * > _includes
std::vector< size_t > _nodeIds
std::vector< SoView2DShaderOverlayInfo * > _overlays
SoView2DShaderState _currentState
SoRef< SoVertexShader > _vertexShader
SoRef< SoShaderProgram > _shaderProgram
std::string _fragmentShaderString
SoRef< SoFragmentShader > _fragmentShader
std::string _vertexShaderString