These releases superseed the 1.4.14 releases which introduced a lot of new features (most notably secure-fusion),
and also unfortunately many regressions.
We tried to fix all known regressions with this 1.4.15 release and also backported secure-fusion fixes and feature
completion from the master branch.
If you are building a project with 1.4.14 you really should update. If you are on 1.4.13 or earlier, you should know
that updating to 1.4.15 changes a lot.
As we noted in our post about the new release model, 1.4.15 will be the last 1.4 release that introduces a lot of
internal changes. There will be only bugfixes from now on and no API/ABI changes. Note that there
could be an exception regarding the new optional resource-manager interface.
Please find in the download section the following releases:
- DirectFB 1.4.15
- SaWMan 1.4.15
- linux-fusion 8.7.0
- flux 1.1.0
For detailed info click on the news title
Changes for DirectFB 1.4.15
IDirectFBSurface
- Fix missing CoreGraphicsStateClient_Deinit() that has led to a memory leak.
ICoreResourceManager and ICoreResourceClient
- Add new interfaces for resource management, optionally being loaded as modules.
- The manager has one method to create a new client instance (called within master, per slave).
- The client has a few methods for checking surface creation/reconfig, adding/removing/updating surfaces.
Runtime Options
- Add "resource-manager" option to load a resource manager implementation, default is none.
Core
- Secure Fusion final major update adding CoreScreen and CoreInputDevice interface
- move from C++ to C using fluxcomp's C mode and slightly modified real implementations
- Add ICore::Register() method for slaves joining to create a resource client instance in the master.
- Make ICore_Real::CreateSurface() use the new Core_Resource_CheckSurface() function for
asking the resource manager (if any) for creation of the resource.
- Add Core_Push/PopIdentity() to store the caller ID of an incoming request in TLS.
- Add Core_GetIdentity() to query the current identity, i.e. ID of the Fusionee that made the IPC call.
- Add Core_Resource methods wrapping and managing instances of ICoreResourceClient.
- do not always call dfb_gfxcard_batchblit()
- shutdown fixes
- remove Dispatch class, use functions instead (even in C++ mode)
- add prelock to manage interlocks at master
- set permissions for FUSION_REF_UP/DOWN for secure-fusion
- remove obsolete code
- added missing files, got lost during merge
- Add copy of surface type flags and resource id to surface buffer.
- remove precheck for locked buffers in dfb_surface_reconfig()
- Fix typo in last commit of Surface Buffer object changes
- Make Surface Buffer a FusionObject and implement locked surface resizing
- Use old shm surface pool for non-secure fusion, get rid of indices in secure surface pool.
- Fix crash when dfb_wm_update_cursor() is called with 'no-cursor' option.
- Export layer surface allocation functions.
Flux
- Run fluxcomp with argument "-i" to generate calls to Core_Push/PopIdentity().
- Flux has its own package now, please checkout git://git.directfb.org/git/directfb/core/flux
- remove workaround for c-mode (dummy data for fusion_call_execute3)
- added option --include-prefix= to fix build of external projects(e.g sawman)
- added semicolon to fix warning in generated C code
- added C mode for generation C instead of C++
Fusion
- Add fusion_get_fusionee_path() to retrieve the executable file name of a Fusionee (as in /proc/*/exe).
This can be used when the resource client is created to apply special limitations, privileges...
- Add fusion_world_set_leave_callback() to register a callback for processing the new FMT_LEAVE message
when a slave leaves the world. This is used by the master to cleanup the resource client instance.
- Add FusionID parameter to fusion_object_create() to give objects an identity, i.e. the identity of the
Fusionee calling the master to create an object.
- Fix crash by commenting out debug print after unref (in fusion_ref_down itself)
- Fix fusion_vector_foreach_reverse for empty vectors
Graphics
- make use of clip_blit_rotated() in dfb_gfxcard_batchblit()
- always initialize shared surface pool priority with CSPP_DEFAULT
Genefx
- Fix Bop_argb_blend_alphachannel_src_invsrc_Aop_argb for special case alpha = 0.
- Fix top clipping of flat top triangles.
- use 24bpp colorkey template for RGB18 and ARGBx666
- use 24bpp colorkey template for RGB24, ARGB8565, VYU
- add a colorkey template for 24bpp pixelformats
- use 24bpp acc template for RGB18 and ARGBx666
- use 24bpp acc template for RGB24 and ARGB8565
- add an acc template for 24bpp pixelformats
ICoreResourceManager_test
- Add test implementation for ICoreResourceManager and ICoreResourceClient that keeps track of
and prints the amount of surface memory being used per slave process.
JPEG
- correctly setup iDCT scale factors for libjpeg version 7 or higher
PNG
- various fixes for colorkey handling and grayscale images
- fixes for adam7 deinterlacing in 16->8bit per color component conversion case
Dummy
- Initialise buffer mode in display layer config.
Joystick
- wrong number for buttons and axes read
VNC
- Input driver is part of system module now,
special attach code no longer needed
- Fixed several bugs in input event processing
- Initialize rfbScreen once for the session, 32bit
- Default screen size is 1280x720 if not set via mode option
- Use preallocated shared memory surface for screen
- Render layer onto preallocated ABGR screen surface
- Layer positioning and scaling is supported
- Only stream modified rects from clients to master
(calling rfbMarkRectAsModified there) using FusionCall2
- Use automatic port allocation
- Detect failure in setting up listen socket
- Use rfbNewFramebuffer call
Build
- fix out-of-tree builds
- set version to 1.4.15
- remove dummy.cpp to prevent linkage of libstdc++
- set CXX=g++ for fluxcomp, to avoid the cross compiler from being used
- add more explicit rules for new generated headers
- fix build of generated core files by specifying explicit rules
SH772x
- Only use the shjpeg library if available, thanks to Michael Szafranek
- Move dfb_surface_lock/unlock to CoreSurface fns
- Fix sh7722_jpeg destructor releasing a buffer it doesn't own
- comsmetic changes only (tabs to spaces)
- Correct device name in debug messages
- Fix warnings in sh7722_jpeg.c
- Fix build error, new arg to dfb_surface_create_simple
X11
- Fix crash in non-secure mode.
Changes for SawMan 1.4.15
SaWMan
Implement Start/Stop via SaWMan flux.
Reset lock pointer to NULL and check for pointer in unregister_process().
shutdown fixes
remove C++ dependency
Options
Add "[no-]static-layer" option, default is dynamic configuration.
testman
fix layer_reconfig (the layer was used as window id)
build
fix for out-of-tree builds
You can find the release in the "Core" and "Extras" tabs on the "Downloads" page.
andi