conf.h   conf.h 
skipping to change at line 245 skipping to change at line 245
} create_surface; } create_surface;
struct { struct {
DFBDimension min_size; DFBDimension min_size;
} allocate_buffer; } allocate_buffer;
} warn; } warn;
int keep_accumulators; /* Free accumulators abov e this limit */ int keep_accumulators; /* Free accumulators abov e this limit */
bool software_trace; bool software_trace;
bool cursor_automation;
int max_font_rows;
int max_font_row_width;
} DFBConfig; } DFBConfig;
extern DFBConfig *dfb_config; extern DFBConfig *dfb_config;
/* /*
* Allocate Config struct, fill with defaults and parse command line option s * Allocate Config struct, fill with defaults and parse command line option s
* for overrides. Options identified as DirectFB options are stripped out * for overrides. Options identified as DirectFB options are stripped out
* of the array. * of the array.
*/ */
DFBResult dfb_config_init( int *argc, char *(*argv[]) ); DFBResult dfb_config_init( int *argc, char *(*argv[]) );
 End of changes. 1 change blocks. 
0 lines changed or deleted 5 lines changed or added


 core.h   core.h 
skipping to change at line 153 skipping to change at line 153
CoreCleanupFunc func, CoreCleanupFunc func,
void *data, void *data,
bool emergency ); bool emergency );
/* /*
* Removes a function from the cleanup stack. * Removes a function from the cleanup stack.
*/ */
void dfb_core_cleanup_remove( CoreDFB *core, void dfb_core_cleanup_remove( CoreDFB *core,
CoreCleanup *cleanup ); CoreCleanup *cleanup );
DFBFontManager *dfb_core_font_manager( CoreDFB *core );
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 core_system.h   core_system.h 
/* /*
(c) Copyright 2001-2009 The world wide DirectFB Open Source Community ( directfb.org) (c) Copyright 2001-2010 The world wide DirectFB Open Source Community ( directfb.org)
(c) Copyright 2000-2004 Convergence (integrated media) GmbH (c) Copyright 2000-2004 Convergence (integrated media) GmbH
All rights reserved. All rights reserved.
Written by Denis Oliver Kropp <dok@directfb.org>, Written by Denis Oliver Kropp <dok@directfb.org>,
Andreas Hundt <andi@fischlustig.de>, Andreas Hundt <andi@fischlustig.de>,
Sven Neumann <neo@directfb.org>, Sven Neumann <neo@directfb.org>,
Ville Syrjälä <syrjala@sci.fi> and Ville Syrjälä <syrjala@sci.fi> and
Claudio Ciccani <klan@users.sf.net>. Claudio Ciccani <klan@users.sf.net>.
skipping to change at line 103 skipping to change at line 103
static unsigned int static unsigned int
system_auxram_length( void ); system_auxram_length( void );
static void static void
system_get_busid( int *ret_bus, int *ret_dev, int *ret_func ); system_get_busid( int *ret_bus, int *ret_dev, int *ret_func );
static void static void
system_get_deviceid( unsigned int *ret_vendor_id, unsigned int *ret_device_ id ); system_get_deviceid( unsigned int *ret_vendor_id, unsigned int *ret_device_ id );
static int
system_surface_data_size( void );
static void
system_surface_data_init( CoreSurface *surface, void *data );
static void
system_surface_data_destroy( CoreSurface *surface, void *data );
static CoreSystemFuncs system_funcs = { static CoreSystemFuncs system_funcs = {
.GetSystemInfo = system_get_info, .GetSystemInfo = system_get_info,
.Initialize = system_initialize, .Initialize = system_initialize,
.Join = system_join, .Join = system_join,
.Shutdown = system_shutdown, .Shutdown = system_shutdown,
.Leave = system_leave, .Leave = system_leave,
.Suspend = system_suspend, .Suspend = system_suspend,
.Resume = system_resume, .Resume = system_resume,
.GetModes = system_get_modes, .GetModes = system_get_modes,
.GetCurrentMode = system_get_current_mode, .GetCurrentMode = system_get_current_mode,
skipping to change at line 125 skipping to change at line 134
.MapMMIO = system_map_mmio, .MapMMIO = system_map_mmio,
.UnmapMMIO = system_unmap_mmio, .UnmapMMIO = system_unmap_mmio,
.GetAccelerator = system_get_accelerator, .GetAccelerator = system_get_accelerator,
.VideoMemoryPhysical = system_video_memory_physical, .VideoMemoryPhysical = system_video_memory_physical,
.VideoMemoryVirtual = system_video_memory_virtual, .VideoMemoryVirtual = system_video_memory_virtual,
.VideoRamLength = system_videoram_length, .VideoRamLength = system_videoram_length,
.AuxMemoryPhysical = system_aux_memory_physical, .AuxMemoryPhysical = system_aux_memory_physical,
.AuxMemoryVirtual = system_aux_memory_virtual, .AuxMemoryVirtual = system_aux_memory_virtual,
.AuxRamLength = system_auxram_length, .AuxRamLength = system_auxram_length,
.GetBusID = system_get_busid, .GetBusID = system_get_busid,
.SurfaceDataSize = system_surface_data_size,
.SurfaceDataInit = system_surface_data_init,
.SurfaceDataDestroy = system_surface_data_destroy,
.GetDeviceID = system_get_deviceid .GetDeviceID = system_get_deviceid
}; };
#define DFB_CORE_SYSTEM(shortname) \ #define DFB_CORE_SYSTEM(shortname) \
__attribute__((constructor)) void directfb_##shortname( void ); \ __attribute__((constructor)) void directfb_##shortname( void ); \
\ \
void \ void \
directfb_##shortname( void ) \ directfb_##shortname( void ) \
{ \ { \
direct_modules_register( &dfb_core_systems, \ direct_modules_register( &dfb_core_systems, \
 End of changes. 3 change blocks. 
1 lines changed or deleted 13 lines changed or added


 coretypes.h   coretypes.h 
skipping to change at line 56 skipping to change at line 56
typedef struct __DFB_DFBGraphicsCore CoreGraphicsDevice; /* FIXME * / typedef struct __DFB_DFBGraphicsCore CoreGraphicsDevice; /* FIXME * /
typedef struct _CoreCleanup CoreCleanup; typedef struct _CoreCleanup CoreCleanup;
typedef struct _CoreFont CoreFont; typedef struct _CoreFont CoreFont;
typedef struct _CoreGlyphData CoreGlyphData; typedef struct _CoreGlyphData CoreGlyphData;
typedef struct _CorePalette CorePalette; typedef struct _CorePalette CorePalette;
typedef struct _CardState CardState; typedef struct _CardState CardState;
typedef struct __DFB_DFBFontManager DFBFontManager;
typedef struct __DFB_DFBFontCache DFBFontCache;
typedef struct __DFB_DFBFontCacheRow DFBFontCacheRow;
typedef struct __DFB_CoreGraphicsSerial CoreGraphicsSerial; typedef struct __DFB_CoreGraphicsSerial CoreGraphicsSerial;
typedef struct __DFB_CoreScreen CoreScreen; typedef struct __DFB_CoreScreen CoreScreen;
typedef struct __DFB_CoreInputDevice CoreInputDevice; typedef struct __DFB_CoreInputDevice CoreInputDevice;
typedef struct __DFB_CoreLayer CoreLayer; typedef struct __DFB_CoreLayer CoreLayer;
typedef struct __DFB_CoreLayerContext CoreLayerContext; typedef struct __DFB_CoreLayerContext CoreLayerContext;
typedef struct __DFB_CoreLayerRegion CoreLayerRegion; typedef struct __DFB_CoreLayerRegion CoreLayerRegion;
typedef struct __DFB_CoreLayerRegionConfig CoreLayerRegionConfig; typedef struct __DFB_CoreLayerRegionConfig CoreLayerRegionConfig;
 End of changes. 1 change blocks. 
0 lines changed or deleted 4 lines changed or added


 debug.h   debug.h 
skipping to change at line 59 skipping to change at line 59
bool registered; bool registered;
const char *name; const char *name;
const char *description; const char *description;
int name_len; int name_len;
} DirectDebugDomain; } DirectDebugDomain;
void direct_debug_config_domain( const char *name, bool enable ); void direct_debug_config_domain( const char *name, bool enable );
bool direct_debug_check_domain( DirectDebugDomain *domain );
#if DIRECT_BUILD_TEXT #if DIRECT_BUILD_TEXT
#define D_DEBUG_DOMAIN(identifier,name,description) \ #define D_DEBUG_DOMAIN(identifier,name,description) \
static DirectDebugDomain identifier __attribute__((unused)) \ static DirectDebugDomain identifier __attribute__((unused)) \
= { 0, false, false, name, description, sizeof(name) - 1 } = { 0, false, false, name, description, sizeof(name) - 1 }
void direct_debug_at_always( DirectDebugDomain *domain, void direct_debug_at_always( DirectDebugDomain *domain,
const char *format, ... ) D_FORMAT_PRI NTF(2); const char *format, ... ) D_FORMAT_PRI NTF(2);
#define d_debug_at( domain, x... ) direct_debug_at_always( &domain, x ) #define d_debug_at( domain, x... ) direct_debug_at_always( &domain, x )
skipping to change at line 147 skipping to change at line 149
do { \ do { \
if (!(exp)) \ if (!(exp)) \
direct_assumption( #exp, __FUNCTION__, __FILE__, __LINE__ ); \ direct_assumption( #exp, __FUNCTION__, __FILE__, __LINE__ ); \
} while (0) } while (0)
#define D_BREAK(x...) \ #define D_BREAK(x...) \
do { \ do { \
direct_break( __FUNCTION__, __FILE__, __LINE__, x ); \ direct_break( __FUNCTION__, __FILE__, __LINE__, x ); \
} while (0) } while (0)
#define D_DEBUG_CHECK(d)
\
direct_debug_check_domain( &d )
#elif defined(DIRECT_MINI_DEBUG) #elif defined(DIRECT_MINI_DEBUG)
/* /*
* Mini debug mode, only D_DEBUG_AT, no domain filters, simple assertion * Mini debug mode, only D_DEBUG_AT, no domain filters, simple assertion
*/ */
#define D_DEBUG_ENABLED (2) #define D_DEBUG_ENABLED (2)
#define D_DEBUG_AT(d,x...) \ #define D_DEBUG_AT(d,x...) \
do { \ do { \
skipping to change at line 178 skipping to change at line 183
name ? name : " NO NAME ", millis / 100 0LL, millis % 1000LL, \ name ? name : " NO NAME ", millis / 100 0LL, millis % 1000LL, \
direct_gettid(), #exp, __FILE__, __LINE__ , __FUNCTION__ ); \ direct_gettid(), #exp, __FILE__, __LINE__ , __FUNCTION__ ); \
\ \
direct_trace_print_stack( NULL ); \ direct_trace_print_stack( NULL ); \
} \ } \
} while (0) } while (0)
#define D_ASSERT(exp) D_CHECK(exp, Assertion) #define D_ASSERT(exp) D_CHECK(exp, Assertion)
#define D_ASSUME(exp) D_CHECK(exp, Assumption) #define D_ASSUME(exp) D_CHECK(exp, Assumption)
#define D_DEBUG_CHECK(d)
\
direct_config->debug
#endif /* MINI_DEBUG / DIRECT_BUILD_DEBUG || DIRECT_ENABLE_DEBUG || DIR ECT_FORCE_DEBUG */ #endif /* MINI_DEBUG / DIRECT_BUILD_DEBUG || DIRECT_ENABLE_DEBUG || DIR ECT_FORCE_DEBUG */
#endif /* DIRECT_BUILD_TEXT */ #endif /* DIRECT_BUILD_TEXT */
/* /*
* Fallback definitions, e.g. without DIRECT_BUILD_TEXT or DIRECT_ENABLE_DE BUG * Fallback definitions, e.g. without DIRECT_BUILD_TEXT or DIRECT_ENABLE_DE BUG
*/ */
#ifndef D_DEBUG_ENABLED #ifndef D_DEBUG_ENABLED
#define D_DEBUG_ENABLED (0) #define D_DEBUG_ENABLED (0)
skipping to change at line 214 skipping to change at line 222
#endif #endif
#ifndef D_ASSERT #ifndef D_ASSERT
#define D_ASSERT(exp) do {} while (0) #define D_ASSERT(exp) do {} while (0)
#endif #endif
#ifndef D_ASSUME #ifndef D_ASSUME
#define D_ASSUME(exp) do {} while (0) #define D_ASSUME(exp) do {} while (0)
#endif #endif
#ifndef D_DEBUG_CHECK
#define D_DEBUG_CHECK(d) false
#endif
#ifndef D_BREAK #ifndef D_BREAK
#define D_BREAK(x...) do {} while (0) #define D_BREAK(x...) do {} while (0)
#endif #endif
#ifndef d_debug_at #ifndef d_debug_at
#define d_debug_at( domain, x... ) do {} while (0) #define d_debug_at( domain, x... ) do {} while (0)
#endif #endif
#ifndef D_DEBUG_DOMAIN #ifndef D_DEBUG_DOMAIN
#define D_DEBUG_DOMAIN(i,n,d) #define D_DEBUG_DOMAIN(i,n,d)
 End of changes. 4 change blocks. 
