Offscreen WebKit Rendering

2024-03-12 02:18
文章标签 rendering webkit offscreen

本文主要是介绍Offscreen WebKit Rendering,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Offscreen WebKit Rendering

Awesomium 实际上是开源的

Overgrowth使用Awesomium做UI,Awesomium是无窗口WebKit,将HTML元素直接绘制到用户自己定义的视频缓冲区里。效果看起来很不错,使用HTML和CSS来做UI开发效率也很高,尤其网络游戏这种需要大量UI的系统,很适合人手有限的小团队。Awesomium基于Chromium,集成了V8,相当于在app里加入了完整的浏览器功能,充分使用可以发掘出很多潜能,绚丽的HTML5和CSS3的效果,免费的脚本调试功能。问题是Awesomium是闭源的,而且只支持Windows, MacOX, Linux,不支持iOS和Android,个头还比较大,Win版有数个DLL文件(超过20M)。理论上Awesomium支持Android是可以的,但是iOS不可能,因为V8无法在iOS的沙盒里运行。Chrome的iOS版也有这个问题,在iOS上甚至Webkit也不能用自己的,换句话说iOS版Chrome只是Safari一个壳。

除Awesomium,还有一个berkelium。它是开源的,支持完整的JS和Offescreen渲染,同样基于Chromium,也意味着对与iOS支持基本不可能。berkelium的功能没有Awesomium那么完善。有点奇怪为什么都使用Chromium版的Port,而不是只用WebKit,毕竟需要的只是UI功能。(使用Chromium的原因是Chromium有一个“WebKit Embedding Layer”,这种方式不用修改WebKit或Chromium的源代码。)。

看了几个Port的代码,包括WebKitSDL、Awesomium(1.08)和berkelium,看上去自己写一个Port并不会很困难,Awesomium最初的实现只用了一周(Awesomium和berkelium都不是Port。我猜我还是没有完全理解。)。

有几个问题让人犹豫:

  • WebKit和Chromium开发速度太快,如果想保证自己的Port与开发库同步不太可能。
  • 不能用V8,JSC有点慢。理论上Offscreen渲染只将WebKit作为一个渲染库,在iOS上可以运行,但是V8由于使用JIT,不大可能跑在iOS上。
  • WebKit不同平台的构建非常繁琐,尤其是如果想裁剪功能。我在Ubuntu12.04上将源改成raring才能将包更新到可以构建。
  • WebKit和Chromium的代码非常复杂庞大,且开发方式让人望而生畏(Very different than Mozilla and other more developer-friendly projects; It IS possible to fix bugs in WebKit, but it’s very difficult to track WebKit development)。
  • 如果想精简WebKit的功能需要对代码相对熟悉,可能会很耗时间,比如搞清楚两条渲染路径(软件和硬件)。
  • 对于硬件加速不熟悉,尤其是嵌入式平台上。

说句玩笑话,如果做一款大小十几M的手机游戏,却要搞个8G内存的PC编译一个多小时,实在难让人心安。

这篇关于Offscreen WebKit Rendering的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/799839

相关文章

Apple quietly slips WebRTC audio, video into Safari's WebKit spec

转自:http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-into-safaris-webkit-spec/?from=timeline&isappinstalled=0 http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF:单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动,例如,从YouTube的视频。我们的方法可以在任何帧暂停视频,并从任意新的摄像机视点或甚至针对该特定帧和身体姿势的完整360度摄像机路径渲染主体。这项任务特别具有挑战性,因为它需要合成身体的照片级真实感细节,如从输入视频中可能

Chrome-devtools:对ios-safari移动端的H5页面进行调试(ios-webkit-debug-proxy)

https://blog.csdn.net/mcky_love/article/details/80847520 https://www.cnblogs.com/hammerc/p/8521983.html http://www.cnblogs.com/slmk/p/7591126.html

Real-Time Rendering笔记 --------------------------------- 渲染管线

一. 渲染管线:       渲染管线是指渲染的基本流程或步骤,基本渲染管线分为三个阶段:  应用程序( 逻辑 ) ------>  几何( 坐标变化和光照流水线 T&L ) ------> 光栅化       1. 应用程序( 逻辑 ) 阶段: 进行的是逻辑处理 ( 如: 移动相机,改变粒子位置等。) 是在CPU中进行处理的。       2. 几何( 坐标变化和光

【文献】3D Gaussian Splatting for Real-Time Radiance Field Rendering

论文地址:https://arxiv.org/abs/2308.04079 项目: https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/ 代码: git clone  https://github.com/graphdeco-inria/gaussian-splatting —recursive 一、文章概述 1.问题

CVPR2021-PhySG: Inverse Rendering with Spherical Gaussians for Physics-based Material Editing and Re

作者:Zhang kai + Prof. Noah Snavely Cornell University, Department of Computer Science 光照:natural, static illumination 对象:specular objects 视点:multi-view 相机类型:RGB 时间:no 问题:multi-view inverse render

WHAT - NextJS 系列之 Rendering - Server Rendering Strategies

目录 1. Static Rendering(静态渲染)特点:实现方式: 2. Dynamic Rendering(动态渲染)特点:实现方式: 3. Streaming Rendering(流式渲染)特点:实现方式: 总结 相关官方文档:https://nextjs.org/docs/app/building-your-application/rendering/server-co

opencascade AIS_InteractiveContext源码学习5 immediate mode rendering 即时模式渲染

AIS_InteractiveContext 前言 交互上下文(Interactive Context)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行修改。如果交互对象尚未加载到交互上下文中,您才能直接调用交互对象的方法。 每个可选择的对象必须指定负责整体选择对象的选择模式(全局选

WHAT - NextJS 系列之 Rendering - Server Components

目录 一、Server Components1.1 Server Components特点使用 1.2 Client Components特点使用 1.3 综合使用示例1.4 小结 二、Server Components 优势三、Streaming 特性3.1 基本介绍和使用Streaming的理解工作原理使用示例服务器端组件客户端组件页面流程解释 3.2 HTTP/1.1和HTTP/2中

探索 webkit 的奥妙,打造高效、兼容的现代网页

探索 webkit 的奥妙,并将其用于打造高效、兼容的现代网页,需要深入了解其内部工作机制、优化策略以及与其他浏览器引擎的兼容性处理。以下是一些关键步骤和考虑因素: 理解 WebKit 的基础: WebKit 是一个开源的浏览器渲染引擎,用于 Safari, Chrome(早期的版本)和其他一些浏览器。它负责解析 HTML、CSS 和 JavaScript,并将其转换为用户可以与之交互的视觉内