2009-07-27 23 views

Odpowiedz

5

Nie ma wbudowanego sposobu renderowania tekstu w OpenGL, ale dwiema mniej lub bardziej powszechnymi technikami: renderowanie glifów za pomocą geometrii (mniej powszechne) lub za pomocą mapowania tekstur (o wiele bardziej powszechne). Mapowanie tekstur przypadków jest bardzo proste: skonfiguruj CGBitmapContext i wyrenderuj tekst za pomocą kwarcu. Następnie prześlij obraz w poprzednio wygenerowanej fakturze za pomocą glTexSubImage2D.

Na iPhone'a można również po prostu umieścić UILabel na wierzchu widoku OpenGL i pozwolić UIKitowi na renderowanie. W mojej aplikacji nie wpłynęło to wcale na wydajność (nawet jeśli Apple twierdzi, że tak robi).

+0

Jak ustawić warstwę UILabel na górze widoku OpenGL? –

+0

Po prostu dodaj go jako widok podrzędny: '[myGLView addSubview: myUILabel];' –

+0

AAAAAH !! Widżet na górze twojego subview/?? – bobobobo

3

Możesz użyć metody Texture2D i initWithString do narysowania tekstu w OpenGL. Zobacz przykład lądowania awaryjnego dołączony do iPhone SDK.

Można również użyć UILabel i umieścić go na wierzchu warstwy OpenGL.

+0

czy wiesz gdzie mogę uzyskać potrzebną czcionkę? –

+0

nvm lol znalazłem listę nazw czcionek na google = p –

3

Jak wspomniano wcześniej, Texture2D to dobry pomysł, ale Crash Landing został usunięty z wielu miejsc w Apple, co można zrobić, to pobrać Cocos2d, a następnie wyodrębnić podaną tam klasę Texture2D (jest to ta sama klasa dostarczone przez Apple, ale z kilkoma innymi rzeczami) Cocos 2D for iPhone