0 lines changed or deleted 14 lines changed or added


 dgiff.h   dgiff.h 
skipping to change at line 73 skipping to change at line 73
int32_t descender; int32_t descender;
int32_t height; int32_t height;
int32_t max_advance; int32_t max_advance;
uint32_t pixelformat; uint32_t pixelformat;
uint32_t num_glyphs; uint32_t num_glyphs;
uint32_t num_rows; uint32_t num_rows;
uint32_t __pad; DFBSurfaceBlittingFlags blittingflags;
} DGIFFFaceHeader; } DGIFFFaceHeader;
typedef struct { typedef struct {
uint32_t unicode; uint32_t unicode;
uint32_t row; uint32_t row;
int32_t offset; int32_t offset;
int32_t width; int32_t width;
int32_t height; int32_t height;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 directfb.h   directfb.h 
skipping to change at line 1389 skipping to change at line 1389
between hardware between hardware
keys is made */ keys is made */
DFBInputDeviceAxisIdentifier max_axis; /* highest axis DFBInputDeviceAxisIdentifier max_axis; /* highest axis
identifier */ identifier */
DFBInputDeviceButtonIdentifier max_button; /* highest button DFBInputDeviceButtonIdentifier max_button; /* highest button
identifier */ identifier */
char name[DFB_INPUT_DEVICE_DESC_NAME_LENGTH]; /* Device name */ char name[DFB_INPUT_DEVICE_DESC_NAME_LENGTH]; /* Device name */
char vendor[DFB_INPUT_DEVICE_DESC_VENDOR_LENGTH]; /* Device vendor */ char vendor[DFB_INPUT_DEVICE_DESC_VENDOR_LENGTH]; /* Device vendor */
int vendor_id; /* Vendor ID */
int product_id; /* Product ID */
} DFBInputDeviceDescription; } DFBInputDeviceDescription;
typedef enum { typedef enum {
DIAIF_NONE = 0x00000000, DIAIF_NONE = 0x00000000,
DIAIF_ABS_MIN = 0x00000001, DIAIF_ABS_MIN = 0x00000001,
DIAIF_ABS_MAX = 0x00000002, DIAIF_ABS_MAX = 0x00000002,
DIAIF_ALL = 0x00000003 DIAIF_ALL = 0x00000003
} DFBInputDeviceAxisInfoFlags; } DFBInputDeviceAxisInfoFlags;
skipping to change at line 5737 skipping to change at line 5740
); );
/* /*
* Find an encoding by its name. * Find an encoding by its name.
*/ */
DFBResult (*FindEncoding) ( DFBResult (*FindEncoding) (
IDirectFBFont *thiz, IDirectFBFont *thiz,
const char *name, const char *name,
DFBTextEncodingID *ret_encoding DFBTextEncodingID *ret_encoding
); );
/** Resources **/
/*
* Dispose resources used by the font.
*
* Keeps font usable, recreating resources as needed.
*/
DFBResult (*Dispose) (
IDirectFBFont *thiz
);
) )
/* /*
* Capabilities of an image. * Capabilities of an image.
*/ */
typedef enum { typedef enum {
DICAPS_NONE = 0x00000000, /* None of these. */ DICAPS_NONE = 0x00000000, /* None of these. */
DICAPS_ALPHACHANNEL = 0x00000001, /* The image data contains an DICAPS_ALPHACHANNEL = 0x00000001, /* The image data contains an
alphachannel. */ alphachannel. */
DICAPS_COLORKEY = 0x00000002 /* The image has a colorkey, DICAPS_COLORKEY = 0x00000002 /* The image has a colorkey,
skipping to change at line 5941 skipping to change at line 5955
* Buffer levels and occupancy for Audio/Video input buffers. * Buffer levels and occupancy for Audio/Video input buffers.
*/ */
typedef struct { typedef struct {
DFBStreamCapabilities valid; /* Which of the Audio / Video sect ions are valid. */ DFBStreamCapabilities valid; /* Which of the Audio / Video sect ions are valid. */
struct { struct {
unsigned int buffer_size; /* Size in bytes of the input buff er to video decoder */ unsigned int buffer_size; /* Size in bytes of the input buff er to video decoder */
unsigned int minimum_level; /* The level at which a DVPET_DATA LOW event will be generated. */ unsigned int minimum_level; /* The level at which a DVPET_DATA LOW event will be generated. */
unsigned int maximum_level; /* The level at which a DVPET_DATA HIGH event will be generated. */ unsigned int maximum_level; /* The level at which a DVPET_DATA HIGH event will be generated. */
unsigned int current_level; /* Current fill level of video inp ut buffer.*/ unsigned int current_level; /* Current fill level of video inp ut buffer.*/
} video; } video; /* struct containing the above two encoding properties for video */
struct { struct {
unsigned int buffer_size; /* Size in bytes of the input buff er to audio decoder */ unsigned int buffer_size; /* Size in bytes of the input buff er to audio decoder */
unsigned int minimum_level; /* The level at which a DVPET_DATA LOW event will be generated. */ unsigned int minimum_level; /* The level at which a DVPET_DATA LOW event will be generated. */
unsigned int maximum_level; /* The level at which a DVPET_DATA HIGH event will be generated. */ unsigned int maximum_level; /* The level at which a DVPET_DATA HIGH event will be generated. */
unsigned int current_level; /* Current fill level of audio inp ut buffer.*/ unsigned int current_level; /* Current fill level of audio inp ut buffer.*/
} audio; } audio; /* struct containing the above two encoding properties for audio */
} DFBBufferOccupancy; } DFBBufferOccupancy;
/* /*
* Buffer thresholds for Audio and Video. * Buffer thresholds for Audio and Video.
*/ */
typedef struct { typedef struct {
DFBStreamCapabilities selection; /* Which of the Audio / Video are we setting? */ DFBStreamCapabilities selection; /* Which of the Audio / Video are we setting? */
struct { struct {
unsigned int minimum_level; /* The level at which a DVPET_DATA LOW event will be generated. */ unsigned int minimum_level; /* The level at which a DVPET_DATA LOW event will be generated. */
unsigned int maximum_level; /* The level at which a DVPET_DATA HIGH event will be generated. */ unsigned int maximum_level; /* The level at which a DVPET_DATA HIGH event will be generated. */
unsigned int minimum_time; /* The level at which a DVPET_BUFF ERTIMELOW event will be generated. */ unsigned int minimum_time; /* The level at which a DVPET_BUFF ERTIMELOW event will be generated. */
unsigned int maximum_time; /* The level at which a DVPET_BUFF ERTIMEHIGH event will be generated. */ unsigned int maximum_time; /* The level at which a DVPET_BUFF ERTIMEHIGH event will be generated. */
} video; } video; /* struct containing the above two encoding properties for video */
struct { struct {
unsigned int minimum_level; /* The level at which a DVPET_DATA LOW event will be generated. */ unsigned int minimum_level; /* The level at which a DVPET_DATA LOW event will be generated. */
unsigned int maximum_level; /* The level at which a DVPET_DATA HIGH event will be generated. */ unsigned int maximum_level; /* The level at which a DVPET_DATA HIGH event will be generated. */
unsigned int minimum_time; /* The level at which a DVPET_BUFF ERTIMELOW event will be generated. */ unsigned int minimum_time; /* The level at which a DVPET_BUFF ERTIMELOW event will be generated. */
unsigned int maximum_time; /* The level at which a DVPET_BUFF ERTIMEHIGH event will be generated. */ unsigned int maximum_time; /* The level at which a DVPET_BUFF ERTIMEHIGH event will be generated. */
} audio; } audio; /* struct containing the above two encoding properties for audio */
} DFBBufferThresholds; } DFBBufferThresholds;
/* /*
* Called for each written frame. * Called for each written frame.
*/ */
typedef void (*DVFrameCallback)(void *ctx); typedef void (*DVFrameCallback)(void *ctx);
/************************** /**************************
* IDirectFBVideoProvider * * IDirectFBVideoProvider *
**************************/ **************************/
 End of changes. 6 change blocks. 
4 lines changed or deleted 18 lines changed or added


 directfb_version.h   directfb_version.h 
skipping to change at line 34 skipping to change at line 34
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.
*/ */
#ifndef __DIRECTFB_VERSION_H__ #ifndef __DIRECTFB_VERSION_H__
#define __DIRECTFB_VERSION_H__ #define __DIRECTFB_VERSION_H__
#define DIRECTFB_MAJOR_VERSION (1) #define DIRECTFB_MAJOR_VERSION (1)
#define DIRECTFB_MINOR_VERSION (4) #define DIRECTFB_MINOR_VERSION (4)
#define DIRECTFB_MICRO_VERSION (5) #define DIRECTFB_MICRO_VERSION (6)
#define DIRECTFB_BINARY_AGE (0) #define DIRECTFB_BINARY_AGE (1)
#define DIRECTFB_INTERFACE_AGE (0) #define DIRECTFB_INTERFACE_AGE (1)
#endif /* __DIRECTFB_VERSION_H__ */ #endif /* __DIRECTFB_VERSION_H__ */
 End of changes. 1 change blocks. 
3 lines changed or deleted 3 lines changed or added


 fonts.h   fonts.h 
skipping to change at line 42 skipping to change at line 42
#include <pthread.h> #include <pthread.h>
#include <fusion/lock.h> #include <fusion/lock.h>
#include <directfb.h> #include <directfb.h>
#include <core/coretypes.h> #include <core/coretypes.h>
#include <core/state.h> #include <core/state.h>
typedef struct {
unsigned int height;
DFBSurfacePixelFormat pixel_format;
DFBSurfaceCapabilities surface_caps;
} DFBFontCacheType;
DFBResult dfb_font_manager_create ( CoreDFB *core,
DFBFontManager **ret_man
ager );
DFBResult dfb_font_manager_destroy ( DFBFontManager *manager
);
DFBResult dfb_font_manager_init ( DFBFontManager *manager
,
CoreDFB *core );
DFBResult dfb_font_manager_deinit ( DFBFontManager *manager
);
DFBResult dfb_font_manager_lock ( DFBFontManager *manager
);
DFBResult dfb_font_manager_unlock ( DFBFontManager *manager
);
DFBResult dfb_font_manager_get_cache ( DFBFontManager *manager
,
const DFBFontCacheType *type,
DFBFontCache **ret_cac
he );
DFBResult dfb_font_manager_remove_lru_row( DFBFontManager *manager
);
DFBResult dfb_font_cache_create ( DFBFontManager *manager
,
const DFBFontCacheType *type,
DFBFontCache **ret_cac
he );
DFBResult dfb_font_cache_destroy ( DFBFontCache *cache )
;
DFBResult dfb_font_cache_init ( DFBFontCache *cache,
DFBFontManager *manager
,
const DFBFontCacheType *type );
DFBResult dfb_font_cache_deinit ( DFBFontCache *cache )
;
DFBResult dfb_font_cache_get_row ( DFBFontCache *cache,
unsigned int width,
DFBFontCacheRow **ret_row
);
DFBResult dfb_font_cache_row_create ( DFBFontCache *cache,
DFBFontCacheRow **ret_row
);
DFBResult dfb_font_cache_row_destroy ( DFBFontCacheRow *row );
DFBResult dfb_font_cache_row_init ( DFBFontCacheRow *row,
DFBFontCache *cache )
;
DFBResult dfb_font_cache_row_deinit ( DFBFontCacheRow *row );
/* /*
* glyph struct * glyph struct
*/ */
struct _CoreGlyphData { struct _CoreGlyphData {
DirectLink link; DirectLink link;
unsigned int index; CoreFont *font;
unsigned int layer;
unsigned int row;
CoreSurface *surface; /* contains bitmap of glyph unsigned int index;
*/ unsigned int layer;
int start; /* x offset of glyph in surface
*/
int width; /* width of the glyphs bitmap
*/
int height; /* height of the glyphs bitmap
*/
int left; /* x offset of the glyph
*/
int top; /* y offset of the glyph
*/
int advance; /* placement of next glyph
*/
int magic; CoreSurface *surface; /* contains bitmap of glyph
*/
int start; /* x offset of glyph in surface
*/
int width; /* width of the glyphs bitmap
*/
int height; /* height of the glyphs bitmap
*/
int left; /* x offset of the glyph
*/
int top; /* y offset of the glyph
*/
int advance; /* placement of next glyph
*/
int magic;
DFBFontCache *cache;
DFBFontCacheRow *row;
}; };
#define CORE_GLYPH_DATA_DEBUG_AT(Domain, data)
\
do {
\
D_DEBUG_AT( Domain, " -> index %d\n", (data)->index );
\
D_DEBUG_AT( Domain, " -> layer %d\n", (data)->layer );
\
D_DEBUG_AT( Domain, " -> row %p\n", (data)->row );
\
D_DEBUG_AT( Domain, " -> surface %p\n", (data)->surface );
\
D_DEBUG_AT( Domain, " -> start %d\n", (data)->start );
\
D_DEBUG_AT( Domain, " -> width %d\n", (data)->width );
\
D_DEBUG_AT( Domain, " -> height %d\n", (data)->height );
\
D_DEBUG_AT( Domain, " -> left %d\n", (data)->left );
\
D_DEBUG_AT( Domain, " -> top %d\n", (data)->top );
\
D_DEBUG_AT( Domain, " -> advance %d\n", (data)->advance );
\
} while (0)
typedef struct { typedef struct {
DFBResult (* GetCharacterIndex) ( CoreFont *thiz, DFBResult (* GetCharacterIndex) ( CoreFont *thiz,
unsigned int character, unsigned int character,
unsigned int *ret_index ); unsigned int *ret_index );
DFBResult (* DecodeText) ( CoreFont *thiz, DFBResult (* DecodeText) ( CoreFont *thiz,
const void *text, const void *text,
int length, int length,
unsigned int *ret_indices, unsigned int *ret_indices,
int *ret_num ); int *ret_num );
skipping to change at line 85 skipping to change at line 144
typedef struct { typedef struct {
DirectLink link; DirectLink link;
DFBTextEncodingID encoding; DFBTextEncodingID encoding;
char *name; char *name;
const CoreFontEncodingFuncs *funcs; const CoreFontEncodingFuncs *funcs;
int magic; int magic;
} CoreFontEncoding; } CoreFontEncoding;
typedef struct {
unsigned int stamp;
CoreSurface *surface;
int next_x;
DirectLink *glyphs;
int magic;
} CoreFontCacheRow;
#define DFB_FONT_MAX_LAYERS 2 #define DFB_FONT_MAX_LAYERS 2
/* /*
* font struct * font struct
*/ */
struct _CoreFont { struct _CoreFont {
CoreDFB *core; CoreDFB *core;
DFBFontManager *manager;
DFBSurfaceBlittingFlags blittingflags; DFBSurfaceBlittingFlags blittingflags;
DFBSurfacePixelFormat pixel_format; DFBSurfacePixelFormat pixel_format;
DFBSurfaceCapabilities surface_caps; DFBSurfaceCapabilities surface_caps;
int row_width;
int max_rows;
DFBFontAttributes attributes; DFBFontAttributes attributes;
CoreFontCacheRow **rows; /* contain bitmaps of loa
ded glyphs */
int num_rows;
int active_row;
unsigned int row_stamp;
struct { struct {
DirectHash *glyph_hash; /* infos about loaded gly phs */ DirectHash *glyph_hash; /* infos about loaded gly phs */
CoreGlyphData *glyph_data[128]; CoreGlyphData *glyph_data[128];
} layers[DFB_FONT_MAX_LAYERS]; } layers[DFB_FONT_MAX_LAYERS];
int height; /* font height */ int height; /* font height */
int ascender; /* a positive value, the distance int ascender; /* a positive value, the distance
from the baseline to t he top */ from the baseline to t he top */
int descender; /* a negative value, the distance int descender; /* a negative value, the distance
from the baseline to t he bottom */ from the baseline to t he bottom */
int maxadvance; /* width of largest chara cter */ int maxadvance; /* width of largest chara cter */
pthread_mutex_t lock; /* lock during access to
the font */
const CoreFontEncodingFuncs *utf8; /* for default encoding, DTEID_UTF8 */ const CoreFontEncodingFuncs *utf8; /* for default encoding, DTEID_UTF8 */
CoreFontEncoding **encodings; /* for other encodings */ CoreFontEncoding **encodings; /* for other encodings */
DFBTextEncodingID last_encoding; /* dynamic allocation imp l. helper */ DFBTextEncodingID last_encoding; /* dynamic allocation imp l. helper */
void *impl_data; /* a pointer used by the impl. */ void *impl_data; /* a pointer used by the impl. */
DFBResult (* GetGlyphData) ( CoreFont *thiz, DFBResult (* GetGlyphData) ( CoreFont *thiz,
unsigned int index, unsigned int index,
CoreGlyphData *data ); CoreGlyphData *data );
skipping to change at line 156 skipping to change at line 197
DFBResult (* GetKerning) ( CoreFont *thiz, DFBResult (* GetKerning) ( CoreFont *thiz,
unsigned int prev, unsigned int prev,
unsigned int current, unsigned int current,
int *ret_x, int *ret_x,
int *ret_y ); int *ret_y );
int magic; int magic;
}; };
#define CORE_FONT_DEBUG_AT(Domain, font)
\
do {
\
D_DEBUG_AT( Domain, " -> ascender %d\n", (font)->ascender );
\
D_DEBUG_AT( Domain, " -> descender %d\n", (font)->descender );
\
D_DEBUG_AT( Domain, " -> height %d\n", (font)->height );
\
} while (0)
/* /*
* allocates and initializes a new font structure * allocates and initializes a new font structure
*/ */
DFBResult dfb_font_create( CoreDFB *core, CoreFont **ret_font ); DFBResult dfb_font_create( CoreDFB *core, CoreFont **ret_font );
/* /*
* destroy all data in the CoreFont struct * destroy all data in the CoreFont struct
*/ */
void dfb_font_destroy( CoreFont *font ); void dfb_font_destroy( CoreFont *font );
/* /*
* dispose resources that can be recreated, mainly glyph cache surfaces
*/
DFBResult dfb_font_dispose( CoreFont *font );
/*
* lock the font before accessing it * lock the font before accessing it
*/ */
static inline void static inline void
dfb_font_lock( CoreFont *font ) dfb_font_lock( CoreFont *font )
{ {
D_MAGIC_ASSERT( font, CoreFont ); D_MAGIC_ASSERT( font, CoreFont );
pthread_mutex_lock( &font->lock ); dfb_font_manager_lock( font->manager );
} }
/* /*
* unlock the font after access * unlock the font after access
*/ */
static inline void static inline void
dfb_font_unlock( CoreFont *font ) dfb_font_unlock( CoreFont *font )
{ {
D_MAGIC_ASSERT( font, CoreFont ); D_MAGIC_ASSERT( font, CoreFont );
pthread_mutex_unlock( &font->lock ); dfb_font_manager_unlock( font->manager );
} }
/* /*
* loads glyph data from font * loads glyph data from font
*/ */
DFBResult dfb_font_get_glyph_data( CoreFont *font, DFBResult dfb_font_get_glyph_data( CoreFont *font,
unsigned int index, unsigned int index,
unsigned int layer, unsigned int layer,
CoreGlyphData **glyph_data ); CoreGlyphData **glyph_data );
 End of changes. 15 change blocks. 
43 lines changed or deleted 128 lines changed or added


 list.h   list.h 
skipping to change at line 198 skipping to change at line 198
prev->next = next; prev->next = next;
link->next = first; link->next = first;
first->prev = link; first->prev = link;
*list = link; *list = link;
} }
static __inline__ bool #define direct_list_check_link( link ) \
direct_list_check_link( const DirectLink *link ) ({ \
{ D_MAGIC_ASSERT_IF( link, DirectLink ); \
D_MAGIC_ASSERT_IF( link, DirectLink ); link != NULL; \
})
return link != NULL;
}
#define direct_list_foreach(elem, list) \ #define direct_list_foreach(elem, list) \
for (elem = (__typeof__(elem))(list); \ for (elem = (__typeof__(elem))(list); \
direct_list_check_link( (DirectLink*)(elem) ); \ direct_list_check_link( (DirectLink*)(elem) ); \
elem = (__typeof__(elem))(((DirectLink*)(elem))->next)) elem = (__typeof__(elem))(((DirectLink*)(elem))->next))
#define direct_list_foreach_reverse(elem, list) \ #define direct_list_foreach_reverse(elem, list) \
for (elem = (__typeof__(elem))((list) ? (list)->prev : NULL); \ for (elem = (__typeof__(elem))((list) ? (list)->prev : NULL); \
direct_list_check_link( (DirectLink*)(elem) ); \ direct_list_check_link( (DirectLink*)(elem) ); \
elem = (__typeof__(elem))((((DirectLink*)(elem))->prev->next) ? ( (DirectLink*)(elem))->prev : NULL)) elem = (__typeof__(elem))((((DirectLink*)(elem))->prev->next) ? ( (DirectLink*)(elem))->prev : NULL))
 End of changes. 1 change blocks. 
7 lines changed or deleted 5 lines changed or added


 surface.h   surface.h 
/* /*
(c) Copyright 2001-2009 The world wide DirectFB Open Source Community ( directfb.org) (c) Copyright 2001-2010 The world wide DirectFB Open Source Community ( directfb.org)
(c) Copyright 2000-2004 Convergence (integrated media) GmbH (c) Copyright 2000-2004 Convergence (integrated media) GmbH
All rights reserved. All rights reserved.
Written by Denis Oliver Kropp <dok@directfb.org>, Written by Denis Oliver Kropp <dok@directfb.org>,
Andreas Hundt <andi@fischlustig.de>, Andreas Hundt <andi@fischlustig.de>,
Sven Neumann <neo@directfb.org>, Sven Neumann <neo@directfb.org>,
Ville Syrjälä <syrjala@sci.fi> and Ville Syrjälä <syrjala@sci.fi> and
Claudio Ciccani <klan@users.sf.net>. Claudio Ciccani <klan@users.sf.net>.
skipping to change at line 149 skipping to change at line 149
CSAID_GPU = 0x00000002, /* primary accelerator, as in tradi tional 'gfxcard' core (ACCEL0) */ CSAID_GPU = 0x00000002, /* primary accelerator, as in tradi tional 'gfxcard' core (ACCEL0) */
CSAID_ACCEL0 = 0x00000002, /* accelerators, decoders etc. (CSA ID_ACCEL0 + accel_id<0-5>) */ CSAID_ACCEL0 = 0x00000002, /* accelerators, decoders etc. (CSA ID_ACCEL0 + accel_id<0-5>) */
CSAID_ACCEL1 = 0x00000003, CSAID_ACCEL1 = 0x00000003,
CSAID_ACCEL2 = 0x00000004, CSAID_ACCEL2 = 0x00000004,
CSAID_ACCEL3 = 0x00000005, CSAID_ACCEL3 = 0x00000005,
CSAID_ACCEL4 = 0x00000006, CSAID_ACCEL4 = 0x00000006,
CSAID_ACCEL5 = 0x00000007, CSAID_ACCEL5 = 0x00000007,
CSAID_LAYER0 = 0x00000008, /* display layers, registered by la yer core (CSAID_LAYER0 + layer_id<0-7>) */ CSAID_LAYER0 = 0x00000008, /* display layers, registered by la yer core (CSAID_LAYER0 + layer_id<0-MAX_LAYERS>) */
CSAID_LAYER1 = 0x00000009, CSAID_LAYER1 = 0x00000009,
CSAID_LAYER2 = 0x0000000a, CSAID_LAYER2 = 0x0000000a,
CSAID_LAYER3 = 0x0000000b, CSAID_LAYER3 = 0x0000000b,
CSAID_LAYER4 = 0x0000000c, CSAID_LAYER4 = 0x0000000c,
CSAID_LAYER5 = 0x0000000d, CSAID_LAYER5 = 0x0000000d,
CSAID_LAYER6 = 0x0000000e, CSAID_LAYER6 = 0x0000000e,
CSAID_LAYER7 = 0x0000000f, CSAID_LAYER7 = 0x0000000f,
CSAID_LAYER8 = 0x00000010,
CSAID_LAYER9 = 0x00000011,
CSAID_LAYER10 = 0x00000012,
CSAID_LAYER11 = 0x00000013,
CSAID_LAYER12 = 0x00000014,
CSAID_LAYER13 = 0x00000015,
CSAID_LAYER14 = 0x00000016,
CSAID_LAYER15 = 0x00000017,
_CSAID_NUM = 0x00000010, /* number of statically assigned ID s for usage in static arrays */ _CSAID_NUM = 0x00000018, /* number of statically assigned ID s for usage in static arrays */
CSAID_ANY = 0x00000100, /* any other accessor needs to be r egistered using IDs starting from here */ CSAID_ANY = 0x00000100, /* any other accessor needs to be r egistered using IDs starting from here */
} CoreSurfaceAccessorID; } CoreSurfaceAccessorID;
typedef enum { typedef enum {
CSBR_FRONT = 0, CSBR_FRONT = 0,
CSBR_BACK = 1, CSBR_BACK = 1,
CSBR_IDLE = 2 CSBR_IDLE = 2
} CoreSurfaceBufferRole; } CoreSurfaceBufferRole;
skipping to change at line 210 skipping to change at line 218
int num_buffers; int num_buffers;
int buffer_indices[MAX_SURFACE_BUFFERS]; int buffer_indices[MAX_SURFACE_BUFFERS];
unsigned int flips; unsigned int flips;
CorePalette *palette; CorePalette *palette;
GlobalReaction palette_reaction; GlobalReaction palette_reaction;
FusionSHMPoolShared *shmpool; FusionSHMPoolShared *shmpool;
void *data; /* Shared system driver-specifi
c data for this surface. */
}; };
/* /*
* Creates a pool of surface objects. * Creates a pool of surface objects.
*/ */
FusionObjectPool *dfb_surface_pool_create( const FusionWorld *world ); FusionObjectPool *dfb_surface_pool_create( const FusionWorld *world );
/* /*
* Generates dfb_surface_ref(), dfb_surface_attach() etc. * Generates dfb_surface_ref(), dfb_surface_attach() etc.
*/ */
 End of changes. 5 change blocks. 
