Class TComposedShaderNode

Unit

Declaration

type TComposedShaderNode = class(TAbstractShaderNode)

Description

OpenGL Shading Language (GLSL) shader container, which should be composed from multiple TShaderPartNode instances.

Hierarchy

Overview

Methods

Public constructor Create(const AX3DName: String = ''; const ABaseUrl: String = ''); override;
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;
Public procedure SetParts(const Value: array of TShaderPartNode);

Properties

Public property FdParts: TMFNode read FFdParts;
Public property FdUniformMissing: TSFStringEnum read FFdUniformMissing;
Public property UniformMissing: TUniformMissing read GetUniformMissing write SetUniformMissing;

Description

Methods

Public constructor Create(const AX3DName: String = ''; const ABaseUrl: String = ''); override;

This item has no description. Showing description inherited from TX3DNode.Create.

Constructor. Initializes various properties:

  • Name, BaseUrl are initialized from given parameters.

  • The Fields, Events lists are filled in every descendant, to have all the fields/events defined by the specification.

  • DefaultContainerField, and other node-specific stuff, is filled in descendants. This is actually implemented in CreateNode, that is called at the end of this constructor.

Public procedure CreateNode; override;

Create node fields and events.

Public class function ClassX3DType: String; override;

This item has no description. Showing description inherited from TX3DNode.ClassX3DType.

Node type name in VRML/X3D, for this class. Normal VRML/X3D node classes should override this to return something non-empty, and then X3DType automatically will return the same value.

Empty for classes that don't have a hardcoded VRML/X3D node name, like a special TX3DUnknownNode. Such special classes should override then X3DType to return actual non-empty name there.

You usually should call X3DType. The only use of this method is that it works on classes (it's "class function"), without needing at actual instance.

Public procedure SetParts(const Value: array of TShaderPartNode);

This item has no description.

Properties

Public property FdParts: TMFNode read FFdParts;

Internal wrapper for property Parts. This wrapper API may change, we advise to access simpler Parts instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property FdUniformMissing: TSFStringEnum read FFdUniformMissing;

Internal wrapper for property UniformMissing. This wrapper API may change, we advise to access simpler UniformMissing instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property UniformMissing: TUniformMissing read GetUniformMissing write SetUniformMissing;

Should we report a missing uniform value. Setting this to umWarning (default) is useful to spot simple mistakes in naming uniforms. On the other hand, OpenGL aggressively removes unused uniforms from code, and it may cause spurious messages that some uniform is missing – even though the shader is correct, is just doesn't use some uniform value e.g. because no lights are present on the current scene.


Generated by PasDoc 0.16.0-snapshot.