MCPcopy Create free account
hub / github.com/KhronosGroup/OpenCL-CTS / CreateGLRenderbuffer

Function CreateGLRenderbuffer

test_common/gles/helpers.cpp:421–575  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

419}
420
421void * CreateGLRenderbuffer( GLsizei width, GLsizei height,
422 GLenum attachment,
423 GLenum rbFormat, GLenum rbType,
424 GLenum texFormat, GLenum texType,
425 ExplicitType type,
426 GLuint *outFramebuffer,
427 GLuint *outRenderbuffer,
428 int *outError, MTdata d, bool allocateMem )
429{
430 *outError = CreateGLRenderbufferRaw( width, height, attachment, rbFormat, rbType, outFramebuffer, outRenderbuffer );
431
432 if( *outError != 0 )
433 return NULL;
434
435 GLenum err = 0;
436
437 // Generate a renderbuffer and bind
438 glGenRenderbuffersEXT( 1, outRenderbuffer );
439 glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, *outRenderbuffer );
440
441 // Allocate storage to the renderbuffer
442 glGetError();
443 glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, rbFormat, (GLsizei)width, (GLsizei)height );
444 err = glGetError();
445 if( err != GL_NO_ERROR )
446 {
447 *outError = 1701;
448 log_error("Failed to allocate render buffer storage!\n");
449 return NULL;
450 }
451
452 GLint realInternalFormat;
453 glGetRenderbufferParameterivEXT( GL_RENDERBUFFER_EXT, GL_RENDERBUFFER_INTERNAL_FORMAT_EXT, &realInternalFormat );
454 rbFormat = realInternalFormat;
455
456#ifdef GLES_DEBUG
457 GLint rsize, gsize, bsize, asize;
458 glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT, GL_RENDERBUFFER_RED_SIZE_EXT,&rsize);
459 glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT, GL_RENDERBUFFER_GREEN_SIZE_EXT,&gsize);
460 glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT, GL_RENDERBUFFER_BLUE_SIZE_EXT,&bsize);
461 glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT, GL_RENDERBUFFER_ALPHA_SIZE_EXT,&asize);
462
463 log_info("Renderbuffer internal format requested: %s actual: %s sizes: r=%d g=%d b=%d a=%d\n",
464 GetGLFormatName( internalFormat ), GetGLFormatName( realInternalFormat ),
465 rsize, gsize, bsize, asize );
466#endif
467
468 // Create and bind a framebuffer to render with
469 glGenFramebuffersEXT( 1, outFramebuffer );
470 glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, *outFramebuffer );
471 err = glGetError();
472 if( err != GL_NO_ERROR )
473 {
474 log_error( "ERROR: Unable to bind framebuffer : Error %s\n",
475 gluErrorString( err ));
476
477 *outError = -1;
478 return NULL;

Callers

nothing calls this directly

Calls 8

DrawQuadFunction · 0.85
get_explicit_type_sizeFunction · 0.85
CreateGLRenderbufferRawFunction · 0.70
GetGLFormatNameFunction · 0.70
gluErrorStringFunction · 0.70
CreateRandomDataFunction · 0.70
GetGLTypeNameFunction · 0.70
DumpGLBufferFunction · 0.70

Tested by

no test coverage detected