directfb android,Gitee 极速下载

DirectFB README

---------------

DirectFB is a graphics library which was designed with embedded

systems in mind. It offers maximum hardware accelerated performance

at a minimum of resource usage and overhead.

Check http://www.directfb.org/ for more and up to date infos.

Supported Operating Systems

---------------------------

- GNU/Linux

Using SDL (without acceleration support), DirectFB also supports

the following operating systems:

- FreeBSD (last tested: DirectFB 0.9.21 on FreeBSD 5.2)

- NetBSD (tested on NetBSD 1.6)

- OpenBSD (tested on OpenBSD 3.2)

(If you have problems, try ./configure --disable-mmx)

Please note that SDL support is experimental and incomplete. It is

intended for developers to allow development of DirectFB applications

in various environments.

Native (non SDL) support for the following operating systems is in progress:

- Mac OS X (tested on Mac OS X 10.3.5)

We do not have the resources to ensure that every release of

DirectFB works on all supported platforms. If you are a user of one

of the operating system listed above, and have the time to test the

CVS or GIT version regularly, your help is greatly appreciated.

Build Requirements

------------------

Mandatory are

- libc

- libpthread

- libm

- libdl

For regenerating autofoo (./autogen.sh or autoreconf)

- autoconf

- automake

- libtool

- pkg-config

Optionally, depending on the configuration you want:

FBDev

- Linux kernel 2.2.x or newer with working frame buffer device

(check /proc/fb) for the fbdev system.

SDL

- libSDL (Simple Direct Media Layer) for the sdl system.

X11

- libX11 (X11 client library) for the X11 system (libx11-dev and libxext-dev packages).

The following libraries are optional, but important (Debian package names):

Fonts

- libfreetype6-dev for TrueType and other fonts

Images

- libjpeg-dev for Joint Picture Expert Group images

- libpng-dev for Portable Network Graphics

Extra

- zlib1g-dev for compressed screenshot support (also needed by libpng)

The multi application core also requires , see the

section "Running multiple DirectFB applications" for more details.

The build of the image and font providers can be disabled but we

strongly suggest that you don't do this since the code examples and

a lot of DirectFB applications depend on the functionality provided

by them.

The libmpeg3 video provider requires the libmpeg3 library which is

not commonly installed. We provide this package on our web-site at

http://www.directfb.org/download/contrib/.

The avifile and flash video providers that used to be shipped with

DirectFB have been moved to the DirectFB-extra package.

We suggest you also install pkg-config available from

http://www.freedesktop.org/software/pkgconfig/. It will help you

to compile applications based on DirectFB.

Usage Requirements

------------------

Depending on the DirectFB application you want to run, you need some

or all of these:

- A working frame buffer device (check the output of 'fbset -i').

- A keyboard (if it works on the console, everything should be fine).

- A PS/2 or serial mouse for windowing. USB and ADB mice do also work

via PS/2 emulation.

Using the single application core you always need access to /dev/tty0,

/dev/fb0 and the mouse device (/dev/psaux, /dev/mouse).

You can either run all DirectFB applications as root or allow users

to access these devices. A reasonable way to do this is to add users

to the group tty (or some other group) and allow this group to read

and write the files in /dev:

crw-rw---- 1 root tty 29, 0 /dev/fb0

crw-rw---- 1 root tty 10, 1 /dev/psaux

crw-r----- 1 root tty 4, 0 /dev/tty0

If you are using the multi application core, only the master process needs

access to all of these devices. Additional processes (slaves) just need

access to /dev/fb0 and:

crw-rw---- 1 root fusion 29, 0 /dev/fusion/0

Note that the master creates a shared memory file, probably

in '/dev/shm/fusion.0'. It's read/writeable for anyone matching

the master process' user or group.

Some applications from the DirectFB-examples package have additional

requirements:

- A video card supported by video4linux for df_video.

- A joystick for df_joystick.

Running multiple DirectFB applications at the same time

-------------------------------------------------------

With the default build of the DirectFB library, only one DirectFB

application may be running. However you have the option to use the

multi application core of DirectFB which allows multiple DirectFB

