Hello everyone,
I've already ask about this on the users mailing list, but perhaps this
is more of a "dev" issue. I have tried (with 1.3.2 and 1.4.17, both on a
Gentoo linux running the not all that new 2.6.28.7 kernel) to get the
"layer-rotate" parameter to work for a 90-degree rotation, but somehow I
can't get it done.
I'm calling my program with
--dfb:layer-rotate=90,mode=1280x1024,depth=32,pixelformat=RGB32
I'm using the uvesafb frame buffer for graphics output. I have only a
few graphics and text on my display so I don't really need hw
acceleration, plus I have three different Mini-ITX boards in use here
with three different Intel Atoms (410, 525, and 2500).
Unfortunately, the "layer-rotate" parameter does not work here; I get
the following log output:
~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.4.17
|~~~~~~~~~~~~~~~~~~~~~~~~~~
(c) 2001-2012 The world wide DirectFB Open Source Community
(c) 2000-2004 Convergence (integrated media) GmbH
----------------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2012-08-07 16:21) [ DEBUG ]
(*) Direct/Thread: Started 'VT Switcher' (14581) [CRITICAL OTHER/OTHER
0/0] <8388608>...
(*) Direct/Thread: Started 'VT Flusher' (-1) [DEFAULT OTHER/OTHER 0/0]
<8388608>...
(*) DirectFB/FBDev: Found 'VESA VGA' (ID 0) with frame buffer at
0xd0000000, 8128k (MMIO 0x00000000, 0k)
(*) Direct/Thread: Started 'Hotplug with Linux Input' (-1) [INPUT
OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Hot-plug detection enabled with Linux Input Driver
(*) Direct/Thread: Started 'Keyboard Input' (14586) [INPUT OTHER/OTHER
0/0] <8388608>...
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)
(*) DirectFB/Genefx: MMX detected and enabled
(*) DirectFB/Graphics: MMX Software Rasterizer 0.7 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(!!!) *** UNIMPLEMENTED [dfb_surface_create] *** [surface.c:179]
(!!!) *** UNIMPLEMENTED [dfb_surface_reconfig] *** [surface.c:525]
(*) FBDev/Mode: Setting 1280x1024 RGB16
(*) FBDev/Mode: Switched to 1280x1024 (virtual 1280x1024) at 16 bit
(RGB16), pitch 2560
(*) FBDev/Mode: Setting 1280x1024 RGB16
(*) FBDev/Mode: Switched to 1280x1024 (virtual 1280x1024) at 16 bit
(RGB16), pitch 2560
(!!!) *** WARNING [letting unprivileged
IDirectFBDisplayLayer::GetSurface() call pass until cooperative level
handling is finished] *** [idirectfbdisplaylayer.c:182 in
IDirectFBDisplayLayer_GetSurface()]
(*) FBDev/Mode: Setting 1280x1024 RGB32
(*) FBDev/Mode: Switched to 1280x1024 (virtual 1280x1024) at 32 bit
(RGB32), pitch 5120
(*) Direct/Interface: Loaded 'PNG' implementation of
'IDirectFBImageProvider'.
(*) Direct/Interface: Loaded 'FT2' implementation of 'IDirectFBFont'.
It this parameter working at all? If so, what am I doing wrong? Is there
another way to get the whole display (primary surface) to rotate 90
degrees?
The program is written in C++ and uses DFB++, by the way:
[...]
DirectFB::Init (&argc, &argv);
dfb=DirectFB::Create();
prim_layer=dfb->GetDisplayLayer(DLID_PRIMARY);
if (prim_layer==NULL)
PrintLog("Couldn't get primary layer");
dfb->SetCooperativeLevel(DFSCL_EXCLUSIVE);
//prim_layer->SetRotation(180);
//prim_layer->SetCooperativeLevel(DLSCL_EXCLUSIVE);
base_surface=prim_layer->GetSurface();
if (base_surface==NULL)
PrintLog("Couldn't get base surface");
SetVideoParameters();
keyboard=dfb->GetInputDevice(DIDID_KEYBOARD);
if (keyboard!=NULL)
keyboard_buffer=keyboard->CreateEventBuffer();
dsc.flags = DSDESC_CAPS;
DFB_ADD_SURFACE_CAPS( dsc.caps, DSCAPS_PRIMARY);
if (use_system_memory==true)
DFB_ADD_SURFACE_CAPS( dsc.caps, DSCAPS_SYSTEMONLY);
else
DFB_ADD_SURFACE_CAPS( dsc.caps, DSCAPS_VIDEOONLY);
DFB_ADD_SURFACE_CAPS( dsc.caps, DSCAPS_DOUBLE);
DFB_ADD_SURFACE_DESC(dsc.flags, DSDESC_PIXELFORMAT);
[...]
If you need any further information, feel free to ask.
Thanks in advance
Kasi Mir
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev