mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-13 19:07:57 +00:00
ifcviewer: move render pipelines into ViewportCore (#84-b)
Move the 15 pipeline + bind-group-layout + shader-module handles
that buildPipelines / buildEdgePipeline / buildPickPipeline write to.
Same pattern as #84-a: storage lives in ViewportCore, ViewportWindow
keeps reference aliases so existing builder-method bodies don't
have to acquire a `core_.` prefix at every touch point.
Moved fields:
Main render group:
main_shader_module_, frame_bgl_ (group 0), model_bgl_ (group 1),
pipeline_layout_, main_pipeline_, main_pipeline_transparent_
HiZ occlusion-cull group:
hiz_shader_module_, hiz_bgl_, hiz_pipeline_layout_, hiz_pipeline_
Edge silhouette group:
edge_shader_module_, edge_bgl_, edge_pipeline_layout_, edge_pipeline_
Pick pass:
pick_pipeline_ (reuses pipeline_layout_ — same set of bindings)
ViewportWindow's constructor binds 16 new alias references after
the 7 lifecycle ones from #84-a; member-init order matches
declaration order so core_ is constructed before any alias binds.
Builds: desktop / bonsai / web all green. Tests 100/100.
This commit is contained in:
@@ -618,7 +618,22 @@ ViewportWindow::ViewportWindow(QWindow* parent)
|
||||
queue_ (core_.queue_),
|
||||
surface_ (core_.surface_),
|
||||
surface_format_ (core_.surface_format_),
|
||||
surface_configured_(core_.surface_configured_) {
|
||||
surface_configured_(core_.surface_configured_),
|
||||
main_shader_module_ (core_.main_shader_module_),
|
||||
frame_bgl_ (core_.frame_bgl_),
|
||||
model_bgl_ (core_.model_bgl_),
|
||||
pipeline_layout_ (core_.pipeline_layout_),
|
||||
main_pipeline_ (core_.main_pipeline_),
|
||||
main_pipeline_transparent_(core_.main_pipeline_transparent_),
|
||||
hiz_shader_module_ (core_.hiz_shader_module_),
|
||||
hiz_bgl_ (core_.hiz_bgl_),
|
||||
hiz_pipeline_layout_ (core_.hiz_pipeline_layout_),
|
||||
hiz_pipeline_ (core_.hiz_pipeline_),
|
||||
edge_shader_module_ (core_.edge_shader_module_),
|
||||
edge_bgl_ (core_.edge_bgl_),
|
||||
edge_pipeline_layout_ (core_.edge_pipeline_layout_),
|
||||
edge_pipeline_ (core_.edge_pipeline_),
|
||||
pick_pipeline_(core_.pick_pipeline_) {
|
||||
// wgpu doesn't need a GL context; we just need a real native window
|
||||
// whose backing layer matches the GPU API wgpu will drive.
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user