亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? quadricview.cpp

?? C:Documents and SettingsAdministrator桌面VC++多媒體特效制作百例CHAR18Quadric
?? CPP
字號:
// QuadricView.cpp : implementation of the CQuadricView class
//

#include "stdafx.h"
#include "Quadric.h"

#include "QuadricDoc.h"
#include "QuadricView.h"

//add down加入OpenGL頭文件
#include "gl\gl.h"
#include "gl\glu.h"
#include "gl\glaux.h"

#include <stdio.h>
#include <stdlib.h>

GLuint startList;
//add up加入OpenGL頭文件

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CQuadricView

IMPLEMENT_DYNCREATE(CQuadricView, CView)

BEGIN_MESSAGE_MAP(CQuadricView, CView)
	//{{AFX_MSG_MAP(CQuadricView)
	ON_WM_CREATE()
	ON_WM_DESTROY()
	ON_WM_ERASEBKGND()
	ON_WM_SIZE()
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CQuadricView construction/destruction

CQuadricView::CQuadricView()
{
	//add down
	m_pDC = NULL;
	//add up

}

CQuadricView::~CQuadricView()
{
}

BOOL CQuadricView::PreCreateWindow(CREATESTRUCT& cs)
{
	//add down
	cs.style |= WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
	//add up

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CQuadricView drawing

void CQuadricView::OnDraw(CDC* pDC)
{
	CQuadricDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	//add down
	DrawScene();
	//add up
}

/////////////////////////////////////////////////////////////////////////////
// CQuadricView printing

BOOL CQuadricView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CQuadricView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CQuadricView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CQuadricView diagnostics

#ifdef _DEBUG
void CQuadricView::AssertValid() const
{
	CView::AssertValid();
}

void CQuadricView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CQuadricDoc* CQuadricView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CQuadricDoc)));
	return (CQuadricDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CQuadricView message handlers

int CQuadricView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	//add down
	Init(); //初始化 OpenGL
	//add up
	
	return 0;
}

void CQuadricView::OnDestroy() 
{
	//add down
	HGLRC   hrc;

	hrc = ::wglGetCurrentContext();

	::wglMakeCurrent(NULL,  NULL);

	if (hrc)
		::wglDeleteContext(hrc);

	if (m_pDC)
		delete m_pDC;
	//add up

	CView::OnDestroy();
}

BOOL CQuadricView::OnEraseBkgnd(CDC* pDC) 
{
	return TRUE;
}

void CQuadricView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
	
   glViewport(0, 0, (GLsizei) cx, (GLsizei)cy);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   if (cx <= cy)
      glOrtho(-2.5, 2.5, -2.5*(GLfloat)cy/(GLfloat)cx,
         2.5*(GLfloat)cy/(GLfloat)cx, -10.0, 10.0);
   else
      glOrtho(-2.5*(GLfloat)cx/(GLfloat)cy,
         2.5*(GLfloat)cx/(GLfloat)cy, -2.5, 2.5, -10.0, 10.0);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
}

//add down
void CQuadricView::Init()
{
	PIXELFORMATDESCRIPTOR pfd;
	int         n;
	HGLRC       hrc;

	m_pDC = new CClientDC(this);

	ASSERT(m_pDC != NULL);

	if (!bSetupPixelFormat())
		return;

	n = ::GetPixelFormat(m_pDC->GetSafeHdc());
	::DescribePixelFormat(m_pDC->GetSafeHdc(), n, sizeof(pfd), &pfd);

	hrc = wglCreateContext(m_pDC->GetSafeHdc());
	wglMakeCurrent(m_pDC->GetSafeHdc(), hrc);

   GLUquadricObj *qobj;
   GLfloat mat_ambient[] = { 0.5, 0.5, 0.5, 1.0 };
   GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
   GLfloat mat_shininess[] = { 50.0 };
   GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
   GLfloat model_ambient[] = { 0.5, 0.5, 0.5, 1.0 };

   glClearColor(0.0, 0.0, 0.0, 0.0);

   glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
   glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
   glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
   glLightfv(GL_LIGHT0, GL_POSITION, light_position);
   glLightModelfv(GL_LIGHT_MODEL_AMBIENT, model_ambient);

   glEnable(GL_LIGHTING);
   glEnable(GL_LIGHT0);
   glEnable(GL_DEPTH_TEST);

/*  Create 4 display lists, each with a different quadric object.
 *  Different drawing styles and surface normal specifications
 *  are demonstrated.
 */
   startList = glGenLists(4);
   qobj = gluNewQuadric();

   gluQuadricDrawStyle(qobj, GLU_FILL); /* smooth shaded */
   gluQuadricNormals(qobj, GLU_SMOOTH);
   glNewList(startList, GL_COMPILE);
      gluSphere(qobj, 0.75, 15, 10);
   glEndList();

   gluQuadricDrawStyle(qobj, GLU_FILL); /* flat shaded */
   gluQuadricNormals(qobj, GLU_FLAT);
   glNewList(startList+1, GL_COMPILE);
      gluCylinder(qobj, 0.5, 0.3, 1.0, 15, 5);
   glEndList();

   gluQuadricDrawStyle(qobj, GLU_LINE); /* all polygons wireframe */
   gluQuadricNormals(qobj, GLU_NONE);
   glNewList(startList+2, GL_COMPILE);
      gluDisk(qobj, 0.25, 1.0, 20, 4);
   glEndList();

   gluQuadricDrawStyle(qobj, GLU_SILHOUETTE); /* boundary only  */
   gluQuadricNormals(qobj, GLU_NONE);
   glNewList(startList+3, GL_COMPILE);
      gluPartialDisk(qobj, 0.0, 1.0, 20, 4, 0.0, 225.0);
   glEndList();
}

