当前位置: 首页 > news >正文

网站域名等级百度怎么创建网站

网站域名等级,百度怎么创建网站,网站开发一般用什么数据库,云服务器是虚拟技术吗场景介绍 NativeWindow 是 HarmonyOS 本地平台化窗口#xff0c;表示图形队列的生产者端。开发者可以通过 NativeWindow 接口进行申请和提交 Buffer#xff0c;配置 Buffer 属性信息。 针对 NativeWindow#xff0c;常见的开发场景如下#xff1a; ● 通过 NativeWindow…场景介绍 NativeWindow 是 HarmonyOS 本地平台化窗口表示图形队列的生产者端。开发者可以通过 NativeWindow 接口进行申请和提交 Buffer配置 Buffer 属性信息。 针对 NativeWindow常见的开发场景如下 ● 通过 NativeWindow 提供的 Native API 接口申请图形 Buffer并将生产图形内容写入图形 Buffer最终提交 Buffer 到图形队列 ● 在适配 EGL 层的 eglswapbuffer 接口时进行申请和提交 Buffer 接口说明 详细的接口说明请参考native_window。 开发步骤 以下步骤描述了在 HarmonyOS 中如何使用 NativeWindow 提供的 Native API 接口申请图形 Buffer并将生产图形内容写入图形 Buffer 后最终提交 Buffer 到图形队列。 添加动态链接库 CMakeLists.txt 中添加以下 lib。 libace_ndk.z.solibnative_window.so 头文件 #include ace/xcomponent/native_interface_xcomponent.h#include native_window/external_window.h 1.  获取 OHNativeWindow 实例。 可在OH_NativeXComponent_Callback提供的接口中获取 OHNativeWindow下面提供一份代码示例。XComponent 模块的具体使用方法请参考XComponent开发指导。 a.  在 xxx.ets 中添加一个 XComponent 组件。 XComponent({ id: xcomponentId, type: surface, libraryname: entry}) .width(360) .height(360) b.  在 native c 层获取 NativeXComponent。 napi_value exportInstance  nullptr;// 用来解析出被wrap了NativeXComponent指针的属性napi_get_named_property(env, exports, OH_NATIVE_XCOMPONENT_OBJ, exportInstance);OH_NativeXComponent *nativeXComponent  nullptr;// 通过napi_unwrap接口解析出NativeXComponent的实例指针napi_unwrap(env, exportInstance, reinterpret_castvoid**(nativeXComponent));// 获取XComponentIdchar idStr[OH_XCOMPONENT_ID_LEN_MAX  1] {};uint64_t idSize  OH_XCOMPONENT_ID_LEN_MAX  1;OH_NativeXComponent_GetXComponentId(nativeXComponent, idStr, idSize); c.  定义 OH_NativeXComponent_Callback。 // 定义回调函数void OnSurfaceCreatedCB(OH_NativeXComponent* component, void* window){ // 可获取 OHNativeWindow 实例    OHNativeWindow* nativeWindow  static_castOHNativeWindow*(window); // ...}void OnSurfaceChangedCB(OH_NativeXComponent* component, void* window){ // 可获取 OHNativeWindow 实例    OHNativeWindow* nativeWindow  static_castOHNativeWindow*(window); // ...}void OnSurfaceDestroyedCB(OH_NativeXComponent* component, void* window){ // 可获取 OHNativeWindow 实例    OHNativeWindow* nativeWindow  static_castOHNativeWindow*(window); // ...}void DispatchTouchEventCB(OH_NativeXComponent* component, void* window){ // 可获取 OHNativeWindow 实例    OHNativeWindow* nativeWindow  static_castOHNativeWindow*(window); // ...} // 初始化 OH_NativeXComponent_CallbackOH_NativeXComponent_Callback callback;callback.OnSurfaceCreated  OnSurfaceCreatedCB;callback.OnSurfaceChanged  OnSurfaceChangedCB;callback.OnSurfaceDestroyed  OnSurfaceDestroyedCB;callback.DispatchTouchEvent  DispatchTouchEventCB; d.  将 OH_NativeXComponent_Callback 注册给 NativeXComponent。 // 注册回调函数OH_NativeXComponent_RegisterCallback(nativeXComponent, callback); 2.  设置 OHNativeWindowBuffer 的属性。使用 OH_NativeWindow_NativeWindowHandleOpt 设置 OHNativeWindowBuffer 的属性。 // 设置 OHNativeWindowBuffer 的宽高 int32_t code  SET_BUFFER_GEOMETRY; int32_t width  0x100; int32_t height  0x100; // 这里的nativeWindow是从上一步骤中的回调函数中获得的 int32_t ret  OH_NativeWindow_NativeWindowHandleOpt(nativeWindow, code, width, height);3.  从图形队列申请 OHNativeWindowBuffer。 OHNativeWindowBuffer* buffer  nullptr;int fenceFd;// 通过 OH_NativeWindow_NativeWindowRequestBuffer 获取 OHNativeWindowBuffer 实例OH_NativeWindow_NativeWindowRequestBuffer(nativeWindow, buffer, fenceFd);// 通过 OH_NativeWindow_GetBufferHandleFromNative 获取 buffer 的 handleBufferHandle* bufferHandle  OH_NativeWindow_GetBufferHandleFromNative(buffer); 4.  内存映射 mmap。 #include sys/mman.h// 使用系统接口mmap将bufferHandle对应的共享内存映射到用户空间可以通过映射出来的虚拟地址向bufferHandle中写入图像数据 // bufferHandle-virAddr是bufferHandle在共享内存中的起始地址bufferHandle-size是bufferHandle在共享内存中的内存占用大小 void* mappedAddr  mmap(bufferHandle-virAddr, bufferHandle-size, PROT_READ | PROT_WRITE, MAP_SHARED, bufferHandle-fd, 0); if (mappedAddr  MAP_FAILED) {// mmap failed }5.  将生产的内容写入 OHNativeWindowBuffer。 static uint32_t value  0x00; value; uint32_t *pixel  static_castuint32_t *(mappedAddr); // 使用mmap获取到的地址来访问内存 for (uint32_t x  0; x  width; x) {for (uint32_t y  0;  y  height; y) {*pixel  value;} }6.  提交 OHNativeWindowBuffer 到图形队列。 // 设置刷新区域如果Region中的Rect为nullptr,或者rectNumber为0则认为OHNativeWindowBuffer全部有内容更改。 Region region{nullptr, 0}; // 通过OH_NativeWindow_NativeWindowFlushBuffer 提交给消费者使用例如显示在屏幕上。 OH_NativeWindow_NativeWindowFlushBuffer(nativeWindow, buffer, fenceFd, region);7.  取消内存映射 munmap。 // 内存使用完记得去掉内存映射int result  munmap(mappedAddr, bufferHandle-size);if (result  -1) { // munmap failed}
http://www.dnsts.com.cn/news/152226.html

