230 Star 1.2K Fork 357

GVPzlgopen/awtk

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
.github/workflows
3rd
demos
design
dllexports
docs
dots
images
manual
images
MIME_TYPE.md
XmlBuilder.md
XmlParser.md
action_darray_thread_t.md
action_thread_pool_t.md
action_thread_t.md
align_h_t.md
align_v_t.md
app_bar_t.md
app_conf_t.md
app_type_t.md
arg_desc_flags_t.md
asset_data_type_t.md
asset_font_type_t.md
asset_image_type_t.md
asset_info_flag_t.md
asset_info_t.md
asset_loader_t.md
asset_script_type_t.md
asset_type_t.md
asset_ui_type_t.md
assets_event_t.md
assets_manager_t.md
assets_managers_t.md
async_t.md
bidi_t.md
bidi_type_t.md
bitmap_flag_t.md
bitmap_format_t.md
bitmap_t.md
border_type_t.md
bsvg_t.md
button_group_t.md
button_t.md
bytesize_t.md
calibration_win_t.md
candidates_t.md
canvas_offline_t.md
canvas_t.md
canvas_widget_t.md
check_button_t.md
children_layouter_default_t.md
children_layouter_factory_t.md
children_layouter_list_view_t.md
children_layouter_t.md
clip_board_data_type_t.md
clip_board_t.md
clip_view_t.md
cmd_arg_desc_t.md
cmd_args_t.md
cmd_exec_event_t.md
color_component_t.md
color_parser_t.md
color_picker_t.md
color_t.md
color_tile_t.md
column_t.md
combo_box_ex_t.md
combo_box_item_t.md
combo_box_t.md
compressor_miniz_t.md
compressor_t.md
conf_doc_t.md
conf_ini_t.md
conf_json_t.md
conf_node_t.md
conf_node_type_t.md
conf_node_value_t.md
conf_obj_t.md
conf_ubjson_t.md
conf_xml_t.md
crc_t.md
csv_file_object_t.md
csv_file_t.md
csv_row_object_t.md
csv_row_t.md
custom_prop_t.md
custom_props_t.md
darray_t.md
data_discard_policy_t.md
data_reader_asset_t.md
data_reader_factory_t.md
data_reader_file_t.md
data_reader_http_t.md
data_reader_mem_t.md
data_reader_t.md
data_writer_factory_t.md
data_writer_file_t.md
data_writer_t.md
data_writer_wbuffer_t.md
date_time_format_t.md
date_time_t.md
debugger_breaked_event_t.md
debugger_client_t.md
debugger_client_tcp_t.md
debugger_error_event_t.md
debugger_factory_t.md
debugger_frame_changed_event_t.md
debugger_fscript_t.md
debugger_global_t.md
debugger_lldb_t.md
debugger_log_event_t.md
debugger_program_state_t.md
debugger_req_t.md
debugger_req_type_t.md
debugger_resp_t.md
debugger_resp_type_t.md
debugger_server_t.md
debugger_server_tcp_t.md
debugger_t.md
dialog_client_t.md
dialog_highlighter_default_t.md
dialog_highlighter_factory_t.md
dialog_highlighter_t.md
dialog_highlighter_type_t.md
dialog_quit_code_t.md
dialog_t.md
dialog_title_t.md
digit_clock_t.md
dirty_rects_t.md
dlist_t.md
done_event_t.md
draggable_t.md
dragger_t.md
drop_file_event_t.md
easing_t.md
easing_type_t.md
edit_t.md
emitter_t.md
encoding_name_t.md
encoding_t.md
endian_t.md
enum_helper.md
error_event_t.md
eval_t.md
event_base_type_t.md
event_recorder_player_t.md
event_source_fd_t.md
event_source_idle_t.md
event_source_manager_default_t.md
event_source_manager_t.md
event_source_t.md
event_source_timer_t.md
event_t.md
event_type_t.md
ext_widgets_t.md
fb_item_t.md
file_browser_t.md
file_browser_view_t.md
file_chooser_t.md
file_dialog_t.md
file_receiver_t.md
file_sender_t.md
file_transfer_ack_t.md
file_transfer_data_t.md
file_transfer_meta_t.md
file_transfer_packet_type_t.md
file_transfer_req_t.md
flowcontrol_t.md
font_loader_bitmap_t.md
font_loader_ft_t.md
font_loader_stb_t.md
font_loader_t.md
font_manager_t.md
font_managers_t.md
font_t.md
fps_t.md
fs_dir_t.md
fs_file_t.md
fs_item_t.md
fs_stat_info_t.md
fs_t.md
fscript_args_t.md
fscript_func_call_t.md
fscript_function_def_t.md
fscript_module_t.md
fscript_parser_error_t.md
fscript_t.md
func_call_parser_t.md
func_desc_t.md
g2d_t.md
gauge_pointer_t.md
gauge_t.md
gif_image_t.md
global_t.md
glyph_cache_t.md
glyph_format_t.md
glyph_t.md
gradient_stop_t.md
gradient_t.md
gradient_type_t.md
graphic_buffer_t.md
grid_item_t.md
grid_t.md
group_box_t.md
guage_pointer_t.md
guage_t.md
hal_shell_t.md
hash_table_t.md
hscroll_label_t.md
hscrollable_t.md
icon_at_type_t.md
idle_info_t.md
idle_manager_t.md
idle_t.md
im_action_button_info_event_t.md
im_candidates_event_t.md
im_commit_event_t.md
image_animation_t.md
image_base_t.md
image_draw_type_t.md
image_loader_stb_t.md
image_loader_t.md
image_manager_t.md
image_managers_t.md
image_t.md
image_value_t.md
indicator_default_paint_t.md
input_device_status_t.md
input_engine_null_t.md
input_engine_pinyin_t.md
input_engine_t.md
input_method_default_t.md
input_method_null_t.md
input_method_sdl_t.md
input_method_t.md
input_type_t.md
int_str_t.md
key_code_t.md
key_event_t.md
keyboard_t.md
keyboard_type_t.md
label_t.md
lang_indicator_t.md
lcd_draw_mode_t.md
lcd_fb_dirty_rects_t.md
lcd_mem_bgr565_t.md
lcd_mem_bgr888_t.md
lcd_mem_bgra8888_t.md
lcd_mem_fragment_t.md
lcd_mem_rgb565_t.md
lcd_mem_rgb888_t.md
lcd_mem_rgba8888_t.md
lcd_mem_special_t.md
lcd_mono_t.md
lcd_orientation_t.md
lcd_profile_t.md
lcd_t.md
lcd_type_t.md
line_break_check.md
line_break_type_t.md
line_number_t.md
list_item_seperator_t.md
list_item_t.md
list_view_h_t.md
list_view_t.md
locale_info_t.md
locale_infos_t.md
log_level_t.md
log_message_event_t.md
log_t.md
main_loop_simple_t.md
main_loop_t.md
matrix_t.md
mem_allocator_composite_t.md
mem_allocator_debug_t.md
mem_allocator_lock_t.md
mem_allocator_oom_t.md
mem_allocator_pool_t.md
mem_allocator_simple_t.md
mem_allocator_std_t.md
mem_allocator_t.md
mledit_t.md
mmap_t.md
model_event_t.md
multi_gesture_event_t.md
mutable_image_t.md
named_value_hash_t.md
named_value_t.md
native_window_t.md
network_interface_t.md
network_interface_type_t.md
network_interface_wifi_auth_t.md
network_interface_wifi_freq_t.md
object_app_conf_t.md
object_array_t.md
object_cmd_t.md
object_compositor_t.md
object_date_time_t.md
object_default_t.md
object_hash_t.md
object_locker_t.md
object_prop_t.md
object_rbuffer_t.md
object_t.md
object_typed_array_t.md
object_wbuffer_t.md
object_widget_t.md
offset_change_event_t.md
orientation_event_t.md
overlay_t.md
pages_t.md
paint_event_t.md
parity_t.md
path.md
path_t.md
platform.md
platform_t.md
plugin_manager_t.md
point_t.md
pointer_event_t.md
pointf_t.md
popup_t.md
preload_res_t.md
process_start_info_t.md
progress_bar_t.md
progress_circle_t.md
progress_event_t.md
prop_change_event_t.md
prop_desc_domain_name_t.md
prop_desc_double_t.md
prop_desc_email_t.md
prop_desc_flags_t.md
prop_desc_float_t.md
prop_desc_int32_t.md
prop_desc_int64_t.md
prop_desc_int_enums_t.md
prop_desc_ip4_address_t.md
prop_desc_phone_t.md
prop_desc_scope_t.md
prop_desc_string_enums_t.md
prop_desc_string_t.md
prop_desc_t.md
prop_desc_type_t.md
prop_desc_uint32_t.md
prop_desc_uint64_t.md
prop_desc_url_t.md
qaction_t.md
rbuffer_t.md
rect_t.md
rectf_t.md
remote_ui_dev_info_t.md
remote_ui_msg_code_t.md
remote_ui_reboot_type_t.md
remote_ui_service_args_t.md
remote_ui_service_t.md
remote_ui_t.md
ret_t.md
rgba_t.md
rich_text_t.md
rich_text_view_t.md
ring_buffer_t.md
rlog_t.md
rom_file_t.md
rom_t.md
romfs_t.md
row_t.md
scroll_bar_t.md
scroll_view_t.md
self_layouter_default_t.md
self_layouter_factory_t.md
self_layouter_menu_t.md
self_layouter_t.md
serial_t.md
serial_widget_t.md
shortcut_t.md
slide_indicator_t.md
slide_menu_t.md
slide_view_t.md
slider_t.md
slist_t.md
socket.md
socketpair_t.md
spin_box_t.md
stopbits_t.md
str_str_t.md
str_t.md
style_const_t.md
style_factory_t.md
style_id_t.md
style_mutable_t.md
style_t.md
style_type_t.md
suggest_words_t.md
svg_helper_t.md
svg_image_t.md
svg_path_t.md
switch_t.md
system_bar_t.md
system_event_t.md
system_info_flag_t.md
system_info_t.md
tab_button_group_t.md
tab_button_t.md
tab_control_t.md
tcp_t.md
text_edit_state_t.md
text_edit_t.md
text_selector_t.md
theme_change_event_t.md
theme_default_t.md
theme_t.md
theme_xml_t.md
time_clock_t.md
time_now_t.md
timer_info_t.md
timer_manager_t.md
timer_t.md
timer_widget_t.md
tk_atomic_t.md
tk_client_t.md
tk_cond_t.md
tk_cond_var_t.md
tk_dl_t.md
tk_ext_widgets_t.md
tk_iostream_mbedtls_t.md
tk_iostream_mem_t.md
tk_iostream_noisy_t.md
tk_iostream_process_t.md
tk_iostream_serial_t.md
tk_iostream_shdlc_t.md
tk_iostream_stats_t.md
tk_iostream_t.md
tk_iostream_tcp_t.md
tk_iostream_udp_t.md
tk_istream_buffered_t.md
tk_istream_file_t.md
tk_istream_mbedtls_t.md
tk_istream_mem_t.md
tk_istream_process_t.md
tk_istream_serial_t.md
tk_istream_shdlc_t.md
tk_istream_stats_t.md
tk_istream_t.md
tk_istream_tcp_t.md
tk_istream_udp_t.md
tk_log_level_t.md
tk_mem_t.md
tk_msg_code_t.md
tk_msg_data_type_t.md
tk_msg_header_t.md
tk_mutex_nest_t.md
tk_mutex_t.md
tk_object_t.md
tk_ostream_buffered_t.md
tk_ostream_file_t.md
tk_ostream_mbedtls_t.md
tk_ostream_mem_t.md
tk_ostream_noisy_t.md
tk_ostream_process_t.md
tk_ostream_retry_t.md
tk_ostream_serial_t.md
tk_ostream_shdlc_t.md
tk_ostream_stats_t.md
tk_ostream_t.md
tk_ostream_tcp_t.md
tk_ostream_udp_t.md
tk_semaphore_t.md
tk_service_t.md
tk_sha256_t.md
tk_sm_event_t.md
tk_sm_state_t.md
tk_sm_transition_t.md
tk_socket_t.md
tk_state_machine_t.md
tk_stream_factory_t.md
tk_t.md
tk_thread_t.md
tokenizer_t.md
touch_event_t.md
typed_array_t.md
ubjson_parser_t.md
ubjson_writer_t.md
udp_t.md
ui_binary_writer_t.md
ui_builder_default_t.md
ui_builder_t.md
ui_feedback_t.md
ui_load_event_t.md
ui_loader_default_t.md
ui_loader_t.md
ui_loader_xml_t.md
ui_xml_writer_t.md
url_t.md
utf8.md
utf8_t.md
utils_t.md
value_change_event_t.md
value_desc_binary_t.md
value_desc_bool_t.md
value_desc_double_t.md
value_desc_float_t.md
value_desc_int16_t.md
value_desc_int32_t.md
value_desc_int64_t.md
value_desc_int8_t.md
value_desc_int_enums_t.md
value_desc_string_enums_t.md
value_desc_string_t.md
value_desc_t.md
value_desc_type_t.md
value_desc_uint16_t.md
value_desc_uint32_t.md
value_desc_uint64_t.md
value_desc_uint8_t.md
value_format_type_t.md
value_t.md
value_type_t.md
velocity_t.md
vg_gradient_linear_info_t.md
vg_gradient_radial_info_t.md
vg_gradient_stop_t.md
vg_gradient_t.md
vg_gradient_type_t.md
vgcanvas_line_cap_t.md
vgcanvas_line_join_t.md
vgcanvas_nanovg_gl_t.md
vgcanvas_t.md
view_t.md
vpage_event_t.md
vpage_t.md
waitable_action_darray_t.md
waitable_action_queue_t.md
waitable_ring_buffer_t.md
wbuffer_t.md
wheel_event_t.md
widget_animator_event_t.md
widget_animator_manager_t.md
widget_animator_prop2_t.md
widget_animator_prop_t.md
widget_animator_scroll_t.md
widget_animator_t.md
widget_cursor_t.md
widget_factory_t.md
widget_pool_t.md
widget_prop_t.md
widget_state_t.md
widget_t.md
widget_type_t.md
window_animator_factory_t.md
window_animator_t.md
window_animator_type_t.md
window_base_t.md
window_closable_t.md
window_event_t.md
window_manager_default_t.md
window_manager_simple_t.md
window_manager_t.md
window_stage_t.md
window_t.md
wstr_t.md
xml_builder_t.md
zip_file_t.md
release_notes
README.md
api_doc.md
app_assets.md
app_helper_usage.md
app_type.md
applet.md
assets_dir_changed.md
assets_manager.md
assets_zip.md
awtk_ecology.md
awtk_ecology_intro.md
awtk_font.md
awtk_main.md
awtk_project_description_file.md
binding_custom_widget.md
build_config.md
changes.md
children_layouter_default.md
children_layouter_list_view.md
chinese_ime.md
code_style.md
color_format.md
conf_doc.md
conventions.md
cross_platform_programming.md
custom_widget_rules.md
debug_tips.md
dialog_highlight.md
easing.md
event_listener.md
event_recorder_player.md
faq.md
framebuffer.md
fscript.md
fscript_app_conf.md
fscript_array.md
fscript_awflow.md
fscript_bits.md
fscript_crc.md
fscript_date_time.md
fscript_endian.md
fscript_fs.md
fscript_iostream.md
fscript_iostream_file.md
fscript_iostream_inet.md
fscript_iostream_serial.md
fscript_istream.md
fscript_json.md
fscript_math.md
fscript_module.md
fscript_object.md
fscript_ostream.md
fscript_ram_req.md
fscript_rbuffer.md
fscript_str.md
fscript_typed_array.md
fscript_value.md
fscript_wbuffer.md
fscript_widget.md
func_call_params_format.md
gen_dots.sh
gradient.md
grid.md
hardware_req.md
how_set_app_icon.md
how_to_access_widget_props.md
how_to_auto_scale_children.md
how_to_build_windows_32bit_version.md
how_to_build_with_keil_ac6.md
how_to_change_prop_with_animation.md
how_to_compile_res_into_app_and_use_them.md
how_to_customize_combo_boxox_button.md
how_to_draw_rotate_text.md
how_to_draw_with_opengl.md
how_to_edit_date.md
how_to_edit_ip_addr.md
how_to_edit_time.md
how_to_enable_bidi.md
how_to_enable_edit_context_menu.md
how_to_enable_key_touch_sound.md
how_to_enable_keyboard_preview.md
how_to_enable_mouse_cursor.md
how_to_handle_drop_file_event.md
how_to_hide_up_down_button_of_scrollbar.md
how_to_impl_back_and_home_key.md
how_to_impl_custom_soft_keyboard.md
how_to_impl_popup_menu.md
how_to_load_external_image_and_font.md
how_to_load_font_for_specific_language.md
how_to_modify_stb_truetype_buffer_size.md
how_to_non_gui_thread_operate_widget.md
how_to_optimize_for_512K_flash.md
how_to_release_app.md
how_to_renewal_awtk_designer.md
how_to_scale_font.md
how_to_scroll_you_text.md
how_to_set_custom_keys.md
how_to_set_custom_load_asset.md
how_to_set_form_enter_and_esc.md
how_to_set_key_long_press_time.md
how_to_set_keyboard_visible_num.md
how_to_set_style_of_combo_box_item.md
how_to_show_context_menu.md
how_to_support_5keys_3keys.md
how_to_support_mono_lcd.md
how_to_support_multi_mem_block.md
how_to_update_gpinyin_data.md
how_to_use_3rd_libs.md
how_to_use_action_text.md
how_to_use_app_conf.md
how_to_use_canvas_offline.md
how_to_use_cmake_to_build_awtk_app.md
how_to_use_dialog.md
how_to_use_fast_lcd_portrait.md
how_to_use_hardware_image_decoding.md
how_to_use_icon_at_to_set_icon_position.md
how_to_use_multi_gesture.md
how_to_use_multi_touch_event.md
how_to_use_mutable_image.md
how_to_use_offset_in_custom_widget.md
how_to_use_packed_image.md
how_to_use_stb_hyuv_to_rgb.md
how_to_use_valgrind_detect_memory_bugs.md
how_to_use_wayland_as_sdl_video_driver.md
how_to_write_layout_params_in_style.md
image_draw_type.md
index.md
input_event_flow.md
input_method.md
layout.md
lcd.md
lcd_rotation.md
locale.md
manual.md
map_key.md
mem_alloactor.md
mingw.md
optimation.md
optimation_freetype_gray_font.md
optimation_stb_truetype_mono_font.md
out_of_memory.md
pages_slide_view_default_focused_child_for_each_page.md
picasso_notes.md
porting_common.md
porting_to_awtk_aworks_rt1052.md
porting_to_stm32f103ze.md
porting_to_stm32f429igtx.md
qa.md
screen_saver.md
script_binding.md
sdl_opengl_notes.md
self_layouter_default.md
self_layouter_menu.md
serial_widget.md
shared_static.md
spin_box.md
system_bar.md
t9_notes.md
text_encoding.md
theme.md
theme_switch.md
trap_list.md
ui_desc.md
vgcanvas.md
vs_debug.md
widget_animator.md
widget_focus.md
window_animator.md
res
scripts
src
staticcheck
tests
tools
valgrind
win32_res
.clang-format
.gitignore
CONTRIBUTING.md
LICENSE
README.md
README_zh.md
SConstruct
SDL2Config.cmake
TODO.md
awtk-config.cmake
awtk_config.py
awtk_config_common.py
build.json
build_ui_old.json
component.json
format.sh
project.json
release_version.sh
run_fscript_test.sh
run_ui_test.sh
sync_tkc.sh
克隆/下载
vgcanvas_t.md 54.79 KB
一键复制 编辑 原始数据 按行查看 历史
lixianjing 提交于 5个月前 . update docs

