国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VC下配置OPENGL框架
userphoto

2010.10.07

關注
    使用VC下的MFC很久了,但是開始接觸的OPENGL都是在WIN32控制臺下的程
序,所以要將代碼移植到MFC下這個想法已經(jīng)很久,而且努力之后,已經(jīng)實現(xiàn),
主要過程如下:
    我們可以新建一個工程,工程名不妨為OPEGNGL0(后面還會有1,2……)
    在VC中操作如下:Project-> Settings,然后單擊LINK標簽。
在"Object/Library Modules"選項中的開始處(在 kernel32.lib 前)增加
OpenGL32.lib GLu32.lib 和 GLaux.lib 后單擊OK按鈕。
    在"stdafx.h"里面加入以下三行代碼
    #include "gl\gl.h"
    #include "gl\glu.h"
    #include "gl\glaux.h"
    在"OPENGL.H"里加入兩個protected類型的變量
    HGLRC m_hRC;
    HDC m_hDC;
    下面給整個工程重載以下幾個消息
    WM_CREATE   WM_DESTROY  WM_ERASEBKGND  WM_SIZE  WM_TIMER
    最后手動添加兩個函數(shù)到view類里
public:
 bool InitGL();
 void DrawGLScene();
函數(shù)添加完畢,下面要做的就是往函數(shù)里添加一些簡單的代碼了。
void COpenGL0001View::DrawGLScene()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
//這里可以加入你將要繪畫的一些代碼;
    SwapBuffers(m_hDC);
}
bool COpenGL0001View::InitGL()
{
    glShadeModel(GL_SMOOTH);   //平滑展示模型
    glClearColor(0.0f,0.0f,0.0f,0.0f);
    glClearDepth(1.0f);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LEQUAL);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);   //告訴系統(tǒng)對透視進行修正
    return true;
}
int COpenGL0001View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 if (CView::OnCreate(lpCreateStruct) == -1)
  return -1;
 
 // TODO: Add your specialized creation code here
  PIXELFORMATDESCRIPTOR pfd=   //
/pfd 告訴窗口我們所希望的東東,即窗口使用的像素格式
  {
  sizeof(PIXELFORMATDESCRIPTOR),   // 上述格式描述符的大小
  1,      // 版本號
  PFD_DRAW_TO_WINDOW |                   // 格式支持窗口
  PFD_SUPPORT_OPENGL |                      // 格式必須支持OpenGL
  PFD_DOUBLEBUFFER,                            // 必須支持雙緩沖
  PFD_TYPE_RGBA,                                   // 申請 RGBA 格式
  24,                                                                // 選定色彩深度
  0, 0, 0, 0, 0, 0,                                              // 忽略的色彩位
  0,                                                                    // 無Alpha緩存
  0,                                                                     // 忽略Shift Bit
  0,                                                                     // 無累加緩存
  0, 0, 0, 0,                                                     // 忽略聚集位
  16,                                                            // 16位 Z-緩存 (深度緩存)
  0,                                                                  // 無蒙板緩存
  0,                                                                  // 無輔助緩存
  PFD_MAIN_PLANE,                                   // 主繪圖層
  0,                                                                     // Reserved
  0, 0, 0                                                         // 忽略層遮罩
  };
  m_hDC=GetDC()->GetSafeHdc();
  int setPixelFormat=::ChoosePixelFormat(m_hDC,&pfd);  
  ::SetPixelFormat(m_hDC,setPixelFormat,&pfd);
  m_hRC=::wglCreateContext(m_hDC);
  ::wglMakeCurrent(m_hDC,m_hRC);
  InitGL();
  SetTimer(1,1,NULL); 
 return 0;
}
void COpenGL0001View::OnDestroy()
{
 CView::OnDestroy();
 
 // TODO: Add your message handler code here
::wglMakeCurrent(NULL,NULL);
::wglDeleteContext(m_hRC);
}
void COpenGL0001View::OnSize(UINT nType, int cx, int cy)
{
 CView::OnSize(nType, cx, cy);
 
 // TODO: Add your message handler code here
 if(cy==0) cy=1;
 glViewport(0,0,cx,cy);
 glMatrixMode(GL_PROJECTION);                     //設置當前矩陣為投影矩陣
 glLoadIdentity();                                                      //重置當前矩陣為單位矩陣
 //計算窗口的外觀比例(遠景透視圖)
 gluPerspective(45.0,(GLfloat)cy,0.1f,100.0f);
 glMatrixMode(GL_MODELVIEW);                      //設置當前矩陣為模型視力矩陣
 glLoadIdentity(); 
}
 
void COpenGL0001View::OnTimer(UINT nIDEvent)
{
 // TODO: Add your message handler code here and/or call default
 DrawGLScene();
 CView::OnTimer(nIDEvent);
}

BOOL COpenGL0001View::OnEraseBkgnd(CDC* pDC)
{
 // TODO: Add your message handler code here and/or call default
 return true;
 //return CView::OnEraseBkgnd(pDC);
}
到這一步,基本上已經(jīng)配置完了OPEGNGL環(huán)境了,如果需要添加一些場景之類的
話,可以直接在函數(shù)DrawGLScene里進行,此工程到目前為止,還沒有出現(xiàn)過問
題。如果發(fā)現(xiàn)有什么問題,歡迎與我聯(lián)系。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
手把手教你搭建用MFC進行OpenGL編程的框架
OpenGL(非常值得借鑒)
基于MFC下的OpenGL框架
用MFC實現(xiàn)OpenGL編程
OpenGL VS2008 環(huán)境配置
利用OpenGL添加AutoCAD中的平移與縮放功能
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服