Update PLS obfuscation

Diffs=
a1fa56a08 Update PLS obfuscation (#5642)

Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
diff --git a/.rive_head b/.rive_head
index c23dda5..1006195 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-9b75cdb96c2e7dc1f15551cbbf3e0f320759c078
+a1fa56a0874ffabc3ee69cbed7f0478fa2792eb7
diff --git a/obfuscator/generate_pls_renames.py b/obfuscator/generate_pls_renames.py
index b539d4b..75ebcdc 100644
--- a/obfuscator/generate_pls_renames.py
+++ b/obfuscator/generate_pls_renames.py
@@ -19,7 +19,7 @@
     'drawPath', 'flush', 'get', 'height', 'id', 'join', 'lineTo', 'loadAction',
     'makeEmptyRenderPath', 'makeRenderPaint', 'makeRenderPath', 'moveTo', 'path', 'pixelFormat',
     'pop', 'pop_front', 'push', 'push_back', 'renderTarget', 'restore', 'rewind', 'save',
-    'setColor', 'transform', 'width'}
+    'setColor', 'transform', 'width', 'begin', 'end', 'reset'}
 swizzle_pattern = re.compile(r"^([xyzw]{1,4}|[rgba]{1,4}|[stpq]{1,4})$")
 private_symbols = set()
 
diff --git a/obfuscator/pls_renames.h b/obfuscator/pls_renames.h
index 237c763..45283ed 100644
--- a/obfuscator/pls_renames.h
+++ b/obfuscator/pls_renames.h
@@ -1,407 +1,532 @@
 #define AlignedBuffer r_0
 #define BlendTier r_1
 #define BlendTierForBlendMode r_2
-#define BufferRing r_3
-#define BufferRingImpl r_4
-#define BufferRingShadowImpl r_5
-#define BytesPerPixel r_6
-#define CalcPolarSegmentsPerRadian r_7
-#define ChopCubicAt r_8
-#define ClipElement r_9
-#define ColorRampPipeline r_a
-#define ColorRampUniforms r_b
-#define ContourData r_c
-#define CoverageBackingType r_d
+#define BufferGL r_3
+#define BufferMetal r_4
+#define BufferRing r_5
+#define BufferRingImpl r_6
+#define BufferRingShadowImpl r_7
+#define BytesPerPixel r_8
+#define CalcPolarSegmentsPerRadian r_9
+#define ChopCubicAt r_a
+#define ClipElement r_b
+#define ColorRampPipeline r_c
+#define ContourData r_d
 #define DeepHashGradient r_e