vgcanvas_t

概述

矢量图画布抽象基类。

具体实现时可以使用agg,nanovg, cairo和skia等方式。

cairo和skia体积太大,不适合嵌入式平台,但在PC平台也是一种选择。

目前我们只提供了基于nanovg的实现,支持软件渲染和硬件渲染。

我们对nanovg进行了一些改进:

  • 可以用agg/agge实现软件渲染(暂时不支持文本绘制)。

  • 可以用bgfx使用DirectX(Windows平台)和Metal(iOS)平台硬件加速。

image

示例:

vgcanvas_t* vg = canvas_get_vgcanvas(c);
vgcanvas_save(vg);
vgcanvas_translate(vg, 0, 100);

vgcanvas_set_line_width(vg, 1);
vgcanvas_set_fill_color(vg, color_init(0xff, 0, 0, 0xff));
vgcanvas_rect(vg, 5, 5, 100, 100);
vgcanvas_fill(vg);
vgcanvas_restore(vg);

请参考:https://www.w3schools.com/tags/ref_canvas.asp


函数

函数名称 说明
vgcanvas_arc 生成一条圆弧。
vgcanvas_arc_to 生成一条圆弧路径到指定点。
vgcanvas_begin_frame 开始绘制,系统内部调用。
vgcanvas_begin_path 清除之前的路径,并重新开始一条路径。
vgcanvas_bezier_to 生成一条三次贝塞尔曲线。
vgcanvas_bind_fbo 绑定 fbo 对象。
vgcanvas_cast 转换为vgcanvas对象(供脚本语言使用)。
vgcanvas_clear_cache 释放vgcanvas对象的缓冲数据。
vgcanvas_clear_rect 用颜色清除指定矩形区域。
vgcanvas_clip_path 使用当前的path裁剪。
vgcanvas_clip_rect 矩形裁剪。
vgcanvas_close_path 闭合路径。
vgcanvas_create 创建vgcanvas。
vgcanvas_create_fbo 创建 fbo 对象。
vgcanvas_destroy 销毁vgcanvas对象。
vgcanvas_destroy_fbo 销毁 fbo 对象。
vgcanvas_draw_circle 画圆。
vgcanvas_draw_icon 绘制图标。
vgcanvas_draw_image 绘制图片。
vgcanvas_draw_image_repeat 绘制图片。
vgcanvas_ellipse 生成一个椭圆路径。
vgcanvas_end_frame 结束绘制。系统内部调用。
vgcanvas_fbo_to_bitmap 把 fbo 对象的数据拷贝到 bitmap 中。
vgcanvas_fill 填充多边形。
vgcanvas_fill_text 绘制文本。
vgcanvas_flush flush
vgcanvas_get_canvas 获取 canvas 对象。
vgcanvas_get_clip_rect 获取矩形裁剪。
vgcanvas_get_height 获取高度。
vgcanvas_get_text_metrics 获取当前字体的度量信息。
vgcanvas_get_width 获取宽度。
vgcanvas_intersect_clip_rect 设置一个与前一个裁剪区做交集的矩形裁剪区。
vgcanvas_is_point_in_path 检查点是否在当前路径中。
vgcanvas_is_rectf_in_clip_rect 矩形区域是否在矩形裁剪中。
vgcanvas_line_to 生成一条线段(从当前点到目标点)。
vgcanvas_measure_text 测量文本的宽度。
vgcanvas_move_to 移动当前点到指定点。
vgcanvas_paint 用图片填充/画多边形(可能存在可移植性问题,除非必要请勿使用)。
vgcanvas_path_winding 设置路径填充实心与否。
vgcanvas_quad_to 生成一条二次贝塞尔曲线。
vgcanvas_rect 生成一个矩形路径。
vgcanvas_reinit 重新初始化,系统内部调用。
vgcanvas_reset 重置所有状态。
vgcanvas_reset_curr_state 重置当前状态。
vgcanvas_restore 恢复上次save的状态。
vgcanvas_rotate 旋转。
vgcanvas_rounded_rect 生成一个圆角矩形路径。
vgcanvas_save 保存当前的状态。如颜色和矩阵等信息。
vgcanvas_scale 缩放。
vgcanvas_set_antialias 设置是否启用反走样。
vgcanvas_set_fill_color 设置填充颜色。
vgcanvas_set_fill_color_str 设置填充颜色。
vgcanvas_set_fill_gradient 设置填充颜色为渐变色。
vgcanvas_set_fill_linear_gradient 设置填充颜色为线性渐变色。
vgcanvas_set_fill_radial_gradient 设置填充颜色为径向渐变色。
vgcanvas_set_font 设置字体的名称。
vgcanvas_set_font_size 设置字体的大小。
vgcanvas_set_global_alpha 设置全局透明度。
vgcanvas_set_line_cap 设置line cap。
vgcanvas_set_line_join 设置line join。
vgcanvas_set_line_width 设置线条的宽度。
vgcanvas_set_miter_limit 设置miter limit。
vgcanvas_set_stroke_color 设置线条颜色。
vgcanvas_set_stroke_color_str 设置线条颜色。
vgcanvas_set_stroke_gradient 设置线条颜色为渐变色。
vgcanvas_set_stroke_linear_gradient 设置线条颜色为线性渐变色。
vgcanvas_set_stroke_radial_gradient 设置线条颜色为径向渐变色。
vgcanvas_set_text_align 设置文本水平对齐的方式。
vgcanvas_set_text_baseline 设置文本垂直对齐的方式。
vgcanvas_set_transform 设置变换矩阵。
vgcanvas_stroke 画线。
vgcanvas_transform 变换矩阵。
vgcanvas_translate 平移。
vgcanvas_unbind_fbo 解开绑定 fbo 对象。