相关文章:

  • 企业电话号码查询网站网站图怎么做才能小而清晰度
  • flash as3 网站模板wordpress创建搜索页面
  • 通州网站开发公司永康信誉好关键词优化
  • 网站开发介绍ppt网站搭建图片
  • 网站建设公司案例团购网站建设流程
  • 做课件最好的素材网站湖南住房和城乡建设厅官网
  • 什么是分类信息网站营销centos7怎么做网站服务器
  • phpcms网站打开空白wordpress保存502
  • 设计最简单的企业网站绿岛网
  • 女程序员可以干到多少岁广州网站建设乐云seo
  • dkp网站开发淘宝网站开发技术名称
  • 有培训做网站 小程序的学校值得信赖网页制作平台
  • 炫酷网站首页wordpress主题php详解
  • 如何建设一个专业的网站wordpress导航小图标
  • 建设一个网站是不必须备案亚马逊网站的建设和维护
  • 企业网站优化服务主要围绕什么起公司名字大全免费简单
  • 传奇网站怎么做网站seo诊断方案
  • 沧州市网站淄博中企动力公司网站
  • 适合翻译做兼职的网站做销售在哪个网站找客户
  • 腾讯网站开发语言wordpress如何安装
  • 高端网站制作公商城平台网站开发深圳
  • 小城镇建设的网站中的主要观点计算机培训班要学多久
  • 烟台电子商务网站建设开源分销系统
  • 网站注册域名 免费网站设计代码案例
  • 静安区网站建设北京网页制作教程
  • 建站出海中国建设银行老版本下载官方网站
  • 仿360电影网站源码网易企业邮箱续费
  • 做网站单网页网站策划书模板范文
  • js特效网站模板免费做h5的网站
  • 哈尔滨网站建设网站系统之家官网