View Issue Details

IDProjectCategoryView StatusLast Update
0024894Open CASCADEOCCT:Visualizationpublic2014-11-11 12:52
ReporterosaAssigned Tobugmaster  
PrioritynormalSeverityintegration request 
Status closedResolutionfixed 
Product Version6.7.0 
Target Version6.8.0Fixed in Version6.8.0 
Summary0024894: TKOpenGl - refactor OpenGl_FrameBuffer and OpenGl_Texture classes.
DescriptionThe OpenGl_FrameBuffer class should be extended by depth-stencil texture. The RenderBuffer objects will be removed and two textures (color and depth-stencil) will be bound to common frame buffer object. The OpenGl_Texture class will be used for implementation of these textures.
OpenGl_Texture class should be extended by more low-level method Init().
TagsNo tags attached.
Test case numberNot needed

Relationships

related to 0024699 closedbugmaster Visualization - prototype interoperation of TKOpenGl viewer with Direct3D viewer 
related to 0024928 closedapn Visualization - FSAA is not working in ray-tracing mode 
child of 0024819 closedapn TKOpenGl - extend the ray-tracing core by visualization of lines, text and point sprites. 

Activities

osa

2014-05-03 21:16

developer   ~0029184

Dear kgv,

the patch is ready (branch CR24894). Please review.

kgv

2014-05-05 08:33

developer   ~0029186

Dear Olga,

   glEnable (GL_TEXTURE_2D);
-  glBindTexture (GL_TEXTURE_2D, myGlTextureId);
..
+  glDisable (GL_TEXTURE_2D);
   UnbindBuffer  (theGlContext);

Please remove this GL_TEXTURE_2D enable/disable staff as redundant.

+  myColorTexture->Release (theGlCtx);
+  myDepthStencilTexture->Release (theGlCtx);
+  if (isValidFrameBuffer())

It would be more consistent to release FBO before textures.

-  //! Bind the texture.
-  Standard_EXPORT void BindTexture (const Handle(OpenGl_Context)& theGlCtx);
+  //! Bind the color texture.
+  Standard_EXPORT void BindColorTexture (const Handle(OpenGl_Context)& theGlCtx,
+                                         const GLenum theTextureUnit = GL_TEXTURE0);
+
+  //! Bind the depth-stencil texture.
+  Standard_EXPORT void BindDepthStencilTexture (const Handle(OpenGl_Context)& theGlCtx,
+                                                const GLenum theTextureUnit = GL_TEXTURE0);

These methods are redundant now since OpenGl_Texture is used. Please provide accessors for myColorTexture and myDepthStencilTexture instead.

 private:
 
-  GLsizei mySizeX;         //!< texture width
-  GLsizei mySizeY;         //!< texture height

Please make these protected.

+  if (!Create (theCtx))
+  {
+    return false;
+  }

It would be better to Release() uninitialized texture (within all failures in OpenGl_Texture::Init()).

,
+                             const Image_PixMap&           theImage = Image_PixMap());

Probably const Image_PixMap* would be better in this context...

osa

2014-05-05 14:24

developer   ~0029192

Dear Kirill,

the patch is updated (branch CR24894). Please review again.

kgv

2014-05-05 16:15

developer   ~0029195

Please test the patch.

mkv

2014-05-07 17:45

tester   ~0029233

Dear BugMaster,

Branch CR24894 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
SHA-1: 9d30a780d02cb1916e4bcd28aa0c4688a1679c62

Number of compiler warnings:

occt component :
Linux: 18 (18 on master)
Windows: 0 (0 on master)

products component :
Linux: 12 (12 on master)
Windows: 2 (2 on master)

Regressions/Differences:
No regressions/differences

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 356051036 / 355561056
Total CPU difference: 51144.94999999981 / 53337.799999999814

Testing on Windows:
Total MEMORY difference: 379653484 / 379857772
Total CPU difference: 33358.6875 / 36615.515625

There are no differences in images found by testdiff.

Related Changesets

occt: master 18f4e8e2

2014-05-05 12:10:00

osa


Committer: bugmaster Details Diff
0024894: TKOpenGl - refactor OpenGl_FrameBuffer and OpenGl_Texture classes. Affected Issues
0024894
mod - src/OpenGl/OpenGl_FrameBuffer.cxx Diff File
mod - src/OpenGl/OpenGl_FrameBuffer.hxx Diff File
mod - src/OpenGl/OpenGl_Texture.cxx Diff File
mod - src/OpenGl/OpenGl_Texture.hxx Diff File
mod - src/OpenGl/OpenGl_Workspace_Raytrace.cxx Diff File

Issue History

Date Modified Username Field Change
2014-05-03 11:37 osa New Issue
2014-05-03 11:37 osa Assigned To => san
2014-05-03 11:37 osa Assigned To san => osa
2014-05-03 11:38 osa Status new => assigned
2014-05-03 21:16 osa Note Added: 0029184
2014-05-03 21:17 osa Assigned To osa => kgv
2014-05-03 21:17 osa Status assigned => resolved
2014-05-05 08:33 kgv Note Added: 0029186
2014-05-05 08:33 kgv Assigned To kgv => osa
2014-05-05 08:33 kgv Status resolved => assigned
2014-05-05 08:34 kgv Relationship added related to 0024819
2014-05-05 14:24 osa Note Added: 0029192
2014-05-05 14:25 osa Assigned To osa => kgv
2014-05-05 14:25 osa Status assigned => resolved
2014-05-05 16:15 kgv Note Added: 0029195
2014-05-05 16:15 kgv Assigned To kgv => bugmaster
2014-05-05 16:15 kgv Severity minor => integration request
2014-05-05 16:15 kgv Status resolved => reviewed
2014-05-05 16:15 kgv Target Version => 6.8.0
2014-05-05 16:16 kgv Relationship added related to 0024699
2014-05-05 17:14 mkv Assigned To bugmaster => mkv
2014-05-07 17:45 mkv Note Added: 0029233
2014-05-07 17:46 mkv Test case number => Not needed
2014-05-07 17:46 mkv Assigned To mkv => bugmaster
2014-05-07 17:46 mkv Status reviewed => tested
2014-05-12 16:20 bugmaster Changeset attached => occt master 18f4e8e2
2014-05-12 16:20 bugmaster Status tested => verified
2014-05-12 16:20 bugmaster Resolution open => fixed
2014-05-15 10:51 kgv Relationship added related to 0024928
2014-06-17 19:02 kgv Relationship replaced child of 0024819
2014-11-11 12:46 aiv Fixed in Version => 6.8.0
2014-11-11 12:52 aiv Status verified => closed