📄 2d_engine.c
字号:
else
temp_mode &= ~REG_SUBMODE_CTRL_BITBLT_TRANSPARENT_BIT;
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SUBMODE_CTRL_REG_ADDR | temp_mode));
if (g2d_data->src_color_mode==G2D_SRC_16BPP_LUT_DISABLE)
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_FIRE_MODE_CTRL_REG_ADDR | FIRE_G2D_BITBLT));
else if (g2d_data->dest_color_mode==G2D_DEST_8BPP_LUT_DISABLE)
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_FIRE_MODE_CTRL_REG_ADDR | (FIRE_G2D_BITBLT |FIRE_DEST_COLOR_8BPP_LUT_DIS)));
else if (g2d_data->dest_color_mode==G2D_DEST_16BPP_LUT_ENABLE)
{
temp_mode=DRV_Reg32(G2D_SUBMODE_CTRL_REG);
temp_mode |= REG_COMMON_CTRL_G2D_PALETTE_ENABLE_BIT;
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SUBMODE_CTRL_REG_ADDR | temp_mode));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_FIRE_MODE_CTRL_REG_ADDR | (FIRE_G2D_BITBLT |FIRE_DEST_COLOR_16BPP_LUT_EN)));
}
else
ASSERT(0);
// DISABLE_REG_G2D_ENGINE_PALETTE;
}
else
{
DISABLE_G2D_CMQ;
DRV_WriteReg32(G2D_SRC_BASE_ADDRESS_REG,g2d_data->src_base_address);
DRV_WriteReg32(G2D_DEST_BASE_ADDRESS_REG,g2d_data->dest_base_address);
DRV_WriteReg32(G2D_SRC_PITCH_REG,g2d_data->src_pitch);
DRV_WriteReg32(G2D_DEST_PITCH_REG,g2d_data->dest_pitch);
DRV_WriteReg32(G2D_SRC_XY_REG,((g2d_data->src_x<<16)|g2d_data->src_y));
DRV_WriteReg32(G2D_SRC_WIDTH_HEIGHT_REG,((g2d_data->src_width<<16) | g2d_data->src_height));
DRV_WriteReg32(G2D_DEST_WIDTH_HEIGHT_REG,((g2d_data->dest_width<<16) | g2d_data->dest_height));
switch (g2d_data->bitblt_mode)
{
case BITBLT_TRANSFORM_MIRROR_ROTATE_90:
DRV_WriteReg32(G2D_DEST_XY_REG,((g2d_data->dest_x+g2d_data->dest_width-1)<<16)|(g2d_data->dest_height+g2d_data->dest_y-1));
break;
case BITBLT_TRANSFORM_ROTATE_90:
DRV_WriteReg32(G2D_DEST_XY_REG,((g2d_data->dest_x+g2d_data->dest_width-1)<<16)|(g2d_data->dest_y));
break;
case BITBLT_TRANSFORM_ROTATE_270:
DRV_WriteReg32(G2D_DEST_XY_REG,(g2d_data->dest_x<<16)|(g2d_data->dest_height+g2d_data->dest_y-1));
break;
case BITBLT_TRANSFORM_MIRROR_ROTATE_270:
case BITBLT_TRANSFORM_COPY:
DRV_WriteReg32(G2D_DEST_XY_REG,(g2d_data->dest_x<<16)|(g2d_data->dest_y));
break;
case BITBLT_TRANSFORM_ROTATE_180:
DRV_WriteReg32(G2D_DEST_XY_REG,((g2d_data->dest_x+g2d_data->dest_width-1)<<16)|(g2d_data->dest_height+g2d_data->dest_y-1));
break;
case BITBLT_TRANSFORM_MIRROR:
DRV_WriteReg32(G2D_DEST_XY_REG,((g2d_data->dest_x+g2d_data->dest_width-1)<<16)|(g2d_data->dest_y));
break;
case BITBLT_TRANSFORM_MIRROR_ROTATE_180:
DRV_WriteReg32(G2D_DEST_XY_REG,(g2d_data->dest_x<<16)|(g2d_data->dest_height+g2d_data->dest_y-1));
break;
default:
ASSERT(0);
break;
}
SET_BITBLT_TRANSFORM_MODE(g2d_data->bitblt_mode);
if (g2d_data->src_key_mode==G2D_SRC_KEY_ENABLE)
{
ENABLE_BITBLT_TRANSPARENT;
DRV_WriteReg32(G2D_SRC_KEY_COLOR_REG,g2d_data->src_key_color);
}
else
{
DISABLE_BITBLT_TRANSPARENT;
}
if (g2d_data->src_color_mode==G2D_SRC_16BPP_LUT_DISABLE)
{
DISABLE_G2D_ENGINE_PALETTE;
SET_G2D_BITBLT_16BPP_LUT_DISABLE;
}
else if (g2d_data->dest_color_mode==G2D_DEST_8BPP_LUT_DISABLE)
{
DISABLE_G2D_ENGINE_PALETTE;
SET_G2D_BITBLT_8BPP_LUT_DISABLE;
}
else if (g2d_data->dest_color_mode==G2D_DEST_16BPP_LUT_ENABLE)
{
ENABLE_G2D_ENGINE_PALETTE;
SET_G2D_BITBLT_DEST_16BPP_LUT_ENABLE;
}
else
ASSERT(0);
// DISABLE_REG_G2D_ENGINE_PALETTE;
}
while (G2D_ENGINE_IS_BUSY) {};
// kal_retrieve_eg_events(g2d_event_id,G2D_COMPLETE_EVENT,KAL_OR_CONSUME,&event_group,KAL_SUSPEND);
g2d_power_off();
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
kal_uint16 fire_mode;
kal_uint32 temp_mode;
g2d_power_on();
RESET_G2D_ENGINE;
g2d_set_clip_window(g2d_data);
// if (G2D_ENGINE_IS_BUSY)
if (g2d_data->g2d_cmq_mode==KAL_TRUE)
{
ENABLE_G2D_CMQ;
while (G2D_CMQ_FREE_SPACE<20){};
ENABLE_G2D_CMQ_WRITE;
G2D_WRITE_CMQ(G2D_CMQ_SRC_BASE_L_ADDR | (g2d_data->src_base_address & 0xFFFF));
G2D_WRITE_CMQ(G2D_CMQ_SRC_BASE_H_ADDR | ((g2d_data->src_base_address>>16) & 0xFFFF));
G2D_WRITE_CMQ(G2D_CMQ_DEST_BASE_L_ADDR | (g2d_data->dest_base_address & 0xFFFF));
G2D_WRITE_CMQ(G2D_CMQ_DEST_BASE_H_ADDR | ((g2d_data->dest_base_address>>16) & 0xFFFF));
G2D_WRITE_CMQ(G2D_CMQ_SRC_PITCH_ADDR | g2d_data->src_pitch);
G2D_WRITE_CMQ(G2D_CMQ_DEST_PITCH_ADDR | g2d_data->dest_pitch);
G2D_WRITE_CMQ(G2D_CMQ_SRC_Y_ADDR | ((kal_uint16)g2d_data->src_y));
G2D_WRITE_CMQ(G2D_CMQ_SRC_X_ADDR | ((kal_uint16) g2d_data->src_x));
G2D_WRITE_CMQ(G2D_CMQ_SRC_HEIGHT_ADDR | g2d_data->src_height);
G2D_WRITE_CMQ(G2D_CMQ_SRC_WIDTH_ADDR | g2d_data->src_width);
G2D_WRITE_CMQ(G2D_CMQ_DEST_HEIGHT_ADDR | g2d_data->dest_height);
G2D_WRITE_CMQ(G2D_CMQ_DEST_WIDTH_ADDR | g2d_data->dest_width);
G2D_WRITE_CMQ(G2D_CMQ_SRCKEY_COLOR_L_ADDR | (g2d_data->src_key_color & 0xFFFF));
G2D_WRITE_CMQ(G2D_CMQ_SRCKEY_COLOR_H_ADDR | ((g2d_data->src_key_color>>16) & 0xFFFF));
switch (g2d_data->bitblt_mode)
{
case BITBLT_TRANSFORM_MIRROR_ROTATE_90:
G2D_WRITE_CMQ(G2D_CMQ_DEST_Y_ADDR | (g2d_data->dest_y+g2d_data->dest_height-1));
G2D_WRITE_CMQ(G2D_CMQ_DEST_X_ADDR | (g2d_data->dest_x+g2d_data->dest_width-1));
break;
case BITBLT_TRANSFORM_ROTATE_90:
G2D_WRITE_CMQ(G2D_CMQ_DEST_Y_ADDR | ((kal_uint16) g2d_data->dest_y));
G2D_WRITE_CMQ(G2D_CMQ_DEST_X_ADDR | (g2d_data->dest_x+g2d_data->dest_width-1));
break;
case BITBLT_TRANSFORM_ROTATE_270:
G2D_WRITE_CMQ(G2D_CMQ_DEST_Y_ADDR | (g2d_data->dest_y+g2d_data->dest_height-1));
G2D_WRITE_CMQ(G2D_CMQ_DEST_X_ADDR | ((kal_uint16) g2d_data->dest_x));
break;
case BITBLT_TRANSFORM_MIRROR_ROTATE_270:
case BITBLT_TRANSFORM_COPY:
G2D_WRITE_CMQ(G2D_CMQ_DEST_Y_ADDR | ((kal_uint16) g2d_data->dest_y));
G2D_WRITE_CMQ(G2D_CMQ_DEST_X_ADDR | ((kal_uint16) g2d_data->dest_x));
break;
case BITBLT_TRANSFORM_ROTATE_180:
G2D_WRITE_CMQ(G2D_CMQ_DEST_Y_ADDR | (g2d_data->dest_y+g2d_data->dest_height-1));
G2D_WRITE_CMQ(G2D_CMQ_DEST_X_ADDR | (g2d_data->dest_x+g2d_data->dest_width-1));
break;
case BITBLT_TRANSFORM_MIRROR:
G2D_WRITE_CMQ(G2D_CMQ_DEST_Y_ADDR | ((kal_uint16) g2d_data->dest_y));
G2D_WRITE_CMQ(G2D_CMQ_DEST_X_ADDR | (g2d_data->dest_x+g2d_data->dest_width-1));
break;
case BITBLT_TRANSFORM_MIRROR_ROTATE_180:
G2D_WRITE_CMQ(G2D_CMQ_DEST_Y_ADDR | (g2d_data->dest_y+g2d_data->dest_height-1));
G2D_WRITE_CMQ(G2D_CMQ_DEST_X_ADDR | ((kal_uint16) g2d_data->dest_x));
break;
}
temp_mode=REG_G2D_SUBMODE_CTRL;
temp_mode &= ~REG_SUBMODE_CTRL_BITBLT_TRANSFORM_MASK;
temp_mode |= g2d_data->bitblt_mode;
if (g2d_data->italic_mode==G2D_BITBLT_ITALIC_ENABLE)
temp_mode |= REG_SUBMODE_CTRL_ITALIC_BITBLT_BIT;
else
temp_mode &= ~REG_SUBMODE_CTRL_ITALIC_BITBLT_BIT;
if (g2d_data->bitblt_mode==BITBLT_TRANSFORM_COPY)
{
temp_mode &= ~REG_SUBMODE_CTRL_BITBLT_DIRECTION_MASK;
temp_mode |= g2d_bitblt_direction(g2d_data);
}
else
temp_mode |= BITBLT_TRANSFORM_DIRECTION_LT_CORNER;
G2D_WRITE_CMQ(G2D_CMQ_SUBMODE_CTRL_REG_L_ADDR | (temp_mode & 0xFFFF));
G2D_WRITE_CMQ(G2D_CMQ_SUBMODE_CTRL_REG_H_ADDR | ((temp_mode & 0xFFFF)>>16));
temp_mode=REG_G2D_COMM_CTRL;
if (g2d_data->clip_mode ==G2D_CLIP_ENABLE)
temp_mode |= REG_COMMON_CTRL_G2D_CLIP_ENABLE_BIT;
else
temp_mode &= ~REG_COMMON_CTRL_G2D_CLIP_ENABLE_BIT;
if (g2d_data->src_key_mode==G2D_BITBLT_DEST_SRC_KEY_ENABLE)
temp_mode |= REG_COMMON_CTRL_G2D_SRC_KEY_ENABLE_BIT;
else
temp_mode &= ~REG_COMMON_CTRL_G2D_SRC_KEY_ENABLE_BIT;
G2D_WRITE_CMQ(G2D_CMQ_2D_COMMON_CTRL_REG_ADDR | ((kal_uint16)temp_mode))
G2D_WRITE_CMQ(G2D_CMQ_FIRE_MODE_CTRL_REG_ADDR | (g2d_data->dest_color_mode)|
(g2d_data->src_color_mode)| g2d_data->g2d_operation_mode);
DISABLE_G2D_CMQ_WRITE;
wait_cmq_start();
}
else
{
DISABLE_G2D_CMQ;
g2d_set_clip_window(g2d_data);
REG_G2D_SRC_BASE_ADDRESS = g2d_data->src_base_address;
REG_G2D_DEST_BASE_ADDRESS = g2d_data->dest_base_address;
REG_G2D_SRC_PITCH = g2d_data->src_pitch;
REG_G2D_DEST_PITCH = g2d_data->dest_pitch;
REG_G2D_SRC_XY = (((kal_uint16) g2d_data->src_x)<<16)|((kal_uint16)g2d_data->src_y);
REG_G2D_SRC_WIDTH_HEIGHT = (g2d_data->src_width<<16) | g2d_data->src_height;
REG_G2D_DEST_WIDTH_HEIGHT = (g2d_data->dest_width<<16) | g2d_data->dest_height;
REG_G2D_SRC_KEY_COLOR=g2d_data->src_key_color;
switch (g2d_data->bitblt_mode)
{
case BITBLT_TRANSFORM_MIRROR_ROTATE_90:
REG_G2D_DEST_XY = ((g2d_data->dest_x+g2d_data->dest_width-1)<<16)|(g2d_data->dest_height+g2d_data->dest_y-1);
break;
case BITBLT_TRANSFORM_ROTATE_90:
REG_G2D_DEST_XY = ((g2d_data->dest_x+g2d_data->dest_width-1)<<16)|(((kal_uint16) g2d_data->dest_y));
break;
case BITBLT_TRANSFORM_ROTATE_270:
REG_G2D_DEST_XY = (((kal_uint16) g2d_data->dest_x)<<16)|(g2d_data->dest_height+g2d_data->dest_y-1);
break;
case BITBLT_TRANSFORM_MIRROR_ROTATE_270:
case BITBLT_TRANSFORM_COPY:
REG_G2D_DEST_XY = (((kal_uint16) g2d_data->dest_x)<<16)|(((kal_uint16) g2d_data->dest_y));
break;
case BITBLT_TRANSFORM_ROTATE_180:
REG_G2D_DEST_XY = ((g2d_data->dest_x+g2d_data->dest_width-1)<<16)|(g2d_data->dest_height+g2d_data->dest_y-1);
break;
case BITBLT_TRANSFORM_MIRROR:
REG_G2D_DEST_XY = ((g2d_data->dest_x+g2d_data->dest_width-1)<<16)|(((kal_uint16) g2d_data->dest_y));
break;
case BITBLT_TRANSFORM_MIRROR_ROTATE_180:
REG_G2D_DEST_XY = (((kal_uint16) g2d_data->dest_x)<<16)|(g2d_data->dest_height+g2d_data->dest_y-1);
break;
}
SET_BITBLT_TRANSFORM_MODE(g2d_data->bitblt_mode);
if (g2d_data->bitblt_mode==BITBLT_TRANSFORM_COPY)
{
SET_BITBLT_DIRECTION(g2d_bitblt_direction(g2d_data));
}
if (g2d_data->italic_mode==G2D_REC_FILL_ITALIC_ENABLE)
{
ENABLE_G2D_BITBLT_ITALIC_MODE;
}
else
{
DISABLE_G2D_BITBLT_ITALIC_MODE;
}
if (g2d_data->clip_mode ==G2D_CLIP_ENABLE)
{
ENABLE_G2D_ENGINE_CLIP;
}
else
{
DISABLE_G2D_ENGINE_CLIP
}
if (g2d_data->src_key_mode==G2D_BITBLT_DEST_SRC_KEY_ENABLE)
{
ENABLE_G2D_ENGINE_SRC_KEY;
}
else
{
DISABLE_G2D_ENGINE_SRC_KEY;
}
fire_mode=(g2d_data->src_color_mode)|(g2d_data->dest_color_mode)|g2d_data->g2d_operation_mode;
ENABLE_G2D_ENGINE_INT;
REG_G2D_FIRE_CTRL=fire_mode;
}
while (G2D_ENGINE_IS_BUSY) {};
g2d_power_off();
#endif
#endif
} /* g2d_bitblt() */
/*************************************************************************
* FUNCTION
* g2d_alpha_bitblt
*
* DESCRIPTION
* This function execute alpha blending operation.
*
* PARAMETERS
* g2d_data : the parameter data structure of G2D module
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void g2d_alpha_bitblt(g2d_parameter_struct *g2d_data)
{
#ifdef __MTK_TARGET__
#if (defined (MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
kal_uint16 temp_mode;
// kal_uint32 event_group;
g2d_power_on();
g2d_set_clip_window(g2d_data);
ENABLE_G2D_ENGINE_INT;
if ((g2d_data->dest_width!=g2d_data->src_width)||
(g2d_data->dest_height!=g2d_data->src_height))
ASSERT(0);
if (G2D_ENGINE_IS_BUSY)
{
ENABLE_G2D_CMQ;
while (G2D_CMQ_FREE_SPACE<18)
{};
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SRC_BASE_L_ADDR | (g2d_data->src_base_address & 0xFFFF)));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SRC_BASE_H_ADDR | ((g2d_data->src_base_address>>16) & 0xFFFF)));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_DEST_BASE_L_ADDR | (g2d_data->dest_base_address & 0xFFFF)));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_DEST_BASE_H_ADDR | ((g2d_data->dest_base_address>>16) & 0xFFFF)));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SRC_PITCH_ADDR | g2d_data->src_pitch));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_DEST_PITCH_ADDR | g2d_data->dest_pitch));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SRC_Y_ADDR | g2d_data->src_y));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SRC_X_ADDR | g2d_data->src_x));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_DEST_Y_ADDR | g2d_data->dest_y));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_DEST_X_ADDR | g2d_data->dest_x));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SRC_HEIGHT_ADDR | g2d_data->src_height));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SRC_WIDTH_ADDR | g2d_data->src_width));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_DEST_HEIGHT_ADDR | g2d_data->dest_height));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_DEST_WIDTH_ADDR | g2d_data->dest_width));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SRC_ALPHA_ADDR | g2d_data->src_alpha));
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_DEST_ALPHA_ADDR | g2d_data->dest_alpha));
if (g2d_data->src_color_mode==G2D_SRC_16BPP_LUT_DISABLE)
{
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_FIRE_MODE_CTRL_REG_ADDR | FIRE_G2D_ALPHA_BLENDING));
}
else if (g2d_data->src_color_mode==G2D_SRC_8BPP_LUT_ENABLE)
{
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_FIRE_MODE_CTRL_REG_ADDR |(FIRE_G2D_ALPHA_BLENDING|FIRE_SRC_COLOR_8BPP_LUT_EN)));
temp_mode=DRV_Reg32(G2D_SUBMODE_CTRL_REG);
temp_mode |= REG_COMMON_CTRL_G2D_PALETTE_ENABLE_BIT;
DRV_WriteReg32(G2D_CMQ_DATA_REG,(G2D_CMQ_SUBMODE_CTRL_REG_ADDR | temp_mode));
}
else
ASSERT(0);
}
else
{
DISABLE_G2D_CMQ;
DRV_WriteReg32(G2D_SRC_BASE_ADDRESS_REG, g2d_data->src_base_address);
DRV_WriteReg32(G2D_DEST_BASE_ADDRESS_REG,g2d_data->dest_base_address);
DRV_WriteReg32(G2D_SRC_PITCH_REG,g2d_data->src_pitch);
DRV_WriteReg32(G2D_DEST_PITCH_REG,g2d_data->dest_pitch);
DRV_WriteReg32(G2D_SRC_XY_REG,(g2d_data->src_x<<16)|g2d_data->src_y);
DRV_WriteReg32(G2D_DEST_XY_REG,(g2d_data->dest_x<<16)|g2d_data->dest_y);
DRV_WriteReg32(G2D_SRC_WIDTH_HEIGHT_REG,(g2d_data->src_width<<16) | g2d_data->src_height);
DRV_WriteReg32(G2D_DEST_WIDTH_HEIGHT_REG,(g2d_data->dest_width<<16) | g2d_data->dest_height);
REG_G2D_SRC_ALPHA =g2d_data->src_alpha;
REG_G2D_DEST_ALPHA =g2d_data->dest_alpha;
if (g2d_data->src_color_mode==G2D_SRC_16BPP_LUT_DISABLE)
{
SET_G2D_ALPHA_BLENDING_SRC_16BPP_LUT_DISABLE;
}
else if (g2d_data->src_color_mode==G2D_SRC_8BPP_LUT_ENABLE)
{
ENABLE_G2D_ENGINE_PALETTE;
SET_G2D_ALPHA_BLENDING_SRC_8BPP_LUT_ENABLE;
}
else
ASSERT(0);
// DISABLE_REG_G2D_ENGINE_PALETTE;
}
while (G2D_ENGINE_IS_BUSY) {};
// kal_retrieve_eg_events(g2d_event_id,G2D_COMPLETE_EVENT,KAL_OR_CONSUME,&event_group,KAL_SUSPEND);
g2d_power_off();
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
kal_uint32 temp_mode;
kal_uint16 fire_mode;
g2d_power_on();
RESET_G2D_ENGINE;
g2d_set_clip_window(g2d_data);
// if (G2D_ENGINE_IS_BUSY)
if (g2d_data->g2d_cmq_mode==KAL_TRUE)
{
ENABLE_G2D_CMQ;
while (G2D_CMQ_FREE_SPACE<20) {};
ENABLE_G2D_CMQ_WRITE;
G2D_WRITE_CMQ(G2D_CMQ_SRC_BASE_L_ADDR | (g2d_data->src_base_address & 0xFFFF));
G2D_WRITE_CMQ(G2D_CMQ_SRC_BASE_H_ADDR | ((g2d_data->src_base_address>>16) & 0xFFFF));
G2D_WRITE_CMQ(G2D_CMQ_DEST_BASE_L_ADDR | (g2d_data->dest_base_address & 0xFFFF));
G2D_WRITE_CMQ(G2D_CMQ_DEST_BASE_H_ADDR | ((g2d_data->dest_base_address>>16) & 0xFFFF));
G2D_WRITE_CMQ(G2D_CMQ_SRC_PITCH_ADDR | g2d_data->src_pitch);
G2D_WRITE_CMQ(G2D_CMQ_DEST_PITCH_ADDR | g2d_data->dest_pitch);
G2D_WRITE_CMQ(G2D_CMQ_SRC_Y_ADDR | ((kal_uint16)g2d_data->src_y));
G2D_WRITE_CMQ(G2D_CMQ_SRC_X_ADDR | ((kal_uint16) g2d_data->src_x));
G2D_WRITE_CMQ(G2D_CMQ_DEST_Y_ADDR | ((kal_uint16) g2d_data->dest_y));
G2D_WRITE_CMQ(G2D_CMQ_DEST_X_ADDR | ((kal_uint16) g2d_data->dest_x));
G2D_WRITE_CMQ(G2D_CMQ_SRC_HEIGHT_ADDR | g2d_data->src_height);
G2D_WRITE_CMQ(G2D_CMQ_SRC_WIDTH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -