社区
游戏开发
帖子详情
請指教 OpenGL 的基本問題.
SuperChen
2001-06-11 02:35:00
請問 wglCreateContext 或者 wglMakeCurrent 中的 HDC 參數是否可以是 Memory DC? 也就是說在 Memory DC 中執行 OpenGL 中的指令應該如何做? 最好給出比較完整的 Sample Code, 非常感謝!
...全文
113
10
打赏
收藏
請指教 OpenGL 的基本問題.
請問 wglCreateContext 或者 wglMakeCurrent 中的 HDC 參數是否可以是 Memory DC? 也就是說在 Memory DC 中執行 OpenGL 中的指令應該如何做? 最好給出比較完整的 Sample Code, 非常感謝!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SuperChen
2001-06-18
打赏
举报
回复
另外, DRAW_TO_BITMAP 是不能在這裡用的, 但是應該在什麼情況下用這個Flag呢, 希望大家指教.
SuperChen
2001-06-18
打赏
举报
回复
問題的答案應該是可以的,關鍵部分是幾個函數的調用順序和所傳參數的值要正確.
下面貼出簡單的Code,沒有做什麼錯誤處理.為了方便起見,是在C++ Builder中寫的,在一個
Form上丟了一個Panel和一個Button, 在Button OnClick寫了下面的部分.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HDC hDC, hMemDC;
HBITMAP hBmp, hOldBmp;
HGLRC hRC;
GLfloat w, h;
w = Panel1->ClientWidth;
h = Panel1->ClientHeight;
hDC = GetDC(Panel1->Handle);
hMemDC = CreateCompatibleDC(hDC);
hBmp = CreateCompatibleBitmap(hDC, (int)w, (int)h);
hOldBmp = (HBITMAP)SelectObject(hMemDC, hBmp);
PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL,
PFD_TYPE_RGBA,
24,
0,0,0,0,0,0,
0,0,
0,0,0,0,0,
32,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,
};
int PixelFormat = ChoosePixelFormat(hMemDC, &pfd);
SetPixelFormat(hMemDC, PixelFormat, &pfd);
hRC = wglCreateContext(hMemDC);
wglMakeCurrent(hMemDC, hRC);
glEnable(GL_DEPTH_TEST);
glClearColor(1.0, 0.0, 0.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0, 0, w, h);
glOrtho (0, 50, 0, 50, 1, -1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0.0, 0.0, 1.0);
glLineWidth(5.0);
glBegin(GL_LINES);
glVertex3f(10.0, 10.0, 0.0);
glVertex3f(40.0, 40.0, 0.0);
glEnd();
glFlush();
BitBlt(hDC, 0, 0, (int)w, (int)h, hMemDC, 0, 0, SRCCOPY);
wglMakeCurrent(NULL, NULL);
wglDeleteContext(hRC);
SelectObject(hMemDC, hOldBmp);
DeleteObject(hBmp);
DeleteDC(hMemDC);
ReleaseDC(Panel1->Handle, hDC);
}
再次感謝大家的關注和幫助.
chenlee
2001-06-13
打赏
举报
回复
在PixelFormat的Flag中加入PFD_DRAW_TO_BITMAP标志
Neo2D
2001-06-13
打赏
举报
回复
这个bitmap是在系统内存还是在显存里?
Kevin_qing
2001-06-12
打赏
举报
回复
帖点代码来看看····
Neo2D
2001-06-12
打赏
举报
回复
有兴趣,非常有兴趣,要是有例子就更好了
SuperChen
2001-06-11
打赏
举报
回复
不惜血本,再加10分, 也只能加這麼多了.
SuperChen
2001-06-11
打赏
举报
回复
就是怎麼試都不成功才問的啊, 我覺得比較關鍵的地方是 SetPixelFormat 中設定的參數可能有影響. 大家幫忙啊, 120 分呢.
SuperChen
2001-06-11
打赏
举报
回复
就是怎麼試都不成功才問的啊, 我覺得比較關鍵的地方是 SetPixelFormat 中設定的參數可能有影響. 大家幫忙啊, 120 分呢.
Kevin_qing
2001-06-11
打赏
举报
回复
自己试试就知道了。当然是可以在内存里面着色的···
(1)《QT+
OpenGL
学习之我见》初始化窗口及三个重要函数 vs+Qt
本章前言:本章讲如何利用VS和QT来创建一个
基本
的Q
OpenGL
Widget窗口和有关联的三个核心函数,因为版本更新可能会有大同小异,但
基本
的不会有变换,有了QT的帮助,我们不需要下载
opengL
、glsl、cmake只需要下载一个qt...
现代
OpenGL
系列教程(零)---在Qt/Quick中使用
OpenGL
首先,想要说明的是,本系列学习教程是根据我自己学习的经历而写,并非完全科普性的,零基础的教程,而且其水平也很受我本身的水平影响,so 如果有不足之处,还请多多
指教
~~ 其次,本系列使用 Qt/Quick 来编写所有...
VS 2012环境下使用MFC进行
OpenGL
编程
VS 2012下使用MFC+
OpenGL
基本
步骤 引子:以前一直惧怕MFC感觉它是一个非常复杂的东西,更不用说去用它来和
OpenGL
结合了,以前是一直羡慕别人用MFC创建一个窗口进行
OpenGL
绘图,当初有萌生自己创建一个MFC使用
OpenGL
...
OpenGL
实现四种
基本
光照模型对比(Lambert/HalfLambert/Phong/Blinn-Phong)
在
OPENGL
中实现三维场景的读取与绘制,使用四种
基本
光照模型(Lambert/HalfLambert/Phong/Blinn-phong)下的物体读取,并添加硬阴影,实现了同时增加控制相机、控制光源位置的功能,并能够使正交或者投影的方式(但...
opengl
学习笔记2-4-动画效果
本节是对笔记2代码的扩展。利用glut生成简单的动画效果。 最近学习中遇到的几点困惑: ...3.
OpenGL
和
OpenGL
扩展之间的关系? 4.使用
OpenGL
中某些特定功能编写的效果,被我自己的机子的显卡支持可以运行,在别
游戏开发
8,303
社区成员
23,682
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章