CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

C/SDL/cours de Jyy

nulissimo
nulissimo
Niveau 4
27 mai 2005 à 17:56:31

SDL_Surface* LoadBMP(char* fichier)
{
SDL_Surface* f = SDL_LoadBMP(fichier);
SDL_Surface* surface=SDL_CreateRGBSurface(SDL_HWSURFACE, 1024, 768, 32, 0, 0, 0, 0);
SDL_Rect R=Rect(0,0,f->w,f->h);
SDL_BlitSurface(f,NULL,firstscreen,&);
SDL_FreeSurface(f);
return surface;
}

Dsl de pas l´heberger sur le truc special mais j´ai pas bcp de temps.
J´ai pas vraiment compris :
on declare qui contient l´image.
Une surface qui est en Vram
On blit l´image a une certaine position sur FIRSTSCREEN et on renvoie surface ? ?
Mais je crois que Surface ne contient presque rien....

Fenix[74]
Fenix[74]
Niveau 10
27 mai 2005 à 18:05:12

from godrik:
je pense qu´il voulait mettre surface a la place de firstscreen

le principe est de charger l´image en memoire sur la CG et pas en RAM.
donc, il pourrait etre bon de faire deux fonction en fait ( en fonciton de ce que l´on cherche a faire)

http://sdldoc.csn.ul.ie/sdlblitsurface.php

lag-it
lag-it
Niveau 10
27 mai 2005 à 18:11:54

( écrit mieux la prochaine fois ce sera plus lisible, même si tu as peu de temps, une simple relecture suffit et donne envie de répondre)

Pas à pas ( à la debug mode :) )

SDL_Surface* f = SDL_LoadBMP(fichier);

:d) Ouvre l´image bitmap contenue dans le fichier dont le nom est contenu dans la variable " fichier" ( exemple : si char fichier[] = " monimage.bmp", SDL_LoadBMP charge " monimage.bmp" en mémoire) puis SDL_LoadBMP retourne un pointeur vers la surface correspondant à l´image que tu viens de charger en mémoire qui est affecté à f.

SDL_Surface* surface=SDL_CreateRGBSurface(SDL_HWSURFACE, 1024, 768, 32, 0, 0, 0, 0);

:d) Dans la SDL, tout est surface : une texture ( exemple celle chargée avant) comme ton écran.
Cette instruction créee donc une surface de 1024*768 ( résolution de l´écran) avec une profondeur de couleur de 32 bits, et utilise ton hardware pour la manipuler ( carte graphique, etc...) contrairement à SDL_SWSURFACE qui n´utiliserait pas les dites accélérations matérielles ( il me semble, dans le détail technique je sais pas trop, je me sert pas de la sdl :) )

SDL_Rect R=Rect(0,0,f->w,f->h);

:d) Crée une vrariable R de type SDL_Rect ( un rectangle avec une position ( 0,0), une largeur ( la variable width) et une hauteur ( la variable heigth).
En fait ce bout de code va servir à définir la taille de l´image que tu as chargé ainsi que la position ou tu veux la blitter, cf. code ci-après.

SDL_BlitSurface(f,NULL,firstscreen,&);

:d) Blitte ( copie) la surface f à l´endroit précisé par ta structure R ( donc ( 0,0) avec les largeurs d´image spécifiées précédement sur la surface de l´écran firstscreen.

SDL_FreeSurface(f);

:d) Désalloue la surface f.

return surface;

:d) Retourne le pointeur vers la surface surface.

Autrement dit en effet, j´ai pas pigé le code non plus, surtout que le nom de la fonction n´est pas trop en rapport avec ce quelle effectue réellement. Je l´aurais plutôt appellé " AllocSurfaceAndBlitImageOnScreen" :)

Fenix[74]
Fenix[74]
Niveau 10
27 mai 2005 à 18:14:37

from godrik:
c´est pour ca que je dit que ce n´est pas firstscreen mais surface qu´il voulait ecrire.
et la ca devient beaucoup plus comprehensible... :)

lag-it
lag-it
Niveau 10
27 mai 2005 à 18:16:37

Hey, désolé mais je rédigeait pendans que tu postais, donc j´ai pas pu lire :)

Je penche en effet pour ta version, même si la fonction est quand même bizarre... je loaderait pas une image pour l´afficher en même temps ( mais s´il s´agit d´un bout de code de tutorial, c´est plus compréhensible).

Et que signifie " from godrik:" ?

Fenix[74]
Fenix[74]
Niveau 10
27 mai 2005 à 18:22:17

from godrik:
( c´est parceque je suis nouveau alors j´ai pas le droit a plus de xxx posts par jour. Alors j´utilise le compte de Fenix[74])

en fait, si c´est logique
quand tu fais SDL_LoadBMP, il charge l´image en RAM.
mais toi tu voudrais qu´elle soit en VRAM, alors tu cree un buffer en VRAM ( surface)
et tu fais une copie de la RAM vers la VRAM...

( mais dans ce cas, je ne comprends pas pourquoi il fait un buffer de 1024X768)
il faudrait demander a l´auteur ce qu´il avait en tete...

( une chose est sur, la ca ne fera pas ce que tu veux, il va te renvoyer un buffer non initialisé)

Fenix[74]
Fenix[74]
Niveau 10
27 mai 2005 à 18:23:09

From Godrik signifie que ce n´est pas moi qui poste.
En effet, godrik est un de mes amis, et son compte est très récent. Donc il est limité en messages, alors que le mien ne l´est pas.

gollumkawder
gollumkawder
Niveau 10
27 mai 2005 à 18:51:08

super pratique..

JeanYvesYves
JeanYvesYves
Niveau 10
27 mai 2005 à 19:01:13

En effet ! petite erreur. Je viens de mettre a jour ! :)

nulissimo
nulissimo
Niveau 4
27 mai 2005 à 19:30:31

En fait, je voulais juste savoir s´il s´etait trompé :p)

( C´etait scientifiquement illogique ^^)
Je peux maintenant continuer mon ( petit) projet.

Merci a tous

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment