test20.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:4k
源码类别:

GIS编程

开发平台:

Visual C++

  1. /* Copyright (c) Mark J. Kilgard, 1996, 1997. */
  2. /* This program is freely distributable without licensing fees 
  3.    and is provided without guarantee or warrantee expressed or 
  4.    implied. This program is -not- in the public domain. */
  5. /* Test glutExtensionSupported. */
  6. #include <stdlib.h>
  7. #include <stdio.h>
  8. #include <string.h>
  9. #include <GL/glut.h>
  10. void
  11. wrangleExtensionName(char *extension)
  12. {
  13.   char buffer[512];
  14.   int rc, len;
  15.   sprintf(buffer, " %s", extension);
  16.   rc = glutExtensionSupported(buffer);
  17.   if (rc) {
  18.     printf("FAIL: test20, space prefixn");
  19.     exit(1);
  20.   }
  21.   sprintf(buffer, "%s ", extension);
  22.   rc = glutExtensionSupported(buffer);
  23.   if (rc) {
  24.     printf("FAIL: test20, space suffixn");
  25.     exit(1);
  26.   }
  27.   sprintf(buffer, "GL_%s", extension);
  28.   rc = glutExtensionSupported(buffer);
  29.   if (rc) {
  30.     printf("FAIL: test20, GL_ prefixn");
  31.     exit(1);
  32.   }
  33.   sprintf(buffer, "%s", extension + 1);
  34.   rc = glutExtensionSupported(buffer);
  35.   if (rc) {
  36.     printf("FAIL: test20, missing first charactern");
  37.     exit(1);
  38.   }
  39.   sprintf(buffer, "%s", extension);
  40.   len = (int) strlen(buffer);
  41.   if(len > 0) {
  42.     buffer[len-1] = '';
  43.   }
  44.   rc = glutExtensionSupported(buffer);
  45.   if (rc) {
  46.     printf("FAIL: test20, mising last charactern");
  47.     exit(1);
  48.   }
  49.   sprintf(buffer, "%s", extension);
  50.   len = (int) strlen(buffer);
  51.   if(len > 0) {
  52.     buffer[len-1] = 'X';
  53.   }
  54.   rc = glutExtensionSupported(buffer);
  55.   if (rc) {
  56.     printf("FAIL: test20, changed last charactern");
  57.     exit(1);
  58.   }
  59. }
  60. int
  61. main(int argc, char **argv)
  62. {
  63.   char *extension;
  64.   int rc;
  65.   glutInit(&argc, argv);
  66.   glutCreateWindow("test20");
  67.   extension = "GL_EXT_blend_color";
  68.   rc = glutExtensionSupported(extension);
  69.   printf("Extension %s is %s by your OpenGL.n", extension, rc ? "SUPPORTED" : "NOT supported");
  70.   if (rc) wrangleExtensionName(extension);
  71.   extension = "GL_EXT_abgr";
  72.   rc = glutExtensionSupported(extension);
  73.   printf("Extension %s is %s by your OpenGL.n", extension, rc ? "SUPPORTED" : "NOT supported");
  74.   if (rc) wrangleExtensionName(extension);
  75.   extension = "GL_EXT_blend_minmax";
  76.   rc = glutExtensionSupported(extension);
  77.   printf("Extension %s is %s by your OpenGL.n", extension, rc ? "SUPPORTED" : "NOT supported");
  78.   if (rc) wrangleExtensionName(extension);
  79.   extension = "GL_EXT_blend_logic_op";
  80.   rc = glutExtensionSupported(extension);
  81.   printf("Extension %s is %s by your OpenGL.n", extension, rc ? "SUPPORTED" : "NOT supported");
  82.   if (rc) wrangleExtensionName(extension);
  83.   extension = "GL_EXT_blend_subtract";
  84.   rc = glutExtensionSupported(extension);
  85.   printf("Extension %s is %s by your OpenGL.n", extension, rc ? "SUPPORTED" : "NOT supported");
  86.   if (rc) wrangleExtensionName(extension);
  87.   extension = "GL_EXT_polygon_offset";
  88.   rc = glutExtensionSupported(extension);
  89.   printf("Extension %s is %s by your OpenGL.n", extension, rc ? "SUPPORTED" : "NOT supported");
  90.   if (rc) wrangleExtensionName(extension);
  91.   extension = "GL_EXT_subtexture";
  92.   rc = glutExtensionSupported(extension);
  93.   printf("Extension %s is %s by your OpenGL.n", extension, rc ? "SUPPORTED" : "NOT supported");
  94.   if (rc) wrangleExtensionName(extension);
  95.   extension = "GL_EXT_texture";
  96.   rc = glutExtensionSupported(extension);
  97.   printf("Extension %s is %s by your OpenGL.n", extension, rc ? "SUPPORTED" : "NOT supported");
  98.   if (rc) wrangleExtensionName(extension);
  99.   extension = "GL_EXT_texture_object";
  100.   rc = glutExtensionSupported(extension);
  101.   printf("Extension %s is %s by your OpenGL.n", extension, rc ? "SUPPORTED" : "NOT supported");
  102.   if (rc) wrangleExtensionName(extension);
  103.   extension = "GL_SGIX_framezoom";
  104.   rc = glutExtensionSupported(extension);
  105.   printf("Extension %s is %s by your OpenGL.n", extension, rc ? "SUPPORTED" : "NOT supported");
  106.   if (rc) wrangleExtensionName(extension);
  107.   rc = glutExtensionSupported("");
  108.   if (rc) {
  109.     printf("FAIL: test20, null stringn");
  110.     exit(1);
  111.   }
  112.   printf("PASS: test20n");
  113.   return 0;             /* ANSI C requires main to return int. */
  114. }