Консоль с++ builder 6 библиотека Glut и OpenGl простая программа
Как подключить правильно Glut к с++ builder 6 будет рассказано
в следующей статье
Исходник и исполняемый файл здесь
=
=
//---------------------------------------------------------------------------
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <iostream>
#include <stdlib.h>
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
int width=700; int height=500; float color1=1.0;
//------------------------------------------------------------------
void Display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(color1, 0.3, 1);
// glutSolidSphere(1.0f, 10, 3);
glutWireTeapot(0.9);
glRotatef(3, 0,1,0); //random(RAND_MAX)/RAND_MAX; srand(RAND_MAX);
glFlush(); //
glutSwapBuffers();
glutPostRedisplay();
}
//------------------------------------------------------------------------------------------
void MyIdle()
{
//
}
//------------------------------------------------------------------------------------------------
void Reshape(int width, int height) // Reshape function
{
glViewport(0 ,0 ,width ,height ); //выводим на весе окно
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glOrtho(-2,2, -2,2, 2,10);
// glOrtho(-1,12, -1,12, 2,12);
gluLookAt(0,0,5, 0,0,0, 0,1,0); //откуда и куда смотрим
glMatrixMode( GL_MODELVIEW );
/*
glViewport(0, 0,width , height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// gluOrtho2D(-1, 1, -1, 1); //параметры все окно
// gluOrtho2D( //near -1.0, far 1.0
// -1.4, //left
// 1.4, //right
// -1.4, //bottom
// 1.4); //top
glOrtho(
-5., //left
5., //right
-5., //bottom
5., //top
-1., //near
1.); //far
glMatrixMode(GL_MODELVIEW);
*/
}
//---------------------------------------------------------------------------
void Keyboard( unsigned char key, int x, int y )
{
#define ESCAPE '\033'
if( key == ESCAPE )
exit(0);
}
//---------------------------------------------------------------------------
void mmouse(int button, int state, int x, int y)
{
if( state == GLUT_DOWN ) {
switch( button ) {
case GLUT_LEFT_BUTTON:
color1 =0.0 ;
break;
case GLUT_RIGHT_BUTTON:
color1 = 1.0;
break;
}
glutPostRedisplay();
}
}
//----------------------------------------------------------------------------------
void init (void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
float p[4]={3,3,3,1},
d[3]={-1,-1,-3};
glLightfv(GL_LIGHT0,GL_POSITION,p);
glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION,d);
}
//----------------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
std::cout << "Консоль C++ Builder 6 программа использует библиотеку GLUT"; //
std::cout << endl;
std::cout << "Выход клавиша Esc"; //
std::cout << endl;
std::cout << "Изменить цвет левая кнопка мыши вернуть цвет правая"; //
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); //(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize( width, height ); //
glutCreateWindow("Game"); //
init ();
glutReshapeFunc(Reshape);
glutDisplayFunc (Display); //
glutIdleFunc(MyIdle);
glutKeyboardFunc(Keyboard);
glutMouseFunc( mmouse );
glutMainLoop();
return 0;
}
//---------------------------------------------------------------------------
=
|