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.


Sujets - Basta

Pages: [1]
1
Général / [CMake] FindSFML
« le: Février 27, 2013, 06:33:47 pm »
Bonjour, je débute dans l'utilisation de CMake et je rencontre des problèmes en essayant d'importer SFML 2 avec le FindSFML.cmake trouvé sur github, SFML ne semble pas être trouvée, voici l'erreur :

CMake Error at cmake_modules/FindSFML.cmake:199 (message):
  Could NOT find SFML (missing: SFML_SYSTEM_LIBRARY SFML_WINDOW_LIBRARY
  SFML_GRAPHICS_LIBRARY SFML_AUDIO_LIBRARY)
Call Stack (most recent call first):
  CMakeLists.txt:8 (FIND_PACKAGE)
 

Voici le CMakeLists.txt :

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

PROJECT(OpenGLTest)

SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH})

FIND_PACKAGE(SFML 2 COMPONENTS system window graphics audio REQUIRED)
FIND_PACKAGE(OpenGL REQUIRED)

SET(
        ALL_LIBS
        ${SFML_LIBRARIES}
        ${OPENGL_LIBRARIES}
)
       
INCLUDE_DIRECTORIES(
        include/
        ${SFML_INCLUDE_DIR}
        ${OPENGL_INCLUDE_DIR}
)

