teraz som skusil vytvorit program ktory urobi iba ciste okno tu je kod:
Kód:
#include <GL/glut.h> // Header File For The GLUT Library
#include <GL/gl.h> // Header File For The OpenGL32 Library
#include <GL/glu.h> // Header File For The GLu32 Library
#include <unistd.h> // Header file for sleeping.
/* ascii code for the escape key */
#define ESCAPE 27
/* The number of our GLUT window */
int window;
/* A general OpenGL initialization function. Sets all of the initial parameters. */
void InitGL(int Width, int Height) // We call this right after our OpenGL window is created.
{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // This Will Clear The Background Color To Black
glClearDepth(1.0); // Enables Clearing Of The Depth Buffer
glDepthFunc(GL_LESS); // The Type Of Depth Test To Do
glEnable(GL_DEPTH_TEST); // Enables Depth Testing
glShadeModel(GL_SMOOTH); // Enables Smooth Color Shading
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); // Reset The Projection Matrix
gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f); // Calculate The Aspect Ratio Of The Window
glMatrixMode(GL_MODELVIEW);
}
/* The function called when our window is resized (which shouldn't happen, because we're fullscreen) */
void ReSizeGLScene(int Width, int Height)
{
if (Height==0) // Prevent A Divide By Zero If The Window Is Too Small
Height=1;
glViewport(0, 0, Width, Height); // Reset The Current Viewport And Perspective Transformation
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
}
/* The main drawing function. */
void DrawGLScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
glLoadIdentity(); // Reset The View
// since this is double buffered, swap the buffers to display what just got drawn.
glutSwapBuffers();
}
/* The function called whenever a key is pressed. */
void keyPressed(unsigned char key, int x, int y)
{
/* avoid thrashing this procedure */
usleep(100);
/* If escape is pressed, kill everything. */
if (key == ESCAPE)
{
/* shut down our window */
glutDestroyWindow(window);
/* exit the program...normal termination. */
exit(0);
}
}
int main(int argc, char **argv)
{
/* Initialize GLUT state - glut will take any command line arguments that pertain to it or
X Windows - look at its documentation at http://reality.sgi.com/mjk/spec3/spec3.html */
glutInit(&argc, argv);
/* Select type of Display mode:
Double buffer
RGBA color
Alpha components supported
Depth buffer */
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
/* get a 640 x 480 window */
glutInitWindowSize(640, 480);
/* the window starts at the upper left corner of the screen */
glutInitWindowPosition(0, 0);
/* Open a window */
window = glutCreateWindow("Jeff Molofee's GL Code Tutorial ... NeHe '99");
/* Register the function to do all our OpenGL drawing. */
glutDisplayFunc(&DrawGLScene);
/* Go fullscreen. This is as soon as possible. */
glutFullScreen();
/* Even if there are no events, redraw our gl scene. */
glutIdleFunc(&DrawGLScene);
/* Register the function called when our window is resized. */
glutReshapeFunc(&ReSizeGLScene);
/* Register the function called when the keyboard is pressed. */
glutKeyboardFunc(&keyPressed);
/* Initialize our window. */
InitGL(640, 480);
/* Start Event Processing Engine */
glutMainLoop();
return 1;
}
a napisalo mi to toto:
Kód:
lesson1.c:(.text+0x2a): undefined reference to `glClearColor'
lesson1.c:(.text+0x34): undefined reference to `glClearDepth'
lesson1.c:(.text+0x40): undefined reference to `glDepthFunc'
lesson1.c:(.text+0x4c): undefined reference to `glEnable'
lesson1.c:(.text+0x58): undefined reference to `glShadeModel'
lesson1.c:(.text+0x64): undefined reference to `glMatrixMode'
lesson1.c:(.text+0x69): undefined reference to `glLoadIdentity'
lesson1.c:(.text+0x97): undefined reference to `gluPerspective'
lesson1.c:(.text+0xa3): undefined reference to `glMatrixMode'
/tmp/cclWUuAc.o: In function `ReSizeGLScene':
lesson1.c:(.text+0xda): undefined reference to `glViewport'
lesson1.c:(.text+0xe6): undefined reference to `glMatrixMode'
lesson1.c:(.text+0xeb): undefined reference to `glLoadIdentity'
lesson1.c:(.text+0x119): undefined reference to `gluPerspective'
lesson1.c:(.text+0x125): undefined reference to `glMatrixMode'
/tmp/cclWUuAc.o: In function `DrawGLScene':
lesson1.c:(.text+0x139): undefined reference to `glClear'
lesson1.c:(.text+0x13e): undefined reference to `glLoadIdentity'
lesson1.c:(.text+0x143): undefined reference to `glutSwapBuffers'
/tmp/cclWUuAc.o: In function `keyPressed':
lesson1.c:(.text+0x170): undefined reference to `glutDestroyWindow'
/tmp/cclWUuAc.o: In function `main':
lesson1.c:(.text+0x19e): undefined reference to `glutInit'
lesson1.c:(.text+0x1aa): undefined reference to `glutInitDisplayMode'
lesson1.c:(.text+0x1be): undefined reference to `glutInitWindowSize'
lesson1.c:(.text+0x1d2): undefined reference to `glutInitWindowPosition'
lesson1.c:(.text+0x1de): undefined reference to `glutCreateWindow'
lesson1.c:(.text+0x1f0): undefined reference to `glutDisplayFunc'
lesson1.c:(.text+0x1f5): undefined reference to `glutFullScreen'
lesson1.c:(.text+0x202): undefined reference to `glutIdleFunc'
lesson1.c:(.text+0x20e): undefined reference to `glutReshapeFunc'
lesson1.c:(.text+0x21a): undefined reference to `glutKeyboardFunc'
lesson1.c:(.text+0x233): undefined reference to `glutMainLoop'
collect2: ld returned 1 exit status