Пример #1
0
int grpx_fb_init(grpx_plane_type planeType)
{
    app_grpx_t *grpx = &grpx_obj;

    // need to start and stop FBDev once for the RGB565 and SC to take effect
    grpx_fb_start(planeType);
#ifdef TI_814X_BUILD
    grpx_fb_start2();
#endif
    //# init fb - fill RGB_KEY
    draw_fill_color(grpx->buf[0]);
#ifdef TI_816X_BUILD
    draw_fill_color(grpx->buf[1]);
#endif

    return 0;
}
Пример #2
0
/*----------------------------------------------------------------------------
 grpx_link init/exit function
-----------------------------------------------------------------------------*/
int grpx_link_init(grpx_plane_type planeType)
{
    UInt32 outWidth, outHeight;

    VGRPX_CREATE_PARAM_S createPrm;
    VGRPX_BUFFER_INFO_S  bufInfo;

    app_grpx_t *grpx = &grpx_obj;

    dprintf("\n");
    dprintf("Starting !!!\n")

    memset(grpx, 0, sizeof(app_grpx_t));

    if(planeType >= GRPX_FORMAT_MAX)
    {
        return -1;
    }
    else
    {
        grpx->planeType = planeType;
    }

    grpx->bytes_per_pixel = 4;
    if(planeType==GRPX_FORMAT_RGB565)
        grpx->bytes_per_pixel = 2;

    grpx->curWidth = GRPX_PLANE_WIDTH;
    grpx->curHeight = GRPX_PLANE_HEIGHT;

    Demo_swMsGetOutSize(Vdis_getResolution(VDIS_DEV_HDMI), &outWidth,  &outHeight);

    createPrm.grpxId                    = HDMI_GRPX_ID;
    createPrm.bufferInfo.bufferPhysAddr = 0;
    createPrm.bufferInfo.bufferPitch    = 0;
    createPrm.bufferInfo.bufferWidth    = grpx->curWidth;
    createPrm.bufferInfo.bufferHeight   = grpx->curHeight;

    if(planeType==GRPX_FORMAT_RGB565)
        createPrm.bufferInfo.dataFormat = VGRPX_DATA_FORMAT_RGB565;
    else
        createPrm.bufferInfo.dataFormat = VGRPX_DATA_FORMAT_ARGB888;

    createPrm.bufferInfo.scanFormat     = VGRPX_SF_PROGRESSIVE;

    createPrm.dynPrm.scaleEnable        = TRUE;
    createPrm.dynPrm.transperencyEnable = TRUE;
    createPrm.dynPrm.transperencyColor  = RGB_KEY_24BIT_GRAY;
    createPrm.dynPrm.inWidth            = grpx->curWidth;
    createPrm.dynPrm.inHeight           = grpx->curHeight;
    createPrm.dynPrm.displayWidth       = outWidth;
    createPrm.dynPrm.displayHeight      = outHeight;
    createPrm.dynPrm.displayStartX      = 0;
    createPrm.dynPrm.displayStartY      = 0;

    Vgrpx_create(HDMI_GRPX_ID, &createPrm);

    Vgrpx_getInfo(HDMI_GRPX_ID, &bufInfo);

    grpx->buf_size = bufInfo.bufferPitch*bufInfo.bufferHeight;

    grpx->buf[0] = (unsigned char *)Vgrpx_mmap(bufInfo.bufferPhysAddr, grpx->buf_size, FALSE);

    if (grpx->buf[0] == NULL) {
        eprintf("GRPX0: mmap() failed !!!\n");
        return -1;
    }

    Demo_swMsGetOutSize(Vdis_getResolution(VDIS_DEV_SD), &outWidth, &outHeight);

    createPrm.grpxId                    = SDTV_GRPX_ID;
    createPrm.bufferInfo.bufferPhysAddr = bufInfo.bufferPhysAddr;
    createPrm.bufferInfo.bufferPitch    = bufInfo.bufferPitch;
    createPrm.bufferInfo.bufferWidth    = bufInfo.bufferWidth;
    createPrm.bufferInfo.bufferHeight   = bufInfo.bufferHeight;
    createPrm.bufferInfo.dataFormat     = bufInfo.dataFormat;
    createPrm.bufferInfo.scanFormat     = bufInfo.scanFormat;

    createPrm.dynPrm.scaleEnable        = TRUE;
    createPrm.dynPrm.transperencyEnable = TRUE;
    createPrm.dynPrm.transperencyColor  = RGB_KEY_24BIT_GRAY;
    createPrm.dynPrm.inWidth            = grpx->curWidth;
    createPrm.dynPrm.inHeight           = grpx->curHeight;
    createPrm.dynPrm.displayWidth       = outWidth;
    createPrm.dynPrm.displayHeight      = outHeight;
    createPrm.dynPrm.displayStartX      = 0;
    createPrm.dynPrm.displayStartY      = 0;

    Vgrpx_create(SDTV_GRPX_ID, &createPrm);

    Vgrpx_enable(HDMI_GRPX_ID, TRUE);
    Vgrpx_enable(SDTV_GRPX_ID, TRUE);

    {
        UInt32 curTime = OSA_getCurTimeInMsec();
        //# init fb - fill RGB_KEY
        draw_fill_color(grpx->buf[0]);

        curTime = OSA_getCurTimeInMsec() - curTime;

        dprintf("### Memfill time = %d msecs\n", curTime);
    }

    dprintf("Start DONE !!!\n");
    dprintf("\n");

    return 0;
}