~ubuntu-branches/ubuntu/trusty/glew/trusty

« back to all changes in this revision

Viewing changes to auto/src/glew_init_gl.c

  • Committer: Bazaar Package Importer
  • Author(s): Joost Yervante Damad
  • Date: 2009-05-11 17:48:06 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20090511174806-hpbwcimkr4ir0mfl
Tags: 1.5.1-4
make sure mx library really is MX (closes: #528232)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* ------------------------------------------------------------------------- */
2
 
 
3
 
/* 
4
 
 * Search for name in the extensions string. Use of strstr()
5
 
 * is not sufficient because extension names can be prefixes of
6
 
 * other extension names. Could use strtok() but the constant
7
 
 * string returned by glGetString might be in read-only memory.
8
 
 */
9
 
GLboolean glewGetExtension (const char* name)
10
 
{    
11
 
  GLubyte* p;
12
 
  GLubyte* end;
13
 
  GLuint len = _glewStrLen((const GLubyte*)name);
14
 
  p = (GLubyte*)glGetString(GL_EXTENSIONS);
15
 
  if (0 == p) return GL_FALSE;
16
 
  end = p + _glewStrLen(p);
17
 
  while (p < end)
18
 
  {
19
 
    GLuint n = _glewStrCLen(p, ' ');
20
 
    if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE;
21
 
    p += n+1;
22
 
  }
23
 
  return GL_FALSE;
24
 
}
25
 
 
26
 
/* ------------------------------------------------------------------------- */
27
 
 
28
 
#ifndef GLEW_MX
29
 
static
30
 
#endif
31
 
GLenum glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST)
32
 
{
33
 
  const GLubyte* s;
34
 
  GLuint dot, major, minor;
35
 
  /* query opengl version */
36
 
  s = glGetString(GL_VERSION);
37
 
  dot = _glewStrCLen(s, '.');
38
 
  major = dot-1;
39
 
  minor = dot+1;
40
 
  if (dot == 0 || s[minor] == '\0')
41
 
    return GLEW_ERROR_NO_GL_VERSION;
42
 
  if (s[major] == '1' && s[minor] == '0')
43
 
  {
44
 
        return GLEW_ERROR_GL_VERSION_10_ONLY;
45
 
  }
46
 
  else
47
 
  {
48
 
    CONST_CAST(GLEW_VERSION_1_1) = GL_TRUE;
49
 
        if (s[major] >= '2')
50
 
        {
51
 
      CONST_CAST(GLEW_VERSION_1_2) = GL_TRUE;
52
 
      CONST_CAST(GLEW_VERSION_1_3) = GL_TRUE;
53
 
      CONST_CAST(GLEW_VERSION_1_4) = GL_TRUE;
54
 
          CONST_CAST(GLEW_VERSION_1_5) = GL_TRUE;
55
 
          CONST_CAST(GLEW_VERSION_2_0) = GL_TRUE;
56
 
          if (s[minor] >= '1')
57
 
          {
58
 
            CONST_CAST(GLEW_VERSION_2_1) = GL_TRUE;
59
 
      }
60
 
        }
61
 
        else
62
 
        {
63
 
          if (s[minor] >= '5')
64
 
          {
65
 
                CONST_CAST(GLEW_VERSION_1_2) = GL_TRUE;
66
 
                CONST_CAST(GLEW_VERSION_1_3) = GL_TRUE;
67
 
                CONST_CAST(GLEW_VERSION_1_4) = GL_TRUE;
68
 
                CONST_CAST(GLEW_VERSION_1_5) = GL_TRUE;
69
 
                CONST_CAST(GLEW_VERSION_2_0) = GL_FALSE;
70
 
                CONST_CAST(GLEW_VERSION_2_1) = GL_FALSE;
71
 
          }
72
 
          if (s[minor] == '4')
73
 
          {
74
 
                CONST_CAST(GLEW_VERSION_1_2) = GL_TRUE;
75
 
                CONST_CAST(GLEW_VERSION_1_3) = GL_TRUE;
76
 
                CONST_CAST(GLEW_VERSION_1_4) = GL_TRUE;
77
 
                CONST_CAST(GLEW_VERSION_1_5) = GL_FALSE;
78
 
                CONST_CAST(GLEW_VERSION_2_0) = GL_FALSE;
79
 
                CONST_CAST(GLEW_VERSION_2_1) = GL_FALSE;
80
 
          }
81
 
          if (s[minor] == '3')
82
 
          {
83
 
                CONST_CAST(GLEW_VERSION_1_2) = GL_TRUE;
84
 
                CONST_CAST(GLEW_VERSION_1_3) = GL_TRUE;
85
 
                CONST_CAST(GLEW_VERSION_1_4) = GL_FALSE;
86
 
                CONST_CAST(GLEW_VERSION_1_5) = GL_FALSE;
87
 
                CONST_CAST(GLEW_VERSION_2_0) = GL_FALSE;
88
 
                CONST_CAST(GLEW_VERSION_2_1) = GL_FALSE;
89
 
          }
90
 
          if (s[minor] == '2')
91
 
          {
92
 
                CONST_CAST(GLEW_VERSION_1_2) = GL_TRUE;
93
 
                CONST_CAST(GLEW_VERSION_1_3) = GL_FALSE;
94
 
                CONST_CAST(GLEW_VERSION_1_4) = GL_FALSE;
95
 
                CONST_CAST(GLEW_VERSION_1_5) = GL_FALSE;
96
 
                CONST_CAST(GLEW_VERSION_2_0) = GL_FALSE;
97
 
                CONST_CAST(GLEW_VERSION_2_1) = GL_FALSE;
98
 
          }
99
 
          if (s[minor] < '2')
100
 
          {
101
 
                CONST_CAST(GLEW_VERSION_1_2) = GL_FALSE;
102
 
                CONST_CAST(GLEW_VERSION_1_3) = GL_FALSE;
103
 
                CONST_CAST(GLEW_VERSION_1_4) = GL_FALSE;
104
 
                CONST_CAST(GLEW_VERSION_1_5) = GL_FALSE;
105
 
                CONST_CAST(GLEW_VERSION_2_0) = GL_FALSE;
106
 
                CONST_CAST(GLEW_VERSION_2_1) = GL_FALSE;
107
 
          }
108
 
        }
109
 
  }
110
 
  /* initialize extensions */
 
1
/* ------------------------------------------------------------------------- */
 
2
 
 
3
/* 
 
4
 * Search for name in the extensions string. Use of strstr()
 
5
 * is not sufficient because extension names can be prefixes of
 
6
 * other extension names. Could use strtok() but the constant
 
7
 * string returned by glGetString might be in read-only memory.
 
8
 */
 
9
GLboolean glewGetExtension (const char* name)
 
10
{    
 
11
  GLubyte* p;
 
12
  GLubyte* end;
 
13
  GLuint len = _glewStrLen((const GLubyte*)name);
 
14
  p = (GLubyte*)glGetString(GL_EXTENSIONS);
 
15
  if (0 == p) return GL_FALSE;
 
16
  end = p + _glewStrLen(p);
 
17
  while (p < end)
 
18
  {
 
19
    GLuint n = _glewStrCLen(p, ' ');
 
20
    if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE;
 
21
    p += n+1;
 
22
  }
 
23
  return GL_FALSE;
 
24
}
 
25
 
 
26
/* ------------------------------------------------------------------------- */
 
27
 
 
28
#ifndef GLEW_MX
 
29
static
 
30
#endif
 
31
GLenum glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST)
 