applications to run at the same time within a session.

DirectFB applications communicate through a layer we call "Fusion".

This layer was previously implemented completely in user space using

semaphores and message queues. But since 0.9.15 the Fusion Kernel

Device is required which implements critical parts of Fusion and thus

lead to better performance and decent stability. To install this kernel

module (only available for Linux yet), find the linux-fusion

module in our CVS or GIT repository or on the DirectFB website.

For DirectFB 1.4.x releases you should use linux-fusion 8.1.1 or newer.

Compile DirectFB with multi-application core enabled:

./configure --enable-multi

Make sure your Linux kernel supports tmpfs. This is explained in

the kernel sources in Documentation/filesystems/tmpfs.txt.

Mount a tmpfs filesystem as /dev/shm:

mount tmpfs /dev/shm -ttmpfs

Optionally a mount point can be specified via the "tmpfs" option,

see directfbrc(5). The option has to be the same for all processes.

A good way to test the multi-application core is to install the lite

toolkit and DFBTerm, a DirectFB terminal (both available in the

DirectFB CVS/GIT repository). You can then start DirectFB applications

from dfbterm.

Recommendations

---------------

To take full advantage of hardware acceleration,

a Matrox G200/G400/G450/G550 graphics card is recommend for this

version of DirectFB. The drivers for ATI128, Voodoo 3/4/5/Banshee,

NeoMagic and S3 Savage cards included with this release are work in

progress and only yet support a subset of the possible accelerations.

Installation

------------

1) In the DirectFB directory type:

./configure

make

make install (as superuser)

Use './configure --help' to get a list of possible configure options.

Imported options include:

--enable-multi Enables the Multi Application Core

--enable-debug Enables many debug messages and assertions

--enable-trace Enables run time stack trace information

Debugging and especially stack trace support are a performance

impact. It may be noticably slower in some areas, e.g. text drawing.

You may use the options "no-debug" and "no-trace" by default, e.g.

in '/etc/directfbrc', and use "--dfb:debug,trace" on the command

line if needed.

2) Make sure that "/lib" is listed in your /etc/ld.so.conf.

The default prefix is "/usr/local". After adding it you have to

run 'ldconfig' as superuser.

Alternatively, you can add the path to the environment

variable LD_LIBRARY_PATH. This is useful for temporarily

switching to another installed version.

3) You might want to copy fb.modes to /etc or merge it with your

existing /etc/fb.modes file. The first entry will be used by

default - copy other entries you may need.

4) If you want to use a serial mouse, create a link called /dev/mouse

that points to serial device (e.g. /dev/ttyS0). Then add a line

describing your mouse-protocol to /etc/directfbrc or ~/.directfbrc:

"mouse-protocol=[ms|ms3|mouseman|mousesystems]".

5) If you are cross compiling and have installed the required libraries

someplace other than /usr/local/lib be sure to add the bin directory

for those libraries to the front of your 'PATH'.

For instance if you configured using:

--prefix=/dfb/usr/local

then be sure to

export PATH=/dfb/usr/local/bin:$PATH

before compiling and installing.

Configuring DirectFB

--------------------

There are lots of things that can be configured. We try to ship DirectFB

with reasonable defaults but you might have to tweak things. There are

several ways to do this. You may edit the system-wide configuration

file /etc/directfbrc or the user-specific $HOME/.directfbrc.

There's a manual page called directfbrc(5) that documents all the settings.

The same manual page also explains how DirectFB application can be

configured via the command-line.

Configuring the Linux frame buffer device

-----------------------------------------

DirectFB's prefered way-of-working needs a Linux kernel

with frame buffer support. Check the documentation in the kernel tree

(/usr/src/linux/Documentation/fb/) on how to enable the frame buffer device

for your graphics card.

The generic VESA frame buffer device does not support mode switching

and you will not get hardware acceleration. To make DirectFB work with

veasfb, you should add the following lines to /etc/lilo.conf:

append="video=vesa:ywrap,mtrr"

'ywrap' enables panning with wraparound.

'mtrr' enables setting caching type for the frame buffer to write-combining.

vga=791

