硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3562|回复: 10
收起左侧

[ThreadX全家桶] ThreadX GUIX底层提供的各种加速接口函数的确比emWin要丰富,RA8875都能发挥威力了

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107642
QQ
发表于 2020-6-27 10:23:52 | 显示全部楼层 |阅读模式



之前emWin配套到RA8875上,自带的2D加速仅用上了一个BTE颜色填充,而ThreadX GUIX几乎可以让所有的RA8875加速都用上,

像硬件绘制椭圆,圆圈,直线等:

QQ截图20200627102310.jpg

  1. VOID _gx_display_driver_565rgb_setup(GX_DISPLAY *display, VOID *aux_data,
  2.                                      VOID (*toggle_function)(struct GX_CANVAS_STRUCT *canvas,
  3.                                                              GX_RECTANGLE *dirty_area))
  4. {
  5.     /* Default initiate and complete function to null for general condition. */
  6.     display -> gx_display_driver_drawing_initiate              = GX_NULL;
  7.     display -> gx_display_driver_drawing_complete              = GX_NULL;

  8. #if defined(GX_MOUSE_SUPPORT)
  9. #if defined(GX_HARDWARE_MOUSE_SUPPORT)
  10.     display -> gx_display_mouse_position_set                   = GX_NULL;
  11.     display -> gx_display_mouse_enable                         = GX_NULL;
  12. #else
  13.     display -> gx_display_mouse.gx_mouse_capture_memory        = (GX_UBYTE *)mouse_capture_memory;
  14.     display -> gx_display_mouse.gx_mouse_status                = 0;
  15.    
  16.     display -> gx_display_mouse.gx_mouse_position.gx_point_x   = display -> gx_display_width / 2;
  17.     display -> gx_display_mouse.gx_mouse_position.gx_point_y   = display -> gx_display_height / 2;
  18.    
  19.     /* these functions are specific to the display color format, and will be NULL for hardware mouse */
  20.     display -> gx_display_mouse_capture                        = _gx_display_driver_16bpp_mouse_capture;
  21.     display -> gx_display_mouse_restore                        = _gx_display_driver_16bpp_mouse_restore;
  22.     display -> gx_display_mouse_draw                           = _gx_display_driver_generic_mouse_draw;
  23.     display -> gx_display_driver_drawing_initiate              = _gx_display_driver_generic_drawing_initiate;
  24.     display -> gx_display_driver_drawing_complete              = _gx_display_driver_generic_drawing_complete;
  25.     display -> gx_display_mouse_position_set                   = _gx_display_driver_generic_mouse_position_set;
  26.     display -> gx_display_mouse_enable                         = _gx_display_driver_generic_mouse_enable;
  27. #endif

  28.     /* these functions are generic, same for every color depth, but will be overridden for hardware mouse */
  29.     display -> gx_display_mouse.gx_mouse_cursor_info           = GX_NULL;
  30.     display -> gx_display_mouse_define                         = _gx_display_driver_generic_mouse_define;
  31. #endif

  32.     display -> gx_display_driver_data                          = (VOID *)aux_data;
  33.     display -> gx_display_accelerator                          = GX_NULL;
  34.     display -> gx_display_layer_services                       = GX_NULL;
  35.     display -> gx_display_driver_callback_assign               = GX_NULL;

  36.     display -> gx_display_color_format                         = GX_COLOR_FORMAT_565RGB;
  37.     display -> gx_display_driver_canvas_copy                   = _gx_display_driver_16bpp_canvas_copy;
  38.     display -> gx_display_driver_simple_line_draw              = _gx_display_driver_16bpp_simple_line_draw;
  39.     display -> gx_display_driver_horizontal_line_draw          = _gx_display_driver_16bpp_horizontal_line_draw;
  40.     display -> gx_display_driver_vertical_line_draw            = _gx_display_driver_16bpp_vertical_line_draw;
  41.     display -> gx_display_driver_horizontal_pattern_line_draw  = _gx_display_driver_16bpp_horizontal_pattern_line_draw;
  42.     display -> gx_display_driver_horizontal_pixelmap_line_draw = _gx_display_driver_565rgb_horizontal_pixelmap_line_draw;
  43.     display -> gx_display_driver_vertical_pattern_line_draw    = _gx_display_driver_16bpp_vertical_pattern_line_draw;
  44.     display -> gx_display_driver_pixel_write                   = _gx_display_driver_16bpp_pixel_write;
  45.     display -> gx_display_driver_block_move                    = _gx_display_driver_16bpp_block_move;

  46.     display -> gx_display_driver_native_color_get              = _gx_display_driver_565rgb_native_color_get;
  47.     display -> gx_display_driver_row_pitch_get                 = _gx_display_driver_16bpp_row_pitch_get;
  48.     display -> gx_display_driver_pixelmap_draw                 = _gx_display_driver_565rgb_pixelmap_draw;
  49.     display -> gx_display_driver_pixelmap_rotate               = _gx_display_driver_16bpp_pixelmap_rotate;
  50.     display -> gx_display_driver_alphamap_draw                 = _gx_display_driver_generic_alphamap_draw;
  51.     display -> gx_display_driver_simple_wide_line_draw         = _gx_display_driver_generic_simple_wide_line_draw;
  52.     display -> gx_display_driver_polygon_draw                  = _gx_display_driver_generic_polygon_draw;
  53.     display -> gx_display_driver_polygon_fill                  = _gx_display_driver_generic_polygon_fill;

  54.     display -> gx_display_driver_anti_aliased_line_draw        = _gx_display_driver_generic_aliased_line_draw;
  55.     display -> gx_display_driver_anti_aliased_wide_line_draw   = _gx_display_driver_generic_aliased_wide_line_draw;

  56. #if defined(GX_ARC_DRAWING_SUPPORT)
  57.     display -> gx_display_driver_anti_aliased_circle_draw      = _gx_display_driver_generic_aliased_circle_draw;
  58.     display -> gx_display_driver_anti_aliased_ellipse_draw     = _gx_display_driver_generic_aliased_ellipse_draw;
  59.     display -> gx_display_driver_circle_draw                   = _gx_display_driver_generic_circle_draw;
  60.     display -> gx_display_driver_circle_fill                   = _gx_display_driver_generic_circle_fill;
  61.     display -> gx_display_driver_pie_fill                      = _gx_display_driver_generic_pie_fill;
  62.     display -> gx_display_driver_anti_aliased_arc_draw         = _gx_display_driver_generic_aliased_arc_draw;
  63.     display -> gx_display_driver_arc_draw                      = _gx_display_driver_generic_arc_draw;
  64.     display -> gx_display_driver_arc_fill                      = _gx_display_driver_generic_arc_fill;
  65.     display -> gx_display_driver_ellipse_draw                  = _gx_display_driver_generic_ellipse_draw;
  66.     display -> gx_display_driver_ellipse_fill                  = _gx_display_driver_generic_ellipse_fill;
  67.     display -> gx_display_driver_anti_aliased_wide_circle_draw = _gx_display_driver_generic_aliased_wide_circle_draw;
  68.     display -> gx_display_driver_wide_circle_draw              = _gx_display_driver_generic_wide_circle_draw;
  69.     display -> gx_display_driver_anti_aliased_wide_ellipse_draw= _gx_display_driver_generic_aliased_wide_ellipse_draw;
  70.     display -> gx_display_driver_wide_ellipse_draw             = _gx_display_driver_generic_wide_ellipse_draw;
  71.     display -> gx_display_driver_anti_aliased_wide_arc_draw    = _gx_display_driver_generic_aliased_wide_arc_draw;
  72.     display -> gx_display_driver_wide_arc_draw                 = _gx_display_driver_generic_wide_arc_draw;
  73. #endif

  74.     display -> gx_display_driver_palette_set                   = GX_NULL;
  75.     display -> gx_display_driver_buffer_toggle                 = toggle_function;

  76.     display -> gx_display_driver_canvas_blend                  = _gx_display_driver_565rgb_canvas_blend;
  77.     display -> gx_display_driver_pixel_blend                   = _gx_display_driver_565rgb_pixel_blend;
  78.     display -> gx_display_driver_pixelmap_blend                = _gx_display_driver_565rgb_pixelmap_blend;

  79.     display -> gx_display_driver_8bit_glyph_draw               = _gx_display_driver_generic_glyph_8bit_draw;
  80.     display -> gx_display_driver_4bit_glyph_draw               = _gx_display_driver_generic_glyph_4bit_draw;
  81.     display -> gx_display_driver_1bit_glyph_draw               = _gx_display_driver_16bpp_glyph_1bit_draw;

  82.     display -> gx_display_driver_8bit_compressed_glyph_draw    = GX_NULL;
  83.     display -> gx_display_driver_4bit_compressed_glyph_draw    = GX_NULL;
  84.     display -> gx_display_driver_1bit_compressed_glyph_draw    = GX_NULL;


  85. #if defined(GX_SOFTWARE_DECODER_SUPPORT)
  86.     display -> gx_display_driver_jpeg_draw                     = _gx_display_driver_565rgb_jpeg_draw;
  87.     display -> gx_display_driver_png_draw                      = _gx_display_driver_565rgb_png_draw;
  88. #endif
  89. }