BOOL CQuadricView::bSetupPixelFormat()
{
	static PIXELFORMATDESCRIPTOR pfd =
	{
		sizeof(PIXELFORMATDESCRIPTOR),  // size of this pfd
		1,                              // version number
		PFD_DRAW_TO_WINDOW |            // support window
		  PFD_SUPPORT_OPENGL |          // support OpenGL
		  PFD_DOUBLEBUFFER,             // double buffered
		PFD_TYPE_RGBA,                  // RGBA type
		24,                             // 24-bit color depth
		0, 0, 0, 0, 0, 0,               // color bits ignored
		0,                              // no alpha buffer
		0,                              // shift bit ignored
		0,                              // no accumulation buffer
		0, 0, 0, 0,                     // accum bits ignored
		32,                             // 32-bit z-buffer
		0,                              // no stencil buffer
		0,                              // no auxiliary buffer
		PFD_MAIN_PLANE,                 // main layer
		0,                              // reserved
		0, 0, 0                         // layer masks ignored
	};
	int pixelformat;

	if ( (pixelformat = ChoosePixelFormat(m_pDC->GetSafeHdc(), &pfd)) == 0 )
	{
		MessageBox("ChoosePixelFormat failed");
		return FALSE;
	}

	if (SetPixelFormat(m_pDC->GetSafeHdc(), pixelformat, &pfd) == FALSE)
	{
		MessageBox("SetPixelFormat failed");
		return FALSE;
	}

	return TRUE;
}

void CQuadricView::DrawScene(void)
{
//	glClearColor(1.0,1.0,1.0,0.0);
   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
   glPushMatrix();

   glEnable(GL_LIGHTING);
   glShadeModel (GL_SMOOTH);
   glTranslatef(-1.0, -1.0, 0.0);
   glCallList(startList);

   glShadeModel (GL_FLAT);
   glTranslatef(0.0, 2.0, 0.0);
   glPushMatrix();
   glRotatef(300.0, 1.0, 0.0, 0.0);
   glCallList(startList+1);
   glPopMatrix();

   glDisable(GL_LIGHTING);
   glColor3f(0.0, 1.0, 1.0);
   glTranslatef(2.0, -2.0, 0.0);
   glCallList(startList+2);

   glColor3f(1.0, 1.0, 0.0);
   glTranslatef(0.0, 2.0, 0.0);
   glCallList(startList+3);

   glPopMatrix();
   
   SwapBuffers(wglGetCurrentDC());
}

