0032969: Coding - get rid of unused headers [IMeshData to PLib] Removed unused exception classes OSD_Exception_FLT_DIVIDE_BY_ZERO, OSD_Exception_INT_DIVIDE_BY_ZERO, OSD_Exception_FLT_DENORMAL_OPERAND, OSD_Exception_FLT_INEXACT_RESULT, OSD_Exception_FLT_INVALID_OPERATION, OSD_Exception_FLT_OVERFLOW, OSD_Exception_FLT_STACK_CHECK, OSD_Exception_FLT_UNDERFLOW.
0032862: Visualization, Graphic3d_TextureMap - add 3D texture definition Image_PixMap has been extended to support definition of 3D bitmap (as an array of 2D slices). Graphic3d_TypeOfTexture enumeration values have been renamed to include full enum prefix. Added Graphic3d_TypeOfTexture_3D redirecting to GL_TEXTURE_3D. OpenGl_Texture::Init() has been extended to allow initialization of 3D texture. Graphic3d_Texture2Dmanual merged into Graphic3d_Texture2D and marked as deprecated alias. Graphic3d_TOT_2D_MIPMAP has been deprecated in favor of dedicated Graphic3d_TextureRoot::SetMipMaps(). Added Graphic3d_Texture3D class. vtexture - added argument -3d for uploading 3D texture.
0032779: Visualization, TKOpenGl - support using a wide color window buffer format (10bit per component / 30bit RGB) Added new flag OpenGl_Caps::buffersDeepColor disabled by default. OpenGl_Window now tries to find a RGB10_A2 pixel format using wglChoosePixelFormatARB(). OpenGl_TextureFormat::FindSizedFormat() - added handling of GL_RGB10_A2 internal format. OpenGl_View::SetWindow() now selects preferred FBO color format basing on parameters. OpenGl_Context::DiagnosticInformation()/OpenGl_View::DiagnosticInformation() now include information about window pixel format / FBO texture format.
0032713: Visualization, OpenGl_GlFunctions - unify OpenGL and OpenGL ES function lists Including system OpenGL headers has been moved from OpenGl_GlFunctions.hxx to OpenGl_GlNative.hxx. Added OpenGl_GlTypes.hxx providing basic OpenGL 1.1 types. Wrappers of system OpenGL 1.1 / OpenGL ES 2.0 functions have been moved to OpenGl_GlFunctions.cxx. Avoided usage of global OpenGL functions in OpenGl package outside of OpenGl_GlFunctions.cxx.
0032648: Visualization, TKOpenGles - support MSAA anti-aliasing within WebGL 2.0 OpenGl_FrameBuffer::Init() now creates MSAA render buffer in case if MSAA textures are unsupported. In this case OpenGl_View::prepareFrameBuffers() creates MSAA render buffer for main content and non-MSAA FBO for immediate content as blitting of MSAA render buffers into MSAA targets is unsupported by OpenGL ES 3.0. env.bat.in has been corrected to include path to custom ANGLE (GLES2_DIR) in front of Qt which might include its own older ANGLE build.
0032465: Visualization, TKOpenGles - invalid enum on GL_RGBA16F initialization in Edge 92 GL_HALF_FLOAT_OES from OpenGL ES 2.0 extension is now avoided within OpenGL ES 3.0+ context in favor of GL_HALF_FLOAT. emscripten_webgl_enable_extension() is now called for all extensions checked by OpenGl_Context::CheckExtension(). So far this doesn't solve any problem, but looks more logical and provisional.
0032308: Configuration - make Xlib dependency optional MACOSX_USE_GLX has been renamed to HAVE_XLIB and now configurable on Linux target. Xw_Window.hxx now export class on non-Linux platforms. OpenGl_Window now creates an off-screen EGL surface also in case of window-less desktop setup (e.g. with disabled Xlib on Linux). Draw_Window - code has been cleaned up. Class definition has been unified across platforms when possible. Unusued constructors have been removed. Internal header files (MainWindow.h, init.h, etc.) have been renamed to .pxx to avoid their unexpected distribution in "inc".
0032289: Visualization - add NCollection_Mat3 for 3x3 matrix similar to NCollection_Mat4 Introduced NCollection_Mat3 class similar to NCollection_Mat4. Added NCollection_Mat4::operator() alias to NCollection_Mat4::Value(). Added NCollection_Mat4::Negated(), ::Subtracted(), ::Added(), ::Divided() operations. Added a note to NCollection_Mat4::GetData() that matrix values are stored in column-major order. Removed duplicated operator== operators from NCollection_Mat4/NCollection_Vec4/NCollection_Vec3/NCollection_Vec2 classes. Removed obsolete and no more used matrix state fields from OpenGl_Workspace. Removed obsoiete structure OpenGl_Matrix (replaced by OpenGl_Mat4). OpenGl_ShaderProgram - duplicated methods have been replaced by templates.
0032217: Visualization, TKOpenGl - drop propagation of unused FFP functions OpenGl_GlFunctions no more loads unused FFP functions. OpenGl_GlCoreXX function tables no more defined two hierarchies with and without FFP functions, and OpenGl_Context::coreXXback fields have been removed. Introduced OpenGl_Context::core11ffp as more straightforward naming for obsolete FFP function set.
0032201: Visualization, TKOpenGl - unify Phong/PBR material properties getters Graphic3d_ShaderManager::stdComputeLighting() - implementation has been adjusted for better consistency between PBR / non-PBR. OpenGl_Material definition has been modified to join Front/Back pair into a single uniform variable. Common material definition now occupies 4x2 vec4 instead of 5x2 vec4. Getters of Common material properties within Declarations.glsl have been renamed to match PBR material syntax (e.g. take IsFront flag as function argument). Auxliary macros (like occTextureColor()) has been renamed (like occMaterialBaseColor()) and adjusted to return material property directly instead of taking it as argument.
0030640: Visualization, Graphic3d_Camera - add option creating Projection matrix with [0,1] depth range Added new property Graphic3d_Camera::IsZeroToOneDepth() and OpenGl_Caps::useZeroToOneDepth for activating [0,1] depth range instead of [-1,1] range using glClipControl() within OpenGL 4.5+.