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);
        }
Example #2
0
        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);
        }