IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Code::Blocks Discussion :

Interface graphique openGL


Sujet :

Code::Blocks

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 79
    Points : 39
    Points
    39
    Par défaut Interface graphique openGL
    J'ai un petit problème avec l'openGL de CODE::BLOCK je creer un nouveau projet openGL ou GLUMP et il me demande d'entree des donnes sans doute des liens mais je ne sais pas lesquelle il faut entree

    merci de votre aide.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    ( Il me semble que tu n'as pas posté dans la bonne section ( il y en a une pour OpenGL ... ), enfin quoique c'est un problème avec Code::Blocks )

    À part, le fait que Code::blocks, demande le nom de ton projet et le dossier ou tu va travailler ( dossier du projet ) le reste tu peux faire suivant, c'est des trucs pour le compilateur et par défault ils sont bons.

    Si tu as encore un doute, envoie une capture d'écran, et montre ce que tu ne comprend pas
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 79
    Points : 39
    Points
    39
    Par défaut
    (post en 2 parties)


    j'ai trouvé un pack d'installation de glut mais dans un projet genre pacman il y a quelque chose qui coince est je ne trouve pas quoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    #include <iostream>
    #include <fstream>
    #include <GL/glut.h>
     
    using namespace std;
     
    void LabyAffichage();
    void DessinerNiveau();
    void LabyRedim(int x, int y);
    void OuvrirNiveau(char* nom_fichier);
     
    char** Matrice; // Matrice contenant le niveau
    int NbColonnes, NbLignes; // Taille du niveau
    void LibererMemoire();
     
    int main(void)
    {
        NbColonnes=NbLignes=0; // Initialisation de la taille.
        NbColonnes = 10;
        NbLignes = 8;
        Matrice = new char*[NbColonnes];
        Matrice = NULL; //Initialisation du double pointeur
     
        for(int i=0; i < NbColonnes; i++)
            Matrice[i] = new char[NbLignes];
     
        /* Gestion graphique */
        // Position de la fenêtre
        glutInitWindowPosition(10, 10);
        // Taille de la fenêtre
        glutInitWindowSize(500, 500);
        // Mode d'affichage
        glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
        // Création de la fenêtre
        glutCreateWindow("Labyrinthe");
        // Fonction d'affichage
        glutDisplayFunc(LabyAffichage);
        // Fonction de redimentionnement
        glutReshapeFunc(LabyRedim);
     
        OuvrirNiveau("niveau.txt"); //Ouverture de "niveau.txt"
     
        glutMainLoop();
    }
     
    void LabyAffichage()
    {
        // Défint la couleur de fond
        glClearColor(1.0, 1.0, 1.0, 1.0);
        // Efface l'écran
        glClear(GL_COLOR_BUFFER_BIT);
        // Définit la matrice de modélisation active
        glMatrixMode(GL_MODELVIEW);
        DessinerNiveau(); // Affiche le niveau
        glFlush(); // Achéve l'affichage
    }
     
    void DessinerNiveau()
    {
        glColor3d(0.5, 0.5, 0.5); // Couleur grise
        // Commence l'affichage de quadrilatères
        glBegin(GL_QUADS);
        // Parcourt toutes les cellules de la matrice
        for(int i=0; i<NbColonnes; i++)
            for(int j=0; j<NbLignes; j++)
                // Si c'est un mur on dessine un carré
                if(Matrice[i][j] == '0')
                {
                    // Place les points du carré
                    glVertex2d(i,   j);
                    glVertex2d(i,   j+1);
                    glVertex2d(i+1, j+1);
                    glVertex2d(i+1, j);
                }
       glEnd(); // Achève l'affichage
    }
     
    void LabyRedim(int x, int y)
    {
        glViewport(0, 0, x, y);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluOrtho2D(0.0, (double)NbColonnes, (double)NbLignes, 0.0);
    }
     
    void OuvrirNiveau(char* nom_fichier)
    {
        ifstream fichier;           // Objet de type ifstream
        fichier.open(nom_fichier);  // Ouverture en lecture seule
     
        if(fichier == 0)
        {
            cout << "Erreur lors de l'ouverture du fichier!" <<endl;
            system("pause");
            exit(1);
        }
        // Lecture de la taille du niveau
        fichier >> NbColonnes;
        fichier >> NbLignes;
     
        // Allocation du tableau du niveau
        Matrice = new char*[NbColonnes];
        for(int i=0; i < NbColonnes; i++)
            Matrice[i] = new char[NbLignes];
     
        // Initialisation des valeurs du tableau
        for(int i=0; i<NbColonnes; i++)
            for(int j=0; j<NbLignes; j++)
                Matrice[i][j] = '0';
     
        // Lecture du tableau du niveau, caractère par caractère
        for(int j=0; j<NbLignes; j++)
            for(int i=0; i<NbColonnes; i++)
                fichier >> Matrice[i][j];
     
        fichier.close(); // Fermeture du fichier
    }
     
    void LibererMemoire()
    {
        // Vérifie que Matrice a bien été allouée
        if(Matrice != NULL)
        {
            for(int i=0; i<NbColonnes; i++)
                delete [] Matrice[i]; //Libération des colonnes
     
            //Libération de la ligne de pointeurs
            delete [] Matrice;
        }
    }


    Rapport d'erreur code::blocks
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    obj\Debug\main.o||In function `glutInit_ATEXIT_HACK':|
    C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\GL\glut.h|486|undefined reference to `___glutInitWithExit'|
    obj\Debug\main.o||In function `glutCreateWindow_ATEXIT_HACK':|
    C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\GL\glut.h|503|undefined reference to `___glutCreateWindowWithExit'|
    obj\Debug\main.o||In function `glutCreateMenu_ATEXIT_HACK':|
    C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\GL\glut.h|549|undefined reference to `___glutCreateMenuWithExit'|
     
    obj\Debug\main.o||In function `main':|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|29|undefined reference to `_glutInitWindowPosition'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|31|undefined reference to `_glutInitWindowSize'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|33|undefined reference to `_glutInitDisplayMode'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|37|undefined reference to `_glutDisplayFunc'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|39|undefined reference to `_glutReshapeFunc'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|43|undefined reference to `_glutMainLoop'|
     
    obj\Debug\main.o||In function `_Z13LabyAffichagev':|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|49|undefined reference to `__imp__glClearColor'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|51|undefined reference to `__imp__glClear'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|53|undefined reference to `__imp__glMatrixMode'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|55|undefined reference to `__imp__glFlush'|
     
    obj\Debug\main.o||In function `_Z14DessinerNiveauv':|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|60|undefined reference to `__imp__glColor3d'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|62|undefined reference to `__imp__glBegin'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|70|undefined reference to `__imp__glVertex2d'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|71|undefined reference to `__imp__glVertex2d'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|72|undefined reference to `__imp__glVertex2d'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|73|undefined reference to `__imp__glVertex2d'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|75|undefined reference to `__imp__glEnd'|
     
    obj\Debug\main.o||In function `_Z9LabyRedimii':|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|80|undefined reference to `__imp__glViewport'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|81|undefined reference to `__imp__glMatrixMode'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|82|undefined reference to `__imp__glLoadIdentity'|
    C:\Documents and Settings\Administateur\Mes documents\Labyrinthe\main.cpp|83|undefined reference to `__imp__gluOrtho2D'|
     
    ||=== Build finished: 24 errors, 0 warnings ===|

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 79
    Points : 39
    Points
    39
    Par défaut
    Glut.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
    566
    567
    568
    569
    570
    571
    572
    573
    574
    575
    576
    577
    578
    579
    580
    581
    582
    583
    584
    585
    586
    587
    588
    589
    590
    591
    592
    593
    594
    595
    596
    597
    598
    599
    600
    601
    602
    603
    604
    605
    606
    607
    608
    609
    610
    611
    612
    613
    614
    615
    616
    617
    618
    619
    620
    621
    622
    623
    624
    625
    626
    627
    628
    629
    630
    631
    632
    633
    634
    635
    636
    637
    638
    639
    640
    641
    642
    643
    644
    645
    646
    647
    648
    649
    650
    651
    652
    653
    654
    655
    656
    657
    658
    659
    660
    661
    662
    663
    664
    665
    666
    667
    668
    669
    670
    671
    672
    673
    674
    675
    676
    677
    678
    679
    680
    681
    682
    683
    684
    685
    686
    687
    688
    689
    690
    691
    692
    693
    694
    695
    696
    697
    698
    699
    700
    701
    702
    703
    704
    705
    706
    707
    708
    709
    710
    711
    712
    713
    714
    715
    716
    #ifndef __glut_h__
    #define __glut_h__
     
    /* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */
     
    /* This program is freely distributable without licensing fees  and is
       provided without guarantee or warrantee expressed or  implied. This
       program is -not- in the public domain. */
     
    #if defined(_WIN32)
     
    /* GLUT 3.7 now tries to avoid including <windows.h>
       to avoid name space pollution, but Win32's <GL/gl.h> 
       needs APIENTRY and WINGDIAPI defined properly. */
    # if 0
       /* This would put tons of macros and crap in our clean name space. */
    #  define  WIN32_LEAN_AND_MEAN
    #  include <windows.h>
    # else
       /* XXX This is from Win32's <windef.h> */
    #  ifndef APIENTRY
    #   define GLUT_APIENTRY_DEFINED
    #   if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__)
    #    define APIENTRY    __stdcall
    #   else
    #    define APIENTRY
    #   endif
    #  endif
       /* XXX This is from Win32's <winnt.h> */
    #  ifndef CALLBACK
    #   if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) || defined(__LCC__)
    #    define CALLBACK __stdcall
    #   else
    #    define CALLBACK
    #   endif
    #  endif
       /* XXX Hack for lcc compiler.  It doesn't support __declspec(dllimport), just __stdcall. */
    #  if defined( __LCC__ )
    #   undef WINGDIAPI
    #   define WINGDIAPI __stdcall
    #  else
       /* XXX This is from Win32's <wingdi.h> and <winnt.h> */
    #   ifndef WINGDIAPI
    #    define GLUT_WINGDIAPI_DEFINED
    #    define WINGDIAPI __declspec(dllimport)
    #   endif
    #  endif
       /* XXX This is from Win32's <ctype.h> */
    #  ifndef _WCHAR_T_DEFINED
    typedef unsigned short wchar_t;
    #   define _WCHAR_T_DEFINED
    #  endif
    # endif
     
    /* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA
       in your compile preprocessor options. */
    # if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA)
    #  pragma comment (lib, "winmm.lib")      /* link with Windows MultiMedia lib */
    /* To enable automatic SGI OpenGL for Windows library usage for GLUT,
       define GLUT_USE_SGI_OPENGL in your compile preprocessor options.  */
    #  ifdef GLUT_USE_SGI_OPENGL
    #   pragma comment (lib, "opengl.lib")    /* link with SGI OpenGL for Windows lib */
    #   pragma comment (lib, "glu.lib")       /* link with SGI OpenGL Utility lib */
    #   pragma comment (lib, "glut.lib")      /* link with Win32 GLUT for SGI OpenGL lib */
    #  else
    #   pragma comment (lib, "opengl32.lib")  /* link with Microsoft OpenGL lib */
    #   pragma comment (lib, "glu32.lib")     /* link with Microsoft OpenGL Utility lib */
    #   pragma comment (lib, "glut32.lib")    /* link with Win32 GLUT lib */
    #  endif
    # endif
     
    /* To disable supression of annoying warnings about floats being promoted
       to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor
       options. */
    # ifndef GLUT_NO_WARNING_DISABLE
    #  pragma warning (disable:4244)  /* Disable bogus VC++ 4.2 conversion warnings. */
    #  pragma warning (disable:4305)  /* VC++ 5.0 version of above warning. */
    # endif
     
    /* Win32 has an annoying issue where there are multiple C run-time
       libraries (CRTs).  If the executable is linked with a different CRT
       from the GLUT DLL, the GLUT DLL will not share the same CRT static
       data seen by the executable.  In particular, atexit callbacks registered
       in the executable will not be called if GLUT calls its (different)
       exit routine).  GLUT is typically built with the
       "/MD" option (the CRT with multithreading DLL support), but the Visual
       C++ linker default is "/ML" (the single threaded CRT).
     
       One workaround to this issue is requiring users to always link with
       the same CRT as GLUT is compiled with.  That requires users supply a
       non-standard option.  GLUT 3.7 has its own built-in workaround where
       the executable's "exit" function pointer is covertly passed to GLUT.
       GLUT then calls the executable's exit function pointer to ensure that
       any "atexit" calls registered by the application are called if GLUT
       needs to exit.
     
       Note that the __glut*WithExit routines should NEVER be called directly.
       To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */
     
    /* XXX This is from Win32's <process.h> */
    # if !defined(_MSC_VER) && !defined(__cdecl)
       /* Define __cdecl for non-Microsoft compilers. */
    #  define __cdecl
    #  define GLUT_DEFINED___CDECL
    # endif
    # ifndef _CRTIMP
    #  ifdef _NTSDK
        /* Definition compatible with NT SDK */
    #   define _CRTIMP
    #  else
        /* Current definition */
    #   ifdef _DLL
    #    define _CRTIMP __declspec(dllimport)
    #   else
    #    define _CRTIMP
    #   endif
    #  endif
    #  define GLUT_DEFINED__CRTIMP
    # endif
     
    /* GLUT API entry point declarations for Win32. */
    # ifdef GLUT_BUILDING_LIB
    #  define GLUTAPI __declspec(dllexport)
    # else
    #  ifdef _DLL
    #   define GLUTAPI __declspec(dllimport)
    #  else
    #   define GLUTAPI extern
    #  endif
    # endif
     
    /* GLUT callback calling convention for Win32. */
    # define GLUTCALLBACK __cdecl
     
    #endif  /* _WIN32 */
     
    #include <GL/gl.h>
    #include <GL/glu.h>
     
    #ifdef __cplusplus
    extern "C" {
    #endif
     
    #if defined(_WIN32)
    # ifndef GLUT_BUILDING_LIB
    extern _CRTIMP void __cdecl exit(int);
    # endif
    #else
    /* non-Win32 case. */
    /* Define APIENTRY and CALLBACK to nothing if we aren't on Win32. */
    # define APIENTRY
    # define GLUT_APIENTRY_DEFINED
    # define CALLBACK
    /* Define GLUTAPI and GLUTCALLBACK as below if we aren't on Win32. */
    # define GLUTAPI extern
    # define GLUTCALLBACK
    /* Prototype exit for the non-Win32 case (see above). */
    extern void exit(int);
    #endif
     
    /**
     GLUT API revision history:
     
     GLUT_API_VERSION is updated to reflect incompatible GLUT
     API changes (interface changes, semantic changes, deletions,
     or additions).
     
     GLUT_API_VERSION=1  First public release of GLUT.  11/29/94
     
     GLUT_API_VERSION=2  Added support for OpenGL/GLX multisampling,
     extension.  Supports new input devices like tablet, dial and button
     box, and Spaceball.  Easy to query OpenGL extensions.
     
     GLUT_API_VERSION=3  glutMenuStatus added.
     
     GLUT_API_VERSION=4  glutInitDisplayString, glutWarpPointer,
     glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic
     video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
     glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
     glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
    **/
    #ifndef GLUT_API_VERSION  /* allow this to be overriden */
    #define GLUT_API_VERSION		3
    #endif
     
    /**
     GLUT implementation revision history:
     
     GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
     API revisions and implementation revisions (ie, bug fixes).
     
     GLUT_XLIB_IMPLEMENTATION=1  mjk's first public release of
     GLUT Xlib-based implementation.  11/29/94
     
     GLUT_XLIB_IMPLEMENTATION=2  mjk's second public release of
     GLUT Xlib-based implementation providing GLUT version 2 
     interfaces.
     
     GLUT_XLIB_IMPLEMENTATION=3  mjk's GLUT 2.2 images. 4/17/95
     
     GLUT_XLIB_IMPLEMENTATION=4  mjk's GLUT 2.3 images. 6/?/95
     
     GLUT_XLIB_IMPLEMENTATION=5  mjk's GLUT 3.0 images. 10/?/95
     
     GLUT_XLIB_IMPLEMENTATION=7  mjk's GLUT 3.1+ with glutWarpPoitner.  7/24/96
     
     GLUT_XLIB_IMPLEMENTATION=8  mjk's GLUT 3.1+ with glutWarpPoitner
     and video resize.  1/3/97
     
     GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines.
     
     GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release.
     
     GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling.
     
     GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support.
     
     GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface.
     
     GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>
    **/
    #ifndef GLUT_XLIB_IMPLEMENTATION  /* Allow this to be overriden. */
    #define GLUT_XLIB_IMPLEMENTATION	15
    #endif
     
    /* Display mode bit masks. */
    #define GLUT_RGB			0
    #define GLUT_RGBA			GLUT_RGB
    #define GLUT_INDEX			1
    #define GLUT_SINGLE			0
    #define GLUT_DOUBLE			2
    #define GLUT_ACCUM			4
    #define GLUT_ALPHA			8
    #define GLUT_DEPTH			16
    #define GLUT_STENCIL			32
    #if (GLUT_API_VERSION >= 2)
    #define GLUT_MULTISAMPLE		128
    #define GLUT_STEREO			256
    #endif
    #if (GLUT_API_VERSION >= 3)
    #define GLUT_LUMINANCE			512
    #endif
     
    /* Mouse buttons. */
    #define GLUT_LEFT_BUTTON		0
    #define GLUT_MIDDLE_BUTTON		1
    #define GLUT_RIGHT_BUTTON		2
     
    /* Mouse button  state. */
    #define GLUT_DOWN			0
    #define GLUT_UP				1
     
    #if (GLUT_API_VERSION >= 2)
    /* function keys */
    #define GLUT_KEY_F1			1
    #define GLUT_KEY_F2			2
    #define GLUT_KEY_F3			3
    #define GLUT_KEY_F4			4
    #define GLUT_KEY_F5			5
    #define GLUT_KEY_F6			6
    #define GLUT_KEY_F7			7
    #define GLUT_KEY_F8			8
    #define GLUT_KEY_F9			9
    #define GLUT_KEY_F10			10
    #define GLUT_KEY_F11			11
    #define GLUT_KEY_F12			12
    /* directional keys */
    #define GLUT_KEY_LEFT			100
    #define GLUT_KEY_UP			101
    #define GLUT_KEY_RIGHT			102
    #define GLUT_KEY_DOWN			103
    #define GLUT_KEY_PAGE_UP		104
    #define GLUT_KEY_PAGE_DOWN		105
    #define GLUT_KEY_HOME			106
    #define GLUT_KEY_END			107
    #define GLUT_KEY_INSERT			108
    #endif
     
    /* Entry/exit  state. */
    #define GLUT_LEFT			0
    #define GLUT_ENTERED			1
     
    /* Menu usage  state. */
    #define GLUT_MENU_NOT_IN_USE		0
    #define GLUT_MENU_IN_USE		1
     
    /* Visibility  state. */
    #define GLUT_NOT_VISIBLE		0
    #define GLUT_VISIBLE			1
     
    /* Window status  state. */
    #define GLUT_HIDDEN			0
    #define GLUT_FULLY_RETAINED		1
    #define GLUT_PARTIALLY_RETAINED		2
    #define GLUT_FULLY_COVERED		3
     
    /* Color index component selection values. */
    #define GLUT_RED			0
    #define GLUT_GREEN			1
    #define GLUT_BLUE			2
     
    #if defined(_WIN32)
    /* Stroke font constants (use these in GLUT program). */
    #define GLUT_STROKE_ROMAN		((void*)0)
    #define GLUT_STROKE_MONO_ROMAN		((void*)1)
     
    /* Bitmap font constants (use these in GLUT program). */
    #define GLUT_BITMAP_9_BY_15		((void*)2)
    #define GLUT_BITMAP_8_BY_13		((void*)3)
    #define GLUT_BITMAP_TIMES_ROMAN_10	((void*)4)
    #define GLUT_BITMAP_TIMES_ROMAN_24	((void*)5)
    #if (GLUT_API_VERSION >= 3)
    #define GLUT_BITMAP_HELVETICA_10	((void*)6)
    #define GLUT_BITMAP_HELVETICA_12	((void*)7)
    #define GLUT_BITMAP_HELVETICA_18	((void*)8)
    #endif
    #else
    /* Stroke font opaque addresses (use constants instead in source code). */
    GLUTAPI void *glutStrokeRoman;
    GLUTAPI void *glutStrokeMonoRoman;
     
    /* Stroke font constants (use these in GLUT program). */
    #define GLUT_STROKE_ROMAN		(&glutStrokeRoman)
    #define GLUT_STROKE_MONO_ROMAN		(&glutStrokeMonoRoman)
     
    /* Bitmap font opaque addresses (use constants instead in source code). */
    GLUTAPI void *glutBitmap9By15;
    GLUTAPI void *glutBitmap8By13;
    GLUTAPI void *glutBitmapTimesRoman10;
    GLUTAPI void *glutBitmapTimesRoman24;
    GLUTAPI void *glutBitmapHelvetica10;
    GLUTAPI void *glutBitmapHelvetica12;
    GLUTAPI void *glutBitmapHelvetica18;
     
    /* Bitmap font constants (use these in GLUT program). */
    #define GLUT_BITMAP_9_BY_15		(&glutBitmap9By15)
    #define GLUT_BITMAP_8_BY_13		(&glutBitmap8By13)
    #define GLUT_BITMAP_TIMES_ROMAN_10	(&glutBitmapTimesRoman10)
    #define GLUT_BITMAP_TIMES_ROMAN_24	(&glutBitmapTimesRoman24)
    #if (GLUT_API_VERSION >= 3)
    #define GLUT_BITMAP_HELVETICA_10	(&glutBitmapHelvetica10)
    #define GLUT_BITMAP_HELVETICA_12	(&glutBitmapHelvetica12)
    #define GLUT_BITMAP_HELVETICA_18	(&glutBitmapHelvetica18)
    #endif
    #endif
     
    /* glutGet parameters. */
    #define GLUT_WINDOW_X			((GLenum) 100)
    #define GLUT_WINDOW_Y			((GLenum) 101)
    #define GLUT_WINDOW_WIDTH		((GLenum) 102)
    #define GLUT_WINDOW_HEIGHT		((GLenum) 103)
    #define GLUT_WINDOW_BUFFER_SIZE		((GLenum) 104)
    #define GLUT_WINDOW_STENCIL_SIZE	((GLenum) 105)
    #define GLUT_WINDOW_DEPTH_SIZE		((GLenum) 106)
    #define GLUT_WINDOW_RED_SIZE		((GLenum) 107)
    #define GLUT_WINDOW_GREEN_SIZE		((GLenum) 108)
    #define GLUT_WINDOW_BLUE_SIZE		((GLenum) 109)
    #define GLUT_WINDOW_ALPHA_SIZE		((GLenum) 110)
    #define GLUT_WINDOW_ACCUM_RED_SIZE	((GLenum) 111)
    #define GLUT_WINDOW_ACCUM_GREEN_SIZE	((GLenum) 112)
    #define GLUT_WINDOW_ACCUM_BLUE_SIZE	((GLenum) 113)
    #define GLUT_WINDOW_ACCUM_ALPHA_SIZE	((GLenum) 114)
    #define GLUT_WINDOW_DOUBLEBUFFER	((GLenum) 115)
    #define GLUT_WINDOW_RGBA		((GLenum) 116)
    #define GLUT_WINDOW_PARENT		((GLenum) 117)
    #define GLUT_WINDOW_NUM_CHILDREN	((GLenum) 118)
    #define GLUT_WINDOW_COLORMAP_SIZE	((GLenum) 119)
    #if (GLUT_API_VERSION >= 2)
    #define GLUT_WINDOW_NUM_SAMPLES		((GLenum) 120)
    #define GLUT_WINDOW_STEREO		((GLenum) 121)
    #endif
    #if (GLUT_API_VERSION >= 3)
    #define GLUT_WINDOW_CURSOR		((GLenum) 122)
    #endif
    #define GLUT_SCREEN_WIDTH		((GLenum) 200)
    #define GLUT_SCREEN_HEIGHT		((GLenum) 201)
    #define GLUT_SCREEN_WIDTH_MM		((GLenum) 202)
    #define GLUT_SCREEN_HEIGHT_MM		((GLenum) 203)
    #define GLUT_MENU_NUM_ITEMS		((GLenum) 300)
    #define GLUT_DISPLAY_MODE_POSSIBLE	((GLenum) 400)
    #define GLUT_INIT_WINDOW_X		((GLenum) 500)
    #define GLUT_INIT_WINDOW_Y		((GLenum) 501)
    #define GLUT_INIT_WINDOW_WIDTH		((GLenum) 502)
    #define GLUT_INIT_WINDOW_HEIGHT		((GLenum) 503)
    #define GLUT_INIT_DISPLAY_MODE		((GLenum) 504)
    #if (GLUT_API_VERSION >= 2)
    #define GLUT_ELAPSED_TIME		((GLenum) 700)
    #endif
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
    #define GLUT_WINDOW_FORMAT_ID		((GLenum) 123)
    #endif
     
    #if (GLUT_API_VERSION >= 2)
    /* glutDeviceGet parameters. */
    #define GLUT_HAS_KEYBOARD		((GLenum) 600)
    #define GLUT_HAS_MOUSE			((GLenum) 601)
    #define GLUT_HAS_SPACEBALL		((GLenum) 602)
    #define GLUT_HAS_DIAL_AND_BUTTON_BOX	((GLenum) 603)
    #define GLUT_HAS_TABLET			((GLenum) 604)
    #define GLUT_NUM_MOUSE_BUTTONS		((GLenum) 605)
    #define GLUT_NUM_SPACEBALL_BUTTONS	((GLenum) 606)
    #define GLUT_NUM_BUTTON_BOX_BUTTONS	((GLenum) 607)
    #define GLUT_NUM_DIALS			((GLenum) 608)
    #define GLUT_NUM_TABLET_BUTTONS		((GLenum) 609)
    #endif
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
    #define GLUT_DEVICE_IGNORE_KEY_REPEAT   ((GLenum) 610)
    #define GLUT_DEVICE_KEY_REPEAT          ((GLenum) 611)
    #define GLUT_HAS_JOYSTICK		((GLenum) 612)
    #define GLUT_OWNS_JOYSTICK		((GLenum) 613)
    #define GLUT_JOYSTICK_BUTTONS		((GLenum) 614)
    #define GLUT_JOYSTICK_AXES		((GLenum) 615)
    #define GLUT_JOYSTICK_POLL_RATE		((GLenum) 616)
    #endif
     
    #if (GLUT_API_VERSION >= 3)
    /* glutLayerGet parameters. */
    #define GLUT_OVERLAY_POSSIBLE           ((GLenum) 800)
    #define GLUT_LAYER_IN_USE		((GLenum) 801)
    #define GLUT_HAS_OVERLAY		((GLenum) 802)
    #define GLUT_TRANSPARENT_INDEX		((GLenum) 803)
    #define GLUT_NORMAL_DAMAGED		((GLenum) 804)
    #define GLUT_OVERLAY_DAMAGED		((GLenum) 805)
     
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    /* glutVideoResizeGet parameters. */
    #define GLUT_VIDEO_RESIZE_POSSIBLE	((GLenum) 900)
    #define GLUT_VIDEO_RESIZE_IN_USE	((GLenum) 901)
    #define GLUT_VIDEO_RESIZE_X_DELTA	((GLenum) 902)
    #define GLUT_VIDEO_RESIZE_Y_DELTA	((GLenum) 903)
    #define GLUT_VIDEO_RESIZE_WIDTH_DELTA	((GLenum) 904)
    #define GLUT_VIDEO_RESIZE_HEIGHT_DELTA	((GLenum) 905)
    #define GLUT_VIDEO_RESIZE_X		((GLenum) 906)
    #define GLUT_VIDEO_RESIZE_Y		((GLenum) 907)
    #define GLUT_VIDEO_RESIZE_WIDTH		((GLenum) 908)
    #define GLUT_VIDEO_RESIZE_HEIGHT	((GLenum) 909)
    #endif
     
    /* glutUseLayer parameters. */
    #define GLUT_NORMAL			((GLenum) 0)
    #define GLUT_OVERLAY			((GLenum) 1)
     
    /* glutGetModifiers return mask. */
    #define GLUT_ACTIVE_SHIFT               1
    #define GLUT_ACTIVE_CTRL                2
    #define GLUT_ACTIVE_ALT                 4
     
    /* glutSetCursor parameters. */
    /* Basic arrows. */
    #define GLUT_CURSOR_RIGHT_ARROW		0
    #define GLUT_CURSOR_LEFT_ARROW		1
    /* Symbolic cursor shapes. */
    #define GLUT_CURSOR_INFO		2
    #define GLUT_CURSOR_DESTROY		3
    #define GLUT_CURSOR_HELP		4
    #define GLUT_CURSOR_CYCLE		5
    #define GLUT_CURSOR_SPRAY		6
    #define GLUT_CURSOR_WAIT		7
    #define GLUT_CURSOR_TEXT		8
    #define GLUT_CURSOR_CROSSHAIR		9
    /* Directional cursors. */
    #define GLUT_CURSOR_UP_DOWN		10
    #define GLUT_CURSOR_LEFT_RIGHT		11
    /* Sizing cursors. */
    #define GLUT_CURSOR_TOP_SIDE		12
    #define GLUT_CURSOR_BOTTOM_SIDE		13
    #define GLUT_CURSOR_LEFT_SIDE		14
    #define GLUT_CURSOR_RIGHT_SIDE		15
    #define GLUT_CURSOR_TOP_LEFT_CORNER	16
    #define GLUT_CURSOR_TOP_RIGHT_CORNER	17
    #define GLUT_CURSOR_BOTTOM_RIGHT_CORNER	18
    #define GLUT_CURSOR_BOTTOM_LEFT_CORNER	19
    /* Inherit from parent window. */
    #define GLUT_CURSOR_INHERIT		100
    /* Blank cursor. */
    #define GLUT_CURSOR_NONE		101
    /* Fullscreen crosshair (if available). */
    #define GLUT_CURSOR_FULL_CROSSHAIR	102
    #endif
     
    /* GLUT initialization sub-API. */
    GLUTAPI void APIENTRY glutInit(int *argcp, char **argv);
    #if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
    GLUTAPI void APIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
    #ifndef GLUT_BUILDING_LIB
    static void APIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); }
    #define glutInit glutInit_ATEXIT_HACK
    #endif
    #endif
    GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode);
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    GLUTAPI void APIENTRY glutInitDisplayString(const char *string);
    #endif
    GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y);
    GLUTAPI void APIENTRY glutInitWindowSize(int width, int height);
    GLUTAPI void APIENTRY glutMainLoop(void);
     
    /* GLUT window sub-API. */
    GLUTAPI int APIENTRY glutCreateWindow(const char *title);
    #if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
    GLUTAPI int APIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int));
    #ifndef GLUT_BUILDING_LIB
    static int APIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); }
    #define glutCreateWindow glutCreateWindow_ATEXIT_HACK
    #endif
    #endif
    GLUTAPI int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
    GLUTAPI void APIENTRY glutDestroyWindow(int win);
    GLUTAPI void APIENTRY glutPostRedisplay(void);
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
    GLUTAPI void APIENTRY glutPostWindowRedisplay(int win);
    #endif
    GLUTAPI void APIENTRY glutSwapBuffers(void);
    GLUTAPI int APIENTRY glutGetWindow(void);
    GLUTAPI void APIENTRY glutSetWindow(int win);
    GLUTAPI void APIENTRY glutSetWindowTitle(const char *title);
    GLUTAPI void APIENTRY glutSetIconTitle(const char *title);
    GLUTAPI void APIENTRY glutPositionWindow(int x, int y);
    GLUTAPI void APIENTRY glutReshapeWindow(int width, int height);
    GLUTAPI void APIENTRY glutPopWindow(void);
    GLUTAPI void APIENTRY glutPushWindow(void);
    GLUTAPI void APIENTRY glutIconifyWindow(void);
    GLUTAPI void APIENTRY glutShowWindow(void);
    GLUTAPI void APIENTRY glutHideWindow(void);
    #if (GLUT_API_VERSION >= 3)
    GLUTAPI void APIENTRY glutFullScreen(void);
    GLUTAPI void APIENTRY glutSetCursor(int cursor);
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    GLUTAPI void APIENTRY glutWarpPointer(int x, int y);
    #endif
     
    /* GLUT overlay sub-API. */
    GLUTAPI void APIENTRY glutEstablishOverlay(void);
    GLUTAPI void APIENTRY glutRemoveOverlay(void);
    GLUTAPI void APIENTRY glutUseLayer(GLenum layer);
    GLUTAPI void APIENTRY glutPostOverlayRedisplay(void);
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
    GLUTAPI void APIENTRY glutPostWindowOverlayRedisplay(int win);
    #endif
    GLUTAPI void APIENTRY glutShowOverlay(void);
    GLUTAPI void APIENTRY glutHideOverlay(void);
    #endif
     
    /* GLUT menu sub-API. */
    GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int));
    #if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
    GLUTAPI int APIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int));
    #ifndef GLUT_BUILDING_LIB
    static int APIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); }
    #define glutCreateMenu glutCreateMenu_ATEXIT_HACK
    #endif
    #endif
    GLUTAPI void APIENTRY glutDestroyMenu(int menu);
    GLUTAPI int APIENTRY glutGetMenu(void);
    GLUTAPI void APIENTRY glutSetMenu(int menu);
    GLUTAPI void APIENTRY glutAddMenuEntry(const char *label, int value);
    GLUTAPI void APIENTRY glutAddSubMenu(const char *label, int submenu);
    GLUTAPI void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
    GLUTAPI void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
    GLUTAPI void APIENTRY glutRemoveMenuItem(int item);
    GLUTAPI void APIENTRY glutAttachMenu(int button);
    GLUTAPI void APIENTRY glutDetachMenu(int button);
     
    /* GLUT window callback sub-API. */
    GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void));
    GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height));
    GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
    GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));
    GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
    GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
    GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state));
    GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state));
    GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void));
    GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value);
    GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state));
    #if (GLUT_API_VERSION >= 2)
    GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y));
    GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z));
    GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z));
    GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state));
    GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state));
    GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value));
    GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
    GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));
    #if (GLUT_API_VERSION >= 3)
    GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y));
    GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void));
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state));
    #endif
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
    GLUTAPI void APIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
    GLUTAPI void APIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y));
    GLUTAPI void APIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
    #endif
    #endif
    #endif
     
    /* GLUT color index sub-API. */
    GLUTAPI void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
    GLUTAPI GLfloat APIENTRY glutGetColor(int ndx, int component);
    GLUTAPI void APIENTRY glutCopyColormap(int win);
     
    /* GLUT state retrieval sub-API. */
    GLUTAPI int APIENTRY glutGet(GLenum type);
    GLUTAPI int APIENTRY glutDeviceGet(GLenum type);
    #if (GLUT_API_VERSION >= 2)
    /* GLUT extension support sub-API */
    GLUTAPI int APIENTRY glutExtensionSupported(const char *name);
    #endif
    #if (GLUT_API_VERSION >= 3)
    GLUTAPI int APIENTRY glutGetModifiers(void);
    GLUTAPI int APIENTRY glutLayerGet(GLenum type);
    #endif
     
    /* GLUT font sub-API */
    GLUTAPI void APIENTRY glutBitmapCharacter(void *font, int character);
    GLUTAPI int APIENTRY glutBitmapWidth(void *font, int character);
    GLUTAPI void APIENTRY glutStrokeCharacter(void *font, int character);
    GLUTAPI int APIENTRY glutStrokeWidth(void *font, int character);
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    GLUTAPI int APIENTRY glutBitmapLength(void *font, const unsigned char *string);
    GLUTAPI int APIENTRY glutStrokeLength(void *font, const unsigned char *string);
    #endif
     
    /* GLUT pre-built models sub-API */
    GLUTAPI void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
    GLUTAPI void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
    GLUTAPI void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
    GLUTAPI void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
    GLUTAPI void APIENTRY glutWireCube(GLdouble size);
    GLUTAPI void APIENTRY glutSolidCube(GLdouble size);
    GLUTAPI void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
    GLUTAPI void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
    GLUTAPI void APIENTRY glutWireDodecahedron(void);
    GLUTAPI void APIENTRY glutSolidDodecahedron(void);
    GLUTAPI void APIENTRY glutWireTeapot(GLdouble size);
    GLUTAPI void APIENTRY glutSolidTeapot(GLdouble size);
    GLUTAPI void APIENTRY glutWireOctahedron(void);
    GLUTAPI void APIENTRY glutSolidOctahedron(void);
    GLUTAPI void APIENTRY glutWireTetrahedron(void);
    GLUTAPI void APIENTRY glutSolidTetrahedron(void);
    GLUTAPI void APIENTRY glutWireIcosahedron(void);
    GLUTAPI void APIENTRY glutSolidIcosahedron(void);
     
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    /* GLUT video resize sub-API. */
    GLUTAPI int APIENTRY glutVideoResizeGet(GLenum param);
    GLUTAPI void APIENTRY glutSetupVideoResizing(void);
    GLUTAPI void APIENTRY glutStopVideoResizing(void);
    GLUTAPI void APIENTRY glutVideoResize(int x, int y, int width, int height);
    GLUTAPI void APIENTRY glutVideoPan(int x, int y, int width, int height);
     
    /* GLUT debugging sub-API. */
    GLUTAPI void APIENTRY glutReportErrors(void);
    #endif
     
    #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
    /* GLUT device control sub-API. */
    /* glutSetKeyRepeat modes. */
    #define GLUT_KEY_REPEAT_OFF		0
    #define GLUT_KEY_REPEAT_ON		1
    #define GLUT_KEY_REPEAT_DEFAULT		2
     
    /* Joystick button masks. */
    #define GLUT_JOYSTICK_BUTTON_A		1
    #define GLUT_JOYSTICK_BUTTON_B		2
    #define GLUT_JOYSTICK_BUTTON_C		4
    #define GLUT_JOYSTICK_BUTTON_D		8
     
    GLUTAPI void APIENTRY glutIgnoreKeyRepeat(int ignore);
    GLUTAPI void APIENTRY glutSetKeyRepeat(int repeatMode);
    GLUTAPI void APIENTRY glutForceJoystickFunc(void);
     
    /* GLUT game mode sub-API. */
    /* glutGameModeGet. */
    #define GLUT_GAME_MODE_ACTIVE           ((GLenum) 0)
    #define GLUT_GAME_MODE_POSSIBLE         ((GLenum) 1)
    #define GLUT_GAME_MODE_WIDTH            ((GLenum) 2)
    #define GLUT_GAME_MODE_HEIGHT           ((GLenum) 3)
    #define GLUT_GAME_MODE_PIXEL_DEPTH      ((GLenum) 4)
    #define GLUT_GAME_MODE_REFRESH_RATE     ((GLenum) 5)
    #define GLUT_GAME_MODE_DISPLAY_CHANGED  ((GLenum) 6)
     
    GLUTAPI void APIENTRY glutGameModeString(const char *string);
    GLUTAPI int APIENTRY glutEnterGameMode(void);
    GLUTAPI void APIENTRY glutLeaveGameMode(void);
    GLUTAPI int APIENTRY glutGameModeGet(GLenum mode);
    #endif
     
    #ifdef __cplusplus
    }
     
    #endif
     
    #ifdef GLUT_APIENTRY_DEFINED
    # undef GLUT_APIENTRY_DEFINED
    # undef APIENTRY
    #endif
     
    #ifdef GLUT_WINGDIAPI_DEFINED
    # undef GLUT_WINGDIAPI_DEFINED
    # undef WINGDIAPI
    #endif
     
    #ifdef GLUT_DEFINED___CDECL
    # undef GLUT_DEFINED___CDECL
    # undef __cdecl
    #endif
     
    #ifdef GLUT_DEFINED__CRTIMP
    # undef GLUT_DEFINED__CRTIMP
    # undef _CRTIMP
    #endif
     
    #endif                  /* __glut_h__ */
    je ne comprend pas pourquoi il me mettent des erreur à l'interieur même de cette bibliotheque...

  5. #5
    Membre régulier Avatar de Midou45
    Homme Profil pro
    Ingénieur
    Inscrit en
    Novembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 156
    Points : 110
    Points
    110
    Par défaut
    Est ce que tu as installer la bibliothèque d'openGL sur le Code::Blocks ou bien tu as utiliser celle par défaut ?
    Je pense que tu devrais le faire ( les .h et .lib et les .dll )
    " La nature nous a donné deux oreilles et seulement une langue afin de pouvoir écouter d'avantage et parler moins." Zénon d'Elée

  6. #6
    Membre régulier Avatar de Midou45
    Homme Profil pro
    Ingénieur
    Inscrit en
    Novembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 156
    Points : 110
    Points
    110
    Par défaut
    En tout les cas moi je l'ai pas essayer avant l'ajout de la bibliothèque, mais maintenant après que je l'ai ajouter mes anciens projets faite sous VC6 s'exécutent sans erreurs
    " La nature nous a donné deux oreilles et seulement une langue afin de pouvoir écouter d'avantage et parler moins." Zénon d'Elée

  7. #7
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2011
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    #include <GL/glut.h> echange le pour #include "GL/glut.h" ? je suis assez nouveau en openGL mais p-e serais-ce la solution?

  8. #8
    Membre régulier Avatar de Midou45
    Homme Profil pro
    Ingénieur
    Inscrit en
    Novembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 156
    Points : 110
    Points
    110
    Par défaut
    Merci, mais sa fais un temps que j'ai plus travaillé avec, je crois l'avoir essayé mais sa na pas marché !! sa relation avec l'EDI
    " La nature nous a donné deux oreilles et seulement une langue afin de pouvoir écouter d'avantage et parler moins." Zénon d'Elée

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 215
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par koliter Voir le message
    #include <GL/glut.h> echange le pour #include "GL/glut.h" ? je suis assez nouveau en openGL mais p-e serais-ce la solution?
    comme il l'a fait c'est correct, tu dois allé dans global compiler settings > linker settings > link libraries > et la ajouter glut32.lib

    quelque chose comme ça:






    l'autre truc c'est si tu débute en OGL(je présume) et tu commence a faire des copier coller ou il peut exister des dépendance autre que les génériques tu vas pas avancer vite.

Discussions similaires

  1. OpenGL avec interface graphique ?
    Par nono212 dans le forum Moteurs 3D
    Réponses: 4
    Dernier message: 07/02/2008, 18h53
  2. Réponses: 2
    Dernier message: 29/03/2004, 18h29
  3. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 18h55
  4. [Kylix] Interface graphique pour lognes de commande linux
    Par lecharcutierdelinux dans le forum EDI
    Réponses: 6
    Dernier message: 29/08/2003, 10h20
  5. plugin interface graphique
    Par jocelyn dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 13/08/2003, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo