~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): Marcelo E. Magallon
  • Date: 2005-02-10 21:21:42 UTC
  • Revision ID: james.westby@ubuntu.com-20050210212142-2b1p2th5s3d0wjdz
Tags: upstream-1.3.1
ImportĀ upstreamĀ versionĀ 1.3.1

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 major, minor;
 
35
  /* query opengl version */
 
36
  s = glGetString(GL_VERSION);
 
37
  if (!s) return GLEW_ERROR_NO_GL_VERSION;
 
38
  major = _glewStrCLen(s, '.')-1;
 
39
  minor = _glewStrCLen(s, '.')+1;
 
40
  
 
41
  if (s+major == NULL
 
42
      || s+minor-1 == NULL || s+minor == NULL
 
43
      || (s[major] == 1 && s[minor] < '1'))
 
44
  {
 
45
    return GLEW_ERROR_GL_VERSION_10_ONLY;
 
46
  }
 
47
  else
 
48
  {
 
49
    if (s[major] >= '2')
 
50
    {
 
51
      GLEW_VERSION_1_1 = GL_TRUE;
 
52
      GLEW_VERSION_1_2 = GL_TRUE;
 
53
      GLEW_VERSION_1_3 = GL_TRUE;
 
54
      GLEW_VERSION_1_4 = GL_TRUE;
 
55
      GLEW_VERSION_1_5 = GL_TRUE;
 
56
      GLEW_VERSION_2_0 = GL_TRUE;
 
57
    }
 
58
    else
 
59
    {
 
60
      if (s[minor] >= '5')
 
61
      {
 
62
        GLEW_VERSION_1_1 = GL_TRUE;
 
63
        GLEW_VERSION_1_2 = GL_TRUE;
 
64
        GLEW_VERSION_1_3 = GL_TRUE;
 
65
        GLEW_VERSION_1_4 = GL_TRUE;
 
66
        GLEW_VERSION_1_5 = GL_TRUE;
 
67
        GLEW_VERSION_2_0 = GL_FALSE;
 
68
      }
 
69
      if (s[minor] == '4')
 
70
      {
 
71
        GLEW_VERSION_1_1 = GL_TRUE;
 
72
        GLEW_VERSION_1_2 = GL_TRUE;
 
73
        GLEW_VERSION_1_3 = GL_TRUE;
 
74
        GLEW_VERSION_1_4 = GL_TRUE;
 
75
        GLEW_VERSION_1_5 = GL_FALSE;
 
76
        GLEW_VERSION_2_0 = GL_FALSE;
 
77
      }
 
78
      if (s[minor] == '3')
 
79
      {
 
80
        GLEW_VERSION_1_1 = GL_TRUE;
 
81
        GLEW_VERSION_1_2 = GL_TRUE;
 
82
        GLEW_VERSION_1_3 = GL_TRUE;
 
83
        GLEW_VERSION_1_4 = GL_FALSE;
 
84
        GLEW_VERSION_1_5 = GL_FALSE;
 
85
        GLEW_VERSION_2_0 = GL_FALSE;
 
86
      }
 
87
      if (s[minor] == '2')
 
88
      {
 
89
        GLEW_VERSION_1_1 = GL_TRUE;
 
90
        GLEW_VERSION_1_2 = GL_TRUE;
 
91
        GLEW_VERSION_1_3 = GL_FALSE;
 
92
        GLEW_VERSION_1_4 = GL_FALSE;
 
93
        GLEW_VERSION_1_5 = GL_FALSE;
 
94
        GLEW_VERSION_2_0 = GL_FALSE;
 
95
      }
 
96
      if (s[minor] < '2')
 
97
      {
 
98
        GLEW_VERSION_1_1 = GL_TRUE;
 
99
        GLEW_VERSION_1_2 = GL_FALSE;
 
100
        GLEW_VERSION_1_3 = GL_FALSE;
 
101
        GLEW_VERSION_1_4 = GL_FALSE;
 
102
        GLEW_VERSION_1_5 = GL_FALSE;
 
103
        GLEW_VERSION_2_0 = GL_FALSE;
 
104
      }
 
105
    }
 
106
  }
 
107
  /* initialize extensions */