Delphi表单为OpenGL提供了错误的像素格式

时间:2009-09-05 18:27:06

标签: delphi opengl

我正在使用SDL库尝试以Delphi形式创建渲染上下文。一切顺利,直到我尝试创建渲染器本身。它调用wglCreateContext,但失败了。错误消息显示“像素格式无效。”

像素格式基于表单的hdc,它由VCL内部设置和管理。有谁知道如何弄清楚出了什么问题并纠正它?

1 个答案:

答案 0 :(得分:2)

  

像素格式基于表单的hdc

从这个陈述中,我无法确定你是否已经在使用ChoosePixelFormat ......但是你真的想要在启用PFD_SUPPORT_OPENGL标志的情况下设置你自己的特定pixelformat,而不是使用HDC中的默认值。

简而言之,这就是你所做的:

  1. 从画布中获取hdc
  2. 初始化您自己的PixelFormatDescriptor
  3. 使用ChoosePixelFormat将该描述符与可用的pixelFormat相匹配
  4. 使用SetPixelFormat在hdc上设置pixelFormat
  5. 使用wlCreateContext获取上下文
  6. 使用ActivateRenderingContext来破解。

对于pixelFormatDescriptor,请使用

  • 标记PFD_DRAW_TO_WINDOW或PFD_SUPPORT_OPENGL或PFD_DOUBLEBUFFER
  • pixelType PFD_TYPE_RGBA
  • 合理的ColorBits和DepthBits。

如果你以某种方式指定了错误的格式,步骤3或4将会中断并告诉你出了什么问题。希望有所帮助!

如果您已经完成了所有这些......那么,也许您可​​以发布formatDescriptor设置代码的详细信息,以便我们可以看到发生了什么。