🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.program
Article #965

OPENGL(4)

#965
From: ����
Date: Tue, 05 May 1998 00:00
164 lines
5879 bytes
BBSˮľ�廪վ�þ�����
������: yxy (��˿˿#���ߵ�С��ӥ), ����: GAME_Designer 
��  ��: OPENGL(4) 
����վ: BBS ˮľ�廪վ (Wed Jan 14 10:03:54 1998) 
 
ǰ����ƪ�����Ѿ���OPENGL�ı�̻�ṹ������ϡ��Ժ� 
�����������������������������ݡ���һƪ�ǽ��� 
���̲����Ͷ�����ʵ�ʻ����Զ�ģ���ֻ�Ǹ��򵥵��� 
���û����ƵĶ�����������ǰ���ƶ���������ת���������� 
���ĵ�һ��QUAKE����Ȼ����汾˭��˭�ϵ����Ǻǡ� 
��ƪ����һ��Ŀ�ľ��Ǽ���ǰ�����CALLBACK�������ʶ�� 
�����ڱ任��ֱ�۽��ͣ��κα任�㶼���Դ���Ļ��ͨ���� 
���IJ����������� 
��ֻ�Ѻ���ǰ�仯�IJ��ֱ�����Ľ��� 
 
//////////////////////////////////////////////////// 
//sample.cpp 
#include "glos.h" 
#include <GL/gl.h> 
#include <GL/glaux.h> 
#include "windows.h" 
 
void myinit(void); 
void CALLBACK  display(void); 
void CALLBACK  reshape(GLsizei w,GLsizei h); 
 
//ע�⵽���������¼���4��CALLBACK���� 
//����display() reshape()��Ҳ��������������� 
//ʵ�ֶԼ����������Ӧ 
void CALLBACK  left(void);//�� LEFT 
void CALLBACK  right(void);//�� RIGHT 
void CALLBACK  up(void);//�� UP 
void CALLBACK  down(void);//�� DOWN 
 
//����ȫ�ֱ�����z_motion������������Զ�� 
//rotate��������������ת 
static int z_motion=0,rotate=0; 
 
void myinit(void) 
{ 
    auxInitDisplayMode(AUX_SINGLE|AUX_RGBA); 
        auxInitPosition(0,0,500,500); 
        auxInitWindow("sample1"); 
        glClearColor(0.0,0.0,0.0,0.0); 
        glClear(GL_COLOR_BUFFER_BIT); 
} 
 
void CALLBACK reshape(GLsizei w,GLsizei h) 
{ 
if(w<=500&&h<=500) 
glViewport(0,0,w,h); 
if(w>500&&h<=500) 
glViewport(0,0,500,h); 
if(w<=500&&h>500) 
glViewport(0,0,w,500); 
if(w>500&&h>500) 
glViewport(0,0,500,500); 
 
 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
///*if(w<=h) 
// glOrtho(-20.0,20.0,-20.0*(GLfloat)h/(GLfloat)w, 
//         20.0*(GLfloat)h/(GLfloat)w,-50.0,50.0); 
//else 
//  glOrtho(-20.0*(GLfloat)h/(GLfloat)w, 
//         20.0*(GLfloat)h/(GLfloat)w,-20.0,20.0,-50.0,50.0); 
//*/ 
/************************************************************/ 
//�������ǻ�һ��ͶӰ������͸��ͶӰ��������е�˵ 
//ȡ���ϴε�ƽ��ͶӰ��ǰ4�������ǿ��Ƶ�һ����ȡ��� 
//left right top bottom��Ȼ������������ƽ��ȡ��� 
//Z��꣬Զ��ȡ���Z���꣬�����������£� 
//void glFrustum(GLdouble left,GLdouble right, 
//               GLdouble bottom,GLdouble top, 
//               GLdouble near,GLdouble far); 
/************************************************************/ 
glFrustum(-20.0,20.0,-20.0,20.0,10.0,50.0); 
glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
} 
 
void draw(void) 
{ 
glBegin(GL_TRIANGLE_STRIP); 
glColor3f(1.0,0.0,0.0); 
glVertex3f(15.0,0.0,0.0); 
glColor3f(0.0,1.0,0.0); 
glVertex3f(-15.0,0.0,0.0); 
glColor3f(0.0,0.0,1.0); 
glVertex3f(0.0,15.0,15.0); 
// 
glColor3f(0.0,1.0,1.0); 
glVertex3f(10.0,15.0,-15.0); 
// 
glColor3f(1.0,1.0,0.0); 
glVertex3f(15.0,0.0,0.0); 
// 
glEnd(); 
} 
 
void CALLBACK display(void) 
{ 
glClearColor(0.0,0.0,0.0,1.0); 
glClear(GL_COLOR_BUFFER_BIT); 
 
//glPushMatrix(); 
glLoadIdentity(); 
 
//���z_motion rotate��������ȷ���任�ľ�����ֵ�� 
//z_motion�ı�ʱ�������ԭZ���-25��ƽ��z_motion����λ 
glTranslatef(0.0,0.0,-25.0+z_motion); 
//rotate�ı�ʱ��������Y�ᣨ���·�����ת5*rotate�� 
glRotatef(rotate*5.0,0.0,1.0,0.0); 
 
draw(); 
//glPopMatrix(); 
 
glFlush(); 
} 
void CALLBACK left(void) 
{ 
//ÿ������LEFT��rotate��ֵ +1 
//���º������� 
rotate++; 
} 
void CALLBACK right(void) 
{ 
rotate--; 
} 
void CALLBACK up(void) 
{ 
z_motion++; 
} 
void CALLBACK down(void) 
{ 
z_motion--; 
} 
void main(void) 
{ 
        myinit(); 
 
//�ø����ĺ�����ð�left() right() up() down() 
//��Ϊ��׼�������봦�?�� 
    auxKeyFunc(AUX_LEFT,left); 
    auxKeyFunc(AUX_RIGHT,right); 
    auxKeyFunc(AUX_UP,up); 
    auxKeyFunc(AUX_DOWN,down); 
 
    auxReshapeFunc(reshape); 
    auxMainLoop(display); 
} 
//end of sample 
//////////////////////////////////////////////////// 
��������������ᷢ���н����Ե���˸�У����ǵ�����ģʽ 
��ɵ��Ժ�ὲ������Ӧ����˫����ģʽ��������Ա�����˸ 
 
-- 
�� ��Դ:��BBS ˮľ�廪վ bbs.net.tsinghua.edu.cn��[FROM: 166.111.74.90] 

BBSˮľ�廪վ�þ�����

�� ��Դ: �й�ƴ�BBSվ [bbs.ustc.edu.cn]
Technical Details
Message-ID: <980505.yWbRH$PBBS@bbs.ustc.edu.cn>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: fc86e,ecd35796fa1927bb,start
X-Google-Attributes: gidfc86e,public
From: Ambi_A@bbs.ustc.edu.cn (����)
Subject: OPENGL(4)
Date: 1998/05/05
Message-ID: <980505.yWbRH$PBBS@bbs.ustc.edu.cn>
X-Deja-AN: 350408751
Organization: �й�ƴ�BBSվ
Newsgroups: cn.bbs.comp.program