Ejemplo n.º 1
0
        private void Form1_SizeChanged(object sender, EventArgs e)
        {
            currentRenderer.TerminateThreads();

            int screenWidth  = this.ClientSize.Width;
            int screenHeight = this.ClientSize.Height;

            if (screenWidth < 1)
            {
                screenWidth = 1;
            }
            if (screenHeight < 1)
            {
                screenHeight = 1;
            }

            int bufferLength = screenWidth * screenHeight;

            if (bufferLength > bmpBits.Length)
            {
                FreeStuff();
                bmpBits  = new UInt32[bufferLength * 4];
                gcHandle = GCHandle.Alloc(bmpBits, GCHandleType.Pinned);
            }

            if (bmp != null)
            {
                bmp.Dispose();
            }
            bmp = new Bitmap(screenWidth, screenHeight, screenWidth * 4, PixelFormat.Format32bppArgb, gcHandle.AddrOfPinnedObject());

            currentRenderer.UpdateBitmapBits(bmpBits);
            currentRenderer.UpdateScreenDimensions(screenWidth, screenHeight);
            OnParametersChanged();
        }