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.
0032349: Visualization, TKOpenGl - move base buffer interface out from OpenGl_VertexBuffer class to OpenGl_Buffer OpenGl_Buffer - added new class as a base for OpenGl_VertexBuffer, OpenGl_IndexBuffer, OpenGl_TextureBuffer. OpenGl_TextureBufferArb has been renamed to OpenGl_TextureBuffer. OpenGl_FrameBuffer - added initializers taking vec2i instead of (int,int) for dimensions.
0032221: Visualization, TKD3DHost - fix memory leak within D3DHost_FrameBuffer::Release() D3DHost_FrameBuffer - added missing color texture release within FBO destruction. OpenGl_View::RedrawImmediate() - fixed unexpected window buffer swap while rendering into offscreen myFBO.
0029528: Visualization, TKOpenGl - allow defining sRGB textures OpenGL rendering is now done into sRGB framebuffer. OpenGl_ShaderManager::prepareStdProgramFboBlit() has been extended by programs resolving MSAA texture and applying gamma correction as fallbacks. Quantity_Color definition has been modified to store RGB components in linear color space within Quantity_TOC_RGB type. Standard colors defined by Quantity_NameOfColor enumeration has been updated accordingly. New Quantity_TOC_sRGB type has been introduced to handle RGB components in non-linear sRGB color space. OpenGl_TextureFormat class definition has been moved to dedicated files. New method OpenGl_TextureFormat::FindFormat() replaces OpenGl_Texture::GetDataFormat(). New method OpenGl_TextureFormat::FindSizedFormat() replaces OpenGl_FrameBuffer::getColorDataFormat() and OpenGl_FrameBuffer::getDepthDataFormat(). Graphic3d_TextureRoot::IsColorMap() - introduced new property defining if RGB(A)8 image formats should be loaded as sRGB(A) textures or as data RGB(A) textures. OpenGl_Texture initialization methods have been extended with new theIsColorMap argument. vreadpixel - added argument -sRGB printing color in sRGB color space. Test cases have been updated to new sRGB rendered results.
0029147: Visualization - D3DHost_FrameBuffer::BindBuffer() fails on some Intel drivers D3DHost_FrameBuffer::BindBuffer() now implicitly detaches Depth+Stencil texture in case of driver failure. D3DHost_View::d3dCreateRenderTarget() now does not request Depth+Stencil texture by default.
0029138: Visualization - D3DHost_FrameBuffer should provide software fallback when WGL_NV_DX_interop is unavailable D3DHost_FrameBuffer now provides fallback code copying OpenGL FBO content into D3D surface (slow). OpenGl_FrameBuffer::BufferDump() - FBO dump implementation has been moved from OpenGl_Workspace::BufferDump().
0027925: Visualization - implement order-independent transparency algorithm within rasterization rendering Weighted, Blended Order-Independent Transparency algorithm has been added rasterization pipeline. In contrast to classical blending transparency it makes transparent objects look independent from point of view. It also gives better depth occlusion when being used together with a weight factor based on value of a GL depth buffer. The feature supports desktop OpenGL, OpenGL ES 3.0, ANGLE and can be used together with MSAA on desktop GL. To be used it require availability of: 1) Shaders pipeline. 2) Floating point color format for framebuffer (GL_ARB_color_buffer_float). 3) Multiple render targets (GL_ARB_draw_buffers). Patch does not modify API and does not require application porting. It adds new rendering options to Graphic3d_RenderingParams structure: a) Transparency method from enumeration. b) Scalar factor [0-1] controlling influence of a fragment's depth to its visibility. Patch also simplifies processing of transparent objects for standard method: rendering priority of transparent graphical structures is managed automatically, therefore there is no need to care about it at application's side.
0026862: Configuration - avoid usage of 3rd-party headers within OpenGl_View and D3DHost_View Move Font_FTFont::Rect structure into dedicated header Font_FTFont. D3DHost_View, OpenGl_Font, Font_TextFormatter - use forward declarations. Fix regressions after #0024776 OpenGl_View::IsInvalidated() - fix misprint. D3DHost_View::Redraw() - assign myFBO before rendering. D3DHost_FrameBuffer::Init() - fix always zero viewport.
0026392: Visualization, TKD3DHost - provide straight-forward base for integration of TKOpenGl viewer into D3D-based application D3DHost_GraphicDriver - new graphic driver providing D3D host for OpenGL workspace. WNT_Window - handle virtual dimensions within virtual window. OpenGl_FrameBuffer::Init() - add protection against 0 dimensions. V3d_View::IsInvalidated() - add method to check view cache validation state. ViewerTest::ViewerInit() - create virtual window without decorations on Windows.