属性

属性名称 类型 说明
anti_alias bool_t 是否启用反走样功能。
fill_color color_t 填充颜色
font char* 字体。
font_size float_t 字体大小。
global_alpha float_t 全局alpha。
h uint32_t canvas的高度
line_cap const char* line_cap。
line_join const char* line_join。
line_width float_t 线宽。
miter_limit float_t miter_limit。
ratio float_t 显示比例。
stride uint32_t 一行占的字节
stroke_color color_t 线条颜色
text_align char* 文本对齐方式。
text_baseline char* 文本基线。
w uint32_t canvas的宽度

vgcanvas_arc 函数


  • 函数功能:

生成一条圆弧。

  • 函数原型:
ret_t vgcanvas_arc (vgcanvas_t* vg, float_t x, float_t y, float_t r, float_t start_angle, float_t end_angle, bool_t ccw);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t 原点x坐标。
y float_t 原点y坐标。
r float_t 半径。
start_angle float_t 起始角度(单位:弧度)。
end_angle float_t 结束角度(单位:弧度)。
ccw bool_t 是否逆时针。

vgcanvas_arc_to 函数


  • 函数功能:

生成一条圆弧路径到指定点。

  • 函数原型:
ret_t vgcanvas_arc_to (vgcanvas_t* vg, float_t x1, float_t y1, float_t x2, float_t y2, float_t r);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x1 float_t 起始点x坐标。
y1 float_t 起始点y坐标。
x2 float_t 结束点x坐标。
y2 float_t 结束点y坐标。
r float_t 半径。

