1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Add final specifiers in implementation files

This commit is contained in:
Tom Poole 2023-10-06 13:08:34 +01:00
parent aee5a3a45e
commit 6bf9bb9a2e
315 changed files with 1031 additions and 1025 deletions

View file

@ -41,8 +41,8 @@ struct TextureInfo
//==============================================================================
// This list persists in the OpenGLContext, and will re-use cached textures which
// are created from Images.
struct CachedImageList : public ReferenceCountedObject,
private ImagePixelData::Listener
struct CachedImageList final : public ReferenceCountedObject,
private ImagePixelData::Listener
{
CachedImageList (OpenGLContext& c) noexcept
: context (c), maxCacheSize (c.getImageCacheSize()) {}
@ -348,7 +348,7 @@ private:
};
//==============================================================================
struct ShaderPrograms : public ReferenceCountedObject
struct ShaderPrograms final : public ReferenceCountedObject
{
ShaderPrograms (OpenGLContext& context)
: solidColourProgram (context),
@ -404,11 +404,13 @@ struct ShaderPrograms : public ReferenceCountedObject
}
}
virtual ~ShaderProgramHolder() = default;
OpenGLShaderProgram program;
String lastError;
};
struct ShaderBase : public ShaderProgramHolder
struct ShaderBase : public ShaderProgramHolder
{
ShaderBase (OpenGLContext& context, const char* fragmentShader, const char* vertexShader = nullptr)
: ShaderProgramHolder (context, fragmentShader, vertexShader),
@ -463,7 +465,7 @@ struct ShaderPrograms : public ReferenceCountedObject
#define JUCE_DECLARE_VARYING_COLOUR "varying " JUCE_MEDIUMP " vec4 frontColour;"
#define JUCE_DECLARE_VARYING_PIXELPOS "varying " JUCE_HIGHP " vec2 pixelPos;"
struct SolidColourProgram : public ShaderBase
struct SolidColourProgram final : public ShaderBase
{
SolidColourProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_VARYING_COLOUR
@ -477,7 +479,7 @@ struct ShaderPrograms : public ReferenceCountedObject
"1.0 - (pixelPos.y - float (maskBounds.y)) / float (maskBounds.w))"
#define JUCE_GET_MASK_ALPHA "texture2D (maskTexture, " JUCE_FRAGCOORD_TO_MASK_POS ").a"
struct SolidColourMaskedProgram : public ShaderBase
struct SolidColourMaskedProgram final : public ShaderBase
{
SolidColourMaskedProgram (OpenGLContext& context)
: ShaderBase (context,
@ -517,7 +519,7 @@ struct ShaderPrograms : public ReferenceCountedObject
" + vec2 (matrix[2], matrix[5]))"
#define JUCE_GET_TEXTURE_COLOUR "(frontColour.a * texture2D (gradientTexture, vec2 (gradientPos, 0.5)))"
struct RadialGradientProgram : public ShaderBase
struct RadialGradientProgram final : public ShaderBase
{
RadialGradientProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_VARYING_PIXELPOS
@ -533,7 +535,7 @@ struct ShaderPrograms : public ReferenceCountedObject
RadialGradientParams gradientParams;
};
struct RadialGradientMaskedProgram : public ShaderBase
struct RadialGradientMaskedProgram final : public ShaderBase
{
RadialGradientMaskedProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_VARYING_PIXELPOS
@ -569,7 +571,7 @@ struct ShaderPrograms : public ReferenceCountedObject
#define JUCE_CALC_LINEAR_GRAD_POS1 JUCE_MEDIUMP " float gradientPos = (pixelPos.y - (gradientInfo.y + (gradientInfo.z * (pixelPos.x - gradientInfo.x)))) / gradientInfo.w;"
#define JUCE_CALC_LINEAR_GRAD_POS2 JUCE_MEDIUMP " float gradientPos = (pixelPos.x - (gradientInfo.x + (gradientInfo.z * (pixelPos.y - gradientInfo.y)))) / gradientInfo.w;"
struct LinearGradient1Program : public ShaderBase
struct LinearGradient1Program final : public ShaderBase
{
LinearGradient1Program (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_LINEAR_UNIFORMS // gradientInfo: x = x1, y = y1, z = (y2 - y1) / (x2 - x1), w = length
@ -584,7 +586,7 @@ struct ShaderPrograms : public ReferenceCountedObject
LinearGradientParams gradientParams;
};
struct LinearGradient1MaskedProgram : public ShaderBase
struct LinearGradient1MaskedProgram final : public ShaderBase
{
LinearGradient1MaskedProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_LINEAR_UNIFORMS // gradientInfo: x = x1, y = y1, z = (y2 - y1) / (x2 - x1), w = length
@ -602,7 +604,7 @@ struct ShaderPrograms : public ReferenceCountedObject
MaskedShaderParams maskParams;
};
struct LinearGradient2Program : public ShaderBase
struct LinearGradient2Program final : public ShaderBase
{
LinearGradient2Program (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_LINEAR_UNIFORMS // gradientInfo: x = x1, y = y1, z = (x2 - x1) / (y2 - y1), y = y1, w = length
@ -617,7 +619,7 @@ struct ShaderPrograms : public ReferenceCountedObject
LinearGradientParams gradientParams;
};
struct LinearGradient2MaskedProgram : public ShaderBase
struct LinearGradient2MaskedProgram final : public ShaderBase
{
LinearGradient2MaskedProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_LINEAR_UNIFORMS // gradientInfo: x = x1, y = y1, z = (x2 - x1) / (y2 - y1), y = y1, w = length
@ -683,7 +685,7 @@ struct ShaderPrograms : public ReferenceCountedObject
#define JUCE_CLAMP_TEXTURE_COORD JUCE_HIGHP " vec2 texturePos = clamp (" JUCE_MATRIX_TIMES_FRAGCOORD ", vec2 (0, 0), imageLimits);"
#define JUCE_MOD_TEXTURE_COORD JUCE_HIGHP " vec2 texturePos = mod (" JUCE_MATRIX_TIMES_FRAGCOORD ", imageLimits);"
struct ImageProgram : public ShaderBase
struct ImageProgram final : public ShaderBase
{
ImageProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_VARYING_COLOUR
@ -715,7 +717,7 @@ struct ShaderPrograms : public ReferenceCountedObject
ImageParams imageParams;
};
struct ImageMaskedProgram : public ShaderBase
struct ImageMaskedProgram final : public ShaderBase
{
ImageMaskedProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS JUCE_DECLARE_MASK_UNIFORMS
@ -732,7 +734,7 @@ struct ShaderPrograms : public ReferenceCountedObject
MaskedShaderParams maskParams;
};
struct TiledImageProgram : public ShaderBase
struct TiledImageProgram final : public ShaderBase
{
TiledImageProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS
@ -747,7 +749,7 @@ struct ShaderPrograms : public ReferenceCountedObject
ImageParams imageParams;
};
struct TiledImageMaskedProgram : public ShaderBase
struct TiledImageMaskedProgram final : public ShaderBase
{
TiledImageMaskedProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS JUCE_DECLARE_MASK_UNIFORMS
@ -764,7 +766,7 @@ struct ShaderPrograms : public ReferenceCountedObject
MaskedShaderParams maskParams;
};
struct CopyTextureProgram : public ShaderBase
struct CopyTextureProgram final : public ShaderBase
{
CopyTextureProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS
@ -779,7 +781,7 @@ struct ShaderPrograms : public ReferenceCountedObject
ImageParams imageParams;
};
struct MaskTextureProgram : public ShaderBase
struct MaskTextureProgram final : public ShaderBase
{
MaskTextureProgram (OpenGLContext& context)
: ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS
@ -1689,7 +1691,7 @@ private:
};
//==============================================================================
struct SavedState : public RenderingHelpers::SavedStateBase<SavedState>
struct SavedState final : public RenderingHelpers::SavedStateBase<SavedState>
{
using BaseClass = RenderingHelpers::SavedStateBase<SavedState>;
@ -1861,7 +1863,7 @@ private:
//==============================================================================
struct ShaderContext : public RenderingHelpers::StackBasedLowLevelGraphicsContext<SavedState>
struct ShaderContext final : public RenderingHelpers::StackBasedLowLevelGraphicsContext<SavedState>
{
ShaderContext (const Target& target) : glState (target)
{
@ -1878,7 +1880,7 @@ struct ShaderContext : public RenderingHelpers::StackBasedLowLevelGraphicsCont
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ShaderContext)
};
struct NonShaderContext : public LowLevelGraphicsSoftwareRenderer
struct NonShaderContext final : public LowLevelGraphicsSoftwareRenderer
{
NonShaderContext (const Target& t, const Image& im)
: LowLevelGraphicsSoftwareRenderer (im), target (t), image (im)
@ -1959,8 +1961,8 @@ std::unique_ptr<LowLevelGraphicsContext> createOpenGLGraphicsContext (OpenGLCont
}
//==============================================================================
struct CustomProgram : public ReferenceCountedObject,
public OpenGLRendering::ShaderPrograms::ShaderBase
struct CustomProgram final : public ReferenceCountedObject,
public OpenGLRendering::ShaderPrograms::ShaderBase
{
CustomProgram (OpenGLRendering::ShaderContext& c, const String& fragmentShader)
: ShaderBase (c.glState.target.context, fragmentShader.toRawUTF8())