ios - renderbufferStorage fails on iPad AIR but not on iPad Retina gen 4 -


i've searched answer on google , here. i've found similar issues, not issue , no answer. i'm new xcode , apple development , i've inherited project after our apple developer left.

this using cocos2d v0.99.4-rc3, ios 8.3, xcode 6.3.2. also, worked on ios 7.1 , before upgraded xcode. upgraded both xcode , ios on ipad @ same time.

in code below, backingwidth_ , backingheight_ set 1536 , 2048 on ipad retina, set 0 on ipad air.

when call glgeterror() after renderbufferstorage executed, 0x0501 (gl_invalid_value) returned on air, 0x0000 returned on retina, think there issue renderbufferstorage when 'layer' passed air. call glgeterror() after glbindrenderbufferoes() executed returns 0x0000 both air , retina. have arm64, armv7, , armv7s listed valid architectures in build settings; armv7 , arm64 shown in first line shows architectures, right above base sdk.

- (bool)resizefromlayer:(caeagllayer *)layer {        // allocate color buffer backing based on current layer size     glbindrenderbufferoes(gl_renderbuffer_oes, colorrenderbuffer_);     [context_ renderbufferstorage:gl_renderbuffer_oes fromdrawable:layer]; //this fine on ipad retina causes error air     glenum_error = glgeterror(); //this returns 0x0501 (gl_invalid_value)on ipad air, 0x0000 on retina.      glgetrenderbufferparameterivoes(gl_renderbuffer_oes, gl_renderbuffer_width_oes, &backingwidth_); //equals 1536 on retina, 0 on air     glgetrenderbufferparameterivoes(gl_renderbuffer_oes, gl_renderbuffer_height_oes, &backingheight_); //equals 2048 on retina, 0 on air      if (glcheckframebufferstatusoes(gl_framebuffer_oes) != gl_framebuffer_complete_oes) //this fails, resizefromlayer returns no. {     nslog(@"failed make complete framebuffer object %x", glcheckframebufferstatusoes(gl_framebuffer_oes));     return no; } 

resizefromlayer called layoutsubviews()

- (void) layoutsubviews {     [renderer_ resizefromlayer:(caeagllayer*)self.layer];     size_ = [renderer_ backingsize];      // avoid flicker. issue #350     [[ccdirector shareddirector] drawscene]; } 

has else experienced , how did correct it. 1 entry on here discussed destroying frame buffer , creating new frame buffer inside of resizefromlayer when getting black screen, wasn't specific air. haven't tried yet, , if works, post possible solution. comments on solution said mask real underlying problem, why i'm asking this.

the application code builds on both retina , air, on ipad , in simulator, air shows black screen, since failing in resize.

since no 1 responded, took me while figure out, since i'm new xcode, ios, , cocos2d. issue turned out 64bit/32bit issue older cocos2d version being used. coordinate offsets being calculated wrong , image size being returned 0. there float/double mismatch not have occurred if cocos2d had been upgraded newer version.


Comments