Skocz do zawartości

Problem z SDL_ttf


ANtY

Rekomendowane odpowiedzi

  • Filar Społeczności

powiedzmy ze mam taki kod:

 

        SDL_Color clrFg = {0,0,255,0};
        SDL_Surface *sText = TTF_RenderText_Solid( font, "Courier 12", kolor );
        SDL_Rect rcDest = {0,0,0,0};
        SDL_BlitSurface( sText,NULL, ekran,&rcDest );

 

i przy kompilowaniu wyskakuje:

 

Unhandled exception at 0x10001d1b in Arena Maggusa.exe: 0xC0000005: Access violation reading location 0x00000000.

 

na tej linijce

 

SDL_Surface *sText = TTF_RenderText_Solid( font, "Courier 12", kolor );

 

 

 

 

próbowałem już kodu z dwóch tutoriali, ale to samo, nie wiem czym spowodowane, no i proszę, żeby jak ktoś nie wie ocb to niech nie pisze bzdur

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

    TTF_Font *font;
    SDL_Surface * text1;
    SDL_Color kolor;

gdzie indziej

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

jezu gnysek, nie pomagasz

 

        TTF_Init();
        font=TTF_OpenFont("font.ttf", 20);

        kolor.r=0;
        kolor.g=0;
        kolor.b=255;

 

TTF_GetError() to raz. Dwa debugger. Trzy spr czy font zostaje poprawnie załadowany?

CYTAT

i przy kompilowaniu wyskakuje:

 

Nie wyskakuje przy kompilowaniu.

 

edit: Może być wymagane aby c-string był explicit null-terminated.

w debugerze nic nie znalazle, font sie laduje, a tego w editcie nie zrozumialem :/

Odnośnik do komentarza
Udostępnij na innych stronach

Daj "Courier 12\0". Sprawdź też co zwraca funkcja TTF_GetError() ;

 

 

if(!font)

{

//error

}

 

 

SDL_Surface *sText =NULL;

sText= TTF_RenderText_Solid( font, "Courier 12"(lub "Courier 12\0"), kolor );

 

if(sText==NULL)

{

printf(" error : %s", TTF_GetError());

}

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

problem jest taki ze program nie dochodzi do tego ifa

zatrzymuje sie na tft_rendertext_solid i wywala tego errora co w pierwszym poscie dalem

Odnośnik do komentarza
Udostępnij na innych stronach

W takim razie błąd powoduje błędny argument lub biblioteka. Zdebuguj i spr jakie wartości przed wywołaniem ma każdy argument(najlepiej w visualu).

Jeśli all parametry będą poprawne pokaż cały kod(może niepoprawnie robisz init bibliotek).

 

//przekaż tekst w ten sposób

std::string str("Courier 12");

sText= TTF_RenderText_Solid( font, str.c_str(), kolor );

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...