是否可以在已经使用 GDI 的窗口中使用 OpenGL?

发布于 2024-07-20 05:29:15 字数 264 浏览 12 评论 0原文

基本上我被要求渲染到一个离屏 DC,该 DC 设置为(我不知道如何)使用 GDI+。 当我尝试将 OpenGL 上下文与 DC 关联时,它失败了(即返回零但没有错误)。 SetPixelFormat 也失败(可能是因为它已经设置了?),再次返回零,而不是错误。

任何人都知道在这种情况下(即其他人正在使用 GDI+ 的窗口的屏幕外上下文)是否可以创建 OpenGL 上下文并使用 OpenGL 进行我自己的渲染? (如果可能的话,为什么 wglCreateContext 会失败?)

Basically I am being called to render to an offscreen DC which is set up (I'm not sure how) to use GDI+. When I try to associate an OpenGL context with the DC, it just fails (i.e. returns zero but no error). SetPixelFormat also fails (probably because it is already set up?), again by returning zero, not an error.

Anyone know whether it is possible, given such a situation (i.e. offscreen context for a window into which someone else is using GDI+), to create an OpenGL context and use OpenGL for my own rendering? (And if it is possible, why might the wglCreateContext be failing?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南渊 2024-07-27 05:29:15

本文向您展示了连接 GDI 窗口的所有步骤: http ://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01

本质上,您必须:

  1. 创建一个窗口
  2. 注册窗口
  3. 获取窗口绘图区域的设备上下文
  4. 设置像素格式设备上下文
  5. 调用 wglCreateContext
  6. 调用 wglMakeCurrent
  7. 显示窗口

如果您已经有权访问设备上下文,请跳过前两个步骤。

就您的情况而言,您可能会看到 wglMakeCurrent 是否就是您所需要的。 否则,您可能需要发布有关您遇到的错误和行为的更多详细信息。

This article shows you all of the steps to hook up a GDI window: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01

Essentially, you have to:

  1. Create a window
  2. Register the window
  3. Get the device context of the window's drawing area
  4. Setup the pixel format for the device context
  5. Call wglCreateContext
  6. Call wglMakeCurrent
  7. Display the window

If you already have access to the device context, skip the first two steps.

In your case, you might see if wglMakeCurrent is all you need. Otherwise, you might want to post more details about the errors and behaviors you are experiencing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文