Bliting do Surface, ktera není oknem – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Bliting do Surface, ktera není oknem – C / C++ – Fórum – Programujte.comBliting do Surface, ktera není oknem – C / C++ – Fórum – Programujte.com

 

yaqwsx+9
Posthunter
30. 3. 2008   #1
-
0
-

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?

Nahlásit jako SPAM
IP: 85.160.107.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
mephi0
Expert
30. 3. 2008   #2
-
0
-

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.

Nahlásit jako SPAM
IP: 85.248.56.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
yaqwsx+9
Posthunter
31. 3. 2008   #3
-
0
-

To mephi : Nj, jenže mě

SDL_BlitSurface(img, &rect2, screen, &rect);


nic nevykreslí....Jinak bych se neptal

Nahlásit jako SPAM
IP: 85.160.77.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Phoenix0
Super člen
31. 3. 2008   #4
-
0
-

jen tak hádám, ale nemusíš ještě surface flipnout?

Nahlásit jako SPAM
IP: 85.70.88.–
yaqwsx+9
Posthunter
31. 3. 2008   #5
-
0
-

To Phoenix : No ja to mám jako SW surface, a i když ji obnovím, tak nic..

Nahlásit jako SPAM
IP: 85.160.77.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
WraCkeR0
Newbie
1. 4. 2008   #6
-
0
-

tak sem postni neco at vidime co jsi ukuchtil ..:]

Nahlásit jako SPAM
IP: 212.5.205.–
yaqwsx+9
Posthunter
1. 4. 2008   #7
-
0
-

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...

Nahlásit jako SPAM
IP: 85.160.76.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
mephi0
Expert
2. 4. 2008   #8
-
0
-

rec.Width a rec.Height nemaš zadane.

Nahlásit jako SPAM
IP: 85.248.56.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
yaqwsx+9
Posthunter
2. 4. 2008   #9
-
0
-

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....

Nahlásit jako SPAM
IP: 85.160.80.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Wizard0
Stálý člen
2. 4. 2008   #10
-
0
-

Este by to mohlo byt tim ze r.w = 0 a r.h = 0 to by myslim sposobilo ze sa nic nevykresli.

Nahlásit jako SPAM
IP: 85.216.199.–
yaqwsx+9
Posthunter
2. 4. 2008   #11
-
0
-

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á...

Nahlásit jako SPAM
IP: 85.160.80.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Wizard0
Stálý člen
2. 4. 2008   #12
-
0
-

Skus predtym ako budes vykreslovat do tej surface:



SDL_UnlockSurface (sur);

Myslim ze by to mohlo pomoct.

Nahlásit jako SPAM
IP: 85.216.199.–
yaqwsx+9
Posthunter
2. 4. 2008   #13
-
0
-

To Wizard : Moc díky!Pomohlo to!

Nahlásit jako SPAM
IP: 85.160.95.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Wizard0
Stálý člen
2. 4. 2008   #14
-
0
-

To yaqwsx : To som rad :smile4:

Nahlásit jako SPAM
IP: 85.216.199.–
Zjistit počet nových příspěvků

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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 32 hostů

Podobná vlákna

Pohyb oknem — založil dyžon

Myš nad oknem — založil LJ1024

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý