View Issue Details

IDProjectCategoryView StatusLast Update
0030807Open CASCADEOCCT:Visualizationpublic2020-05-27 23:25
Reporteriko Assigned Toapn  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Target Version7.4.0Fixed in Version7.4.0 
Summary0030807: Visualization, TKOpenGl - supporting cubemaps
DescriptionIt is desired to support cubemaps on OCCT textures system and to use it as background for viewers.
Steps To Reproducev3d/glsl/cubemap
TagsNo tags attached.
Test case numberv3d/glsl/cubemap

Relationships

related to 0030700 closedapn Open CASCADE Visualization, TKOpenGl - support PBR Metallic-Roughness shading model 
parent of 0031129 newvpozdyayev Open CASCADE Visualization - revise background / environment API 
parent of 0031478 closedbugmaster Open CASCADE Visualization, TKOpenGl - allow uploading Cubemap in compressed DDS format when supported by GPU 
parent of 0031580 closedbugmaster Open CASCADE Visualization, TKOpenGl - cubemap initialization error on OpenGL ES 2.0 
parent of 0031584 newvpozdyayev Open CASCADE Visualization, TKOpenGl - support cubemap Ambient lighting within Graphic3d_TOSM_FRAGMENT shading 
related to 0030833 closedbugmaster Open CASCADE Visualization - Graphic3d_Camera constructor's exceptions 
Not all the children of this issue are yet resolved or closed.

Activities

git

2019-07-09 17:33

administrator   ~0085525

Branch CR30807 has been created by iko.

SHA-1: b94af996b76d7022b9d36733522c087701817af8


Detailed log of new commits:

Author: iko
Date: Tue Jul 9 16:55:49 2019 +0300

    0030807: Visualization, TKOpenGl - supporting cubemaps
    
    A cubemap texture initialization has been implemented.
    Setting environment cubemap as interactive background is posssible now.

git

2019-07-10 13:45

administrator   ~0085556

Branch CR30807 has been updated forcibly by iko.

SHA-1: c8354a76125ba3ee8a8d634a0ecaa76ffdb7d696

git

2019-07-10 14:09

administrator   ~0085557

Branch CR30807 has been updated forcibly by iko.

SHA-1: 4ea89cc2535eed974236d91d2b3a2db9f5ce1613

git

2019-07-11 09:04

administrator   ~0085580

Branch CR30807 has been updated forcibly by iko.

SHA-1: e3425db7c7f7407c4831e34c1872f7e2a062e4e1

git

2019-07-14 12:27

administrator   ~0085625

Branch CR30807 has been updated forcibly by apn.

SHA-1: 359de1d42d9c6b42aace1394fc13b04168ca6386

git

2019-07-15 15:02

administrator   ~0085634

Branch CR30807 has been updated forcibly by iko.

SHA-1: 1913a0d7216582f468eb56c8b2c87f14dc6eb3bf

git

2019-07-15 15:14

administrator   ~0085635

Branch CR30807 has been updated forcibly by iko.

SHA-1: ea33f4ba281c79f9b078602e6588b61c04ac6fe1

git

2019-07-16 12:53

administrator   ~0085665

Branch CR30807 has been updated by iko.

SHA-1: 9e1027ea1a01ab86cd99f6c1ecf2952beeafc38d


Detailed log of new commits:

Author: iko
Date: Tue Jul 16 12:51:16 2019 +0300

    Merge branch 'CR30807' of git.dev.opencascade.org:occt into CR30807

Author: iko
Date: Tue Jul 9 16:55:49 2019 +0300

    0030807: Visualization, TKOpenGl - supporting cubemaps
    
    A cubemap texture initialization has been implemented.
    Setting environment cubemap as interactive background is posssible now.

git

2019-07-16 12:59

administrator   ~0085666

Branch CR30807 has been updated forcibly by iko.

SHA-1: e5e8bc1f4144b433ab38f371ae17f336626bfe1d

git

2019-07-16 13:01

administrator   ~0085667

Branch CR30807 has been updated forcibly by iko.

SHA-1: df37f6c867ac20a49ae71144fcc87cd7bad15e2e

git

2019-07-17 12:18

administrator   ~0085701

Branch CR30807 has been updated forcibly by iko.

SHA-1: 9b50e14162d3fb7c6d6789a29710911b0638d71a

iko

2019-07-17 12:20

developer   ~0085702

Please review the implementation in last branch update.

kgv

2019-07-19 13:33

developer   ~0085788

--- /dev/null
+++ b/src/Graphic3d/Graphic3d_CubeMap.cxx
+// Author: Ilya Khramov
+// Copyright (c) 2016-2019 OPEN CASCADE SAS

The year range looks strange - I don't recall this class being developed in '2016.

+  //! Sets iterator state to +X cubemap side.
+  Graphic3d_CubeMap& Reset() { myCurrentSide = 0; return *this; }

Please avoid multiple statements on single line.

+  //! Returns index of current cubemap side (iterator state).
+  //! Uses OpenGL cubemap sides order (+X, -X, +Y, -Y, +Z, -Z).
+  unsigned int CurrentSide() const { return myCurrentSide; }
...
+  unsigned int myCurrentSide; //! index of current cubemap side in (+X, -X, +Y, -Y, +Z, -Z) array

Looks like enumeration would be more meaningful here.
Note that there is also V3d_TypeOfOrientation, though it is has another order.

+  //! Sets environment cubemap as background.
+  virtual void SetBackgroundCubeMap (const Handle(Graphic3d_CubeMap)& theCubeMap) = 0;

Probably there should be a getter too.

+  //! Returns rather Z axis is inverted during cubemap background rendering.
+  virtual Standard_Boolean BackgroundCubeMapZIsInverted() const = 0;
+
+  //! Sets innversion of Z axis during cubemap background rendering.
+  //! Z axis inverting allows to make a horizontal flip of background cubemap (to sync text orientation for example).
+  virtual void SetBackgroundCubeMapZInversion (Standard_Boolean theZIsInverted) = 0;

ToInvertBackgroundCubemapZ()/SetInvertBackgroundCubemapZ().

+Graphic3d_CubeMapPacked::Graphic3d_CubeMapPacked (const TCollection_AsciiString&          theFilePath,
+                                                  const NCollection_Array1<unsigned int>& theOrder):
+  Graphic3d_CubeMap (theFilePath),

The ":" placement is unusual for OCCT - please move it to newline.

+      Handle(Image_PixMap) aWrapper = new Image_PixMap;

new Image_PixMap().

