Hallo,
I still have problems with my Mga450 and the tv out. I've just compiled
DirectFB,xine-lib and mplayer from CVSs. "mplayer -vo dfbmga..." and
"df_xine -dfb:primary:layer=2" are working great, but all other samples
give me just a green picture on tv screen.
So if anyone has a hint, please help me. I really need a solution, because
I want to write my own piece of code and I can't get it working on tv.
My initial part looks like:
DFBCHECK (DirectFBInit (&argc, &argv));
DFBCHECK (DirectFBCreate (&dfb));
DFBCHECK(dfb->GetCardCapabilities( dfb, &caps ));
DFBCHECK(dfb->GetDisplayLayer( dfb, 0, &layer ));
layer->SetCooperativeLevel( layer, DLSCL_ADMINISTRATIVE );
if (!((caps.blitting_flags & DSBLIT_BLEND_ALPHACHANNEL) &&
(caps.blitting_flags & DSBLIT_BLEND_COLORALPHA )))
{
layer_config.flags = DLCONF_BUFFERMODE;
layer_config.buffermode = DLBM_BACKSYSTEM;
layer->SetConfiguration( layer, &layer_config );
}
layer->GetConfiguration( layer, &layer_config );
layer->EnableCursor ( layer, 0 );
DFBCHECK (dfb->CreateImageProvider (dfb,
"/home/riker/Eve2/default.png", &provider));
dsc.flags = DFBSurfaceDescriptionFlags( DSDESC_WIDTH | DSDESC_HEIGHT |
DSBLIT_BLEND_COLORALPHA);
dsc.width = layer_config.width;
dsc.height = layer_config.height;
DFBCHECK (dfb->CreateSurface( dfb, &dsc, &primary ));
DFBCHECK (provider->RenderTo (provider, primary, NULL));
DFBCHECK (dfb->GetInputDevice (dfb, DIDID_KEYBOARD, &keyboard));
DFBCHECK (keyboard->CreateEventBuffer (keyboard, &buffer));
DFBCHECK (dfb->CreateImageProvider (dfb,
"/home/riker/Eve2/selected.png", &provider));
DFBCHECK (provider->GetSurfaceDescription (provider, &dsc));
DFBCHECK (dfb->CreateSurface( dfb, &dsc, &Sel ));
DFBCHECK (provider->RenderTo (provider, Sel, NULL));
font_dsc.flags = DFDESC_HEIGHT;
font_dsc.height = 48;
DFBCHECK (dfb->CreateFont (dfb, "/home/riker/Eve2/a010015l.pfb",
&font_dsc, &font));
DFBCHECK (dfb->EnumInputDevices( dfb, enum_devices_callback, NULL ));
layer->SetBackgroundImage( layer, primary );
layer->SetBackgroundMode( layer, DLBM_IMAGE );
desc.flags = DFBWindowDescriptionFlags( DWDESC_POSX | DWDESC_POSY |
DWDESC_WIDTH | DWDESC_HEIGHT | DWDESC_CAPS );
desc.posx = 0;
desc.posy = 0;
desc.width = layer_config.width;
desc.height = layer_config.height;
desc.caps = DWCAPS_ALPHACHANNEL;
DFBCHECK(layer->CreateWindow( layer, &desc, &window ) );
window->GetSurface( window, &window_surface );
DFBCHECK (window_surface->SetFont (window_surface, font));
...
Thanks,
Markus
--
+++ GMX DSL Premiumtarife 3 Monate gratis* + WLAN-Router 0,- EUR* +++
Clevere DSL-Nutzer wechseln jetzt zu GMX: http://www.gmx.net/de/go/dsl