You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+13-13
Original file line number
Diff line number
Diff line change
@@ -19,10 +19,10 @@ Status
19
19
20
20
**Current Issues**
21
21
22
-
* Exploring the best way of debugging and painting in both node and browser contexts.
23
-
* Firefox complains of too many variables
24
-
* Chrome complains of heap space issues
25
-
*Exploring an efficient worker -> canvas bitblt and forwarding GLESv2 contexts to a WebGL context
22
+
* Exploring the best way of debugging and painting in both node and browser contexts. Adding SDL to browsers to simplify setting up a canvas context and forwarding GL/ARGB bitblts and mouse events with ease.
23
+
* Firefox complains of too many variables, this is only in Debug mode, you may get ASM validation errors, this is mainly due to a globally initialized variable somewhere.. Release works fine.
24
+
* Chrome complains of heap space issues, this is only in Debug mode, 30+ will crash using debug. Release works fine.
25
+
*Node will run and produce bitblt png's to stdout, this needs some native opengl modules and somehow forward SDL calls to this native GL context (for non-headless), for headless capture we'll need to add snapshot functionality to the library.
26
26
27
27
**Supported Features**
28
28
@@ -46,9 +46,9 @@ Fonts are rendered via freetype2, fontconfig and cairo for consistent font rende
46
46
47
47
**Performance**
48
48
49
-
* Most webpages render in similar or runtimes as any other browser (without Javascript DOM interactions or CSS animations).
49
+
* Most webpages render with similar performance as any other browser (without Javascript DOM interactions or CSS animations).
50
50
* Animations in CSS tend to perform 3~10% slower than in browsers.
51
-
* Javascript based animations in isolated tests have shown a 30~35% gain in rendering speed, this, however seems to be limited by quite a bit of JIT factors and heavily influenced by the outlining limit set by emscripten (essentially too large of functions cannot be optimized heavily). In addition it can take a white for the JIT optimizations (on V8) to kick in and thus has inconsistant performance.
51
+
* Javascript based animations in isolated tests have shown a 30~35% gain in rendering speed, this, however seems to be limited by quite a bit of JIT factors and heavily influenced by the outlining limit set by emscripten (essentially too large of functions cannot be optimized heavily). In addition it can take a white for the JIT optimizations (on V8) to kick in and thus has inconsistant performance. This will change based on the JS bindings used to produce a full DOM representation.
52
52
* Seems viable for a useful framework for rendering snapshots, unclear on using it as a live renderer.
53
53
54
54
Building
@@ -102,12 +102,12 @@ ninja -C Debug
102
102
103
103
Running in the Browser
104
104
--------------
105
-
Currently this can be ran by using postMessage and Emscripten's standard way of posting arguments into a "main" method within a browser. Make sure to run it as a worker otherwise say goodbye to your browser. Debug messages are printed to the debug console. Firefox tends to work better than Chrome.
105
+
Compiling will produce a "test.html", you can use this to play around with rendering. The debug console (for both Release and Debug versions) shows trace outputs and gives you an idea of what's going on under the hood. Look for LLVM traps or abort()'s to see if the renderer is crashing. File any bugs you may find with the traces please. See Current Status above for more information. Note currently only release versions work in Firefox and Chrome due to limitations in the amount of funcitons/symbols browsers are willing to handle.
106
106
107
107
108
108
Running in Node
109
109
--------------
110
-
This is the preferred way of running it, using the debug version traces will be printed to stder. stdout contains bitblt's (As png's) of render changes, this will change once a best-of-breed method of painting is found.
110
+
This is the preferred way of running it, using the debug version traces will be printed to stderr. stdout contains bitblt's (As png's) of render changes, this will change once a best-of-breed method of painting is found (see Current Status). Debug and Release versions work in node.
There's so much to be done any help is appreciated, at the moment I have a brutal wrapper/harness that can render DIV's with various colors to a WebGL surface in Chrome 32. It's not impressive but its a proof of concept.
120
-
121
119
**Getting around the code**
122
120
123
121
*`/deps/WebKit/` This is a modified version of Apple's official repo.
@@ -161,8 +159,8 @@ There's so much to be done any help is appreciated, at the moment I have a bruta
161
159
***DONE**~~Integrate support for font resource loading and virtual file system for fontconfig~~
162
160
***Bad Idea -**~~Use embind/cppfilter.js to automatically generate all the WebCore C++ interfaces (derived from WebCore.exp.in) directly into JavaScript, then simply reuse existing webcore demos/examples.~~
163
161
***In Progress -** Generate a webkit.js API based on the WebCore C++ interfaces exported to JavaScript.
164
-
***In Progress -** Explore best methods for creating demo's and painting within WebKitJS.cpp to the host context.
165
-
***In Progress -** Experiment with emscripten outlining, lto, and optimization techniques to prevent variable/heap/stack limitations and reduce code size.
162
+
***In Progress -** Explore best methods for creating demo's and painting within WebKitJS.cpp to the host context.
163
+
***In Progress -** Experiment with emscripten outlining, lto, and optimization techniques to prevent variable/heap/stack limitations and reduce code size.
166
164
* Generate simple JavaScript library to create, use and manage webkit.js rendering.
167
165
* Create examples, demos and how-to guides (documentation, etc).
168
166
* Create hooks into webkit layout tests to ensure functionality.
@@ -175,4 +173,6 @@ License
175
173
----
176
174
[BSD License](http://www.webkit.org/coding/bsd-license.html). Use of this source code is governed by a BSD-style license that can be found in the LICENSE files contained in the root of the respective source code.
0 commit comments