return;
}
-#if !defined(GL_ES_VERSION_2_0)
- if (aGlContext->core11 != NULL)
- {
- glDisable (GL_LIGHTING);
- }
-#endif
-
const OpenGl_AspectLine* anAspectLineOld = theWorkspace->SetAspectLine (theWorkspace->AspectFace()->AspectEdge());
const OpenGl_AspectLine* anAspect = theWorkspace->ApplyAspectLine();
&& aGlContext->ActiveProgram()->HasTessellationStage()
? GL_PATCHES
: myDrawMode;
+#if !defined(GL_ES_VERSION_2_0)
+ if (aGlContext->ActiveProgram().IsNull()
+ && aGlContext->core11 != NULL)
+ {
+ glDisable (GL_LIGHTING);
+ }
+#endif
/// OCC22236 NOTE: draw edges for all situations:
/// 1) draw elements with GL_LINE style as edges from myPArray->bufferVBO[VBOEdges] indices array
{
#if !defined(GL_ES_VERSION_2_0)
GLint aShadingModelOld = GL_SMOOTH;
- if (aCtx->core11 != NULL)
+ if (aCtx->core11 != NULL
+ && aCtx->caps->ffpEnable)
{
aCtx->core11fwd->glDisable (GL_LIGHTING);
aCtx->core11fwd->glGetIntegerv (GL_SHADE_MODEL, &aShadingModelOld);
myBgGradientArray->Render (theWorkspace);
#if !defined(GL_ES_VERSION_2_0)
- if (aCtx->core11 != NULL)
+ if (aCtx->core11 != NULL
+ && aCtx->caps->ffpEnable)
{
aCtx->core11->glShadeModel (aShadingModelOld);
}
// reset state for safety
aCtx->BindProgram (Handle(OpenGl_ShaderProgram)());
- aCtx->ShaderManager()->PushState (Handle(OpenGl_ShaderProgram)());
+ if (aCtx->caps->ffpEnable)
+ {
+ aCtx->ShaderManager()->PushState (Handle(OpenGl_ShaderProgram)());
+ }
// Swap the buffers
if (toSwap)
// reset state for safety
aCtx->BindProgram (Handle(OpenGl_ShaderProgram)());
- aCtx->ShaderManager()->PushState (Handle(OpenGl_ShaderProgram)());
+ if (aCtx->caps->ffpEnable)
+ {
+ aCtx->ShaderManager()->PushState (Handle(OpenGl_ShaderProgram)());
+ }
if (toSwap && !aCtx->caps->buffersNoSwap)
{
#if !defined(GL_ES_VERSION_2_0)
// Switch off lighting by default
- if (aContext->core11 != NULL)
+ if (aContext->core11 != NULL
+ && aContext->caps->ffpEnable)
{
glDisable(GL_LIGHTING);
}
// reset FFP state for safety
aContext->BindProgram (Handle(OpenGl_ShaderProgram)());
- aContext->ShaderManager()->PushState (Handle(OpenGl_ShaderProgram)());
+ if (aContext->caps->ffpEnable)
+ {
+ aContext->ShaderManager()->PushState (Handle(OpenGl_ShaderProgram)());
+ }
// ==============================================================
// Step 6: Keep shader manager informed about last View
#if !defined(GL_ES_VERSION_2_0)
if (myGlContext->core11 != NULL)
{
- // Eviter d'avoir les faces mal orientees en noir.
- // Pourrait etre utiliser pour detecter les problemes d'orientation
+ // enable two-side lighting by default
glLightModeli ((GLenum )GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
-
- // Optimisation pour le Fog et l'antialiasing
- glHint (GL_FOG_HINT, GL_FASTEST);
- glHint (GL_POINT_SMOOTH_HINT, GL_FASTEST);
+ glHint (GL_POINT_SMOOTH_HINT, GL_FASTEST);
+ if (myGlContext->caps->ffpEnable)
+ {
+ glHint (GL_FOG_HINT, GL_FASTEST);
+ }
}
glHint (GL_LINE_SMOOTH_HINT, GL_FASTEST);
{
myGlContext->core20fwd->glUseProgram (OpenGl_ShaderProgram::NO_PROGRAM);
}
- myGlContext->ShaderManager()->PushState (Handle(OpenGl_ShaderProgram)());
+ if (myGlContext->caps->ffpEnable)
+ {
+ myGlContext->ShaderManager()->PushState (Handle(OpenGl_ShaderProgram)());
+ }
return Standard_True;
}