//add up

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7777精品伊人久久久大香线蕉经典版下载 | 成人综合日日夜夜| 亚洲午夜一区二区三区| 一区二区三区日韩精品| 国产精品狼人久久影院观看方式| 欧美精品一区在线观看| 精品国产一二三| 精品国产乱码久久久久久浪潮| 6080午夜不卡| 日韩精品一区二区三区中文不卡| 91麻豆精品国产91久久久久| 91精品国产色综合久久| 91麻豆精品久久久久蜜臀| 欧美精品乱码久久久久久| 欧美一区二区三区四区久久| 51精品秘密在线观看| 欧美巨大另类极品videosbest | 国产999精品久久| 国产一区二区三区在线观看免费视频 | 国产精品午夜春色av| 日韩女优av电影| 欧美精品第1页| 欧美日韩国产一区| 日韩一级二级三级精品视频| 欧美最猛性xxxxx直播| 欧美精品高清视频| 久久综合国产精品| 中文字幕一区二区三区精华液 | 亚洲国产一区二区三区青草影视| 亚洲国产精品久久久久婷婷884 | 狠狠久久亚洲欧美| 国产乱码精品一品二品| bt7086福利一区国产| 欧美亚洲愉拍一区二区| 欧美成人一级视频| 亚洲欧美日韩小说| 理论电影国产精品| 成人a免费在线看| 欧美三级电影在线观看| 久久蜜桃av一区二区天堂 | 色呦呦国产精品| 欧美日韩综合一区| 欧美精品一区二区蜜臀亚洲| 亚洲欧美影音先锋| 久久99精品视频| av激情亚洲男人天堂| 在线观看中文字幕不卡| 亚洲图片另类小说| 538prom精品视频线放| 成人综合婷婷国产精品久久蜜臀| 在线精品亚洲一区二区不卡| 欧美喷水一区二区| 日韩成人av影视| www.欧美日韩| 欧美一区二区在线观看| 亚洲日本护士毛茸茸| 国产精品亚洲一区二区三区在线| 欧美日韩一卡二卡三卡| 亚洲欧洲99久久| 国产精品一区二区免费不卡| 91精品在线免费| 亚洲韩国一区二区三区| 99精品一区二区| 久久久精品综合| 日本va欧美va精品发布| 欧美性一区二区| 中文字幕亚洲不卡| 国产.精品.日韩.另类.中文.在线.播放| 中文字幕永久在线不卡| 国内偷窥港台综合视频在线播放| 69av一区二区三区| 亚洲综合色视频| 99re这里只有精品视频首页| 国产精品免费久久| 成人精品亚洲人成在线| 久久久99精品免费观看不卡| 亚洲午夜一区二区三区| 色婷婷综合激情| 亚洲蜜臀av乱码久久精品蜜桃| 成人精品视频一区| 国产精品毛片无遮挡高清| 国产盗摄一区二区| 国产午夜亚洲精品不卡| 国产精品996| 国产精品全国免费观看高清| 懂色av一区二区三区免费观看| 国产欧美日韩久久| 91美女在线观看| 国产一区二区0| 久久精品人人做人人综合| 成人网在线播放| 日韩理论电影院| 欧美日韩色一区| 青椒成人免费视频| 2017欧美狠狠色| 丁香激情综合国产| 亚洲精品自拍动漫在线| 欧美日韩一区二区三区高清| 日韩高清欧美激情| 久久久久9999亚洲精品| 91免费视频网址| 亚洲一区免费视频| 欧美一区日韩一区| 国产一区二区在线观看免费| 国产精品高潮久久久久无| 97久久精品人人做人人爽| 午夜成人免费视频| 国产视频一区二区在线观看| 色婷婷综合久久久久中文一区二区| 午夜电影一区二区| 国产区在线观看成人精品| 色激情天天射综合网| 麻豆极品一区二区三区| **性色生活片久久毛片| 7777精品伊人久久久大香线蕉 | 男女男精品视频网| 亚洲国产精品二十页| 欧美亚洲一区二区三区四区| 久色婷婷小香蕉久久| 国产日韩精品久久久| 欧美色涩在线第一页| 国产麻豆日韩欧美久久| 亚洲一区二区高清| 国产欧美精品区一区二区三区| 欧美日韩一级片网站| 国产精品一区二区你懂的| 亚洲高清免费视频| 欧美国产精品v| 日韩精品一区二区三区四区视频| 99久久精品国产一区二区三区| 日韩av网站免费在线| 亚洲女爱视频在线| 久久网站最新地址| 337p亚洲精品色噜噜| 成人综合婷婷国产精品久久免费| 日本欧美一区二区三区乱码| 亚洲色大成网站www久久九九| 精品日韩在线观看| 8x8x8国产精品| 91国产免费看| 99久久免费国产| 激情综合网激情| 香蕉成人啪国产精品视频综合网| **性色生活片久久毛片| 日本一区免费视频| 日韩一区二区三区在线视频| 欧美写真视频网站| 色综合激情五月| 91免费国产在线| 国产福利一区在线观看| 国产一区视频网站| 韩国欧美一区二区| 久久精品国产第一区二区三区| 日本视频在线一区| 日本欧美一区二区三区乱码| 肉色丝袜一区二区| 亚洲大片一区二区三区| 亚洲伊人伊色伊影伊综合网| 亚洲综合图片区| 一区二区三区视频在线观看| 一区二区三区四区在线免费观看 | 欧美成人精精品一区二区频| 宅男在线国产精品| 日韩欧美国产精品| 欧美r级电影在线观看| 日韩精品一区二区三区视频播放 | 国产a视频精品免费观看| 国产麻豆精品一区二区| 国产高清久久久久| 日韩欧美国产系列| 日韩美女在线视频| 国产日产欧美精品一区二区三区| 欧美国产日韩在线观看| 亚洲男人天堂av网| 亚洲一区二区三区爽爽爽爽爽| 日本怡春院一区二区| 国产精品自拍在线| 99久久精品国产观看| 欧美午夜精品久久久久久孕妇| 欧美日韩性生活| 精品对白一区国产伦| 国产精品乱人伦中文| 一区二区三区**美女毛片| 日本亚洲电影天堂| 国产成人精品在线看| 在线精品观看国产| 欧美精品一区二区三区久久久| 中文字幕一区二| 天堂久久一区二区三区| 国产一区二区三区电影在线观看| av在线不卡网| 欧美日本乱大交xxxxx| 久久久www成人免费无遮挡大片| 亚洲美女免费在线| 蜜桃一区二区三区四区| 成人国产视频在线观看| 欧美高清视频www夜色资源网| 337p日本欧洲亚洲大胆色噜噜| 一区二区三区四区精品在线视频| 另类成人小视频在线|