Archived issue #0024776
Visualization - inherit OpenGl_View from Graphic3d_CView
Description
OpenGl_View is logically specialization of Visual3d_View, but stored as pointer in it (as Graphic3d_CView::ptrView in Visual3d_View::MyCView) by current design.
Steps to reproduce
Not applicable
Public activity
48 archived notes
Participants are labeled by their role within this record.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Fri Jul 31 19:32:00 2015 +0300
0024776: Visualization - inherit OpenGl_View from Visual3d_View
Temporary commit of raw development.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Fri Jul 31 19:32:00 2015 +0300
0024776: Visualization - inherit OpenGl_View from Visual3d_View
Temporary commit of raw development.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Fri Sep 4 18:03:25 2015 +0300
1) Delayed initialization of OpenGl_View resources
2) Clear interface of OpenGl_GraphicDriver
[revision removed]
Detailed log of new commits:
Author: apl
Date: Fri Sep 4 18:03:25 2015 +0300
1) Delayed initialization of OpenGl_View resources
2) Clear interface of OpenGl_GraphicDriver
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Mon Sep 7 17:31:09 2015 +0300
Port changes to V3d_view
Author: apl
Date: Mon Sep 7 14:54:11 2015 +0300
1) Keep min-max callback for graduated trihedron
2) Keep virtual modifier for methods of OpenGl_View
3) Compilation errors in TKOpenGl
Author: apl
Date: Mon Sep 7 14:53:00 2015 +0300
Use Graphic3d_StructureManager instead of redundant ViewManager
Author: apl
Date: Mon Sep 7 14:52:13 2015 +0300
Redesign D3DHost according to changes
[revision removed]
Detailed log of new commits:
Author: apl
Date: Mon Sep 7 17:31:09 2015 +0300
Port changes to V3d_view
Author: apl
Date: Mon Sep 7 14:54:11 2015 +0300
1) Keep min-max callback for graduated trihedron
2) Keep virtual modifier for methods of OpenGl_View
3) Compilation errors in TKOpenGl
Author: apl
Date: Mon Sep 7 14:53:00 2015 +0300
Use Graphic3d_StructureManager instead of redundant ViewManager
Author: apl
Date: Mon Sep 7 14:52:13 2015 +0300
Redesign D3DHost according to changes
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Tue Sep 8 13:05:35 2015 +0300
Elimination of visual3d package in solution
[revision removed]
Detailed log of new commits:
Author: apl
Date: Tue Sep 8 13:05:35 2015 +0300
Elimination of visual3d package in solution
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Tue Sep 8 20:30:22 2015 +0300
Preparing for compilation.
- Dropped obsolete InterfaceGraphic_Aspect.hxx
- Exported missing methods to v3d_view
- Port changes in higher packages
Author: apl
Date: Tue Sep 8 14:40:04 2015 +0300
Keep activation & deactivation logic of views
[revision removed]
Detailed log of new commits:
Author: apl
Date: Tue Sep 8 20:30:22 2015 +0300
Preparing for compilation.
- Dropped obsolete InterfaceGraphic_Aspect.hxx
- Exported missing methods to v3d_view
- Port changes in higher packages
Author: apl
Date: Tue Sep 8 14:40:04 2015 +0300
Keep activation & deactivation logic of views
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Wed Sep 9 13:17:50 2015 +0300
1) Debugging
2) Porting samples to the changes
[revision removed]
Detailed log of new commits:
Author: apl
Date: Wed Sep 9 13:17:50 2015 +0300
1) Debugging
2) Porting samples to the changes
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Wed Sep 9 13:31:54 2015 +0300
D3DHost compilation
[revision removed]
Detailed log of new commits:
Author: apl
Date: Wed Sep 9 13:31:54 2015 +0300
D3DHost compilation
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Wed Sep 9 19:37:01 2015 +0300
Keep mechanism of lazy auto z-fit
Author: apl
Date: Wed Sep 9 17:28:37 2015 +0300
Compile warnings on Linux
[revision removed]
Detailed log of new commits:
Author: apl
Date: Wed Sep 9 19:37:01 2015 +0300
Keep mechanism of lazy auto z-fit
Author: apl
Date: Wed Sep 9 17:28:37 2015 +0300
Compile warnings on Linux
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Thu Sep 10 12:02:28 2015 +0300
Update test case
Author: apl
Date: Thu Sep 10 12:02:04 2015 +0300
Set camera aspect after mapping a window
Author: apl
Date: Thu Sep 10 11:01:29 2015 +0300
Keep mechanism of lazy auto z-fit
[revision removed]
Detailed log of new commits:
Author: apl
Date: Thu Sep 10 12:02:28 2015 +0300
Update test case
Author: apl
Date: Thu Sep 10 12:02:04 2015 +0300
Set camera aspect after mapping a window
Author: apl
Date: Thu Sep 10 11:01:29 2015 +0300
Keep mechanism of lazy auto z-fit
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Thu Sep 10 12:02:28 2015 +0300
Update test case
Author: apl
Date: Thu Sep 10 12:04:09 2015 +0300
0024776: Visualization - inherit OpenGl_View from Visual3d_View
General notes:
Goals of the patch are exposing interface of OpenGl_View (OpenGL graphics rendering methods) to client code and collecting all high-level API methods of application views in v3d_view class.
1) Exposing interface of OpenGl_View:
The OpenGl_View inherits from new class Graphic3d_CView. Graphic3d_CView is an interface class that declares abstract methods for managing displayed structures, display properties and a base layer code that implements computation and management of HLR (or more broadly speaking view-depended) structures. In new implementation it takes place of eliminated Visual3d_View. As before the instance of Graphic3d_CView is still completely managed by V3d_View classes. It can be accessed through V3d_View interface but normally this should not be required as all its methods are completely wrapped. In more details, a concrete specialization of Graphic3d_CView is created and returned by graphical driver on request. Right after creation the views is directly used for setting rendering properties and adding graphical structures to be displayed. The rendering of graphics is possible after mapping a window and activating the view. The direct setting of properties makes obsolete usage of intermediate structures with display parameter like Visual3d_ContextView and etc (the whole package of Visual3d become redundant).
2) Collecting all high-level API methods of application views in V3d package:
The patch includes elimination of Visual3d layer. All of its methods that could be previously used by application are now exposed and should be accessed on the level of V3d entities.
List of changes:
1) Introduced new class Graphic3d_CView. This is a base class for render views. Made possible to specialize concrete instances of the class by graphical driver.
2) Moved all methods managing rendering views into interface of Graphic3d_CView. The corresponding methods were removed from interface of graphical driver.
3) Eliminated Visual3d package:
3.1) Logic of managing display of structures was put from Visual3d_ViewManager into Graphic3d_StructureManager.
3.2) Removed Visual3d_View class. Logic of managing computed structures was put into base layer of Graphi3d_CView.
3.3) Removed all intermediate structures for storing view parameters e.g. Visual3d_ContextView. All settings are kept by instances of Graphic3d_CView
3.4) Removed Visual3d_Light intermediate class. All light properties are still stored in Graphic3d_CLight structure. The structure is directly access by instance of V3d_Light classes.
3.5) Moved all needed enumerations into Graphic3d package.
4) Update package D3DHost to new changes.
5) Update code of OCCT samples to new changes.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Thu Sep 10 12:02:28 2015 +0300
Update test case
Author: apl
Date: Thu Sep 10 12:04:09 2015 +0300
0024776: Visualization - inherit OpenGl_View from Visual3d_View
General notes:
Goals of the patch are exposing interface of OpenGl_View (OpenGL graphics rendering methods) to client code and collecting all high-level API methods of application views in v3d_view class.
1) Exposing interface of OpenGl_View:
The OpenGl_View inherits from new class Graphic3d_CView. Graphic3d_CView is an interface class that declares abstract methods for managing displayed structures, display properties and a base layer code that implements computation and management of HLR (or more broadly speaking view-depended) structures. In new implementation it takes place of eliminated Visual3d_View. As before the instance of Graphic3d_CView is still completely managed by V3d_View classes. It can be accessed through V3d_View interface but normally this should not be required as all its methods are completely wrapped. In more details, a concrete specialization of Graphic3d_CView is created and returned by graphical driver on request. Right after creation the views is directly used for setting rendering properties and adding graphical structures to be displayed. The rendering of graphics is possible after mapping a window and activating the view. The direct setting of properties makes obsolete usage of intermediate structures with display parameter like Visual3d_ContextView and etc (the whole package of Visual3d become redundant).
2) Collecting all high-level API methods of application views in V3d package:
The patch includes elimination of Visual3d layer. All of its methods that could be previously used by application are now exposed and should be accessed on the level of V3d entities.
List of changes:
1) Introduced new class Graphic3d_CView. This is a base class for render views. Made possible to specialize concrete instances of the class by graphical driver.
2) Moved all methods managing rendering views into interface of Graphic3d_CView. The corresponding methods were removed from interface of graphical driver.
3) Eliminated Visual3d package:
3.1) Logic of managing display of structures was put from Visual3d_ViewManager into Graphic3d_StructureManager.
3.2) Removed Visual3d_View class. Logic of managing computed structures was put into base layer of Graphi3d_CView.
3.3) Removed all intermediate structures for storing view parameters e.g. Visual3d_ContextView. All settings are kept by instances of Graphic3d_CView
3.4) Removed Visual3d_Light intermediate class. All light properties are still stored in Graphic3d_CLight structure. The structure is directly access by instance of V3d_Light classes.
3.5) Moved all needed enumerations into Graphic3d package.
4) Update package D3DHost to new changes.
5) Update code of OCCT samples to new changes.
Dear Kirill,
Please review patch in branch CR24776_1.
Please review patch in branch CR24776_1.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Fri Sep 11 12:47:24 2015 +0300
0024776: Visualization - inherit OpenGl_View from Visual3d_View
General notes:
Goals of the patch are exposing interface of OpenGl_View (OpenGL graphics rendering methods) to client code and collecting all high-level API methods of application views in v3d_view class.
1) Exposing interface of OpenGl_View:
The OpenGl_View inherits from new class Graphic3d_CView. Graphic3d_CView is an interface class that declares abstract methods for managing displayed structures, display properties and a base layer code that implements computation and management of HLR (or more broadly speaking view-depended) structures. In new implementation it takes place of eliminated Visual3d_View. As before the instance of Graphic3d_CView is still completely managed by V3d_View classes. It can be accessed through V3d_View interface but normally this should not be required as all its methods are completely wrapped. In more details, a concrete specialization of Graphic3d_CView is created and returned by graphical driver on request. Right after creation the views is directly used for setting rendering properties and adding graphical structures to be displayed. The rendering of graphics is possible after mapping a window and activating the view. The direct setting of properties makes obsolete usage of intermediate structures with display parameter like Visual3d_ContextView and etc (the whole package of Visual3d become redundant).
2) Collecting all high-level API methods of application views in V3d package:
The patch includes elimination of Visual3d layer. All of its methods that could be previously used by application are now exposed and should be accessed on the level of V3d entities.
List of changes:
1) Introduced new class Graphic3d_CView. This is a base class for render views. Made possible to specialize concrete instances of the class by graphical driver.
2) Moved all methods managing rendering views into interface of Graphic3d_CView. The corresponding methods were removed from interface of graphical driver.
3) Eliminated Visual3d package:
3.1) Logic of managing display of structures was put from Visual3d_ViewManager into Graphic3d_StructureManager.
3.2) Removed Visual3d_View class. Logic of managing computed structures was put into base layer of Graphi3d_CView.
3.3) Removed all intermediate structures for storing view parameters e.g. Visual3d_ContextView. All settings are kept by instances of Graphic3d_CView
3.4) Removed Visual3d_Light intermediate class. All light properties are still stored in Graphic3d_CLight structure. The structure is directly access by instance of V3d_Light classes.
3.5) Moved all needed enumerations into Graphic3d package.
4) Update package D3DHost to new changes.
5) Update code of OCCT samples to new changes.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Fri Sep 11 12:47:24 2015 +0300
0024776: Visualization - inherit OpenGl_View from Visual3d_View
General notes:
Goals of the patch are exposing interface of OpenGl_View (OpenGL graphics rendering methods) to client code and collecting all high-level API methods of application views in v3d_view class.
1) Exposing interface of OpenGl_View:
The OpenGl_View inherits from new class Graphic3d_CView. Graphic3d_CView is an interface class that declares abstract methods for managing displayed structures, display properties and a base layer code that implements computation and management of HLR (or more broadly speaking view-depended) structures. In new implementation it takes place of eliminated Visual3d_View. As before the instance of Graphic3d_CView is still completely managed by V3d_View classes. It can be accessed through V3d_View interface but normally this should not be required as all its methods are completely wrapped. In more details, a concrete specialization of Graphic3d_CView is created and returned by graphical driver on request. Right after creation the views is directly used for setting rendering properties and adding graphical structures to be displayed. The rendering of graphics is possible after mapping a window and activating the view. The direct setting of properties makes obsolete usage of intermediate structures with display parameter like Visual3d_ContextView and etc (the whole package of Visual3d become redundant).
2) Collecting all high-level API methods of application views in V3d package:
The patch includes elimination of Visual3d layer. All of its methods that could be previously used by application are now exposed and should be accessed on the level of V3d entities.
List of changes:
1) Introduced new class Graphic3d_CView. This is a base class for render views. Made possible to specialize concrete instances of the class by graphical driver.
2) Moved all methods managing rendering views into interface of Graphic3d_CView. The corresponding methods were removed from interface of graphical driver.
3) Eliminated Visual3d package:
3.1) Logic of managing display of structures was put from Visual3d_ViewManager into Graphic3d_StructureManager.
3.2) Removed Visual3d_View class. Logic of managing computed structures was put into base layer of Graphi3d_CView.
3.3) Removed all intermediate structures for storing view parameters e.g. Visual3d_ContextView. All settings are kept by instances of Graphic3d_CView
3.4) Removed Visual3d_Light intermediate class. All light properties are still stored in Graphic3d_CLight structure. The structure is directly access by instance of V3d_Light classes.
3.5) Moved all needed enumerations into Graphic3d package.
4) Update package D3DHost to new changes.
5) Update code of OCCT samples to new changes.
Dear Kirill,
Remarks were squashed and pushed into CR24776_2 (you can find the history in CR24776_1).
Remarks were squashed and pushed into CR24776_2 (you can find the history in CR24776_1).
Please test the patch.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been rebased on the current master
Dear Commenter 1,
There are errors during building of branch CR24776_2.
More information could be found by the following links:
Linux:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-2-master/job/CR24776-2-master_build_occt_linux/1/parsed_console/
Windows:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-2-master/job/CR24776-2-master_build_occt_windows_64/1/parsed_console/
There are errors during building of branch CR24776_2.
More information could be found by the following links:
Linux:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-2-master/job/CR24776-2-master_build_occt_linux/1/parsed_console/
Windows:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-2-master/job/CR24776-2-master_build_occt_windows_64/1/parsed_console/
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Mon Sep 14 10:43:45 2015 +0300
Compilation errors & gcc warnings
[revision removed]
Detailed log of new commits:
Author: apl
Date: Mon Sep 14 10:43:45 2015 +0300
Compilation errors & gcc warnings
Please test corrected branch.
Dear apv,
Corrections were made in branch CR24776_2.
Corrections were made in branch CR24776_2.
Dear Commenter 1,
Branch CR24776_2 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]
Number of compiler warnings:
occt component:
Linux: 15 (15 on master)
Windows: 0 (0 on master)
products component:
Linux: 39 (39 on master)
Windows: 0 (0 on master)
There are problem with building on MacOS:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-2-master/job/CR24776-2-master_prepare_build_occt_MacOS/1/parsed_console/
Building of OCCT MFC-samples:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-2-master/job/CR24776-2-master_build_products_mfc_samples_windows/1/parsed_console/
Building of OCCT Qt-samples:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-2-master/job/CR24776-2-master_build_products_qt_samples_windows/1/parsed_console/
Regressions/Differences:
http://occt-tests/CR24776-2-master-occt-64/Debian70-64/summary.html
3rdparty export A1
bugs moddata_2 bug22572
bugs vis bug10781, bug11095, bug21091_3, bug26028
bugs xde bug23193, bug25405
v3d glsl phong_views
v3d mesh A5, A6, A7, A8, B1, B6, B7, B8
Testing cases:
Not needed
Testing on Linux:
Total MEMORY difference: 91901153 / 92534325 [-0.68%]
Total CPU difference: 18203.699999999233 / 17937.40999999909 [+1.48%]
Testing on Windows:
Total MEMORY difference: 57718667 / 57755969 [-0.06%]
Total CPU difference: 16814.708185899224 / 16848.029999499147 [-0.20%]
There are following differences in images found by testdiff.
http://occt-tests/CR24776-2-master-occt-64/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR24776-2-master-occt-64/Windows-64-VC10/diff-Windows-64-VC10.html
v3d materials bug24387_2
v3d materials bug24855
v3d raytrace bug24130
v3d raytrace textures
v3d raytrace refraction
v3d raytrace bug24819
v3d raytrace bug25201
demo samples penrose
bugs vis bug23747_2
bugs vis bug25671
bugs vis bug23747_1
Branch CR24776_2 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]
Number of compiler warnings:
occt component:
Linux: 15 (15 on master)
Windows: 0 (0 on master)
products component:
Linux: 39 (39 on master)
Windows: 0 (0 on master)
There are problem with building on MacOS:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-2-master/job/CR24776-2-master_prepare_build_occt_MacOS/1/parsed_console/
Building of OCCT MFC-samples:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-2-master/job/CR24776-2-master_build_products_mfc_samples_windows/1/parsed_console/
Building of OCCT Qt-samples:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-2-master/job/CR24776-2-master_build_products_qt_samples_windows/1/parsed_console/
Regressions/Differences:
http://occt-tests/CR24776-2-master-occt-64/Debian70-64/summary.html
3rdparty export A1
bugs moddata_2 bug22572
bugs vis bug10781, bug11095, bug21091_3, bug26028
bugs xde bug23193, bug25405
v3d glsl phong_views
v3d mesh A5, A6, A7, A8, B1, B6, B7, B8
Testing cases:
Not needed
Testing on Linux:
Total MEMORY difference: 91901153 / 92534325 [-0.68%]
Total CPU difference: 18203.699999999233 / 17937.40999999909 [+1.48%]
Testing on Windows:
Total MEMORY difference: 57718667 / 57755969 [-0.06%]
Total CPU difference: 16814.708185899224 / 16848.029999499147 [-0.20%]
There are following differences in images found by testdiff.
http://occt-tests/CR24776-2-master-occt-64/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR24776-2-master-occt-64/Windows-64-VC10/diff-Windows-64-VC10.html
v3d materials bug24387_2
v3d materials bug24855
v3d raytrace bug24130
v3d raytrace textures
v3d raytrace refraction
v3d raytrace bug24819
v3d raytrace bug25201
demo samples penrose
bugs vis bug23747_2
bugs vis bug25671
bugs vis bug23747_1
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Wed Sep 16 15:01:20 2015 +0300
Fix regressions in test cases.
1) Fix references between Graphic3d_CView and Graphic3d_StructureManager for in-time destruction.
2) Minimize camera state invalidation when setting the same parameters (AutoZFit is called frequently with same values).
3) Fix problem with initialization of environment texture.
4) Fix problem of update projection/orientation matrices in shadermanager when switching active views.
5) Fix problem of normalization of light source direction.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Wed Sep 16 15:01:20 2015 +0300
Fix regressions in test cases.
1) Fix references between Graphic3d_CView and Graphic3d_StructureManager for in-time destruction.
2) Minimize camera state invalidation when setting the same parameters (AutoZFit is called frequently with same values).
3) Fix problem with initialization of environment texture.
4) Fix problem of update projection/orientation matrices in shadermanager when switching active views.
5) Fix problem of normalization of light source direction.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Wed Sep 16 17:12:22 2015 +0300
0024776: Visualization - inherit OpenGl_View from Visual3d_View
General notes:
Goals of the patch are exposing interface of OpenGl_View (OpenGL graphics rendering methods) to client code and collecting all high-level API methods of application views in v3d_view class.
1) Exposing interface of OpenGl_View:
The OpenGl_View inherits from new class Graphic3d_CView. Graphic3d_CView is an interface class that declares abstract methods for managing displayed structures, display properties and a base layer code that implements computation and management of HLR (or more broadly speaking view-depended) structures. In new implementation it takes place of eliminated Visual3d_View. As before the instance of Graphic3d_CView is still completely managed by V3d_View classes. It can be accessed through V3d_View interface but normally this should not be required as all its methods are completely wrapped. In more details, a concrete specialization of Graphic3d_CView is created and returned by graphical driver on request. Right after creation the views is directly used for setting rendering properties and adding graphical structures to be displayed. The rendering of graphics is possible after mapping a window and activating the view. The direct setting of properties makes obsolete usage of intermediate structures with display parameter like Visual3d_ContextView and etc (the whole package of Visual3d become redundant).
2) Collecting all high-level API methods of application views in V3d package:
The patch includes elimination of Visual3d layer. All of its methods that could be previously used by application are now exposed and should be accessed on the level of V3d entities.
List of changes:
1) Introduced new class Graphic3d_CView. This is a base class for render views. Made possible to specialize concrete instances of the class by graphical driver.
2) Moved all methods managing rendering views into interface of Graphic3d_CView. The corresponding methods were removed from interface of graphical driver.
3) Eliminated Visual3d package:
3.1) Logic of managing display of structures was put from Visual3d_ViewManager into Graphic3d_StructureManager.
3.2) Removed Visual3d_View class. Logic of managing computed structures was put into base layer of Graphi3d_CView.
3.3) Removed all intermediate structures for storing view parameters e.g. Visual3d_ContextView. All settings are kept by instances of Graphic3d_CView
3.4) Removed Visual3d_Light intermediate class. All light properties are still stored in Graphic3d_CLight structure. The structure is directly access by instance of V3d_Light classes.
3.5) Moved all needed enumerations into Graphic3d package.
4) Update package D3DHost to new changes.
5) Update code of OCCT samples to new changes.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Wed Sep 16 17:12:22 2015 +0300
0024776: Visualization - inherit OpenGl_View from Visual3d_View
General notes:
Goals of the patch are exposing interface of OpenGl_View (OpenGL graphics rendering methods) to client code and collecting all high-level API methods of application views in v3d_view class.
1) Exposing interface of OpenGl_View:
The OpenGl_View inherits from new class Graphic3d_CView. Graphic3d_CView is an interface class that declares abstract methods for managing displayed structures, display properties and a base layer code that implements computation and management of HLR (or more broadly speaking view-depended) structures. In new implementation it takes place of eliminated Visual3d_View. As before the instance of Graphic3d_CView is still completely managed by V3d_View classes. It can be accessed through V3d_View interface but normally this should not be required as all its methods are completely wrapped. In more details, a concrete specialization of Graphic3d_CView is created and returned by graphical driver on request. Right after creation the views is directly used for setting rendering properties and adding graphical structures to be displayed. The rendering of graphics is possible after mapping a window and activating the view. The direct setting of properties makes obsolete usage of intermediate structures with display parameter like Visual3d_ContextView and etc (the whole package of Visual3d become redundant).
2) Collecting all high-level API methods of application views in V3d package:
The patch includes elimination of Visual3d layer. All of its methods that could be previously used by application are now exposed and should be accessed on the level of V3d entities.
List of changes:
1) Introduced new class Graphic3d_CView. This is a base class for render views. Made possible to specialize concrete instances of the class by graphical driver.
2) Moved all methods managing rendering views into interface of Graphic3d_CView. The corresponding methods were removed from interface of graphical driver.
3) Eliminated Visual3d package:
3.1) Logic of managing display of structures was put from Visual3d_ViewManager into Graphic3d_StructureManager.
3.2) Removed Visual3d_View class. Logic of managing computed structures was put into base layer of Graphi3d_CView.
3.3) Removed all intermediate structures for storing view parameters e.g. Visual3d_ContextView. All settings are kept by instances of Graphic3d_CView
3.4) Removed Visual3d_Light intermediate class. All light properties are still stored in Graphic3d_CLight structure. The structure is directly access by instance of V3d_Light classes.
3.5) Moved all needed enumerations into Graphic3d package.
4) Update package D3DHost to new changes.
5) Update code of OCCT samples to new changes.
Dear apv,
Corrections were pushed into branch CR24776_3.
Update for product samples is in branch CR24776 of products repository.
Please test.
Corrections were pushed into branch CR24776_3.
Update for product samples is in branch CR24776 of products repository.
Please test.
Dear Commenter 1,
Branch CR24776_3 from occt git-repository and CR24776 from products git-repository was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]
[revision removed]
Number of compiler warnings:
occt component:
Linux: 15 (15 on master)
Windows: 0 (0 on master)
products component:
Linux: 39 (39 on master)
Windows: 0 (0 on master)
There are problem with building on MacOS:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-3-CR24776/job/CR24776-3-CR24776_prepare_build_occt_MacOS/1/parsed_console/
Regressions/Differences:
http://occt-tests/CR24776-3-CR24776-occt-64/Debian70-64/summary.html
v3d glsl phong_views
Testing cases:
Not needed
Testing on Linux:
occt component:
Total MEMORY difference: 91890887 / 92767130 [-0.94%]
Total CPU difference: 17957.60999999901 / 17945.999999999087 [+0.06%]
products component:
Total MEMORY difference: 25895293 / 25884840 [+0.04%]
Total CPU difference: 7565.419999999962 / 7187.509999999996 [+5.26%]
Testing on Windows:
occt component:
Total MEMORY difference: 57721886 / 57755969 [-0.06%]
Total CPU difference: 16644.745096398925 / 16848.029999499147 [-1.21%]
products component:
Total MEMORY difference: 16770361 / 16782651 [-0.07%]
Total CPU difference: 5485.229161499974 / 5565.444875699965 [-1.44%]
There are following differences in images found by testdiff.
http://occt-tests/CR24776-3-CR24776-occt-64/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR24776-3-CR24776-occt-64/Windows-64-VC10/diff-Windows-64-VC10.html
bugs vis bug25671
Branch CR24776_3 from occt git-repository and CR24776 from products git-repository was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]
[revision removed]
Number of compiler warnings:
occt component:
Linux: 15 (15 on master)
Windows: 0 (0 on master)
products component:
Linux: 39 (39 on master)
Windows: 0 (0 on master)
There are problem with building on MacOS:
http://jenkins-test-02.nnov.opencascade.com/view/CR24776-3-CR24776/job/CR24776-3-CR24776_prepare_build_occt_MacOS/1/parsed_console/
Regressions/Differences:
http://occt-tests/CR24776-3-CR24776-occt-64/Debian70-64/summary.html
v3d glsl phong_views
Testing cases:
Not needed
Testing on Linux:
occt component:
Total MEMORY difference: 91890887 / 92767130 [-0.94%]
Total CPU difference: 17957.60999999901 / 17945.999999999087 [+0.06%]
products component:
Total MEMORY difference: 25895293 / 25884840 [+0.04%]
Total CPU difference: 7565.419999999962 / 7187.509999999996 [+5.26%]
Testing on Windows:
occt component:
Total MEMORY difference: 57721886 / 57755969 [-0.06%]
Total CPU difference: 16644.745096398925 / 16848.029999499147 [-1.21%]
products component:
Total MEMORY difference: 16770361 / 16782651 [-0.07%]
Total CPU difference: 5485.229161499974 / 5565.444875699965 [-1.44%]
There are following differences in images found by testdiff.
http://occt-tests/CR24776-3-CR24776-occt-64/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR24776-3-CR24776-occt-64/Windows-64-VC10/diff-Windows-64-VC10.html
bugs vis bug25671
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Thu Sep 17 16:39:55 2015 +0300
MacOS compilation
[revision removed]
Detailed log of new commits:
Author: apl
Date: Thu Sep 17 16:39:55 2015 +0300
MacOS compilation
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Thu Sep 17 19:40:28 2015 +0300
Fix release of resources and remove of V3d_View;
Fix management of context by shared shader manager.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Thu Sep 17 19:40:28 2015 +0300
Fix release of resources and remove of V3d_View;
Fix management of context by shared shader manager.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Thu Sep 17 20:12:24 2015 +0300
0024776: Visualization - inherit OpenGl_View from Visual3d_View
General notes:
Goals of the patch are exposing interface of OpenGl_View (OpenGL graphics rendering methods) to client code and collecting all high-level API methods of application views in v3d_view class.
1) Exposing interface of OpenGl_View:
The OpenGl_View inherits from new class Graphic3d_CView. Graphic3d_CView is an interface class that declares abstract methods for managing displayed structures, display properties and a base layer code that implements computation and management of HLR (or more broadly speaking view-depended) structures. In new implementation it takes place of eliminated Visual3d_View. As before the instance of Graphic3d_CView is still completely managed by V3d_View classes. It can be accessed through V3d_View interface but normally this should not be required as all its methods are completely wrapped. In more details, a concrete specialization of Graphic3d_CView is created and returned by graphical driver on request. Right after creation the views is directly used for setting rendering properties and adding graphical structures to be displayed. The rendering of graphics is possible after mapping a window and activating the view. The direct setting of properties makes obsolete usage of intermediate structures with display parameter like Visual3d_ContextView and etc (the whole package of Visual3d become redundant).
2) Collecting all high-level API methods of application views in V3d package:
The patch includes elimination of Visual3d layer. All of its methods that could be previously used by application are now exposed and should be accessed on the level of V3d entities.
List of changes:
1) Introduced new class Graphic3d_CView. This is a base class for render views. Made possible to specialize concrete instances of the class by graphical driver.
2) Moved all methods managing rendering views into interface of Graphic3d_CView. The corresponding methods were removed from interface of graphical driver.
3) Eliminated Visual3d package:
3.1) Logic of managing display of structures was put from Visual3d_ViewManager into Graphic3d_StructureManager.
3.2) Removed Visual3d_View class. Logic of managing computed structures was put into base layer of Graphi3d_CView.
3.3) Removed all intermediate structures for storing view parameters e.g. Visual3d_ContextView. All settings are kept by instances of Graphic3d_CView
3.4) Removed Visual3d_Light intermediate class. All light properties are still stored in Graphic3d_CLight structure. The structure is directly access by instance of V3d_Light classes.
3.5) Moved all needed enumerations into Graphic3d package.
4) Update package D3DHost to new changes.
5) Update code of OCCT samples to new changes.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Thu Sep 17 20:12:24 2015 +0300
0024776: Visualization - inherit OpenGl_View from Visual3d_View
General notes:
Goals of the patch are exposing interface of OpenGl_View (OpenGL graphics rendering methods) to client code and collecting all high-level API methods of application views in v3d_view class.
1) Exposing interface of OpenGl_View:
The OpenGl_View inherits from new class Graphic3d_CView. Graphic3d_CView is an interface class that declares abstract methods for managing displayed structures, display properties and a base layer code that implements computation and management of HLR (or more broadly speaking view-depended) structures. In new implementation it takes place of eliminated Visual3d_View. As before the instance of Graphic3d_CView is still completely managed by V3d_View classes. It can be accessed through V3d_View interface but normally this should not be required as all its methods are completely wrapped. In more details, a concrete specialization of Graphic3d_CView is created and returned by graphical driver on request. Right after creation the views is directly used for setting rendering properties and adding graphical structures to be displayed. The rendering of graphics is possible after mapping a window and activating the view. The direct setting of properties makes obsolete usage of intermediate structures with display parameter like Visual3d_ContextView and etc (the whole package of Visual3d become redundant).
2) Collecting all high-level API methods of application views in V3d package:
The patch includes elimination of Visual3d layer. All of its methods that could be previously used by application are now exposed and should be accessed on the level of V3d entities.
List of changes:
1) Introduced new class Graphic3d_CView. This is a base class for render views. Made possible to specialize concrete instances of the class by graphical driver.
2) Moved all methods managing rendering views into interface of Graphic3d_CView. The corresponding methods were removed from interface of graphical driver.
3) Eliminated Visual3d package:
3.1) Logic of managing display of structures was put from Visual3d_ViewManager into Graphic3d_StructureManager.
3.2) Removed Visual3d_View class. Logic of managing computed structures was put into base layer of Graphi3d_CView.
3.3) Removed all intermediate structures for storing view parameters e.g. Visual3d_ContextView. All settings are kept by instances of Graphic3d_CView
3.4) Removed Visual3d_Light intermediate class. All light properties are still stored in Graphic3d_CLight structure. The structure is directly access by instance of V3d_Light classes.
3.5) Moved all needed enumerations into Graphic3d package.
4) Update package D3DHost to new changes.
5) Update code of OCCT samples to new changes.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Dear Commenter 1,
The regression in v3d glsl phong_views was fixed.
The changes in bugs vis bug25671 are OK.
Also, MacOS compilation errors were taken into account and pushed in CR24776_4.
The branch CR24776_4 is based on current IR.
Could you please test it?
The regression in v3d glsl phong_views was fixed.
The changes in bugs vis bug25671 are OK.
Also, MacOS compilation errors were taken into account and pushed in CR24776_4.
The branch CR24776_4 is based on current IR.
Could you please test it?
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branches CR24776_4 (occt git-repository) and CR24776 (products git-repository) have been rebased on the current master.
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Fri Sep 18 16:59:39 2015 +0300
MacOS compilation - missing definition of OpenGl_Window::SetSwapInterval()
[revision removed]
Detailed log of new commits:
Author: apl
Date: Fri Sep 18 16:59:39 2015 +0300
MacOS compilation - missing definition of OpenGl_Window::SetSwapInterval()
Dear Commenter 1,
Once again the compilation for MacOS failed. This time there is an undefined method as reported in log. I committed a fix for it into CR24776_4. Please check it after running tests (if there will be no new regressions).
Once again the compilation for MacOS failed. This time there is an undefined method as reported in log. I committed a fix for it into CR24776_4. Please check it after running tests (if there will be no new regressions).
Branch [archived branch] has been updated by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Sat Sep 19 16:41:04 2015 +0300
0026711: Visualization, TKOpenGl - support creation of multisampling off-screen FBOs
[revision removed]
Detailed log of new commits:
Author: Author
Date: Sat Sep 19 16:41:04 2015 +0300
0026711: Visualization, TKOpenGl - support creation of multisampling off-screen FBOs
Branch [archived branch] has been updated forcibly by Author.
[revision removed]
[revision removed]
Branch [archived branch] has been updated by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Sat Sep 19 17:28:53 2015 +0300
Add missing exports for TKD3DHost
[revision removed]
Detailed log of new commits:
Author: Author
Date: Sat Sep 19 17:28:53 2015 +0300
Add missing exports for TKD3DHost
Dear Commenter 1,
Branch CR24776_4 from occt git-repository and CR24776 from products git-repository was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]
[revision removed]
Number of compiler warnings:
occt component:
Linux: 15 (15 on master)
Windows: 0 (0 on master)
products component:
Linux: 39 (39 on master)
Windows: 0 (0 on master)
Regressions/Differences:
Not detected
Testing cases:
Not needed
Testing on Linux:
occt component:
Total MEMORY difference: 91948408 / 92158942 [-0.23%]
Total CPU difference: 18897.809999998866 / 18924.789999998986 [-0.14%]
products component:
Total MEMORY difference: 25953169 / 25980951 [-0.11%]
Total CPU difference: 7106.410000000006 / 7208.589999999996 [-1.42%]
Testing on Windows:
occt component:
Total MEMORY difference: 56789808 / 56825790 [-0.06%]
Total CPU difference: 17163.776023499246 / 16810.58975949913 [+2.10%]
products component:
Total MEMORY difference: 16771704 / 16784150 [-0.07%]
Total CPU difference: 5509.17531499995 / 5525.21221779996 [-0.29%]
Branch CR24776_4 from occt git-repository and CR24776 from products git-repository was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]
[revision removed]
Number of compiler warnings:
occt component:
Linux: 15 (15 on master)
Windows: 0 (0 on master)
products component:
Linux: 39 (39 on master)
Windows: 0 (0 on master)
Regressions/Differences:
Not detected
Testing cases:
Not needed
Testing on Linux:
occt component:
Total MEMORY difference: 91948408 / 92158942 [-0.23%]
Total CPU difference: 18897.809999998866 / 18924.789999998986 [-0.14%]
products component:
Total MEMORY difference: 25953169 / 25980951 [-0.11%]
Total CPU difference: 7106.410000000006 / 7208.589999999996 [-1.42%]
Testing on Windows:
occt component:
Total MEMORY difference: 56789808 / 56825790 [-0.06%]
Total CPU difference: 17163.776023499246 / 16810.58975949913 [+2.10%]
products component:
Total MEMORY difference: 16771704 / 16784150 [-0.07%]
Total CPU difference: 5509.17531499995 / 5525.21221779996 [-0.29%]
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Tue Sep 22 11:49:33 2015 +0300
0024776: Visualization - inherit OpenGl_View from Graphic3d_CView
Expose interface of OpenGl_View (OpenGL graphics rendering methods) to client code
and collecting all high-level API methods of application views in V3d_View class.
1) Exposing interface of OpenGl_View:
The OpenGl_View inherits from new class Graphic3d_CView.
Graphic3d_CView is an interface class that declares abstract methods for managing displayed structures,
display properties and a base layer code that implements computation
and management of HLR (or more broadly speaking view-depended) structures.
In new implementation it takes place of eliminated Visual3d_View.
As before the instance of Graphic3d_CView is still completely managed by V3d_View classes.
It can be accessed through V3d_View interface but normally this should not be required as all its methods are completely wrapped.
In more details, a concrete specialization of Graphic3d_CView is created and returned by graphical driver on request.
Right after creation the views is directly used for setting rendering properties and adding graphical structures to be displayed.
The rendering of graphics is possible after mapping a window and activating the view.
The direct setting of properties makes obsolete usage of intermediate structures with display parameter
like Visual3d_ContextView and etc (the whole package of Visual3d become redundant).
2) Collecting all high-level API methods of application views in V3d package:
The patch includes elimination of Visual3d layer.
All of its methods that could be previously used by application are now exposed and should be accessed on the level of V3d entities.
- Introduced new class Graphic3d_CView.
This is a base class for render views.
Made possible to specialize concrete instances of the class by graphical driver.
- Moved all methods managing rendering views into interface of Graphic3d_CView.
The corresponding methods were removed from interface of graphical driver.
3) Eliminated Visual3d package:
- Logic of managing display of structures was put from Visual3d_ViewManager into Graphic3d_StructureManager.
- Removed Visual3d_View class. Logic of managing computed structures was put into base layer of Graphi3d_CView.
- Removed all intermediate structures for storing view parameters e.g. Visual3d_ContextView.
All settings are kept by instances of Graphic3d_CView
- Removed Visual3d_Light intermediate class.
All light properties are still stored in Graphic3d_CLight structure.
The structure is directly access by instance of V3d_Light classes.
- Moved all needed enumerations into Graphic3d package.
4) Update package D3DHost to new changes.
5) Update code of OCCT samples to new changes.
[revision removed]
Detailed log of new commits:
Author: apl
Date: Tue Sep 22 11:49:33 2015 +0300
0024776: Visualization - inherit OpenGl_View from Graphic3d_CView
Expose interface of OpenGl_View (OpenGL graphics rendering methods) to client code
and collecting all high-level API methods of application views in V3d_View class.
1) Exposing interface of OpenGl_View:
The OpenGl_View inherits from new class Graphic3d_CView.
Graphic3d_CView is an interface class that declares abstract methods for managing displayed structures,
display properties and a base layer code that implements computation
and management of HLR (or more broadly speaking view-depended) structures.
In new implementation it takes place of eliminated Visual3d_View.
As before the instance of Graphic3d_CView is still completely managed by V3d_View classes.
It can be accessed through V3d_View interface but normally this should not be required as all its methods are completely wrapped.
In more details, a concrete specialization of Graphic3d_CView is created and returned by graphical driver on request.
Right after creation the views is directly used for setting rendering properties and adding graphical structures to be displayed.
The rendering of graphics is possible after mapping a window and activating the view.
The direct setting of properties makes obsolete usage of intermediate structures with display parameter
like Visual3d_ContextView and etc (the whole package of Visual3d become redundant).
2) Collecting all high-level API methods of application views in V3d package:
The patch includes elimination of Visual3d layer.
All of its methods that could be previously used by application are now exposed and should be accessed on the level of V3d entities.
- Introduced new class Graphic3d_CView.
This is a base class for render views.
Made possible to specialize concrete instances of the class by graphical driver.
- Moved all methods managing rendering views into interface of Graphic3d_CView.
The corresponding methods were removed from interface of graphical driver.
3) Eliminated Visual3d package:
- Logic of managing display of structures was put from Visual3d_ViewManager into Graphic3d_StructureManager.
- Removed Visual3d_View class. Logic of managing computed structures was put into base layer of Graphi3d_CView.
- Removed all intermediate structures for storing view parameters e.g. Visual3d_ContextView.
All settings are kept by instances of Graphic3d_CView
- Removed Visual3d_Light intermediate class.
All light properties are still stored in Graphic3d_CLight structure.
The structure is directly access by instance of V3d_Light classes.
- Moved all needed enumerations into Graphic3d package.
4) Update package D3DHost to new changes.
5) Update code of OCCT samples to new changes.
Branch CR24776_5 contains the same patch prepared for integration - retesting is not needed.
Branch [archived branch] has been deleted by Author.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Author.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Author.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Author.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Author.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Author.
[revision removed]
[revision removed]
Related records
- #0024704 · related to · closedVisualization - inherit OpenGl_Structure from Graphic3d_CStructure
- #0026792 · parent of · closedVisualization, Graphic3d - Z-fit support for transform persistence is missing after removing Visual3d_View
- #0026807 · parent of · closedDocumentation - describe dropping of Visual3d and UserDraw within porting notes
- #0028664 · parent of · closedDocumentation of Graphic3d_CView::Activate and Deactivate does not seem to be correct
- #0029393 · parent of · closedSamples - AndroidQt sample build fail
- #0025147 · related to · closedVisualization, TKOpenGl - support EGL as alternative to GLX
- #0026298 · related to · closedVisualization, OpenGl_Text - make font resolution configurable
- #0026734 · related to · closedVisualization, TKOpenGl - drop outdated UserDraw interfaces
- #0026862 · related to · closedConfiguration - avoid usage of 3rd-party headers within OpenGl_View and D3DHost_View
- #0026915 · related to · closedVisualization - return Handle from Graphic3d_CView::FBOCreate() instead of a pointer
- #0027031 · related to · closedSamples - fix compilation issues in java/jniviewer sample
- #0023117 · child of · closedTKV3d and TKOpenGl code clean-up
- #0025094 · child of · closedVisualization, Visual3d_View - code clean up