public void Reset() { subTextureBounds.Clear(); currentPosition = Vector2I.Zero; AtlasTexture = new TextureGLAtlas(atlasWidth, atlasHeight, manualMipmaps, filteringMode); RectangleI bounds = new RectangleI(0, 0, WHITE_PIXEL_SIZE, WHITE_PIXEL_SIZE); subTextureBounds.Add(bounds); using (var whiteTex = new TextureGLSub(bounds, AtlasTexture)) whiteTex.SetData(new TextureUpload(new Image <Rgba32>(SixLabors.ImageSharp.Configuration.Default, whiteTex.Width, whiteTex.Height, Rgba32.White))); currentPosition = new Vector2I(PADDING + WHITE_PIXEL_SIZE, PADDING); }
public void Reset() { subTextureBounds.Clear(); currentPosition = Vector2I.Zero; // We pass PADDING/2 as opposed to PADDING such that the padded region of each individual texture // occupies half of the padded space. AtlasTexture = new TextureGLAtlas(atlasWidth, atlasHeight, manualMipmaps, filteringMode, PADDING / 2); RectangleI bounds = new RectangleI(0, 0, WHITE_PIXEL_SIZE, WHITE_PIXEL_SIZE); subTextureBounds.Add(bounds); using (var whiteTex = new TextureGLSub(bounds, AtlasTexture, WrapMode.Repeat, WrapMode.Repeat)) // Generate white padding as if WhitePixel was wrapped, even though it isn't whiteTex.SetData(new TextureUpload(new Image <Rgba32>(SixLabors.ImageSharp.Configuration.Default, whiteTex.Width, whiteTex.Height, Rgba32.White))); currentPosition = new Vector2I(PADDING + WHITE_PIXEL_SIZE, PADDING); }