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

Function CreateGLRenderbuffer

test_common/gl/helpers.cpp:1568–1760  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1566#endif // GL_VERSION_3_2
1567
1568void * CreateGLRenderbuffer( GLsizei width, GLsizei height,
1569 GLenum attachment, GLenum glFormat,
1570 GLenum internalFormat, GLenum glType,
1571 ExplicitType type,
1572 GLuint *outFramebuffer,
1573 GLuint *outRenderbuffer,
1574 int *outError, MTdata d, bool allocateMem )
1575{
1576 *outError = CreateGLRenderbufferRaw( width, height, attachment, glFormat, internalFormat,
1577 glType, outFramebuffer, outRenderbuffer );
1578
1579 if( *outError != 0 )
1580 return NULL;
1581
1582 GLenum err = 0;
1583
1584 // Generate a renderbuffer and bind
1585 glGenRenderbuffersEXT( 1, outRenderbuffer );
1586 glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, *outRenderbuffer );
1587
1588 // Allocate storage to the renderbuffer
1589 glGetError();
1590 glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, internalFormat, (GLsizei)width, (GLsizei)height );
1591 err = glGetError();
1592 if( err != GL_NO_ERROR )
1593 {
1594 *outError = 1701;
1595 log_error("Failed to allocate render buffer storage!\n");
1596 return NULL;
1597 }
1598
1599 GLint realInternalFormat;
1600 glGetRenderbufferParameterivEXT( GL_RENDERBUFFER_EXT, GL_RENDERBUFFER_INTERNAL_FORMAT_EXT, &realInternalFormat );
1601 internalFormat = realInternalFormat;
1602
1603#ifdef DEBUG
1604 GLint rsize, gsize, bsize, asize;
1605 glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT, GL_RENDERBUFFER_RED_SIZE_EXT,&rsize);
1606 glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT, GL_RENDERBUFFER_GREEN_SIZE_EXT,&gsize);
1607 glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT, GL_RENDERBUFFER_BLUE_SIZE_EXT,&bsize);
1608 glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT, GL_RENDERBUFFER_ALPHA_SIZE_EXT,&asize);
1609
1610 log_info("Renderbuffer internal format requested: %s actual: %s sizes: r=%d g=%d b=%d a=%d\n",
1611 GetGLFormatName( internalFormat ), GetGLFormatName( realInternalFormat ),
1612 rsize, gsize, bsize, asize );
1613#endif
1614
1615 // Create and bind a framebuffer to render with
1616 glGenFramebuffersEXT( 1, outFramebuffer );
1617 glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, *outFramebuffer );
1618 if( err != GL_NO_ERROR )
1619 {
1620 log_error( "ERROR: Unable to bind framebuffer : Error %s\n",
1621 gluErrorString( err ));
1622
1623 *outError = -1;
1624 return NULL;
1625 }

Calls 7

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