> On Jun 1, 2016, at 1:37 PM, Myles C. Maxfield <mmaxfi...@apple.com> wrote:
> 
> Replies inline.

> Generating a DOM is usually done in JavaScript. I'm curious about the problem 
> you are trying to solve where JavaScript is not sufficient.
> 
> Drawing into an existing window is usually done by inserting a WebView into 
> the view hierarchy of the window. Yet again, I'm interested in why this is 
> not sufficient.

I have the source code of the new language, and a parser/compiler for it 
written in C++. I’d really hate to have to introduce a new set of languages 
into the mix. 

The new programming language is designed to be visually edited, hence the need 
for hit detection. So, a component may be dragged from one region to another. 
This would trigger an event which would cause one branch of the AST to be 
pruned, modified and re-attached to another branch. This in turn would trigger 
a re-gen of the render tree, and eventually a repaint. I've done something very 
similar in the past where I created a visual computer algebra system. The 
entire runtime, including AST are written in C++, and it would be nice to 
connect it to an existing rendering/layout engine, and be able to respond to 
user events directly in my C++ code. 

I see this as a very dynamic application, and all of the internal logic which 
is a mix of C and JIT compiled code from the new language needs to interact 
with both the visual representation, and the physics engine (the Lang is 
designed for real-time physics simulation). Ideally, I'd like to be able to 
render a visual representation of a language element to an OpenGL texture, and 
have this exist in the physics engine. 

However, being as the DOM is publicly available from WebKit in C++ (I think 
they’re all exposed publicly as pure virtual interfaces), it would be 
relatively straightforward for me to to compile the new language to target the 
C++ v-table ABI. 


>> Do you think this would be possible using WebCore as a library and have 
>> these custom render tree / dom tree derived objects live in my own library 
>> (this is really, really the way I’d prefer to do things), or do you think it 
>> would be better to add these objects directly into the WebCore library. 
>> 
> 
> Are you planning on committing any changes to trunk?
> 
> Of course it is ::possible:: to do something like this - it's all software. 
> Are you asking if it's easy to do it? Or the best way to do it

On OSX, I don’t think I’ll have to do any changes at all to WebKit. I’ve got 
proof of concept working where I create a new RenderElement derived object, and 
give it a new GraphicsContext. 

However, on Windows, the classes I use from WebKit in my own code would need to 
be exported via the WEBCORE_EXPORT macro, this would need to be added to each 
class definition in WebKit. I suppose what I could do is write a quick script 
which adds this macro to each class that I use as part of my build process. 
That way, I would not have to touch the upstream webkit source at all. 

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to