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; }
/*---------------------------------------------------------------------------- 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; }