use OGL 1.1 color logic ops in addition to GL_EXT_blend_logic_op
diff --git a/progs/samples/blendeq.c b/progs/samples/blendeq.c
index 315257b..f78afd3 100644
--- a/progs/samples/blendeq.c
+++ b/progs/samples/blendeq.c
@@ -19,6 +19,8 @@
 
 GLenum doubleBuffer;
 static int dithering = 0;
+int use11ops = 0;
+int supportlogops = 0;
 static int doPrint = 1;
 static int deltaY;
 GLint windW, windH;
@@ -62,6 +64,13 @@
       case 'd':
 	dithering = !dithering;
 	break;
+      case 'l':
+        if (supportlogops == 3)
+           use11ops = (!use11ops);
+        if (use11ops)
+           printf("Using GL 1.1 color logic ops.\n");
+        else printf("Using GL_EXT_blend_logic_op.\n");
+        break;
       default:
 	return;
     }
@@ -100,6 +109,8 @@
 
     (dithering) ? glEnable(GL_DITHER) : glDisable(GL_DITHER);
     glDisable(GL_BLEND);
+    if (supportlogops & 2)
+       glDisable(GL_COLOR_LOGIC_OP);
 
     glClearColor(0.5, 0.6, 0.1, 1.0);
     glClear(GL_COLOR_BUFFER_BIT);
@@ -175,48 +186,46 @@
 
     glBlendFunc(GL_ONE, GL_ZERO);
     i -= deltaY;
-    glBlendEquationEXT(GL_LOGIC_OP);
+    if (!use11ops)
+       glBlendEquationEXT(GL_LOGIC_OP);
+    else
+       glEnable(GL_COLOR_LOGIC_OP);
     glLogicOp(GL_CLEAR);
     glRectf(x1, i, x2, i+deltaY);
 
     i -= deltaY;
-    glBlendEquationEXT(GL_LOGIC_OP);
     glLogicOp(GL_SET);
     glRectf(x1, i, x2, i+deltaY);
 
     i -= deltaY;
-    glBlendEquationEXT(GL_LOGIC_OP);
     glLogicOp(GL_COPY);
     glRectf(x1, i, x2, i+deltaY);
 
     i -= deltaY;
-    glBlendEquationEXT(GL_LOGIC_OP);
     glLogicOp(GL_NOOP);
     glRectf(x1, i, x2, i+deltaY);
 
     i -= deltaY;
-    glBlendEquationEXT(GL_LOGIC_OP);
     glLogicOp(GL_AND);
     glRectf(x1, i, x2, i+deltaY);
 
     i -= deltaY;
-    glBlendEquationEXT(GL_LOGIC_OP);
     glLogicOp(GL_INVERT);
     glRectf(x1, i, x2, i+deltaY);
 
     i -= deltaY;
-    glBlendEquationEXT(GL_LOGIC_OP);
     glLogicOp(GL_OR);
     glRectf(x1, i, x2, i+deltaY);
 
     i -= deltaY;
-    glBlendEquationEXT(GL_LOGIC_OP);
     glLogicOp(GL_XOR);
     glRectf(x1, i, x2, i+deltaY);
     glRectf(x1, i+10, x2, i+5);
 
   if (doPrint) {
       glDisable(GL_BLEND);
+      if (supportlogops & 2)
+          glDisable(GL_COLOR_LOGIC_OP);
       glColor3f(1.0, 1.0, 1.0);
       PrintColorStrings();
   }
@@ -254,6 +263,7 @@
     char *extName1 = "GL_EXT_blend_logic_op";
     char *extName2 = "GL_EXT_blend_minmax";
     char *extName3 = "GL_EXT_blend_subtract";
+    char *version;
 
     glutInit(&argc, argv);
 
@@ -273,10 +283,21 @@
 
     /* Make sure blend_logic_op extension is there. */
     s = (char *) glGetString(GL_EXTENSIONS);
+    version = (char*) glGetString(GL_VERSION);
     if (!s)
 	exit(1);
-    if (strstr(s,extName1) == 0) {
-	printf("Blend_logic_op extension is not present.\n");
+    if (strstr(s,extName1)) {
+	supportlogops = 1;
+        use11ops = 0;
+        printf("blend_logic_op extension available.\n");
+    }
+    if (strncmp(version,"1.1",3)>=0) {
+    	supportlogops += 2;
+        use11ops = 1;
+	printf("1.1 color logic ops available.\n");
+    }
+    if (supportlogops == 0) {
+    	printf("Blend_logic_op extension and GL 1.1 not present.\n");
 	exit(1);
     }
     if (strstr(s,extName2) == 0) {