libgpac
Documentation of the core library of GPAC
directfb_wrapper.c File Reference
#include <directfb.h>
#include <directfb_strings.h>
#include <directfb_util.h>
#include <direct/util.h>
#include <gpac/constants.h>
#include <gpac/events_constants.h>
#include <gpac/events.h>
#include "directfb_out.h"
+ Include dependency graph for directfb_wrapper.c:

Data Structures

struct  DirectFBVidCtx
 
struct  DeviceInfo
 

Macros

#define DFBCHECK(x...)
 
#define SET_DRAWING_FLAGS(flags)    ctx->primary->SetDrawingFlags( ctx->primary, (flags) | (do_xor ? DSDRAW_XOR : 0) )
 

Functions

size_t DirectFBVid_GetCtxSizeOf (void)
 
void DirectFBVid_DrawHLineWrapper (DirectFBVidCtx *ctx, u32 x, u32 y, u32 length, u8 r, u8 g, u8 b)
 
void DirectFBVid_DrawHLineAlphaWrapper (DirectFBVidCtx *ctx, u32 x, u32 y, u32 length, u8 r, u8 g, u8 b, u8 alpha)
 
void DirectFBVid_DrawRectangleWrapper (DirectFBVidCtx *ctx, u32 x, u32 y, u32 width, u32 height, u8 r, u8 g, u8 b, u8 a)
 
u32 DirectFBVid_CtxPrimaryLock (DirectFBVidCtx *ctx, void **buf, u32 *pitch)
 
static DFBEnumerationResult enum_input_device (DFBInputDeviceID device_id, DFBInputDeviceDescription desc, void *data)
 
u32 DirectFBVid_TranslatePixelFormatToGPAC (u32 dfbpf)
 
void DirectFBVid_InitAndCreateSurface (DirectFBVidCtx *ctx, char *dfb_system)
 
void DirectFBVid_CtxPrimaryUnlock (DirectFBVidCtx *ctx)
 
u32 DirectFBVid_CtxGetWidth (DirectFBVidCtx *ctx)
 
u32 DirectFBVid_CtxGetHeight (DirectFBVidCtx *ctx)
 
void * DirectFBVid_CtxGetPrimary (DirectFBVidCtx *ctx)
 
u32 DirectFBVid_CtxGetPixelFormat (DirectFBVidCtx *ctx)
 
Bool DirectFBVid_CtxIsHwMemory (DirectFBVidCtx *ctx)
 
u32 DirectFBVid_CtxPrimaryFlip (DirectFBVidCtx *ctx)
 
void DirectFBVid_CtxSetIsInit (DirectFBVidCtx *ctx, Bool val)
 
void DirectFBVid_CtxSetFlipMode (DirectFBVidCtx *ctx, u32 flip_mode)
 
void DirectFBVid_CtxPrimaryProcessGetAccelerationMask (DirectFBVidCtx *ctx)
 
u32 DirectFBVid_ShutdownWrapper (DirectFBVidCtx *ctx)
 
u32 DirectFBVid_TranslatePixelFormatFromGPAC (u32 gpacpf)
 
u32 DirectFBVid_BlitWrapper (DirectFBVidCtx *ctx, u32 video_src_width, u32 video_src_height, u32 video_src_pixel_format, char *video_src_buffer, s32 video_src_pitch_y, u32 src_wnd_x, u32 src_wnd_y, u32 src_wnd_w, u32 src_wnd_h, u32 dst_wnd_x, u32 dst_wnd_y, u32 dst_wnd_w, u32 dst_wnd_h, u32 overlay_type)
 
void directfb_translate_key (DFBInputDeviceKeyIdentifier DirectFBkey, u32 *flags, u32 *key_code)
 
u32 DirectFBVid_ProcessMessageQueueWrapper (DirectFBVidCtx *ctx, u8 *type, u32 *flags, u32 *key_code, s32 *x, s32 *y, u32 *button)
 

Variables

static int do_xor = 0
 

Data Structure Documentation

◆ __DirectFBVidCtx

