Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 197 lines (138 sloc) 6.395 kb
6b1a642 @nigels-com Fiddling with .rst markup
nigels-com authored
1 Regal
252bcdb @casseveritt initial commit
casseveritt authored
2 =====
3
5d2cdda @casseveritt update the README.md
casseveritt authored
4 https://github.com/p3/regal
5
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
6 OpenGL portability layer for OpenGL 2.x, 3.x, 4.x, Core contexts and ES 2.0
5d2cdda @casseveritt update the README.md
casseveritt authored
7
af109c3 @casseveritt update README.rst
casseveritt authored
8 +---------------+----------------------------------------------------------------------+
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
9 | **Warning** | Regal is pre-alpha software, it is available here for evaluation |
694442b @casseveritt swap README.md with README.rst
casseveritt authored
10 | | and to play with the examples. Don't use it in your projects yet. |
11 | | You have been warned. |
af109c3 @casseveritt update README.rst
casseveritt authored
12 +---------------+----------------------------------------------------------------------+
5d2cdda @casseveritt update the README.md
casseveritt authored
13
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
14 Goals
15 -----
16
17 Regal is a portable OpenGL layer on top of existing OpenGL implementations.
18 Compile and link an app against Regal and deploy on various OpenGL implementations
19 including compatibility, core and ES 2.0 OpenGL contexts.
20
21 * Portability
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
22 Consistent OpenGL API that runs on all major platforms:
23 Windows, Linux, Mac, iOS, and Android
5d2cdda @casseveritt update the README.md
casseveritt authored
24
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
25 * Compatible
26 Immediate mode, fixed function, GL_QUADS work everywhere, emulated as necessary.
5d2cdda @casseveritt update the README.md
casseveritt authored
27
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
28 * Modern OpenGL API
29 Direct State Access (DSA) and Vertex Array Object (VAO), emulated as necessary.
5d2cdda @casseveritt update the README.md
casseveritt authored
30
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
31 * Open Source
32 There is nothing behind the curtain.
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
33 You can see what Regal is doing and change it if needed.
5d2cdda @casseveritt update the README.md
casseveritt authored
34
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
35 * Ease of Use
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
36 Set breakpoints on OpenGL functions.
37 Step into the code.
38 Inspect state.
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
39
40 * Efficiency
41 If it cannot be implemented efficiently in Regal, it is not universally supported.
42 For example, tessellation support requires tessellation hardware.
43
44 Deployment
45 ----------
46
47 * Most code remains unchanged.
48 * Optionally **#include <GL/Regal.h>**
49 * Link with **regal32.dll**, **libRegal.so** or **libRegal.dylib**
50
51 From an application developer's perspective, Regal just looks like an OpenGL implementation.
52 You link with it instead of your platform's OpenGL library or framework, and that's really
53 all you have to do to use Regal. The rest of your code can remain unchanged.
5d2cdda @casseveritt update the README.md
casseveritt authored
54
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
55 Features
56 --------
57
58 * Emulation
59
60 - Fixed function texturing, lighting and fog.
61 - Direct State Access extension
62
63 http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
64
65 - GL_EXT_debug_marker extension
66
67 http://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt
68
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
69 - Fixed function and DSA emulation enabled by default.
1df6ef2 @nigels-com Complete OpenGL API logging. Regal context initialization rework. More ...
nigels-com authored
70
4bcf96e @nigels-com Update boost sources to version 1.50.0
nigels-com authored
71 - Build-time configuration:
72
73 - **REGAL_NO_EMULATION** -- Disable the use of emulation
74 - **REGAL_FORCE_EMULATION** -- Force the use of emulation, even for compatibility contexts with DSA
75
76 - Environment variable configuration:
1df6ef2 @nigels-com Complete OpenGL API logging. Regal context initialization rework. More ...
nigels-com authored
77
4bcf96e @nigels-com Update boost sources to version 1.50.0
nigels-com authored
78 - **REGAL_NO_EMULATION** -- Disable the use of emulation
79 - **REGAL_FORCE_EMULATION** -- Force the use of emulation, even for compatibility contexts with DSA
1df6ef2 @nigels-com Complete OpenGL API logging. Regal context initialization rework. More ...
nigels-com authored
80
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
81 * OpenGL error checking
82
1df6ef2 @nigels-com Complete OpenGL API logging. Regal context initialization rework. More ...
nigels-com authored
83 - Disabled by default.
84
85 - Build-time configuration: **REGAL_ERROR**
86
87 - Environment variable configuration: **REGAL_ERROR**
88
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
89 * Browser-based interface
90
91 - Enabled by default.
92
93 - **REGAL_NO_HTTP** --- Build-time and environment variable enable/disable.
94 - **REGAL_HTTP_PORT** --- Port for HTTP connections (8080 by default)
95 - **REGAL_HTTP_LOG_LIMIT** --- Number of lines of logging buffered
96
97 - `http://127.0.0.1:8080/log`_ --- View log
98 - `http://127.0.0.1:8080/glEnable?GL_LOG_APP_REGAL`_ --- Enable/disable application logging
99 - `http://127.0.0.1:8080/glEnable?GL_LOG_DRIVER_REGAL`_ --- Enable/disable driver logging
100 - `http://127.0.0.1:8080`_ --- State information
101
102 .. _http://127.0.0.1:8080/log: http://127.0.0.1:8080/log
103 .. _http://127.0.0.1:8080/glEnable?GL_LOG_APP_REGAL: http://127.0.0.1:8080/glEnable?GL_LOG_APP_REGAL
104 .. _http://127.0.0.1:8080/glEnable?GL_LOG_DRIVER_REGAL: http://127.0.0.1:8080/glEnable?GL_LOG_DRIVER_REGAL
105 .. _http://127.0.0.1:8080: http://127.0.0.1:8080
106
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
107 * Logging
108
109 Regal supports detailed logging for development purposes.
110
111 - **Error** -- Fatal and non-fatal Regal runtime errors.
112 - **Warning** -- Non-fatal Regal warnings.
113 - **Info** -- Informational messages.
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
114 - **App** -- Application calls into Regal.
115 - **Driver** -- Regal calls into OpenGL.
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
116 - **Internal** -- Internal Regal calls.
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
117 - **Http** -- HTTP traffic logging.
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
118
119 Build-time configuration:
120
121 - **REGAL_LOG_ERROR**
122 - **REGAL_LOG_WARNING**
123 - **REGAL_LOG_INFO**
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
124 - **REGAL_LOG_APP**
125 - **REGAL_LOG_DRIVER**
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
126 - **REGAL_LOG_INTERNAL**
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
127 - **REGAL_LOG_HTTP**
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
128
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
129 * Debug mode: All logging supported with error, warning, info and http logging enabled.
130 * Release mode: Support for application, driver and internal logging disabled by default.
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
131
132 Environment variable configuration:
133
134 - **REGAL_LOG_ERROR**
135 - **REGAL_LOG_WARNING**
136 - **REGAL_LOG_INFO**
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
137 - **REGAL_LOG_APP**
138 - **REGAL_LOG_DRIVER**
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
139 - **REGAL_LOG_INTERNAL**
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
140 - **REGAL_LOG_HTTP**
141 - **REGAL_LOG_API** --- Application + Driver OpenGL logging
142 - **REGAL_LOG_NONE** --- enable or disable all logging
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
143
144 Environment variable lookup is globally disabled by defining **REGAL_NO_GETENV**
145 at compile-time.
146
147 Runtime configuration via **GL_REGAL_log** extension: (**glEnable/glDisable/glIsEnabled**)
148
149 - **GL_LOG_ERROR_REGAL**
150 - **GL_LOG_WARNING_REGAL**
151 - **GL_LOG_INFO_REGAL**
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
152 - **GL_LOG_APP_REGAL**
153 - **GL_LOG_DRIVER_REGAL**
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
154 - **GL_LOG_INTERNAL_REGAL**
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
155 - **GL_LOG_HTTP_REGAL**
156
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
157 * Spoofing OpenGL vendor, renderer, version and extension strings
158
159 Build-time configuration
160
161 - **REGAL_GL_VENDOR**
162 - **REGAL_GL_RENDERER**
163 - **REGAL_GL_VERSION**
164 - **REGAL_GL_EXTENSION**
165
166 Environment variable configuration:
167
168 - **REGAL_GL_VENDOR**
169 - **REGAL_GL_RENDERER**
170 - **REGAL_GL_VERSION**
171 - **REGAL_GL_EXTENSION**
172
173 Environment variable lookup is globally disabled by defining **REGAL_NO_GETENV**
174 at compile-time.
175
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
176 * Regal OpenGL extensions
177
178 - **GL_REGAL_error_string** for GLU-style GLenum to error string conversion.
179 - **GL_REGAL_extension_query** for GLEW-style extension checking.
180 - **GL_REGAL_log** for Regal logging configuration.
181
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
182 Planned Features
183 ----------------
5d2cdda @casseveritt update the README.md
casseveritt authored
184
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
185 * Debug label.
186 * Debug output.
0230589 @nigels-com Initial integration of HTTP server, port 8080.
nigels-com authored
187 * Web browser-based debugging tools.
9f08eb1 @nigels-com Updated XCode projects, boost::print::array, more API logging, documenta...
nigels-com authored
188 * Display list emulation.
5d2cdda @casseveritt update the README.md
casseveritt authored
189
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
190 Limitations
191 -----------
5d2cdda @casseveritt update the README.md
casseveritt authored
192
892d6c4 @nigels-com Add logging. Add GLenum string lookup. GL API additions. GLEW refresh. B...
nigels-com authored
193 * Incomplete implementation, so far.
194 * Limited GLSL language support.
195 * GL_QUADS only works in immediate mode or with DrawArrays for ES and core profiles.
6b1a642 @nigels-com Fiddling with .rst markup
nigels-com authored
196
Something went wrong with that request. Please try again.