3 lines changed or deleted 14 lines changed or added


 surface_pool.h   surface_pool.h 
/* /*
(c) Copyright 2001-2009 The world wide DirectFB Open Source Community ( directfb.org) (c) Copyright 2001-2010 The world wide DirectFB Open Source Community ( directfb.org)
(c) Copyright 2000-2004 Convergence (integrated media) GmbH (c) Copyright 2000-2004 Convergence (integrated media) GmbH
All rights reserved. All rights reserved.
Written by Denis Oliver Kropp <dok@directfb.org>, Written by Denis Oliver Kropp <dok@directfb.org>,
Andreas Hundt <andi@fischlustig.de>, Andreas Hundt <andi@fischlustig.de>,
Sven Neumann <neo@directfb.org>, Sven Neumann <neo@directfb.org>,
Ville Syrjälä <syrjala@sci.fi> and Ville Syrjälä <syrjala@sci.fi> and
Claudio Ciccani <klan@users.sf.net>. Claudio Ciccani <klan@users.sf.net>.
skipping to change at line 258 skipping to change at line 258
DFBResult dfb_surface_pool_write ( CoreSurfacePool *pool, DFBResult dfb_surface_pool_write ( CoreSurfacePool *pool,
CoreSurfaceAllocation *allocation, CoreSurfaceAllocation *allocation,
const void *data, const void *data,
int pitch, int pitch,
const DFBRectangle *rect ); const DFBRectangle *rect );
DFBResult dfb_surface_pool_enumerate ( CoreSurfacePool *pool, DFBResult dfb_surface_pool_enumerate ( CoreSurfacePool *pool,
CoreSurfaceAllocCallback callback, CoreSurfaceAllocCallback callback,
void *ctx ); void *ctx );
/*
Get a surface pool's process-specific void data pointer.
*/
void *
surface_pool_get_local( const CoreSurfacePool *pool );
#endif #endif
 End of changes. 2 change blocks. 
