mirror of
https://github.com/brl/mutter.git
synced 2024-11-22 08:00:42 -05:00
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>
This commit is contained in:
parent
1b947a47c8
commit
361bd516f3
@ -112,6 +112,7 @@ cogl_experimental_h = \
|
||||
$(srcdir)/cogl-buffer.h \
|
||||
$(srcdir)/cogl-pixel-buffer.h \
|
||||
$(srcdir)/cogl2-experimental.h \
|
||||
$(srcdir)/cogl2-compatibility.h \
|
||||
$(NULL)
|
||||
|
||||
# driver sources
|
||||
@ -219,6 +220,7 @@ cogl_sources_c = \
|
||||
$(srcdir)/cogl-clip-state-private.h \
|
||||
$(srcdir)/cogl-clip-state.h \
|
||||
$(srcdir)/cogl-clip-state.c \
|
||||
$(srcdir)/cogl2-compatibility.c \
|
||||
$(srcdir)/cogl-feature-private.h \
|
||||
$(srcdir)/cogl-feature-private.c \
|
||||
$(srcdir)/cogl-fixed.c \
|
||||
|
@ -124,6 +124,8 @@
|
||||
*/
|
||||
#ifdef COGL_ENABLE_EXPERIMENTAL_2_0_API
|
||||
#include <cogl/cogl2-path.h>
|
||||
/* This header will be removed in Cogl 1.12 */
|
||||
#include <cogl/cogl2-compatibility.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
148
cogl/cogl2-compatibility.c
Normal file
148
cogl/cogl2-compatibility.c
Normal file
@ -0,0 +1,148 @@
|
||||
/*
|
||||
* 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);
|
||||
}
|
55
cogl/cogl2-compatibility.h
Normal file
55
cogl/cogl2-compatibility.h
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* 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/>.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
#if !defined(__COGL_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
|
||||
#error "Only <cogl/cogl.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#ifndef __COGL2_COMPATIBILITY_H__
|
||||
#define __COGL2_COMPATIBILITY_H__
|
||||
|
||||
#include <cogl/cogl-types.h>
|
||||
#include <cogl/cogl2-path.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define cogl_clip_push_from_path cogl2_clip_push_from_path
|
||||
/**
|
||||
* cogl_clip_push_from_path:
|
||||
* @path: The path to clip with.
|
||||
*
|
||||
* Sets a new clipping area using the silhouette of the specified,
|
||||
* filled @path. The clipping area is intersected with the previous
|
||||
* clipping area. To restore the previous clipping area, call
|
||||
* call cogl_clip_pop().
|
||||
*
|
||||
* Since: 1.8
|
||||
* Stability: Unstable
|
||||
*/
|
||||
void
|
||||
cogl_clip_push_from_path (CoglPath *path);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __COGL2_COMPATIBILITY_H__ */
|
||||
|
Loading…
Reference in New Issue
Block a user