View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0032886 | Open CASCADE | OCCT:Visualization | public | 2022-03-24 09:45 | 2023-03-19 21:52 |
Reporter | kgv | Assigned To | |||
Priority | normal | Severity | feature | ||
Status | closed | Resolution | fixed | ||
Target Version | 7.7.0 | Fixed in Version | 7.6.3 | ||
Summary | 0032886: Visualization, V3d_View - introduce interface for creating a subview | ||||
Description | Existing API allows creation of V3d_View for individual native windows (Aspect_Window, V3d_View::SetWindow()), which might share graphics resources (via the same Graphic3d_GraphicDriver / V3d_Viewer instance). This API has a strong dependency on native window systems for composing multiple Views onto the screen, with each View occupying an entire native window. In some cases, this dependency may limit application functionality (some platforms like Android or Emscripten has no API for sharing OpenGL ES / WebGL resources between multiple canvases) or require a complicated solutions for some common use cases. It is proposed implementing an API that would allow defining a V3d_View as a subview of another V3d_View instance: - The root V3d_View instance is mapped onto a native window; - V3d_View created as sub-views of another V3d_View, reuses existing native window and occupies it's portion; - Sub-views layout splitting parent V3d_View vertically or horizontally with some proportions; - A floating sub-view, displayed on top of another (sub)-views; - Rendering of sub-views is done into off-screen FBOs; - The root V3d_View is be responsible for composition of sub-views onto the screen; - The root V3d_View may avoid creation of it's own offscreen FBOs and just blit FBOs of sub-views directly into backbuffer; - AIS_ViewController should support working with the root V3d_View instance and automatically dispatch events to sub-views; - AIS_ViewController should carefully handle redrawing of sub-views taking into account immediate / invalidation flags; - vinit command may support a new syntax "vinit V2/SubView -parent V1/RootView" for identifying sub-views by name; | ||||
Steps To Reproduce | pload MODELING VISUALIZATION vinit V1/RootView -width 1024 -height 512 -composer 0 vbackground GRAY20 vinit V2/ViewLeft -subView -width 0.5 -height 1.0 vbackground GRAY30 box b 1 2 3 vdisplay -dispMode 1 b vaspects b -faceBoundaryDraw 1 vfit vviewcube vc vinit V3/ViewRight -parent V1/RootView -width 0.5 -height 1.0 -left 0.5 vbackground GRAY40 psphere s 1 vdisplay -dispMode 1 s vaspects s -material SILVER vfit vzbufftrihedron | ||||
Tags | No tags attached. | ||||
Test case number | opengl general multiview1 | ||||
|
Branch CR32886 has been created by kgv. SHA-1: 3215b40c5401e7d7f1794f949f873f1f4ea82359 Detailed log of new commits: Author: kgv Date: Mon Apr 11 20:00:39 2022 +0300 0032886: Visualization, V3d_View - introduce interface for creating a subview TODO |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 370b7dc193f290bfa4e82b66d946683aba8f4d4e |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 6988d88ded7f9442a3711974116690834c087ebb |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: bd846874f5b47e034905ed31bf123350921d6195 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 7bd604ebfbc02e130db32e5540bfbef661b1a550 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 4bee95a4f50e1be48bb374e7c1a95a79f267bf2c |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: cdf2586b968337df972356312e27de34f0be7d0f |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: daf4131742171da936a0b78781d21740bbdd4029 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 2ae2f6d6dbdb5b61c7e3241c0e1f5cf60738854f |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 6570175e7457042334081d25aa61185dbabd02f2 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: e7518258c5c53e06f4ce45396f9010045c5b8c77 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 5b698a5eb914483863656619c0dd8932eb6c5224 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 704cb1e5688f4aaf09fa8dd6d514c99085e0d84e |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: adb1ba8d021a064056b0b3ec5590e9d83e370ce6 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: d9ff830d19231086d47759251b1e255a269cd610 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 5492c108e8b844d56a597faa36cfe7720275c86a |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 1a35c0c028eb7ad654e8c62fcdab0bfaff081acd |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: aaed653b02612032a2025e945be2e02fadd9f798 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: dadd9bc7fda0de1b225f391249b0fa7cc8eace17 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: d34869b17a9c9aa510ad54017b0ccc862dd9276b |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 21dd5970399c34d53a3edd95d913a283498fc49b |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 982bd4b57071032857f179c0922597ee8c1d28bd |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: c193690656a72869360584014b051afb1c3931aa |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 89b6cadaadfcca3dd5a2e18611607e4ad45a73f1 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: b882ac05ec14a1a41d471dfd1c4eb8b5acfc2f14 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: e21a9faf7d36d08dca2fbd82399508270cfd4ffe |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: f0fbac162089210c903313fe58c8f97b4a8bda75 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 0de7e33d8d5a2060661aeea5cfa67c7aa890745c |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: b35cf0551eda3a871beb77a5a81e65b190fdccc7 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: c7f4d26dbe261b8a7ec48849415eb100f1aa74bb |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 380be69ca5a5f64f7338263e940d0e7ad7989169 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 32c024d34efefd60142c892243137ff3c8f25282 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 6609b3c412da6141f1a1b44187d794811043aa47 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 2161daafe12dc3d96235c79605acd13424e7c320 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: bce55f234059902af4eaf402737f44729ed38eac |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 062671571b98c2e3547b04a15bcb2c1411bf51d7 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 6a9e358cd1776a5dcfd61f7d57706b0acdc6e7ac |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: fff9d4aeb6c84f0a2d9a44b2ed9311e8323a7ddf |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 1362e9db1cdeaaab5cee7ef4a4bcddeb02351720 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 33d7cc22c4050e359d80e99cb10b966cf257de12 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: b038d88ac3280afddd2097a7de5044c0eec38d49 |
|
Branch CR32886 has been updated forcibly by kgv. SHA-1: 5924cb69166735c0cad4d9bc3f5c1955abfc842d |
|
Branch CR32886_1 has been created by kgv. SHA-1: ee6cbf6d9a110697b09acc610fd4d176d2d9048f Detailed log of new commits: Author: kgv Date: Mon Apr 11 20:00:39 2022 +0300 00C: Visualization, V3d_View - introduce interface for creating a subview V3d_View/Graphic3d_CView pair has been extended to define subview within the other V3d_View instance. The initialization is done in form of V3d_View::SetWindow() taking parent V3d_View instance on input. Subview definition includes dimensions defined as a fraction of a parent view and offset from a corner. This scheme allows splitting window into several subviews automatically occupying entire viewport, like splitting window into two vertial subviews (100%x50% + 100%x50%), three horizontal subviews (33%x100% + 30%x100% + 30%x100%), 1 + 2 stacked subviews (50%x100% + 50%x50% + 50%x50%), as well as thumbnail-alike subviews displayed on top of another larger view. OpenGl_View::Redraw() blits content of subviews into the window within immediate redraw step. AIS_ViewController::FlushViewEvents() has been extended to re-calculate mouse input into local subview coordinates. AIS_ViewController::handleViewRedraw() first redraws subviews and then parent views. Introduced new callback AIS_ViewController::OnSubviewChanged() to switch input focus to another subview on mouse click, implemented by ViewerTest_EventManager (has to be done at application level). vinit command has been extended with parameters -subview and -parent to create a subview. In addition, view dimension arguments now can be defined as a fraction of screen size instead of pixels. |
|
Branch CR32886_1 has been updated forcibly by kgv. SHA-1: 55fef2625acc1cd63814b5ca9461637f65400607 |
|
Branch CR32886_1 has been updated forcibly by kgv. SHA-1: 3c2705c7abf4fcce4df3d7eb9521872670bb43f0 |
|
Branch CR32886_1 has been updated forcibly by kgv. SHA-1: 9e0fd21608d258d1807bce7e0ef94466e96cf3dc |
|
multiview6.png (29,516 bytes) |
|
Branch CR32886_1 has been updated forcibly by kgv. SHA-1: b41ef7df0613de7138c6681a14cbebf4c010b6cf |
|
Branch CR32886_1 has been updated forcibly by kgv. SHA-1: 6b79a3b9381187b92fcb28fa354c2e2c86f790e3 |
|
Branch CR32886_1 has been updated forcibly by kgv. SHA-1: 9e42ee9a8f5af1cadd7ce7cef4fe227bc838254b |
|
Branch CR32886_1 has been updated forcibly by kgv. SHA-1: 8b3943dc45d5071763a243162d444decdc3ee417 |
|
Branch CR32886_1 has been updated forcibly by kgv. SHA-1: 54058959bfb512dfe88c24efdefd93132f065a17 |
|
Branch CR32886_1 has been updated forcibly by kgv. SHA-1: 06aaa67db0745170e9c469e2c1ba95c11de0399e |
|
Please raise the patch - OCCT: branch CR32886_1. http://jenkins-test-occt/view/CR32886_1-master-KGV/ |
|
Combination - OCCT branch : IR-2022-04-15 master SHA - 879768fbf2e2c09089d7cd64a8f93b3c9c47d09c 49e51745631c52b6c452c65adae4d6dfa21a1b1e Products branch : IR-2022-04-15 SHA - db9f5fc1c0877a16922bb1bcbd006c614256ba97 was compiled on Linux, MacOS and Windows platforms and tested in optimize mode. Number of compiler warnings: No new/fixed warnings Regressions/Differences/Improvements: No regressions/differences CPU differences: Debian80-64: OCCT Total CPU difference: 18524.440000000686 / 18453.560000000383 [+0.38%] Products Total CPU difference: 11765.190000000111 / 11767.510000000153 [-0.02%] Windows-64-VC14: OCCT Total CPU difference: 20542.0625 / 20540.40625 [+0.01%] Products Total CPU difference: 13266.890625 / 13255.140625 [+0.09%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR32886 has been deleted by mnt. SHA-1: 5924cb69166735c0cad4d9bc3f5c1955abfc842d |
|
Branch CR32886_1 has been deleted by mnt. SHA-1: 06aaa67db0745170e9c469e2c1ba95c11de0399e |
occt: master 879768fb 2022-04-11 20:00:39 Committer: |
0032886: Visualization, V3d_View - introduce interface for creating a subview V3d_View/Graphic3d_CView pair has been extended to define subview within the other V3d_View instance. The initialization is done in form of V3d_View::SetWindow() taking parent V3d_View instance on input. Subview definition includes dimensions defined as a fraction of a parent view and offset from a corner. This scheme allows splitting window into several subviews automatically occupying entire viewport, like splitting window into two vertial subviews (100%x50% + 100%x50%), three horizontal subviews (33%x100% + 30%x100% + 30%x100%), 1 + 2 stacked subviews (50%x100% + 50%x50% + 50%x50%), as well as thumbnail-alike subviews displayed on top of another larger view. OpenGl_View::Redraw() blits content of subviews into the window within immediate redraw step. AIS_ViewController::FlushViewEvents() has been extended to re-calculate mouse input into local subview coordinates. AIS_ViewController::handleViewRedraw() first redraws subviews and then parent views. Introduced new callback AIS_ViewController::OnSubviewChanged() to switch input focus to another subview on mouse click, implemented by ViewerTest_EventManager (has to be done at application level). vinit command has been extended with parameters -subview and -parent to create a subview. In addition, view dimension arguments now can be defined as a fraction of screen size instead of pixels. |
Affected Issues 0032886 |
|
mod - src/AIS/AIS_ViewController.cxx | Diff File | ||
mod - src/AIS/AIS_ViewController.hxx | Diff File | ||
mod - src/Aspect/Aspect_Window.hxx | Diff File | ||
mod - src/D3DHost/D3DHost_View.cxx | Diff File | ||
mod - src/D3DHost/D3DHost_View.hxx | Diff File | ||
mod - src/DPrsStd/DPrsStd_AISViewerCommands.cxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_CView.cxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_CView.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_GraphicDriver.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_GraphicDriver.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_View.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_View.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_Window.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_Window.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_Window_1.mm | Diff File | ||
mod - src/V3d/V3d_View.cxx | Diff File | ||
mod - src/V3d/V3d_View.hxx | Diff File | ||
mod - src/V3d/V3d_Viewer.cxx | Diff File | ||
mod - src/V3d/V3d_Viewer.hxx | Diff File | ||
mod - src/ViewerTest/ViewerTest.cxx | Diff File | ||
mod - src/ViewerTest/ViewerTest.hxx | Diff File | ||
mod - src/ViewerTest/ViewerTest_AutoUpdater.cxx | Diff File | ||
mod - src/ViewerTest/ViewerTest_EventManager.cxx | Diff File | ||
mod - src/ViewerTest/ViewerTest_EventManager.hxx | Diff File | ||
mod - src/ViewerTest/ViewerTest_OpenGlCommands.cxx | Diff File | ||
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx | Diff File | ||
mod - src/XDEDRAW/XDEDRAW.cxx | Diff File | ||
add - tests/opengl/data/general/multiview1 | Diff File | ||
add - tests/opengl/data/general/multiview1ssaa | Diff File | ||
add - tests/opengl/data/general/multiview2 | Diff File | ||
add - tests/opengl/data/general/multiview3 | Diff File | ||
add - tests/opengl/data/general/multiview4 | Diff File | ||
add - tests/opengl/data/general/multiview5 | Diff File | ||
add - tests/opengl/data/general/multiview6 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2022-03-24 09:45 | kgv | New Issue | |
2022-03-24 09:45 | kgv | Assigned To | => kgv |
2022-03-24 12:02 | kgv | Description Updated | |
2022-04-11 20:00 | git | Note Added: 0107853 | |
2022-04-11 21:08 | git | Note Added: 0107854 | |
2022-04-11 21:26 | git | Note Added: 0107855 | |
2022-04-11 22:27 | git | Note Added: 0107857 | |
2022-04-11 22:45 | git | Note Added: 0107858 | |
2022-04-11 22:53 | git | Note Added: 0107859 | |
2022-04-11 23:31 | git | Note Added: 0107860 | |
2022-04-11 23:33 | git | Note Added: 0107861 | |
2022-04-11 23:50 | git | Note Added: 0107863 | |
2022-04-12 00:06 | git | Note Added: 0107867 | |
2022-04-12 00:47 | git | Note Added: 0107869 | |
2022-04-12 00:59 | git | Note Added: 0107871 | |
2022-04-13 14:02 | git | Note Added: 0107911 | |
2022-04-13 14:04 | git | Note Added: 0107912 | |
2022-04-13 21:35 | git | Note Added: 0107931 | |
2022-04-13 22:12 | git | Note Added: 0107934 | |
2022-04-13 22:25 | git | Note Added: 0107935 | |
2022-04-13 23:01 | git | Note Added: 0107936 | |
2022-04-13 23:28 | git | Note Added: 0107937 | |
2022-04-13 23:50 | git | Note Added: 0107938 | |
2022-04-14 00:41 | git | Note Added: 0107939 | |
2022-04-14 01:01 | git | Note Added: 0107940 | |
2022-04-14 02:03 | git | Note Added: 0107941 | |
2022-04-14 02:14 | git | Note Added: 0107942 | |
2022-04-14 02:34 | git | Note Added: 0107943 | |
2022-04-14 02:42 | git | Note Added: 0107944 | |
2022-04-14 10:47 | git | Note Added: 0107945 | |
2022-04-14 12:14 | git | Note Added: 0107949 | |
2022-04-14 13:24 | git | Note Added: 0107952 | |
2022-04-14 14:33 | git | Note Added: 0107954 | |
2022-04-14 14:59 | git | Note Added: 0107955 | |
2022-04-14 15:21 | git | Note Added: 0107956 | |
2022-04-14 15:39 | git | Note Added: 0107957 | |
2022-04-14 16:10 | git | Note Added: 0107959 | |
2022-04-14 16:20 | git | Note Added: 0107960 | |
2022-04-14 16:25 | git | Note Added: 0107961 | |
2022-04-14 16:37 | git | Note Added: 0107962 | |
2022-04-14 16:39 | git | Note Added: 0107963 | |
2022-04-14 18:12 | git | Note Added: 0107964 | |
2022-04-14 18:19 | git | Note Added: 0107965 | |
2022-04-14 18:23 | git | Note Added: 0107966 | |
2022-04-14 18:32 | git | Note Added: 0107967 | |
2022-04-14 20:48 | git | Note Added: 0107970 | |
2022-04-14 22:42 | git | Note Added: 0107975 | |
2022-04-14 22:44 | git | Note Added: 0107977 | |
2022-04-14 22:50 | git | Note Added: 0107978 | |
2022-04-14 22:51 | kgv | Note Added: 0107980 | |
2022-04-14 22:51 | kgv | File Added: multiview6.png | |
2022-04-14 23:06 | git | Note Added: 0107981 | |
2022-04-14 23:44 | git | Note Added: 0107982 | |
2022-04-15 09:27 | git | Note Added: 0107984 | |
2022-04-15 09:34 | git | Note Added: 0107985 | |
2022-04-15 09:51 | git | Note Added: 0107986 | |
2022-04-15 11:16 | git | Note Added: 0107987 | |
2022-04-15 11:22 | kgv | Note Added: 0107989 | |
2022-04-15 11:22 | kgv | Assigned To | kgv => bugmaster |
2022-04-15 11:22 | kgv | Status | new => resolved |
2022-04-15 11:24 | kgv | Description Updated | |
2022-04-15 11:24 | kgv | Test case number | => opengl general multiview1 |
2022-04-15 11:24 | kgv | Status | resolved => reviewed |
2022-04-15 13:04 | kgv | Steps to Reproduce Updated | |
2022-04-16 11:35 |
|
Status | reviewed => tested |
2022-04-16 11:35 |
|
Note Added: 0108000 | |
2022-04-16 15:25 |
|
Changeset attached | => occt master 879768fb |
2022-04-16 15:25 | kgv | Assigned To | bugmaster => kgv |
2022-04-16 15:25 | kgv | Status | tested => verified |
2022-04-16 15:25 | kgv | Resolution | open => fixed |
2022-04-16 15:35 | git | Note Added: 0108004 | |
2022-04-16 15:35 | git | Note Added: 0108005 | |
2022-04-18 20:43 | kgv | Relationship added | parent of 0032935 |
2022-05-16 23:09 | kgv | Relationship added | parent of 0032975 |
2022-10-19 15:50 |
|
Assigned To | kgv => vpozdyayev |
2023-03-19 21:52 | vglukhik | Status | verified => closed |
2023-03-19 21:52 | vglukhik | Fixed in Version | => 7.6.3 |