vg_lcdc.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #ifndef _VG_LCDC_H_
  2. #define _VG_LCDC_H_
  3. #if defined (__cplusplus)
  4. extern "C"{
  5. #endif
  6. // 定义VG的FB模式 ()
  7. // FB_COUNT = 2, 为双缓存模式
  8. // FB_COUNT = 1, 为单帧模式
  9. #ifndef FB_COUNT
  10. #define FB_COUNT 2
  11. //#define FB_COUNT 1
  12. #endif
  13. // 获取VG可用的framebuffer个数(固定为2个)
  14. unsigned int xm_vg_get_fb_count (void);
  15. // 获取VG帧(GPU帧)的每行数据字节长度
  16. unsigned int xm_vg_get_stride (void);
  17. // 获取OSD帧的每行数据字节长度
  18. unsigned int xm_vg_get_osd_stride (void);
  19. // 获取VG帧(GPU帧/OSD帧)的bpp设置
  20. // 16 (RGB565)
  21. // 32 (ARGB8888)
  22. unsigned int xm_vg_get_bpp (void);
  23. // 获取一个新的VG帧的GPU fb物理地址, 用于GPU后台渲染
  24. // VG帧是OSD帧内部的开窗区域, 用于GPU绘图使用
  25. // 返回值
  26. // 指向VG帧的原点(左上角)
  27. unsigned int xm_vg_require_gpu_fb (void);
  28. // 释放当前后台渲染(GPU渲染)所使用的VG帧.
  29. // 该VG帧(GPU)关联的OSD帧可用于LCD显示更新
  30. void xm_vg_release_gpu_fb (void);
  31. // 检查指定的基址是否是有效的GPU framebuffer
  32. // 返回值
  33. // 1 是有效的GPU framebuffer地址
  34. // 0 不是
  35. int xm_vg_is_valid_gpu_fb (unsigned int base);
  36. // 设置VG帧在OSD帧内部的开窗位置
  37. // VG帧属于OSD帧的内部开窗
  38. void xm_vg_set_osd_window ( unsigned int x, // VG帧原点(左上角)相对于OSD帧原点(左上角)的像素偏移
  39. unsigned int y,
  40. unsigned int w, // VG帧的像素尺寸
  41. unsigned int h
  42. );
  43. void xm_vg_set_x (unsigned int x);
  44. void xm_vg_set_y (unsigned int y);
  45. void xm_vg_set_width (unsigned int w);
  46. void xm_vg_set_height (unsigned int h);
  47. // 读取VG帧在OSD帧内部的开窗位置
  48. // VG帧属于OSD帧的内部开窗
  49. void xm_vg_get_osd_window ( unsigned int* x, // 相对于OSD帧原点(左上角)的像素偏移
  50. unsigned int* y,
  51. unsigned int* w, // VG帧的像素尺寸
  52. unsigned int* h,
  53. unsigned int* stride // VG帧的每行字节长度
  54. );
  55. // 获取VG帧相对于OSD帧原点(左上角)的像素偏移
  56. unsigned int xm_vg_get_x (void);
  57. unsigned int xm_vg_get_y (void);
  58. // 获取VG帧的像素宽度
  59. unsigned int xm_vg_get_width (void);
  60. // 获取VG帧的像素高度
  61. unsigned int xm_vg_get_height (void);
  62. // 获取当前正在渲染的OSD framebuffer
  63. // *no == -1 表示获取当前正在渲染的OSD framebuffer
  64. // 返回值
  65. // 当前正在渲染的OSD framebuffer基址
  66. unsigned int xm_vg_get_osd_fb (int *no);
  67. // 获取VG帧填充的背景图基址(与GPU FB相同尺寸/规格)
  68. void* xm_vg_get_gpu_background_image (void);
  69. #if defined (__cplusplus)
  70. }
  71. #endif /* end of __cplusplus */
  72. #endif /* _XM_SIGNAL_H_ */