Migrate nozzle limits texture construction to drawable

- Construct and cache textures after use
- Create placeholder textures for use before constructed
- Remove bed texture construction from CreatePrintBedAndVolume
- Issue MatterHackers/MCCentral#5325
Migrate to themed bed colors
- Issue MatterHackers/MCCentral#5320
Cache per hotend bed textures
This commit is contained in:
John Lewin 2019-04-13 02:13:20 -07:00
parent 17eca3b36c
commit 60a1238f54
5 changed files with 180 additions and 139 deletions

View file

@ -68,14 +68,17 @@ namespace MatterHackers.MatterControl
return bedImage;
}
public static (Mesh bed, Mesh volume, ImageBuffer bedImage) CreatePrintBedAndVolume(PrinterConfig printer)
public static (Mesh bed, Mesh volume) CreatePrintBedAndVolume(PrinterConfig printer)
{
Mesh printerBed = null;
Mesh buildVolume = null;
Vector3 displayVolumeToBuild = Vector3.ComponentMax(printer.Bed.ViewerVolume, new Vector3(1, 1, 1));
ImageBuffer bedplateImage = CreatePrintBedImage(printer);
// Temporarily assign a placeholder image as the mesh texture. This will be replaced with a themed image by the view
var placeHolderImage = new ImageBuffer(5, 5);
var graphics = placeHolderImage.NewGraphics2D();
graphics.Clear(Color.Gray.WithAlpha(40));
switch (printer.Bed.BedShape)
{
@ -87,12 +90,13 @@ namespace MatterHackers.MatterControl
{
buildVolume.Vertices[i] = buildVolume.Vertices[i] + new Vector3Float(0, 0, displayVolumeToBuild.Z / 2);
}
var bspTree = FaceBspTree.Create(buildVolume);
buildVolume.FaceBspTree = bspTree;
}
printerBed = PlatonicSolids.CreateCube(displayVolumeToBuild.X, displayVolumeToBuild.Y, 1.8);
printerBed.PlaceTextureOnFaces(0, bedplateImage);
printerBed.PlaceTextureOnFaces(0, placeHolderImage);
break;
case BedShape.Circular:
@ -103,7 +107,7 @@ namespace MatterHackers.MatterControl
}
printerBed = VertexSourceToMesh.Extrude(new Ellipse(new Vector2(), displayVolumeToBuild.X / 2, displayVolumeToBuild.Y / 2), 1.8);
printerBed.PlaceTextureOnFaces(0, bedplateImage);
printerBed.PlaceTextureOnFaces(0, placeHolderImage);
}
break;
@ -125,7 +129,7 @@ namespace MatterHackers.MatterControl
}
}
return (printerBed, buildVolume, bedplateImage);
return (printerBed, buildVolume);
}
private static ImageBuffer CreateCircularBedGridImage(PrinterConfig printer)