首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏前端开发

    WindowRef.nativeWindow 在 Angular 应用中的使用场景

    核心逻辑起点:控制反转与平台无关性在探讨具体的nativeWindow使用场景之前,我们必须建立一个共识:Angular不仅仅是一个运行在浏览器里的Web框架,它是一个平台无关的(PlatformAgnostic WindowRef.nativeWindow的本质,是依赖注入(DependencyInjection)思想的体现。我们将“获取全局上下文”这个行为,封装成一个可被注入的服务。这正是解耦的第一步。 正确的WindowRef做法:通过注入WindowRef,我们可以安全地访问`nativeWindow`。更重要的是,我们可以在服务内部检查当前平台。 逻辑推演与解决方案:通过WindowRef获取`nativeWindow`,我们可以利用RxJS的操作符来控制这种混沌。 我们将`nativeWindow`视为一个数据源(SourceofTruth),通过RxJS的管道将其转化为可控的、平滑的数据流。

    7610编辑于 2026-04-19
  • 来自专栏拂晓风起

    Flex 4 NativeWindow 中添加Flex组件(问题很多,尚不完善)

    Window本身又不对外开放nativeWindow的owner属性,或者说NativeWindow一旦new了之后就无法修改owner属性。 所以今天尝试用NativeWindow和NativeWindowInitOptions来自己做一个窗口。 因为NativeWindow好像没有布局啊,onFocus之类的处理。 又继续找,找到了一个外国佬封装的ExtendedNativeWindow,原理就是针对出错的原因(缺少_systemManager: WindowedSystemManager),自己封装一个给nativeWindow

    51940发布于 2018-07-03
  • 来自专栏鸿蒙开发笔记

    HarmonyOS 开发实践——基于Drawing的图形/文字绘制及双缓冲模拟实现刷新

    这里介绍如何使用Drawing绘制内容,然后通过NativeWindow贴图到XComponent的双缓冲实现。 更具体一点来说:先通过Drawing方法将要绘制的所有的图形绘制到一个Bitmap上也就是先在内存空间完成,然后获取位图的像素地址、并将其拷贝到XComponent的NativeWindow地址。 // 通过 OH_NativeWindow_NativeWindowRequestBuffer 获取 OHNativeWindowBuffer 实例int32_t ret = OH_NativeWindow_NativeWindowRequestBuffer (nativeWindow_, &buffer_, &fenceFd_);2.通过 OH_NativeWindow_GetBufferHandleFromNative 获取bufferHandle。 OH_NativeWindow_NativeWindowFlushBuffer(nativeWindow_, buffer_, fenceFd_, region);6.释放内存// 去掉内存映射int

    57020编辑于 2024-11-12
  • 来自专栏字节流动

    FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放

    利用 Java 层 SurfaceView 传下来的 Surface 对象,获取 ANativeWindow m_NativeWindow = ANativeWindow_fromSurface(env 设置渲染区域和输入格式 ANativeWindow_setBuffersGeometry(m_NativeWindow, m_VideoWidth, 渲染 ANativeWindow_Buffer m_NativeWindowBuffer; //锁定当前 Window ,获取屏幕缓冲区 Buffer 的指针 ANativeWindow_lock(m_NativeWindow m_FrameBuffer + i * srcLineSize, srcLineSize); } //解锁当前 Window ,渲染缓冲区数据 ANativeWindow_unlockAndPost(m_NativeWindow 释放 ANativeWindow if(m_NativeWindow) ANativeWindow_release(m_NativeWindow); 以上就是 FFmpeg + ANativeWindow

    1.4K61发布于 2020-07-03
  • 来自专栏字节流动

    FFmpeg 开发(02):利用 FFmpeg 和 ANativeWindow 实现视频解码播放

    利用 Java 层 SurfaceView 传下来的 Surface 对象,获取 ANativeWindow m_NativeWindow = ANativeWindow_fromSurface(env 设置渲染区域和输入格式 ANativeWindow_setBuffersGeometry(m_NativeWindow, m_VideoWidth, 渲染 ANativeWindow_Buffer m_NativeWindowBuffer; //锁定当前 Window ,获取屏幕缓冲区 Buffer 的指针 ANativeWindow_lock(m_NativeWindow m_FrameBuffer + i * srcLineSize, srcLineSize); } //解锁当前 Window ,渲染缓冲区数据 ANativeWindow_unlockAndPost(m_NativeWindow 释放 ANativeWindow if(m_NativeWindow) ANativeWindow_release(m_NativeWindow); 以上就是 FFmpeg + ANativeWindow

    91810发布于 2020-07-07
  • 来自专栏码上就说

    图片的实时渲染和离屏渲染

    创建EGL环境 Surface转NativeWindow,构建EGLSurface 设置FBO 渲染图片纹理 创建EGL环境 获取EGLDisplay,EGLDisplay实际上是底层显示设备的OpenGL eglGetError()); Release(); return Error::OPENGL_CREATE_CONTEXT_ERROR; } return 0; } Surface转NativeWindow ,构建EGLSurface 可以在主线程中将Surface转为NativeWindow 在EGL线程中通过NativeWindow构建EGLSurface,这个EGLSurface非离屏,可以实现渲染的

    2.6K20编辑于 2023-03-05
  • 来自专栏曾大稳的博客

    ffmpeg添加水印和滤镜效果

    -----window init start----------------------------------- // 获取native window ANativeWindow *nativeWindow videoHeight = pCodecCtx->height; // 设置native window的buffer大小,可自动拉伸 ANativeWindow_setBuffersGeometry(nativeWindow pCodecCtx, pFrame) == 0) { // lock native window buffer ANativeWindow_lock(nativeWindow dstStride, src + h * srcStride, srcStride); } ANativeWindow_unlockAndPost(nativeWindow av_frame_free(&pFrame); av_free(pFrame); } } ANativeWindow_release(nativeWindow

    3.1K30发布于 2018-09-11
  • 来自专栏游戏杂谈

    xml文件转二进制文件的AIR

    private function showTopHandler():void { if (this.stage.nativeWindow.alwaysInFront ) { this.stage.nativeWindow.alwaysInFront=false; showTopBtn.label="前端显示"; } else { this.stage.nativeWindow.alwaysInFront

    1.7K20发布于 2018-11-16
  • 来自专栏王小二的Android站

    [030]王小二图解Android-UI绘制篇【文字版】

    1.2 NativeWindow,操作系统实现,Android中有Framebuffer和Surface。 Framebuffer对应的就是屏幕 1.2.2 Surface对应的就是Window,一个Activity 一个Dialog 一个Toast 其实都是对应一个Window 1.3 EGL,OpenGL ES和NativeWindow

    1.4K40发布于 2020-06-08
  • 来自专栏Android 开发学习

    Android studio 2.2 JNI ffmpeg 简单的播放器(这里只有视频解码)include "libavcodec/avcodec.h"include "libavformat/avf

    ."); return -1; // Could not open codec } // 获取native window ANativeWindow *nativeWindow videoHeight = pCodecCtx->height; // 设置native window的buffer大小,可自动拉伸 ANativeWindow_setBuffersGeometry(nativeWindow (frameFinished) { // lock native window buffer ANativeWindow_lock(nativeWindow dstStride, src + h * srcStride, srcStride); } ANativeWindow_unlockAndPost(nativeWindow

    2.3K30发布于 2018-06-04
  • 来自专栏林德熙的博客

    dotnet 在 UNO 里获取 X11 窗口指针的方法

    应用的窗口的 X11 窗口指针,如此即可调用 X11 平台相关逻辑对 UNO 窗口执行一些交互 本文以下的方法需要用到反射 通过阅读 UNO 的源代码,可以看到 Window 类型里面放入了不公开的 NativeWindow 反射的代码如下 var type = MainWindow.GetType(); var nativeWindowPropertyInfo = type.GetProperty("NativeWindow

    37210编辑于 2024-05-23
  • 来自专栏Dotnet9

    疯狂吐槽 MAUI 以及 MAUI 入坑知识点

    AppWindow appWindow = nativeWindow.GetAppWindow()! ; }); }); private static void MainWindowCreated(MauiWinUIWindow nativeWindow ; // 扩展标题栏,要自定义标题栏颜色,必须 true nativeWindow.ExtendsContentIntoTitleBar = true activationState); window.Title = Constants.Name; 如果要获取原生的 Window 句柄,可以使用: var nativeWindow (nativeWindow); PInvoke.User32.ShowWindow(windowHandle, PInvoke.User32.WindowShowStyle.SW_MINIMIZE

    5.4K20编辑于 2023-02-10
  • 来自专栏痴者工良

    疯狂吐槽 MAUI 以及 MAUI 入坑知识点

    AppWindow appWindow = nativeWindow.GetAppWindow()! ; }); }); private static void MainWindowCreated(MauiWinUIWindow nativeWindow ; // 扩展标题栏,要自定义标题栏颜色,必须 true nativeWindow.ExtendsContentIntoTitleBar = true activationState); window.Title = Constants.Name; 如果要获取原生的 Window 句柄,可以使用: var nativeWindow (nativeWindow); PInvoke.User32.ShowWindow(windowHandle, PInvoke.User32.WindowShowStyle.SW_MINIMIZE

    6.9K30编辑于 2023-02-02
  • 来自专栏音视频直播技术专家

    视频直播技术--Android视频采集(Camera1)

    void frameAvailable() { mCameraTexture.updateTexImage(); draw(); } 通过上面的步骤,就将 OpenGL ES 、EGL、NativeWindow 并最终调用 EGL14.eglSwapBuffers(mEGLDisplay, eglSurface); 将 EGLSurface中的内容输出到 NativeWindow,最终显示出来。

    6K41发布于 2020-04-02
  • 来自专栏拂晓风起

    Flex Air 主窗口和多个子窗口从属显示

    1、重载NativeWindow,加入组件的方式。发现很多控件加不进去~~失败 2、一直处理orderToFrontOf(Main),但子窗口会一直闪烁。

    1.7K30发布于 2018-07-03
  • 来自专栏Android源码框架分析

    Android硬件加速(二)-RenderThread与OpenGL GPU渲染

    --调用nativeWindow的dequeueBuffer申请绘制内存,获取一个Fence--> if (nativeWindow->dequeueBuffer(nativeWindow, & ->queueBuffer(nativeWindow, buffer, -1); buffer = 0; // dequeue a new buffer int fenceFd // buffer换buffer if (nativeWindow->dequeueBuffer(nativeWindow, &buffer, &fenceFd) == NO_ERROR) { 而对于硬件真机,一般需要处理Fence,其egl_window_surface_v2_t::swapBuffers()应该会被重写,至少需要传递一个有效的Fence过去, nativeWindow ->queueBuffer(nativeWindow, buffer, fenceId(不应该再是-1)); 也就是说,queueBuffer的fenceid不能再是-1了,因为需要一个有效的Fence

    11.5K52发布于 2018-08-16
  • 来自专栏along的开发之旅

    ijkplayer源码分析之surface与opengl关联初始化

    const char *name; } SDL_Class; static SDL_Class g_class = { .name = "EGL", }; static SDL_Class g_nativewindow_class = mallocz(sizeof(IJK_EGL_Opaque)); | | | |--vout->opaque_class = &g_nativewindow_class android_surface); |--SDL_VoutAndroid_SetNativeWindow(vout, native_window); //Ijksdl_vout_android_nativewindow.c

    1.3K20发布于 2021-01-07
  • 来自专栏曾大稳的博客

    Android配置EGL环境C++版

    callBackOnDraw(callBackOnDraw); eglThread->setRenderModule(RENDER_MODULE_MANUAL); ANativeWindow *nativeWindow = ANativeWindow_fromSurface(env, surface); eglThread->onSurfaceCreate(nativeWindow); } extern "

    1.7K21发布于 2020-01-20
  • 来自专栏along的开发之旅

    让IjkPlayer支持插入自定义的GPU滤镜

    Renderer的创建是根据SDL_VoutOverlay来的,在查找SDL_VoutOverlay从哪里来的,一路可以搜索到ijkmedia/ijksdl/android/ijksdl_vout_android_nativewindow.c ; } SDL_VoutOverlay的创建和SDL_Vout有关,再查找SDL_Vout的来源,可以找到 ijkmedia/ijksdl/android/ijksdl_vout_android_nativewindow.c opaque->egl) goto fail; vout->opaque_class = &g_nativewindow_class; vout->create_overlay func_onDrawFrame=overlay->func_onDrawFrame; return renderer; } ijksdl\android\ijksdl_vout_android_nativewindow.c

    2K20发布于 2019-05-26
  • 来自专栏个人路线

    Flutter 3.22.0-ohos 1.0.1 版本发布:全面适配 HarmonyOS NEXT API16

    2025 年 5 月 21 日 三、关键 Bug 修复与优化 (一)内存管理与性能优化 修复内存泄露问题:解决了先执行 DetachFlutterEngine 后执行 OnSurfaceDestroy 时,NativeWindow

    1.2K10编辑于 2025-05-23
领券