网络培训网站开发文献综述下载应用商店app下载安装

张小明 2026/1/9 16:05:49
网络培训网站开发文献综述,下载应用商店app下载安装,微信公众平台微网站怎么做,网页制作工具说明 HarmonyOs ArkGraphics 2D#xff08;方舟2D图形服务 #xff09;提供的绘制引擎#xff0c;如果在 ArkUI 侧绘制#xff0c;对绘制性能有高要求的话#xff0c;那就直接放弃#xff0c;转Native绘制配合 GPU 后端渲染。#xff08;想到这儿我浑身难受#xff09…说明HarmonyOs ArkGraphics 2D方舟2D图形服务 提供的绘制引擎如果在 ArkUI 侧绘制对绘制性能有高要求的话那就直接放弃转Native绘制配合 GPU 后端渲染。想到这儿我浑身难受图形绘制流程理解图形绘制的基本流程再调用 api 就好理解一些。画布的创建画布作为图形绘制的承载是最基本最关键的。必须进行画布操作例如旋转、裁剪、缩放操作可选)设置绘制效果比如填充什么颜色画笔的颜色画笔的轮廓等可选绘制图元图形绘制最后一步即为图元的绘制不论多么复杂的图形都是基础图元的不同组合。必须画布的获取添加链接库 libnative_drawing.sotarget_link_libraries(entry PUBLIC libnative_drawing.so)导入依赖的相关头文件#include native_drawing/drawing_canvas.h#include native_drawing/drawing_surface.h从XComponent对应的NativeWindow中获取BufferHandle对象。NativeWindow相关的API请参考native_window。uint64_twidth,height;OHNativeWindow*nativeWindow;// NativeWindow及其宽高需要从XComponent获取// 设置本地窗口缓冲区读写方式int32_tusageNATIVEBUFFER_USAGE_CPU_READ|NATIVEBUFFER_USAGE_CPU_WRITE|NATIVEBUFFER_USAGE_MEM_DMA;intretOH_NativeWindow_NativeWindowHandleOpt(nativeWindow,SET_USAGE,usage);if(ret!0){return;}// 通过OHNativeWindow对象申请一块OHNativeWindowBuffer用以内容生产structNativeWindowBuffer*buffernullptr;intfenceFd0;retOH_NativeWindow_NativeWindowRequestBuffer(nativeWindow,buffer,fenceFd);if(ret!0){return;}// 通过OHNativeWindowBuffer获取该buffer的BufferHandle指针。BufferHandle*bufferHandleOH_NativeWindow_GetBufferHandleFromNative(buffer);4.从BufferHandle中获取对应的内存地址。uint32_t* mappedAddrstatic_castuint32_t *(mmap(bufferHandle-virAddr, bufferHandle-size, PROT_READ|PROT_WRITE, MAP_SHARED, bufferHandle-fd,0));5.创建窗口画布// 创建 OH_Drawing_Bitmap 将其作为画布铺在 OH_Drawing_Canvas 上。这样就可以开始作画了。 cScreenBitmap_OH_Drawing_BitmapCreate();// 定义bitmap的像素格式 OH_Drawing_BitmapFormat cFormat{COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_OPAQUE};// 构造对应格式的bitmap uint32_t widthstatic_castuint32_t(bufferHandle_-stride /4);// 初始化位图对象的宽度和高度并且为该位图设置像素格式。 OH_Drawing_BitmapBuild(cScreenBitmap_, width, height_,cFormat);// 创建一块画板画布是 cScreenBitmap_。 OH_Drawing_Canvas* screenCanvasOH_Drawing_CanvasCreate();// 将画布铺在画板上 OH_Drawing_CanvasBind(screenCanvas, cScreenBitmap_);绘制内容作画)// 创建画笔 OH_Drawing_Pen *penOH_Drawing_PenCreate()// 设置抗锯齿 OH_Drawing_PenSetAntiAlias(pen,true);// 设置画布颜色为红色 OH_Drawing_PenSetColor(pen, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0x00, 0x00));// 设置线帽样式为圆头 OH_Drawing_PenSetCap(pen, LINE_ROUND_CAP);// 设置线段转角样式为圆头 OH_Drawing_PenSetJoin(pen, LINE_ROUND_JOIN)// 绑定画布screenCanvas OH_Drawing_CanvasAttachPen(screenCanvas, pen)// 绘制一个矩形 OH_Drawing_Rect* rectOH_Drawing_RectCreate(50,50,200,300);OH_Drawing_CanvasDrawRect(screenCanvas, rect);// 解绑画笔 OH_Drawing_CanvasDetachPen(screenCanvas);// 销毁画布 OH_Drawing_CanvasDestroy(screenCanvas);利用XComponent完成显示。// 画完后获取像素地址地址指向的内存包含画布画的像素数据 void *bitmapAddrOH_Drawing_BitmapGetPixels(cScreenBitmap_);uint32_t *valuestatic_castuint32_t *(bitmapAddr);// 使用mmap获取到的地址来访问内存 uint32_t *pixelstatic_castuint32_t *(mappedAddr);if(pixelnullptr){SAMPLE_LOGE(pixel is null);return;}if(valuenullptr){SAMPLE_LOGE(value is null);return;}// 将 cScreenBitmap_ 绘制的像素复制给 mappedAddrfor(uint32_t x0;xwidth_;x){for(uint32_t y0;yheight_;y){*pixel*value;}}// 设置刷新区域如果Region中的Rect为nullptr,或者rectNumber为0则认为OHNativeWindowBuffer全部有内容更改。 Region region{nullptr,0};// 通过OH_NativeWindow_NativeWindowFlushBuffer 提交给消费者使用例如显示在屏幕上。 OH_NativeWindow_NativeWindowFlushBuffer(nativeWindow_, buffer_, fenceFd_, region);// 内存使用完记得去掉内存映射 int resultmunmap(mappedAddr_, bufferHandle_-size);if(result-1){SAMPLE_LOGE(munmap failed!);}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站设计方案报价页面设计考试题

