|
wx_BGI_Graphics
Classic BGI-compatible graphics API with modern OpenGL extension API
|
This page captures the current DDS-to-OpenLB plan and status in a repo-tracked location so work can continue on another computer or a later time.
Implemented:
externalAttributes on retained objectssrc/wx_bgi_openlb.hsrc/wx_bgi_openlb.h for materializing DDS bridge results directly onto OpenLB SuperGeometry<T,2> and SuperGeometry<T,3> cellswxbgi_field_* visualization--wireframe / --flat / --smooth rendering and runtime 1 / 2 / 3 mode switchesFollowing design strategy works on Linux against the latest public OpenLB release repository checkout.
Validated flows:
openlb.* metadataSuperGeometry<T,2> using wxbgi_openlb_materialize_super_geometry_2d(...)examples/cpp/wxbgi_openlb_coupled_smoke.cppSuperGeometry<T,3> using wxbgi_openlb_materialize_super_geometry_3d(...)examples/cpp/openlb-demo/wxbgi_openlb_pipe_3d_demo.cppwxbgi_field_* helpers plus the retained 3D DDS rendererObserved results:
| Platform / OpenLB tree | Result |
|---|---|
| latest public GitLab release tree | Linux build + focused OpenLB bridge tests pass |
1.9.0 native Windows/MSVC | fails early on compiler builtin / feature-detection assumptions |
1.6.0 native Windows/MSVC | gets much further, but still fails in OpenLB itself on Unix-only headers such as unistd.h |
Conclusion: the DDS bridge MVP and the fully coupled 2D Linux path are working in this repository, but native Windows/MSVC remains blocked by upstream/toolchain compatibility.
| File | Purpose |
|---|---|
src/bgi_openlb_bridge.h / src/bgi_openlb_bridge.cpp | internal analytic DDS material bridge |
src/bgi_openlb_bridge_api.cpp | exported bridge wrappers |
src/wx_bgi_openlb.h | public OpenLB-facing helper header plus C++ materialization helpers |
examples/cpp/wxbgi_openlb_material_preview_demo.cpp | DDS-side authoring and preview demo |
examples/cpp/wxbgi_openlb_coupled_smoke.cpp | real OpenLB-coupled 2D channel + obstacle demo |
examples/cpp/openlb-demo/wxbgi_openlb_pipe_3d_demo.cpp | real OpenLB-coupled 3D duct + orbit preview demo |
examples/cpp/openlb-demo/run_openlb_pipe_3d_demo.sh | Debian/Ubuntu/WSL2 bootstrap script for the 3D OpenLB demo |
examples/cpp/openlb-demo/run_openlb_pipe_3d_demo_macos.sh | macOS/Homebrew bootstrap script for the 3D OpenLB demo |
examples/cpp/test_openlb_bridge_materialize_2d.cpp | current bridge regression test |
docs/user-guide/OpenLB-Support.md | user-facing workflow and platform status |
On the Linux machine:
OPENLB_ROOT at that checkout-DWXBGI_ENABLE_OPENLB=ONSuggested commands:
Or use the repo-tracked bootstrap script:
On macOS, use the Homebrew-oriented companion script:
If one coupled OpenLB target needs focused iteration, build it directly: