mutter/cogl/cogl2-compatibility.c
Neil Roberts 361bd516f3 Add compatibility API for functions removed after 1.9.8
The cleanup in 185630085 removed some symbols that were previously
exported as public experimental API in Cogl 1.9.8. That release is
already well after the point where we were meant to freeze the ABI so
we probably shouldn't be breaking it again. This patch adds the
removed functions back in so that for 1.9.10 we won't have to bump the
soname. The symbols are bundled together in a new file called
cogl2-compatibility.c so that they will be easy to remove again after
we can break ABI. It is expected that we will revert this patch
immediately after branching for Cogl 1.10.

Reviewed-by: Robert Bragg <robert@linux.intel.com>
2012-03-09 16:09:13 +00:00

149 lines
4.0 KiB
C

/*
* Cogl
*
* An object oriented GL/GLES Abstraction/Utility Layer
*
* Copyright (C) 2012 Intel Corporation.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/* These functions are just here temporarily for the 1.10.x releases
to maintain ABI compatibility. They will be removed again
immediately once the branch for 1.12.x is created */
#include "cogl2-compatibility.h"
#include "cogl-framebuffer.h"
#include "cogl-index-buffer.h"
#include "cogl-pipeline.h"
void
cogl_clip_push_from_path (CoglPath *path)
{
cogl_framebuffer_push_path_clip (cogl_get_draw_framebuffer (), path);
}
/* These were never declared in a public header so we might as well
keep it that way. The declarations here are just to avoid a
warning */
GQuark
cogl_display_error_quark (void);
GQuark
cogl_onscreen_template_error_quark (void);
GQuark
cogl_swap_chain_error_quark (void);
GQuark
cogl_texture_3d_error_quark (void);
gboolean
cogl_index_buffer_allocate (CoglIndexBuffer *indices,
GError *error);
gboolean
cogl_is_journal (void *object);
void
cogl_vdraw_indexed_attributes (CoglFramebuffer *framebuffer,
CoglPipeline *pipeline,
CoglVerticesMode mode,
int first_vertex,
int n_vertices,
CoglIndices *indices,
...);
GQuark
cogl_display_error_quark (void)
{
return g_quark_from_static_string ("cogl-display-error-quark");
}
GQuark
cogl_onscreen_template_error_quark (void)
{
return g_quark_from_static_string ("cogl-onscreen-template-error-quark");
}
GQuark
cogl_swap_chain_error_quark (void)
{
return g_quark_from_static_string ("cogl-swap-chain-error-quark");
}
GQuark
cogl_texture_3d_error_quark (void)
{
return g_quark_from_static_string ("cogl-texture-3d-error-quark");
}
gboolean
cogl_index_buffer_allocate (CoglIndexBuffer *indices,
GError *error)
{
return TRUE;
}
gboolean
cogl_is_journal (void *object)
{
/* There's no way to get a pointer to a journal so this will never
return TRUE from an application's perspective */
return FALSE;
}
void
cogl_vdraw_indexed_attributes (CoglFramebuffer *framebuffer,
CoglPipeline *pipeline,
CoglVerticesMode mode,
int first_vertex,
int n_vertices,
CoglIndices *indices,
...)
{
va_list ap;
int n_attributes;
CoglAttribute **attributes;
int i;
CoglAttribute *attribute;
va_start (ap, indices);
for (n_attributes = 0; va_arg (ap, CoglAttribute *); n_attributes++)
;
va_end (ap);
attributes = g_alloca (sizeof (CoglAttribute *) * n_attributes);
va_start (ap, indices);
for (i = 0; (attribute = va_arg (ap, CoglAttribute *)); i++)
attributes[i] = attribute;
va_end (ap);
cogl_framebuffer_draw_indexed_attributes (framebuffer,
pipeline,
mode,
first_vertex,
n_vertices,
indices,
attributes,
n_attributes);
}