+Standard_Boolean Graphic3d_CubeMapPacked::checkOrder (const NCollection_Array1<unsigned int>& theOrder)
+{
+  if (theOrder.Size() != 6)
+  {
+    return Standard_False;
+  }

I think this method should raise exception, because user should never pass invalid order array.

+  Standard_ShortReal aRatio = theImage->SizeX() / Standard_ShortReal(theImage->SizeY());
+
+  if (aRatio == 1.f / 6.f)
+  {
+    theTileNumberX = 1;
+  }
+  else if (aRatio == 6.f)
+  {
+    theTileNumberX = 6;
+  }

Why using floats for integer math?

+//! Class to keep cupemap packed in one image containing tile grid.
+class Graphic3d_CubeMapPacked : public Graphic3d_CubeMap

I suppose this class is intended to process cubemap packed into single image plane rather than to "keep" it packed.

+  static const NCollection_Array1<unsigned int> DefaultOrder; //!< contains {0, 1, 2, 3, 4, 5}

Accessing this variable outside TKV3d would cause problems - please instead define a static method returning this array.
The comment is missing specifying where this order comes from (e.g. that this order is used by graphic APIs like OpenGL).

+
+protected:
+
+  NCollection_Array1<unsigned int> myOrder;       //!< order mapping tile grit to cubemap sides
+  unsigned int                     myTileNumberX; //!< width of tile grid
+
+private:
+
+  //! Generates Graphic3d_CubeMapPacked::DefaultOrder
+  static NCollection_Array1<unsigned int> generateDefaultOrder()

The class fields definition is expected to go after methods (public/protected/private order to be used within group methods/fields).

--- /dev/null
+++ b/src/Graphic3d/Graphic3d_CubeMapSeparate.cxx
+#include <OSD_File.hxx>
+#include <Graphic3d_CubeMapSeparate.hxx>

By convention, class header should go first (to verify header to be self-sustained), followed by other headers in alphabetical order.

+Graphic3d_CubeMapSeparate::Graphic3d_CubeMapSeparate (const NCollection_Array1<TCollection_AsciiString>& thePaths) :
+  Graphic3d_CubeMap ()

Graphic3d_CubeMap() is redundant.

+  if (thePaths.Size() == 6)
+  {
+    for (unsigned int i = 0; i < 6; ++i)
+    {
+      myPaths[i] = thePaths[i];
+    }
+  }
...
+    if (theImages[0]->SizeX() != theImages[0]->SizeY())
+    {
+      return;
+    }
...
+      if (!theImages[i].IsNull())
+      {
+        if (theImages[i]->SizeX() == myImages[0]->SizeX()
+         && theImages[i]->SizeY() == myImages[0]->SizeY()
+         && theImages[i]->Format() == myImages[0]->Format())

Probably should raise an exception on invalid input.

+Handle(Image_PixMap) Graphic3d_CubeMapSeparate::Value()
+{
+    TCollection_AsciiString aFilePath;
+    myPaths[myCurrentSide].SystemName(aFilePath);
+    if (!aFilePath.IsEmpty())
+    {
+      Handle(Image_AlienPixMap) anImage = new Image_AlienPixMap;
+      if (anImage->Load(aFilePath))
+      {
+        if (anImage->SizeX() == anImage->SizeY())
+        {
+          if (myCurrentSide == 0)
+          {
+            mySize =   anImage->SizeX();

When image is dynamically retrieved from file, the getter is not expected to raise exception, but it is desired reporting to user file reading errors and inconsistent dimensions / formats - this can be done through Message::DefaultMessenger()->Send().

+  }
+}
\ No newline at end of file

Please add missing newlines at end of files.

+Handle(Image_PixMap) Graphic3d_CubeMapSeparate::GetImage() const
+{
+  return Handle(Image_PixMap)();
+}

Inline with a proper description that this method returns NULL.

 enum Graphic3d_TypeOfBackground
 {
-Graphic3d_TOB_NONE,
 Graphic3d_TOB_GRADIENT,
-Graphic3d_TOB_TEXTURE
+Graphic3d_TOB_TEXTURE,
+Graphic3d_TOB_CUBEMAP,
+Graphic3d_TOB_NONE,
+
+Graphic3d_TOB_Number = Graphic3d_TOB_NONE
 };

Please reverse order back.
By convention, NONE/UNDEFINED values should be declared first in enumeration (either as 0 or -1).
New enumeration values are desired to put at the end of list.

+      EOL"uniform int uZCoeff = 1;" // defines orientation of Z axis to make horizontal flip

Uniform default value required GLSL 120 (and I'm unable finding this feature in any OpenGL ES version, probably missing something).
Please drop it.

+      EOL"out vec3 ViewDirection;"
...
+      EOL"in vec3 ViewDirection;"
...
+      EOL"  occSetFragColor (vec4(texture(occEnvCubemap, ViewDirection).rgb, 1.0));"

THE_SHADER_IN/THE_SHADER_OUT/occTextureCubemap.
in/out and uniforms are expected to be declared within:
+ OpenGl_ShaderObject::ShaderVariableList aUniforms, aStageInOuts;

+      Release(theCtx.operator->());

theCtx.get().

+      return Init(theCtx, *anImage.get(), theTextureMap->Type());

Just "*anImage".

+    GLenum aPixelFormat;
+    GLenum aDataType;
+    GLint aTextFormat;
+
+    if (!GetDataFormat(theCtx, *anImage.get(), aTextFormat, aPixelFormat, aDataType))

Please avoid declaring variable with undefined values even if it is expected that called method will initialize them.

+#if !defined (GL_ES_VERSION_2_0)
+    glTexImage2D (GL_PROXY_TEXTURE_2D, 0, aTextFormat,
+                  GLsizei(anImage->SizeX()), GLsizei(anImage->SizeY()), 0,
+                  aPixelFormat, aDataType, NULL);

Please just skip it - it is not very useful and using incorrectly for cubemap.

+    glPixelStorei(GL_UNPACK_ALIGNMENT, anAligment);

OpenGl_UnpackAlignmentSentry resetting unpacking values back is missing.

+
+#if !defined(GL_ES_VERSION_2_0)
+    // notice that GL_UNPACK_ROW_LENGTH is not available on OpenGL ES 2.0 without GL_EXT_unpack_subimage extension
+    const GLint anExtraBytes = GLint(anImage->RowExtraBytes());
+    const GLint aPixelsWidth = GLint(anImage->SizeRowBytes() / anImage->SizePixelBytes());
+    const GLint aRowLength = (anExtraBytes >= anAligment) ? aPixelsWidth : 0;
+    glPixelStorei(GL_UNPACK_ROW_LENGTH, aRowLength);
+#endif

GLES version justy ignores non-existing of row length, hense will lead to crash.

+    if (glGetError() != GL_NO_ERROR)

Please be more verbose and print error reason to messenger.

+    if (glGetError() != GL_NO_ERROR)
+    {
+      Unbind(theCtx);
+      Release(theCtx.get());
+      return false;
+    }
+  }
+
+  return true;

Method does not unbind texture on success as do other Init() methods.

--- a/src/OpenGl/OpenGl_Texture.hxx
+++ b/src/OpenGl/OpenGl_Texture.hxx
@@ -20,6 +20,7 @@
 #include <OpenGl_Sampler.hxx>
 #include <Graphic3d_TypeOfTexture.hxx>
 #include <Graphic3d_TextureUnit.hxx>
+#include <Graphic3d_CubeMap.hxx>

Better using forward declaration here.

+
+Graphic3d_TOB_Number = Graphic3d_TOB_NONE

It is better declaring Graphic3d_TOB_NB outside of enumeration.

-    myTextureParams->Release (theCtx.get());
+    myTextureParams->Release(theCtx.get());
...
-  const Standard_Boolean wasUsedZBuffer = theWorkspace->SetUseZBuffer (Standard_False);
+  const Standard_Boolean wasUsedZBuffer = theWorkspace->SetUseZBuffer(Standard_False);
...
-    aCtx->core11fwd->glDisable (GL_DEPTH_TEST);
+    aCtx->core11fwd->glDisable(GL_DEPTH_TEST);
...
-    theWorkspace->SetUseZBuffer (Standard_True);
-    aCtx->core11fwd->glEnable (GL_DEPTH_TEST);
+    theWorkspace->SetUseZBuffer(Standard_True);
+    aCtx->core11fwd->glEnable(GL_DEPTH_TEST);

Unrelated and incorrect.
Check OCCT coding rules related to braces.

--- a/src/OpenGl/OpenGl_View_Redraw.cxx
+++ b/src/OpenGl/OpenGl_View_Redraw.cxx
@@ -74,65 +74,93 @@ namespace
 void OpenGl_View::drawBackground (const Handle(OpenGl_Workspace)& theWorkspace)
 {

This should probably break use case when user defines gradient background + centered image.

+  //! Sets inversion of Z axis during background cibemap rendering.

cibemap

+      aCamera.SetZRange(0.01, 1.0); // need to avoid perspective camera exeption

exeption

+    aBackgroundCommandNameMap["vsetcubemapbg"]    = BackgroundCommand_CubeMap;
+    aBackgroundCommandNameMap["vsetcmzinversion"] = BackgroundCommand_CubeMapZInversion;

These are for backward compatibility - there is no need adding new commands for new functionality, vbackground will be enough.

git

2019-07-23 17:14

administrator   ~0085866

Branch CR30807 has been updated forcibly by iko.

SHA-1: 47793c5a4344b963628d3e77b266eb23e43bdd7e

iko

2019-07-23 17:16

developer   ~0085868

Please review the changes.

kgv

2019-07-25 19:46

developer   ~0085874

+NCollection_Array1<unsigned int> Graphic3d_CubeMapPacked::DefaultOrder()
+{

It is expected that this method will return "const NCollection_Array1<unsigned int>& " - static constant, defined within the method.

+    throw Standard_Failure("Invalid number of images in Graphic3d_CubeMapSeparate initialization");
+    return;

Redundant return.

+                "'" + aFilePath + "' inconsistent image format or dimansion in Graphic3d_CubeMapSeparate");

dimansion

+  Handle(Image_PixMap) GetImage() const Standard_OVERRIDE

virtual.

+      theSize = unsigned int (anImage->SizeX());

Will fail on some compilers.

+        "Unable to get foirs side of cubemap");

foirs?

+    Handle(Image_PixMap) anImage = Handle(Image_PixMap)();

Redundant constructor.

git

2019-07-26 11:55

administrator   ~0085887

Branch CR30807 has been updated by iko.

SHA-1: f2d6e620be4db2954eb287a28963d25dc4c5de9c


Detailed log of new commits:

Author: iko
Date: Fri Jul 26 11:52:58 2019 +0300

    # fix remarks 2

iko

2019-07-26 11:56

developer   ~0085888

Please review changes.

kgv

2019-07-26 12:08

developer   ~0085889

Please prepare a new branch CR30807_1 with squashed commits.

git

2019-07-26 13:02

administrator   ~0085891

Branch CR30807_1 has been created by iko.

SHA-1: a436aa219819152cf62081e3c71c5a97732fdaaa


Detailed log of new commits:

Author: iko
Date: Tue Jul 9 16:55:49 2019 +0300

    0030807: Visualization, TKOpenGl - supporting cubemaps
    
    A cubemap texture initialization has been implemented.
    Setting environment cubemap as interactive background is posssible now.

iko

2019-07-26 13:03

developer   ~0085892

The new branch with squashed commits has been added.

kgv

2019-08-08 21:32

developer   ~0086093

Last edited: 2019-08-08 21:35

New test case crashes application:
An exception was caught 00000235108F4EF0 : OSD_Exception_ACCESS_VIOLATION: ACCESS VIOLATION at address 0x000002351B63AFF0 during 'READ' operation


The problem is that wrapping tile code ignores IsTopDown() flag, which is FALSE in case of FreeImage loader.
In this case myPixMap->ChangeRawValue(0,0) would return the pointer to the last row in the memory leading to out-of-memory access while transferring image to OpenGL driver.
Probably you have tested patch without HAVE_FREEIMAGE option, which would use HAVE_WINCODEC on Windows as fallback, which in turns uses top-down rows arrangement in memory.
    if (!myPixMap.IsNull())
    {
      Handle(Image_PixMap) aWrapper = new Image_PixMap();

      Standard_Size aTileSize = myPixMap->SizeX() / myTileNumberX;

      unsigned int aTileIndexY = myOrder[myCurrentSide] / myTileNumberX;
      unsigned int aTileIndexX = myOrder[myCurrentSide] % myTileNumberX;

      if (aWrapper->InitWrapper (myPixMap->Format(),
                                 myPixMap->ChangeRawValue(aTileIndexY * aTileSize, aTileIndexX * aTileSize),
                                 aTileSize,
                                 aTileSize,
                                 myPixMap->SizeRowBytes()))
      {
        return aWrapper;
      }
    }


kgv

2019-08-08 21:55

developer   ~0086094

Please also replace images in database to downscaled ones - it is not important for test to load high-resolution image.

git

2019-08-16 13:29

administrator   ~0086277

Branch CR30807_1 has been updated forcibly by iko.

SHA-1: 6b28e9e78cb97e59edb6537f4b2aef25bea98018

git

2019-08-16 14:06

administrator   ~0086281

Branch CR30807_1 has been updated forcibly by iko.

SHA-1: 7e399604a0ce1500c07770bccb3a0997d1ff7ead

git

2019-08-16 14:51

administrator   ~0086286

Branch CR30807_1 has been updated forcibly by iko.

SHA-1: 7e448de4fea8727950f9d58b007c9f40041e6d6b

iko

2019-08-19 09:00

developer   ~0086324

Please review the changes.

Testing results:
http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30807_1-master-IKO-OCCT-Debian80-64-opt-test-compare/1/

http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30807_1-master-IKO-Products-Debian80-64-opt-test-compare/1/

http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30807_1-master-IKO-OCCT-Windows-64-VC14-opt-test-compare/1/

http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30807_1-master-IKO-Products-Windows-64-VC14-opt-test-compare/1/

git

2019-08-19 09:37

administrator   ~0086326

Branch CR30807_1 has been updated forcibly by iko.

SHA-1: 1bc8b63be28b2028ec9a69f68a8923b044132bb1

iko

2019-08-19 09:38

developer   ~0086327

Just updated brunch to the new master.

kgv

2019-08-19 14:32

developer   ~0086331

+                        static_cast<unsigned char> (std::stoi(anOrderItem)));

I expect std::stoi() will cause compilation errors on old compilers (weekly Jenkins).

git

2019-08-19 14:57

administrator   ~0086332

Branch CR30807_1 has been updated forcibly by iko.

SHA-1: b28fd3138cdf0965ac89f82d5d91a753dcee305e

iko

2019-08-19 14:58

developer   ~0086333

String to numbers translation has been fixed.

git

2019-08-19 15:20

administrator   ~0086334

Branch CR30807_2 has been created by iko.

SHA-1: f898816a227ac163e6a0ee5d6762826f47446130


Detailed log of new commits:

Author: iko
Date: Tue Jul 9 16:55:49 2019 +0300

    0030807: Visualization, TKOpenGl - supporting cubemaps
    
    A cubemap texture initialization has been implemented.
    Setting environment cubemap as interactive background is posssible now.

git

2019-08-19 15:26

administrator   ~0086335

Branch CR30807_2 has been updated forcibly by iko.

SHA-1: 3586c536381a95480e44713fc5c47a240028c17d

git

2019-08-19 15:30

administrator   ~0086336

Branch CR30807_2 has been updated forcibly by iko.

SHA-1: 27a856c60f2b5ad1466dc2c60d24a267d673870f

kgv

2019-08-19 15:50

developer   ~0086337

+// This constat is used in 'HasRepitities' method

constant?

+  //! Returns cubemap being setted last time on background.
+  virtual Handle(Graphic3d_CubeMap) BackgroundCubeMap() const = 0;

set

+  //! Constructor definig direct cubemap initialization from PixMap.
+  Graphic3d_CubeMap (const Handle(Image_PixMap)& thePixmap = Handle(Image_PixMap)()) :

definig

+const unsigned int Graphic3d_CubeMapOrder::repititiesConstant =

CAPS name would be preferred.

+  unsigned int convolution;  //!< Contains all values of permutation as power convolution
+  bool         hasOverflows; //!< Indicates if there are attempts to assign index greater than 5

my

kgv

2019-08-19 15:51

developer   ~0086338

-            aResource->SetRevision (aTexture->Revision());
+            aResource->SetRevision(aTexture->Revision());

unrelated.

git

2019-08-19 17:43

administrator   ~0086342

Branch CR30807_2 has been updated by iko.

SHA-1: 6d23267791f7ed9e4d668b04bae7062680ac6d70


Detailed log of new commits:

Author: iko
Date: Mon Aug 19 17:39:55 2019 +0300

    # cubemap z inversion's logic has been changed
    # typos has been fixed
    # code style has been improved

tizmaylo

2019-08-19 20:14

developer   ~0086343

Why simply not to use std::bitset (or even an integer instead together with bitwise operations) to check for duplicates?

#include <bitset>

template <std::size_t theMaxValue, typename TheContainer>
bool HasDuplicates (const TheContainer& theContainer)
{
  typedef std::bitset<theMaxValue> AValueFlags;
  AValueFlags aValueFlags;
  // std::bitset::all() is not used due to C++03 limitation
  for (std::size_t anElementIndex = 0; anElementIndex < theContainer.size(); ++anElementIndex)
  {
    typename AValueFlags::reference aValueFlag = aValueFlags[theContainer[anElementIndex]];
    if (aValueFlag)
    {
      return true;
    }
    aValueFlag = true;
  }
  return false;
}

git

2019-08-20 09:13

administrator   ~0086347

Branch CR30807_2 has been updated by iko.

SHA-1: 2ff6817f173adf9f52f08c3249505715bd47b99e


Detailed log of new commits:

Author: iko
Date: Tue Aug 20 09:08:47 2019 +0300

    # the repitities detection algorithm has been siplified

git

2019-08-20 09:15

administrator   ~0086348

Branch CR30807_2 has been updated forcibly by iko.

SHA-1: bb9757dc63584fc154e584655ccf1ad2f745f89a

iko

2019-08-20 09:18

developer   ~0086349

It is simpler of course. So repetition's detection algorithm has been changed.

tizmaylo

2019-08-20 10:37

developer   ~0086354

typename keyword is redundant outside of templates in this context.

iko

2019-08-20 11:07

developer   ~0086356

Testing is successful.

http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30807_2-master-IKO-OCCT-Debian80-64-opt-test-compare/2/

http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30807_2-master-IKO-OCCT-Windows-64-VC14-opt-test-compare/2/

http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30807_2-master-IKO-Products-Debian80-64-opt-test-compare/2/

http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30807_2-master-IKO-Products-Windows-64-VC14-opt-test-compare/2/

git

2019-08-20 11:22

administrator   ~0086357

Branch CR30807_2 has been updated by iko.

SHA-1: ca782e1f37f7783d642d173c1202dec2c769409a


Detailed log of new commits:

Author: iko
Date: Tue Aug 20 11:19:04 2019 +0300

    # improve 'vbackground' help message

git

2019-08-20 11:30

administrator   ~0086359

Branch CR30807_2 has been updated forcibly by iko.

SHA-1: 88b76fcc4ed653ce288e09f21b7162555c6668a6

git

2019-08-20 12:55

administrator   ~0086363

Branch CR30807_3 has been created by iko.

SHA-1: 34cbb35345b19b1fb66f71d95ff7c9fd0b7ca1a9


Detailed log of new commits:

Author: iko
Date: Tue Jul 9 16:55:49 2019 +0300

    0030807: Visualization, TKOpenGl - supporting cubemaps
    
    A cubemap texture initialization has been implemented.
    Setting environment cubemap as interactive background is posssible now.

iko

2019-08-20 12:56

developer   ~0086364

The last branch is just squashed version of previous one.

git

2019-08-20 14:00

administrator   ~0086365

Branch CR30807_3 has been updated forcibly by iko.

SHA-1: d5cce74bdf1f755b57154f1346cb8d805543cac8

iko

2019-08-20 14:01

developer   ~0086366

Last edited: 2019-08-20 14:01

Just one forgotten 'TODO' in comments has been removed.

bugmaster

2019-08-20 19:48

administrator   ~0086378

Combination -
OCCT branch : CR30807_2
master SHA - 88b76fcc4ed653ce288e09f21b7162555c6668a6
5f5b1aed1c6e139bbd34314eca77ae7abcd8895c
Products branch : master SHA - 32e882a7b3145a66baa739f965d275c822c0bd8a
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: 16083.710000000086 / 16105.290000000065 [-0.13%]
Products
Total CPU difference: 10492.42000000006 / 10484.700000000048 [+0.07%]
Windows-64-VC14:
OCCT
Total CPU difference: 18120.8125 / 18149.296875 [-0.16%]
Products
Total CPU difference: 12092.5625 / 12045.34375 [+0.39%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2019-08-21 12:14

administrator   ~0086382

Branch CR30807_3 has been updated forcibly by iko.

SHA-1: d924a3cdc8ddc0eb609c44e36e67d41c91a00330

iko

2019-08-21 12:18

developer   ~0086383

Compilation errors are expected to disappear now.

git

2019-08-21 14:58

administrator   ~0086384

Branch CR30807_3 has been updated forcibly by iko.

SHA-1: 623050e4a4300f78043304ebffaf10843eec4e4e

git

2019-08-21 15:06

administrator   ~0086385

Branch CR30807_3 has been updated forcibly by iko.

SHA-1: 4533cf94286aeb4d23886e41aea428dafbbb556c

bugmaster

2019-08-22 10:50

administrator   ~0086401

New warnings
http://jenkins-test-08.nnov.opencascade.com/view/management/job/warnings_compare/Compare_20Warnings_20Report/

Build:
http://jenkins-test-08.nnov.opencascade.com/view/WEEK-34_WEEK-34/view/OCCT%20compile/

git

2019-08-22 11:11

administrator   ~0086402

Branch CR30807_3 has been updated forcibly by iko.

SHA-1: 4bb978cd66c6e6722ceb73b1e1070fa8c69acf9e

git

2019-08-22 11:19

administrator   ~0086403

Branch CR30807_3 has been updated forcibly by iko.

SHA-1: ee9c0e1f26af0d038c31e413977a64f37c35442c

iko

2019-08-22 11:19

developer   ~0086404

Last edited: 2019-08-22 11:24

Warnings has been fixed.

git

2019-09-02 18:00

administrator   ~0086632

Branch CR30807 has been deleted by apn.

SHA-1: f2d6e620be4db2954eb287a28963d25dc4c5de9c

git

2019-09-02 18:00

administrator   ~0086633

Branch CR30807_1 has been deleted by apn.

SHA-1: b28fd3138cdf0965ac89f82d5d91a753dcee305e

git

2019-09-02 18:00

administrator   ~0086634

Branch CR30807_2 has been deleted by apn.

SHA-1: 88b76fcc4ed653ce288e09f21b7162555c6668a6

git

2019-09-02 18:00

administrator   ~0086635

Branch CR30807_3 has been deleted by apn.

SHA-1: ee9c0e1f26af0d038c31e413977a64f37c35442c

kgv

2019-09-02 18:14

developer   ~0086662

It seems we have now dis-balance in hierarchies.

The expected base class for Graphic3d_CubeMap is either Graphic3d_TextureRoot or Graphic3d_TextureEnv, and not Graphic3d_TextureMap.

From another perspective, this typed hierarchy does not look very helpful, and there is no real feature for having Graphic3d_TextureEnv/Graphic3d_TextureRoot/Graphic3d_TextureMap...

Related Changesets

occt: master 077a220c

2019-07-09 13:55:49

iko


Committer: apn Details Diff
0030807: Visualization, TKOpenGl - supporting cubemaps

A cubemap texture initialization has been implemented.
Setting environment cubemap as interactive background is posssible now.
Affected Issues
0030807
mod - src/Graphic3d/FILES Diff File
add - src/Graphic3d/Graphic3d_CubeMap.cxx Diff File
add - src/Graphic3d/Graphic3d_CubeMap.hxx Diff File
add - src/Graphic3d/Graphic3d_CubeMapOrder.cxx Diff File
add - src/Graphic3d/Graphic3d_CubeMapOrder.hxx Diff File
add - src/Graphic3d/Graphic3d_CubeMapPacked.cxx Diff File
add - src/Graphic3d/Graphic3d_CubeMapPacked.hxx Diff File
add - src/Graphic3d/Graphic3d_CubeMapSeparate.cxx Diff File
add - src/Graphic3d/Graphic3d_CubeMapSeparate.hxx Diff File
add - src/Graphic3d/Graphic3d_CubeMapSide.hxx Diff File
mod - src/Graphic3d/Graphic3d_CView.hxx Diff File
mod - src/Graphic3d/Graphic3d_TextureUnit.hxx Diff File
mod - src/Graphic3d/Graphic3d_TypeOfBackground.hxx Diff File
mod - src/Graphic3d/Graphic3d_TypeOfTexture.hxx Diff File
mod - src/OpenGl/OpenGl_AspectsTextureSet.cxx Diff File
mod - src/OpenGl/OpenGl_BackgroundArray.cxx Diff File
mod - src/OpenGl/OpenGl_BackgroundArray.hxx Diff File
mod - src/OpenGl/OpenGl_ShaderManager.cxx Diff File
mod - src/OpenGl/OpenGl_ShaderManager.hxx Diff File
mod - src/OpenGl/OpenGl_Texture.cxx Diff File
mod - src/OpenGl/OpenGl_Texture.hxx Diff File
mod - src/OpenGl/OpenGl_View.cxx Diff File
mod - src/OpenGl/OpenGl_View.hxx Diff File
mod - src/OpenGl/OpenGl_View_Raytrace.cxx Diff File
mod - src/OpenGl/OpenGl_View_Redraw.cxx Diff File
mod - src/V3d/V3d_View.cxx Diff File
mod - src/V3d/V3d_View.hxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
add - tests/v3d/glsl/cubemap Diff File

Issue History

Date Modified Username Field Change
2019-06-25 12:38 iko New Issue
2019-06-25 12:38 iko Assigned To => iko
2019-06-25 14:08 kgv Relationship added related to 0030700
2019-07-09 17:11 iko Relationship added related to 0030833
2019-07-09 17:33 git Note Added: 0085525
2019-07-10 13:45 git Note Added: 0085556
2019-07-10 14:09 git Note Added: 0085557
2019-07-11 09:04 git Note Added: 0085580
2019-07-14 12:27 git Note Added: 0085625
2019-07-15 15:02 git Note Added: 0085634
2019-07-15 15:14 git Note Added: 0085635
2019-07-16 12:53 git Note Added: 0085665
2019-07-16 12:59 git Note Added: 0085666
2019-07-16 13:01 git Note Added: 0085667
2019-07-17 12:18 git Note Added: 0085701
2019-07-17 12:20 iko Assigned To iko =>
2019-07-17 12:20 iko Note Added: 0085702
2019-07-17 12:21 iko Assigned To => kgv
2019-07-19 13:33 kgv Note Added: 0085788
2019-07-19 13:33 kgv Assigned To kgv => iko
2019-07-19 13:33 kgv Status new => assigned
2019-07-23 17:14 git Note Added: 0085866
2019-07-23 17:16 iko Note Added: 0085868
2019-07-23 17:16 iko Assigned To iko => kgv
2019-07-23 17:16 iko Status assigned => resolved
2019-07-23 17:16 iko Steps to Reproduce Updated
2019-07-25 19:46 kgv Note Added: 0085874
2019-07-26 11:55 git Note Added: 0085887
2019-07-26 11:56 iko Note Added: 0085888
2019-07-26 12:08 kgv Note Added: 0085889
2019-07-26 13:02 git Note Added: 0085891
2019-07-26 13:03 iko Note Added: 0085892
2019-08-08 21:32 kgv Note Added: 0086093
2019-08-08 21:32 kgv Assigned To kgv => iko
2019-08-08 21:32 kgv Status resolved => assigned
2019-08-08 21:32 kgv Note Edited: 0086093
2019-08-08 21:35 kgv Note Edited: 0086093
2019-08-08 21:55 kgv Note Added: 0086094
2019-08-16 13:29 git Note Added: 0086277
2019-08-16 14:06 git Note Added: 0086281
2019-08-16 14:51 git Note Added: 0086286
2019-08-19 09:00 iko Note Added: 0086324
2019-08-19 09:01 iko Assigned To iko => kgv
2019-08-19 09:01 iko Status assigned => resolved
2019-08-19 09:37 git Note Added: 0086326
2019-08-19 09:38 iko Note Added: 0086327
2019-08-19 14:32 kgv Note Added: 0086331
2019-08-19 14:57 git Note Added: 0086332
2019-08-19 14:58 iko Note Added: 0086333
2019-08-19 15:20 git Note Added: 0086334
2019-08-19 15:26 git Note Added: 0086335
2019-08-19 15:30 git Note Added: 0086336
2019-08-19 15:50 kgv Note Added: 0086337
2019-08-19 15:51 kgv Note Added: 0086338
2019-08-19 17:43 git Note Added: 0086342
2019-08-19 20:14 tizmaylo Note Added: 0086343
2019-08-20 09:13 git Note Added: 0086347
2019-08-20 09:15 git Note Added: 0086348
2019-08-20 09:18 iko Note Added: 0086349
2019-08-20 10:37 tizmaylo Note Added: 0086354
2019-08-20 11:07 iko Note Added: 0086356
2019-08-20 11:22 git Note Added: 0086357
2019-08-20 11:30 git Note Added: 0086359
2019-08-20 12:42 kgv Assigned To kgv => bugmaster
2019-08-20 12:42 kgv Status resolved => reviewed
2019-08-20 12:55 git Note Added: 0086363
2019-08-20 12:56 iko Note Added: 0086364
2019-08-20 14:00 git Note Added: 0086365
2019-08-20 14:01 iko Note Added: 0086366
2019-08-20 14:01 iko Note Edited: 0086366
2019-08-20 19:46 bugmaster Test case number => v3d/glsl/cubemap
2019-08-20 19:48 bugmaster Note Added: 0086378
2019-08-20 19:48 bugmaster Status reviewed => tested
2019-08-21 12:14 git Note Added: 0086382
2019-08-21 12:18 iko Note Added: 0086383
2019-08-21 14:58 git Note Added: 0086384
2019-08-21 15:06 git Note Added: 0086385
2019-08-22 10:50 bugmaster Note Added: 0086401
2019-08-22 10:50 bugmaster Assigned To bugmaster => iko
2019-08-22 10:50 bugmaster Status tested => assigned
2019-08-22 11:11 git Note Added: 0086402
2019-08-22 11:19 git Note Added: 0086403
2019-08-22 11:19 iko Note Added: 0086404
2019-08-22 11:24 iko Note Edited: 0086404
2019-08-22 11:28 iko Assigned To iko => bugmaster
2019-08-22 11:28 iko Status assigned => resolved
2019-08-22 11:28 iko Steps to Reproduce Updated
2019-08-22 11:29 iko Status resolved => reviewed
2019-08-23 14:17 apn Status reviewed => tested
2019-08-24 16:56 apn Changeset attached => occt master 077a220c
2019-08-24 16:56 apn Assigned To bugmaster => apn
2019-08-24 16:56 apn Status tested => verified
2019-08-24 16:56 apn Resolution open => fixed
2019-09-02 18:00 git Note Added: 0086632
2019-09-02 18:00 git Note Added: 0086633
2019-09-02 18:00 git Note Added: 0086634
2019-09-02 18:00 git Note Added: 0086635
2019-09-02 18:14 kgv Note Added: 0086662
2019-11-05 10:49 kgv Relationship added parent of 0031129
2020-04-01 11:08 kgv Relationship added parent of 0031478
2020-05-27 13:36 kgv Relationship added parent of 0031580
2020-05-27 23:25 kgv Relationship added parent of 0031584