2012-04-15 7 views
8

ho implementato GPUImage framework nel mio progetto cocos2d, Il framework GPUImage è una libreria iOS con licenza BSD che consente di applicare filtri accelerati GPU e altri effetti alle immagini, video telecamera dal vivo, e film.cocos2d Errore OpenGL 0x0502 in - [EAGLView swapBuffers]

Quando si chiama uno dei filtri GPUImage, viene visualizzato "errore cocos2d OpenGL 0x0502 in - [EAGLView swapBuffers]".

Avete qualche idea di quale potrebbe essere il problema in questo caso?

Grazie e saluti, Prakash.

+0

0x0502 acronimo di 'GL_INVALID_OPERATION'. Stai cercando di utilizzare una texture da GPUImage con cocos2d? I due di default avranno diversi contesti OpenGL ES, quindi non sarà possibile usare una texture da una all'altra, a meno che non si imposti la condivisione tra i contesti. Non ho familiarità con cocos2d e come fa l'inizializzazione del contesto, ma in qualche modo è necessario impostare un gruppo di condivisione tra i contesti GPUImage e cocos2d. –

+0

@BradLarson sto usando questa linea solo nella mia classe coco2d ------ GPUImageToonFilter * stillImageFilter2 = [[GPUImageToonFilter alloc] init]; image = [stillImageFilter2 imageByFilteringImage: image]; ------- dopo aver eseguito questa riga e ottenuto questo errore –

risposta

1

Non so che cosa il vostro codice sta facendo, ma quello che avevo visto è che alcuni problemi di buffer tempo di swap vengono se il loro è il cambiamento nell'orientamento di applicazione dal orientation.Try normale per stampare la dimensione della vista principale, prima e dopo l'uso il tuo codice.

0

Mi è capitato di avere lo stesso problema. Ho trovato il seguente post utili: iOS and multiple OpenGL views

Nel mio caso, i file Cocos2d non hanno necessaria "setCurrentContext" comandi, così ho aggiunto in CCEAGLView-ios.mm. Risolve il mio problema.

(void) layoutSubviews 
{ 
[renderer_ resizeFromLayer:(CAEAGLLayer*)self.layer]; 
size_ = [renderer_ backingSize]; 

[EAGLContext setCurrentContext: context_]; 
cocos2d::Size size; 
size.width = size_.width; 
size.height = size_.height; 

cocos2d::Director::getInstance()->drawScene(); 
}