Partage
  • Partager sur Facebook
  • Partager sur Twitter

[opengl] info sur les texture

ou son t'elle charger

    18 juin 2008 à 0:03:53

    bonjour a tout

    je code un petit moteur 3D et je voudrais savoir si les image son stoker dans la RAM ou dans la memoire video avec la fonction "loadTexture" que Kayl donne avec son tutorial :

    GLuint loadTexture(const char * filename,bool useMipMap)
    {
        GLuint glID;
        SDL_Surface * picture_surface = NULL;
        SDL_Surface *gl_surface = NULL;
        SDL_Surface * gl_fliped_surface = NULL;
        Uint32 rmask, gmask, bmask, amask;
    
        picture_surface = IMG_Load(filename);
        if (picture_surface == NULL)
            return 0;
    
    #if SDL_BYTEORDER == SDL_BIG_ENDIAN
    
        rmask = 0xff000000;
        gmask = 0x00ff0000;
        bmask = 0x0000ff00;
        amask = 0x000000ff;
    #else
    
        rmask = 0x000000ff;
        gmask = 0x0000ff00;
        bmask = 0x00ff0000;
        amask = 0xff000000;
    #endif
    
        SDL_PixelFormat format = *(picture_surface->format);
        format.BitsPerPixel = 32;
        format.BytesPerPixel = 4;
        format.Rmask = rmask;
        format.Gmask = gmask;
        format.Bmask = bmask;
        format.Amask = amask;
    
        gl_surface = SDL_ConvertSurface(picture_surface,&format,SDL_SWSURFACE);
    
        gl_fliped_surface = flipSurface(gl_surface);
    
        glGenTextures(1, &glID);
    
        glBindTexture(GL_TEXTURE_2D, glID);
    
    
        if (useMipMap)
        {
    
            gluBuild2DMipmaps(GL_TEXTURE_2D, 4, gl_fliped_surface->w,
                              gl_fliped_surface->h, GL_RGBA,GL_UNSIGNED_BYTE,
                              gl_fliped_surface->pixels);
    
            glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,
                            GL_LINEAR_MIPMAP_LINEAR);
    
        }
        else
        {
            glTexImage2D(GL_TEXTURE_2D, 0, 4, gl_fliped_surface->w,
                         gl_fliped_surface->h, 0, GL_RGBA,GL_UNSIGNED_BYTE,
                         gl_fliped_surface->pixels);
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
        }
        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    
    
        SDL_FreeSurface(gl_fliped_surface);
        SDL_FreeSurface(gl_surface);
        SDL_FreeSurface(picture_surface);
    
        return glID;
    }
    


    je demande sa car je voudrai optimiser mon code et donc mettre les texture dans la mémoire vidéo

    merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter

    [opengl] info sur les texture

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown