Blame clutter/clutter-backend-private.h

Packit 31ecd5
/*
Packit 31ecd5
 * Clutter.
Packit 31ecd5
 *
Packit 31ecd5
 * An OpenGL based 'interactive canvas' library.
Packit 31ecd5
 *
Packit 31ecd5
 * Copyright (C) 2010  Intel Corporation.
Packit 31ecd5
 *
Packit 31ecd5
 * This library is free software; you can redistribute it and/or
Packit 31ecd5
 * modify it under the terms of the GNU Lesser General Public
Packit 31ecd5
 * License as published by the Free Software Foundation; either
Packit 31ecd5
 * version 2 of the License, or (at your option) any later version.
Packit 31ecd5
 *
Packit 31ecd5
 * This library is distributed in the hope that it will be useful,
Packit 31ecd5
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 31ecd5
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 31ecd5
 * Lesser General Public License for more details.
Packit 31ecd5
 *
Packit 31ecd5
 * You should have received a copy of the GNU Lesser General Public
Packit 31ecd5
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
Packit 31ecd5
 */
Packit 31ecd5
Packit 31ecd5
#ifndef __CLUTTER_BACKEND_PRIVATE_H__
Packit 31ecd5
#define __CLUTTER_BACKEND_PRIVATE_H__
Packit 31ecd5
Packit 31ecd5
#include <clutter/clutter-backend.h>
Packit 31ecd5
#include <clutter/clutter-device-manager.h>
Packit 31ecd5
#include <clutter/clutter-stage-window.h>
Packit 31ecd5
Packit 31ecd5
#include "clutter-event-translator.h"
Packit 31ecd5
Packit 31ecd5
#define CLUTTER_BACKEND_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_BACKEND, ClutterBackendClass))
Packit 31ecd5
#define CLUTTER_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BACKEND))
Packit 31ecd5
#define CLUTTER_BACKEND_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BACKEND, ClutterBackendClass))
Packit 31ecd5
Packit 31ecd5
G_BEGIN_DECLS
Packit 31ecd5
Packit 31ecd5
typedef struct _ClutterBackendPrivate   ClutterBackendPrivate;
Packit 31ecd5
Packit 31ecd5
struct _ClutterBackend
Packit 31ecd5
{
Packit 31ecd5
  /*< private >*/
Packit 31ecd5
  GObject parent_instance;
Packit 31ecd5
Packit 31ecd5
  CoglRenderer *cogl_renderer;
Packit 31ecd5
  CoglDisplay *cogl_display;
Packit 31ecd5
  CoglContext *cogl_context;
Packit 31ecd5
  GSource *cogl_source;
Packit 31ecd5
Packit 31ecd5
  CoglOnscreen *dummy_onscreen;
Packit 31ecd5
Packit 31ecd5
  ClutterDeviceManager *device_manager;
Packit 31ecd5
Packit 31ecd5
  cairo_font_options_t *font_options;
Packit 31ecd5
Packit 31ecd5
  gchar *font_name;
Packit 31ecd5
Packit 31ecd5
  gfloat units_per_em;
Packit 31ecd5
  gint32 units_serial;
Packit 31ecd5
Packit 31ecd5
  GList *event_translators;
Packit 31ecd5
};
Packit 31ecd5
Packit 31ecd5
struct _ClutterBackendClass
Packit 31ecd5
{
Packit 31ecd5
  /*< private >*/
Packit 31ecd5
  GObjectClass parent_class;
Packit 31ecd5
Packit 31ecd5
  GType stage_window_type;
Packit 31ecd5
Packit 31ecd5
  /* vfuncs */
Packit 31ecd5
  gboolean              (* pre_parse)          (ClutterBackend  *backend,
Packit 31ecd5
                                                GError         **error);
Packit 31ecd5
  gboolean              (* post_parse)         (ClutterBackend  *backend,
Packit 31ecd5
                                                GError         **error);
Packit 31ecd5
  ClutterStageWindow *  (* create_stage)       (ClutterBackend  *backend,
Packit 31ecd5
                                                ClutterStage    *wrapper,
Packit 31ecd5
                                                GError         **error);
Packit 31ecd5
  void                  (* init_events)        (ClutterBackend  *backend);
Packit 31ecd5
  void                  (* init_features)      (ClutterBackend  *backend);
Packit 31ecd5
  void                  (* add_options)        (ClutterBackend  *backend,
Packit 31ecd5
                                                GOptionGroup    *group);
Packit 31ecd5
  ClutterFeatureFlags   (* get_features)       (ClutterBackend  *backend);
Packit 31ecd5
  CoglRenderer *        (* get_renderer)       (ClutterBackend  *backend,
Packit 31ecd5
                                                GError         **error);
Packit 31ecd5
  CoglDisplay *         (* get_display)        (ClutterBackend  *backend,
Packit 31ecd5
                                                CoglRenderer    *renderer,
Packit 31ecd5
                                                CoglSwapChain   *swap_chain,
Packit 31ecd5
                                                GError         **error);
Packit 31ecd5
  gboolean              (* create_context)     (ClutterBackend  *backend,
Packit 31ecd5
                                                GError         **error);
Packit 31ecd5
  void                  (* ensure_context)     (ClutterBackend  *backend,
Packit 31ecd5
                                                ClutterStage    *stage);
Packit 31ecd5
  ClutterDeviceManager *(* get_device_manager) (ClutterBackend  *backend);
Packit 31ecd5
Packit 31ecd5
  void                  (* copy_event_data)    (ClutterBackend     *backend,
Packit 31ecd5
                                                const ClutterEvent *src,
Packit 31ecd5
                                                ClutterEvent       *dest);
Packit 31ecd5
  void                  (* free_event_data)    (ClutterBackend     *backend,
Packit 31ecd5
                                                ClutterEvent       *event);
Packit 31ecd5
Packit 31ecd5
  gboolean              (* translate_event)    (ClutterBackend     *backend,
Packit 31ecd5
                                                gpointer            native,
Packit 31ecd5
                                                ClutterEvent       *event);
Packit 31ecd5
Packit 31ecd5
  PangoDirection        (* get_keymap_direction) (ClutterBackend   *backend);
Packit 31ecd5
Packit 31ecd5
  /* signals */
Packit 31ecd5
  void (* resolution_changed) (ClutterBackend *backend);
Packit 31ecd5
  void (* font_changed)       (ClutterBackend *backend);
Packit 31ecd5
  void (* settings_changed)   (ClutterBackend *backend);
Packit 31ecd5
};
Packit 31ecd5
Packit 31ecd5
ClutterBackend *        _clutter_create_backend                         (void);
Packit 31ecd5
Packit 31ecd5
ClutterStageWindow *    _clutter_backend_create_stage                   (ClutterBackend         *backend,
Packit 31ecd5
                                                                         ClutterStage           *wrapper,
Packit 31ecd5
                                                                         GError                **error);
