[cogl] Updates all file headers and removes lots of trailing white space

Adds missing notices, and ensures all the notices are consistent. The Cogl
blurb also now reads:

 * Cogl
 *
 * An object oriented GL/GLES Abstraction/Utility Layer
This commit is contained in:
Robert Bragg 2009-04-27 15:48:12 +01:00
parent 2d94b3f46f
commit 7e9685294e
69 changed files with 684 additions and 463 deletions

View File

@ -1,7 +1,9 @@
/* cogl-color.h: Color type for COGL /*
* This file is part of Clutter * Cogl
* *
* Copyright (C) 2008 Intel Corporation. * An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2008,2009 Intel Corporation.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -14,7 +16,9 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/ */
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)

View File

@ -1,3 +1,26 @@
/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2007,2008,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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef __COGL_DEBUG_H__ #ifndef __COGL_DEBUG_H__
#define __COGL_DEBUG_H__ #define __COGL_DEBUG_H__

View File

@ -1,3 +1,26 @@
/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2008,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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef COGL_DEPRECATED_H #ifndef COGL_DEPRECATED_H
#define cogl_color cogl_color_REPLACED_BY_cogl_set_source_color #define cogl_color cogl_color_REPLACED_BY_cogl_set_source_color

View File

@ -1,7 +1,9 @@
/* cogl-fixed.h: Fixed point API /*
* This file is part of Clutter * Cogl
* *
* Copyright (C) 2008 Intel Corporation. * An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2007,2008,2009 Intel Corporation.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -14,7 +16,9 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/ */
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
@ -725,7 +729,7 @@ CoglFixed cogl_angle_cos (CoglAngle angle);
/*< private >*/ /*< private >*/
#if defined (G_CAN_INLINE) #if defined (G_CAN_INLINE)
G_INLINE_FUNC CoglFixed G_INLINE_FUNC CoglFixed
cogl_fixed_mul (CoglFixed a, cogl_fixed_mul (CoglFixed a,
CoglFixed b) CoglFixed b)
{ {

View File

@ -1,3 +1,26 @@
/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2007,2008,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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
#error "Only <cogl/cogl.h> can be included directly." #error "Only <cogl/cogl.h> can be included directly."
#endif #endif

View File

@ -1,3 +1,29 @@
/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2008,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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Authors:
* Robert Bragg <robert@linux.intel.com>
*/
#ifndef __COGL_MATRIX_H #ifndef __COGL_MATRIX_H
#define __COGL_MATRIX_H #define __COGL_MATRIX_H

View File

@ -1,7 +1,9 @@
/* cogl-offscreen.h: Offscreen objects /*
* This file is part of Clutter * Cogl
* *
* Copyright (C) 2008 Intel Corporation. * An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2007,2008,2009 Intel Corporation.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -14,7 +16,9 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/ */
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
@ -48,7 +52,7 @@ CoglHandle cogl_offscreen_new_to_texture (CoglHandle texhandle);
/** /**
* cogl_offscreen_new_multisample: * cogl_offscreen_new_multisample:
* *
* *
* Returns: * Returns:
*/ */

View File

@ -1,7 +1,9 @@
/* cogl-path.h: Path primitives /*
* This file is part of Clutter * Cogl
* *
* Copyright (C) 2008 Intel Corporation. * An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2008,2009 Intel Corporation.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -14,7 +16,9 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/ */
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)

View File

@ -1,7 +1,9 @@
/* cogl-shader.h: Shaders and programmable pipeline /*
* This file is part of Clutter * Cogl
* *
* Copyright (C) 2008 Intel Corporation. * An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2008,2009 Intel Corporation.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -14,7 +16,9 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/ */
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)

View File

@ -1,7 +1,9 @@
/* cogl-texture.h: Texture objects /*
* This file is part of Clutter * Cogl
* *
* Copyright (C) 2008 Intel Corporation. * An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2007,2008,2009 Intel Corporation.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -14,7 +16,9 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/ */
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)

View File

@ -1,13 +1,14 @@
/* cogl-types.h: Shared COGL types /*
* Cogl
* *
* This file is part of Clutter * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Copyright (C) 2008 Intel Corporation. * Copyright (C) 2008,2009 Intel Corporation.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.
* *
* This library is distributed in the hope that it will be useful, * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -15,7 +16,9 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/ */
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
@ -137,7 +140,7 @@ typedef enum
COGL_PIXEL_FORMAT_RGBA_5551 = 6 | COGL_A_BIT, COGL_PIXEL_FORMAT_RGBA_5551 = 6 | COGL_A_BIT,
COGL_PIXEL_FORMAT_YUV = 7, COGL_PIXEL_FORMAT_YUV = 7,
COGL_PIXEL_FORMAT_G_8 = 8, COGL_PIXEL_FORMAT_G_8 = 8,
COGL_PIXEL_FORMAT_RGB_888 = COGL_PIXEL_FORMAT_24, COGL_PIXEL_FORMAT_RGB_888 = COGL_PIXEL_FORMAT_24,
COGL_PIXEL_FORMAT_BGR_888 = (COGL_PIXEL_FORMAT_24 | COGL_PIXEL_FORMAT_BGR_888 = (COGL_PIXEL_FORMAT_24 |
@ -178,7 +181,7 @@ typedef enum
COGL_PREMULT_BIT | COGL_PREMULT_BIT |
COGL_BGR_BIT | COGL_BGR_BIT |
COGL_AFIRST_BIT), COGL_AFIRST_BIT),
COGL_PIXEL_FORMAT_RGBA_4444_PRE = (COGL_PIXEL_FORMAT_RGBA_4444 | COGL_PIXEL_FORMAT_RGBA_4444_PRE = (COGL_PIXEL_FORMAT_RGBA_4444 |
COGL_A_BIT | COGL_A_BIT |
COGL_PREMULT_BIT), COGL_PREMULT_BIT),
@ -186,8 +189,8 @@ typedef enum
COGL_PIXEL_FORMAT_RGBA_5551_PRE = (COGL_PIXEL_FORMAT_RGBA_5551 | COGL_PIXEL_FORMAT_RGBA_5551_PRE = (COGL_PIXEL_FORMAT_RGBA_5551 |
COGL_A_BIT | COGL_A_BIT |
COGL_PREMULT_BIT), COGL_PREMULT_BIT),
} CoglPixelFormat; } CoglPixelFormat;
#define COGL_TYPE_PIXEL_FORMAT (cogl_pixel_format_get_type ()) #define COGL_TYPE_PIXEL_FORMAT (cogl_pixel_format_get_type ())

View File

@ -1,13 +1,9 @@
/* /*
* Cogl. * Cogl
* *
* An OpenGL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Vertex Buffer API: Handle extensible arrays of vertex attributes * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 Intel Corporation.
*
* Authored by: Robert Bragg <robert@linux.intel.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -20,7 +16,12 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Authors:
* Robert Bragg <robert@linux.intel.com>
*/ */
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION) #if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)

View File

