Exemple #1
0
        public static ContextHandle CreateContextCurrent(IntPtr hwnd)
        {
            var context = ContextHandle.Zero;
            var hdc     = Win32Helper.GetDC(hwnd);//取得设备上下文
            PixelFormatDescriptor pfd;

            pfd.Size        = 40;
            pfd.Version     = 1;
            pfd.Flags       = PixelFormatDescriptorFlags.DRAW_TO_WINDOW | PixelFormatDescriptorFlags.SUPPORT_OPENGL | PixelFormatDescriptorFlags.DOUBLEBUFFER;
            pfd.PixelType   = PixelType.RGBA;
            pfd.ColorBits   = 32;
            pfd.DepthBits   = 16;
            pfd.StencilBits = 8;

            int pixelFormat;

            unsafe
            {
                PixelFormatDescriptor *ppfd = &pfd;
                pixelFormat = Win32Helper.ChoosePixelFormat(hdc, (IntPtr)ppfd);   //选择像素格式
                Win32Helper.SetPixelFormat(hdc, pixelFormat, (IntPtr)ppfd);       //设置像素格式

                context = new ContextHandle(hdc, Win32Helper.CreateContext(hdc)); //建立OpenGL渲染上下文

                MakeCurrentContext(context);                                      //激活当前渲染上下文

                _contexts[context.HDC] = context;
            }
            return(context);
        }
Exemple #2
0
 internal extern static unsafe Boolean SetPixelFormat(IntPtr hdc, int ipfd, PixelFormatDescriptor *ppfd);
Exemple #3
0
 internal extern static unsafe int ChoosePixelFormat(IntPtr hDc, PixelFormatDescriptor *pPfd);
Exemple #4
0
 internal extern static unsafe int DescribePixelFormat(IntPtr hdc, int ipfd, UInt32 cjpfd, PixelFormatDescriptor *ppfd);
Exemple #5
0
 unsafe public static extern int ChoosePixelFormat(IntPtr hDC, PixelFormatDescriptor *pfd);
Exemple #6
0
 unsafe public static extern Boolean SetPixelFormat(IntPtr hDC, int format, PixelFormatDescriptor *pfd);
Exemple #7
0
 public static extern bool SetPixelFormat(IntPtr hdc, int iPixelFormat, PixelFormatDescriptor *ppfd);
Exemple #8
0
 unsafe public static extern int DescribePixelFormat(IntPtr hDC, int index, int pfdStructSize, PixelFormatDescriptor *pfd);
Exemple #9
0
 public static extern int ChoosePixelFormat(IntPtr hdc, PixelFormatDescriptor *ppfd);
 public static extern unsafe bool wglSetPixelFormat(IntPtr hdc, int ipfd, PixelFormatDescriptor *ppfd);
 public static extern unsafe int wglDescribePixelFormat(IntPtr hdc, int ipfd, uint cjpfd,
                                                        PixelFormatDescriptor *ppfd);
 public static extern unsafe int wglChoosePixelFormat(IntPtr hDc, PixelFormatDescriptor *pPfd);
Exemple #13
0
 public static extern int DescribePixelFormat(VoidPtr hdc, int iPixelFormat, ushort nBytes, PixelFormatDescriptor *pfd);