Bonjour,
J'ouvre ce sujet pour savoir 2 choses a propos du module graphique de la SFML (2.0).
Déjà: Existe t-il un moyen de dessiner directement des pixels sur l'écran (sans passer par sf::Image → sf::Texture → draw()).
De façon relativement simple si possible, si il faut utiliser directement OpenGL par exemple je ne saurais pas comment faire.
Je pose cette question car je me suis crée un moteur de particules, il tourne très bien, mais a un défaut majeur: La zone de rendu.
Vu qu'il dépose les particules comme pixels sur une sf::Image qu'il convertit et affiche ensuite, il faut que la zone de rendu soit assez petite, exemple, une zone de rendu de 800*600 ça passe plutôt bien, même avec 100000 particules, en revanche une zone de rendu de 1920*1080 ça fait ramer le jeu même avec 0 particules, parce que le moteur de particules doit s'amuser à effacer l'image (ou supprimer une puis la recréer) d'une grande taille et ensuite y poser les particules, la convertir en sf::Texture et enfin l'afficher.
Bref, chute de perfs assurée, si il existe une fonction pour dessiner directement sur la fenêtre je suis preneur.
Ensuite, est t-il possible de fusionner SFML et SDL, les 2 bibliothèques utilisant OpenGL ça serait intéressant.
J'apprends en ce moment a utiliser la SDL en plus de la SFML, et je constate 2 choses:
- La SDL est plus difficile a utiliser que la SFML (du moins a prendre en main)
- La SDL propose par contre des choses plus précise et de plus bas niveau (exemple, la selection entre la mémoire RAM et la mémoire graphique)
Je pense donc que les 2 bibliothèques peuvent se compléter l'une et l'autre, et par exemple je sais déjà que la SDL propose de dessiner directement des pixels sur l'écran, d'où l'idée de la fusionner à la SFML.
Voilà, j'ai peut être pas la bonne solution à mon problème, donc un peu d'aide serait avec joie
Merci
PS: J'apprends à utiliser la SDL en C++ afin de profiter des std::string et tout le C++, malgré que la SDL soit codée en C.