音乐解锁神器:一键解密各大平台加密音频 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://gitcode.co…

张小明 2025/12/28 22:37:23 网站建设

网站设计需要那些模块网络营销方式和方法

信号处理中的核特征提取与降维 在当今的信号处理领域,基于核的特征提取和降维技术正变得越来越重要,尤其是在处理高维数据的应用场景中。本文将深入探讨这一领域的相关方法,包括多元分析、基于核依赖估计的特征提取、大规模和半监督问题的扩展,以及域适应等方面。 1. 多元…

张小明 2025/12/28 21:11:35 网站建设

苏州哪里做网站好网站服务器人多怎么挤进去

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 使用Shell脚本快速实现一个Git预检查钩子。在每次执行git checkout前触发,检查工作目录和暂存区状态。如果有未提交的修改,暂停操作并显示彩色提示信息&…

张小明 2025/12/28 23:54:09 网站建设

济南网站建设销售招聘wordpress怎么安装

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个最简Docker镜像打包教程,包含:1) Docker安装步骤(Windows/Mac/Linux) 2) 编写第一个Hello World的Dockerfile(基于nginx) 3) 构建镜像的基本命令 4)…

张小明 2025/12/28 14:52:06 网站建设

建网站的平台网站建设重要意义

用 screen 搭配 systemd ,打造稳定可靠的后台服务 你有没有遇到过这种情况:好不容易写好一个 Python 脚本跑数据采集,SSH 连上去一启动,刚断开连接,进程就挂了?或者半夜报警说服务停了,结果…

张小明 2025/12/29 6:53:34 网站建设

上海网站设计培训班小型培训机构管理系统

如何在macOS应用中快速实现AppKit增强功能?Rebel框架终极指南 【免费下载链接】Rebel Cocoa framework for improving AppKit 项目地址: https://gitcode.com/gh_mirrors/reb/Rebel 想要为你的macOS应用添加专业的UI动画效果、增强表格视图交互体验&#xff…

张小明 2026/1/4 14:13:21 网站建设