-#define DrawPipeline r_f
-#define DrawProgram r_10
-#define DrawShader r_11
-#define DrawUniforms r_12
-#define EvalCubicAt r_13
-#define FindCubicConvex180Chops r_14
-#define FixedQueue r_15
-#define FlushType r_16
-#define Format r_17
-#define FrameDescriptor r_18
-#define GenerateWedgeTriangles r_19
-#define GradientContentKey r_1a
-#define GradientLibrary r_1b
-#define GradientSpan r_1c
-#define IsAABB r_1d
-#define JoinTypeFlag r_1e
-#define LoadAction r_1f
-#define MaxPathID r_20
-#define MeasureAngleBetweenVectors r_21
-#define PLSBlendMode r_22
-#define PLSFactory r_23
-#define PLSGradDataArray r_24
-#define PLSGradient r_25
-#define PLSPaint r_26
-#define PLSPath r_27
-#define PLSRenderContext r_28
-#define PLSRenderContextESNative r_29
-#define PLSRenderContextGL r_2a
-#define PLSRenderContextMetal r_2b
-#define PLSRenderTarget r_2c
-#define PLSRenderTargetGL r_2d
-#define PLSRenderTargetMetal r_2e
-#define PLSRenderer r_2f
-#define PaintData r_30
-#define PaintType r_31
-#define PathData r_32
-#define PathDraw r_33
-#define PathTextureHeight r_34
-#define PlatformFeatures r_35
-#define RenderState r_36
-#define ShaderFeatures r_37
-#define SourceType r_38
-#define StyledVerb r_39
-#define TessVertexSpan r_3a
-#define TessellatePipeline r_3b
-#define TessellateUniforms r_3c
-#define TexelBufferGL r_3d
-#define TexelBufferMetal r_3e
-#define TexelBufferRing r_3f
-#define TwoTexelRamp r_40
-#define UniformBufferGL r_41
-#define UniformBufferMetal r_42
-#define UniformBufferRing r_43
-#define VertexBufferGL r_44
-#define VertexBufferMetal r_45
-#define WedgeVertex r_46
-#define activatePixelLocalStorage r_47
-#define add r_48
-#define addPaint r_49
-#define addRenderPath r_4a
-#define advanced_blend r_4b
-#define allocateBackingTexture r_4c
-#define allocateBackingTextures r_4d
-#define applyClip r_4e
-#define avoidFlatVaryings r_4f
-#define bind r_50
-#define bindCurrentBuffer r_51
-#define bindToUniformBlock r_52
-#define blendMode r_53
-#define blendTier r_54
-#define blend_mode_rive_to_pls r_55
-#define bytesWritten r_56
-#define cap r_57
-#define capPolarSegmentCount r_58
-#define capacity r_59
-#define chop_cubic_around_cusps r_5a
-#define chop_key r_5b
-#define clipID r_5c
-#define clipStackHeight r_5d
-#define closed r_5e
-#define coeffs r_5f
-#define color r_60
-#define color1 r_61
-#define colorData r_62
-#define color_ramp r_63
-#define colors r_64
-#define contentMatches r_65
-#define contourBufferRing r_66
-#define contourIDWithFlags r_67
-#define convert_line_to_cubic r_68
-#define count r_69
-#define createDrawUniformBuffer r_6a
-#define createReadFramebuffer r_6b
-#define cusp_chop_key r_6c
-#define data r_6d
-#define deactivatePixelLocalStorage r_6e
-#define decodeImage r_6f
-#define draw r_70
-#define drawFramebufferID r_71
-#define drawImageMesh r_72
-#define emplace_back r_73
-#define empty r_74
-#define enableEvenOdd r_75
-#define enablePathClipping r_76
-#define endCurveIdx r_77
-#define endLineIdx r_78
-#define endOfContour r_79
-#define endRotationIdx r_7a
-#define ensureMapped r_7b
-#define fillCoverage r_7c
-#define fillRule r_7d
-#define fillsDisabled r_7e
-#define find_cubic_tangents r_7f
-#define find_final_control_point r_80
-#define find_first_control_point r_81
-#define find_join_tangent r_82
-#define find_join_tangent_full_impl r_83
-#define flags r_84
-#define format_gl r_85
-#define fragmentFeatures r_86
-#define frameDescriptor r_87
-#define generateClipID r_88
-#define generatePreprocessorDefines r_89
-#define getBlendMode r_8a
-#define getCap r_8b
-#define getClipContentID r_8c
-#define getColor r_8d
-#define getFillRule r_8e
-#define getGradient r_8f
-#define getIsStroked r_90
-#define getJoin r_91
-#define getRawPath r_92
-#define getThickness r_93
-#define getType r_94
-#define glsl r_95
-#define gpu r_96
-#define gradSpanBufferRing r_97
-#define gradTexelBufferRing r_98
-#define gradient r_99
-#define gradientLibrary r_9a
-#define hasPendingColorRampsToRender r_9b
-#define hasRoomFor r_9c
-#define horizontalSpan r_9d
-#define ignore r_9e
-#define impl r_9f
-#define internalformat_gl r_a0
-#define invalidateStroke r_a1
-#define isMidpoint r_a2
-#define is_next_iter r_a3
-#define itemSizeInBytes r_a4
-#define joinCount r_a5
-#define joinTangent r_a6
-#define kBevelJoin r_a7
-#define kBufferRingSize r_a8
-#define kClipPlaneIdx r_a9
-#define kContourIDMask r_aa
-#define kContourTexelsPerItem r_ab
-#define kContourTextureHeight r_ac
-#define kContourTextureIdx r_ad
-#define kContourTextureWidthInItems r_ae
-#define kCoveragePlaneIdx r_af
-#define kEvenOdd r_b0
-#define kFirstVertexOfContour r_b1
-#define kFramebufferPlaneIdx r_b2
-#define kGradTextureHeight r_b3
-#define kGradTextureIdx r_b4
-#define kGradTextureWidth r_b5
-#define kGradient r_b6
-#define kLargestDenormalizedFP16 r_b7
-#define kLargestFP16BeforeExponentAll1s r_b8
-#define kMaxContourID r_b9
-#define kMaxGradientSpans r_ba
-#define kMaxParametricSegments r_bb
-#define kMaxPolarSegments r_bc
-#define kMaxTessVertexSpans r_bd
-#define kMaxTessVertices r_be
-#define kMiterJoin r_bf
-#define kOriginalDstColorPlaneIdx r_c0
-#define kParametricPrecision r_c1
-#define kPathTexelsPerItem r_c2
-#define kPathTextureIdx r_c3
-#define kPathTextureWidthInItems r_c4
-#define kPolarPrecision r_c5
-#define kRadialGradient r_c6
-#define kReservedRowsForSimpleRamps r_c7
-#define kRoundJoinStyleFlag r_c8
-#define kStrokeStyleFlag r_c9
-#define kTessTextureHeight r_ca
-#define kTessTextureWidth r_cb
-#define kTessTextureWidthLog2 r_cc
-#define kTessVertexTextureIdx r_cd
-#define kWedgeIndexCount r_ce
-#define kWedgeSize r_cf
-#define kWedgeVertexCount r_d0
-#define localVertexID r_d1
-#define lockNextBufferRingIndex r_d2
-#define m_activeTextureIdx r_d3
-#define m_blendMode r_d4
-#define m_buffer r_d5
-#define m_bufferRingIdx r_d6
-#define m_bufferRingLocks r_d7
-#define m_buffers r_d8
-#define m_cap r_d9
-#define m_capacity r_da
-#define m_chops r_db
-#define m_clipContentID r_dc
-#define m_clipMemorylessTexture r_dd
-#define m_clipStack r_de
-#define m_clipTextureID r_df
-#define m_coeffs r_e0
-#define m_color r_e1
-#define m_colorRampFBO r_e2
-#define m_colorRampPipeline r_e3
-#define m_colorRampProgram r_e4
-#define m_colorRampVAO r_e5
-#define m_colors r_e6
-#define m_complexGradients r_e7
-#define m_context r_e8
-#define m_contourBatch r_e9
-#define m_contourBuffer r_ea
-#define m_count r_eb
-#define m_coverageMemorylessTexture r_ec
-#define m_coverageTextureID r_ed
-#define m_currentContourID r_ee
-#define m_currentContourIDWithFlags r_ef
-#define m_currentContourPaddingVertexCount r_f0
-#define m_currentPathID r_f1
-#define m_currentPathIsStroked r_f2
-#define m_data r_f3
-#define m_drawFramebufferID r_f4
-#define m_drawPipelines r_f5
-#define m_drawPrograms r_f6
-#define m_drawUniformBuffer r_f7
-#define m_drawVAO r_f8
-#define m_end r_f9
-#define m_fillRule r_fa
-#define m_format r_fb
-#define m_frameDescriptor r_fc
-#define m_front r_fd
-#define m_gpu r_fe
-#define m_gradSpanBuffer r_ff
-#define m_gradTexelBuffer r_100
-#define m_gradient r_101
-#define m_gradientLibrary r_102
-#define m_hasArtboardClipCandidate r_103
-#define m_height r_104
-#define m_id r_105
-#define m_ids r_106
-#define m_impl r_107
-#define m_isFirstFlushOfFrame r_108
-#define m_itemSizeInBytes r_109
-#define m_join r_10a
-#define m_lastGeneratedClipID r_10b
-#define m_localData r_10c
-#define m_mappedMemory r_10d
-#define m_mappingEnd r_10e
-#define m_maxPathID r_10f
-#define m_nextMappedItem r_110
-#define m_numChops r_111
-#define m_offscreenTextureID r_112
-#define m_originalDstColorMemorylessTexture r_113
-#define m_originalDstColorTextureID r_114
-#define m_ownsDrawFramebuffer r_115
-#define m_paintType r_116
-#define m_parametricSegmentCounts r_117
-#define m_parametricSegmentCounts_pow4 r_118
-#define m_pathBatch r_119
-#define m_pathBuffer r_11a
-#define m_pathWedgeIndexBuffer r_11b
-#define m_pathWedgeVertexBuffer r_11c
-#define m_pixelFormat r_11d
-#define m_platformFeatures r_11e
-#define m_plsLibrary r_11f
-#define m_polarSegmentCounts r_120
-#define m_queue r_121
-#define m_rawPath r_122
-#define m_readFramebufferID r_123
-#define m_shaderFeatures r_124
-#define m_shadowBuffer r_125
-#define m_simpleGradients r_126
-#define m_stack r_127
-#define m_stops r_128
-#define m_stroked r_129
-#define m_submittedBufferIdx r_12a
-#define m_submittedComplexColorRampCount r_12b
-#define m_submittedGradSpanCount r_12c
-#define m_tangentPairs r_12d
-#define m_targetTexture r_12e
-#define m_tessPipeline r_12f
-#define m_tessSpanBuffer r_130
-#define m_tessVertexCount r_131
-#define m_tessVertexTexture r_132
-#define m_tessellateFBO r_133
-#define m_tessellateProgram r_134
-#define m_tessellateUniformBufferRing r_135
-#define m_tessellateVAO r_136
-#define m_texelsPerItem r_137
-#define m_textures r_138
-#define m_thickness r_139
-#define m_uniformBuffer r_13a
-#define m_vertexShaders r_13b
-#define m_width r_13c
-#define m_widthInItems r_13d
-#define makeBufferF32 r_13e
-#define makeBufferU16 r_13f
-#define makeBufferU32 r_140
-#define makeLinearGradient r_141
-#define makeOffscreenRenderTarget r_142
-#define makeRadialGradient r_143
-#define makeRenderTarget r_144
-#define make_cap r_145
-#define make_memoryless_pls_texture r_146
-#define make_pipeline_state r_147
-#define mapBuffer r_148
-#define mapped r_149
-#define math r_14a
-#define matrix r_14b
-#define midpoint r_14c
-#define onBeginFrame r_14d
-#define onFlush r_14e
-#define onMapBuffer r_14f
-#define onUnmapAndSubmitBuffer r_150
-#define outset r_151
-#define pad r_152
-#define paddingVertexCount r_153
-#define paintData r_154
-#define paintType r_155
-#define params r_156
-#define pathBufferRing r_157
-#define pathID r_158
-#define pathIDGranularity r_159
-#define pathIdx r_15a
-#define pathutils r_15b
-#define pls r_15c
-#define pop_front_n r_15d
-#define programFeatures r_15e
-#define pushContour r_15f
-#define pushCubic r_160
-#define pushInternalPathBatch r_161
-#define pushPath r_162
-#define push_back_n r_163
-#define rawPath r_164
-#define readFramebufferID r_165
-#define reservePathData r_166
-#define resize r_167
-#define resizeAndRewind r_168
-#define rive_pls_ios_metallib r_169
-#define rive_pls_ios_metallib_len r_16a
-#define rive_pls_macosx_metallib r_16b
-#define rive_pls_macosx_metallib_len r_16c
-#define segmentCounts r_16d
-#define set r_16e
-#define setClipContentID r_16f
-#define setGradient r_170
-#define setTargetTexture r_171
-#define set_back r_172
-#define shader r_173
-#define shadowBuffer r_174
-#define simple_chop_key r_175
-#define stops r_176
-#define strokeRadius r_177
-#define strokesDisabled r_178
-#define style r_179
-#define style_flags r_17a
-#define styled_verb r_17b
-#define submit r_17c
-#define submitTexels r_17d
-#define submittedBuffer r_17e
-#define submittedBufferIdx r_17f
-#define submittedComplexColorRampCount r_180
-#define submittedGradSpanCount r_181
-#define submittedTexture r_182
-#define submittedTextureID r_183
-#define targetTexture r_184
-#define tessSpanBufferRing r_185
-#define tessTexWidthLog2_pathIDGranularity r_186
-#define tessellate r_187
-#define tessellateUniformBufferRing r_188
-#define thickness r_189
-#define type_gl r_18a
-#define uniformBufferRing r_18b
-#define uniqueKey r_18c
-#define unmapAndSubmitBuffer r_18d
-#define vertexDiscardValue r_18e
-#define vertexIndex0 r_18f
-#define viewportHeight r_190
-#define viewportWidth r_191
-#define widthInItems r_192
-#define widthInTexels r_193
-#define wireframe r_194
-#define wrapGLRenderTarget r_195
-#define x0x1 r_196
+#define Draw r_f
+#define DrawPipeline r_10
+#define DrawProgram r_11
+#define DrawShader r_12
+#define DrawType r_13
+#define EvalCubicAt r_14
+#define Filter r_15
+#define FindCubicConvex180Chops r_16
+#define FindSubdivisionCount r_17
+#define FindTransformedArea r_18
+#define FixedQueue r_19
+#define FlushType r_1a
+#define FlushUniforms r_1b
+#define Format r_1c
+#define FrameDescriptor r_1d
+#define GPUResourceLimits r_1e
+#define GeneratePatchBufferData r_1f
+#define GradientContentKey r_20
+#define GradientLibrary r_21
+#define GradientSpan r_22
+#define InteriorTriangulationHelper r_23
+#define IsAABB r_24
+#define Iter r_25
+#define JoinTypeFlags r_26
+#define LoadAction r_27
+#define MakePLSImplEXTNative r_28
+#define MakePLSImplFramebufferFetch r_29
+#define MakePLSImplRWTexture r_2a
+#define MakePLSImplWebGL r_2b
+#define MaxPathID r_2c
+#define MeasureAngleBetweenVectors r_2d
+#define Node r_2e
+#define PLSBlendMode r_2f
+#define PLSFactory r_30
+#define PLSGradDataArray r_31
+#define PLSGradient r_32
+#define PLSImpl r_33
+#define PLSImplEXTNative r_34
+#define PLSImplFramebufferFetch r_35
+#define PLSImplRWTexture r_36
+#define PLSImplWebGL r_37
+#define PLSPaint r_38
+#define PLSPath r_39
+#define PLSRenderContext r_3a
+#define PLSRenderContextGL r_3b
+#define PLSRenderContextMetal r_3c
+#define PLSRenderTarget r_3d
+#define PLSRenderTargetGL r_3e
+#define PLSRenderTargetMetal r_3f
+#define PLSRenderer r_40
+#define PaddingToAlignUp r_41
+#define PaintData r_42
+#define PaintType r_43
+#define PatchBaseIndex r_44
+#define PatchIndexCount r_45
+#define PatchSegmentSpan r_46
+#define PatchType r_47
+#define PatchVertex r_48
+#define PathData r_49
+#define PathDraw r_4a
+#define PathOp r_4b
+#define PerFlushLinkedList r_4c
+#define PlatformFeatures r_4d
+#define PreprocessorDefines r_4e
+#define RenderState r_4f
+#define Renderable r_50
+#define ShaderFeatures r_51
+#define ShaderUniqueKey r_52
+#define SourceType r_53
+#define StyledVerb r_54
+#define TessVertexCounter r_55
+#define TessVertexSpan r_56
+#define TessellatePipeline r_57
+#define TexelBufferGL r_58
+#define TexelBufferMetal r_59
+#define TexelBufferRing r_5a
+#define TriangleVertex r_5b
+#define TwoTexelRamp r_5c
+#define accumulateMax r_5d
+#define activatePixelLocalStorage r_5e
+#define addRenderPath r_5f
+#define advanced_blend r_60
+#define allocateBackingTexture r_61
+#define allocateCoverageBackingTextures r_62
+#define allocateGPUResources r_63
+#define allocateTessellationTexture r_64
+#define applyClip r_65
+#define attachTexturesToCurrentFramebuffer r_66
+#define avoidFlatVaryings r_67
+#define barrier r_68
+#define baseInstancePolyfillLocation r_69
+#define baseVertexOrInstance r_6a
+#define bindProgram r_6b
+#define bindVAO r_6c
+#define bits_equal r_6d
+#define blendMode r_6e
+#define blendTier r_6f
+#define blend_mode_rive_to_pls r_70
+#define bytesWritten r_71
+#define cap r_72
+#define capacity r_73
+#define chop_cubic_around_cusps r_74
+#define chop_key r_75
+#define clipID r_76
+#define clipStackHeight r_77
+#define closed r_78
+#define coeffs r_79
+#define color r_7a
+#define color1 r_7b
+#define colorData r_7c
+#define color_ramp r_7d
+#define colors r_7e
+#define common r_7f
+#define contourBufferRing r_80
+#define contourCount r_81
+#define contourIDWithFlags r_82
+#define convert_line_to_cubic r_83
+#define count r_84
+#define countPath r_85
+#define createSideFramebuffer r_86
+#define cusp_chop_key r_87
+#define data r_88
+#define deactivatePixelLocalStorage r_89
+#define decodeImage r_8a
+#define draw r_8b
+#define drawFramebufferID r_8c
+#define drawImageMesh r_8d
+#define drawType r_8e
+#define emplace_back r_8f
+#define empty r_90
+#define empty_stroke_cap r_91
+#define enableEvenOdd r_92
+#define enablePathClipping r_93
+#define endCurveIdx r_94
+#define endLineIdx r_95
+#define endOfContour r_96
+#define endRotationIdx r_97
+#define ensureMapped r_98
+#define ensureRasterOrderingEnabled r_99
+#define fillCoverage r_9a
+#define fillRule r_9b
+#define fillsDisabled r_9c
+#define filter_gl r_9d
+#define find_cubic_tan0 r_9e
+#define find_cubic_tan1 r_9f
+#define find_cubic_tangents r_a0
+#define find_ending_tangent r_a1
+#define find_join_tangent r_a2
+#define find_join_tangent_full_impl r_a3
+#define find_starting_tangent r_a4
+#define firstContourIdx r_a5
+#define flags r_a6
+#define format_gl r_a7
+#define fragmentFeatures r_a8
+#define frameDescriptor r_a9
+#define freeBuffer r_aa
+#define generateClipID r_ab
+#define generate_buffer_data_for_patch_type r_ac
+#define getBlendMode r_ad
+#define getBounds r_ae
+#define getCap r_af
+#define getClipContentID r_b0
+#define getColor r_b1
+#define getFillRule r_b2
+#define getGradient r_b3
+#define getIsStroked r_b4
+#define getJoin r_b5
+#define getPreprocessorDefines r_b6
+#define getRawPath r_b7
+#define getThickness r_b8
+#define getType r_b9
+#define gl_buffer_id r_ba
+#define gl_texture_id r_bb
+#define glsl r_bc
+#define gpu r_bd
+#define gradSpanBufferRing r_be
+#define gradTexelBufferRing r_bf
+#define gradTextureInverseHeight r_c0
+#define gradTextureRowsForSimpleRamps r_c1
+#define gradient r_c2
+#define growExceededGPUResources r_c3
+#define hasRoomFor r_c4
+#define horizontalSpan r_c5
+#define ignore r_c6
+#define impl r_c7
+#define intermediateFlush r_c8
+#define internalformat_gl r_c9
+#define invalidateStroke r_ca
+#define inverseViewports r_cb
+#define invertOffscreenY r_cc
+#define is_final_verb_of_contour r_cd
+#define itemSizeInBytes r_ce
+#define joinTangent r_cf
+#define kBevelJoin r_d0
+#define kBufferRingSize r_d1
+#define kClipPlaneIdx r_d2
+#define kContourIDMask r_d3
+#define kContourTexelsPerItem r_d4
+#define kContourTextureIdx r_d5
+#define kContourTextureWidthInItems r_d6
+#define kCoveragePlaneIdx r_d7
+#define kCullExcessTessellationSegments r_d8
+#define kEmulatedStrokeCap r_d9
+#define kEvenOdd r_da
+#define kFanMidpointVertex r_db
+#define kFanVertex r_dc
+#define kFramebufferPlaneIdx r_dd
+#define kGPUResourceIntermediateGrowthFactor r_de
+#define kGPUResourcePadding r_df
+#define kGradTextureIdx r_e0
+#define kGradTextureWidth r_e1
+#define kGradTextureWidthInSimpleRamps r_e2
+#define kGradient r_e3
+#define kJoinSegmentCount r_e4
+#define kJoinTypeMask r_e5
+#define kLargestDenormalizedFP16 r_e6
+#define kLargestFP16BeforeExponentAll1s r_e7
+#define kMaxContourID r_e8
+#define kMaxCurveSubdivisions r_e9
+#define kMaxParametricSegments r_ea
+#define kMaxPolarSegments r_eb
+#define kMidpointFanPatchBaseIndex r_ec
+#define kMidpointFanPatchIndexCount r_ed
+#define kMidpointFanPatchSegmentSpan r_ee
+#define kMidpointFanPatchVertexCount r_ef
+#define kMiterClipJoin r_f0
+#define kMiterRevertJoin r_f1
+#define kNumSegmentsInMiterOrBevelJoin r_f2
+#define kOriginalDstColorPlaneIdx r_f3
+#define kOuterCurvePatchBaseIndex r_f4
+#define kOuterCurvePatchIndexCount r_f5
+#define kOuterCurvePatchSegmentSpan r_f6
+#define kOuterCurvePatchVertexCount r_f7
+#define kPLSDrawBuffers r_f8
+#define kParametricPrecision r_f9
+#define kPatchIndexBufferCount r_fa
+#define kPatchSegmentCountExcludingJoin r_fb
+#define kPatchVertexBufferCount r_fc
+#define kPathTexelsPerItem r_fd
+#define kPathTextureIdx r_fe
+#define kPathTextureWidthInItems r_ff
+#define kPerFlushAllocatorInitialBlockSize r_100
+#define kPolarPrecision r_101
+#define kRadialGradient r_102
+#define kRetrofittedTriangle r_103
+#define kRoundJoinStyleFlag r_104
+#define kShaderVersionStringBuffSize r_105
+#define kStrokeStyleFlag r_106
+#define kStrokeVertex r_107
+#define kTessTextureWidth r_108
+#define kTessTextureWidthLog2 r_109
+#define kTessVertexTextureIdx r_10a
+#define localVertexID r_10b
+#define lockNextBufferRingIndex r_10c
+#define m_activeTextureIdx r_10d
+#define m_baseInstancePolyfillLocation r_10e
+#define m_blendMode r_10f
+#define m_boundProgramID r_110
+#define m_boundVAO r_111
+#define m_bounds r_112
+#define m_boundsDirty r_113
+#define m_buffer r_114
+#define m_bufferRingIdx r_115
+#define m_bufferRingLocks r_116
+#define m_buffers r_117
+#define m_cachedUniformData r_118
+#define m_cap r_119
+#define m_capacity r_11a
+#define m_chops r_11b
+#define m_clipContentID r_11c
+#define m_clipMemorylessTexture r_11d
+#define m_clipStack r_11e
+#define m_clipTextureID r_11f
+#define m_coeffs r_120
+#define m_color r_121
+#define m_colorRampFBO r_122
+#define m_colorRampPipeline r_123
+#define m_colorRampProgram r_124
+#define m_colorRampVAO r_125
+#define m_colors r_126
+#define m_complexGradients r_127
+#define m_context r_128
+#define m_contourBatch r_129
+#define m_contourBuffer r_12a
+#define m_count r_12b
+#define m_coverageMemorylessTexture r_12c
+#define m_coverageTextureID r_12d
+#define m_current r_12e
+#define m_currentContourID r_12f
+#define m_currentContourPaddingVertexCount r_130
+#define m_currentFrameResourceUsage r_131
+#define m_currentPathID r_132
+#define m_currentPathIsStroked r_133
+#define m_currentPathNeedsMirroredContours r_134
+#define m_currentResourceLimits r_135
+#define m_data r_136
+#define m_drawFramebufferID r_137
+#define m_drawList r_138
+#define m_drawListCount r_139
+#define m_drawPipelines r_13a
+#define m_drawPrograms r_13b
+#define m_drawVAO r_13c
+#define m_end r_13d
+#define m_extensions r_13e
+#define m_fillRule r_13f
+#define m_format r_140
+#define m_frameDescriptor r_141
+#define m_front r_142
+#define m_gpu r_143
+#define m_gradSpanBuffer r_144
+#define m_gradTexelBuffer r_145
+#define m_gradTextureRowsForSimpleRamps r_146
+#define m_gradient r_147
+#define m_hasArtboardClipCandidate r_148
+#define m_head r_149
+#define m_height r_14a
+#define m_id r_14b
+#define m_ids r_14c
+#define m_impl r_14d
+#define m_initialTessVertexCount r_14e
+#define m_interiorTrianglesVAO r_14f
+#define m_isFirstFlushOfFrame r_150
+#define m_itemSizeInBytes r_151
+#define m_join r_152
+#define m_lastGeneratedClipID r_153
+#define m_localData r_154
+#define m_mappedMemory r_155
+#define m_mappingEnd r_156
+#define m_maxPathID r_157
+#define m_maxRecentResourceUsage r_158
+#define m_maxTriangleVertexCount r_159
+#define m_mirroredTessLocation r_15a
+#define m_nextMappedItem r_15b
+#define m_numChops r_15c
+#define m_offscreenTextureID r_15d
+#define m_originalDstColorMemorylessTexture r_15e
+#define m_originalDstColorTextureID r_15f
+#define m_ownsDrawFramebuffer r_160
+#define m_paintType r_161
+#define m_parametricSegmentCounts r_162
+#define m_parametricSegmentCounts_pow4 r_163
+#define m_patchCount r_164
+#define m_patchIndicesBuffer r_165
+#define m_patchVerticesBuffer r_166
+#define m_pathBatch r_167
+#define m_pathBuffer r_168
+#define m_pathPatchIndexBuffer r_169
+#define m_pathPatchVertexBuffer r_16a
+#define m_pixelFormat r_16b
+#define m_platformFeatures r_16c
+#define m_plsImpl r_16d
+#define m_plsLibrary r_16e
+#define m_polarSegmentCounts r_16f
+#define m_queue r_170
+#define m_rasterOrderingEnabled r_171
+#define m_rawPath r_172
+#define m_runningTessVertexCount r_173
+#define m_scratchPath r_174
+#define m_shaderVersionString r_175
+#define m_shadowBuffer r_176
+#define m_sideFramebufferID r_177
+#define m_simpleGradients r_178
+#define m_stack r_179
+#define m_stops r_17a
+#define m_stroked r_17b
+#define m_submittedBufferIdx r_17c
+#define m_tail r_17d
+#define m_tangentPairs r_17e
+#define m_target r_17f
+#define m_targetTexture r_180
+#define m_tessPipeline r_181
+#define m_tessSpanBuffer r_182
+#define m_tessVertexCount r_183
+#define m_tessVertexTexture r_184
+#define m_tessellateFBO r_185
+#define m_tessellateProgram r_186
+#define m_tessellateVAO r_187
+#define m_texelsPerItem r_188
+#define m_textures r_189
+#define m_thickness r_18a
+#define m_triangleBuffer r_18b
+#define m_trivialPerFlushAllocator r_18c
+#define m_uniformBuffer r_18d
+#define m_vertexShaders r_18e
+#define m_width r_18f
+#define m_widthInItems r_190
+#define makeBufferF32 r_191
+#define makeBufferU16 r_192
+#define makeBufferU32 r_193
+#define makeLinearGradient r_194
+#define makeOffscreenRenderTarget r_195
+#define makeRadialGradient r_196
+#define makeRenderTarget r_197
+#define makeScaled r_198
+#define makeScaledIfLarger r_199
+#define makeTexelBufferRing r_19a
+#define makeUniformBufferRing r_19b
+#define makeVertexBufferRing r_19c
+#define make_memoryless_pls_texture r_19d
+#define make_pipeline_state r_19e
+#define mapBuffer r_19f
+#define mapped r_1a0
+#define matrix r_1a1
+#define maxComplexGradientSpans r_1a2
+#define maxComplexGradients r_1a3
+#define maxContourID r_1a4
+#define maxPathID r_1a5
+#define maxSimpleGradients r_1a6
+#define maxTessellationSpans r_1a7
+#define maxTessellationVertices r_1a8
+#define maxTriangleVertices r_1a9
+#define midpoint r_1aa
+#define mirroredFillCoverage r_1ab
+#define mirroredOutset r_1ac
+#define mirroredVertexID r_1ad
+#define next r_1ae
+#define onBarrier r_1af
+#define onBeginFrame r_1b0
+#define onEnableRasterOrdering r_1b1
+#define onFlush r_1b2
+#define onMapBuffer r_1b3
+#define onUnmapAndSubmitBuffer r_1b4
+#define outset r_1b5
+#define pack_params r_1b6
+#define pad r_1b7
+#define paddingVertexCount r_1b8
+#define paintData r_1b9
+#define paintType r_1ba
+#define params r_1bb
+#define patchCount r_1bc
+#define pathBounds r_1bd
+#define pathBufferRing r_1be
+#define pathID r_1bf
+#define pathIDGranularity r_1c0
+#define pathutils r_1c1
+#define pls r_1c2
+#define point r_1c3
+#define pop_front_n r_1c4
+#define processPath r_1c5
+#define programFeatures r_1c6
+#define pushContour r_1c7
+#define pushCubic r_1c8
+#define pushDraw r_1c9
+#define pushEmulatedStrokeCapAsJoinBeforeCubic r_1ca
+#define pushGradient r_1cb
+#define pushInteriorTriangulation r_1cc
+#define pushInternalPathBatch r_1cd
+#define pushMirroredTessellationSpans r_1ce
+#define pushPaddingVertices r_1cf
+#define pushPaint r_1d0
+#define pushPath r_1d1
+#define pushTessellationSpans r_1d2
+#define push_back_n r_1d3
+#define rawPath r_1d4
+#define reflectionX0X1 r_1d5
+#define reflectionY r_1d6
+#define reservePathData r_1d7
+#define resetGPUResources r_1d8
+#define resize r_1d9
+#define resizeAndRewind r_1da
+#define resource_texture_height r_1db
+#define rive_pls_ios_metallib r_1dc
+#define rive_pls_ios_metallib_len r_1dd
+#define rive_pls_macosx_metallib r_1de
+#define rive_pls_macosx_metallib_len r_1df
+#define segmentCounts r_1e0
+#define set r_1e1
+#define setClipContentID r_1e2
+#define setGradient r_1e3
+#define setMirroredPosition r_1e4
+#define setTargetTexture r_1e5
+#define set_back r_1e6
+#define shader r_1e7
+#define shaderDefineName r_1e8
+#define shaderFeatures r_1e9
+#define shadowBuffer r_1ea
+#define shrinkGPUResourcesToFit r_1eb
+#define sideFramebufferID r_1ec
+#define simple_chop_key r_1ed
+#define stops r_1ee
+#define strokeCapSegmentCount r_1ef
+#define strokeJoinCount r_1f0
+#define strokeRadius r_1f1
+#define strokesDisabled r_1f2
+#define style r_1f3
+#define style_flags r_1f4
+#define styled_verb r_1f5
+#define submit r_1f6
+#define submitTexels r_1f7
+#define submittedBuffer r_1f8
+#define submittedBufferID r_1f9
+#define submittedBufferIdx r_1fa
+#define submittedTexture r_1fb
+#define submittedTextureID r_1fc
+#define tail r_1fd
+#define targetTexture r_1fe
+#define tessSpanBufferRing r_1ff
+#define tessVertexCount r_200
+#define tessellate r_201
+#define thickness r_202
+#define totalSizeInBytes r_203
+#define totalVertexCountIncludingReflectionsAndPadding r_204
+#define triangleBufferRing r_205
+#define triangulator r_206
+#define trivialPerFlushAllocator r_207
+#define type_gl r_208
+#define uniformBufferRing r_209
+#define unmapAndSubmitBuffer r_20a
+#define vertexDiscardValue r_20b
+#define vertexIndex0 r_20c
+#define vertexOrInstanceCount r_20d
+#define weight_pathID r_20e
+#define widthInItems r_20f
+#define widthInTexels r_210
+#define wireframe r_211
+#define wrapGLRenderTarget r_212
+#define x0x1 r_213
diff --git a/renderer/metal/pls_metal_nop.cpp b/renderer/metal/pls_metal_nop.cpp
index fcb2301..5aa07ce 100644
--- a/renderer/metal/pls_metal_nop.cpp
+++ b/renderer/metal/pls_metal_nop.cpp
@@ -6,10 +6,15 @@
 // their symbols without needing to support Objective-C. We currently use castxml, which does not
 // support Objective-C.
 
+#include <cstddef>
+
 #define RIVE_OBJC_NOP
 
 template <typename T> struct id
-{};
+{
+    id() = default;
+    id(std::nullptr_t) {}
+};
 
 using MTLDevice = void*;
 using MTLCommandQueue = void*;