mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-09-03 14:10:33 +03:00
0027670: Visualization - avoid duplication of structures defining primitive array presentation aspects
Quantity_ColorRGBA has been introduced as convenient structure holding Vec4 for OpenGL. Graphic3d_PolygonOffset has been added as replacement for TEL_POFFSET_PARAM. Duplicating definition of Hatch Styles TEL_HS_*** has been removed; Aspect_HatchStyle enum now follows values of TEL_HS_*** for compatibility. TelCullMode enum has been removed. Aspect_AspectLine has been merged into Graphic3d_AspectLine3d. Aspect_AspectMarker has been merged into Graphic3d_AspectMarker3d. Aspect_AspectFillArea has been merged into Graphic3d_AspectFillArea3d. Graphic3d_CAspectFillArea have been removed. OpenGl_AspectLine now stores Graphic3d_AspectLine3d as class field. OpenGl_AspectMarker now stores Graphic3d_AspectMarker3d as class field. OpenGl_AspectText now stores Graphic3d_AspectText3d as class field. OpenGl_AspectFace now stores Graphic3d_AspectFillArea3d as class field. Graphic3d_AspectFillArea3d - back face culling is now enabled by default. TKOpenGl now relies on Graphic3d_Group::IsClosed() flag to disable face culling. StdPrs_ShadedShape now does not modify aspect for different culling modes. Headers InterfaceGraphic_Graphic3d.hxx, InterfaceGraphic_telem.hxx, InterfaceGraphic_tgl_all.hxx defining obsolete structures CALL_DEF_COLOR, CALL_DEF_POINT, CALL_DEF_MATERIAL, CALL_DEF_TRANSFORM_PERSISTENCE, TEL_POINT, TEL_COLOUR have been removed. Useless and broken test case bugs/vis/buc60821 has been removed. OpenGl_Workspace::myAspectFaceApplied and myAspectMarkerApplied have been replaced from OpenGl_AspectFace*/OpenGl_AspectMarker* to Handle(Graphic3d_AspectFillArea3d)/Handle(Graphic3d_AspectMarker3d). This eliminates reading from freed memory (e.g. when OpenGl_AspectFace is allocated on stack like in OpenGl_Trihedron). OpenGl_PrimitiveArray::drawEdges() - fix drawing non-indexed array from VBO (access violation due to NULL handle). AIS_Dimension::DrawArrow() - added missing initialization of 3D arrow aspect. AIS_Manipulator::Compute() now creates dedicated Face Aspect for each axis. V3d_CircularGrid, V3d_RectangularGrid now create dedicated line aspects with different color. AIS_InteractiveObject::SetMaterial() - do not modify global ShadingAspect.
This commit is contained in:
@@ -181,7 +181,7 @@ void OpenGl_View::drawBackground (const Handle(OpenGl_Workspace)& theWorkspace)
|
||||
// - gradient fill type is not Aspect_GFM_NONE and
|
||||
// - either background texture is no specified or it is drawn in Aspect_FM_CENTERED mode
|
||||
if (myBgGradientArray->IsDefined()
|
||||
&& (!myTextureParams->DoTextureMap()
|
||||
&& (!myTextureParams->Aspect()->ToMapTexture()
|
||||
|| myBgTextureArray->TextureFillMethod() == Aspect_FM_CENTERED
|
||||
|| myBgTextureArray->TextureFillMethod() == Aspect_FM_NONE))
|
||||
{
|
||||
@@ -213,7 +213,7 @@ void OpenGl_View::drawBackground (const Handle(OpenGl_Workspace)& theWorkspace)
|
||||
// Drawing background image if it is defined
|
||||
// (texture is defined and fill type is not Aspect_FM_NONE)
|
||||
if (myBgTextureArray->IsDefined()
|
||||
&& myTextureParams->DoTextureMap())
|
||||
&& myTextureParams->Aspect()->ToMapTexture())
|
||||
{
|
||||
aCtx->core11fwd->glDisable (GL_BLEND);
|
||||
|
||||
@@ -688,7 +688,8 @@ void OpenGl_View::redraw (const Graphic3d_Camera::Projection theProjection, Open
|
||||
}
|
||||
else
|
||||
{
|
||||
glClearColor (myBgColor.rgb[0], myBgColor.rgb[1], myBgColor.rgb[2], 0.0f);
|
||||
const OpenGl_Vec4& aBgColor = myBgColor;
|
||||
glClearColor (aBgColor.r(), aBgColor.g(), aBgColor.b(), 0.0f);
|
||||
}
|
||||
|
||||
glClear (toClear);
|
||||
@@ -904,7 +905,7 @@ void OpenGl_View::render (Graphic3d_Camera::Projection theProjection,
|
||||
glFogi(GL_FOG_MODE, GL_LINEAR);
|
||||
glFogf(GL_FOG_START, (Standard_ShortReal )aFogFrontConverted);
|
||||
glFogf(GL_FOG_END, (Standard_ShortReal )aFogBackConverted);
|
||||
glFogfv(GL_FOG_COLOR, myFog.Color.rgb);
|
||||
glFogfv(GL_FOG_COLOR, myFog.Color.GetData());
|
||||
glEnable(GL_FOG);
|
||||
}
|
||||
else if (aContext->core11 != NULL)
|
||||
|
Reference in New Issue
Block a user