Been dabbling with OpenGLES and having varying levels of success. My current problem is trying to load a .obj file. I found a great GLOBJLoader that I've been to implement in my current project but am not quite there yet.
Here is my code
- (void)createFramebuffer
{
glGenFramebuffersOES(1, &viewFrameBuffer);
NSLog(@"Check 1");
[self checkFrameBuffer];
glGenRenderbuffersOES(1, &viewRenderBuffer);
NSLog(@"Check 2");
[self checkFrameBuffer];
glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFrameBuffer);
NSLog(@"Check 3");
[self checkFrameBuffer];
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderBuffer);
NSLog(@"Check 4");
[self checkFrameBuffer];
[context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(CAEAGLLayer*)self.layer];
NSLog(@"Check 5");
[self checkFrameBuffer];
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, viewFrameBuffer);
NSLog(@"Check 6");
[self checkFrameBuffer];
GLint wide = 320;
GLint high = 480;
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &wide);
NSLog(@"Check 7");
[self checkFrameBuffer];
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &high);
NSLog(@"Check 8");
[self checkFrameBuffer];
if(USE_DEPTH_BUFFER)
{
glGenRenderbuffersOES(1, &depthRenderBuffer);
NSLog(@"Check 9");
[self checkFrameBuffer];
glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderBuffer);
NSLog(@"Check 10");
[self checkFrameBuffer];
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, glWidth, glHeight);
NSLog(@"Check 11");
[self checkFrameBuffer];
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderBuffer);
NSLog(@"Check 12");
[self checkFrameBuffer];
}
}
-(void)checkFrameBuffer
{
GLuint returned = (glCheckFramebufferStatus(GL_FRAMEBUFFER_OES));
if(returned != GL_FRAMEBUFFER_COMPLETE_OES)
{
NSLog(@"Error code: %x -->", returned);
switch (returned) {
case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES:
NSLog(@"Incomplete: Dimensions");
break;
case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES:
NSLog(@"Incomplete: Formats");
break;
case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES:
NSLog(@"Incomplete: Missing Attachment");
break;
case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES:
NSLog(@"Incomplete: Attachment");
break;
default:
NSLog(@"Complete");
break;
}
}
}
The createFrameBuffer() method is obviously to create the frame buffer, the checkFrameBuffer() is simply to help debug and outputs the state of the frame buffer after each step I take.
The output I get from this is:
- Check 1
- Error code: 8cdd -->
- Complete
- Check 2
- Error code: 8cdd -->
- Complete
- Check 3
- Error code: 8cd7 -->
- Incomplete: Missing Attachment
- Check 4
- Error code: 8cd7 -->
- Incomplete: Missing Attachment
- Check 5
- Error code: 8cd7 -->
- Incomplete: Missing Attachment
- Check 6
- Error code: 8cd6 -->
- Incomplete: Attachment
- Check 7
- Error code: 8cd6 -->
- Incomplete: Attachment
- Check 8
- Error code: 8cd6 -->
- Incomplete: Attachment
- Check 9
- Error code: 8cd6 -->
- Incomplete: Attachment
- Check 10
- Error code: 8cd6 -->
- Incomplete: Attachment
- Check 11
- Error code: 8cd6 -->
- Incomplete: Attachment
- Check 12
- Error code: 8cd6 -->
- Incomplete: Attachment
These issues are stopping it from working and I am completely baffled. It should be said that I don't really know much about OpenGL, I've just been patching things together and trying to learn as I go, but I did run through Jeff Lamarche's "OpenGLES From the Ground Up" so know small amounts.
Any help would be massively appreciated and if you need more information, please don't hesitate to ask!
Thanks,
Matt