Něják mi nefunguje v SDL bliting do surface, která není oknem - prostě zůstane prázdná....TAk se chci zeptat - existuje v SDL nějáká f-ce, která by mi překopírovala obsah Surface určený obdelníkem do druhé, nebo si ji musím napsat sám?
Fórum › C / C++
Bliting do Surface, ktera není oknem
![](img/forum_vlakno_help_vyreseno.png)
void DrawIMG(SDL_Surface *img,SDL_Surface *screen, int x, int y, int w, int h, int x2, int y2)
{
SDL_Rect rect;
rect.x = x;
rect.y = y;
SDL_Rect rect2;
rect2.x = x2;
rect2.y = y2;
rect2.w = w;
rect2.h = h;
SDL_BlitSurface(img, &rect2, screen, &rect);
}
mam k tomu aj nejaky komentar:
//na screen nakreslime na suradniciach x y
//obdlznik vyrezany z img
//ak x2, y2 == 0 a w,h == skutocnym rozmerom img
//nejde o výrez.
void sprite::copy(sprite&src, SDL_Rect r)
{
(*ref)--;
if (ref == 0)
{
SDL_FreeSurface(sur);
}
sur = SDL_CreateRGBSurface(
SDL_SWSURFACE,
r.w, r.h, 32,
#if SDL_BYTEORDER == SDL_LIL_ENDIAN
0x000000FF,
0x0000FF00,
0x00FF0000,
0xFF000000
#else
0xFF000000,
0x00FF0000,
0x0000FF00,
0x000000FF
#endif
);
src.draw(src.x,src.y,r,sur);
SDL_UpdateRect(sur,0,0,r.w,r.h);
x = src.x;
y = src.y;
ref = new int;
(*ref) = 1;
SDL_SetColorKey(sur, SDL_SRCCOLORKEY, SDL_MapRGB(sur->format, 255, 0, 255));
a f-ce draw
void sprite::draw(int xx, int yy, SDL_Rect r, SDL_Surface* kam)
{
SDL_Rect rec;
rec.x = xx;
rec.y = yy;
if(sur == NULL)
{
chyba << "VYkreslení prázdné surface\n";
return;
}
else
{
if(SDL_BlitSurface(sur, &r, kam, &rec) == -1)
{
chyba << SDL_GetError() << "\n";
return;
}
}
return;
}
TA f-ce Draw mi ale při vykreslování do okna funguje...
To mephi : Pokud vím, tak ty se nepoužívají - no používají se, ta f-ce je upraví, tak abych je mohl obnovit...A i když je nastavím, tak to nemá vliv....
TAkže už vím, kde je chyba, bohužel nevím jak ji napravit.
Zkusil jsem vykreslit do původní surface, a ono, hele, to funguje...Chyba je asi ve vytváření té nové surface, ale nevím jaká...
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 28 hostů
Podobná vlákna
Prepísanie surface bez príkazu. — založil zgerbiak
Komponenta 3D Graf surface pro Delphi — založil Romek
Pohyb oknem — založil dyžon
Myš nad oknem — založil LJ1024
Problém s pop-up oknem v umístění — založil Tr0n
Moderátoři diskuze