32
{
 
33
  const GLubyte* s;
 
34
  GLuint dot, major, minor;
 
35
  /* query opengl version */
 
36
  s = glGetString(GL_VERSION);
 
37
  dot = _glewStrCLen(s, '.');
 
38
  major = dot-1;
 
39
  minor = dot+1;
 
40
  if (dot == 0 || s[minor] == '\0')
 
41
    return GLEW_ERROR_NO_GL_VERSION;
 
42
  if (s[major] == '1' && s[minor] == '0')
 
43
  {
 
44
        return GLEW_ERROR_GL_VERSION_10_ONLY;
 
45
  }
 
46
  else
 
47
  {
 
48
    CONST_CAST(GLEW_VERSION_1_1) = GL_TRUE;
 
49
        if (s[major] >= '2')
 
50
        {
 
51
      CONST_CAST(GLEW_VERSION_1_2) = GL_TRUE;
 
52
      CONST_CAST(GLEW_VERSION_1_3) = GL_TRUE;
 
53
      CONST_CAST(GLEW_VERSION_1_4) = GL_TRUE;
 
54
          CONST_CAST(GLEW_VERSION_1_5) = GL_TRUE;
 
55
          CONST_CAST(GLEW_VERSION_2_0) = GL_TRUE;
 
56
          if (s[minor] >= '1')
 
57
          {
 
58
            CONST_CAST(GLEW_VERSION_2_1) = GL_TRUE;
 
59
      }
 
60
        }
 
61
        else
 
62
        {
 
63
          if (s[minor] >= '5')
 
64
          {
 
65
                CONST_CAST(GLEW_VERSION_1_2) = GL_TRUE;
 
66
                CONST_CAST(GLEW_VERSION_1_3) = GL_TRUE;
 
67
                CONST_CAST(GLEW_VERSION_1_4) = GL_TRUE;
 
68
                CONST_CAST(GLEW_VERSION_1_5) = GL_TRUE;
 
69
                CONST_CAST(GLEW_VERSION_2_0) = GL_FALSE;
 
70
                CONST_CAST(GLEW_VERSION_2_1) = GL_FALSE;
 
71
          }
 
72
          if (s[minor] == '4')
 
73
          {
 
74
                CONST_CAST(GLEW_VERSION_1_2) = GL_TRUE;
 
75
                CONST_CAST(GLEW_VERSION_1_3) = GL_TRUE;
 
76
                CONST_CAST(GLEW_VERSION_1_4) = GL_TRUE;
 
77
                CONST_CAST(GLEW_VERSION_1_5) = GL_FALSE;
 
78
                CONST_CAST(GLEW_VERSION_2_0) = GL_FALSE;
 
79
                CONST_CAST(GLEW_VERSION_2_1) = GL_FALSE;
 
80
          }
 
81
          if (s[minor] == '3')
 
82
          {
 
83
                CONST_CAST(GLEW_VERSION_1_2) = GL_TRUE;
 
84
                CONST_CAST(GLEW_VERSION_1_3) = GL_TRUE;
 
85
                CONST_CAST(GLEW_VERSION_1_4) = GL_FALSE;
 
86
                CONST_CAST(GLEW_VERSION_1_5) = GL_FALSE;
 
87
                CONST_CAST(GLEW_VERSION_2_0) = GL_FALSE;
 
88
                CONST_CAST(GLEW_VERSION_2_1) = GL_FALSE;
 
89
          }
 
90
          if (s[minor] == '2')
 
91
          {
 
92
                CONST_CAST(GLEW_VERSION_1_2) = GL_TRUE;
 
93
                CONST_CAST(GLEW_VERSION_1_3) = GL_FALSE;
 
94
                CONST_CAST(GLEW_VERSION_1_4) = GL_FALSE;
 
95
                CONST_CAST(GLEW_VERSION_1_5) = GL_FALSE;
 
96
                CONST_CAST(GLEW_VERSION_2_0) = GL_FALSE;
 
97
                CONST_CAST(GLEW_VERSION_2_1) = GL_FALSE;
 
98
          }
 
99
          if (s[minor] < '2')
 
100
          {
 
101
                CONST_CAST(GLEW_VERSION_1_2) = GL_FALSE;
 
102
                CONST_CAST(GLEW_VERSION_1_3) = GL_FALSE;
 
103
                CONST_CAST(GLEW_VERSION_1_4) = GL_FALSE;
 
104
                CONST_CAST(GLEW_VERSION_1_5) = GL_FALSE;
 
105
                CONST_CAST(GLEW_VERSION_2_0) = GL_FALSE;
 
106
                CONST_CAST(GLEW_VERSION_2_1) = GL_FALSE;
 
107
          }
 
108
        }
 
109
  }
 
110
  /* initialize extensions */