Hi,
I am trying to make a primary surface transparent, so that I can display
text as timer on the display.
I am trying to overwrite same string with opposite alpha as a hack that
just seems too wrong to do in practice .. :)
Please help.
I am using DFB 1.4 on embedded platform.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <directfb.h>

static IDirectFB *dfb = NULL;
static IDirectFBSurface *primary = NULL;
static int screen_width  = 0;
static int screen_height = 0;
#define DFBCHECK(x...)                                         \
  {                                                            \
    DFBResult err = x;                                         \
                                                               \
    if (err != DFB_OK)                                         \
      {                                                        \
        fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
        DirectFBErrorFatal( #x, err );                         \
      }                                                        \
  }

static IDirectFBFont *font = NULL;
static char *text = "DirectFB Rulez !!!";

int main (int argc, char **argv)
{
        int i, width;
        DFBFontDescription font_dsc;
        DFBSurfaceDescription dsc;
        IDirectFBDisplayLayer *videolayer = NULL;

        DFBCHECK (DirectFBInit (&argc, &argv));
        DFBCHECK (DirectFBCreate (&dfb));
        DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN));

        dsc.flags = DSDESC_CAPS;
        dsc.caps  =  DSCAPS_SYSTEMONLY | DSCAPS_PRIMARY |
DSCAPS_SUBSURFACE | DSCAPS_STATIC_ALLOC
                    | DSCAPS_INTERLACED | DSCAPS_SEPARATED |
DSCAPS_SHARED | DSCAPS_FLIPPING ;
        DFBCHECK (dfb->CreateSurface( dfb, &dsc, &primary ));
        DFBCHECK (primary->SetPorterDuff(primary,DSPD_DST_OUT));
        DFBCHECK (primary->SetSrcBlendFunction(primary,DSBF_INVSRCCOLOR));
        font_dsc.flags = DFDESC_HEIGHT;
        font_dsc.height = 48;
        DFBCHECK (dfb->CreateFont (dfb,
"/usr/share/directfb-examples/fonts/decker.ttf", &font_dsc, &font));
        DFBCHECK (primary->SetFont (primary, font));
        DFBCHECK (font->GetStringWidth (font, text, -1, &width));
        DFBRectangle tar_rect;
        tar_rect.x = 300 ;
        tar_rect.y = 300;
        tar_rect.w = width ;
        tar_rect.h = 100;
        DFBCHECK (primary->MakeSubSurface(primary,primary,&tar_rect));
        DFBCHECK (primary->GetSize (primary, &screen_width,
&screen_height));
        char str[15];
        int prev= 300;
        for (i = 300; i > 0; i--)
        {
                DFBCHECK (primary->SetColor (primary, 0x0, 0x0, 0x0, 0x0));
                //DFBCHECK (primary->FillRectangle (primary, 0 , 0 ,
width , 100));
                sprintf(str,"%d",prev);
                DFBCHECK (primary->DrawString (primary, str /* text */,
-1, 0, 0, DSTF_TOPLEFT));
                DFBCHECK (primary->Flip (primary, NULL, DSFLIP_WAIT));
                bzero(str,15);
                sprintf(str,"%d",i);
                DFBCHECK (primary->SetColor (primary, 0x0, 0xFF, 0x0,
0x0));
                DFBCHECK (primary->DrawString (primary, str /* text */,
-1, 0, 0, DSTF_TOPLEFT));
                DFBCHECK (primary->Flip (primary, NULL, DSFLIP_WAIT));
                bzero(str,15);
                prev = i;
                usleep(200);
        }
        font->Release (font);
        primary->Release (primary);
        dfb->Release (dfb);
        return 0;
}


--
Regards,
Subodh

-- **************** CAUTION - Disclaimer ***************** This e-mail contains 
PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the 
addressee(s). If you are not the intended recipient, please notify the sender 
by e-mail and delete the original message. Further, you are not to copy, 
disclose, or distribute this e-mail or its contents to any other person and any 
such actions are unlawful. This e-mail may contain viruses. UFOMoviez India 
Ltd. has taken every reasonable precaution to minimize this risk, but is not 
liable for any damage you may sustain as a result of any virus in this e-mail. 
You should carry out your own virus checks before opening the e-mail or 
attachment. UFOMoviez India Ltd. reserves the right to monitor and review the 
content of all messages sent to or from this e-mail address. Messages sent to 
or from this e-mail address may be stored on the UFOMoviez India Ltd.'s e-mail 
system. ***************** End of Disclaimer *******************
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to