Browse Source

Make all ColorSpectrum bitmaps globally accessible by the control for future disposal

pull/9140/head
robloo 4 years ago
parent
commit
4f1d315b4b
  1. 16
      src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs

16
src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs

@ -73,6 +73,8 @@ namespace Avalonia.Controls.Primitives
private WriteableBitmap? _saturationMaximumBitmap; private WriteableBitmap? _saturationMaximumBitmap;
private WriteableBitmap? _valueBitmap; private WriteableBitmap? _valueBitmap;
private WriteableBitmap? _minBitmap;
private WriteableBitmap? _maxBitmap;
// Fields used by UpdateEllipse() to ensure that it's using the data // Fields used by UpdateEllipse() to ensure that it's using the data
// associated with the last call to CreateBitmapsAndColorMap(), // associated with the last call to CreateBitmapsAndColorMap(),
@ -1084,28 +1086,28 @@ namespace Avalonia.Controls.Primitives
ColorSpectrumComponents components2 = Components; ColorSpectrumComponents components2 = Components;
WriteableBitmap minBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMinPixelData, pixelWidth, pixelHeight); _minBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMinPixelData, pixelWidth, pixelHeight);
WriteableBitmap maxBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMaxPixelData, pixelWidth, pixelHeight); _maxBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMaxPixelData, pixelWidth, pixelHeight);
switch (components2) switch (components2)
{ {
case ColorSpectrumComponents.HueValue: case ColorSpectrumComponents.HueValue:
case ColorSpectrumComponents.ValueHue: case ColorSpectrumComponents.ValueHue:
_saturationMinimumBitmap = minBitmap; _saturationMinimumBitmap = _minBitmap;
_saturationMaximumBitmap = maxBitmap; _saturationMaximumBitmap = _maxBitmap;
break; break;
case ColorSpectrumComponents.HueSaturation: case ColorSpectrumComponents.HueSaturation:
case ColorSpectrumComponents.SaturationHue: case ColorSpectrumComponents.SaturationHue:
_valueBitmap = maxBitmap; _valueBitmap = _maxBitmap;
break; break;
case ColorSpectrumComponents.ValueSaturation: case ColorSpectrumComponents.ValueSaturation:
case ColorSpectrumComponents.SaturationValue: case ColorSpectrumComponents.SaturationValue:
_hueRedBitmap = minBitmap; _hueRedBitmap = _minBitmap;
_hueYellowBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMiddle1PixelData, pixelWidth, pixelHeight); _hueYellowBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMiddle1PixelData, pixelWidth, pixelHeight);
_hueGreenBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMiddle2PixelData, pixelWidth, pixelHeight); _hueGreenBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMiddle2PixelData, pixelWidth, pixelHeight);
_hueCyanBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMiddle3PixelData, pixelWidth, pixelHeight); _hueCyanBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMiddle3PixelData, pixelWidth, pixelHeight);
_hueBlueBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMiddle4PixelData, pixelWidth, pixelHeight); _hueBlueBitmap = ColorPickerHelpers.CreateBitmapFromPixelData(bgraMiddle4PixelData, pixelWidth, pixelHeight);
_huePurpleBitmap = maxBitmap; _huePurpleBitmap = _maxBitmap;
break; break;
} }

Loading…
Cancel
Save