0001: // ---------------------------------------------------------------------------
0002: // File: MyRender.coo
0003: //
0004: // OpenGLによるテスト描画
0005: //
0006: // Copyright (c) 2005 IMAGIRE Takashi. All rights reserved.
0007: // ---------------------------------------------------------------------------
0008: #include "stdafx.h"
0009: #include <windows.h>
0010: #include <GL/gl.h>
0011: #include <GL/glu.h>
0012: #include "tpotCGL.h"
0013: 
0014: void MyInitRender( void *p )
0015: {
0016:     tpot::CGl *pGL = (tpot::CGl*)p;
0017:     
0018:     // レンダリング コンテキストをカレントにする
0019:     pGL->SetCurrent();
0020: 
0021:     // 背景色
0022:     glClearColor(1.0f, 1.0f, 1.0f, 1.0f) ;
0023: 
0024:     /// 深度バッファ
0025:     glEnable(GL_DEPTH_TEST);
0026:     glDepthFunc(GL_LEQUAL);
0027: }
0028: 
0029: void MyRender( void *p, float dt, int w, int h )
0030: {
0031:     tpot::CGl *pGL = (tpot::CGl*)p;
0032:     
0033:     // 描画開始
0034:     pGL->BeginRender();
0035: 
0036:     // 描画範囲の設定
0037:     glViewport(0, 0, w, h);
0038: 
0039:     // 最初の塗りつぶし
0040:     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) ;
0041: 
0042:     // 射影行列の設定
0043:     glMatrixMode(GL_PROJECTION);
0044:     glLoadIdentity();
0045:     gluPerspective(40, (float)w/(float)h, 0.1, 200);
0046: 
0047:     // カメラの設定
0048:     glMatrixMode(GL_MODELVIEW);
0049:     glLoadIdentity();
0050:     glTranslated( 0.0, 0.0, -5.0 );
0051: 
0052:     // 回転
0053:     static float angle = 0;
0054:     angle += 360.0f * dt / 10.0f;
0055:     if(360<angle)angle-=360;
0056:     glRotatef( angle, 0.0f, 0.0f, 1.0f );
0057: 
0058:     // 四角形を描く
0059:     glBegin(GL_QUADS);
0060: 
0061:         glColor3f(1.0, 0.0, 0.0);
0062:         glVertex3f(-1,-1,1);
0063:         glVertex3f( 1,-1,1);
0064:         glVertex3f( 1, 1,1);
0065:         glVertex3f(-1, 1,1);
0066: 
0067:     glEnd();    
0068:     
0069:     // 終了
0070:     glFlush();
0071:     pGL->EndRender();
0072: }
0073: