From 7fe60435bce6595a9c58a9bfd8244d74b5320e96 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Tue, 15 Jan 2013 08:46:13 +0100 Subject: Import DirectFB141_2k11R3_beta5 --- Source/DirectFB/src/core/core.h | 162 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100755 Source/DirectFB/src/core/core.h (limited to 'Source/DirectFB/src/core/core.h') diff --git a/Source/DirectFB/src/core/core.h b/Source/DirectFB/src/core/core.h new file mode 100755 index 0000000..7116e8c --- /dev/null +++ b/Source/DirectFB/src/core/core.h @@ -0,0 +1,162 @@ +/* + (c) Copyright 2001-2009 The world wide DirectFB Open Source Community (directfb.org) + (c) Copyright 2000-2004 Convergence (integrated media) GmbH + + All rights reserved. + + Written by Denis Oliver Kropp , + Andreas Hundt , + Sven Neumann , + Ville Syrjälä and + Claudio Ciccani . + + 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 __CORE_H__ +#define __CORE_H__ + +#include +#include +#include + +#include + +#include "coretypes.h" +#include "coredefs.h" + + +#define DIRECTFB_CORE_ABI 45 + + +typedef enum { + DFCP_CLIPBOARD, + DFCP_COLORHASH, + DFCP_GRAPHICS, + DFCP_INPUT, + DFCP_LAYER, + DFCP_SCREEN, + DFCP_SURFACE, + DFCP_SYSTEM, + DFCP_WM, + + _DFCP_NUM +} DFBCorePartID; + + +/* + * Cleanup function, callback of a cleanup stack entry. + */ +typedef void (*CoreCleanupFunc)(void *data, int emergency); + + + +/* + * Core initialization and deinitialization + */ +DFBResult dfb_core_create ( CoreDFB **ret_core ); + +DFBResult dfb_core_destroy ( CoreDFB *core, + bool emergency ); + +void *dfb_core_get_part( CoreDFB *core, + DFBCorePartID part_id ); + + +#define DFB_CORE(core,PART) dfb_core_get_part( core, DFCP_##PART ) + + +/* + * Object creation + */ +CoreLayerContext *dfb_core_create_layer_context( CoreDFB *core ); +CoreLayerRegion *dfb_core_create_layer_region ( CoreDFB *core ); +CorePalette *dfb_core_create_palette ( CoreDFB *core ); +CoreSurface *dfb_core_create_surface ( CoreDFB *core ); +CoreWindow *dfb_core_create_window ( CoreDFB *core ); + +/* + * Debug + */ +DirectResult dfb_core_enum_surfaces ( CoreDFB *core, + FusionObjectCallback callback, + void *ctx ); +DirectResult dfb_core_enum_layer_contexts( CoreDFB *core, + FusionObjectCallback callback, + void *ctx ); +DirectResult dfb_core_enum_layer_regions ( CoreDFB *core, + FusionObjectCallback callback, + void *ctx ); + + +/* + * Returns true if the calling process is the master fusionee, + * i.e. handles input drivers running their threads. + */ +bool dfb_core_is_master( CoreDFB *core ); + +/* + * Allows other (blocking) Fusionees to enter the DirectFB session. + */ +void dfb_core_activate( CoreDFB *core ); + +/* + * Returns the core's fusion world. + */ +FusionWorld *dfb_core_world( CoreDFB *core ); + +/* + * Returns the core arena. + */ +FusionArena *dfb_core_arena( CoreDFB *core ); + +/* + * Returns the shared memory pool of the core. + */ +FusionSHMPoolShared *dfb_core_shmpool( CoreDFB *core ); + +/* + * Returns the shared memory pool for raw data, e.g. surface buffers. + */ +FusionSHMPoolShared *dfb_core_shmpool_data( CoreDFB *core ); + +/* + * Suspends all core parts, stopping input threads, closing devices... + */ +DFBResult dfb_core_suspend( CoreDFB *core ); + +/* + * Resumes all core parts, reopening devices, starting input threads... + */ +DFBResult dfb_core_resume( CoreDFB *core ); + +/* + * Adds a function to the cleanup stack that is called during deinitialization. + * If emergency is true, the cleanup is even called by core_deinit_emergency(). + */ +CoreCleanup *dfb_core_cleanup_add( CoreDFB *core, + CoreCleanupFunc func, + void *data, + bool emergency ); + +/* + * Removes a function from the cleanup stack. + */ +void dfb_core_cleanup_remove( CoreDFB *core, + CoreCleanup *cleanup ); + +#endif + -- cgit