This sets the mode on startup. 791 means 1024x768@16, 788 means 800x600@16.

All VESA Video Modes:

Bits 640x480 800x600 1024x768 1280x1024 1600x1200

8 769 771 773 775 796

16 785 788 791 794 798

32 786 789 792 795 799

Other frame buffer devices support mode switching. DirectFB will only

support modes listed in your /etc/fb.modes file. By default the first

entry found is used.

If you have a Matrox card you may want to try the vsync patch found in

the patches directory that enables applications to "idle wait" for the

vertical retrace.

Using the builtin "window manager"

----------------------------------

Since DirectFB lacks a real window manager, we added a hack to the

window stack to allow for basic window management. While pressing

the (or Windows) key or alternatively you can do

the following:

- Drag your mouse to move the focused window.

- Drag and press to resize the focused window.

- Drag and press to change the opacity of the focused window.

- Press C to close the focused window.

- Press A to lower the focused window to the bottom.

- Press X to cycle the focus through the windows.

- Press S to raise the lowest window to the top.

- Press P to enable and show the mouse cursor.

- Press R to rotate the focused window by 90 degree.

- Press E to focus the window currently under the mouse cursor,

useful in conjunction with 'X'.

- Press Escape to return from fullscreen mode to the desktop.

(currently not advisable if the fullscreen app is still flipping)

- Press F12 to redraw the whole window stack.

You might want to use the "capslock-meta" option (see directfbrc(5))

if you don't have a key.

Documentation

-------------

A complete API reference documentation in HTML format is created during

the build in the docs directory. You may also access the API reference

as well as a concepts overview, tutorials and the FAQ online at

http://www.directfb.org/documentation/.

Thanks to

---------

Johannes Zellner

Till Adam

Joachim Steiger

Felix von Leitner

Johannes Stezenbach

Michael Natterer

Holger Waechtler

Kim JeongHoe

Jason Gaiser

W. Michael Petullo

Jiri Svoboda

Hallvar Helleseth

Topi Kanerva

Daniel Mack

Ara Hacopian

Mike Haertel

Enno Brehm

Martin Mueller

Sebastian Klemke

Fredrik Hallenberg

Antonino Daplas

Scott A McConnell

Alex SONG

Ville Syrjl

Brian J. Murrell

Tim Janik

Billy Biggs

Andreas Oberritter

Simon Ueng

Scott Brumbaugh

Sebastian Ley

James Su

Sarma Kolluru

Oliver Schwartz

Florian

J.P. Delport

Michel Dnzer

Maurizio Monge

Tim Wright

Liam Girdwood

Andreas Robinson

Michael Hunold

Brandon M. Reynolds

Micha Nelissen

Vadim Catana

Henning Glawe

Ed Millard

Claudio Ciccani

Tom Bridgwater

Oskar Liljeblad

Bryce Nichols

Stefan Lucke

Mws

Ivan Daniluk

Mark Salter

Martin Ltken

Sylvain Meyer

Mark Adams

Damian Kowalewski

Jakub Bogusz

Nathanael D. Noblet

Ryan Burns

Colin Watson

Guillem Jover

Jeff Bailey

Andreas Jochens

Daniel J Laird

Marko Mkel

Nils Magnus Larsgard

Pr Degerman

Michel van Noorloos

Gery

Shane

Paul Mackerras

Attilio Fiandrotti

Vaclav Slavik

Philip Jgenstedt

sridewa

Eugene Everson

Mike Crowe

Kieran Bingham

Luis Mondesi +lemsx1 +gmail,com

Keith Mok

GARDET Guillaume

Phil Endecott

Brian Austin

Keith Mok

Young Hoon

Special thanks to Ville Syrjala for his great work on the

Matrox TV-Out support and for his several patches including

fixes and enhancements for the whole library. He also did

several ports like UAE or mplayer for DirectFB. Check out his

site at 'http://www.sci.fi/~syrjala/'.

Legal stuff

-----------

(c) Copyright 2012-2013 DirectFB integrated media GmbH

(c) Copyright 2001-2013 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 Shimokawa ,

Marek Pikarski ,

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值