Packit 31ecd5
void                    _clutter_backend_ensure_context                 (ClutterBackend         *backend,
Packit 31ecd5
                                                                         ClutterStage           *stage);
Packit 31ecd5
void                    _clutter_backend_ensure_context_internal        (ClutterBackend         *backend,
Packit 31ecd5
                                                                         ClutterStage           *stage);
Packit 31ecd5
gboolean                _clutter_backend_create_context                 (ClutterBackend         *backend,
Packit 31ecd5
                                                                         GError                **error);
Packit 31ecd5
Packit 31ecd5
void                    _clutter_backend_add_options                    (ClutterBackend         *backend,
Packit 31ecd5
                                                                         GOptionGroup           *group);
Packit 31ecd5
gboolean                _clutter_backend_pre_parse                      (ClutterBackend         *backend,
Packit 31ecd5
                                                                         GError                **error);
Packit 31ecd5
gboolean                _clutter_backend_post_parse                     (ClutterBackend         *backend,
Packit 31ecd5
                                                                         GError                **error);
Packit 31ecd5
Packit 31ecd5
void                    _clutter_backend_init_events                    (ClutterBackend         *backend);
Packit 31ecd5
void                    _clutter_backend_copy_event_data                (ClutterBackend         *backend,
Packit 31ecd5
                                                                         const ClutterEvent     *src,
Packit 31ecd5
                                                                         ClutterEvent           *dest);
Packit 31ecd5
void                    _clutter_backend_free_event_data                (ClutterBackend         *backend,
Packit 31ecd5
                                                                         ClutterEvent           *event);
Packit 31ecd5
gboolean                _clutter_backend_translate_event                (ClutterBackend         *backend,
Packit 31ecd5
                                                                         gpointer                native,
Packit 31ecd5
                                                                         ClutterEvent           *event);
Packit 31ecd5
void                    _clutter_backend_add_event_translator           (ClutterBackend         *backend,
Packit 31ecd5
                                                                         ClutterEventTranslator *translator);
Packit 31ecd5
void                    _clutter_backend_remove_event_translator        (ClutterBackend         *backend,
Packit 31ecd5
                                                                         ClutterEventTranslator *translator);
Packit 31ecd5
Packit 31ecd5
ClutterFeatureFlags     _clutter_backend_get_features                   (ClutterBackend         *backend);
Packit 31ecd5
Packit 31ecd5
gfloat                  _clutter_backend_get_units_per_em               (ClutterBackend         *backend,
Packit 31ecd5
                                                                         PangoFontDescription   *font_desc);
Packit 31ecd5
gint32                  _clutter_backend_get_units_serial               (ClutterBackend         *backend);
Packit 31ecd5
Packit 31ecd5
PangoDirection          _clutter_backend_get_keymap_direction           (ClutterBackend         *backend);
Packit 31ecd5
Packit 31ecd5
void                    _clutter_backend_reset_cogl_framebuffer         (ClutterBackend         *backend);
Packit 31ecd5
Packit 31ecd5
void                    clutter_set_allowed_drivers                     (const char             *drivers);
Packit 31ecd5
Packit 31ecd5
void                    clutter_try_set_windowing_backend               (const char             *drivers);
Packit 31ecd5
Packit 31ecd5
G_END_DECLS
Packit 31ecd5
Packit 31ecd5
#endif /* __CLUTTER_BACKEND_PRIVATE_H__ */