0027700: Visualization - glPolygonMode() used for frame drawing affects label text...
authorapl <apl@opencascade.com>
Mon, 1 Aug 2016 19:09:20 +0000 (22:09 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 4 Aug 2016 08:56:59 +0000 (11:56 +0300)
commit6d0e6be5a215a332bcc50aacbfd3f1e6ae1e11ef
tree674c1df03171bfc831d1e7342b7d21bec5fcbfe9
parentd509e5a43fa5b5144bf9299399254c45a3fca211
0027700: Visualization - glPolygonMode() used for frame drawing affects label text shading

Patch extends GL-state caching mechanism of OpenGl_Context by new methods.
The methods allow setting/inquiring polygon rasterization and hatching modes:
- OpenGl_Context::SetPolygonMode
- OpenGl_Context::SetPolygonHatchEnabled
- OpenGl_Context::SetPolygonHatchStyle

With these methods OpenGl_Text is able to configure shading as necessary.
And this configuration is done irrespectively of currently defined face aspect.
Code of OpenGl_Workspace is also modified to use these methods as well.

Porting notes:
- OpenGl_LineAttributes now require OpenGl_Context instance for calling GL API.
- OpenGl_LineAttributes has new flag IsEnabled, it turns on/off hatching without changing the hatch type.
  By default this flag is turned on and can be never modified for compatibility with old code.
- OpenGl_LineAttributes is not anymore a field of OpenGl_Workspace::myLineAttrib.
  This resource is directly created by an OpenGl_Context instance on demand.
  If you use custom implementation of hatch patterns please create and share custom resource
  under resource-key "OpenGl_LineAttributes" in corresponding OpenGl_Context before using
  methods SetPolygonHatchEnabled, SetPolygonHatchStyle.
src/OpenGl/OpenGl_Context.cxx
src/OpenGl/OpenGl_Context.hxx
src/OpenGl/OpenGl_LineAttributes.cxx
src/OpenGl/OpenGl_LineAttributes.hxx
src/OpenGl/OpenGl_Text.cxx
src/OpenGl/OpenGl_Workspace.cxx
src/OpenGl/OpenGl_Workspace.hxx
src/QABugs/QABugs_19.cxx
tests/bugs/vis/bug27700 [new file with mode: 0644]