comparison libvo/vo_directfb.c @ 3588:8e56fe18e7fb

Applied patch by Jiri Svoboda <Jiri.Svoboda@seznam.cz>: -proper setting of bg color -turning BES at the end
author pl
date Tue, 18 Dec 2001 21:43:15 +0000
parents 59390e321c4e
children 8148193fee93
comparison
equal deleted inserted replaced
3587:6e21fbb41a2b 3588:8e56fe18e7fb
265 } 265 }
266 266
267 if (!fb_dev_name && !(fb_dev_name = getenv("FRAMEBUFFER"))) fb_dev_name = "/dev/fb0"; 267 if (!fb_dev_name && !(fb_dev_name = getenv("FRAMEBUFFER"))) fb_dev_name = "/dev/fb0";
268 DFBCHECK (DirectFBSetOption ("fbdev",fb_dev_name)); 268 DFBCHECK (DirectFBSetOption ("fbdev",fb_dev_name));
269 269
270 // uncomment this if you do not wish to create a new vt for DirectFB
271 // DFBCHECK (DirectFBSetOption ("no-vt-switch",fb_dev_name));
272
273 // uncomment this if you want to allow vt switching
274 // DFBCHECK (DirectFBSetOption ("vt-switching",fb_dev_name));
275 DFBCHECK (DirectFBSetOption ("bg-color","00000000"));
276
270 DFBCHECK (DirectFBCreate (&dfb)); 277 DFBCHECK (DirectFBCreate (&dfb));
271 DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN)); 278 DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN));
272 279
273 // lets try to get YUY2 layer - borrowed from DirectFb examples 280 // lets try to get YUY2 layer - borrowed from DirectFb examples
274 281
561 568
562 /* 569 /*
563 * Create an input buffer for the keyboard. 570 * Create an input buffer for the keyboard.
564 */ 571 */
565 DFBCHECK (keyboard->CreateInputBuffer (keyboard, &buffer)); 572 DFBCHECK (keyboard->CreateInputBuffer (keyboard, &buffer));
566
567 // clear the screen
568
569 if (no_yuy2) {DFBCHECK (primary->FillRectangle (primary, 0, 0, screen_width, screen_height));
570 }
571 else {
572 // create temporary surface and clean
573 DFBSurfaceDescription dsc;
574 DFBResult ret;
575 IDirectFBSurface *primary = NULL;
576 int sh,sw;
577
578 dsc.flags = DSDESC_CAPS;
579 dsc.caps = DSCAPS_PRIMARY | DSCAPS_VIDEOONLY;//| DSCAPS_FLIPPING;
580 DFBCHECK (dfb->CreateSurface( dfb, &dsc, &primary));
581 DFBCHECK (primary->GetSize (primary, &sw, &sh));
582 DFBCHECK (primary->FillRectangle (primary, 0, 0, sw, sh));
583 primary->Release(primary);
584
585 }
586 573
587 // yuv2rgb transform init 574 // yuv2rgb transform init
588 575
589 if (((format == IMGFMT_YV12) || (format == IMGFMT_YUY2)) && no_yuy2){ yuv2rgb_init(frame_pixel_size * 8,MODE_RGB);}; 576 if (((format == IMGFMT_YV12) || (format == IMGFMT_YUY2)) && no_yuy2){ yuv2rgb_init(frame_pixel_size * 8,MODE_RGB);};
590 577
883 frame->Release (frame); 870 frame->Release (frame);
884 871
885 // we will not release dfb and layer because there could be a new film 872 // we will not release dfb and layer because there could be a new film
886 873
887 // printf("Release primary\n"); 874 // printf("Release primary\n");
888 // primary->Release (primary); 875 primary->Release (primary);
876 // switch off BES
877 if (videolayer) videolayer->SetOpacity(videolayer,0);
889 // printf("Release videolayer\n"); 878 // printf("Release videolayer\n");
890 // if (videolayer) videolayer->Release(videolayer); 879 // if (videolayer) videolayer->Release(videolayer);
891 // printf("Release dfb\n"); 880 // printf("Release dfb\n");
892 // dfb->Release (dfb); 881 // dfb->Release (dfb);
893 // preinit_done=0; 882 // preinit_done=0;