Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Gwindor

Pages: [1]
1
Fenêtrage / Re : Une belle fenêtre toute blanche...
« le: Juillet 17, 2012, 11:26:22 am »
Merci pour cette réponse rapide!
Comme la dernière fois, c'est une erreur stupide... Très stupide.
Je n'ai jamais pu utiliser le double buffering jusqu'aujourd'hui, et j'ai oublié jusqu'à son existence.
Dans mon code, je dessinais toujours dans le même buffer, ignorant que celui-là était en mode "écriture"... Il suffit juste d'utiliser la commande window.display () pour échanger les buffers. Maintenant, tout fonctionne parfaitement!
Encore merci pour ton aide! :D

2
Fenêtrage / Une belle fenêtre toute blanche...
« le: Juillet 17, 2012, 10:27:37 am »
Bonjour! Je suis (encore) de retour...
J'essaie d'utiliser OpenGl dans une fenêtre SFML, mais quoi que j'essaie de dessiner, l'écran restera blanc...
Voici mon code source:

#include <GL/glew.h>
#include <SFML/Window.hpp>
#include <iostream>
#include <String>
#include "Shader.h"

using namespace std;


int main ()
{

    //Mise en place du contexte de la fenetre
    sf::ContextSettings settings;
    settings.majorVersion = 3;
    settings.minorVersion = 1;

    //Création de la fenetre
    cout << "Creation de la fenetre" << endl;
    sf::Window window(sf::VideoMode(1000, 800), "OpenGL", sf::Style::Default, settings);

     //Test de Glew
    GLenum comp;
    comp = glewInit ();
    if (comp != GLEW_OK)
    {
        cout << "L'initialistation de Glew n'a pas fonctionné: " << glewGetErrorString(comp) << endl;
        return -1;
    }
    //Dans le cas ou GLEW a été initialisé corectement: l'application peut fonctionner;
    else
    {
        cout << "Mise en route de Glew réussie" << endl;
    }

    //Préparation du loop de rendering
    bool opened = true;
    int loopId = 0;
    glClearColor (0.0f, 1.0f, 0.0f, 1.0f);

    //Loop de rendering
    while (opened)
    {
        loopId ++;
        //Gestion des évènements de la fenêtre
        sf::Event event;
        while (window.pollEvent (event))
        {
            cout << "Numero de loop: " << loopId << endl;

            if (event.type == sf::Event::Closed)
            {
                opened = false;
                cout << "Fermeture de la fenetre" << endl;
            }
        }

        glClear (GL_COLOR_BUFFER_BIT);

    }

    cout << "Fin de l'application" << endl;

}

Le code est aussi simple que possible. Initialement, il incluait des shaders, mais pour simplifier, j'ai supprimé toute fonctions de dessin.
Ma configuration: Windows 7-64bits, Code::Blocks 10.05, SFML 2.0. Et, bien que je ne pense pas que cela soit important, j'utilise la version release, liée statiquement.

En théorie, je devrais obtenir une fenêtre verte. Mais elle reste désespérement blanche... C'est indéniablement plus beau que ce que saurais jamais faire, mais ce n'est pas le but... ;D

 L'application ne bloque pas; en effet, une fois que je bouge la souris/tape une touche, j'obtiens dans une console l'id du loop (voire le code). De même, l'intégralité du loop principal est réalisé, puisque entre deux clic de souris, les id de loop ne se suivent pas (ils passent de 800 à 900, etc...). Enfin, lorsque je place la commande glClear avant le loop de l'application et après avoir définis glClearColor, rien ne change...

Il s'agirait donc d'une erreur que j'ai faite avec opengl? Il est possible que dans la version antérieure de mon code source, j'avais fais une erreur au niveau de leur utilisation (même si le compilateur n'a pas hurlé à mort...), et que dans cette version, je ne les utilise pas... Ce qui causerait cette fenêtre blanche?

Aussi, je précise bien dans mon ContextSetting que je veux obtenir une fenêtre de rendu utilisant opengl version 3.1 (c'est pour cela que j'utilise SFML 2.0) Or, en incluant les lignes de codes:

    settings = window.getSettings();
    cout << "version:" << settings.majorVersion << "." << settings.minorVersion << std::endl;
 

[...] je me rends compte que SFML utilise la version 4.1, qui est la plus haute que mon ordinateur peut supporter??? Là, je bug plus que mon ordinateur. SFML utilise donc toujours la version de Opengl la plus récente qu'elle trouve?

Enfin, dernier point que je vais souligner, lorsque j'ai compilé un codes  sous SFML 1.6 utilisant des fonctions "dépréciées" de opengl, cela tournait sans problème.

Je pense n'avoir rien oublié... sinon que je suis doué pour les bévues. >:( Je n'ai pas trouvé de cas similaire! Pour l'originalité... Quelqu'un aurait une idée de l'erreur que j'ai perpétré?  Merci pour toute réponse!

3
Je cherche... Et je recherches... Et je les rerecherches ces packages... Et je ne les trouves pas!!! :'(
Puis je lis: "tout est automatisé". En effet, tout fonctionne directement, SANS ERREUR!
Merci beaucoup pour l'aide! :P et vive Linux!

4
Merci!
Sous ma version, le "front end graphique" est Ubuntu Software Center (sauf erreur de ma part). De là, j'ai en effet trouvé une bonne dizaines de packages pour la SFML, mais je pense devoir installer "Simple and fast cross-platform multimedia library - Development Files". J'essaie de voir ce que cela donnera avec...

5
Je pense que les pacjages Linux ne contiennent pas de version debug (-d). Tu peux vérifier par toi-même dans le répertoire SFML-1.6/lib.

Tu as raison. Je viens de tenter de compiler en version Release après avoir tapé dans Project Build options/Release/Linker Settings/Other Links Options -lsfml-system. Mais le résultat n'a pas changé... J'obtiens toujours la même erreur...


Et pourquoi n'installes-tu pas SFML 1.6 via les paquets de ta distrib ?

En fait, je suis l'un de ces "noobs" de linux: cela ne fait que 1 semaine que j'ai installé Ubuntu. En quoi cela consiste?

6
Bonjour! Vous l'avez surement compris, j'essaie d'utiliser la SFML à partir de Code::blocks.
Je suis le tutoriel officiel, soit http://www.sfml-dev.org/tutorials/1.6/start-cb.php
 Actuellement, à chaque fois que j'essaie de compiler le code donné par ce tutoriel, j'obtiens l'erreur: cannot find -lsfml-system.

Récapitulatif:
-la version de SFML que j'utilise est la version 1.6|C++|Linux 64 bits (je suis en effet sur UBUNTU 12.04, en version 64 bit).
-la version de Code::blocks que j'ai installée est 10.05.
- dans compiler and debugger/ Global compiler settings/search directories/Compiler, j'ai écrit: /home/legaffeur/Libraries/SFM-1.6/include, et j'ai écrit dans search directories/Linker:  /home/legaffeur/Libraries/SFML-1.6/lib. Je suis sur de ne pas avoir fait d'erreur sur cette étape.
- dans Project Build options/Debug/Linker Settings/Other Links Options, j'ai tapé: -lsfml-system-d.

Quelle erreur ai-je pu encore perpétrer? ???

Pages: [1]
anything