复制代码







回复

使用道具 举报

29

主题

181

回帖

268

积分

高级会员

积分
268
发表于 2020-6-27 13:26:33
就等着老大出教程了,每天看着都心痒痒

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2020-6-27 15:16:36 | 显示全部楼层
RA8875已经买不到了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107642
QQ
 楼主| 发表于 2020-6-27 15:23:51 | 显示全部楼层
waterx3 发表于 2020-6-27 15:16
RA8875已经买不到了

买的到,我们还有不少呢。
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2020-6-27 16:26:28 | 显示全部楼层
前一段时间手里所有的供应商都没货,而且价格在180以上,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107642
QQ
 楼主| 发表于 2020-6-27 16:29:14 | 显示全部楼层
waterx3 发表于 2020-6-27 16:26
前一段时间手里所有的供应商都没货,而且价格在180以上,

明天联系我们旺旺来点吧
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2020-6-27 16:46:03 | 显示全部楼层
改成429了,成本还下来了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107642
QQ
 楼主| 发表于 2020-6-27 16:48:12 | 显示全部楼层
waterx3 发表于 2020-6-27 16:46
改成429了,成本还下来了

这么多年过去了,RA8875还是有点优势的,51都可以刷,带硬件2D加速,支持8080,SPI, I2C等接口方式,很灵活。
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2020-6-27 16:48:37 | 显示全部楼层
顺便问一下,屏和429之间用FPC连,最远能有多远?考虑都装在一个金属壳内。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107642
QQ
 楼主| 发表于 2020-6-28 00:35:06 | 显示全部楼层
waterx3 发表于 2020-6-27 16:48
顺便问一下,屏和429之间用FPC连,最远能有多远?考虑都装在一个金属壳内。

这个与你配置的时钟速度也有关系,你可以根据你的应用场景做实测。
回复

使用道具 举报

17

主题

88

回帖

139

积分

初级会员

积分
139
发表于 2020-10-19 10:25:45 | 显示全部楼层
这个会有教程?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107642
QQ
 楼主| 发表于 2020-10-20 01:38:22 | 显示全部楼层
into 发表于 2020-10-19 10:25
这个会有教程?

RA8875的2D加速用于GUIX吗。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-9 22:27 , Processed in 0.213364 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表