1 #ifdef Android
2 #include <utils/Singleton.h>
3 #include <RockchipRga_Android.h>
4 #else
5 #include "RockchipRga.h"
6 #endif
7 #include "rkRgaApi.h"
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 #ifndef Android
14 static RockchipRga rkRga;
15 #endif
16
rkRgaInit()17 void rkRgaInit()
18 {
19 #ifndef Android
20 rkRga.RkRgaInit();
21 #endif
22 }
23
rkRgaBlit(struct rkRgaCfg * src_cfg,struct rkRgaCfg * dst_cfg)24 int rkRgaBlit(struct rkRgaCfg *src_cfg, struct rkRgaCfg *dst_cfg)
25 {
26 int ret = 0;
27
28 #ifdef Android
29 android::RockchipRga& rkRga(android::RockchipRga::get());
30 #endif
31
32 /********** rga_info_t Init **********/
33 rga_info_t src;
34 rga_info_t dst;
35
36 memset(&src, 0, sizeof(rga_info_t));
37 src.fd = src_cfg->fd;
38 src.mmuFlag = 1;
39 src.virAddr = src_cfg->addr;
40
41 memset(&dst, 0, sizeof(rga_info_t));
42 dst.fd = dst_cfg->fd;
43 dst.mmuFlag = 1;
44 dst.virAddr = dst_cfg->addr;
45
46 /********** set the rect_info **********/
47 rga_set_rect(&src.rect, 0, 0, src_cfg->width, src_cfg->height, src_cfg->width/*stride*/, src_cfg->height, src_cfg->fmt);
48 rga_set_rect(&dst.rect, 0, 0, dst_cfg->width, dst_cfg->height, dst_cfg->width/*stride*/, dst_cfg->height, dst_cfg->fmt);
49
50 /************ set the rga_mod ,rotation\composition\scale\copy .... **********/
51 #if 0
52 src.rotation = 0;
53 src.rotation = HAL_TRANSFORM_ROT_90;
54 src.rotation = HAL_TRANSFORM_ROT_180;
55 src.rotation = HAL_TRANSFORM_ROT_270;
56 src.rotation = HAL_TRANSFORM_FLIP_V;
57 src.rotation = HAL_TRANSFORM_FLIP_H;
58 #endif
59
60 /********** call rga_Interface **********/
61 ret = rkRga.RkRgaBlit(&src, &dst, NULL);
62 if (ret) {
63 printf("rgaFillColor error : %s\n", strerror(errno));
64 }
65
66 return ret;
67 }
68
69 #ifdef __cplusplus
70 };
71 #endif
72