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

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

?? plmyview.cpp

?? 此例子提供了通過顯示列表繪制雨季,花傘等場景的例程.使我們更好地理解顯示列表的功能.
?? CPP
字號:
// plmyView.cpp : implementation of the CPlmyView class
//

#include "stdafx.h"
#include "plmy.h"
#include "MainFrm.h"
#include "Math.h"

#include "plmyDoc.h"
#include "plmyView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPlmyView

IMPLEMENT_DYNCREATE(CPlmyView, CView)

BEGIN_MESSAGE_MAP(CPlmyView, CView)
	//{{AFX_MSG_MAP(CPlmyView)
	ON_WM_CREATE()
	ON_WM_DESTROY()
	ON_WM_SIZE()
	ON_WM_ERASEBKGND()
	ON_WM_MOUSEMOVE()
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	ON_COMMAND(ID_BUTTONfull, OnBUTTONfull)
	ON_COMMAND(ID_BUTTONumbrella, OnBUTTONumbrella)
	ON_WM_TIMER()
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CPlmyView construction/destruction

CPlmyView::CPlmyView()
{
	// TODO: add construction code here
    my_pDC=NULL;
	mytbar=FALSE;
	mysbar=FALSE;
    py[100]=0.9f;
	rainkey=TRUE;
}

CPlmyView::~CPlmyView()
{
}

BOOL CPlmyView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	cs.style=WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS;

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CPlmyView drawing

void CPlmyView::OnDraw(CDC* pDC)
{

	CPlmyDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
///////////////////////////////////////
    static BOOL     bBusy = FALSE;

    if(bBusy) 	return;
    bBusy = TRUE;

	glClearColor(0.5f,0.1f,1.0f,1.0f);
 	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();


	mydraw(); 

	glFinish();
		
	SwapBuffers(wglGetCurrentDC());
	bBusy = FALSE;
////////////////////////////////////////
}

/////////////////////////////////////////////////////////////////////////////
// CPlmyView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CPlmyView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CPlmyView message handlers

void CPlmyView::myfirst()
{
	PIXELFORMATDESCRIPTOR pfd;
    int         n;
	HGLRC		hrc;

    my_pDC = new CClientDC(this);

    ASSERT(my_pDC != NULL);

    if (!mypixelformat())
        return;
    n =::GetPixelFormat(my_pDC->GetSafeHdc());
    ::DescribePixelFormat(my_pDC->GetSafeHdc(), n, sizeof(pfd), &pfd);


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

	GetClientRect(&my_oldRect);
    glClearDepth(1.0f);
    glEnable(GL_DEPTH_TEST);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();

}

void CPlmyView::mydraw()
{
	glTranslatef(0.0f,0.0f,-7.0f);
glEnable(GL_POINT_SMOOTH);
glTranslatef(0.0f,py[100],0.0f);
	rrain();
	glPushMatrix();
	for(int i=0 ;i<10;i++){ 
	glCallList(1);
//	glCallList(listi);
//	glCallList(1);
//	glTranslatef(0.001f,0.001f,0.0f);
//	glScalef(1.005f,1.005f,1.0f);
	rain();
	};
	glPopMatrix();

glDisable(GL_POINT_SMOOTH);
}

BOOL CPlmyView::mypixelformat()
{
	static PIXELFORMATDESCRIPTOR pfd = 
	{
        sizeof(PIXELFORMATDESCRIPTOR), 
        1,                             
        PFD_DRAW_TO_WINDOW |           
          PFD_SUPPORT_OPENGL|		
		  PFD_DOUBLEBUFFER,         
        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, 0                     
    };
    int pixelformat;

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

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

    return TRUE;

}

int CPlmyView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	myfirst();
	mylist();
	return 0;
}

void CPlmyView::OnDestroy() 
{
	CView::OnDestroy();
	
	// TODO: Add your message handler code here
	KillTimer(1);

	HGLRC	hrc;

	hrc = ::wglGetCurrentContext();

    ::wglMakeCurrent(NULL,  NULL);
	
    if (hrc)
        ::wglDeleteContext(hrc);

    if (my_pDC)
        delete my_pDC;
	
}

void CPlmyView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	if(cy > 0)
    { 

        my_oldRect.right = cx;
        my_oldRect.bottom = cy;


        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
//視場調節:
		glFrustum(-1.0,1.0,-1.0*cy/cx,1.0*cy/cx,5.0,9.0);
		glViewport(0, 0, cx, cy);



    }
RedrawWindow();
	
}

BOOL CPlmyView::OnEraseBkgnd(CDC* pDC) 
{
	// TODO: Add your message handler code here and/or call default
	return TRUE;
	
//	return CView::OnEraseBkgnd(pDC);
}

void CPlmyView::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CMainFrame* pframe=(CMainFrame*)AfxGetApp()->m_pMainWnd;
    pframe->xyshow(point.x,point.y);
	  if(pframe->fullscreenkey){
	    if(point.y<5){
          if(!mytbar){mytbar=TRUE;pframe->PostMessage(WM_COMMAND,ID_VIEW_TOOLBAR);};
		}else{
          if(mytbar){mytbar=FALSE;pframe->PostMessage(WM_COMMAND,ID_VIEW_TOOLBAR);};
		};
	  };
	
	CView::OnMouseMove(nFlags, point);
}

void CPlmyView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CMainFrame* pframe=(CMainFrame*)AfxGetApp()->m_pMainWnd;
    pframe->xyshow(point.x,point.y);
	  if(pframe->fullscreenkey){
          if(!mysbar){pframe->PostMessage(WM_COMMAND,ID_VIEW_STATUS_BAR);mysbar=TRUE;};
	  };
	
	CView::OnLButtonDown(nFlags, point);
}

void CPlmyView::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CMainFrame* pframe=(CMainFrame*)AfxGetApp()->m_pMainWnd;
    pframe->xyshow(point.x,point.y);
	  if(pframe->fullscreenkey){
          if(mysbar){pframe->PostMessage(WM_COMMAND,ID_VIEW_STATUS_BAR);mysbar=FALSE;};
	  };
	
	CView::OnLButtonUp(nFlags, point);
}

void CPlmyView::OnBUTTONfull() 
{
	// TODO: Add your command handler code here
	CMainFrame* pframe=(CMainFrame*)AfxGetApp()->m_pMainWnd;
	if(pframe->fullscreenkey){
        if(!mysbar){
          pframe->PostMessage(WM_COMMAND,ID_VIEW_STATUS_BAR);mysbar=TRUE;
		};
	}else{
        if(mysbar){
          pframe->PostMessage(WM_COMMAND,ID_VIEW_STATUS_BAR);mysbar=FALSE;
		};
	};
    pframe->fullscreenkey=!pframe->fullscreenkey;
	
}

void CPlmyView::mylist()
{
listi=glGenLists(1);
glListBase(listi);
glNewList(listi,GL_COMPILE); 
	glTranslatef(0.001f,0.001f,0.0f);
	glScalef(1.005f,1.005f,1.0f);
glEndList();

}

void CPlmyView::OnBUTTONumbrella() 
{
	// TODO: Add your command handler code here
    if(rainkey){
		SetTimer(1, 120, NULL);
		rainkey=!rainkey;
	}else{
		KillTimer(1);
		rainkey=!rainkey;
	};
    Invalidate(FALSE);
}

void CPlmyView::rain()
{
	for(int i=0 ;i<100;i++){ 
          
		  glPointSize(mpointsize[i]);
		  glColor3f(1.0f,1.0f,1.0f);

		  glBegin(GL_POINTS);

	      glVertex3f(px[i],py[i],pz[i]);

          glEnd();
	};
}

void CPlmyView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if(nIDEvent==1){
		if(py[100]<=0.0f){py[100]=0.0f;}else{py[100]=py[100]-0.01f;};

		Invalidate(FALSE);
	};
	
	CView::OnTimer(nIDEvent);
}

