Browse Source

Initial glLoadGen work.

Added README, extension list, patch required for it to work on GL 2.1
and the generated files.
pull/23/head
Vladimír Vondruš 13 years ago
parent
commit
a83e718c2e
  1. 16
      external/OpenGL/GL/README.md
  2. 12
      external/OpenGL/GL/extensions.txt
  3. 2756
      external/OpenGL/GL/gl_magnum.c
  4. 3178
      external/OpenGL/GL/gl_magnum.h
  5. 17
      external/OpenGL/GL/glloadgen.patch

16
external/OpenGL/GL/README.md vendored

@ -0,0 +1,16 @@
OpenGL header and extension loader is generated using [glLoadGen](https://bitbucket.org/alfonse/glloadgen),
preferrably from tip of the development branch, currently `2.0`. For it to work
flawlessly on OpenGL 2.1 and simultaenously not containing all that pre-core
stuff, you need to patch it with included `glloadgen.patch`, which will then
force it to use pre-3.0 `glGetString(GL_EXTENSIONS)` even if we request OpenGL
4.4. Otherwise it would use `glGetStringi(GL_EXTENSIONS, i)`, which is not
available on OpenGL 2.1 and extension loading will fail on these systems.
See `extensions.txt` for a list of requested non-core extensions. Copy the file
into glLoadGen directory and generate the files using Lua:
lua LoadGen.lua -style=pointer_c -indent=space -spec=gl -version=4.4 -profile=core -extfile=extensions.txt magnum
Then copy generated `gl_magnum.c` and `gl_magnum.h` to this directory. You may
want to remove trailing spaces to make the diff cleaner. Be sure to check the
diff for suspicious changes.

12
external/OpenGL/GL/extensions.txt vendored

@ -0,0 +1,12 @@
// The following output is taken from `magnum-info` with removed `GL_`
// suffixes. Only vendor extensions are needed, everything else is pulled in
// with OpenGL 4.4.
AMD_vertex_shader_layer
AMD_shader_trinary_minmax
ARB_robustness
ATI_texture_mirror_once
EXT_texture_filter_anisotropic
EXT_texture_mirror_clamp
EXT_direct_state_access
GREMEDY_string_marker

2756
external/OpenGL/GL/gl_magnum.c vendored

File diff suppressed because it is too large Load Diff

3178
external/OpenGL/GL/gl_magnum.h vendored

File diff suppressed because it is too large Load Diff

17
external/OpenGL/GL/glloadgen.patch vendored

@ -0,0 +1,17 @@
diff --git a/modules/Specs.lua b/modules/Specs.lua
index df4f5d5..95e0b97 100644
--- a/modules/Specs.lua
+++ b/modules/Specs.lua
@@ -116,9 +116,9 @@ function glx_spec.GetExtStringParamList(enumResolve) return "display, screen" en
-- Function name used to get an extension string.
-- Enumerator name used to get an extension string.
function gl_spec.GetIndexedExtStringFunc(options)
- if(tonumber(options.version) >= 3.0) then
- return {"GetIntegerv", "NUM_EXTENSIONS", "GetStringi", "EXTENSIONS"}
- end
+-- if(tonumber(options.version) >= 3.0) then
+-- return {"GetIntegerv", "NUM_EXTENSIONS", "GetStringi", "EXTENSIONS"}
+-- end
return nil
end
function wgl_spec.GetIndexedExtStringFunc(options) return nil end
Loading…
Cancel
Save