Eclipse CDT oraz OpenGL

0

Witam,
mam pytanie związane z instalacją opengl i glut'a pod eclipse.

Ściągnąłem najnowszą wersję Eclipse CDT oraz zainstalowałem MinGW (choć nie wiem czy to było potrzebne bo teoretycznie jest kompilator GCC G++ Compiler). Ściągnąłem bibliotekę glut (nie wiem czym się różni od opengl) i mam w folderze:

  • glut32.dll (wrzuciłem do Windows/System32/)
  • glut32.dll (nie wiem co zrobić)
  • glut.def (nie wiem co zrobić)
  • glut.h (dodałem do MinGW/include/GL)

Wpisałem taki kod z tutoriala:

#include <GL/glut.h>
#include <stdlib.h>

// funkcja generująca scenę 3D

void Display()
{
    // kolor tła - zawartość bufora koloru
    glClearColor( 1.0, 1.0, 1.0, 1.0 );

    // czyszczenie bufora koloru
    glClear( GL_COLOR_BUFFER_BIT );

    // kolor kwadratu
    glColor3f( 1.0, 0.0, 0.0 );

    // początek definicji wielokąta
    glBegin( GL_POLYGON );

    // kolejne wierzchołki wielokąta
    glVertex3f( 0.0, 0.0, 0.0 );
    glVertex3f( 0.0, 1.0, 0.0 );
    glVertex3f( 1.0, 1.0, 0.0 );
    glVertex3f( 1.0, 0.0, 0.0 );

    // koniec definicji prymitywu
    glEnd();

    // skierowanie poleceń do wykonania
    glFlush();

    // zamiana buforów koloru
    glutSwapBuffers();
}

// zmiana wielkości okna

void Reshape( int width, int height )
{
    // generowanie sceny 3D
    Display();
}

// stałe do obsługi menu podręcznego

enum
{
    EXIT // wyjście
};

// obsługa menu podręcznego

void Menu( int value )
{
    switch( value )
    {
        // wyjście
    case EXIT:
        exit( 0 );
    }
}

int main( int argc, char * argv[] )
{
    // inicjalizacja biblioteki GLUT
    glutInit( & argc, argv );

    // inicjalizacja bufora ramki
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB );

    // rozmiary głównego okna programu
    glutInitWindowSize( 400, 400 );

    // utworzenie głównego okna programu
    glutCreateWindow( "Kwadrat 1" );

    // dołączenie funkcji generującej scenę 3D
    glutDisplayFunc( Display );

    // dołączenie funkcji wywoływanej przy zmianie rozmiaru okna
    glutReshapeFunc( Reshape );

    // utworzenie menu podręcznego
    glutCreateMenu( Menu );

    // dodatnie pozycji do menu podręcznego
    #ifdef WIN32

    glutAddMenuEntry( "Wyjście", EXIT );
    #else

    glutAddMenuEntry( "Wyjscie", EXIT );
    #endif

    // określenie przycisku myszki obsługującej menu podręczne
    glutAttachMenu( GLUT_RIGHT_BUTTON );

    // wprowadzenie programu do obsługi pętli komunikatów
    glutMainLoop();
    return 0;
}

I wszędzie mi podkreśla funkcje gl i glut. Jeżeli natomiast wejdę w PPM na projekcie -> Properties -> C/C++ Builder -> (zakładka) Tool Settings -> MinGW C++ Linker -> Libraries -> tutaj dodaje glut

W tym momencie odznacza mi wszystkie funkcje, ale wyświetla błąd podczas kompilacji pliku o rozszerzeniu .o:

cannot find -lglut

Co mam dalej zrobić? Czy mam wywalić MinGW? Czy potrzebuje jeszcze jakiś bibliotek lub czegoś innego? Czy opengl.h i glut.h to różne biblioteki?

0

Czy opengl.h i glut.h to różne biblioteki?
GLUT (albo nowsza wersja, FreeGLUT) to biblioteka pomocniczna dla OpenGL. Można używać OpenGL bez używania GLUT-a.
GLUT nie jest częścią OpenGL.

0

Dzięki za wyjaśnienie. Czym tak naprawdę różni się opengl od glut'a?

I czy ktoś może mi pomóc z resztą?

0

GLUT pomaga Ci stworzyć okienko, załadować tekstury z bitmap itd. OpenGL nie oferuje takich rzeczy, skupia się na samym rysowaniu.

Co do linkowania, to powinieneś jeszcze tam gdzieś znaleźć plik gluta z rozszerzeniem *.a, albo *.lib i dać go do MinGW/Lib - wtedy linker powinien Ci znaleźć liba.

0

To nie działa. Robię teraz wszystko od nowa na podstawie tego:
http://www.mingw.org/wiki/HOWTO_Compile_the_OpenGL_Utility_Toolkit_GLUT_for_Win32_with_MinGW

I tutaj pojawił się jeden problem - wpisując mingw32-make wyświetla mi jeden błąd:

(...), --out-implib,lib/glut/libglut32.a c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: warning: cannot find entry symbol nable-auto-import; defaulting tp 63c01000

Czy ktoś wie o co chodzi? Wcześniej wszystko poprawnie zrobił i tutaj się wykrzaczył.

0

Czym tak naprawdę różni się opengl od glut'a?

Zobacz jakie funkcje mają „glut” w nazwie: glutCreateWindow, glutCreateMenu, glutInitWindowSize,
a jakie tylko „gl”: glClearColor, glVertex3f
widzisz jakąś prawidłowość?

Czy ktoś wie o co chodzi?
Nie wiem o co chodzi. Pod Visualem nie mam takich problemów :-)
A po opanowaniu podstaw WinAPI (horror!), wolę jednak otwierać okienko bez żadnych glutów czy innych smarków…

0

Dobra poradziłem sobie. Zainstalowałem freeglut i działa.

Azarien napisał(a):

Czy ktoś wie o co chodzi?
Nie wiem o co chodzi. Pod Visualem nie mam takich problemów :-)
A po opanowaniu podstaw WinAPI (horror!), wolę jednak otwierać okienko bez żadnych glutów czy innych smarków…

Tylko z WinAPI nie służy do 3D

0
nowy12345 napisał(a):

Dobra poradziłem sobie. Zainstalowałem freeglut i działa.

Azarien napisał(a):

Czy ktoś wie o co chodzi?
Nie wiem o co chodzi. Pod Visualem nie mam takich problemów :-)
A po opanowaniu podstaw WinAPI (horror!), wolę jednak otwierać okienko bez żadnych glutów czy innych smarków…

Tylko z WinAPI nie służy do 3D

Nie ucz matki garów zmywać :P - do WinAPI też możesz podpiąć kontekst OpenGL.

1 użytkowników online, w tym zalogowanych: 0, gości: 1