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

SFML Discussion :

Sfml et example


Sujet :

SFML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut Sfml et example
    bonjour ,

    Pour savoir si open gl existe avec sfml , j'ai ouvert "example/window/windows.cpp"

    g++ -L../../../SFML-2.0/lib -L../../../SFML-2.0/lib -o bin/Debug/Fen obj/Debug/main.o ../../../SFML-dev/lib/libsfml-audio.so ../../../SFML-dev/lib/libsfml-graphics.so ../../../SFML-dev/lib/libsfml-network.so ../../../SFML-dev/lib/libsfml-system.so ../../../SFML-dev/lib/libsfml-window.so ../../../SFML-dev/lib/libsfml-audio.so ../../../SFML-dev/lib/libsfml-graphics.so ../../../SFML-dev/lib/libsfml-network.so ../../../SFML-dev/lib/libsfml-system.so ../../../SFML-dev/lib/libsfml-window.so
    /usr/bin/ld: obj/Debug/main.o: référence au symbole non défini «glClearDepth»

    //usr/lib/x86_64-linux-gnu/mesa/libGL.so.1: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status
    Process terminated with status 1 (0 minute(s), 0 second(s))
    0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
    ||=== Générer: Debug in Fen (compiler: GNU GCC Compiler) ===|
    ||=== Build échoué: 0 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
    Build échoué , comment améliorer ce qui manque ?

  2. #2
    Membre Expert Avatar de Cirrus Minor
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2014
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2014
    Messages : 953
    Par défaut
    Tu as déjà dessiné des trucs avec SFML, non ?
    SFML se base sur OpenGL, donc il "existe" avec SFML.

    Pour ton problème:
    - il y a quoi de particulier dans windows.cpp ? Des appels directs à OpenGL ?
    - pourquoi est-ce que tu linkes avec la version 2.0, tu n'avais pas compilé la 2.1 ?
    - ton problème est un problème de link, tu dois probablement linker la bibliothèque OpenGL à ton projet.

  3. #3
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    window.cpp :

    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
    ////////////////////////////////////////////////////////////
    // Headers
    ////////////////////////////////////////////////////////////
     
    #include <SFML/Window.hpp>
    #include <SFML/OpenGL.hpp>
     
     
    ////////////////////////////////////////////////////////////
    /// Entry point of application
    ///
    /// \return Application exit code
    ///
    ////////////////////////////////////////////////////////////
    int main()
    {
        // Request a 32-bits depth buffer when creating the window
        sf::ContextSettings contextSettings;
        contextSettings.depthBits = 32;
     
        // Create the main window
        sf::Window window(sf::VideoMode(640, 480), "SFML window with OpenGL", sf::Style::Default, contextSettings);
     
        // Make it the active window for OpenGL calls
        window.setActive();
     
        // Set the color and depth clear values
        glClearDepth(1.f);
        glClearColor(0.f, 0.f, 0.f, 1.f);
     
        // Enable Z-buffer read and write
        glEnable(GL_DEPTH_TEST);
        glDepthMask(GL_TRUE);
     
        // Disable lighting and texturing
        glDisable(GL_LIGHTING);
        glDisable(GL_TEXTURE_2D);
     
        // Configure the viewport (the same size as the window)
        glViewport(0, 0, window.getSize().x, window.getSize().y);
     
        // Setup a perspective projection
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        GLfloat ratio = static_cast<float>(window.getSize().x) / window.getSize().y;
        glFrustum(-ratio, ratio, -1.f, 1.f, 1.f, 500.f);
     
        // Define a 3D cube (6 faces made of 2 triangles composed by 3 vertices)
        GLfloat cube[] =
        {
            // positions    // colors (r, g, b, a)
            -50, -50, -50,  0, 0, 1, 1,
            -50,  50, -50,  0, 0, 1, 1,
            -50, -50,  50,  0, 0, 1, 1,
            -50, -50,  50,  0, 0, 1, 1,
            -50,  50, -50,  0, 0, 1, 1,
            -50,  50,  50,  0, 0, 1, 1,
     
             50, -50, -50,  0, 1, 0, 1,
             50,  50, -50,  0, 1, 0, 1,
             50, -50,  50,  0, 1, 0, 1,
             50, -50,  50,  0, 1, 0, 1,
             50,  50, -50,  0, 1, 0, 1,
             50,  50,  50,  0, 1, 0, 1,
     
            -50, -50, -50,  1, 0, 0, 1,
             50, -50, -50,  1, 0, 0, 1,
            -50, -50,  50,  1, 0, 0, 1,
            -50, -50,  50,  1, 0, 0, 1,
             50, -50, -50,  1, 0, 0, 1,
             50, -50,  50,  1, 0, 0, 1,
     
            -50,  50, -50,  0, 1, 1, 1,
             50,  50, -50,  0, 1, 1, 1,
            -50,  50,  50,  0, 1, 1, 1,
            -50,  50,  50,  0, 1, 1, 1,
             50,  50, -50,  0, 1, 1, 1,
             50,  50,  50,  0, 1, 1, 1,
     
            -50, -50, -50,  1, 0, 1, 1,
             50, -50, -50,  1, 0, 1, 1,
            -50,  50, -50,  1, 0, 1, 1,
            -50,  50, -50,  1, 0, 1, 1,
             50, -50, -50,  1, 0, 1, 1,
             50,  50, -50,  1, 0, 1, 1,
     
            -50, -50,  50,  1, 1, 0, 1,
             50, -50,  50,  1, 1, 0, 1,
            -50,  50,  50,  1, 1, 0, 1,
            -50,  50,  50,  1, 1, 0, 1,
             50, -50,  50,  1, 1, 0, 1,
             50,  50,  50,  1, 1, 0, 1,
        };
     
        // Enable position and color vertex components
        glEnableClientState(GL_VERTEX_ARRAY);
        glEnableClientState(GL_COLOR_ARRAY);
        glVertexPointer(3, GL_FLOAT, 7 * sizeof(GLfloat), cube);
        glColorPointer(4, GL_FLOAT, 7 * sizeof(GLfloat), cube + 3);
     
        // Disable normal and texture coordinates vertex components
        glDisableClientState(GL_NORMAL_ARRAY);
        glDisableClientState(GL_TEXTURE_COORD_ARRAY);
     
        // Create a clock for measuring the time elapsed
        sf::Clock clock;
     
        // Start the game loop
        while (window.isOpen())
        {
            // Process events
            sf::Event event;
            while (window.pollEvent(event))
            {
                // Close window: exit
                if (event.type == sf::Event::Closed)
                    window.close();
     
                // Escape key: exit
                if ((event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Escape))
                    window.close();
     
                // Resize event: adjust the viewport
                if (event.type == sf::Event::Resized)
                    glViewport(0, 0, event.size.width, event.size.height);
            }
     
            // Clear the color and depth buffers
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     
            // Apply some transformations to rotate the cube
            glMatrixMode(GL_MODELVIEW);
            glLoadIdentity();
            glTranslatef(0.f, 0.f, -200.f);
            glRotatef(clock.getElapsedTime().asSeconds() * 50, 1.f, 0.f, 0.f);
            glRotatef(clock.getElapsedTime().asSeconds() * 30, 0.f, 1.f, 0.f);
            glRotatef(clock.getElapsedTime().asSeconds() * 90, 0.f, 0.f, 1.f);
     
            // Draw the cube
            glDrawArrays(GL_TRIANGLES, 0, 36);
     
            // Finally, display the rendered frame on screen
            window.display();
        }
     
        return EXIT_SUCCESS;
    }
    J'ai dessiné des formes , avant de voir les possibilités de la doc example :

    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
    #include <SFML/Graphics.hpp>
    #include <string>
    #include <iostream>
    #include <cstdlib>
    #include "shape.h"
     
    sf::RenderWindow window;
    sf::RectangleShape rect;
    sf::VertexArray line_1;
    sf::VertexArray line_2;
    sf::CircleShape circle;
     
    int main()
    {
        // Création de la fenêtre
        window.create(sf::VideoMode(800,600),"Tuto SFML");
        // Modifier la position
        window.setPosition(sf::Vector2i(190,0));
        window.setFramerateLimit(60);

  4. #4
    Membre Expert Avatar de Cirrus Minor
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2014
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2014
    Messages : 953
    Par défaut
    Ah ben alors c'est bien ça, tu dois lier ton projet avec OpenGL.

    Tu veux faire quoi, exactement ? De la 3D ?

  5. #5
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    Dans un premier temps je veux voir les possibilités de la doc
    example de sfml :

    2d/3d , je ne sais pas en temps de développement qu'elle est la
    différence

    Voir mon blog ici , qui va traiter de la météo .

    Je veux réaliser des simulations en rapport avec la météo :

    - un décor
    - déplacer des nuages
    - tomber des gouttes d'eau
    - etc ..

    --------------------------------------------------

    Dans ma config , en commençant par un projet OpenGL , il y a une source exploitable .

    Je vais rester avec SFML et poursuivre en 2d

    [Résolu]

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Si vous avez trop de soucis de mis en place d'un projet SFML (ou autre), vous pouvez toujours récupérer un template de projet : http://jeux.developpez.com/telecharg.../709/Templates
    Ce sont des archives qu'il suffit de décompresser pour que cela fonctionne.

    Pour OpenGL, je ne serai trop vous conseiller les ressources récemment mis à disposition en français : http://opengl.developpez.com/
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Web Service] example avec base Oracle 10g
    Par osmoze dans le forum Services Web
    Réponses: 3
    Dernier message: 19/04/2006, 19h20
  2. [Debutant] - Ou trouver un example de collision ?
    Par Happy dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 15/12/2005, 03h36
  3. Examples d'algorithmes
    Par Sid ali dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 11/11/2005, 21h52
  4. [COMMONS-DISCOVERY] example
    Par hackyros dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 23/09/2004, 15h14
  5. Example d'applications XMLGRAM Chart
    Par danuz dans le forum XMLRAD
    Réponses: 5
    Dernier message: 29/07/2003, 18h00

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