[iPad-3] - [iOS 5.0] - [Objective-C] - [XCode 4.3.3] - [Cocos2D] - [openGL | ES 2.0]Warum würde glBindFrambuffer (GL_FRAMEBUFFER, 0) in cocos2D-iphone zu einem leeren Bildschirm führen?
ich lerne, wie openGL verwenden | ES 2.0 und haben auf Frame Buffer Objects (FBO) s
gestolpertInfo: ich mit Cocos2D gerade arbeite, die eine Menge extra-fancy Handhabung für das Zeichnen hat. Ich stelle mir vor, dass dies mit dem Problem verbunden sein könnte. Wenn der ‚default‘ Frame-Buffer für cocos verschieden ist von dem eigentlichen Pufferstandardrahmen, der auf den Bildschirm zieht, könnte dies in einer Folge
Mein Problem falsch machen: in der init-Funktion meines „Hello World. m "Klasse, wenn ich platziere" glBindFrameBuffer (GL_FRAMEBUFFER, 0); " überall bekomme ich einfach einen leeren Bildschirm!
-(id) init
{
if((self=[super init]))
{
CGSize winSize = [CCDirector sharedDirector].winSize;
glBindFramebuffer(GL_FRAMEBUFFER, 0);
CCSprite * spriteBG = [[CCSprite alloc] initWithFile:@"cocos_retina.png"];
spriteBG.position = ccp(512,384);
//[self addChild:spriteBG z:1];
[self scheduleUpdate];
_mTouchDown = NO;
_mSprite = [CCSprite spriteWithTexture:_mMainTexture];
_mSprite.position = ccp(512,384);
[self addChild:_mSprite];
self.isTouchEnabled = YES;
} return self;}
Fehle ich etwas Grundlegendes und Offensichtliches?
Soweit ich gelernt habe, die Funktion "glBindFramebuffer (GL_FRAMEBUFFER, 0);" Wenn Sie den Framebuffer einfach auf 0 setzen, wird der Standard-Framebuffer angewendet, der auf den Bildschirm zeichnet.
Ich sehe, du bist neu hier. Herzlich willkommen! Der Weg, um anzuzeigen, dass Ihr Problem gelöst wurde, besteht darin, eine Antwort zu akzeptieren, die Antwort nicht in die Frage zu stellen und dem Titel das Wort "Gelöst" hinzuzufügen. Es ist völlig in Ordnung, eine Antwort auf Ihre eigene Frage zu posten und zu akzeptieren. (Sie müssen möglicherweise ein paar Stunden warten, um dies zu tun; es gibt einige temporäre Einschränkungen für neue Benutzer.) –
Ich war mir nicht bewusst, dass es schlechte Etikette war, um das (gelöste) Ding zu tun. Ich habe es schon oft so gesehen gesehen, also nahm ich an, es sei so, dass pplz es einfach selbst gemacht hat. Ich habe versucht, mir selbst zu antworten, 8 Stunden warten. und ich bin bei der Arbeit und habe keine Geduld für solche Dinge. Ich werde jetzt bearbeiten und morgen erneut versuchen, die Antwort zu geben. wenn es immer noch nicht funktioniert, dann werde ich es einfach lassen. – JThora
Ich habe deine letzte Zeile bearbeitet; wie geschrieben, bedeutet das, dass Sie keine Lösung für das Problem haben. –