void CPlmyView::rrain()
{
	for(int i=0 ;i<100;i++){ 
	mpointsize[i]=2.0f*rand()/RAND_MAX;
    px[i]=1.0f*(rand()-rand())/RAND_MAX;//
	py[i]=1.0f*(rand()-rand())/RAND_MAX;//
	pz[i]=1.0f*(rand()-rand())/RAND_MAX;//
	};
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产情人综合久久777777| 亚洲精品一区二区三区影院 | 中文字幕中文字幕在线一区| 欧美哺乳videos| 日韩欧美国产综合一区 | 老司机精品视频导航| 日韩国产高清在线| 美女网站视频久久| 精品系列免费在线观看| 国产精品亚洲成人| 成人高清视频在线观看| 91在线国产观看| 色天天综合色天天久久| 欧美三级日韩在线| 欧美成人伊人久久综合网| 欧美成人video| 中文字幕久久午夜不卡| 亚洲人成影院在线观看| 性欧美大战久久久久久久久| 日本伊人精品一区二区三区观看方式| 久久精品国产秦先生| 国产成人综合自拍| 欧美性色黄大片| 精品成人一区二区| 中文字幕一区二区三区不卡| 天天操天天干天天综合网| 一区二区三区蜜桃| 午夜视频一区二区| 日韩精品专区在线| 亚洲欧美日韩国产另类专区| 91视频一区二区| 中文字幕一区二区三区av| 国产成都精品91一区二区三| 国产女人aaa级久久久级| 国产a视频精品免费观看| 国产女人18水真多18精品一级做| 国产成人午夜高潮毛片| 国产欧美精品国产国产专区 | 亚洲日本欧美天堂| 色婷婷一区二区三区四区| 一区二区三区欧美| 欧美视频一区二区三区四区| 日韩电影免费在线观看网站| 日韩一区国产二区欧美三区| 日韩中文字幕一区二区三区| 日韩视频免费观看高清完整版在线观看| 日韩av电影天堂| 久久久噜噜噜久久人人看 | 精久久久久久久久久久| 国产人成亚洲第一网站在线播放| 成人av在线资源| 亚洲国产成人精品视频| 日韩亚洲国产中文字幕欧美| 国产成人免费视频一区| 中文字幕在线不卡一区二区三区| 一本久久综合亚洲鲁鲁五月天 | 欧美精品v国产精品v日韩精品 | 国产欧美一区二区三区网站| 91影院在线观看| 日韩vs国产vs欧美| 国产三级精品三级| 日本高清不卡aⅴ免费网站| 日韩福利电影在线| 国产精品久久久久久久久久久免费看 | 欧美国产欧美综合| 欧美性色综合网| 国产激情一区二区三区四区| 一区二区在线观看免费 | 国产精品久久福利| 欧美精选一区二区| 成人午夜电影小说| 日韩精品电影在线| ...中文天堂在线一区| 91精品福利在线一区二区三区 | 欧美色精品在线视频| 国产曰批免费观看久久久| 亚洲黄色性网站| 国产欧美日本一区视频| 91精品午夜视频| av一区二区三区在线| 日韩黄色免费电影| **欧美大码日韩| 国产亚洲综合av| 欧美一级在线观看| 欧美自拍偷拍一区| 成人激情动漫在线观看| 老司机午夜精品99久久| 夜夜亚洲天天久久| 国产精品成人免费| 亚洲国产精品传媒在线观看| 日韩欧美在线网站| 欧美亚洲自拍偷拍| 91免费版pro下载短视频| 国产毛片一区二区| 免费日本视频一区| 日韩av电影天堂| 亚洲成人激情自拍| 亚洲影视在线观看| 亚洲毛片av在线| 亚洲视频免费在线观看| 国产精品久久久99| 欧美国产一区在线| 欧美—级在线免费片| 国产女人18毛片水真多成人如厕| 26uuu久久综合| 精品国产区一区| 精品国产乱码91久久久久久网站| 在线不卡的av| 欧美剧在线免费观看网站| 欧美日韩在线不卡| 欧美视频一区二区三区在线观看| 91黄色小视频| 欧美性色欧美a在线播放| 91福利在线免费观看| 在线观看91视频| 欧美精品粉嫩高潮一区二区| 欧美绝品在线观看成人午夜影视| 欧美美女激情18p| 56国语精品自产拍在线观看| 884aa四虎影成人精品一区| 欧美伦理视频网站| 欧美xingq一区二区| 久久久亚洲国产美女国产盗摄| 久久久久久99久久久精品网站| 国产亚洲视频系列| 国产精品国产三级国产普通话99| 亚洲欧洲日韩在线| 一个色综合av| 麻豆91在线看| 大胆欧美人体老妇| 91麻豆蜜桃一区二区三区| 在线视频一区二区三| 欧美伦理电影网| 久久久一区二区| 国产精品黄色在线观看| 亚洲日本在线天堂| 日本系列欧美系列| 国产精品小仙女| 在线亚洲免费视频| 精品久久久网站| 中文字幕一区在线观看视频| 亚洲国产另类av| 国产一区二区三区在线观看免费视频| proumb性欧美在线观看| 欧美日本精品一区二区三区| 精品不卡在线视频| 亚洲品质自拍视频网站| 免费在线看成人av| 不卡一区二区在线| 制服丝袜在线91| 亚洲图片你懂的| 精品亚洲成av人在线观看| 色婷婷香蕉在线一区二区| 日韩欧美一卡二卡| 亚洲三级电影网站| 国产在线精品不卡| 欧美色网一区二区| 欧美一级xxx| 日韩毛片精品高清免费| 老司机精品视频一区二区三区| 99精品欧美一区二区三区小说 | 国产一区二区在线视频| 99精品视频在线播放观看| 日韩精品中文字幕一区二区三区 | 国产精品成人午夜| 久久精品国产色蜜蜜麻豆| 91精品办公室少妇高潮对白| 久久综合色婷婷| 性欧美大战久久久久久久久| 成人app下载| 久久伊人蜜桃av一区二区| 天天综合网 天天综合色| 91麻豆免费看片| 日本一区二区视频在线观看| 日本免费新一区视频| 欧美午夜不卡视频| 亚洲欧美成人一区二区三区| 国产精品12区| 欧美成人一级视频| 天堂资源在线中文精品| 色狠狠一区二区| 国产精品不卡一区| 成人综合在线观看| 国产欧美综合色| 国产尤物一区二区| 精品国产一区二区三区不卡| 视频一区欧美精品| 欧美日韩成人高清| 亚洲午夜在线观看视频在线| 色哟哟一区二区三区| 国产精品视频麻豆| 成人黄色av电影| 国产精品福利一区| 粗大黑人巨茎大战欧美成人| 国产视频一区不卡| 顶级嫩模精品视频在线看| 国产欧美在线观看一区| 国产成人av电影免费在线观看| 久久久精品天堂| 成人中文字幕电影|