mirror of
https://github.com/brl/mutter.git
synced 2024-11-29 19:40:43 -05:00
0b01c91fc5
The GL framebuffer driver now makes sure to bind the framebuffer before counting the number of bits. Previously it would just query the number of bits for whatever framebuffer happened to be used last. In addition the virtual for querying the framebuffer bits has been modified to take a pointer to a structure instead of a separate pointer to each component. This should make it slightly more efficient and easier to maintain. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit e9c58b2ba23a7cebcd4e633ea7c3191f02056fb5)
97 lines
3.5 KiB
C
97 lines
3.5 KiB
C
/*
|
|
* Cogl
|
|
*
|
|
* An object oriented GL/GLES Abstraction/Utility Layer
|
|
*
|
|
* Copyright (C) 2008,2009,2010,2011 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/>.
|
|
*
|
|
*
|
|
*
|
|
* Authors:
|
|
* Robert Bragg <robert@linux.intel.com>
|
|
*/
|
|
|
|
#ifndef __COGL_FRAMEBUFFER_GL_PRIVATE_H__
|
|
#define __COGL_FRAMEBUFFER_GL_PRIVATE_H__
|
|
|
|
CoglBool
|
|
_cogl_offscreen_gl_allocate (CoglOffscreen *offscreen,
|
|
CoglError **error);
|
|
|
|
void
|
|
_cogl_offscreen_gl_free (CoglOffscreen *offscreen);
|
|
|
|
void
|
|
_cogl_framebuffer_gl_flush_state (CoglFramebuffer *draw_buffer,
|
|
CoglFramebuffer *read_buffer,
|
|
CoglFramebufferState state);
|
|
|
|
void
|
|
_cogl_framebuffer_gl_clear (CoglFramebuffer *framebuffer,
|
|
unsigned long buffers,
|
|
float red,
|
|
float green,
|
|
float blue,
|
|
float alpha);
|
|
|
|
void
|
|
_cogl_framebuffer_gl_query_bits (CoglFramebuffer *framebuffer,
|
|
CoglFramebufferBits *bits);
|
|
|
|
void
|
|
_cogl_framebuffer_gl_finish (CoglFramebuffer *framebuffer);
|
|
|
|
void
|
|
_cogl_framebuffer_gl_discard_buffers (CoglFramebuffer *framebuffer,
|
|
unsigned long buffers);
|
|
|
|
void
|
|
_cogl_framebuffer_gl_bind (CoglFramebuffer *framebuffer, GLenum target);
|
|
|
|
void
|
|
_cogl_framebuffer_gl_draw_attributes (CoglFramebuffer *framebuffer,
|
|
CoglPipeline *pipeline,
|
|
CoglVerticesMode mode,
|
|
int first_vertex,
|
|
int n_vertices,
|
|
CoglAttribute **attributes,
|
|
int n_attributes,
|
|
CoglDrawFlags flags);
|
|
|
|
void
|
|
_cogl_framebuffer_gl_draw_indexed_attributes (CoglFramebuffer *framebuffer,
|
|
CoglPipeline *pipeline,
|
|
CoglVerticesMode mode,
|
|
int first_vertex,
|
|
int n_vertices,
|
|
CoglIndices *indices,
|
|
CoglAttribute **attributes,
|
|
int n_attributes,
|
|
CoglDrawFlags flags);
|
|
|
|
CoglBool
|
|
_cogl_framebuffer_gl_read_pixels_into_bitmap (CoglFramebuffer *framebuffer,
|
|
int x,
|
|
int y,
|
|
CoglReadPixelsFlags source,
|
|
CoglBitmap *bitmap,
|
|
CoglError **error);
|
|
|
|
#endif /* __COGL_FRAMEBUFFER_GL_PRIVATE_H__ */
|
|
|
|
|