苏州园区手机网站制作,网页ui素材中心下载,如何在空白服务器上搭建网站,大学生创新创业大赛的意义有时直接创建OpenGL形式不适合#xff0c;或者干脆不同意然后创建一个表单#xff0c;正如我现在这个项目#xff0c;创建窗体不显示#xff0c;它仅限于主框架。而我只是ActiveX里做一些相关工作#xff0c;那仅仅能用到OpenGL的离屏渲染技术了~即不直接绘制到窗体上或者干脆不同意然后创建一个表单正如我现在这个项目创建窗体不显示它仅限于主框架。而我只是ActiveX里做一些相关工作那仅仅能用到OpenGL的离屏渲染技术了~即不直接绘制到窗体上而是绘制到一张位图上。然后再次调用这张位图实现兴许的工作。 以下就总结怎么使用所谓的“离屏渲染”。 const int WIDTH 500;const int HEIGHT 500;// Create a memory DC compatible with the screenHDC hdc CreateCompatibleDC(0);if (hdc 0) coutCould not create memory device context;// Create a bitmap compatible with the DC// must use CreateDIBSection(), and this means all pixel ops must be synchronised// using calls to GdiFlush() (see CreateDIBSection() docs)BITMAPINFO bmi {{ sizeof(BITMAPINFOHEADER), WIDTH, HEIGHT, 1, 32, BI_RGB, 0, 0, 0, 0, 0 },{ 0 }};unsigned char *pbits; // pointer to bitmap bitsHBITMAP hbm CreateDIBSection(hdc, bmi, DIB_RGB_COLORS, (void **) pbits,0, 0);if (hbm 0) coutCould not create bitmap;//HDC hdcScreen GetDC(0);//HBITMAP hbm CreateCompatibleBitmap(hdcScreen,WIDTH,HEIGHT);// Select the bitmap into the DCHGDIOBJ r SelectObject(hdc, hbm);if (r 0) coutCould not select bitmap into DC;// Choose the pixel formatPIXELFORMATDESCRIPTOR pfd {sizeof (PIXELFORMATDESCRIPTOR), // struct size1, // Version numberPFD_DRAW_TO_BITMAP | PFD_SUPPORT_OPENGL, // use OpenGL drawing to BMPFD_TYPE_RGBA, // RGBA pixel values32, // color bits0, 0, 0, // RGB bits shift sizes...0, 0, 0, // Dont care about them0, 0, // No alpha buffer info0, 0, 0, 0, 0, // No accumulation buffer32, // depth buffer bits0, // No stencil buffer0, // No auxiliary buffersPFD_MAIN_PLANE, // Layer type0, // Reserved (must be 0)0, // No layer mask0, // No visible mask0, // No damage mask};int pfid ChoosePixelFormat(hdc, pfd);if (pfid 0) coutPixel format selection failed;// Set the pixel format// - must be done *after* the bitmap is selected into DCBOOL b SetPixelFormat(hdc, pfid, pfd);if (!b) coutPixel format set failed;// Create the OpenGL resource context (RC) and make it current to the threadHGLRC hglrc wglCreateContext(hdc);if (hglrc 0) coutOpenGL resource context creation failed;wglMakeCurrent(hdc, hglrc);// Draw using GL - remember to sync with GdiFlush()GdiFlush();/*详细的绘制函数~~~~~~~~~~~~~~我就不写了*/// Clean upwglDeleteContext(hglrc); // Delete RCSelectObject(hdc, r); // Remove bitmap from DCDeleteObject(hbm); // Delete bitmapDeleteDC(hdc); // Delete DC 版权声明本文博客原创文章。博客未经同意不得转载。 转载于:https://www.cnblogs.com/bhlsheji/p/4713200.html