| [Résolut] Probleme OpenGl | |
|
|
Auteur | Message |
---|
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: [Résolut] Probleme OpenGl Sam 13 Mar 2010 - 17:05 | |
| Bon voila je débute en openGl avec SDL en c++ et y a un truc que je comprend pas : -Avec SDL quand on charge une image surface elle est stockée dans une surface, et on peut la libérer quand on veux. -Avec openGl on peut generer une texture a partir d'une SDL_Surface, mais ensuite comment la détruire pour libérer la mémoire (si elle en prend ?) C'est vraiment ce concepte d'openGl que je n'arrive pas a cerner ...
Voila merci de votre attention en espérant des réponses
Dernière édition par onilink_ le Dim 14 Mar 2010 - 22:57, édité 2 fois |
|
| |
[TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: [Résolut] Probleme OpenGl Sam 13 Mar 2010 - 17:27 | |
| Je suis désolé, autant j'ai quelques bases sur SDL, autant, j'y connait rien en 3D OpenGL (c'est pas l'envie qui m'en manque, juste le temps...)
Ceci dit, une surface SDL, c'est un pointeur vers un espace mémoire, donc, en supprimant le pointeur, en théorie, ça libère la mémoire utilisée... _________________ Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^ l'antiqueBienvenue au 2630eme utilisateur : Mike Kennedy ! |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [Résolut] Probleme OpenGl Sam 13 Mar 2010 - 17:30 | |
| ^^ ouai c'est vrai mais le probleme justement avec opengl c'est qu'il ne s'agit pas d'un pointeur, c'est justement ça qui me perturbe, puis j'ai beau chercher sur le web, pas moyen de trouver quoi que ce soit .... en français en tout cas |
|
| |
Invité Invité
| Sujet: Re: [Résolut] Probleme OpenGl Sam 13 Mar 2010 - 17:40 | |
| ben il est temps de prendre des cours d'anglais alors. |
|
| |
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
| Sujet: Re: [Résolut] Probleme OpenGl Sam 13 Mar 2010 - 22:32 | |
| Dans mon moteur qui utilise justement SDL+GL j'ai une classe texture. La voici si ça peut t'aider: Texture.h - Spoiler:
#ifndef TEXTURE_H #define TEXTURE_H
#include <GL/gl.h> #include <GL/glext.h> #include <GL/glu.h> #include <SDL/SDL.h> #include "Resource.h"
class Texture : public Resource { private: int sw; int sh; int pw; int ph; float cw; float ch; GLuint id;
bool transparent; char r; char g; char b;
bool unLoadPermission;
char* fileName;
public: friend class Draw; friend class SubImage;
Texture(char* fileName, UnloadRule rule, bool preLoad = false, bool transparent = false, char red = 0, char green = 0, char blue = 0); ~Texture(); bool load(); bool unLoad(); void unLoadQuery(); bool unLoadIfPermission(); bool reLoad();
inline int getSW() const { return sw; } inline int getSH() const { return sh; } inline int getPW() const { return pw; } inline int getPH() const { return ph; } inline float getCW() const { return cw; } inline float getCH() const { return ch; } inline GLuint getId() const { return id; }
bool isTransparent() const { return transparent; } inline char getRed() const { return r; } inline char getGreen() const { return g; } inline char getBlue() const { return b; }
};
#endif //TEXTURE_H
Texture.cpp - Spoiler:
#include "Texture.h" #include "SurfaceTool.h" #include "Core.h"
Texture::Texture(char* fileName, UnloadRule rule, bool preLoad, bool transparent, char red, char green, char blue) :Resource(rule) { Core::Debug_IncResCount(); printf("new texture;\n"); Texture::sw = 0; Texture::sh = 0; Texture::pw = 0; Texture::ph = 0; Texture::cw = 0; Texture::ch = 0; Texture::id = 0; Texture::transparent = transparent; Texture::r = red; Texture::g = green; Texture::b = blue;
Texture::fileName = fileName;
Resource::type = TEXTURE;
unLoadPermission = true; if (preLoad) { load(); } }
Texture::~Texture() { unLoad(); Core::Debug_DecResCount(); printf("delete texture;\n"); }
bool Texture::load() { unLoadPermission = false; if (!loaded) { id = SDL_GL_LoadTexture(fileName, &sw, &sh, &pw, &ph, transparent, r, g, b); if ( id != 0) { cw = ((float)sw / pw); ch = ((float)sh / ph); loaded = true; printf("load Texture\n"); Core::Debug_IncResCount(); } } return (id != 0); }
bool Texture::unLoad() { if (loaded) { glDeleteTextures(1, &id); loaded = false; printf("unLoad Texture\n"); Core::Debug_DecResCount(); return true; } return false; }
void Texture::unLoadQuery() { unLoadPermission = true; }
bool Texture::unLoadIfPermission() { if (unLoadPermission) { return unLoad(); } return false; }
bool Texture::reLoad() { if (loaded) { unLoad(); return load(); } else { return load(); } }
Bref, faut utiliser glDeleteTextures pour décharger une texture de la mémoire. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [Résolut] Probleme OpenGl Dim 14 Mar 2010 - 9:43 | |
| oh merci codeave tu me sauve la vie ^^, c'est exactement ça que je cherchais, je vais le garder précieusement :lng: |
|
| |
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
| Sujet: Re: [Résolut] Probleme OpenGl Dim 14 Mar 2010 - 21:46 | |
| Bien qu'il n'est pas complet, tu as tout ce que tu as besoin pour t'inspirer. |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: [Résolut] Probleme OpenGl Dim 14 Mar 2010 - 23:42 | |
| ah c'est bete ca, j'aimerai bein changer de code, de passer du gml au C/C++, mais je trouve ca beaucoup trop compliqué. a chaque fois que je veux rentrer dedans, j'y resort très vite. pourtant j'ai pris des tuto pour ca (site du 0 en particulier), mais rien a faire... Est-ce qu'il y a un language plus simple a étudier avant le C ? |
|
| |
bibi675 Utilisateur confirmé: Rang *****
Messages : 2456 Localisation : Oise Projet Actuel : Jeu par navigateur original
| Sujet: Re: [Résolut] Probleme OpenGl Dim 14 Mar 2010 - 23:57 | |
| Delphi Sérieusement, ce langage allie la puissance (aussi rapide que le C) et la simplicité (syntaxe Pascal + IDE surpuissant), c'est très bien documenté et la communauté est assez active. _________________ |
|
| |
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
| Sujet: Re: [Résolut] Probleme OpenGl Lun 15 Mar 2010 - 0:18 | |
| Un bon bouquin... Le site du zéro ne te permettra pas de faire énormément de choses bien qu'il est utile pour débuter. Commence par assimiler le tutoriel sur le site du zéro et après achète toi un bon bouquin. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [Résolut] Probleme OpenGl Lun 15 Mar 2010 - 1:06 | |
| c'est pas pas payant les compilo delphi par hazard ? |
|
| |
Contenu sponsorisé
| Sujet: Re: [Résolut] Probleme OpenGl | |
| |
|
| |
| [Résolut] Probleme OpenGl | |
|