vgcanvas_begin_frame 函数


  • 函数功能:

开始绘制,系统内部调用。

  • 函数原型:
ret_t vgcanvas_begin_frame (vgcanvas_t* vg, const dirty_rects_t* dirty_rects);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
dirty_rects const dirty_rects_t* 需要绘制的区域。

vgcanvas_begin_path 函数


  • 函数功能:

清除之前的路径,并重新开始一条路径。

  • 函数原型:
ret_t vgcanvas_begin_path (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_bezier_to 函数


  • 函数功能:

生成一条三次贝塞尔曲线。

  • 函数原型:
ret_t vgcanvas_bezier_to (vgcanvas_t* vg, float_t cp1x, float_t cp1y, float_t cp2x, float_t cp2y, float_t x, float_t y);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
cp1x float_t 控制点1x坐标。
cp1y float_t 控制点1y坐标。
cp2x float_t 控制点2x坐标。
cp2y float_t 控制点2y坐标。
x float_t x坐标。
y float_t y坐标。

vgcanvas_bind_fbo 函数


  • 函数功能:

绑定 fbo 对象。

  • 函数原型:
ret_t vgcanvas_bind_fbo (vgcanvas_t* vg, framebuffer_object_t* fbo);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
fbo framebuffer_object_t* 需要创建 fbo 的对象。

vgcanvas_cast 函数


  • 函数功能:

转换为vgcanvas对象(供脚本语言使用)。

  • 函数原型:
vgcanvas_t* vgcanvas_cast (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 vgcanvas_t* vgcanvas对象。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_clear_cache 函数


  • 函数功能:

释放vgcanvas对象的缓冲数据。

  • 函数原型:
ret_t vgcanvas_clear_cache (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_clear_rect 函数


  • 函数功能:

用颜色清除指定矩形区域。

  • 函数原型:
ret_t vgcanvas_clear_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float_t h, color_t color);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t x坐标。
y float_t y坐标。
w float_t 宽度。
h float_t 高度。
color color_t 颜色。

vgcanvas_clip_path 函数


  • 函数功能:

使用当前的path裁剪。 目前只有部分backend支持(如cairo)。

  • 函数原型:
ret_t vgcanvas_clip_path (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_clip_rect 函数


  • 函数功能:

矩形裁剪。

  • 函数原型:
ret_t vgcanvas_clip_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float_t h);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t x坐标。
y float_t y坐标。
w float_t 宽度。
h float_t 高度。

vgcanvas_close_path 函数


  • 函数功能:

闭合路径。

闭合路径是指把起点和终点连接起来,形成一个封闭的多边形。

  • 函数原型:
ret_t vgcanvas_close_path (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_create 函数


  • 函数功能:

创建vgcanvas。

  • 函数原型:
vgcanvas_t* vgcanvas_create (uint32_t w, uint32_t h, uint32_t stride, bitmap_format_t format, void* data);
  • 参数说明:
参数 类型 说明
返回值 vgcanvas_t* 返回vgcanvas对象。
w uint32_t 宽度
h uint32_t 高度
stride uint32_t 一行占用的字节数。
format bitmap_format_t 如果data是framebuffer,format指定data的格式。
data void* framebuffer或其它ctx。

vgcanvas_create_fbo 函数


  • 函数功能:

创建 fbo 对象。

  • 函数原型:
ret_t vgcanvas_create_fbo (vgcanvas_t* vg, uint32_t w, uint32_t h, bool_t custom_draw_model, framebuffer_object_t* fbo);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
w uint32_t fbo 对象的宽。
h uint32_t fbo 对象的高。
custom_draw_model bool_t 是否脱离 awtk 默认的 OpenGL 绘图方法。
fbo framebuffer_object_t* 需要创建 fbo 的对象。

vgcanvas_destroy 函数


  • 函数功能:

销毁vgcanvas对象。

  • 函数原型:
ret_t vgcanvas_destroy (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_destroy_fbo 函数


  • 函数功能:

销毁 fbo 对象。

  • 函数原型:
ret_t vgcanvas_destroy_fbo (vgcanvas_t* vg, framebuffer_object_t* fbo);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
fbo framebuffer_object_t* 需要创建 fbo 的对象。

vgcanvas_draw_circle 函数


  • 函数功能:

画圆。

  • 函数原型:
ret_t vgcanvas_draw_circle (vgcanvas_t* vg, double x, double y, double r, color_t color, bool_t fill, bool_t stroke);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x double x坐标。
y double y坐标。
r double 半径。
color color_t 颜色。
fill bool_t 是否填充。
stroke bool_t 是否画线。

vgcanvas_draw_icon 函数


  • 函数功能:

绘制图标。

绘制图标时会根据屏幕密度进行自动缩放,而绘制普通图片时不会。

  • 函数原型:
ret_t vgcanvas_draw_icon (vgcanvas_t* vg, bitmap_t* img, float_t sx, float_t sy, float_t sw, float_t sh, float_t dx, float_t dy, float_t dw, float_t dh);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
img bitmap_t* 图片。
sx float_t sx
sy float_t sy
sw float_t sw
sh float_t sh
dx float_t dx
dy float_t dy
dw float_t dw
dh float_t dh

vgcanvas_draw_image 函数


  • 函数功能:

绘制图片。

  • 函数原型:
ret_t vgcanvas_draw_image (vgcanvas_t* vg, bitmap_t* img, float_t sx, float_t sy, float_t sw, float_t sh, float_t dx, float_t dy, float_t dw, float_t dh);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
img bitmap_t* 图片。
sx float_t sx
sy float_t sy
sw float_t sw
sh float_t sh
dx float_t dx
dy float_t dy
dw float_t dw
dh float_t dh

vgcanvas_draw_image_repeat 函数


  • 函数功能:

绘制图片。

备注: 当绘制区域大于原图区域时,多余的绘制区域会重复绘制原图区域的东西。(绘制图区按照绘制图片的宽高来绘制的) 当绘制图片的宽高和原图的不同,在重复绘制的同时加入缩放。

  • 函数原型:
ret_t vgcanvas_draw_image_repeat (vgcanvas_t* vg, bitmap_t* img, float_t sx, float_t sy, float_t sw, float_t sh, float_t dx, float_t dy, float_t dw, float_t dh, float_t dst_w, float_t dst_h);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
img bitmap_t* 图片。
sx float_t 原图区域的 x
sy float_t 原图区域的 y
sw float_t 原图区域的 w
sh float_t 原图区域的 h
dx float_t 绘制区域的 x
dy float_t 绘制区域的 y
dw float_t 绘制区域的 w
dh float_t 绘制区域的 h
dst_w float_t 绘制图片的宽
dst_h float_t 绘制图片的高

vgcanvas_ellipse 函数


  • 函数功能:

生成一个椭圆路径。

  • 函数原型:
ret_t vgcanvas_ellipse (vgcanvas_t* vg, float_t x, float_t y, float_t rx, float_t ry);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t x坐标。
y float_t y坐标。
rx float_t 圆角半径。
ry float_t 圆角半径。

vgcanvas_end_frame 函数


  • 函数功能:

结束绘制。系统内部调用。

  • 函数原型:
ret_t vgcanvas_end_frame (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_fbo_to_bitmap 函数


  • 函数功能:

把 fbo 对象的数据拷贝到 bitmap 中。

  • 函数原型:
ret_t vgcanvas_fbo_to_bitmap (vgcanvas_t* vg, framebuffer_object_t* fbo, bitmap_t* img, const rect_t* r);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
fbo framebuffer_object_t* 需要创建 fbo 的对象。
img bitmap_t* 输出的 bitmap 的对象。
r const rect_t* 需要拷贝的区域。

vgcanvas_fill 函数


  • 函数功能:

填充多边形。

  • 函数原型:
ret_t vgcanvas_fill (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_fill_text 函数


  • 函数功能:

绘制文本。

  • 函数原型:
ret_t vgcanvas_fill_text (vgcanvas_t* vg, const char* text, float_t x, float_t y, float_t max_width);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
text const char* text
x float_t x坐标。
y float_t y坐标。
max_width float_t 最大宽度。

vgcanvas_flush 函数


  • 函数功能:

flush

  • 函数原型:
ret_t vgcanvas_flush (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_get_canvas 函数


  • 函数功能:

获取 canvas 对象。

  • 函数原型:
canvas_t* vgcanvas_get_canvas (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 canvas_t* 成功返回 canvas 对象,失败返回 NULL。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_get_clip_rect 函数


  • 函数功能:

获取矩形裁剪。

  • 函数原型:
const rectf_t* vgcanvas_get_clip_rect (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 const rectf_t* 返回裁剪区。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_get_height 函数


  • 函数功能:

获取高度。

  • 函数原型:
wh_t vgcanvas_get_height (vgcanvas_t* vgcanvas);
  • 参数说明:
参数 类型 说明
返回值 wh_t 返回高度。
vgcanvas vgcanvas_t* vgcanvas对象。

vgcanvas_get_text_metrics 函数


  • 函数功能:

获取当前字体的度量信息。

  • 函数原型:
ret_t vgcanvas_get_text_metrics (vgcanvas_t* vg, float_t* ascent, float_t* descent, float_t* line_hight);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
ascent float_t* 用于返回ascent。
descent float_t* 用于返回descent。
line_hight float_t* 用于返回line height。

vgcanvas_get_width 函数


  • 函数功能:

获取宽度。

  • 函数原型:
wh_t vgcanvas_get_width (vgcanvas_t* vgcanvas);
  • 参数说明:
参数 类型 说明
返回值 wh_t 返回宽度。
vgcanvas vgcanvas_t* vgcanvas对象。

vgcanvas_intersect_clip_rect 函数


  • 函数功能:

设置一个与前一个裁剪区做交集的矩形裁剪区。

如果下面这种情况,则不能直接调用 rect_intersect 函数来做矩形交集和 vgcanvas_clip_rect 函数设置裁剪区,而采用本函数做交集。 由于缩放和旋转以及平移会导致 vg 的坐标系和上一个裁剪区的坐标系不同, 导致直接使用做交集的话,裁剪区会出错。

vgcanvas_clip_rect(vg, old_r.x, old_r.y, old_r.w, old_r.h);
vgcanvas_save(vg);
vgcanvas_scale(vg, scale_x, scale_y);
vgcanvas_rotate(vg, TK_D2R(15));
vgcanvas_intersect_clip_rect(vg, r.x, r.y, r.w, r.h);
..................
vgcanvas_restore(vg);
  • 函数原型:
ret_t vgcanvas_intersect_clip_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float_t h);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t x坐标。
y float_t y坐标。
w float_t 宽度。
h float_t 高度。

vgcanvas_is_point_in_path 函数


  • 函数功能:

检查点是否在当前路径中。

  • 函数原型:
bool_t vgcanvas_is_point_in_path (vgcanvas_t* vg, float_t x, float_t y);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示在,否则表示不在。
vg vgcanvas_t* vgcanvas对象。
x float_t x坐标。
y float_t y坐标。

vgcanvas_is_rectf_in_clip_rect 函数


  • 函数功能:

矩形区域是否在矩形裁剪中。

  • 函数原型:
bool_t vgcanvas_is_rectf_in_clip_rect (vgcanvas_t* vg, float_t left, float_t top, float_t right, float_t bottom);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回 TURE 则在区域中,返回 FALSE 则不在区域中。
vg vgcanvas_t* vgcanvas对象。
left float_t 矩形区域左边。
top float_t 矩形区域上边。
right float_t 矩形区域右边。
bottom float_t 矩形区域下边。

vgcanvas_line_to 函数


  • 函数功能:

生成一条线段(从当前点到目标点)。

  • 函数原型:
ret_t vgcanvas_line_to (vgcanvas_t* vg, float_t x, float_t y);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t x坐标。
y float_t y坐标。

vgcanvas_measure_text 函数


  • 函数功能:

测量文本的宽度。

  • 函数原型:
float_t vgcanvas_measure_text (vgcanvas_t* vg, const char* text);
  • 参数说明:
参数 类型 说明
返回值 float_t 返回text的宽度。
vg vgcanvas_t* vgcanvas对象。
text const char* text

vgcanvas_move_to 函数


  • 函数功能:

移动当前点到指定点。

  • 函数原型:
ret_t vgcanvas_move_to (vgcanvas_t* vg, float_t x, float_t y);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t x坐标。
y float_t y坐标。

vgcanvas_paint 函数


  • 函数功能:

用图片填充/画多边形(可能存在可移植性问题,除非必要请勿使用)。

多边形的顶点必须在图片范围内,可以通过矩阵变化画到不同的位置。

  • 函数原型:
ret_t vgcanvas_paint (vgcanvas_t* vg, bool_t stroke, bitmap_t* img);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
stroke bool_t TRUE表示画线FALSE表示填充。
img bitmap_t* 图片。

vgcanvas_path_winding 函数


  • 函数功能:

设置路径填充实心与否。

CCW(1)为实心,CW(2)为镂空,设置其他则默认根据非零环绕规则判断(nonzero)。

  • 函数原型:
ret_t vgcanvas_path_winding (vgcanvas_t* vg, bool_t dir);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
dir bool_t 填充方法。

vgcanvas_quad_to 函数


  • 函数功能:

生成一条二次贝塞尔曲线。

  • 函数原型:
ret_t vgcanvas_quad_to (vgcanvas_t* vg, float_t cpx, float_t cpy, float_t x, float_t y);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
cpx float_t 控制点x坐标。
cpy float_t 控制点y坐标。
x float_t x坐标。
y float_t y坐标。

vgcanvas_rect 函数


  • 函数功能:

生成一个矩形路径。

  • 函数原型:
ret_t vgcanvas_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float_t h);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t x坐标。
y float_t y坐标。
w float_t 宽度。
h float_t 高度。

vgcanvas_reinit 函数


  • 函数功能:

重新初始化,系统内部调用。

  • 函数原型:
ret_t vgcanvas_reinit (vgcanvas_t* vg, uint32_t w, uint32_t h, uint32_t stride, bitmap_format_t format, void* data);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
w uint32_t 宽度
h uint32_t 高度
stride uint32_t 一行占用的字节数。
format bitmap_format_t 如果data是framebuffer,format指定data的格式。
data void* framebuffer或其它ctx。

vgcanvas_reset 函数


  • 函数功能:

重置所有状态。

  • 函数原型:
ret_t vgcanvas_reset (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_reset_curr_state 函数


  • 函数功能:

重置当前状态。

  • 函数原型:
ret_t vgcanvas_reset_curr_state (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_restore 函数


  • 函数功能:

恢复上次save的状态。

save/restore必须配套使用,否则可能导致状态混乱。

  • 函数原型:
ret_t vgcanvas_restore (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_rotate 函数


  • 函数功能:

旋转。

  • 函数原型:
ret_t vgcanvas_rotate (vgcanvas_t* vg, float_t rad);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
rad float_t 旋转角度(单位:弧度)

vgcanvas_rounded_rect 函数


  • 函数功能:

生成一个圆角矩形路径。

  • 函数原型:
ret_t vgcanvas_rounded_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float_t h, float_t r);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t x坐标。
y float_t y坐标。
w float_t 宽度。
h float_t 高度。
r float_t 圆角半径。

vgcanvas_save 函数


  • 函数功能:

保存当前的状态。如颜色和矩阵等信息。

save/restore必须配套使用,否则可能导致状态混乱。

  • 函数原型:
ret_t vgcanvas_save (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_scale 函数


  • 函数功能:

缩放。

  • 函数原型:
ret_t vgcanvas_scale (vgcanvas_t* vg, float_t x, float_t y);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t x方向缩放比例。
y float_t y方向缩放比例。

vgcanvas_set_antialias 函数


  • 函数功能:

设置是否启用反走样。

  • 函数原型:
ret_t vgcanvas_set_antialias (vgcanvas_t* vg, bool_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
value bool_t 是否启用反走样。

vgcanvas_set_fill_color 函数


  • 函数功能:

设置填充颜色。

  • 函数原型:
ret_t vgcanvas_set_fill_color (vgcanvas_t* vg, color_t color);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
color color_t 颜色。

vgcanvas_set_fill_color_str 函数


  • 函数功能:

设置填充颜色。

  • 函数原型:
ret_t vgcanvas_set_fill_color_str (vgcanvas_t* vg, const char* color);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
color const char* 颜色。

vgcanvas_set_fill_gradient 函数


  • 函数功能:

设置填充颜色为渐变色。

目前只有部分backend支持(如cairo)。

  • 函数原型:
ret_t vgcanvas_set_fill_gradient (vgcanvas_t* vg, const vg_gradient_t* gradient);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
gradient const vg_gradient_t* gradient对象。

vgcanvas_set_fill_linear_gradient 函数


  • 函数功能:

设置填充颜色为线性渐变色。

  • 函数原型:
ret_t vgcanvas_set_fill_linear_gradient (vgcanvas_t* vg, float_t sx, float_t sy, float_t ex, float_t ey, color_t icolor, color_t ocolor);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
sx float_t start x
sy float_t start y
ex float_t end x
ey float_t end y
icolor color_t 开始颜色。
ocolor color_t 结束颜色。

vgcanvas_set_fill_radial_gradient 函数


  • 函数功能:

设置填充颜色为径向渐变色。

  • 函数原型:
ret_t vgcanvas_set_fill_radial_gradient (vgcanvas_t* vg, float_t cx, float_t cy, float_t inr, float_t outr, color_t icolor, color_t ocolor);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
cx float_t center x
cy float_t center y
inr float_t 内环半径
outr float_t 外环半径。
icolor color_t 开始颜色。
ocolor color_t 结束颜色。

vgcanvas_set_font 函数


  • 函数功能:

设置字体的名称。

  • 函数原型:
ret_t vgcanvas_set_font (vgcanvas_t* vg, const char* font);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
font const char* 字体名称。

vgcanvas_set_font_size 函数


  • 函数功能:

设置字体的大小。

  • 函数原型:
ret_t vgcanvas_set_font_size (vgcanvas_t* vg, float_t size);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
size float_t 字体大小。

vgcanvas_set_global_alpha 函数


  • 函数功能:

设置全局透明度。

  • 函数原型:
ret_t vgcanvas_set_global_alpha (vgcanvas_t* vg, float_t alpha);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
alpha float_t global alpha。

vgcanvas_set_line_cap 函数


  • 函数功能:

设置line cap。

  • 函数原型:
ret_t vgcanvas_set_line_cap (vgcanvas_t* vg, const char* value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
value const char* 取值:butt

vgcanvas_set_line_join 函数


  • 函数功能:

设置line join。

  • 函数原型:
ret_t vgcanvas_set_line_join (vgcanvas_t* vg, const char* value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
value const char* 取值:bevel

vgcanvas_set_line_width 函数


  • 函数功能:

设置线条的宽度。

  • 函数原型:
ret_t vgcanvas_set_line_width (vgcanvas_t* vg, float_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
value float_t 线宽。

vgcanvas_set_miter_limit 函数


  • 函数功能:

设置miter limit。

  • 函数原型:
ret_t vgcanvas_set_miter_limit (vgcanvas_t* vg, float_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
value float_t miter limit

vgcanvas_set_stroke_color 函数


  • 函数功能:

设置线条颜色。

  • 函数原型:
ret_t vgcanvas_set_stroke_color (vgcanvas_t* vg, color_t color);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
color color_t 颜色。

vgcanvas_set_stroke_color_str 函数


  • 函数功能:

设置线条颜色。

  • 函数原型:
ret_t vgcanvas_set_stroke_color_str (vgcanvas_t* vg, const char* str);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
str const char* 颜色。

vgcanvas_set_stroke_gradient 函数


  • 函数功能:

设置线条颜色为渐变色。

目前只有部分backend支持(如cairo)。

  • 函数原型:
ret_t vgcanvas_set_stroke_gradient (vgcanvas_t* vg, const vg_gradient_t* gradient);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
gradient const vg_gradient_t* gradient对象。

vgcanvas_set_stroke_linear_gradient 函数


  • 函数功能:

设置线条颜色为线性渐变色。

  • 函数原型:
ret_t vgcanvas_set_stroke_linear_gradient (vgcanvas_t* vg, float_t sx, float_t sy, float_t ex, float_t ey, color_t icolor, color_t ocolor);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
sx float_t start x
sy float_t start y
ex float_t end x
ey float_t end y
icolor color_t 开始颜色。
ocolor color_t 结束颜色。

vgcanvas_set_stroke_radial_gradient 函数


  • 函数功能:

设置线条颜色为径向渐变色。

  • 函数原型:
ret_t vgcanvas_set_stroke_radial_gradient (vgcanvas_t* vg, float_t cx, float_t cy, float_t inr, float_t outr, color_t icolor, color_t ocolor);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
cx float_t center x
cy float_t center y
inr float_t 内环半径
outr float_t 外环半径。
icolor color_t 开始颜色。
ocolor color_t 结束颜色。

vgcanvas_set_text_align 函数


  • 函数功能:

设置文本水平对齐的方式。

  • 函数原型:
ret_t vgcanvas_set_text_align (vgcanvas_t* vg, const char* value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
value const char* 取值:left

vgcanvas_set_text_baseline 函数


  • 函数功能:

设置文本垂直对齐的方式。

  • 函数原型:
ret_t vgcanvas_set_text_baseline (vgcanvas_t* vg, const char* value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
value const char* 取值:top

vgcanvas_set_transform 函数


  • 函数功能:

设置变换矩阵。

  • 函数原型:
ret_t vgcanvas_set_transform (vgcanvas_t* vg, float_t a, float_t b, float_t c, float_t d, float_t e, float_t f);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
a float_t a
b float_t b
c float_t c
d float_t d
e float_t e
f float_t f

vgcanvas_stroke 函数


  • 函数功能:

画线。

  • 函数原型:
ret_t vgcanvas_stroke (vgcanvas_t* vg);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。

vgcanvas_transform 函数


  • 函数功能:

变换矩阵。

  • 函数原型:
ret_t vgcanvas_transform (vgcanvas_t* vg, float_t a, float_t b, float_t c, float_t d, float_t e, float_t f);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
a float_t a
b float_t b
c float_t c
d float_t d
e float_t e
f float_t f

vgcanvas_translate 函数


  • 函数功能:

平移。

  • 函数原型:
ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
x float_t x方向偏移。
y float_t y方向偏移。

vgcanvas_unbind_fbo 函数


  • 函数功能:

解开绑定 fbo 对象。

  • 函数原型:
ret_t vgcanvas_unbind_fbo (vgcanvas_t* vg, framebuffer_object_t* fbo);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
vg vgcanvas_t* vgcanvas对象。
fbo framebuffer_object_t* 需要创建 fbo 的对象。

anti_alias 属性


是否启用反走样功能。

  • 类型:bool_t
特性 是否支持
可直接读取
可直接修改
可脚本化

fill_color 属性


填充颜色

  • 类型:color_t
特性 是否支持
可直接读取
可直接修改

font 属性


字体。

  • 类型:char*
特性 是否支持
可直接读取
可直接修改
可脚本化

font_size 属性


字体大小。

  • 类型:float_t
特性 是否支持
可直接读取
可直接修改
可脚本化

global_alpha 属性


全局alpha。

  • 类型:float_t
特性 是否支持
可直接读取
可直接修改
可脚本化

h 属性


canvas的高度

  • 类型:uint32_t
特性 是否支持
可直接读取
可直接修改
可脚本化

line_cap 属性


line\_cap。

@see http://www.w3school.com.cn/tags/canvas_linecap.asp

  • 类型:const char*
特性 是否支持
可直接读取
可直接修改
可脚本化

line_join 属性


line\_join。

@see http://www.w3school.com.cn/tags/canvas_linejoin.asp

  • 类型:const char*
特性 是否支持
可直接读取
可直接修改
可脚本化

line_width 属性


线宽。

  • 类型:float_t
特性 是否支持
可直接读取
可直接修改
可脚本化

miter_limit 属性


miter\_limit。

@see http://www.w3school.com.cn/tags/canvas_miterlimit.asp

  • 类型:float_t
特性 是否支持
可直接读取
可直接修改
可脚本化

ratio 属性


显示比例。

  • 类型:float_t
特性 是否支持
可直接读取
可直接修改
可脚本化

stride 属性


一行占的字节

  • 类型:uint32_t
特性 是否支持
可直接读取
可直接修改
可脚本化

stroke_color 属性


线条颜色

  • 类型:color_t
特性 是否支持
可直接读取
可直接修改

text_align 属性


文本对齐方式。

@see http://www.w3school.com.cn/tags/canvas_textalign.asp

  • 类型:char*
特性 是否支持
可直接读取
可直接修改
可脚本化

text_baseline 属性


文本基线。

@see http://www.w3school.com.cn/tags/canvas_textbaseline.asp

  • 类型:char*
特性 是否支持
可直接读取
可直接修改
可脚本化

w 属性


canvas的宽度

  • 类型:uint32_t
特性 是否支持
可直接读取
可直接修改
可脚本化
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/zlgopen/awtk.git
git@gitee.com:zlgopen/awtk.git
zlgopen
awtk
awtk
master

搜索帮助