Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] Poradnik do SDL_image (2.0.0+)


Gość skprime

Rekomendowane odpowiedzi

Opublikowano

I. Wstęp

 
I.I. O SDL_image
 
SDL_image jest biblioteką ładującą pliki graficzne do SDL_Surface i tekstur.
Oprócz obsługi formatu PNG, JPEG, GIF, BMP, TGA, wspiera również formaty: LBM, PCX, PNM, TIFF, WEBP, XCF, XPM, XV.
 

I.II. Wymagania

 

Najnowszy, stabilny release SDL2.

 

I.III. Platformy

 

SDL_image wspiera wszystkie te same platformy co SDL2.

 

II. Download i linkowanie

 

II.I. Download

 

Link do oficjalnej strony SDL_image: Kliknij tutaj

 

II.II. Linkowanie

 

Linkowanie wygląda tak samo jak w przypadku SDL2, różnica jest w nazwie .lib'ków, .h'eaderów + dodatkowo musimy zalinkować kilka dodatkowych bibliotek (dołączonych w download'zie SDL_image).

 

III. Inicializacja i zamykanie

 

III.I. Inicializacja

 

 

 

 

Zaczynamy od include pliku SDL_image.h.

Przykładowo:

#include <SDL2/SDL_image.h>

Następnie inicializujemy SDL_image w ten sposób:

 

if (IMG_Init(IMG_INIT_PNG | IMG_INIT_JPG | IMG_INIT_TIF) == 0)
{
    //Inicializacja sie nie powiadla
} 
else 
{ 
    //Inicializacja sie powiadla
}

Możemy dowolnie zmieniać flagi w IMG_Init w zależności jaki format chcemy supportować.

 

UWAGA: Dla niektórych formatów SDL_image nie trzeba inicializować. Dla których? Informację znajdziecie na oficjalnej stronie SDL_image (link podany wyżej w sekcji download'u).

 

 

 

 

III.II. Zamykanie

 

 

 

IMG_Quit();

 

 

 

IV. Ładowanie pliku graficznego do SDL_Surface

 

 

 

 

Po inicializacji SDL_image, możemy załadować wybrany plik graficzny.

Jest to bardzo prosta rzecz, a my musimy znać tylko path do naszego pliku.

 

Wygląda to tak:

std::string path = "C:\\przykladowa\\sciezka\\plik.png";
SDL_Surface *surface = IMG_Load(path.c_str());

 

 

 

V. Używanie SDL_Surface z OpenGL'em

 

 

A więć mamy już naszego SDL_Surface z załadowanym plikiem graficznym.

Jak użyjemy go z OpenGL'em do teksturowania?

 

Oto przykład:

std::string path = "C:\\tekstury\\tekstura.png";

SDL_Surface *surface = IMG_Load(path.c_str());

int32_t colorMode = GL_RGB;
if (surface->format->BytesPerPixel == 4) colorMode = GL_RGBA;

glTexImage2D(GL_TEXTURE_2D, 0, colorMode, surface->w, surface->h, 0, colorMode, GL_UNSIGNED_BYTE, surface->pixels);

 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...