Здравствуйте, romelhome, Вы писали:
R>2) По поводу:
R>R>Иллюстрацию можно? Не ясно что имеется ввиду.
R>Image: example-01.png
R>a) Сейчас это child native window и проблема только одна, если scroll внутреннюю область,
R> то child native window может наехать на menubar и toolbar и будет совсем не красиво
R> (поэтому я в таких случаях его прячу)…
"если scroll внутреннюю область"
Так работать не будет — child window рисуется поверх всего. Т.е. child window не должен быть в scrollable container.
R>б) Хотелось бы поверх этого widget нарисовать какой-нибудь тулбарчик с управлением 3d
R> не выходя за рамки widget...
R> Сделать это поверх child window весьма проблематично (хотя теоретически возможно)...
"поверх этого widget нарисовать какой-нибудь тулбарчик с управлением 3d"
Это можно сделать так:
toolbar.move(,,,, #attached-window,);
В этом случае для toolbar элемента будет создано окно поверх основного и соотв. твоего OpenGL.
Т.е. toolbar будет над твоим OpenGL окном.
R> Поэтому и обратил внимание на Skia-версию, где похожее делается,
R> только при этом widget на все окно …
Идея такой архитектуры описана здесь
https://sciter.com/sciter-and-directx/
Там 3 layers — background (HTML, Skia/OpenGL), content (3D, OpenGL) и foreground (HTML, Skia/OpenGL)
Т.е. ты можешь описать <scene3d> элемент. Только "рисовать" его как content layer внутри rc_3d_content:
dom::element scene3d = …;
RECT rc_3d_content = scene3d.get_location(VIEW_RELATIVE | CONTENT_BOX);
// adjust glViewport so it will appear inside rc_3d_content.