@@ -275,15 +275,7 @@ class NVGImage {
275275
276276 ~NVGImage ()
277277 {
278- if (subImages.size () && nvg) {
279- for (auto const & subImage : subImages) {
280- if (auto * surface = NVGSurface::getSurfaceForContext (nvg)) {
281- surface->makeContextActive ();
282- }
283-
284- nvgDeleteImage (nvg, subImage.imageId );
285- }
286- }
278+ deleteImage ();
287279 allImages.erase (this );
288280 }
289281
@@ -315,6 +307,21 @@ class NVGImage {
315307 loadJUCEImage (nvg, componentImage);
316308 render (nvg, { 0 , 0 , component.getWidth (), component.getHeight () });
317309 }
310+
311+
312+ void deleteImage ()
313+ {
314+ if (subImages.size () && nvg) {
315+ for (auto const & subImage : subImages) {
316+ if (auto * surface = NVGSurface::getSurfaceForContext (nvg)) {
317+ surface->makeContextActive ();
318+ }
319+
320+ nvgDeleteImage (nvg, subImage.imageId );
321+ }
322+ subImages.clear ();
323+ }
324+ }
318325
319326 void loadJUCEImage (NVGcontext* context, Image& image, int const repeatImage = false , int const withMipmaps = false )
320327 {
@@ -349,14 +356,14 @@ class NVGImage {
349356 else if (image.isSingleChannel ())
350357 subImage.imageId = nvgCreateImageAlpha (nvg, totalWidth, totalHeight, flags, imageData.data );
351358
352- subImages. clear ();
359+ deleteImage ();
353360
354361 subImage.bounds = image.getBounds ();
355362 subImages.add (subImage);
356363 return ;
357364 }
358365
359- subImages. clear ();
366+ deleteImage ();
360367
361368 int x = 0 ;
362369 while (x < totalWidth) {
0 commit comments