1 lines changed or deleted 7 lines changed or added


 system.h   system.h 
/* /*
(c) Copyright 2001-2009 The world wide DirectFB Open Source Community ( directfb.org) (c) Copyright 2001-2010 The world wide DirectFB Open Source Community ( directfb.org)
(c) Copyright 2000-2004 Convergence (integrated media) GmbH (c) Copyright 2000-2004 Convergence (integrated media) GmbH
All rights reserved. All rights reserved.
Written by Denis Oliver Kropp <dok@directfb.org>, Written by Denis Oliver Kropp <dok@directfb.org>,
Andreas Hundt <andi@fischlustig.de>, Andreas Hundt <andi@fischlustig.de>,
Sven Neumann <neo@directfb.org>, Sven Neumann <neo@directfb.org>,
Ville Syrjälä <syrjala@sci.fi> and Ville Syrjälä <syrjala@sci.fi> and
Claudio Ciccani <klan@users.sf.net>. Claudio Ciccani <klan@users.sf.net>.
skipping to change at line 191 skipping to change at line 191
unsigned int (*VideoRamLength)( void ); unsigned int (*VideoRamLength)( void );
unsigned long (*AuxMemoryPhysical)( unsigned int offset ); unsigned long (*AuxMemoryPhysical)( unsigned int offset );
void* (*AuxMemoryVirtual)( unsigned int offset ); void* (*AuxMemoryVirtual)( unsigned int offset );
unsigned int (*AuxRamLength)( void ); unsigned int (*AuxRamLength)( void );
void (*GetBusID)( int *ret_bus, int *ret_dev, int *ret_func ); void (*GetBusID)( int *ret_bus, int *ret_dev, int *ret_func );
void (*GetDeviceID)( unsigned int *ret_vendor_id, void (*GetDeviceID)( unsigned int *ret_vendor_id,
unsigned int *ret_device_id ); unsigned int *ret_device_id );
/*
* Shared Surface Data Creation/Destruction Functions
*
* These functions are used to create and destroy the shared CoreSurfa
ce
* data. The Init function is called before the surface's buffers are
* created. The Destroy function is called after the surface buffers
are
* released. The allocated data is only used by the systems driver.
*
* Note: In the init and destroy functions it is legal for the data
* parameter to be null.
*/
int (*SurfaceDataSize)( void );
void (*SurfaceDataInit)( CoreSurface *surface, void *data );
void (*SurfaceDataDestroy)( CoreSurface *surface, void *data
);
} CoreSystemFuncs; } CoreSystemFuncs;
DFBResult DFBResult
dfb_system_lookup( void ); dfb_system_lookup( void );
CoreSystemType CoreSystemType
dfb_system_type( void ); dfb_system_type( void );
CoreSystemCapabilities CoreSystemCapabilities
dfb_system_caps( void ); dfb_system_caps( void );
skipping to change at line 254 skipping to change at line 269
unsigned int unsigned int
dfb_system_auxram_length( void ); dfb_system_auxram_length( void );
void void
dfb_system_get_busid( int *ret_bus, int *ret_dev, int *ret_func ); dfb_system_get_busid( int *ret_bus, int *ret_dev, int *ret_func );
void void
dfb_system_get_deviceid( unsigned int *ret_vendor_id, dfb_system_get_deviceid( unsigned int *ret_vendor_id,
unsigned int *ret_device_id ); unsigned int *ret_device_id );
int
dfb_system_surface_data_size( void );
void
dfb_system_surface_data_init( CoreSurface *surface, void *data );
void
dfb_system_surface_data_destroy( CoreSurface *surface, void *data );
#endif #endif
 End of changes. 3 change blocks. 
