【问题标题】:Delphi form gives a bad pixel format for OpenGLDelphi 形式为 OpenGL 提供了错误的像素格式
【发布时间】:2009-09-06 19:43:14
【问题描述】:

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

像素格式基于表单的hdc,这一切都由VCL内部设置和管理。有谁知道如何找出问题所在并纠正它?

【问题讨论】:

    标签: delphi opengl


    【解决方案1】:

    像素格式是基于表单的hdc

    从这个声明中,我无法确定您是否已经在使用 ChoosePixelFormat... 但您确实想设置自己的特定像素格式并启用 PFD_SUPPORT_OPENGL 标志,而不是使用 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
    • 像素类型 PFD_TYPE_RGBA
    • 合理的 ColorBits 和 DepthBits。

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

    如果你已经在做这一切......好吧,也许你可以发布你的 formatDescriptor 设置代码的详细信息,这样我们就可以看到发生了什么。

    【讨论】:

    • 谢谢!那行得通。我觉得 VCL 已经设置好了,但显然没有。
    猜你喜欢
    • 2011-07-02
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多