@ -1,13 +1,12 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -164,7 +162,7 @@ inline static void
_cogl_unpremult_alpha_last (const guchar *src, guchar *dst) _cogl_unpremult_alpha_last (const guchar *src, guchar *dst)
{ {
guchar alpha = src[3]; guchar alpha = src[3];
dst[0] = ((((gulong) src[0] >> 16) & 0xff) * 255 ) / alpha; dst[0] = ((((gulong) src[0] >> 16) & 0xff) * 255 ) / alpha;
dst[1] = ((((gulong) src[1] >> 8) & 0xff) * 255 ) / alpha; dst[1] = ((((gulong) src[1] >> 8) & 0xff) * 255 ) / alpha;
dst[2] = ((((gulong) src[2] >> 0) & 0xff) * 255 ) / alpha; dst[2] = ((((gulong) src[2] >> 0) & 0xff) * 255 ) / alpha;
@ -175,7 +173,7 @@ inline static void
_cogl_unpremult_alpha_first (const guchar *src, guchar *dst) _cogl_unpremult_alpha_first (const guchar *src, guchar *dst)
{ {
guchar alpha = src[0]; guchar alpha = src[0];
dst[0] = alpha; dst[0] = alpha;
dst[1] = ((((gulong) src[1] >> 16) & 0xff) * 255 ) / alpha; dst[1] = ((((gulong) src[1] >> 16) & 0xff) * 255 ) / alpha;
dst[2] = ((((gulong) src[2] >> 8) & 0xff) * 255 ) / alpha; dst[2] = ((((gulong) src[2] >> 8) & 0xff) * 255 ) / alpha;
@ -187,23 +185,23 @@ _cogl_bitmap_fallback_can_convert (CoglPixelFormat src, CoglPixelFormat dst)
{ {
if (src == dst) if (src == dst)
return FALSE; return FALSE;
switch (src & COGL_UNORDERED_MASK) switch (src & COGL_UNORDERED_MASK)
{ {
case COGL_PIXEL_FORMAT_G_8: case COGL_PIXEL_FORMAT_G_8:
case COGL_PIXEL_FORMAT_24: case COGL_PIXEL_FORMAT_24:
case COGL_PIXEL_FORMAT_32: case COGL_PIXEL_FORMAT_32:
if ((dst & COGL_UNORDERED_MASK) != COGL_PIXEL_FORMAT_24 && if ((dst & COGL_UNORDERED_MASK) != COGL_PIXEL_FORMAT_24 &&
(dst & COGL_UNORDERED_MASK) != COGL_PIXEL_FORMAT_32 && (dst & COGL_UNORDERED_MASK) != COGL_PIXEL_FORMAT_32 &&
(dst & COGL_UNORDERED_MASK) != COGL_PIXEL_FORMAT_G_8) (dst & COGL_UNORDERED_MASK) != COGL_PIXEL_FORMAT_G_8)
return FALSE; return FALSE;
break; break;
default: default:
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
} }
@ -224,11 +222,11 @@ _cogl_bitmap_fallback_convert (const CoglBitmap *bmp,
gint dst_bpp; gint dst_bpp;
gint x,y; gint x,y;
guchar temp_rgba[4] = {0,0,0,0}; guchar temp_rgba[4] = {0,0,0,0};
/* Make sure conversion supported */ /* Make sure conversion supported */
if (!_cogl_bitmap_fallback_can_convert (bmp->format, dst_format)) if (!_cogl_bitmap_fallback_can_convert (bmp->format, dst_format))
return FALSE; return FALSE;
src_bpp = _cogl_get_format_bpp (bmp->format); src_bpp = _cogl_get_format_bpp (bmp->format);
dst_bpp = _cogl_get_format_bpp (dst_format); dst_bpp = _cogl_get_format_bpp (dst_format);
@ -237,18 +235,18 @@ _cogl_bitmap_fallback_convert (const CoglBitmap *bmp,
dst_bmp->rowstride = sizeof(guchar) * dst_bpp * dst_bmp->width; dst_bmp->rowstride = sizeof(guchar) * dst_bpp * dst_bmp->width;
dst_bmp->format = ((bmp->format & COGL_PREMULT_BIT) | dst_bmp->format = ((bmp->format & COGL_PREMULT_BIT) |
(dst_format & COGL_UNPREMULT_MASK)); (dst_format & COGL_UNPREMULT_MASK));
/* Allocate a new buffer to hold converted data */ /* Allocate a new buffer to hold converted data */
dst_bmp->data = g_malloc (sizeof(guchar) dst_bmp->data = g_malloc (sizeof(guchar)
* dst_bmp->height * dst_bmp->height
* dst_bmp->rowstride); * dst_bmp->rowstride);
/* FIXME: Optimize */ /* FIXME: Optimize */
for (y = 0; y < bmp->height; y++) for (y = 0; y < bmp->height; y++)
{ {
src = (guchar*)bmp->data + y * bmp->rowstride; src = (guchar*)bmp->data + y * bmp->rowstride;
dst = (guchar*)dst_bmp->data + y * dst_bmp->rowstride; dst = (guchar*)dst_bmp->data + y * dst_bmp->rowstride;
for (x = 0; x < bmp->width; x++) for (x = 0; x < bmp->width; x++)
{ {
/* FIXME: Would be nice to at least remove this inner /* FIXME: Would be nice to at least remove this inner
@ -273,7 +271,7 @@ _cogl_bitmap_fallback_convert (const CoglBitmap *bmp,
default: default:
break; break;
} }
switch (dst_format & COGL_UNPREMULT_MASK) switch (dst_format & COGL_UNPREMULT_MASK)
{ {
case COGL_PIXEL_FORMAT_G_8: case COGL_PIXEL_FORMAT_G_8:
@ -293,12 +291,12 @@ _cogl_bitmap_fallback_convert (const CoglBitmap *bmp,
default: default:
break; break;
} }
src += src_bpp; src += src_bpp;
dst += dst_bpp; dst += dst_bpp;
} }
} }
return TRUE; return TRUE;
} }
@ -310,28 +308,28 @@ _cogl_bitmap_fallback_unpremult (const CoglBitmap *bmp,
guchar *dst; guchar *dst;
gint bpp; gint bpp;
gint x,y; gint x,y;
/* Make sure format supported for un-premultiplication */ /* Make sure format supported for un-premultiplication */
if (!_cogl_bitmap_fallback_can_unpremult (bmp->format)) if (!_cogl_bitmap_fallback_can_unpremult (bmp->format))
return FALSE; return FALSE;
bpp = _cogl_get_format_bpp (bmp->format); bpp = _cogl_get_format_bpp (bmp->format);
/* Initialize destination bitmap */ /* Initialize destination bitmap */
*dst_bmp = *bmp; *dst_bmp = *bmp;
dst_bmp->format = (bmp->format & COGL_UNPREMULT_MASK); dst_bmp->format = (bmp->format & COGL_UNPREMULT_MASK);
/* Allocate a new buffer to hold converted data */ /* Allocate a new buffer to hold converted data */
dst_bmp->data = g_malloc (sizeof(guchar) dst_bmp->data = g_malloc (sizeof(guchar)
* dst_bmp->height * dst_bmp->height
* dst_bmp->rowstride); * dst_bmp->rowstride);
/* FIXME: Optimize */ /* FIXME: Optimize */
for (y = 0; y < bmp->height; y++) for (y = 0; y < bmp->height; y++)
{ {
src = (guchar*)bmp->data + y * bmp->rowstride; src = (guchar*)bmp->data + y * bmp->rowstride;
dst = (guchar*)dst_bmp->data + y * dst_bmp->rowstride; dst = (guchar*)dst_bmp->data + y * dst_bmp->rowstride;
for (x = 0; x < bmp->width; x++) for (x = 0; x < bmp->width; x++)
{ {
/* FIXME: Would be nice to at least remove this inner /* FIXME: Would be nice to at least remove this inner
@ -351,12 +349,12 @@ _cogl_bitmap_fallback_unpremult (const CoglBitmap *bmp,
else else
_cogl_unpremult_alpha_last (src, dst); _cogl_unpremult_alpha_last (src, dst);
} }
src += bpp; src += bpp;
dst += bpp; dst += bpp;
} }
} }
return TRUE; return TRUE;
} }

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -222,7 +220,7 @@ _cogl_bitmap_from_file (CoglBitmap *bmp,
guchar *out_data; guchar *out_data;
guchar *out; guchar *out;
gint r; gint r;
g_return_val_if_fail (error == NULL || *error == NULL, FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
if (bmp == NULL) if (bmp == NULL)
@ -232,7 +230,7 @@ _cogl_bitmap_from_file (CoglBitmap *bmp,
pixbuf = gdk_pixbuf_new_from_file (filename, error); pixbuf = gdk_pixbuf_new_from_file (filename, error);
if (pixbuf == NULL) if (pixbuf == NULL)
return FALSE; return FALSE;
/* Get pixbuf properties */ /* Get pixbuf properties */
has_alpha = gdk_pixbuf_get_has_alpha (pixbuf); has_alpha = gdk_pixbuf_get_has_alpha (pixbuf);
color_space = gdk_pixbuf_get_colorspace (pixbuf); color_space = gdk_pixbuf_get_colorspace (pixbuf);
@ -241,10 +239,10 @@ _cogl_bitmap_from_file (CoglBitmap *bmp,
rowstride = gdk_pixbuf_get_rowstride (pixbuf); rowstride = gdk_pixbuf_get_rowstride (pixbuf);
bits_per_sample = gdk_pixbuf_get_bits_per_sample (pixbuf); bits_per_sample = gdk_pixbuf_get_bits_per_sample (pixbuf);
n_channels = gdk_pixbuf_get_n_channels (pixbuf); n_channels = gdk_pixbuf_get_n_channels (pixbuf);
/* The docs say this is the right way */ /* The docs say this is the right way */
last_row_size = width * ((n_channels * bits_per_sample + 7) / 8); last_row_size = width * ((n_channels * bits_per_sample + 7) / 8);
/* According to current docs this should be true and so /* According to current docs this should be true and so
* the translation to cogl pixel format below valid */ * the translation to cogl pixel format below valid */
g_assert (bits_per_sample == 8); g_assert (bits_per_sample == 8);
@ -253,7 +251,7 @@ _cogl_bitmap_from_file (CoglBitmap *bmp,
g_assert (n_channels == 4); g_assert (n_channels == 4);
else else
g_assert (n_channels == 3); g_assert (n_channels == 3);
/* Translate to cogl pixel format */ /* Translate to cogl pixel format */
switch (color_space) switch (color_space)
{ {
@ -263,19 +261,19 @@ _cogl_bitmap_from_file (CoglBitmap *bmp,
COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGBA_8888 :
COGL_PIXEL_FORMAT_RGB_888; COGL_PIXEL_FORMAT_RGB_888;
break; break;
default: default:
/* Ouch, spec changed! */ /* Ouch, spec changed! */
g_object_unref (pixbuf); g_object_unref (pixbuf);
return FALSE; return FALSE;
} }
/* FIXME: Any way to destroy pixbuf but retain pixel data? */ /* FIXME: Any way to destroy pixbuf but retain pixel data? */
pixels = gdk_pixbuf_get_pixels (pixbuf); pixels = gdk_pixbuf_get_pixels (pixbuf);
out_data = (guchar*) g_malloc (height * rowstride); out_data = (guchar*) g_malloc (height * rowstride);
out = out_data; out = out_data;
/* Copy up to last row */ /* Copy up to last row */
for (r = 0; r < height-1; ++r) for (r = 0; r < height-1; ++r)
{ {
@ -283,13 +281,13 @@ _cogl_bitmap_from_file (CoglBitmap *bmp,
pixels += rowstride; pixels += rowstride;
out += rowstride; out += rowstride;
} }
/* Copy last row */ /* Copy last row */
memcpy (out, pixels, last_row_size); memcpy (out, pixels, last_row_size);
/* Destroy GdkPixbuf object */ /* Destroy GdkPixbuf object */
g_object_unref (pixbuf); g_object_unref (pixbuf);
/* Store bitmap info */ /* Store bitmap info */
bmp->data = out_data; /* The stored data the same alignment constraints as a bmp->data = out_data; /* The stored data the same alignment constraints as a
* gdkpixbuf but stores a full rowstride in the last * gdkpixbuf but stores a full rowstride in the last
@ -299,7 +297,7 @@ _cogl_bitmap_from_file (CoglBitmap *bmp,
bmp->width = width; bmp->width = width;
bmp->height = height; bmp->height = height;
bmp->rowstride = rowstride; bmp->rowstride = rowstride;
return TRUE; return TRUE;
} }
@ -335,14 +333,14 @@ _cogl_bitmap_from_file (CoglBitmap *bmp,
if (bmp == NULL) if (bmp == NULL)
return FALSE; return FALSE;
/* Load from file using stb */ /* Load from file using stb */
pixels = stbi_load (filename, pixels = stbi_load (filename,
&width, &height, &stb_pixel_format, &width, &height, &stb_pixel_format,
STBI_rgb_alpha); STBI_rgb_alpha);
if (pixels == NULL) if (pixels == NULL)
return FALSE; return FALSE;
/* Store bitmap info */ /* Store bitmap info */
bmp->data = g_memdup (pixels, height * width * 4); bmp->data = g_memdup (pixels, height * width * 4);
bmp->format = COGL_PIXEL_FORMAT_RGBA_8888; bmp->format = COGL_PIXEL_FORMAT_RGBA_8888;

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -47,7 +45,7 @@ _cogl_get_format_bpp (CoglPixelFormat format)
2, /* YUV */ 2, /* YUV */
1 /* G_8 */ 1 /* G_8 */
}; };
return bpp_lut [format & COGL_UNORDERED_MASK]; return bpp_lut [format & COGL_UNORDERED_MASK];
} }
@ -59,7 +57,7 @@ _cogl_bitmap_convert_and_premult (const CoglBitmap *bmp,
CoglBitmap tmp_bmp = *bmp; CoglBitmap tmp_bmp = *bmp;
CoglBitmap new_bmp = *bmp; CoglBitmap new_bmp = *bmp;
gboolean new_bmp_owner = FALSE; gboolean new_bmp_owner = FALSE;
/* Is base format different (not considering premult status)? */ /* Is base format different (not considering premult status)? */
if ((bmp->format & COGL_UNPREMULT_MASK) != if ((bmp->format & COGL_UNPREMULT_MASK) !=
(dst_format & COGL_UNPREMULT_MASK)) (dst_format & COGL_UNPREMULT_MASK))
@ -71,12 +69,12 @@ _cogl_bitmap_convert_and_premult (const CoglBitmap *bmp,
if (!_cogl_bitmap_fallback_convert (&new_bmp, &tmp_bmp, dst_format)) if (!_cogl_bitmap_fallback_convert (&new_bmp, &tmp_bmp, dst_format))
return FALSE; return FALSE;
} }
/* Update bitmap with new data */ /* Update bitmap with new data */
new_bmp = tmp_bmp; new_bmp = tmp_bmp;
new_bmp_owner = TRUE; new_bmp_owner = TRUE;
} }
/* Do we need to unpremultiply */ /* Do we need to unpremultiply */
if ((bmp->format & COGL_PREMULT_BIT) == 0 && if ((bmp->format & COGL_PREMULT_BIT) == 0 &&
(dst_format & COGL_PREMULT_BIT) > 0) (dst_format & COGL_PREMULT_BIT) > 0)
@ -89,19 +87,19 @@ _cogl_bitmap_convert_and_premult (const CoglBitmap *bmp,
{ {
if (new_bmp_owner) if (new_bmp_owner)
g_free (new_bmp.data); g_free (new_bmp.data);
return FALSE; return FALSE;
} }
} }
/* Update bitmap with new data */ /* Update bitmap with new data */
if (new_bmp_owner) if (new_bmp_owner)
g_free (new_bmp.data); g_free (new_bmp.data);
new_bmp = tmp_bmp; new_bmp = tmp_bmp;
new_bmp_owner = TRUE; new_bmp_owner = TRUE;
} }
/* Do we need to premultiply */ /* Do we need to premultiply */
if ((bmp->format & COGL_PREMULT_BIT) > 0 && if ((bmp->format & COGL_PREMULT_BIT) > 0 &&
(dst_format & COGL_PREMULT_BIT) == 0) (dst_format & COGL_PREMULT_BIT) == 0)
@ -109,13 +107,13 @@ _cogl_bitmap_convert_and_premult (const CoglBitmap *bmp,
/* FIXME: implement premultiplication */ /* FIXME: implement premultiplication */
if (new_bmp_owner) if (new_bmp_owner)
g_free (new_bmp.data); g_free (new_bmp.data);
return FALSE; return FALSE;
} }
/* Output new bitmap info */ /* Output new bitmap info */
*dst_bmp = new_bmp; *dst_bmp = new_bmp;
return TRUE; return TRUE;
} }
@ -133,14 +131,14 @@ _cogl_bitmap_copy_subregion (CoglBitmap *src,
guchar *dstdata; guchar *dstdata;
gint bpp; gint bpp;
gint line; gint line;
/* Intended only for fast copies when format is equal! */ /* Intended only for fast copies when format is equal! */
g_assert (src->format == dst->format); g_assert (src->format == dst->format);
bpp = _cogl_get_format_bpp (src->format); bpp = _cogl_get_format_bpp (src->format);
srcdata = src->data + src_y * src->rowstride + src_x * bpp; srcdata = src->data + src_y * src->rowstride + src_x * bpp;
dstdata = dst->data + dst_y * dst->rowstride + dst_x * bpp; dstdata = dst->data + dst_y * dst->rowstride + dst_x * bpp;
for (line=0; line<height; ++line) for (line=0; line<height; ++line)
{ {
memcpy (dstdata, srcdata, width * bpp); memcpy (dstdata, srcdata, width * bpp);
@ -162,7 +160,7 @@ cogl_bitmap_new_from_file (const gchar *filename,
GError **error) GError **error)
{ {
CoglBitmap bmp; CoglBitmap bmp;
g_return_val_if_fail (error == NULL || *error == NULL, COGL_INVALID_HANDLE); g_return_val_if_fail (error == NULL || *error == NULL, COGL_INVALID_HANDLE);
/* Try loading with imaging backend */ /* Try loading with imaging backend */
@ -177,7 +175,7 @@ cogl_bitmap_new_from_file (const gchar *filename,
*error = NULL; *error = NULL;
} }
} }
return (CoglBitmap *) g_memdup (&bmp, sizeof (CoglBitmap)); return (CoglBitmap *) g_memdup (&bmp, sizeof (CoglBitmap));
} }

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,3 +1,26 @@
/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2008,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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Havoc Pennington <hp@pobox.com> for litl * Copyright (C) 2009 Intel Corporation.
*
* Copyright (C) 2009 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -21,6 +19,9 @@
* License along with this library; if not, write to the * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*
* Authors:
* Havoc Pennington <hp@pobox.com> for litl
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Havoc Pennington <hp@pobox.com> for litl * Copyright (C) 2009 Intel Corporation.
*
* Copyright (C) 2009 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -21,6 +19,9 @@
* License along with this library; if not, write to the * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*
* Authors:
* Havoc Pennington <hp@pobox.com> for litl
*/ */
#ifndef __COGL_CURRENT_MATRIX_H #ifndef __COGL_CURRENT_MATRIX_H

View File

@ -1,3 +1,26 @@
/*
* 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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif

View File

@ -1,3 +1,26 @@
/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2007,2008,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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#define G_IMPLEMENT_INLINES #define G_IMPLEMENT_INLINES
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,10 +1,9 @@
/* /*
* Cogl * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Copyright (C) 2007, 2008 OpenedHand * Copyright (C) 2007,2008,2009 Intel Corporation.
* Copyright (C) 2009 Intel Corp.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,3 +1,29 @@
/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2008,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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Authors:
* Robert Bragg <robert@linux.intel.com>
*/
#ifndef __COGL_MATERIAL_PRIVATE_H #ifndef __COGL_MATERIAL_PRIVATE_H
#define __COGL_MATERIAL_PRIVATE_H #define __COGL_MATERIAL_PRIVATE_H

View File

@ -1,3 +1,28 @@
/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2008,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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Authors:
* Robert Bragg <robert@linux.intel.com>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Havoc Pennington <hp@pobox.com> for litl * Copyright (C) 2009 Intel Corporation.
*
* Copyright (C) 2009 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -21,6 +19,9 @@
* License along with this library; if not, write to the * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*
* Authors:
* Havoc Pennington <hp@pobox.com> for litl
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Havoc Pennington <hp@pobox.com> for litl * Copyright (C) 2009 Intel Corporation.
*
* Copyright (C) 2009 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -21,6 +19,9 @@
* License along with this library; if not, write to the * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*
* Authors:
* Havoc Pennington <hp@pobox.com> for litl
*/ */
#ifndef __COGL_MATRIX_STACK_H #ifndef __COGL_MATRIX_STACK_H

View File

@ -1,3 +1,29 @@
/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2008,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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Authors:
* Robert Bragg <robert@linux.intel.com>
*/
#include <cogl-matrix.h> #include <cogl-matrix.h>
#include <glib.h> #include <glib.h>

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -1322,9 +1320,9 @@ cogl_path_fill_preserve (void)
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
cogl_clip_ensure (); cogl_clip_ensure ();
if (ctx->path_nodes->len == 0) if (ctx->path_nodes->len == 0)
return; return;
_cogl_path_fill_nodes (); _cogl_path_fill_nodes ();
} }
@ -1341,12 +1339,12 @@ void
cogl_path_stroke_preserve (void) cogl_path_stroke_preserve (void)
{ {
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
cogl_clip_ensure (); cogl_clip_ensure ();
if (ctx->path_nodes->len == 0) if (ctx->path_nodes->len == 0)
return; return;
_cogl_path_stroke_nodes(); _cogl_path_stroke_nodes();
} }
@ -1355,14 +1353,14 @@ cogl_path_move_to (float x,
float y) float y)
{ {
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
/* FIXME: handle multiple contours maybe? */ /* FIXME: handle multiple contours maybe? */
_cogl_path_add_node (TRUE, x, y); _cogl_path_add_node (TRUE, x, y);
ctx->path_start.x = x; ctx->path_start.x = x;
ctx->path_start.y = y; ctx->path_start.y = y;
ctx->path_pen = ctx->path_start; ctx->path_pen = ctx->path_start;
} }
@ -1371,7 +1369,7 @@ cogl_path_rel_move_to (float x,
float y) float y)
{ {
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
cogl_path_move_to (ctx->path_pen.x + x, cogl_path_move_to (ctx->path_pen.x + x,
ctx->path_pen.y + y); ctx->path_pen.y + y);
} }
@ -1381,9 +1379,9 @@ cogl_path_line_to (float x,
float y) float y)
{ {
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
_cogl_path_add_node (FALSE, x, y); _cogl_path_add_node (FALSE, x, y);
ctx->path_pen.x = x; ctx->path_pen.x = x;
ctx->path_pen.y = y; ctx->path_pen.y = y;
} }
@ -1393,7 +1391,7 @@ cogl_path_rel_line_to (float x,
float y) float y)
{ {
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
cogl_path_line_to (ctx->path_pen.x + x, cogl_path_line_to (ctx->path_pen.x + x,
ctx->path_pen.y + y); ctx->path_pen.y + y);
} }
@ -1402,7 +1400,7 @@ void
cogl_path_close (void) cogl_path_close (void)
{ {
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
_cogl_path_add_node (FALSE, ctx->path_start.x, ctx->path_start.y); _cogl_path_add_node (FALSE, ctx->path_start.x, ctx->path_start.y);
ctx->path_pen = ctx->path_start; ctx->path_pen = ctx->path_start;
} }
@ -1430,9 +1428,9 @@ cogl_path_polyline (float *coords,
gint num_points) gint num_points)
{ {
gint c = 0; gint c = 0;
cogl_path_move_to (coords[0], coords[1]); cogl_path_move_to (coords[0], coords[1]);
for (c = 1; c < num_points; ++c) for (c = 1; c < num_points; ++c)
cogl_path_line_to (coords[2*c], coords[2*c+1]); cogl_path_line_to (coords[2*c], coords[2*c+1]);
} }
@ -1473,17 +1471,17 @@ _cogl_path_arc (float center_x,
float sina = 0x0; float sina = 0x0;
float px = 0x0; float px = 0x0;
float py = 0x0; float py = 0x0;
/* Fix invalid angles */ /* Fix invalid angles */
if (angle_1 == angle_2 || angle_step == 0x0) if (angle_1 == angle_2 || angle_step == 0x0)
return; return;
if (angle_step < 0x0) if (angle_step < 0x0)
angle_step = -angle_step; angle_step = -angle_step;
/* Walk the arc by given step */ /* Walk the arc by given step */
a = angle_1; a = angle_1;
while (a != angle_2) while (a != angle_2)
{ {
@ -1492,12 +1490,12 @@ _cogl_path_arc (float center_x,
px = center_x + (cosa * radius_x); px = center_x + (cosa * radius_x);
py = center_y + (sina * radius_y); py = center_y + (sina * radius_y);
if (a == angle_1 && move_first) if (a == angle_1 && move_first)
cogl_path_move_to (px, py); cogl_path_move_to (px, py);
else else
cogl_path_line_to (px, py); cogl_path_line_to (px, py);
if (G_LIKELY (angle_2 > angle_1)) if (G_LIKELY (angle_2 > angle_1))
{ {
a += angle_step; a += angle_step;
@ -1513,7 +1511,7 @@ _cogl_path_arc (float center_x,
} }
/* Make sure the final point is drawn */ /* Make sure the final point is drawn */
cosa = cosf (angle_2 * (G_PI/180.0)); cosa = cosf (angle_2 * (G_PI/180.0));
sina = sinf (angle_2 * (G_PI/180.0)); sina = sinf (angle_2 * (G_PI/180.0));
@ -1530,7 +1528,7 @@ cogl_path_arc (float center_x,
float radius_y, float radius_y,
float angle_1, float angle_1,
float angle_2) float angle_2)
{ {
float angle_step = 10; float angle_step = 10;
/* it is documented that a move to is needed to create a freestanding /* it is documented that a move to is needed to create a freestanding
* arc * arc
@ -1552,7 +1550,7 @@ cogl_path_arc_rel (float center_x,
float angle_step) float angle_step)
{ {
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
_cogl_path_arc (ctx->path_pen.x + center_x, _cogl_path_arc (ctx->path_pen.x + center_x,
ctx->path_pen.y + center_y, ctx->path_pen.y + center_y,
radius_x, radius_y, radius_x, radius_y,
@ -1567,15 +1565,15 @@ cogl_path_ellipse (float center_x,
float radius_y) float radius_y)
{ {
float angle_step = 10; float angle_step = 10;
/* FIXME: if shows to be slow might be optimized /* FIXME: if shows to be slow might be optimized
* by mirroring just a quarter of it */ * by mirroring just a quarter of it */
_cogl_path_arc (center_x, center_y, _cogl_path_arc (center_x, center_y,
radius_x, radius_y, radius_x, radius_y,
0, 360, 0, 360,
angle_step, 1 /* move first */); angle_step, 1 /* move first */);
cogl_path_close(); cogl_path_close();
} }
@ -1589,7 +1587,7 @@ cogl_path_round_rectangle (float x_1,
{ {
float inner_width = x_2 - x_1 - radius * 2; float inner_width = x_2 - x_1 - radius * 2;
float inner_height = y_2 - y_1 - radius * 2; float inner_height = y_2 - y_1 - radius * 2;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
cogl_path_move_to (x_1, y_1 + radius); cogl_path_move_to (x_1, y_1 + radius);
@ -1598,7 +1596,7 @@ cogl_path_round_rectangle (float x_1,
180, 180,
270, 270,
arc_step); arc_step);
cogl_path_line_to (ctx->path_pen.x + inner_width, cogl_path_line_to (ctx->path_pen.x + inner_width,
ctx->path_pen.y); ctx->path_pen.y);
cogl_path_arc_rel (0, radius, cogl_path_arc_rel (0, radius,
@ -1606,7 +1604,7 @@ cogl_path_round_rectangle (float x_1,
-90, -90,
0, 0,
arc_step); arc_step);
cogl_path_line_to (ctx->path_pen.x, cogl_path_line_to (ctx->path_pen.x,
ctx->path_pen.y + inner_height); ctx->path_pen.y + inner_height);
@ -1615,7 +1613,7 @@ cogl_path_round_rectangle (float x_1,
0, 0,
90, 90,
arc_step); arc_step);
cogl_path_line_to (ctx->path_pen.x - inner_width, cogl_path_line_to (ctx->path_pen.x - inner_width,
ctx->path_pen.y); ctx->path_pen.y);
cogl_path_arc_rel (0, -radius, cogl_path_arc_rel (0, -radius,
@ -1623,7 +1621,7 @@ cogl_path_round_rectangle (float x_1,
90, 90,
180, 180,
arc_step); arc_step);
cogl_path_close (); cogl_path_close ();
} }
@ -1644,16 +1642,16 @@ _cogl_path_bezier3_sub (CoglBezCubic *cubic)
floatVec2 c4; floatVec2 c4;
floatVec2 c5; floatVec2 c5;
gint cindex; gint cindex;
/* Put first curve on stack */ /* Put first curve on stack */
cubics[0] = *cubic; cubics[0] = *cubic;
cindex = 0; cindex = 0;
while (cindex >= 0) while (cindex >= 0)
{ {
c = &cubics[cindex]; c = &cubics[cindex];
/* Calculate distance of control points from their /* Calculate distance of control points from their
* counterparts on the line between end points */ * counterparts on the line between end points */
dif1.x = (c->p2.x * 3) - (c->p1.x * 2) - c->p4.x; dif1.x = (c->p2.x * 3) - (c->p1.x * 2) - c->p4.x;
@ -1669,12 +1667,12 @@ _cogl_path_bezier3_sub (CoglBezCubic *cubic)
dif2.x = -dif2.x; dif2.x = -dif2.x;
if (dif2.y < 0) if (dif2.y < 0)
dif2.y = -dif2.y; dif2.y = -dif2.y;
/* Pick the greatest of two distances */ /* Pick the greatest of two distances */
if (dif1.x < dif2.x) dif1.x = dif2.x; if (dif1.x < dif2.x) dif1.x = dif2.x;
if (dif1.y < dif2.y) dif1.y = dif2.y; if (dif1.y < dif2.y) dif1.y = dif2.y;
/* Cancel if the curve is flat enough */ /* Cancel if the curve is flat enough */
if (dif1.x + dif1.y <= 1.0 || if (dif1.x + dif1.y <= 1.0 ||
cindex == _COGL_MAX_BEZ_RECURSE_DEPTH-1) cindex == _COGL_MAX_BEZ_RECURSE_DEPTH-1)
@ -1689,10 +1687,10 @@ _cogl_path_bezier3_sub (CoglBezCubic *cubic)
continue; continue;
} }
/* Left recursion goes on top of stack! */ /* Left recursion goes on top of stack! */
cright = c; cleft = &cubics[++cindex]; cright = c; cleft = &cubics[++cindex];
/* Subdivide into 2 sub-curves */ /* Subdivide into 2 sub-curves */
c1.x = ((c->p1.x + c->p2.x) / 2); c1.x = ((c->p1.x + c->p2.x) / 2);
c1.y = ((c->p1.y + c->p2.y) / 2); c1.y = ((c->p1.y + c->p2.y) / 2);
@ -1700,21 +1698,21 @@ _cogl_path_bezier3_sub (CoglBezCubic *cubic)
mm.y = ((c->p2.y + c->p3.y) / 2); mm.y = ((c->p2.y + c->p3.y) / 2);
c5.x = ((c->p3.x + c->p4.x) / 2); c5.x = ((c->p3.x + c->p4.x) / 2);
c5.y = ((c->p3.y + c->p4.y) / 2); c5.y = ((c->p3.y + c->p4.y) / 2);
c2.x = ((c1.x + mm.x) / 2); c2.x = ((c1.x + mm.x) / 2);
c2.y = ((c1.y + mm.y) / 2); c2.y = ((c1.y + mm.y) / 2);
c4.x = ((mm.x + c5.x) / 2); c4.x = ((mm.x + c5.x) / 2);
c4.y = ((mm.y + c5.y) / 2); c4.y = ((mm.y + c5.y) / 2);
c3.x = ((c2.x + c4.x) / 2); c3.x = ((c2.x + c4.x) / 2);
c3.y = ((c2.y + c4.y) / 2); c3.y = ((c2.y + c4.y) / 2);
/* Add left recursion to stack */ /* Add left recursion to stack */
cleft->p1 = c->p1; cleft->p1 = c->p1;
cleft->p2 = c1; cleft->p2 = c1;
cleft->p3 = c2; cleft->p3 = c2;
cleft->p4 = c3; cleft->p4 = c3;
/* Add right recursion to stack */ /* Add right recursion to stack */
cright->p1 = c3; cright->p1 = c3;
cright->p2 = c4; cright->p2 = c4;
@ -1761,7 +1759,7 @@ cogl_path_rel_curve_to (float x_1,
float y_3) float y_3)
{ {
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
cogl_path_curve_to (ctx->path_pen.x + x_1, cogl_path_curve_to (ctx->path_pen.x + x_1,
ctx->path_pen.y + y_1, ctx->path_pen.y + y_1,
ctx->path_pen.x + x_2, ctx->path_pen.x + x_2,
@ -1789,17 +1787,17 @@ _cogl_path_bezier2_sub (CoglBezQuad *quad)
floatVec2 c2; floatVec2 c2;
floatVec2 c3; floatVec2 c3;
gint qindex; gint qindex;
/* Put first curve on stack */ /* Put first curve on stack */
quads[0] = *quad; quads[0] = *quad;
qindex = 0; qindex = 0;
/* While stack is not empty */ /* While stack is not empty */
while (qindex >= 0) while (qindex >= 0)
{ {
q = &quads[qindex]; q = &quads[qindex];
/* Calculate distance of control point from its /* Calculate distance of control point from its
* counterpart on the line between end points */ * counterpart on the line between end points */
mid.x = ((q->p1.x + q->p3.x) / 2); mid.x = ((q->p1.x + q->p3.x) / 2);
@ -1808,7 +1806,7 @@ _cogl_path_bezier2_sub (CoglBezQuad *quad)
dif.y = (q->p2.y - mid.y); dif.y = (q->p2.y - mid.y);
if (dif.x < 0) dif.x = -dif.x; if (dif.x < 0) dif.x = -dif.x;
if (dif.y < 0) dif.y = -dif.y; if (dif.y < 0) dif.y = -dif.y;
/* Cancel if the curve is flat enough */ /* Cancel if the curve is flat enough */
if (dif.x + dif.y <= 1.0 || if (dif.x + dif.y <= 1.0 ||
qindex == _COGL_MAX_BEZ_RECURSE_DEPTH - 1) qindex == _COGL_MAX_BEZ_RECURSE_DEPTH - 1)
@ -1818,10 +1816,10 @@ _cogl_path_bezier2_sub (CoglBezQuad *quad)
_cogl_path_add_node (FALSE, q->p3.x, q->p3.y); _cogl_path_add_node (FALSE, q->p3.x, q->p3.y);
--qindex; continue; --qindex; continue;
} }
/* Left recursion goes on top of stack! */ /* Left recursion goes on top of stack! */
qright = q; qleft = &quads[++qindex]; qright = q; qleft = &quads[++qindex];
/* Subdivide into 2 sub-curves */ /* Subdivide into 2 sub-curves */
c1.x = ((q->p1.x + q->p2.x) / 2); c1.x = ((q->p1.x + q->p2.x) / 2);
c1.y = ((q->p1.y + q->p2.y) / 2); c1.y = ((q->p1.y + q->p2.y) / 2);
@ -1829,12 +1827,12 @@ _cogl_path_bezier2_sub (CoglBezQuad *quad)
c3.y = ((q->p2.y + q->p3.y) / 2); c3.y = ((q->p2.y + q->p3.y) / 2);
c2.x = ((c1.x + c3.x) / 2); c2.x = ((c1.x + c3.x) / 2);
c2.y = ((c1.y + c3.y) / 2); c2.y = ((c1.y + c3.y) / 2);
/* Add left recursion onto stack */ /* Add left recursion onto stack */
qleft->p1 = q->p1; qleft->p1 = q->p1;
qleft->p2 = c1; qleft->p2 = c1;
qleft->p3 = c2; qleft->p3 = c2;
/* Add right recursion onto stack */ /* Add right recursion onto stack */
qright->p1 = c2; qright->p1 = c2;
qright->p2 = c3; qright->p2 = c3;
@ -1861,7 +1859,7 @@ cogl_path_curve2_to (float x_1,
/* Run subdivision */ /* Run subdivision */
_cogl_path_bezier2_sub (&quad); _cogl_path_bezier2_sub (&quad);
/* Add last point */ /* Add last point */
_cogl_path_add_node (FALSE, quad.p3.x, quad.p3.y); _cogl_path_add_node (FALSE, quad.p3.x, quad.p3.y);
ctx->path_pen = quad.p3; ctx->path_pen = quad.p3;

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,18 +1,14 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By: Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
* Emmanuele Bassi <ebassi@linux.intel.com>
*
* Copyright (C) 2007, 2008 OpenedHand
* Copyright (C) 2009 Intel Corp.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.
* *
* This library is distributed in the hope that it will be useful, * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -20,7 +16,9 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -26,7 +24,7 @@
#ifndef __COGL_UTIL_H #ifndef __COGL_UTIL_H
#define __COGL_UTIL_H #define __COGL_UTIL_H
int int
cogl_util_next_p2 (int a); cogl_util_next_p2 (int a);
#endif /* __COGL_UTIL_H */ #endif /* __COGL_UTIL_H */

View File

@ -1,11 +1,9 @@
/* /*
* Cogl. * Cogl
* *
* An OpenGL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Copyright (C) 2008 Intel Corporation. * Copyright (C) 2008,2009 Intel Corporation.
*
* Authored By: Robert Bragg <robert@linux.intel.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -18,7 +16,12 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Authors:
* Robert Bragg <robert@linux.intel.com>
*/ */
#ifndef __COGL_VERTEX_BUFFER_H #ifndef __COGL_VERTEX_BUFFER_H

View File

@ -1,13 +1,9 @@
/* /*
* Cogl. * Cogl
* *
* An OpenGL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Vertex Buffer API: Handle extensible arrays of vertex attributes * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008, 2009 Intel Corporation.
*
* Authored by: Robert Bragg <robert@linux.intel.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -20,7 +16,12 @@
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * 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/>. * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Authors:
* Robert Bragg <robert@linux.intel.com>
*/ */
/* XXX: For an overview of the functionality implemented here, please /* XXX: For an overview of the functionality implemented here, please

View File

@ -1,10 +1,9 @@
/* /*
* Cogl * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Copyright (C) 2007, 2008 OpenedHand * Copyright (C) 2007,2008,2009 Intel Corporation.
* Copyright (C) 2009 Intel Corp.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -865,26 +863,26 @@ typedef void
typedef void typedef void
(APIENTRYP COGL_PFNGLBINDBUFFERARBPROC) (APIENTRYP COGL_PFNGLBINDBUFFERARBPROC)
(GLenum target, (GLenum target,
GLuint buffer); GLuint buffer);
typedef void typedef void
(APIENTRYP COGL_PFNGLBUFFERDATAARBPROC) (APIENTRYP COGL_PFNGLBUFFERDATAARBPROC)
(GLenum target, (GLenum target,
GLsizeiptr size, GLsizeiptr size,
const GLvoid *data, const GLvoid *data,
GLenum usage); GLenum usage);
typedef void typedef void
(APIENTRYP COGL_PFNGLBUFFERSUBDATAARBPROC) (APIENTRYP COGL_PFNGLBUFFERSUBDATAARBPROC)
(GLenum target, (GLenum target,
GLintptr offset, GLintptr offset,
GLsizeiptr size, GLsizeiptr size,
const GLvoid *data); const GLvoid *data);
typedef void * typedef void *
(APIENTRYP COGL_PFNGLMAPBUFFERARBPROC) (APIENTRYP COGL_PFNGLMAPBUFFERARBPROC)
(GLenum target, (GLenum target,
GLenum access); GLenum access);
typedef GLboolean typedef GLboolean

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -71,25 +69,25 @@ cogl_offscreen_new_to_texture (CoglHandle texhandle)
GLuint fbo_gl_handle; GLuint fbo_gl_handle;
GLuint gl_stencil_handle; GLuint gl_stencil_handle;
GLenum status; GLenum status;
_COGL_GET_CONTEXT (ctx, COGL_INVALID_HANDLE); _COGL_GET_CONTEXT (ctx, COGL_INVALID_HANDLE);
if (!cogl_features_available (COGL_FEATURE_OFFSCREEN)) if (!cogl_features_available (COGL_FEATURE_OFFSCREEN))
return COGL_INVALID_HANDLE; return COGL_INVALID_HANDLE;
/* Make texhandle is a valid texture object */ /* Make texhandle is a valid texture object */
if (!cogl_is_texture (texhandle)) if (!cogl_is_texture (texhandle))
return COGL_INVALID_HANDLE; return COGL_INVALID_HANDLE;
tex = _cogl_texture_pointer_from_handle (texhandle); tex = _cogl_texture_pointer_from_handle (texhandle);
/* The texture must not be sliced */ /* The texture must not be sliced */
if (tex->slice_gl_handles == NULL) if (tex->slice_gl_handles == NULL)
return COGL_INVALID_HANDLE; return COGL_INVALID_HANDLE;
if (tex->slice_gl_handles->len != 1) if (tex->slice_gl_handles->len != 1)
return COGL_INVALID_HANDLE; return COGL_INVALID_HANDLE;
/* Pick the single texture slice width, height and GL id */ /* Pick the single texture slice width, height and GL id */
x_span = &g_array_index (tex->slice_x_spans, CoglTexSliceSpan, 0); x_span = &g_array_index (tex->slice_x_spans, CoglTexSliceSpan, 0);
y_span = &g_array_index (tex->slice_y_spans, CoglTexSliceSpan, 0); y_span = &g_array_index (tex->slice_y_spans, CoglTexSliceSpan, 0);
@ -111,10 +109,10 @@ cogl_offscreen_new_to_texture (CoglHandle texhandle)
GE( glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GE( glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT,
GL_STENCIL_ATTACHMENT_EXT, GL_STENCIL_ATTACHMENT_EXT,
GL_RENDERBUFFER_EXT, gl_stencil_handle) ); GL_RENDERBUFFER_EXT, gl_stencil_handle) );
/* Make sure it's complete */ /* Make sure it's complete */
status = glCheckFramebufferStatusEXT (GL_FRAMEBUFFER_EXT); status = glCheckFramebufferStatusEXT (GL_FRAMEBUFFER_EXT);
if (status != GL_FRAMEBUFFER_COMPLETE_EXT) if (status != GL_FRAMEBUFFER_COMPLETE_EXT)
{ {
/* Stencil renderbuffers aren't always supported. Try again /* Stencil renderbuffers aren't always supported. Try again
@ -125,9 +123,9 @@ cogl_offscreen_new_to_texture (CoglHandle texhandle)
0) ); 0) );
GE( glDeleteRenderbuffersEXT (1, &gl_stencil_handle) ); GE( glDeleteRenderbuffersEXT (1, &gl_stencil_handle) );
gl_stencil_handle = 0; gl_stencil_handle = 0;
status = glCheckFramebufferStatusEXT (GL_FRAMEBUFFER_EXT); status = glCheckFramebufferStatusEXT (GL_FRAMEBUFFER_EXT);
if (status != GL_FRAMEBUFFER_COMPLETE_EXT) if (status != GL_FRAMEBUFFER_COMPLETE_EXT)
{ {
/* Still failing, so give up */ /* Still failing, so give up */
@ -136,9 +134,9 @@ cogl_offscreen_new_to_texture (CoglHandle texhandle)
return COGL_INVALID_HANDLE; return COGL_INVALID_HANDLE;
} }
} }
GE( glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0) ); GE( glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0) );
/* Allocate and init a CoglFbo object (store non-wasted size /* Allocate and init a CoglFbo object (store non-wasted size
for subsequent blits and viewport setup) */ for subsequent blits and viewport setup) */
fbo = (CoglFbo*) g_malloc (sizeof (CoglFbo)); fbo = (CoglFbo*) g_malloc (sizeof (CoglFbo));
@ -155,7 +153,7 @@ cogl_offscreen_new_multisample ()
{ {
if (!cogl_features_available (COGL_FEATURE_OFFSCREEN_MULTISAMPLE)) if (!cogl_features_available (COGL_FEATURE_OFFSCREEN_MULTISAMPLE))
return COGL_INVALID_HANDLE; return COGL_INVALID_HANDLE;
return COGL_INVALID_HANDLE; return COGL_INVALID_HANDLE;
} }
@ -186,22 +184,22 @@ cogl_offscreen_blit_region (CoglHandle src_buffer,
{ {
CoglFbo *src_fbo; CoglFbo *src_fbo;
CoglFbo *dst_fbo; CoglFbo *dst_fbo;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (!cogl_features_available (COGL_FEATURE_OFFSCREEN_BLIT)) if (!cogl_features_available (COGL_FEATURE_OFFSCREEN_BLIT))
return; return;
/* Make sure these are valid fbo handles */ /* Make sure these are valid fbo handles */
if (!cogl_is_offscreen (src_buffer)) if (!cogl_is_offscreen (src_buffer))
return; return;
if (!cogl_is_offscreen (dst_buffer)) if (!cogl_is_offscreen (dst_buffer))
return; return;
src_fbo = _cogl_offscreen_pointer_from_handle (src_buffer); src_fbo = _cogl_offscreen_pointer_from_handle (src_buffer);
dst_fbo = _cogl_offscreen_pointer_from_handle (dst_buffer); dst_fbo = _cogl_offscreen_pointer_from_handle (dst_buffer);
/* Copy (and scale) a region from one to another framebuffer */ /* Copy (and scale) a region from one to another framebuffer */
GE( glBindFramebufferEXT (GL_READ_FRAMEBUFFER_EXT, src_fbo->gl_handle) ); GE( glBindFramebufferEXT (GL_READ_FRAMEBUFFER_EXT, src_fbo->gl_handle) );
GE( glBindFramebufferEXT (GL_DRAW_FRAMEBUFFER_EXT, dst_fbo->gl_handle) ); GE( glBindFramebufferEXT (GL_DRAW_FRAMEBUFFER_EXT, dst_fbo->gl_handle) );
@ -216,22 +214,22 @@ cogl_offscreen_blit (CoglHandle src_buffer,
{ {
CoglFbo *src_fbo; CoglFbo *src_fbo;
CoglFbo *dst_fbo; CoglFbo *dst_fbo;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (!cogl_features_available (COGL_FEATURE_OFFSCREEN_BLIT)) if (!cogl_features_available (COGL_FEATURE_OFFSCREEN_BLIT))
return; return;
/* Make sure these are valid fbo handles */ /* Make sure these are valid fbo handles */
if (!cogl_is_offscreen (src_buffer)) if (!cogl_is_offscreen (src_buffer))
return; return;
if (!cogl_is_offscreen (dst_buffer)) if (!cogl_is_offscreen (dst_buffer))
return; return;
src_fbo = _cogl_offscreen_pointer_from_handle (src_buffer); src_fbo = _cogl_offscreen_pointer_from_handle (src_buffer);
dst_fbo = _cogl_offscreen_pointer_from_handle (dst_buffer); dst_fbo = _cogl_offscreen_pointer_from_handle (dst_buffer);
/* Copy (and scale) whole image from one to another framebuffer */ /* Copy (and scale) whole image from one to another framebuffer */
GE( glBindFramebufferEXT (GL_READ_FRAMEBUFFER_EXT, src_fbo->gl_handle) ); GE( glBindFramebufferEXT (GL_READ_FRAMEBUFFER_EXT, src_fbo->gl_handle) );
GE( glBindFramebufferEXT (GL_DRAW_FRAMEBUFFER_EXT, dst_fbo->gl_handle) ); GE( glBindFramebufferEXT (GL_DRAW_FRAMEBUFFER_EXT, dst_fbo->gl_handle) );
@ -244,17 +242,17 @@ void
cogl_draw_buffer (CoglBufferTarget target, CoglHandle offscreen) cogl_draw_buffer (CoglBufferTarget target, CoglHandle offscreen)
{ {
CoglFbo *fbo = NULL; CoglFbo *fbo = NULL;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (target == COGL_OFFSCREEN_BUFFER) if (target == COGL_OFFSCREEN_BUFFER)
{ {
/* Make sure it is a valid fbo handle */ /* Make sure it is a valid fbo handle */
if (!cogl_is_offscreen (offscreen)) if (!cogl_is_offscreen (offscreen))
return; return;
fbo = _cogl_offscreen_pointer_from_handle (offscreen); fbo = _cogl_offscreen_pointer_from_handle (offscreen);
/* Check current draw buffer target */ /* Check current draw buffer target */
if (ctx->draw_buffer != COGL_OFFSCREEN_BUFFER) if (ctx->draw_buffer != COGL_OFFSCREEN_BUFFER)
{ {
@ -280,16 +278,16 @@ cogl_draw_buffer (CoglBufferTarget target, CoglHandle offscreen)
_cogl_set_current_matrix (COGL_MATRIX_MODELVIEW); _cogl_set_current_matrix (COGL_MATRIX_MODELVIEW);
_cogl_current_matrix_identity (); _cogl_current_matrix_identity ();
} }
/* Setup new viewport and matrices */ /* Setup new viewport and matrices */
GE( glViewport (0, 0, fbo->width, fbo->height) ); GE( glViewport (0, 0, fbo->width, fbo->height) );
_cogl_current_matrix_translate (-1.0f, -1.0f, 0.0f); _cogl_current_matrix_translate (-1.0f, -1.0f, 0.0f);
_cogl_current_matrix_scale (2.0f / fbo->width, 2.0f / fbo->height, 1.0f); _cogl_current_matrix_scale (2.0f / fbo->width, 2.0f / fbo->height, 1.0f);
/* Bind offscreen framebuffer object */ /* Bind offscreen framebuffer object */
GE( glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, fbo->gl_handle) ); GE( glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, fbo->gl_handle) );
GE( glColorMask (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE) ); GE( glColorMask (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE) );
/* Some implementation require a clear before drawing /* Some implementation require a clear before drawing
to an fbo. Luckily it is affected by scissor test. */ to an fbo. Luckily it is affected by scissor test. */
/* FIXME: test where exactly this is needed end whether /* FIXME: test where exactly this is needed end whether
@ -299,7 +297,7 @@ cogl_draw_buffer (CoglBufferTarget target, CoglHandle offscreen)
GE( glEnable (GL_SCISSOR_TEST) ); GE( glEnable (GL_SCISSOR_TEST) );
GE( glClear (GL_COLOR_BUFFER_BIT) ); GE( glClear (GL_COLOR_BUFFER_BIT) );
GE( glPopAttrib () ); GE( glPopAttrib () );
} }
else if ((target & COGL_WINDOW_BUFFER) || else if ((target & COGL_WINDOW_BUFFER) ||
(target & COGL_MASK_BUFFER)) (target & COGL_MASK_BUFFER))
@ -317,11 +315,11 @@ cogl_draw_buffer (CoglBufferTarget target, CoglHandle offscreen)
_cogl_set_current_matrix (COGL_MATRIX_MODELVIEW); _cogl_set_current_matrix (COGL_MATRIX_MODELVIEW);
_cogl_current_matrix_pop (); _cogl_current_matrix_pop ();
} }
/* Bind window framebuffer object */ /* Bind window framebuffer object */
GE( glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0) ); GE( glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0) );
if (target == COGL_WINDOW_BUFFER) if (target == COGL_WINDOW_BUFFER)
{ {
/* Draw to RGB channels */ /* Draw to RGB channels */
@ -338,7 +336,7 @@ cogl_draw_buffer (CoglBufferTarget target, CoglHandle offscreen)
GE( glColorMask (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE) ); GE( glColorMask (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE) );
} }
} }
/* Store new target */ /* Store new target */
ctx->draw_buffer = target; ctx->draw_buffer = target;
} }

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -96,7 +94,7 @@ cogl_program_attach_shader (CoglHandle program_handle,
CoglShader *shader; CoglShader *shader;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (!cogl_is_program (program_handle) || !cogl_is_shader (shader_handle)) if (!cogl_is_program (program_handle) || !cogl_is_shader (shader_handle))
return; return;
@ -111,7 +109,7 @@ cogl_program_link (CoglHandle handle)
{ {
CoglProgram *program; CoglProgram *program;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (!cogl_is_program (handle)) if (!cogl_is_program (handle))
return; return;
@ -126,7 +124,7 @@ cogl_program_use (CoglHandle handle)
CoglProgram *program; CoglProgram *program;
GLhandleARB gl_handle; GLhandleARB gl_handle;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (handle != COGL_INVALID_HANDLE && !cogl_is_program (handle)) if (handle != COGL_INVALID_HANDLE && !cogl_is_program (handle))
return; return;
@ -147,7 +145,7 @@ cogl_program_get_uniform_location (CoglHandle handle,
{ {
CoglProgram *program; CoglProgram *program;
_COGL_GET_CONTEXT (ctx, 0); _COGL_GET_CONTEXT (ctx, 0);
if (!cogl_is_program (handle)) if (!cogl_is_program (handle))
return 0; return 0;

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -75,7 +73,7 @@ cogl_shader_source (CoglHandle handle,
{ {
CoglShader *shader; CoglShader *shader;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (!cogl_is_shader (handle)) if (!cogl_is_shader (handle))
return; return;

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -21,6 +19,11 @@
* License along with this library; if not, write to the * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*
* Authors:
* Matthew Allum <mallum@openedhand.com>
* Neil Roberts <neil@linux.intel.com>
* Robert Bragg <robert@linux.intel.com>
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -1,9 +1,9 @@
/* /*
* Cogl * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Copyright (C) 2007,2008,2009 OpenedHand * Copyright (C) 2007,2008,2009 Intel Corporation.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -356,7 +354,7 @@ cogl_gles2_get_fragment_shader (const CoglGles2WrapperSettings *settings)
g_string_append (shader_source, cogl_fixed_fragment_shader_main_declare); g_string_append (shader_source, cogl_fixed_fragment_shader_main_declare);
g_string_append (shader_source, cogl_fixed_fragment_shader_main_start); g_string_append (shader_source, cogl_fixed_fragment_shader_main_start);
/* This pointless extra variable is needed to work around an /* This pointless extra variable is needed to work around an
apparent bug in the PowerVR drivers. Without it the alpha apparent bug in the PowerVR drivers. Without it the alpha
blending seems to stop working */ blending seems to stop working */

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -89,7 +87,7 @@ cogl_program_attach_shader (CoglHandle program_handle,
CoglProgram *program; CoglProgram *program;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (!cogl_is_program (program_handle) || !cogl_is_shader (shader_handle)) if (!cogl_is_program (program_handle) || !cogl_is_shader (shader_handle))
return; return;
@ -116,7 +114,7 @@ void
cogl_program_use (CoglHandle handle) cogl_program_use (CoglHandle handle)
{ {
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (handle != COGL_INVALID_HANDLE && !cogl_is_program (handle)) if (handle != COGL_INVALID_HANDLE && !cogl_is_program (handle))
return; return;

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -69,7 +67,7 @@ cogl_shader_source (CoglHandle handle,
{ {
CoglShader *shader; CoglShader *shader;
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
if (!cogl_is_shader (handle)) if (!cogl_is_shader (handle))
return; return;

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -44,7 +42,7 @@ cogl_util_next_p2 (int a)
{ {
int rval=1; int rval=1;
while(rval < a) while(rval < a)
rval <<= 1; rval <<= 1;
return rval; return rval;

View File

@ -1,11 +1,9 @@
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2007,2008,2009 Intel Corporation.
*
* Copyright (C) 2007 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -26,7 +24,7 @@
#ifndef __COGL_UTIL_H #ifndef __COGL_UTIL_H
#define __COGL_UTIL_H #define __COGL_UTIL_H
int int
cogl_util_next_p2 (int a); cogl_util_next_p2 (int a);
#endif /* __COGL_UTIL_H */ #endif /* __COGL_UTIL_H */

View File

@ -1,9 +1,9 @@
/* /*
* Cogl * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Copyright (C) 2007,2008,2009 OpenedHand * Copyright (C) 2007,2008,2009 Intel Corporation.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public

View File

@ -1,16 +1,36 @@
#! /bin/sh #! /bin/sh
# Cogl
#
# An object oriented GL/GLES Abstraction/Utility Layer
#
# Copyright (C) 2008,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, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
output_copyright () output_copyright ()
{ {
cat <<EOF > "$1"; cat <<EOF > "$1";
/* /*
* Clutter COGL * Cogl
* *
* A basic GL/GLES Abstraction/Utility Layer * An object oriented GL/GLES Abstraction/Utility Layer
* *
* Authored By Matthew Allum <mallum@openedhand.com> * Copyright (C) 2008,2009 Intel Corporation.
*
* Copyright (C) 2008 OpenedHand
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public