HI,
I am writing a test program for multiple layer
there is total 5 layers:-
Layer (00) OSD (primary layer)
Type: GRAPHICS
Caps: SURFACE OPACITY ALPHACHANNEL FLICKER_FILTERING
SRC_COLORKEY BRIGHTNESS CONTRAST HUE SATURATION
ASPECT_MATCH
Layer (01) BGND
Type: GRAPHICS
Caps: SURFACE
Layer (02) MainVideo
Type: VIDEO
Caps: OPACITY SCREEN_LOCATION BRIGHTNESS CONTRAST HUE
SATURATION COLOR_SPACE SOURCES SCREEN_POSITION SCREEN_SIZE
Sources: Bogus source for main v
Layer (03) 2ndVideo
Type: GRAPHICS VIDEO
Caps: SURFACE OPACITY SCREEN_LOCATION BRIGHTNESS CONTRAST
HUE SATURATION COLOR_SPACE LEVELS SOURCES SCREEN_POSITI
Sources: Bogus source for second, Bogus source for second
Layer (04) SecOSD
Type: GRAPHICS
Caps: SURFACE OPACITY ALPHACHANNEL SCREEN_LOCATION
SRC_COLORKEY BRIGHTNESS CONTRAST HUE SATURATION
SCREEN_POSITIO
my test program using only 2 layers. That is layer-0 and layer-1. On
layer-1 i want to draw a 720*576 image and on layer-0 i want to draw 6
small images (142*97). when i am doing so i am getting undesired
result that are:-
1. When i draw small image on layer-0 it first drawing all six images
at center point of screen and on blitting it shift to desire position
and center image still there.
2. It showing cursor on layer-0, even cursor is disabled.
for your convience i am giving source code below:-
if(layerid==0){
DFBCHECK(dfb1->GetDisplayLayer( dfb1, 1, &dfblayer[layerid] ));
dfblayer[layerid]->SetCooperativeLevel( dfblayer[layerid],
DLSCL_ADMINISTRATIVE );
dfblayer[layerid]->GetConfiguration(dfblayer[layerid], &layer_config );
DFBSurfaceDescription desc;
DFBCHECK(dfb1->CreateImageProvider( dfb1,
image1,
&provider ));
desc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_CAPS;
desc.width = layer_config.width;
desc.height = layer_config.height;
dfblayer[layerid]->GetSurface(dfblayer[layerid],&bgsurface);
provider->RenderTo( provider, bgsurface, NULL );
provider->Release( provider );
DFBCHECK (bgsurface->Flip (bgsurface, NULL, DSFLIP_WAITFORSYNC));
}
else{
DFBDisplayLayerConfig layer_config1;
DFBCHECK(dfb1->GetDisplayLayer( dfb1, 0, &dfblayer[layerid] ));
dfblayer[layerid]->SetCooperativeLevel( dfblayer[layerid],
DLSCL_ADMINISTRATIVE );
dfblayer[layerid]->SetBackgroundColor(dfblayer[layerid],0,0,0,0);
dfblayer[layerid]->EnableCursor(dfblayer[layerid],0);
dfblayer[layerid]->WarpCursor(dfblayer[layerid], -100, -100);
dfblayer[layerid]->SetOpacity(dfblayer[layerid],0xFF);
dfblayer[layerid]->GetConfiguration(dfblayer[layerid], &layer_config1 );
dfblayer[layerid]->GetSurface(dfblayer[layerid],&bgsurface);
for( j=1,k=80;j<=3;j++,k+=213)
{
DFBSurfaceDescription desc1;
DFBCHECK(dfb1->CreateImageProvider( dfb1,
img[j],
&provider ));
desc1.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_CAPS;
desc1.width = 142;
desc1.height = 97;
desc1.pixelformat = DSPF_ARGB;
DFBCHECK (dfb1->CreateSurface( dfb1, &desc1, &logo ));
DFBCHECK (provider->RenderTo (provider, logo, NULL));
provider->Release( provider );
DFBCHECK(bgsurface->SetBlittingFlags(bgsurface,DSBLIT_BLEND_ALPHACHANNEL));
DFBCHECK(bgsurface->SetPorterDuff(bgsurface,DSPD_SRC_OVER));
DFBCHECK (bgsurface->Blit (bgsurface, logo, NULL, k, 113 ));
DFBCHECK (bgsurface->SetBlittingFlags(bgsurface,DSBLIT_NOFX));
DFBCHECK (bgsurface->SetPorterDuff(bgsurface , DSPD_NONE ));
logo->Release(logo);
}
for( j=1,k=160;j<=3;j++,k+=213)
{
DFBSurfaceDescription desc1;
DFBCHECK(dfb1->CreateImageProvider( dfb1,
img[j],
&provider ));
desc1.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_CAPS;
desc1.width = 142;
desc1.height = 97;
desc1.pixelformat = DSPF_ARGB;
DFBCHECK (dfb1->CreateSurface( dfb1, &desc1, &logo ));
DFBCHECK (provider->RenderTo (provider, logo, NULL));
provider->Release( provider );
DFBCHECK(bgsurface->SetBlittingFlags(bgsurface,DSBLIT_BLEND_ALPHACHANNEL));
DFBCHECK(bgsurface->SetPorterDuff(bgsurface,DSPD_SRC_OVER));
DFBCHECK (bgsurface->Blit (bgsurface, logo, NULL, k, 113 ));
DFBCHECK (bgsurface->SetBlittingFlags(bgsurface,DSBLIT_NOFX));
DFBCHECK (bgsurface->SetPorterDuff(bgsurface , DSPD_NONE ));
logo->Release(logo);
}
DFBCHECK (bgsurface->Flip (bgsurface, NULL, DSFLIP_WAITFORSYNC));
}
--
JOY
Never expect things to happen.. struggle and make them happen.
never expect yourself to be given a good value create a value of your own
_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users