protected override void Initialize(InternalAGSBitmap bitmap)
        {
            unsafe
            {
                var linesPtr = (short*)bitmap.line;
                for (int y = 0; y < this.Height; y++)
                {
                    for (int x = 0; x < this.Width; x++)
                    {
                        short s = *linesPtr;

                        var red = (byte)((s & 0x7c00) >> 7);
                        var green = (byte)((s & 0x03e0) >> 2);
                        var blue = (byte)((s & 0x001f) << 3);

                        this.Pixels[x + y * this.Width] = new Colour(255, red, green, blue);

                        linesPtr++;
                    }
                }
            }
        }
        protected override void Initialize(InternalAGSBitmap bitmap)
        {
            unsafe
            {
                var linesPtr = (int*)bitmap.line;
                for (int y = 0; y < this.Height; y++)
                {
                    for (int x = 0; x < this.Width; x++)
                    {
                        int s = *linesPtr;

                        var red = (byte)((s >> 16) & 0xff);
                        var green = (byte)((s >> 8) & 0xff);
                        var blue = (byte)(s & 0xff);

                        this.Pixels[x + y * this.Width] = new Colour(255, red, green, blue);

                        linesPtr++;
                    }
                }
            }
        }
 protected abstract void Initialize(InternalAGSBitmap bitmap);