65.9K
CodeProject is changing. Read more.
Home

Load textures using OpenGL and Light weight Corona Image I/O

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (1 vote)

Jun 14, 2010

CPOL
viewsIcon

11691

Corona(http://corona.sourceforge.net/[^]) is an open-source light weight image input/output library that can read, write, and manipulate image files in just a few lines of code. It can be used to load textures of formats PNG, JPEG, PCX, BMP, TGA, and GIF and output as PNG and TGA files. It well integrates with C and OpenGL. Here is a code snippet which can be used to load textures:
unsigned int *tTexture;
// corona::OpenImage, where PF_DONTCARE to indicate any Pixel Format(PF) to load as texture, FF_AUTODETECT is Auto detect FileFormat.
    Image *image = OpenImage(filename,PF_DONTCARE,FF_AUTODETECT);
    if(image == NULL)
    {
         //Throw error
    }

    int imWidth = image->getWidth(); //Extract Width of the texture
    int imHeight = image->getHeight();
    glGenTextures(1,&tTexture[ID]); //Generate single texture (parameter one) and addressed by tTexture[ID]
    glBindTexture(GL_TEXTURE_2D,tTexture[ID]); //Make tTexture[ID] current
    gluBuild2DMipmaps(GL_TEXTURE_2D,GL_RGB,imWidth,imHeight,GL_RGB,GL_UNSIGNED_BYTE,image->getPixels());
    ...
    ...
    delete image;