static void _g2d_drv_overlay_set_roi_info(G2D_HANDLE_STRUCT *handle) { G2D_OVERLAY_STRUCT *overlayFunc = &(handle->overlayFunc); G2D_WINDOW_STRUCT *roiWindow = &(handle->overlayFunc.roiWindow); /// setting the avoidance and replacement colors g2d_drv_set_replacement_colors(handle); /// setting the clipping window g2d_drv_set_clipping_window(handle); SET_G2D_ROI_OFFSET(roiWindow->topLeft.x, roiWindow->topLeft.y); SET_G2D_ROI_SIZE(roiWindow->buttomRight.x - roiWindow->topLeft.x + 1, roiWindow->buttomRight.y - roiWindow->topLeft.y + 1); #if defined(G2D_FPGA) if(KAL_TRUE == (overlayFunc->backgroundDisable)) { DISABLE_G2D_ROI_CON_BG; } else { SET_G2D_ROI_CON_BG_COLOR(overlayFunc->backgroundColor); } #else SET_G2D_ROI_CON_BG_COLOR(overlayFunc->backgroundColor); #endif if(KAL_TRUE == (overlayFunc->dstAlphaEnable)) { ENABLE_G2D_ROI_CON_ALPHA; SET_G2D_ROI_CON_ALPHA(overlayFunc->dstAlphaValue); } /// color setting is on _g2d_drv_overlay_set_dst_info //Enable Tile { #if defined(G2D_FPGA) ///if(KAL_FALSE == (handle->auto_tile_size_enable)) ///{ /// REG_G2D_ROI_CON |= G2D_ROI_CON_ENABLE_FORCE_TS_BIT; /// switch(handle->tile_size) /// { /// case G2D_TILE_SIZE_TYPE_8x8: /// REG_G2D_ROI_CON |= G2D_ROI_CON_TILE_SIZE_8x8_BIT; /// break; /// case G2D_TILE_SIZE_TYPE_16x8: /// REG_G2D_ROI_CON |= G2D_ROI_CON_TILE_SIZE_16x8_BIT; /// break; /// default: /// ASSERT(0); /// } ///} #else #endif } }
static void _g2d_drv_set_roi_info(g2d_context_t *g2d_ctx) { SET_G2D_ROI_OFFSET(g2d_ctx->dst.offset.x, g2d_ctx->dst.offset.y); SET_G2D_ROI_SIZE(g2d_ctx->dst.width, g2d_ctx->dst.height); if (g2d_ctx->flag & G2D_FLAG_AFFINE_TRANSFORM) { REG_G2D_ROI_CON |= G2D_ROI_CON_ENABLE_FORCE_TS_BIT; REG_G2D_ROI_CON |= G2D_ROI_CON_TILE_SIZE_16x8_BIT; } if (g2d_ctx->flag & G2D_FLAG_BACKGROUND_COLOR) { SET_G2D_ROI_CON_BG_COLOR(g2d_ctx->bg_color); } else { DISABLE_G2D_ROI_CON_BG; } }