.[ ČeskéHry.cz ].
SDL
Jdi na stránku Předchozí  1, 2
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 24. srpen 2007, 00:06:49    Předmět: Odpovědět s citátem

Nepíšu, že to má být v jiné sekci, ale že tu na to má být jiná sekce Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 24. srpen 2007, 01:44:37    Předmět: Odpovědět s citátem

Myslel jsem, ze na knihovny je tady sekce Obecne.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 24. srpen 2007, 11:06:37    Předmět: Odpovědět s citátem

"Vše o programování, algoritmech a programovacích jazycích, které nemají vlastní sekci"
Kde tam vidíš ty knihovny? Když teda, tak to chce připsat, protože to evidentně spousta lidí (včetně mě) tak automaticky nebere.
Ale jako no flame, jedná se mi o zvýšení úrovně sekce C++, protože sem to opravdu nepatří.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Malek



Založen: 07. 10. 2007
Příspěvky: 11
Bydliště: Hradec Kralove

PříspěvekZaslal: 17. prosinec 2007, 12:54:10    Předmět: SDL_CraeteRGBSurface() Odpovědět s citátem

Ahoj ,potřebuju vytvořit Surface, do kterého budu vykreslovat části jiného Surface který je vytvořen z image. Můj předpoklad je takový , že při :
kód:
SDL_CraeteRGBSurface(SDL_SWSURFACE,100,50,255,0,0,0) ;

se mi vytvoří červený obdelník 100x50.Mno ale jak už to tak bývá tak se mi nevykreslí nic:
kód:

SDL_Surface * txtbutsurf[4]//je soukromé pole ukazatelů třídy
...
//ve fci třídy:
Uint32 rmask, gmask, bmask, amask;
    rmask = 255;
    gmask = 100;
    bmask = 101;
    amask = 100;

    txtbutsurf[0] = SDL_CreateRGBSurface(SDL_SWSURFACE, 100, 24, SCREEN_DEPTH,rmask, gmask, bmask, amask);

//vykreslení:
void Draw(int x,int y, SDL_Surface * sr,SDL_Surface * dest)
{
    SDL_Rect of;
    of.x = x;
    of.y = y;
    if(SDL_BlitSurface(sr,NULL,dest,&of) < 0)
    {
        std::cerr << "Error - (Draw: SDL_BlitSurface < 0 )Can not Blit !\n";
    }

}


void ImageTextButton::Show()
{
    Draw(bgpos.x,bgpos.y,txtbutsurf[status],screen);
    Draw(txtpos.x ,txtpos.y ,txtbutsurf[2+status],screen);
}



Kde je chyba?CreateRGBSurface - rozumím tomu správně?Díky za pomoc?
_________________
Novice , začínám v C++ a SDL Smile .
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
josh



Založen: 30. 07. 2007
Příspěvky: 74

PříspěvekZaslal: 17. prosinec 2007, 13:42:24    Předmět: Odpovědět s citátem

nastav of.w a of.h (zrejme jsou 0, nebo jinej bordel)
_________________
Tak Karle, kolik?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 17. prosinec 2007, 15:18:16    Předmět: Odpovědět s citátem

nie nemozes to pouzit tak ako to mas.
kód:

rmask = 0xff000000;
gmask = 0x00ff0000;
bmask = 0x0000ff00;
amask = 0x000000ff;

surface = SDL_CreateRGBSurface(SDL_SWSURFACE, 100,50, 32, rmask, gmask, bmask, amask);

alebo dat same nuly
kód:
surface = SDL_CreateRGBSurface(SDL_SWSURFACE, 100,50, 32, 0,0,0,0);

http://www.root.cz/clanky/sdl-hry-nejen-pro-linux-5/
http://www.root.cz/clanky/sdl-hry-nejen-pro-linux-6/
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Malek



Založen: 07. 10. 2007
Příspěvky: 11
Bydliště: Hradec Kralove

PříspěvekZaslal: 18. prosinec 2007, 22:33:59    Předmět: Odpovědět s citátem

RE :Josh : To je vpořádku ve 4 argumentu jsou of.w a of.h ignorovány.

RE : nou : Takhle sem to právě měl .

Nemusí se tam prohodit ještě buffery nebo něco odemknout ?

EDIT: I po vykreslování SDL_Surface::pitch je roven 0 , což je šířka uvedená v bajtech.To je asi chyba...

EDIT2:AHA ,stačilo použít :
kód:
    txtbutsurf[0] =SDL_DisplayFormat(txtbutsurf[0]);

a vše funguje , ale proč si to nepřeformátovalo samo ??
EDIT3: bez memory leaků :
kód:
temp = SDL_CreateRGBSurface(SDL_SWSURFACE, 100, 24, SCREEN_DEPTH,0,0,0,0);
txtbutsurf[0] = SDL_DisplayFormat(temp);
SDL_FreeSurface(temp)

_________________
Novice , začínám v C++ a SDL Smile .
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Malek



Založen: 07. 10. 2007
Příspěvky: 11
Bydliště: Hradec Kralove

PříspěvekZaslal: 27. prosinec 2007, 02:01:17    Předmět: Jak a kdy správně čistit? Odpovědět s citátem

Ahoj,potřeboval bych vědět kdy používat SDL_FreeSurface(),TTF_CloseFont() a MIX_CloseAudio() ,když jsou použity jako soukromé položky třídy.Při použití v destruktorech mi to vždy dělalo problémy Sad .
_________________
Novice , začínám v C++ a SDL Smile .
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 27. prosinec 2007, 10:08:18    Předmět: Odpovědět s citátem

no ich pouzitie je podobne ako free() alebo fclose() a v com presne to robilo problemy. jedine co ma napda je to ze si chcel pouzit ten surface alebo font potom co si ho uzavrel.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Malek



Založen: 07. 10. 2007
Příspěvky: 11
Bydliště: Hradec Kralove

PříspěvekZaslal: 12. leden 2008, 10:44:22    Předmět: Odpovědět s citátem

Nevítě někdo ,jak zrcadlově převrátit surface nebo načíst image převráceně?
_________________
Novice , začínám v C++ a SDL Smile .
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Weny Sky



Založen: 28. 07. 2007
Příspěvky: 241

PříspěvekZaslal: 12. leden 2008, 11:56:05    Předmět: Odpovědět s citátem

http://lists.libsdl.org/pipermail/sdl-libsdl.org/2005-January/048133.html

jinak treba OpenGL a premapovat texturu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna