2010-10-22 3 views
1

J'utilise SDL_Image pour afficher un JPEG sur l'écran et avoir quelques problèmes avec la résolution à laquelle il est affiché.Problèmes SDL_SetVideoMode

Je comprends que si je passe 0 à la largeur, la hauteur et les bits lors de l'appel SDL_SetVideoMode SDL prend les valeurs des modes actuels, mais ceux-ci semblent être faux dans mon cas. Je l'utilise sur un système Linux embarqué avec un affichage personnalisé (écran LED de 1440x900) et le framebuffer est 1280x720. Le JPEG est affiché mais semble être 640x480 et laisse donc une grande partie de l'écran blanc. Lorsque je précise la largeur et la hauteur avec SDL_SetVideoMode je reçois une erreur:

SDL_SetVideoMode: Pas de mode vidéo assez grand pour 1280x720

Voici le code principal J'utilise:

pImage = IMG_Load(file); 
pScreen = SDL_SetVideoMode(0,0,0,SDL_ANYFORMAT); 
SDL_BlitSurface(pImage,0,pScreen,0); 
SDL_Flip(pScreen); 

Quelqu'un a des idées/pointeurs?

Merci!

+0

Quels sont les dimensions de votre JPEG? –

+0

J'ai essayé quelques-unes, une massive à 2100x1750, une 1440x900 et une 1280x720. En utilisant la méthode ci-dessus, chacun est juste mis à l'échelle dans la petite partie de l'écran – peacemaker

+0

Aussi, il semble parfois quand j'appelle SDL_SetVideoMode il bloque le programme et quand j'appuie sur ctrl-c il se réveille à nouveau et continue d'afficher l'image. En relation? – peacemaker

Répondre

1

Cela a été corrigé en ajoutant la résolution personnalisée à /etc/fb.modes comme ceci:

mode "1280x720-59" 
    # D: 172.00 MHz, H: 82.700 kHz, V: 66.00 Hz 
    geometry 1280 720 1280 720 16 
    timings 13000 300 70 26 3 80 5 
endmode 

Toujours pas de solution pour le SDL_SetVideoMode suspendu comme mentionné dans mon commentaire ci-dessus ...