/**
 * projectM -- Milkdrop-esque visualisation SDK
 * Copyright (C)2003-2007 projectM Team
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 * See 'LICENSE.txt' included within this release
 *
 */
/**
 * $Id: $
 *
 */
#ifndef _FBODEFS_H
#define _FBODEFS_H


#if defined (USE_FBO)

#if defined (USE_GLES1)

/*
 * Map OES API names to GL names.
 */
#define GL_FRAMEBUFFER                                    GL_FRAMEBUFFER_OES
#define GL_RENDERBUFFER                                   GL_RENDERBUFFER_OES
#define GL_RGBA4                                          GL_RGBA4_OES
#define GL_RGB5_A1                                        GL_RGB5_A1_OES
#define GL_RGB565                                         GL_RGB565_OES
#define GL_DEPTH_COMPONENT16                              GL_DEPTH_COMPONENT16_OES
#define GL_RENDERBUFFER_WIDTH                             GL_RENDERBUFFER_WIDTH_OES
#define GL_RENDERBUFFER_HEIGHT                            GL_RENDERBUFFER_HEIGHT_OES
#define GL_RENDERBUFFER_INTERNAL_FORMAT                   GL_RENDERBUFFER_INTERNAL_FORMAT_OES
#define GL_RENDERBUFFER_RED_SIZE                          GL_RENDERBUFFER_RED_SIZE_OES
#define GL_RENDERBUFFER_GREEN_SIZE                        GL_RENDERBUFFER_GREEN_SIZE_OES
#define GL_RENDERBUFFER_BLUE_SIZE                         GL_RENDERBUFFER_BLUE_SIZE_OES
#define GL_RENDERBUFFER_ALPHA_SIZE                        GL_RENDERBUFFER_ALPHA_SIZE_OES
#define GL_RENDERBUFFER_DEPTH_SIZE                        GL_RENDERBUFFER_DEPTH_SIZE_OES
#define GL_RENDERBUFFER_STENCIL_SIZE                      GL_RENDERBUFFER_STENCIL_SIZE_OES
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE             GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME             GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL           GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE   GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES
#define GL_COLOR_ATTACHMENT0                              GL_COLOR_ATTACHMENT0_OES
#define GL_DEPTH_ATTACHMENT                               GL_DEPTH_ATTACHMENT_OES
#define GL_STENCIL_ATTACHMENT                             GL_STENCIL_ATTACHMENT_OES
#define GL_FRAMEBUFFER_COMPLETE                           GL_FRAMEBUFFER_COMPLETE_OES
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT              GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT      GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS              GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS                 GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES
#define GL_FRAMEBUFFER_UNSUPPORTED                        GL_FRAMEBUFFER_UNSUPPORTED_OES
#define GL_FRAMEBUFFER_BINDING                            GL_FRAMEBUFFER_BINDING_OES
#define GL_RENDERBUFFER_BINDING                           GL_RENDERBUFFER_BINDING_OES
#define GL_MAX_RENDERBUFFER_SIZE                          GL_MAX_RENDERBUFFER_SIZE_OES
#define GL_INVALID_FRAMEBUFFER_OPERATION                  GL_INVALID_FRAMEBUFFER_OPERATION_OES

#define glIsRenderbuffer                      glIsRenderbufferOES
#define glBindRenderbuffer                    glBindRenderbufferOES
#define glDeleteRenderbuffers                 glDeleteRenderbuffersOES
#define glGenRenderbuffers                    glGenRenderbuffersOES
#define glRenderbufferStorage                 glRenderbufferStorageOES
#define glGetRenderbufferParameteriv          glGetRenderbufferParameterivOES
#define glIsFramebuffer                       glIsFramebufferOES
#define glBindFramebuffer                     glBindFramebufferOES
#define glDeleteFramebuffers                  glDeleteFramebuffersOES
#define glGenFramebuffers                     glGenFramebuffersOES
#define glCheckFramebufferStatus              glCheckFramebufferStatusOES
#define glFramebufferRenderbuffer             glFramebufferRenderbufferOES
#define glFramebufferTexture2D                glFramebufferTexture2DOES
#define glGetFramebufferAttachmentParameteriv glGetFramebufferAttachmentParameterivOES
#define glGenerateMipmap                      glGenerateMipmapOES

#elif !defined (GL_VERSION_3_0)

/*
 * FIXME: Do a complete mapping from *EXT and/or *ARB API names.
 */

#endif  /*  GL_VERSION_3_0  */
#endif  /*  USE_FBO  */

#endif  /*  _FBODEFS_H  */
