2012-04-15 11 views
8

मैं अपने Cocos2d परियोजना में GPUImage framework को लागू किया है, GPUImage ढांचे, आप GPU- त्वरण फिल्टर और चित्र, लाइव कैमरा वीडियो के लिए अन्य प्रभाव लागू देता है कि एक बीएसडी लाइसेंस प्राप्त आईओएस पुस्तकालय है और फिल्में।Cocos2d ओपन त्रुटि 0x0502 में - [EAGLView swapBuffers]

जब मैं किसी भी GPUImage फ़िल्टर को कॉल करता हूं, तो मुझे "cocos2d OpenGL त्रुटि 0x0502 - [EAGLView swapBuffers]" त्रुटि मिल रही है।

क्या आपको पता है कि उस मामले में समस्या क्या हो सकती है?

धन्यवाद और धन्यवाद, प्रकाश।

+0

0x0502 'GL_INVALID_OPERATION' के लिए खड़ा है। क्या आप ccos2d के साथ GPUImage से बनावट का उपयोग करने की कोशिश कर रहे हैं? डिफ़ॉल्ट रूप से दोनों में अलग-अलग OpenGL ES संदर्भ होंगे, इसलिए आप एक दूसरे से एक बनावट का उपयोग नहीं कर पाएंगे, जब तक कि आप संदर्भों के बीच साझाकरण सेट न करें। मैं cocos2d से परिचित नहीं हूं और यह इसके संदर्भ प्रारंभिकरण कैसे करता है, लेकिन किसी भी तरह आपको GPUImage और cocos2d संदर्भों के बीच एक साझा समूह सेट अप करने की आवश्यकता होगी। –

+0

@ ब्रैडलर्सन केवल मेरी कोको 2 डी कक्षा में ------ जीपीयू इमेजटूनफिल्टर * अभी भी इमेजफिल्टर 2 = [[GPUImageToonFilter alloc] init] में इन दो पंक्तियों का उपयोग कर रहा हूं; image = [stillImageFilter2 imageByFilteringImage: image]; ------- इस दो पंक्तियों को निष्पादित करने के बाद यह त्रुटि हो रही है –

उत्तर

1

मुझे नहीं पता कि आपका कोड क्या कर रहा है लेकिन मैंने जो देखा था वह है कि कुछ समय स्वैप बफर समस्याएं आती हैं यदि उनका सामान्य अभिविन्यास से आवेदन के अभिविन्यास में परिवर्तन होता है। उपयोग से पहले और बाद में मुख्य दृश्य के आकार को मुद्रित करने का प्रयास करें तुम्हारा कोड।

0

मुझे एक ही समस्या हुई। मैं निम्नलिखित पोस्ट उपयोगी पाया: iOS and multiple OpenGL views

मेरे मामले में, Cocos2d फ़ाइलें आवश्यक "setCurrentContext" की जरूरत नहीं है आदेश, इसलिए मैं यह CCEAGLView-ios.mm में जोड़ा। यह मेरी समस्या हल करता है।

(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(); 
}