FILE(
        GLOB_RECURSE
        ${PROJECT_NAME}_SOURCES
        src/*.cpp
)
FILE(
        GLOB_RECURSE
        ${PROJECT_NAME}_HEADERS
        include/*.h
)
       
ADD_EXECUTABLE(
        ${PROJECT_NAME}
        ${${PROJECT_NAME}_SOURCES}
        ${${PROJECT_NAME}_HEADERS}
)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ALL_LIBS})
 

En sachant que j'ai installé SFML 2 à l'emplacement suivant : C:\Prog\SFML-2.0

2
Graphique / [2.0] - Une image pixel par pixel
« le: Décembre 10, 2012, 10:23:38 pm »
Bonjour, j'ai déjà cherché des informations sur le sujet et testé un code mais quelque chose ne vas pas, est-ce que j'ai mal compris le principe ou est-ce que j'ai fait un faute d'étourderie, je ne sais pas et après avoir tenté pas mal de choses je voudrais avoir un avis extérieur  :).
(Le code a pour but de dessiner la fractale de Mandelbrot pixel par pixel)

Je crée mon tableau de pixels :

const sf::Uint8 *Generator::update(Seed seed)
{
    if(m_image) delete m_image;
    m_image = new sf::Uint8[seed.getSize().x*seed.getSize().y*4];

    for(int x(0) ; x!=seed.getSize().x ; ++x)
    {
        for(int y(0) ; y!=seed.getSize().y ; ++y)
        {
            seed.reset(x, y);
            unsigned int i(0);

            while(seed.getCriticalSqMod()<4
                  && i!=seed.getIteration())
            {
                seed.loop(x, y);
                ++i;
            }

            unsigned int pos(y + x*seed.getSize().y);
            if(i==seed.getIteration())
            {
                m_image[pos]    = 255;
                m_image[pos+1]  = 255;
                m_image[pos+2]  = 255;
                m_image[pos+3]  = 255;
            }
            else
            {
                m_image[pos]    = 0;
                m_image[pos+1]  = 0;
                m_image[pos+2]  = 0;
                m_image[pos+3]  = 0;
            }
        }
    }

    return m_image;
}

Et ensuite j'utilise ce tableau pour faire un Sprite :

    Seed seed;
    Generator engine;

    sf::Texture txtr;
    txtr.create(seed.getSize().x, seed.getSize().y);
    txtr.update(engine.update(seed));

    sf::Sprite sprite(txtr);

Seulement j'obtiens simplement une belle image blanche au lieu de ma fractale. Je ne pense pas que l'erreur vienne des calculs mathématiques, et je n'ai pas posté le détail, au moins je saurais si cela viens de mon utilisation de SFML.

Merci d'avance.

3
Audio / [2.0] MusicBuffer
« le: Novembre 15, 2012, 01:10:58 pm »
Question toute bête, pourquoi n'y a-t-il pas de sf::MusicBuffer pour sf::Music ?

4
Graphique / [2.0] - Différentes résolutions
« le: Novembre 13, 2012, 07:57:44 pm »
Bonjour,
Je ne sais pas comment gérer différentes résolutions pour mon application graphique. Dois-je créer une image différente pour chaque résolution ? Ou juste une image pour la plus haute résolution ?
Est-ce que les sf::View peuvent simplifier le processus ?
Par exemple zoom(), je n'ai pas bien compris si cette fonction change le rectangle pris en compte pour l'affichage ou change les proportions de l'image ?

Merci d'avance.

5
Projets SFML / [2.0] - Lecteur de musique very light
« le: Novembre 08, 2012, 01:07:56 pm »
Vous allez être déçus, c'est un lecteur très très [...] léger. Il a pour simple but de lire les fichiers qui lui sont passés comme arguments :

#include"SFML/Audio/Music.hpp"

int main(int argc, char *argv[])
{
    sf::Music music;
    if(argc<2)
        return 0;
    for( int i(1) ; i<argc ; ++i)
    {
        try
        {
            music.openFromFile(argv[i]);
            music.play();
            while(music.getStatus() == sf::Music::Playing)
            {}
        }
        catch(...)
        {}
    }
    return 0;
}
 

Sûrement que ça n'intéresse personne, je l'ai fait pour avoir une lecture instantanée des fichiers sons sur windows (en passant par le registre) car j'en avais assez de devoir charger une interface pour une simple lecture d'un son de 5 ms.

Je ne pense pas que ce code marche sur linux et/ou mac mais j'aimerais bien le savoir.
De plus est-ce que mon bloc try/catch est propre ?

6
Fenêtrage / La souris
« le: Novembre 03, 2012, 05:37:23 pm »
Encore une histoire de souris !
Je voudrais simplement savoir si il est possible d'"inhiber" les évènements liés à la souris (et pourquoi pas du clavier ou d'un joystick au passage), je peux très bien faire sans mais je me disais que cela permettrait peut-être d'éviter certains calculs. En quelque sorte faire comme si il n'y avait pas de souris branchée.

Edit : je me rend compte que mon titre est bien moche :O.

7
Suggestions de nouvelles fonctionnalités / Les évènements
« le: Octobre 27, 2012, 01:59:29 pm »
Bonjour,
Tout d'abord : pourquoi le mouse wheel delta n'est pas accessible dans sf::Mouse ?

Je suggère de plus un accès aux évènements suivants depuis une instance de fenêtre :
sf::Event::MouseEntered, sf::Event::MouseLeft, sf::Event::GainedFocus, sf::Event::LostFocus, sf::Event::Resized et  sf::Event::Closed
Ceci dans le style :
window.mouseIn(), window.isFocused(), window.isResized(), window.isClosed()

Voilà voilà mais ce n'est qu'un avis de "newbie" :D.

8
Fenêtrage / Position de la souris - 2.0
« le: Octobre 27, 2012, 01:46:10 pm »
Bonjour,
Je voulais utiliser la position de la souris pour déplacer un objet quelconque, j'ai donc effectué un test avec un sf::Text, seulement voilà les déplacements sont saccadés, comme si je n'avais pas assez de FPS.
J'ai donc effectué un petit test pour voir quelles valeurs je reçevait pour la position de ma souris :

#include "mainmenu.h"

MainMenu::MainMenu(const tk::EventManager::Data *data)
    : RootMenu(data)
{
    m_text.setString(sf::String("TEST"));
}

void MainMenu::actuateRoot()
{
    if(eventData->textEntered.hasChanged)
    {
        m_text.setString(sf::String(eventData->textEntered.value));
    }
    if(eventData->focus.value && eventData->mouseInWin.value)
    {
        std::cout << sf::Mouse::getPosition(*eventData->targetPtr).x << "\t"
                  << sf::Mouse::getPosition(*eventData->targetPtr).y << "\n";
    }
}

void MainMenu::displayRoot()
{
    eventData->targetPtr->draw(m_text);
}
 

EventManager::Data étant simplement une structure s'actualisant à chaque tour de boucle et récupérant des informations à partir de sf::Event. Voici le résultat :

531     405
x4
704     247
x8
754     98
x2
757     88
x11
etc ...

(je précise que les fonctions actuate et display sont appelées successivement à chaque tour de boucle)
Je me demande d'où viens le problème puisque j'avais bougé ma souris plutôt continuellement et sans trop de saccades.
Merci d'avance de votre aide.

Pages: [1]