Už celé odpoledne sedím nad jednou záhadou. Potřebuji do okna vykresit kružnici, která občas trčí ven z okna. Metoda vykreslení kružnice z SDL_Draw toto neošetřuje. Tak si vytvořím pomocnou srface, kam vykreslím kružnici a její potřebnou část potom do okna. Můj kód vypadá takto (zatím je v tom bordel, jelikož mi to stále negunguje):
SDL_Surface *su = SDL_CreateRGBSurface(SDL_SWSURFACE, sa.kolk[i].kruh.r * 2 + 1, sa.kolk[i].kruh.r * 2 + 1 , 32,
#if SDL_BYTEORDER == SDL_LIL_ENDIAN
0x000000FF,
0x0000FF00,
0x00FF0000,
0xFF000000
#else
0xFF000000,
0x00FF0000,
0x0000FF00,
0x000000FF
#endif
);//Definice surface; sa.kolk[i].kruh.r získává z mé struktury poloměr kružnice, několikanásobného volání jsme s vědom.
//SDL_UnlockSurface (su);// toto jsme zkoušel, bohužel nepomohlo
SDL_SetAlpha(su, SDL_SRCALPHA, 255); ///Vyplnění surface průhlednou barvou
SDL_FillRect(su, NULL, 0xFF0000);//viz text níže
Draw_Circle(su, sa.kolk[i].kruh.r+1, sa.kolk[i].kruh.r+1, sa.kolk[i].kruh.r, 0xFFFFFF);//Vykreslení kružnice
SDL_UpdateRect(su, 0, 0, su->w, su->h);//Obnovaní surface - bez ní nefunguje
SDL_Rect dst;
dst.x = sa.kolk[i].kruh.b.getb().x - sa.kolk[i].kruh.r - 1;
dst.y = sa.kolk[i].kruh.b.getb().y - sa.kolk[i].kruh.r - 1;
dst.h = dst.w = su->h;
SDL_BlitSurface(su, NULL, okno, &dst);//Vykreslení do okna
SDL_FreeSurface(su);
Teoreticky by mělo fungovat, ale nefunguje. Pouze když vyplním surface červenou barvou, tak se mi zobrazí černý obdélník s průhledný kruhem...
Nevíte co s tím? Děkuji za každou radu