예제 #1
0
        /// <summary>
        /// Creates the specified width.
        /// </summary>
        /// <param name="deviceContext"></param>
        /// <param name="width">The width.</param>
        /// <param name="height">The height.</param>
        /// <param name="bitCount">The bit count.</param>
        /// <returns></returns>
        public virtual bool Create(IntPtr deviceContext, int width, int height, int bitCount)
        {
            this.Width = width;
            this.Height = height;
            this.MemoryDeviceContext = Win32.CreateCompatibleDC(deviceContext);

            //	Destroy existing objects.
            this.DestroyBitmap();

            //	Create a bitmap info structure.
            var info = new BitmapInfo();
            info.Init();

            //	Set the data.
            info.biBitCount = (short)bitCount;
            info.biPlanes = 1;
            info.biWidth = width;
            info.biHeight = height;

            //	Create the bitmap.
            IntPtr mdc = this.MemoryDeviceContext;
            this.HBitmap = Win32.CreateDIBSection(mdc, ref info, Win32.DIB_RGB_COLORS, out this.bits, IntPtr.Zero, 0);

            Win32.SelectObject(mdc, this.HBitmap);

            //	Set the OpenGL pixel format.
            SetPixelFormat(mdc, bitCount);

            return true;
        }
예제 #2
0
파일: Win32.cs 프로젝트: shouwu345/CSharpGL
 internal static extern IntPtr CreateDIBSection(IntPtr hdc, [In] ref BitmapInfo pbmi,
                                                uint pila, out IntPtr ppvBits, IntPtr hSection, uint dwOffset);
예제 #3
0
        /// <summary>
        /// Resizes the section.
        /// </summary>
        /// <param name="width">The width.</param>
        /// <param name="height">The height.</param>
        /// <param name="bitCount">The bit count.</param>
        public void Resize(int width, int height, int bitCount)
        {
            //	Destroy existing objects.
            this.DestroyBitmap();

            //  Set parameters.
            this.Width = width;
            this.Height = height;

            //	Create a bitmap info structure.
            var info = new BitmapInfo();
            info.Init();

            //	Set the data.
            info.biBitCount = (short)bitCount;
            info.biPlanes = 1;
            info.biWidth = width;
            info.biHeight = height;

            //	Create the bitmap.
            IntPtr mdc = this.MemoryDeviceContext;
            this.HBitmap = Win32.CreateDIBSection(mdc, ref info, Win32.DIB_RGB_COLORS, out this.bits, IntPtr.Zero, 0);

            Win32.SelectObject(mdc, this.HBitmap);
        }