1 lines changed or deleted 28 lines changed or added


 types.h   types.h 
skipping to change at line 158 skipping to change at line 158
DENUM_CANCEL = 0x00000001 /* Cancel enumeration */ DENUM_CANCEL = 0x00000001 /* Cancel enumeration */
} DirectEnumerationResult; } DirectEnumerationResult;
typedef u32 unichar; typedef u32 unichar;
typedef struct __D_DirectCleanupHandler DirectCleanupHandler; typedef struct __D_DirectCleanupHandler DirectCleanupHandler;
typedef struct __D_DirectConfig DirectConfig; typedef struct __D_DirectConfig DirectConfig;
typedef struct __D_DirectHash DirectHash; typedef struct __D_DirectHash DirectHash;
typedef struct __D_DirectLink DirectLink; typedef struct __D_DirectLink DirectLink;
typedef struct __D_DirectLog DirectLog; typedef struct __D_DirectLog DirectLog;
typedef struct __D_DirectMap DirectMap;
typedef struct __D_DirectModuleDir DirectModuleDir; typedef struct __D_DirectModuleDir DirectModuleDir;
typedef struct __D_DirectModuleEntry DirectModuleEntry; typedef struct __D_DirectModuleEntry DirectModuleEntry;
typedef struct __D_DirectSerial DirectSerial; typedef struct __D_DirectSerial DirectSerial;
typedef struct __D_DirectSignalHandler DirectSignalHandler; typedef struct __D_DirectSignalHandler DirectSignalHandler;
typedef struct __D_DirectStream DirectStream; typedef struct __D_DirectStream DirectStream;
typedef struct __D_DirectTraceBuffer DirectTraceBuffer; typedef struct __D_DirectTraceBuffer DirectTraceBuffer;
typedef struct __D_DirectTree DirectTree; typedef struct __D_DirectTree DirectTree;
typedef struct __D_DirectThread DirectThread; typedef struct __D_DirectThread DirectThread;
typedef struct __D_DirectThreadInitHandler DirectThreadInitHandler; typedef struct __D_DirectThreadInitHandler DirectThreadInitHandler;
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 util.h   util.h 
skipping to change at line 36 skipping to change at line 36
Boston, MA 02111-1307, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GFX__UTIL_H__ #ifndef __GFX__UTIL_H__
#define __GFX__UTIL_H__ #define __GFX__UTIL_H__
#include <core/surface.h> #include <core/surface.h>
void dfb_gfx_copy( CoreSurface *source, CoreSurface *destination, const DFB Rectangle *rect ); void dfb_gfx_copy( CoreSurface *source, CoreSurface *destination, const DFB Rectangle *rect );
void dfb_gfx_copy_to( CoreSurface *source, CoreSurface *destination, const DFBRectangle *rect, int x, int y, bool from_back ); void dfb_gfx_copy_to( CoreSurface *source, CoreSurface *destination, const DFBRectangle *rect, int x, int y, bool from_back );
void dfb_gfx_stretch_to( CoreSurface *source, CoreSurface *destination, con st DFBRectangle *srect, const DFBRectangle *drect, bool from_back );
void dfb_back_to_front_copy( CoreSurface *surface, const DFBRegion *region ); void dfb_back_to_front_copy( CoreSurface *surface, const DFBRegion *region );
void dfb_back_to_front_copy_rotation( CoreSurface *surface, const DFBRegion *region, int rotation ); void dfb_back_to_front_copy_rotation( CoreSurface *surface, const DFBRegion *region, int rotation );
void dfb_clear_depth( CoreSurface *surface, const DFBRegion *region ); void dfb_clear_depth( CoreSurface *surface, const DFBRegion *region );
void dfb_sort_triangle( DFBTriangle *tri ); void dfb_sort_triangle( DFBTriangle *tri );
void dfb_gfx_copy_regions( CoreSurface *source, void dfb_gfx_copy_regions( CoreSurface *source,
CoreSurfaceBufferRole from, CoreSurfaceBufferRole from,
CoreSurface *destination, CoreSurface *destination,
CoreSurfaceBufferRole to, CoreSurfaceBufferRole to,
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/