如何在ActiveX控件中正确初始化OpenGL?

萨福里夫

我正在尝试使用OpenGL创建一个简单的ActiveX控件。我在PreCreateWindow中添加了一些样式:

BOOL CMFCActiveXControl1Ctrl::PreCreateWindow(CREATESTRUCT& cs) {
    cs.style |=  WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
    cs.lpszClass = _T("STATIC");
    return COleControl::PreCreateWindow(cs);
}

OpenGL的初始化:

int CMFCActiveXControl1Ctrl::OnCreate(LPCREATESTRUCT lpCreateStruct) {
    PIXELFORMATDESCRIPTOR pfd = { 0 };
    pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
    pfd.nVersion = 1;
    pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_DOUBLEBUFFER | PFD_SUPPORT_OPENGL;
    pfd.iPixelType = PFD_TYPE_RGBA;
    pfd.cColorBits = 24;
    pfd.cDepthBits = 16;
    pfd.iLayerType = PFD_MAIN_PLANE;
    hDC = ::GetDC(m_hWnd);
    int format = ChoosePixelFormat(hDC, &pfd);
    SetPixelFormat(hDC, format, &pfd);
    hRC = wglCreateContext(hDC);
    wglMakeCurrent(hDC, hRC);
    return 0;
}

然后我尝试用红色清除颜色缓冲区,但我看到的只是一个黑色正方形:

void CMFCActiveXControl1Ctrl::OnDraw(
        CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
    if (!pdc)
       return;
    glClearColor(1, 0, 0, 0);
    SwapBuffers(wglGetCurrentDC());
}
安东·科尔曼(Andon M.Coleman)

glClearColor (...)实际上不会清除颜色缓冲区,它只是设置调用时将使用的颜色glClear (...)

GL3中有一个新功能:glClearBuffer (...)可用于在一次调用中将缓冲区清除为一个显式值,但是通常情况下,您将需要glClear (GL_COLOR_BUFFER_BIT)在设置清除颜色之后再调用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Swift中正确初始化UnsafePointer?

来自分类Dev

如何在javascript中正确初始化ErrorEvent?

来自分类Dev

如何在Swift中正确初始化UnsafePointer?

来自分类Dev

如何在 C++ 中正确初始化 Struct

来自分类Dev

如何在VBA中正确初始化全局单元格引用变量

来自分类Dev

如何在Phalcon中正确初始化数据库连接

来自分类Dev

如何在JNA的`Structure`中正确初始化数组字段?

来自分类Dev

如何在神经网络模型中正确初始化所需的向量?

来自分类Dev

如何在JNA的`Structure`中正确初始化数组字段?

来自分类Dev

如何在PreferenceActivity中正确初始化静态变量

来自分类Dev

如何在C ++ 11中正确初始化数据成员?

来自分类Dev

如何在被调用的类中正确初始化二维数组

来自分类Dev

如何在Win32(C ++)静态控件中正确渲染OpenGL?

来自分类Dev

如何在Win32(C ++)静态控件中正确渲染OpenGL?

来自分类Dev

如何获取.emacs初始化文件以在emacs服务器中正确加载?

来自分类Dev

数组未在foreach循环中正确初始化

来自分类Dev

在PowerShell中正确初始化JSON的问题

来自分类Dev

更改Internet Explorer的安全设置(初始化和未编写ActiveX控件脚本...)

来自分类Dev

如何正确取消初始化OpenSSL

来自分类Dev

如何正确初始化比较器?

来自分类Dev

如何正确初始化地图?

来自分类Dev

如何正确初始化游标?

来自分类Dev

如何正确初始化类?扑

来自分类Dev

如何正确初始化地图?

来自分类Dev

如何正确初始化var类型

来自分类Dev

如何正确初始化共享视图?

来自分类Dev

如何正确初始化类

来自分类Dev

如何在另一个线程中初始化沉重的控件?

来自分类Dev

如何在初始化后立即获取JavaFX控件以实现其localBounds?

Related 相关文章

  1. 1

    如何在Swift中正确初始化UnsafePointer?

  2. 2

    如何在javascript中正确初始化ErrorEvent?

  3. 3

    如何在Swift中正确初始化UnsafePointer?

  4. 4

    如何在 C++ 中正确初始化 Struct

  5. 5

    如何在VBA中正确初始化全局单元格引用变量

  6. 6

    如何在Phalcon中正确初始化数据库连接

  7. 7

    如何在JNA的`Structure`中正确初始化数组字段?

  8. 8

    如何在神经网络模型中正确初始化所需的向量?

  9. 9

    如何在JNA的`Structure`中正确初始化数组字段?

  10. 10

    如何在PreferenceActivity中正确初始化静态变量

  11. 11

    如何在C ++ 11中正确初始化数据成员?

  12. 12

    如何在被调用的类中正确初始化二维数组

  13. 13

    如何在Win32(C ++)静态控件中正确渲染OpenGL?

  14. 14

    如何在Win32(C ++)静态控件中正确渲染OpenGL?

  15. 15

    如何获取.emacs初始化文件以在emacs服务器中正确加载?

  16. 16

    数组未在foreach循环中正确初始化

  17. 17

    在PowerShell中正确初始化JSON的问题

  18. 18

    更改Internet Explorer的安全设置(初始化和未编写ActiveX控件脚本...)

  19. 19

    如何正确取消初始化OpenSSL

  20. 20

    如何正确初始化比较器?

  21. 21

    如何正确初始化地图?

  22. 22

    如何正确初始化游标?

  23. 23

    如何正确初始化类?扑

  24. 24

    如何正确初始化地图?

  25. 25

    如何正确初始化var类型

  26. 26

    如何正确初始化共享视图?

  27. 27

    如何正确初始化类

  28. 28

    如何在另一个线程中初始化沉重的控件?

  29. 29

    如何在初始化后立即获取JavaFX控件以实现其localBounds?

热门标签

归档