struct __DirectFBVidCtx
Data Fields
IDirectFB * dfb
IDirectFBSurface * primary
u32 width
u32 height
u32 pixel_format
Bool use_systems_memory
Bool disable_aa
Bool is_init
int accel_drawline
int accel_fillrect
DFBSurfaceFlipFlags flip_mode
IDirectFBEventBuffer * events
IDirectFBInputDevice * mouse
IDirectFBWindow * window
IDirectFBDisplayLayer * layer

◆ _DeviceInfo

struct _DeviceInfo
Data Fields
DFBInputDeviceID device_id
DFBInputDeviceDescription desc
DeviceInfo * next

Macro Definition Documentation

◆ DFBCHECK

#define DFBCHECK (   x...)
Value:
do { \
err = x; \
if (err != DFB_OK) { \
fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
DirectFBErrorFatal( #x, err ); \
} \
} while (0)

◆ SET_DRAWING_FLAGS

#define SET_DRAWING_FLAGS (   flags)     ctx->primary->SetDrawingFlags( ctx->primary, (flags) | (do_xor ? DSDRAW_XOR : 0) )

Function Documentation

◆ DirectFBVid_GetCtxSizeOf()

size_t DirectFBVid_GetCtxSizeOf ( void  )
+ Here is the caller graph for this function:

◆ DirectFBVid_DrawHLineWrapper()

void DirectFBVid_DrawHLineWrapper ( DirectFBVidCtx *  ctx,
u32  x,
u32  y,
u32  length,
u8  r,
u8  g,
u8  b 
)

function DirectFBVid_DrawHLineWrapper

  • using hardware accelerator to draw horizontal line

◆ DirectFBVid_DrawHLineAlphaWrapper()

void DirectFBVid_DrawHLineAlphaWrapper ( DirectFBVidCtx *  ctx,
u32  x,
u32  y,
u32  length,
u8  r,
u8  g,
u8  b,
u8  alpha 
)

function DirectFBVid_DrawHLineWrapper

  • using hardware accelerator to draw horizontal line with alpha

◆ DirectFBVid_DrawRectangleWrapper()

void DirectFBVid_DrawRectangleWrapper ( DirectFBVidCtx *  ctx,
u32  x,
u32  y,
u32  width,
u32  height,
u8  r,
u8  g,
u8  b,
u8  a 
)

function DirectFBVid_DrawRectangleWrapper

  • using hardware accelerator to fill a rectangle with the given color

◆ DirectFBVid_CtxPrimaryLock()

u32 DirectFBVid_CtxPrimaryLock ( DirectFBVidCtx *  ctx,
void **  buf,
u32 pitch 
)

function DirectFBVid_CtxPrimaryLock

  • lock the surface (in order to access certain data)
+ Here is the caller graph for this function:

◆ enum_input_device()

static DFBEnumerationResult enum_input_device ( DFBInputDeviceID  device_id,
DFBInputDeviceDescription  desc,
void *  data 
)
static
+ Here is the caller graph for this function:

◆ DirectFBVid_TranslatePixelFormatToGPAC()

u32 DirectFBVid_TranslatePixelFormatToGPAC ( u32  dfbpf)

function DirectFBVid_InitAndCreateSurface

  • initialize and create DirectFB surface

function DirectFBVid_TranslatePixelFormatToGPAC

  • translate pixel from DirectFb to GPAC
+ Here is the caller graph for this function:

◆ DirectFBVid_InitAndCreateSurface()

void DirectFBVid_InitAndCreateSurface ( DirectFBVidCtx *  ctx,
char *  dfb_system 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DirectFBVid_CtxPrimaryUnlock()

void DirectFBVid_CtxPrimaryUnlock ( DirectFBVidCtx *  ctx)

function DirectFBVid_CtxPrimaryUnlock

  • unlock a surface after direct access (in order to fetch data)
+ Here is the caller graph for this function:

◆ DirectFBVid_CtxGetWidth()

u32 DirectFBVid_CtxGetWidth ( DirectFBVidCtx *  ctx)

function DirectFBVid_CtxGetWidth

  • returns screen width
+ Here is the caller graph for this function:

◆ DirectFBVid_CtxGetHeight()

u32 DirectFBVid_CtxGetHeight ( DirectFBVidCtx *  ctx)

function DirectFBVid_CtxGetHeight

  • returns screen height
+ Here is the caller graph for this function:

◆ DirectFBVid_CtxGetPrimary()

void* DirectFBVid_CtxGetPrimary ( DirectFBVidCtx *  ctx)

function DirectFBVid_CtxGetPrimary

  • return the primary surface
+ Here is the caller graph for this function:

◆ DirectFBVid_CtxGetPixelFormat()

u32 DirectFBVid_CtxGetPixelFormat ( DirectFBVidCtx *  ctx)

function DirectFBVid_CtxGetPixelFormat

  • get pixel format
+ Here is the caller graph for this function:

◆ DirectFBVid_CtxIsHwMemory()

Bool DirectFBVid_CtxIsHwMemory ( DirectFBVidCtx *  ctx)

function DirectFBVid_CtxIsHwMemory

  • return value whether system memory is used or not
+ Here is the caller graph for this function:

◆ DirectFBVid_CtxPrimaryFlip()

u32 DirectFBVid_CtxPrimaryFlip ( DirectFBVidCtx *  ctx)

function DirectFBVid_CtxPrimaryFlip

  • flipping buffers
+ Here is the caller graph for this function:

◆ DirectFBVid_CtxSetIsInit()

void DirectFBVid_CtxSetIsInit ( DirectFBVidCtx *  ctx,
Bool  val 
)

function DirectFBVid_CtxSetIsInit

  • boolean showing whether DirectFB is initialized
+ Here is the caller graph for this function:

◆ DirectFBVid_CtxSetFlipMode()

void DirectFBVid_CtxSetFlipMode ( DirectFBVidCtx *  ctx,
u32  flip_mode 
)

function DirectFBVid_CtxSetFlipMode

  • set flip mode

◆ DirectFBVid_CtxPrimaryProcessGetAccelerationMask()

void DirectFBVid_CtxPrimaryProcessGetAccelerationMask ( DirectFBVidCtx *  ctx)

function DirectFBVid_CtxPrimaryProcessGetAccelerationMask

  • Get a mask of drawing functions that are hardware accelerated with the current settings.

◆ DirectFBVid_ShutdownWrapper()

u32 DirectFBVid_ShutdownWrapper ( DirectFBVidCtx *  ctx)

function DirectFBVid_ShutdownWrapper

  • shutdown DirectFB module
+ Here is the caller graph for this function:

◆ DirectFBVid_TranslatePixelFormatFromGPAC()

u32 DirectFBVid_TranslatePixelFormatFromGPAC ( u32  gpacpf)

Blit a surface

function DirectFBVid_TranslatePixelFormatToGPAC

  • translate pixel from GPAC to DirectFB
+ Here is the caller graph for this function:

◆ DirectFBVid_BlitWrapper()

u32 DirectFBVid_BlitWrapper ( DirectFBVidCtx *  ctx,
u32  video_src_width,
u32  video_src_height,
u32  video_src_pixel_format,
char *  video_src_buffer,
s32  video_src_pitch_y,
u32  src_wnd_x,
u32  src_wnd_y,
u32  src_wnd_w,
u32  src_wnd_h,
u32  dst_wnd_x,
u32  dst_wnd_y,
u32  dst_wnd_w,
u32  dst_wnd_h,
u32  overlay_type 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ directfb_translate_key()

void directfb_translate_key ( DFBInputDeviceKeyIdentifier  DirectFBkey,
u32 flags,
u32 key_code 
)

function DirectFBVid_ProcessMessageQueueWrapper

  • handle DirectFB events
  • key events

function directfb_translate_key

  • translate key from DirectFB to GPAC
+ Here is the caller graph for this function:

◆ DirectFBVid_ProcessMessageQueueWrapper()

u32 DirectFBVid_ProcessMessageQueueWrapper ( DirectFBVidCtx *  ctx,
u8 type,
u32 flags,
u32 key_code,
s32 x,
s32 y,
u32 button 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ do_xor

int do_xor = 0
static