Mno, vím, že je to tak trochu pozdě od vytvoření této série, ale pořád mě přijde aktuální, tak si myslím, že následující info není na škodu nováčkům, protože sám jsem se s tím potýkal poměrně dlouho;
Když v SDL vykreslujete jeden surface do druhého a oba jsou RGBA, nastává jeden problém; výsledná alpha není nějakým součtem, součinem či čímkoli jiným alph z obou obrázků, ale zůstává prostě neměnná. Prakticky to znamená, že když si vytvořím prázdný SDL_Surface, do nějž chci vykreslovat, nakonec nebude vidět nic. Existují dvě řešení (klidně i více, tyhle jsou známy mě), ani jedno není ideální:
- napsat si vlastní GetPixel a PutPixel (viz tento článek) a tudíž i vlastní vykreslovací funkci. Pomalé.
- Když jsem si vykresloval fonty pomocí TTF, udělal jsem si poměrně jednoduchou funkci, která rozdělí text na řádky, ty vykreslí, sloučí do jednoho SDL_Surfacu a ten vrátí. Tady bylo možno u zdrojového surface (ten, který vygenerovala TTF a který blitujeme do cílového) nastavit SDL_SetAlpha(radek, SDL_RLEACCEL, SDL_ALPHA_OPAQUE) a pak se do výsledného surface vykreslí kompletně celý původní obrázek bez ohledu na alphu na zdroji či cíli.
Nicméně super článek, sice se objevil (čti: já ho objevil) až v době, kdy mě takřka plně stačí původní SDL dokumentace, nicméně když jsem se zrovna včera rozhodl udělat si třídu obalující TTF, přijde mě to vhod. A to vlastně pokaždé, kdy potřebuji něco víc, než holou referenci, tak tohle mě bohatě stačí ;). Dík ;)

