mirror of
https://github.com/brl/mutter.git
synced 2024-11-27 02:20:43 -05:00
7571cc1923
This adds three new feature flags COGL_FEATURE_TEXTURE_NPOT_BASIC, COGL_FEATURE_TEXTURE_NPOT_MIPMAP and COGL_FEATURE_TEXTURE_NPOT_REPEAT that can tell you if your hardware supports non power of two textures, npot textures + mipmaps and npot textures + wrap modes other than CLAMP_TO_EDGE. The pre-existing COGL_FEATURE_TEXTURE_NPOT feature implies all of the above. By default GLES 2 core supports npot textures but mipmaps and repeat modes can only be used with power of two textures. This patch also makes GLES check for the GL_OES_texture_npot extension to determine if mipmaps and repeating are supported with npot textures.
93 lines
4.0 KiB
C
93 lines
4.0 KiB
C
/*
|
|
* Cogl
|
|
*
|
|
* An object oriented GL/GLES Abstraction/Utility Layer
|
|
*
|
|
* Copyright (C) 2009 Intel Corporation.
|
|
*
|
|
* 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 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, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*
|
|
*/
|
|
|
|
/* This is included multiple times with different definitions for
|
|
these macros */
|
|
|
|
COGL_FEATURE_BEGIN (offscreen, 255, 255,
|
|
"OES\0",
|
|
"framebuffer_object\0",
|
|
COGL_FEATURE_OFFSCREEN,
|
|
0)
|
|
COGL_FEATURE_FUNCTION (void, glGenRenderbuffers,
|
|
(GLsizei n,
|
|
GLuint *renderbuffers))
|
|
COGL_FEATURE_FUNCTION (void, glDeleteRenderbuffers,
|
|
(GLsizei n,
|
|
const GLuint *renderbuffers))
|
|
COGL_FEATURE_FUNCTION (void, glBindRenderbuffer,
|
|
(GLenum target,
|
|
GLuint renderbuffer))
|
|
COGL_FEATURE_FUNCTION (void, glRenderbufferStorage,
|
|
(GLenum target,
|
|
GLenum internalformat,
|
|
GLsizei width,
|
|
GLsizei height))
|
|
COGL_FEATURE_FUNCTION (void, glGenFramebuffers,
|
|
(GLsizei n,
|
|
GLuint *framebuffers))
|
|
COGL_FEATURE_FUNCTION (void, glBindFramebuffer,
|
|
(GLenum target,
|
|
GLuint framebuffer))
|
|
COGL_FEATURE_FUNCTION (void, glFramebufferTexture2D,
|
|
(GLenum target,
|
|
GLenum attachment,
|
|
GLenum textarget,
|
|
GLuint texture,
|
|
GLint level))
|
|
COGL_FEATURE_FUNCTION (void, glFramebufferRenderbuffer,
|
|
(GLenum target,
|
|
GLenum attachment,
|
|
GLenum renderbuffertarget,
|
|
GLuint renderbuffer))
|
|
COGL_FEATURE_FUNCTION (GLenum, glCheckFramebufferStatus,
|
|
(GLenum target))
|
|
COGL_FEATURE_FUNCTION (void, glDeleteFramebuffers,
|
|
(GLsizei n,
|
|
const GLuint *framebuffers))
|
|
COGL_FEATURE_FUNCTION (void, glGenerateMipmap,
|
|
(GLenum target))
|
|
COGL_FEATURE_FUNCTION (void, glGetFramebufferAttachmentParameteriv,
|
|
(GLenum target,
|
|
GLenum attachment,
|
|
GLenum pname,
|
|
GLint *params))
|
|
COGL_FEATURE_END ()
|
|
|
|
COGL_FEATURE_BEGIN (element_index_uint, 255, 255,
|
|
"OES\0",
|
|
"element_index_uint\0",
|
|
COGL_FEATURE_UNSIGNED_INT_INDICES,
|
|
0)
|
|
COGL_FEATURE_END ()
|
|
|
|
COGL_FEATURE_BEGIN (texture_npot, 255, 255,
|
|
"OES\0",
|
|
"texture_npot\0",
|
|
COGL_FEATURE_TEXTURE_NPOT |
|
|
COGL_FEATURE_TEXTURE_NPOT_BASIC |
|
|
COGL_FEATURE_TEXTURE_NPOT_MIPMAP |
|
|
COGL_FEATURE_TEXTURE_NPOT_REPEAT,
|
|
0)
|
|
COGL_FEATURE_END ()
|