diff -Nru dustrac-2.0.1/CHANGELOG dustrac-2.0.5/CHANGELOG --- dustrac-2.0.1/CHANGELOG 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/CHANGELOG 2020-01-06 23:07:24.000000000 +0000 @@ -1,310 +1,335 @@ +x.y.z +===== + +New features: + +Bug fixes: + +Other: + +2.0.5 +===== + +New features: + +* Show the actual car color in minimap + +Bug fixes: + +* Fix GitHub Issue #87: Improve off-track detection accuracy on curves +* Fix GitHub Issue #83: Car dots in minimap are too small on very large tracks + +Other: + +* Editor: Write processing instruction +* Add processing instructions to all existing tracks + +2.0.4 +===== + +Mostly a bug fix and code refactoring release. + +One new track Crossroads (by Wuzzy) added. + +New features: + +* Fix GitHub Issue #67: New track: Crossroads + +Bug fixes: + +* Fix GitHub Issue #59: Regression: Bridge is broken due to changes in collision detection +* Fix GitHub Issue #72: Apostrophe character is broken + - The font is now initialized with the full ASCII table +* Fix GitHub Issue #77: Pressing accelerate and brake at same time gives weird results +* Fix GitHub Issue #76: Dirt particles appear even when not moving on grass +* Fix GitHub Issue #66: Editor displays legacy track path on startup + - Effective only on Linux/Unix +* Fix GitHub Issue #69: Cars teleport above and below bridges when driving horizontally in Radiator +* Fix GitHub Issue #71: Confusing starting numbers in two player mode + +Other: + +* Fix GitHub Issue #74: Twister track has no pit stop +* Skip bridge tiles when placing car into start grid +* Require C++14 + +2.0.3 +===== + +New features: + +* Fix GitHub Issue #49: Change custom track directory + - On Linux/Unix also `$XDG_DATA_HOME/DustRacing2D/tracks` is added to search paths, + or `$HOME/.local/share/DustRacing2D/tracks` if `$XDG_DATA_HOME` is not defined. +* Fix GitHub Issue #53: Add a small delay before reverse engages + +Bug fixes: + +* Fix GitHub Issue #8: Confusing/weird stars +* Fix GitHub Issue #5: Pit stop spam + - Collision detection partly rewritten as a side effect +* Fix GitHub Issue #48: Walls and grandstands are pushable + +Other: + +* Refactor sparkle effect due to changed collision event behavior +* Use SimpleLogger instead of MCLogger + - Add --debug and --trace CLI options + - Throw on unknown arguments + +2.0.2 +===== + +New features: + +* Editor: Enable zooming with Ctrl+Wheel +* Fix GitHub Issue #43: Add option to force screen on multi-display setups + +Bug fixes: + +* Fix GitHub issue #30: Add more slack to zFar +* Fix GitHub Issue #40: cmake installs into /usr/local instead of /usr/local/bin +* Fix GitHub Issue #41: libqt5opengl5-dev is also missing on Ubuntu 18.04 +* Editor: Fix mistake in argument parsing +* Fix compiler options in CMakeLists.txt +* CMake: Fix C++ standard setting +* Fix GLES build: use explicitly GLES2/gl2.h +* Fix linking to OpenGL libs on CMake < 3.11.0 + +Other: + +* Improve AI braking points in Desert Storm +* Hard-code zFar to 10000.0f +* Editor: Remove edit->enlarge* because there's insert row/column +* Add separate build scripts for Jenkins +* Bump minimum required Qt version to 5.4.0 +* CMake: Default to GLVND, use the recommended way to link to GL + 2.0.1 ------ +===== + +A bug fix release to fix build on Qt 5.6+ + +Bug fixes: * Editor: use qSetGlobalQHashSeed with Qt 5.6+ -* Properly check for empty version in mxeWindowsBuild.sh + + qt_qhash_seed is no more exported in recent Qt 5.9.x versions, so use + the public functions for it available since Qt 5.6. + +Other: + +* Properly check for empty version in mxe-windows-build 2.0.0 ------ +===== + +This not a completely new game, but still so many fixes and changes that +it deserves a major version bump. + +New features: -* CMake: Set C++ standard with set_property() -* Fix some Clang warnings -* CMake: Set Debug and Release flags separately -* Improve off-track particle effects -* Improvements to 'Figure 8.trk' -* Tune sound levels -* Add ability to do burnouts -* Tune virtual revs -* Make speed in km/h a bit higher -* Hide cursor by default -* Add FPS menu -* Fix all resolutions getting triggered -* Add specific menu shader -* Set selected resolution correctly -* Switch AI to 'cool down' mode when the race is completed -* Update (guess) German translations -* Force upper case on titles in the credits page -* Tune sound volume levels -* Replace intro fade with a simple timer -* Update Italian translations -* Update Czech translations -* Update Italian translations -* Update all .ts-files -* Add scripts/updateTranslationFiles.sh -* Update authors and credits -* Add some missing license headers -* Add info text to lap count menu -* Update translation instructions -* Animate menu transitions -* Set default moment of inertia factor to 10 -* Refactor MCRectShape init -* Add default contructor to MCOBBox +* Animated game menus * Always select difficulty and lap count after selecting "Play" -* Move audio-related files to audio/ -* Move menu-related files to menu/ -* Tune Twineburg.trk -* Handle first and last menu item properly -* Make track selection menu a way cooler! -* Reset shadow FBO in ~Renderer() -* Make track length unitless -* Fixes to Radiator.trk -* Refactor top-level rendering code -* Add surrounding sand area to infinity.trk -* Adjust AI braking in Far Lands -* Editor: Fix object add on target nodes and other objects -* Remove MCTypes -* Editor: Fix the behavior of right-click -* Editor: Fix undo erasing computer hints -* Add more stuff to Far Lands -* Fade in/out the FBO shader only -* Create the bridge object as a mesh -* Improve mesh support -* Share code between surfaces and meshes -* Fix lighting issues -* New Dust Racing 2D banner object +* "Cool down" laps for AI to prevent the destruction derby +* Bridge object as a mesh +* Font changed to DejaVu +* FPS setting menu +* Fully destructible tracks to make races more unpredictable +* New intro image +* New particle effects +* New randomized tree objects +* Editor: Add CLI option to force language * Editor: Add option to force object stationary * Editor: Lock qhash random seed so that XML output is not randomized -* Fix the bridge -* Tune light colors -* Double the wall mass -* Improvements to twister.trk -* Fix undo on target node resize and object rotation -* Reset also shadowFbo on resolution change + +Improvements: + +* Improved driving dynamics. It's now possible to do burnouts +* Improved graphics and lighting +* Improvements and additions to many tracks +* Sound levels tuned + +Bug fixes: + * Fix GitHub issue #26: Undo resets tile rotations -* MiniCore: Don't use surface object batching -* MiniCore: Use correct programs in surface object renderers -* Editor: Add CLI option to force language -* Update Finnish translations -* Remove dustRacing2D.svg -* New about.png -* Remove dustRacing.png -* Fix computer driving line in Desert Storm.trk -* Set colors for skid marks -* Set color for braking glow -* MiniCore: Fix most problems with transparent particle / object batches -* Refactor credits -* MiniCore: Make MCTextureText copyable -* Move settingsBack.svg to a correct dir -* New intro image -* More trees to triangle.trk -* Randomize trees -* Fix menu background images with respect to width -* New settings back -* Fix driving lines in Curvastone -* Fix brake lights -* Make all objects movable -* Rewrite trees -* MiniCore: Update legacy renderers -* MiniCore: Make it possible to scale MCShapeView -* MiniCore: Remove useless batchMode crap -* MiniCore: Fix surface color and alpha blending mess -* MiniCore: Refactor MCSurface::setScale() -* MiniCore: Add all objects to the grid -* MiniCore: Fix object clipping -* MiniCore: Refactor object and view ID's -* MiniCore: Move MCShape::setRadius() to public scope -* Fix qmake build -* More transparent smoke -* New sparkle particle -* New mud particle -* Make TrackItem use the new stepTime(int) member -* Animate menu items -* MiniCore: MCTextureText sizes in floats -* Improve texture font generation -* MiniCore: Fix the use of GL_MAX_TEXTURE_SIZE -* MiniCore: MCTextureText size as floats * Fix GitHub issue #24: Change the game font to DejaVu -* MiniCore: Add support for texture font densities -* Remove obsolete fonts.conf -* Tune particle parameters -* MiniCore: Improved MCVector2D::lengthFast() +* Fix qmake build * Fix some particle life times -* MiniCore: Fix angular integration -* Take per-vertex Z-coordinate into account in MCSurfaceObjectRenderer -* Update MiniCore -* Sky as SVG * Fix some compiler warnings -* Refactor MXE build scripts -* Refactor renderer.cpp -* Decrease view angle to 22.5 degrees -* Add build scripts for Jenkins -* Make unit tests guiless -* Update brake sign, add SVG -* Update left and right signs, add SVG -* Install AppData file to the right location -* Install also possible font licence files -* Add licence for Ubuntu fonts * Fix shader deletion issues reported by Valgrind -* Fixing clang build which attributes wrongly std=c++11 into C compiler flags. -* Fixing build with GLEW and QOpenGLFunctions=OFF. -* Update screenshots in README.md +* Fix clang build which attributes wrongly std=c++11 into C compiler flags +* Fix build with GLEW and QOpenGLFunctions=OFF * Fix CMake dev build +* Editor: Fix object add on target nodes and other objects +* Editor: Fix the behavior of right-click +* Editor: Fix undo erasing computer hints +* Editor: Fix undo on target node resize and object rotation + +Other: + +* Translation updates +* Lots of code refactored 1.13.0 ------- +====== + +New features: +* Implement a minimap * Editor: Implement universal undo stack * Editor: Add option to insert row/col before or after -* Implement a minimap -* Refactor editor/editordata.hpp -* Refactor race.cpp -* Refactor pointer use in the game -* Refactor pointer use in the editor -* Refactor game/trackloader.cpp -* Refactor editor/trackio.cpp -* Refactor game.cpp -* Refactor TrackLoader usage -* Refactor game init -* Cosmetic changes to tracktile.hpp -* Delete OpenGL context as the last object -* Fix crash on settings loading -* Include for std::rand -* Make debian/rules use CMake directly -* Prefer out-of-source CMake build in INSTALL -* Update copyright text -* Fix build with MXE and Qt project files -* Add pulseaudio to static Qt5 build config -* Readiness to see the next target node for AI + +Bug fixes: + +* Fix GitHub issue #9: Editor segfaults when undoing a change on the last row/column which got deleted before +* Fix GitHub issue #19: Crash on exit on FreeBSD +* Fix a potential crash on settings loading + +Other: + +* Lots of code refactored 1.12.0 ------- +====== -* Redo startlight graphics in SVG -* CMake: Switch to the recommended way to link Qt5 -* Make the steering more stable -* Add a Linux AppData file. -* Add 3 new tracks by Wuzzy -* Remove CMake policy CMP0054 setting. -* Fix GitHub issue #7: Bad track preview images. -* Fix GitHub issue #6: Assertion failure when empty route cleared. -* Add 4 new tracks by Wuzzy -* Remove lower bridge rails for now. -* Add 'de' to lang options in README. +New features: + +* 7 new tracks by Wuzzy * Add German translation -* Track prop. dialog can set user track and name -* Fix VBO binding. -* Refactor trackselectionmenu.cpp -* Implement MCObject's physics properties as a separate component. -* Remove useless uniforms from shadow shaders. -* Eliminate copy-pasted web site url's. + +Improvements: + +* Make the steering more stable +* Redo startlight graphics in SVG * Improve log messages about translations. * Editor: Improve override cursor logic. * Editor: Remove dead code. -* Refactor TrackDataBase. * Update Czech translations. +Bug fixes: + +* Fix GitHub issue #7: Bad track preview images. +* Fix GitHub issue #6: Assertion failure when empty route cleared. +* Remove lower bridge rails for now. + +Other: + +* CMake: Switch to the recommended way to link Qt5 + 1.11.0 ------- +====== + +New features: + +* Finally a difficulty setting with three levels: Easy, Medium and Senna +* Show a red overlay on hard crashes +* Cars can get damaged + +Improvements: + +* Remove alpha blending from the plant object +* Stabilize the steering a bit + +Bug fixes: + +* Editor: Fix wrong scale when track given as a CLI argument +* Editor: Don't try to open a track if filename is empty +* Fix unit tests + +Other: -* Show a red overlay on hard crashes. -* Fix unit tests. -* Own layer for damage smoke. -* Remove misleading comments. -* Eliminate copy-paste. -* Editor: Fix wrong scale when track given as a CLI argument. -* Add body damage system. -* Stabilize the steering a bit. -* Make difficulty setting affect game speed. -* Add difficulty selection. * Refactor settingsmenu.hpp -* Refactor steering logic. -* Editor: Don't try to open a track if filename is empty. -* Use same renderer for all particle batches. -* Sparkles as surface particles. -* Remove alpha blending from the plant object. -* Add screenshots of 1.10.0 -* Sort particles in place. -* Update web/index.html +* Refactor steering logic +* Sparkles as surface particles +* Use same renderer for all particle batches 1.10.0 ------- +====== -* Remove some needless assert's. -* Reduce quadratic drag. -* Move brake signs a bit further. -* Add a chicane to straight.trk and make it shorter. -* Move MCGLScene to MCWorldRenderer. -* Common base class for all particle renderers. -* Refactor particle rendering. -* Smaller tree swing amplitude. -* Fix cppcheck warnings. -* Mud particles as surface particles. -* Make it possible to spin. -* Take more car colors in to use. -* Simple specular effect for the cars. -* Fix specular lighting of the tire object. -* No leaf particle when colliding with plants. -* Higher z for the plant object. -* Implement batching and shadows for MCSurfaceParticles. -* New-style signal connections in Game. -* Lambda slots for show/hide cursor. -* Lambda slot for the update timer. -* Eliminate magic numbers. -* Add MCSurfaceParticleRenderer. -* Longer start grid to Suzuka. -* Editor: Implement row and col deletion. -* Editor: replace some if's with asserts. -* Editor: Fit track properly when loading a track. -* More sane use of casts. -* C++11 way to disable copy ctor's. -* Cosmetic changes to tracktile.hpp. -* Editor: Implement row and column insertion. -* Refactor Config. -* Remove unused class TileTypeDialog. -* Editor: Use C++11's override specifier. -* Editor: Replace private slots with lambdas in EditorView. -* Editor: Cosmetic changes to EditorView. -* Use add_compile_options() instead of appending CMAKE_CXX_FLAGS. -* Render rect particles as quads if not GLES. -* Add MCGLRectParticleRenderer. -* Show lap time in message area. -* Fix a typo. -* Remove obsolete images. -* Use GLSL's reflect(). -* Replace MCException with std::runtime_error. -* Use C++11's move semantics in MCBBox and MCBBox3d. -* Use C++11's move semantics in MCVector2d and MCVector3d. -* Refactor child velocity logic. -* Don't set render layer when on bridge. -* Render hud after shadows. -* Refactor MCSurfaceConfigLoader. -* Enable depth test for smoke. -* Fix depth test toggling in MCWorldRenderer. -* Remove render layers from cars' sub-objects. -* Render shadows with depth information. -* Update point sizes after resolution change. -* Refactor bridge creation. -* Fix build with qmake. -* Rescue corrupted dev branch. -* Set z-offsets for car surfaces. -* Add optional z attribute to MCSurface / surface config loader. -* Fix exception handling. +In this release multiple issues with shadow rendering are fixed. +Particle rendering is completely reworked and also the track editor +is given some love. Issues with depth testing are fixed. A lot of +bug fixes and miscellaneous improvements and changes. + +New features: + +* Add a chicane to straight.trk and make it shorter +* Instantly change the virtual resolution between fullscreen modes +* Longer start grid to Suzuka +* Make it possible to spin +* Show lap time in message area +* Simple specular effect for the cars +* Take more car colors in to use +* Editor: Different colors for brake and brake hard +* Editor: Implement row and col deletion +* Editor: Implement row and column insertion + +Improvements: + +* Enable depth test for smoke +* Implement batching and shadows for MCSurfaceParticles +* Make timing based on frames instead of QTime +* Mud particles as surface particles +* No leaf particle when colliding with plants +* Reduce quadratic drag +* Refactor particle rendering * Rename textures.conf => surfaces.conf +* Render rect particles as quads if not GLES +* Render shadows with depth information +* Set z-offsets for car surfaces +* Smaller tree swing amplitude +* Use GLSL's reflect() +* Editor: Fit track properly when loading a track +* Editor: Improve some tile graphics +* Editor: Replace private slots with lambdas in EditorView +* Editor: Replace some if's with asserts +* Editor: Use C++11's override specifier + +Bug fixes: + +* Fix a bug where mouse release outside pressed item caused two items being focused +* Fix build with qmake +* Fix cppcheck warnings +* Fix depth buffering +* Fix exception handling +* Fix specular lighting of the tire object + +Other: + +* Add optional z attribute to MCSurface / surface config loader * Add mcvector2d.hh and mcvector3d.hh to CMakeLists.txt -* Divide layers into render and collision layers. -* Fix depth buffering. -* Add option to filter layers to be rendered. -* Use C++11 enum class in ResetAction. -* Use C++11 enum class in InputHandler. -* Use C++11 enum class in Game. -* Use C++11 enum class in MTFH::Menu. -* Use C++11 enum class for state. -* Use C++11 enum class for layers. -* Editor: Improve some tile graphics. -* Editor: Different colors for brake and brake hard. -* Refactor the use of gravity. -* Make timing based on frames instead of QTime. -* Fix a bug where mouse release outside pressed item caused two items being focused. -* Instantly change the virtual resolution between fullscreen modes. +* Add option to filter layers to be rendered +* C++11 way to disable copy ctor's +* Common base class for all particle renderers +* Divide layers into render and collision layers +* Lambda slots for show/hide cursor +* Lambda slot for the update timer +* More sane use of casts +* Move MCGLScene to MCWorldRenderer +* New-style signal connections in Game +* Refactor bridge creation +* Refactor Config +* Refactor child velocity logic +* Refactor MCSurfaceConfigLoader +* Remove obsolete images +* Remove render layers from cars' sub-objects +* Replace MCException with std::runtime_error +* Use add_compile_options() instead of appending CMAKE_CXX_FLAGS +* Use C++11's move semantics in MCBBox and MCBBox3d +* Use C++11's move semantics in MCVector2d and MCVector3d 1.9.2 ------ +===== + +Bug fixes: * Fix rendering of the windowed mode. * Fix rendering in other than native resolutions. + +Improvements: + * Take maximum supported texture size into account. -* Remove unused code. -* Remove commented code. * QGLFramebufferObject => QOpenGLFramebufferObject. * Add camera location support to MCGLShaderProgram. * Simplify FBO shading. @@ -314,116 +339,94 @@ * Add getters for eyeZ and viewAngle. 1.9.1 ------ +===== + +New features: + +* Rotating leaf particles +* Show game version in the intro screen. + +Improvements: * Set VSync default to 'ON'. * Force QSettings to .INI-format on Windows. -* Show game version in the intro screen. -* Fix broken OpenGL scene size on virtual desktops. * Make the code compile with MS Visual C++ 2013. -* Adjustable object grid size. -* Add unit test for sleep prevention. -* Add MCWorldTest. -* Fix crash when quitting. -* Fix multiple bridge issues. -* Fix a bug where tire objects couldn't get on a bridge. -* Improve bridge graphics. -* Improve tile graphics. -* Re-license artwork under CC BY-SA. -* Enable vsync menu if QT_VERSION >= 5.3.0 -* Make shaders able to have pending property changes. -* Fix rendering of two-player game. -* Darker asphalt tile. -* New rotating leaf particles. -* Switch to the new QSurface-based graphics stack. -* Improve doc of MCSurfaceManager. -* Fix MiniCore compatibility with QML. -* Fix game.pro -* Remove obsolete files. -* Not mandatory to give paths to MCAssetManager. -* MCObjectTree => MCObjectGrid -* Move some MCWorldRenderer methods to private scope. -* Update printHelp(). -* Add support for QOpenGLFunctions. -* Move Particles/* to Graphics/ -* Refactor vertex attribute array stuff from MCGLRectParticle to MCGLObjectBase. -* Move some default shaders from the game to engine's side. -* Refactor vertex attribute array stuff from child classes to MCGLObjectBase. -* Add proxy methods to set shaders for texture fonts. -* Refactor CMakeLists.txt -* Remove option to build for OpenGL 3.0 because shaders are not up-to-date. -* Refactor MiniCore file layout. +* Improved tile graphics +* Re-license artwork under CC BY-SA +* Switch to the new QSurface-based graphics stack +* Engine improvements + +Bug fixes: + +* Fix broken OpenGL scene size on virtual desktops. +* Fix multiple bridge issues +* Fix crash when quitting +* Fix rendering of two-player game 1.8.3 ------ +===== -* Fix bug in child object velocity calculation. -* Tune impulse calibration. +Bug fixes: + +* Fix some physics issues 1.8.2 ------ +===== + +New features: + +* New race track suzuka.trk + +Improvements: + +* Physics improvements + - More stable and agile car handling + - Lighter tire object + +Bug fixes: -* More accurate contact normal calculations. -* Fix bridges collision layers. -* Add small collision margin. -* More accurate distance from veactor calculations. -* Improvements to physics regarding angular impulse. -* Remove impulse generation loops. -* Lighter tire object. -* More agile car. -* Add slightly more grip. -* Fix some object layering issues. -* Add suzuka.trk -* Refactor layer logic. -* Fix some compilation warnings. -* Set CXX flags for Clang. -* Move font generation from GraphicsFactory to FontFactory. +* Fix multiple bugs in the bridge component +* Fix compilation with Clang 1.8.1 ------ +===== -* Tune car parameters. -* Drop support for Qt4. +Improvements: + +* Tune car parameters + +Other: + +* Drop support for Qt4 1.8.0 ------ +===== + +New features: + +* More realistic and dynamic car physics for funnier gameplay. +* Rewritten bridge object that now actually even works +* Some graphics improvements (they are still shitty, though) + - Transparent shadows + - Two-player game views separated by a narrow line + - Filtering added to some textures + - Some car graphics improved +* Driving off-track is now more merciful + +Bug fixes: -* Improve target zones of ring.trk -* Improvements to twister.trk -* Linear filtering for the generated font texture. -* Improve positioning of stuck cars. -* Remove the crap brightness/contrast functionality. -* Texture tuning. -* Break after resolving the deepest contact. -* Help stuck cars more eagerly. -* Rewrite bridge logic. -* Make the Dust Racing 2d banner stationary -* Completely tire-controlled car. -* Improve sky reflection. -* Add shader headers to project. -* Tune color of the yellow car. -* Improve effect when off-track. -* Remove redundant message print -* Improvements for Visual Studio build. -* Add names of static vorbis libs commonly used in Windows -* Set cxx flags only if compiler is GNUCXX or MINGW -* Fix tires appearing on top of the car on bridge. -* Refactor scene.cpp -* Refactor MCObject. -* Render shadows onto a texture. -* Decouple shadow rendering from object rendering. -* Remove SlideFrictionGenerator. -* Fix website image sizes on mobile. -* Rewrite index.html -* Refactor gravitational constant. -* Optimize texture binding. -* Optimize VAO release. -* Optimize VBO binding. * Fix installing the game when not built in the source root. Patch by Rémi Verschelde. * Enhancement of the desktop files. Patch by Rémi Verschelde. +* Fix bridge + +Other: + +* Improve target zones of ring.trk 1.7.3 ------ +===== + +Maintenance release: * Revert "Optimize VBO, VAO and texture binding." - Caused missing number plate of the first car @@ -434,1010 +437,54 @@ * Enable build on FreeBSD. 1.7.2 ------ +===== + +New features + +* French translations + +Bug fixes: -* Log the font texture size. -* Add French translations. -* Improve computer braking in twister.trk. -* Add CONTRIBUTING instructions. -* Add screenshots of 1.7.1 +* Fix computer driving lines in twister.trk 1.7.1 ------ +===== + +Bug fixes: * Add missing bridge model for editor. 1.7.0 ------ +===== + +New features: + +* twister.trk +* Bridge object. +* Fade out flash transition. +* Turn left and turn right signs. +* CLI option to force vsync off. +* New crash sound. +* Editor: visualize computer hints. +* Move user tracks to the beginning of the track array. +* Increase the initial slide friction to 1.0 + +Bug fixes: * Don't show prev/next if on first/last item. -* Add twister.trk -* Add bridge object. * Remove specular shaders from crate and tire. -* Small improvements to render timing. -* Move user tracks to the beginning of the track array. * Fix computer driving line in curvastone.trk -* Editor: visualize computer hints. * Fix off-track detection on 'sand grass straight' tile. + +Other: + +* Small improvements to render timing. * Optimize VBO, VAO and texture binding. -* Add fade out flash transition. -* Add turn left and turn right signs. -* Update brake.png -* Add a new crash sound. -* Increase the initial slide friction to 1.0 * Optimize viewport switching. * Optimize the use of GL_DEPTH_TEST. -* Add CLI option to force vsync off. * Use random functionality from C++11. * Improve sky reflection. -* Add cache for uniform locations. * Update scripts/genericLinuxBuildQt5 -1.6.3 ------ - -* Add specular lighting. -* Set race record only if race with computers. -* Fix audio threading. -* Cars 0 and 1 as pink and grey. -* Introduce MCGLMaterial. -* Rename master to default when referring to shaders. -* Default argument value for MCWorldRenderer::enableDepthTestOnLayer() -* Scene-level setters for ambient and diffuse lights. -* Remove shadersGLES.h from game.pro -* CMake option to statically link vorbis libs. -* Move MCGLScene::updateViewProjectionMatrixAndShaders() to private scope. -* Add MCGLScene::setFadeValue(). -* Use tile.hasAsphalt() instead of listing non-asphalt tiles. -* Separate generic Linux build scripts for Qt4 and Qt5. -* Remove needless shadersGLES. -* Refactor lighting in shaders. -* update mxeWindowsBuild. -* Update Czech translations. -* Move MXE script to scripts/ -* Refactor race.cpp. -* Refactor car creation into CarFactory. - -1.6.2 ------ - -* Update README and INSTALL. -* Fix time trial mode. - -1.6.1 ------ - -* Use colorful cars only in TOP-6. -* Updates README. -* Update Czech translations. -* Add dark red car. -* Add dark green car. -* Update Italian translations. -* Update cs and it source strings. -* Add option to set sounds on/off. -* Add fallback char for ď. -* Add translations to mxeWindowsBuild. -* Use wide strings in credits.cpp. -* Add command line option to force language. -* Update Finnish translations. -* Remove the FPS menu and settings. -* Use the vsync setting in Game. -* Add VSyncMenu. -* Rename 'Key configuration' to 'Controls'. -* Update credits menu content. -* Move reset settings to a new reset menu. -* Move graphics settings to a new GFX menu. -* New game loop. -* Fix build for OpenGL 3.0 -* Refcator car image switching. -* Add cyan car. -* Add violet car. -* Add green car. -* Sort tiles before rendering. -* Add notion of driver vsync. - -1.5.5 ------ - -* Full screen mode by default. -* #ifdef for GL versions in game.cpp -* Set version 120 for OpenGL 2.1 shaders. -* Remove precision qualifiers from ver 1.00 desktop shaders. - -1.5.4 ------ - -* Remove swap interval setting. -* Remove unused variable. -* Less dramatic tire wear when off-track. -* Remove FPS setting completely. -* Add install target for fonts. -* Add fallback glyphs. -* Add unlimited FPS setting. -* Use updateGL to update. -* Use the bounding rect version of QPainter::drawText(). -* Make text more dense. -* Font generator tries to use Ubuntu Mono. -* Add Ubuntu Mono fonts to data/fonts. -* Switch to wide chars. -* Use wchar_t in the font map. -* Update AUTHORS. -* Add Czech translations for the editor. -* Generate game font on-the-fly. -* Fix some documentation formatting. -* Make createFontFromData a public function. -* Cosmetics. -* Add message about missing translation. -* Add Finnish translations for the editor. -* Add Czech translations. -* Update qmake project files. -* Update Italian translations. -* Add Italian translations for the editor. -* Add blue car. - -1.5.2 ------ - -* Add script to build and package for Windows on Linux. -* Move mxeEnv.sh to scripts/ -* Remove unused variable from MCTextureGlyph. -* Don't send pit signal twice. -* Add scissor tests for split screen modes. -* Pass QString as const reference in audio signals. -* More quiet skid sound. -* Update .gitignore -* Shorter audio signal names. -* Reset input handler on race start. -* Refactor CarSoundEffectManager. -* Add skid sound. -* Hit sounds. -* Less aggressive tire wear on grass. -* Remove some crates from curvastone.trk -* A bit more acceleration friction. -* More realistic kmh values. -* Refactor Startlights. -* Connect volume change signals. -* Play cheering when winner finishes, not the human player. -* Add bell sound when checkered flag appears. -* Add predefined keys to Settings. -* Save lap count. -* Add generic value setter/getter to Settings. -* Slide a bit more on worn-out tires. -* Init race record when new track is set. -* Reset tire wear on pit stop. -* Blink car status view on pit stop. -* Add pit stops. -* Make tires wear when turning and accelerating or just braking. -* Fix clang warnings. -* New background image for settings. -* Update Finnish translations. -* Translate resolutionmenu.cpp -* Fix documentation typos. -* MCObjectFactory returns MCObjectPtr's instead of references. -* Fix comment format in mcobject.hh -* Support for trigger objects. -* Cosmetics in MCObject. -* Add red car. -* Refactors Scene. -* Render different positions with different colors. -* Save and load race records. -* Longer fade out from game. -* Smaller font for timing data. -* Show race time. -* Fix editor crash on object deletion. -* Add Italian translations. -* Fix turning direction on reverse. -* Add dirty cell cache to MCObjectTree. -* Rename sound files. -* Stop engine sounds after a race. -* Update INSTALL. -* Set listener location via a signal. -* Use pkg_check_modules to find libvorbisfile. -* Update qmake project files to link to libopenal and libvorbisfile. -* Refactor Scene::updateFrame() -* Tune engine sound parameters. -* Common base class for OpenALWavData and OpenALOggData. -* Update the example debian/rules -* Add engine sound for all computers. -* Ogg Vorbis support. -* Drop dependency to ALUT. -* Add sound for each car. -* Optimize pitch changes. -* LPF the engine sound. -* Initial engine sound. -* Remove throw()'s from STFH. -* Add CarSoundEffectManager. -* Add stopSound(), setPitch(), setVolume() to AudioThread. -* Add mutex to OpenALSource. -* Add engine sound wave. -* Load sounds into a map. -* Load sounds concurrently with the rest of init. -* Use DATA_PATH in AudioThread::loadSounds() -* Remove needless STFH::DataManager. -* Add menu sounds. -* OpenAL implementation of STFH. -* Add STFH. -* Move glew and glm under contrib/ -* Remove deps installation from InstallWindows.cmake -* Remove obsolete/ -* Remove deps: assume statically linked libs on Windows builds. -* Add experimental qmake project files. -* Add mxeEnv.sh helper. -* Use CMAKE_RC_COMPILER instead of hard-coded windres.exe -* Correctly handle particle animation types in MCParticle. -* Support varying point size also in GL30 and GLES shaders. -* Reduce moment of inertia. -* Revisit smoke particle effects. -* Update AUTHORS -* Fix loop limits in TrackSelectionMenu. -* Small refactoring in MCObjectTree. -* Set to initial slide friction to 0.90. -* Rename some variables according to current naming convention. -* Improve smoke particle. -* Use smart pointers always when ownership is in question. -* New dir layout for source images. -* Fix translations on Qt5. - -1.4.6 ------ - -* Option for horizontal split. -* Tune sliding parameters. -* Remove deprecated sandAreaCurve45*. -* Make track selection menu usable with mouse. -* Refactor MCSurfaceConfigLoader. -* Add blur to star.png -* Rework tile graphics. -* Remove sandGrassStraight45Female. -* Remove glPushAttrib() from StartlightsOverlay. -* Rework startlights. -* Remove sandAreaCurve45*. Graphics to be added directly to the tile. -* Remove unused src images. -* Fix artifacts in the textured font. -* Fix Help on wide screens. -* Rename confusing MCSurface::setScale() to ::setSize(). -* Automatically show/hide mouse cursor. -* Fade startlights out on GO. -* Refactor view splitting. -* Support translations via Qt. - -1.4.5 ------ - -* Improve documentation of CMake's options. -* Optional DATA_PATH, BIN_PATH and DOC_PATH. - -1.4.4 ------ - -* Fix regression with install paths. -* Set cmake policy to the required version. -* Ubuntu => USC in CMakelists.txt -* Add DEPENDS to runtime targets. -* Refactor runtime targets. -* Don't set CMAKE_INSTALL_PREFIX in the code. - -1.4.3 ------ - -* Support OpenGL 2.1 by default. -* Add custom targets for doc files. -* Fix CPack binary paths. -* Add install targets for Windows deps. -* Add deps for win32. - -1.4.2 ------ - -* Fix computer driving lines in monza.trk -* Make the game a bit more challenging. -* More sane shader API. -* Fix normals. -* Normal mapping for cars. -* Tune car parameters. -* Move ShaderProgram to MiniCore. -* Refactor steering. -* Improve steering stability. -* Updates triangle.trk. -* Updates rock.png. -* No contrast setting for the grandstand. -* Add some crates to straight.trk. -* Fix batched rendering of surface shadows. -* Collision detection for MCCircleShape. -* Refactor MCCollisionDetector. -* Remove unused variable from MCCircleShape. -* Fix the contrast algorithm. -* Less aggressive off track message. -* Update INSTALL. -* Move install stuff to InstallLinux.cmake and InstallWindows.cmake. - -1.4.1 ------ - -* Display a message when off track. -* Refactor on-display messaging. -* Android compatibility improvements. -* GLES compatibility improvements. -* Simplify texture and program binding. -* Add MC_NO_GLEW define to allow compilation without GLEW. -* Drop dependency to QGLWidget in MCSurfaceManager. -* Add missing virtual destructor body to MCGravityGenerator. -* Move common GL stuff into MCGLObjectBase. -* Move aboutdlg.* to obsolete/ -* Remove useless variable. -* Remove useless includes. -* Fix CPack on out-of-source builds. -* Load shaders from source code. -* Multitextured sand. -* Support third texture. -* Update curvastone.trk -* Update monza.trk -* Editor: Object rotation can be set randomly. -* Add bushArea object. -* Tires wear out when off track. -* Track locking and best positions per lap count. -* Menus remember saved values. -* Add a generic quit item (X) to menus. -* Show cursor with --show-cursor. -* Menu items can be selected with a mouse. -* Don't try to swap buffers if not enabled. -* Fix app shutdown on Windows. - -1.3.1 ------ - -* Log the game version on startup. -* Fix point particles on OpenGL older than 3.3 -* Fix crashing shaders on OpenGL 3.3 - -1.3.0 ------ - -* Include Qt version in CPack package names. -* Point sprite skid marks. -* Fix Z-buffering of grandstands. -* Set brightness and contrast in the surface config. -* Refactor MCSurfaceMetaData. -* Mud particles as MCGLRectParticles. -* Soften grandstand.png. -* Off-track smoke. -* Fix zero glPointSize(). -* Optimize batch rendering. -* Rename pCamera to camera. -* Add constructor for ActionMapping. -* Renames m_vba => m_vao. -* Optimize texture and VAO usage. -* Adds starting grid to all race tracks. -* Refactors rendering stuff out from MCWorld to MCWorldRenderer. -* Adds ring.trk -* Fix unlocking of new race tracks. -* Fix performance issues due to faulty texture scaling. -* Increase smoke timeout. -* Scale particle point size with resolution. -* GL_DYNAMIC_DRAW hint for particles. -* Font improvements. -* High contrast graphics. -* Proper batching for point sprites. -* Fix crash with OpenGL 3.3 -* Remove obsolete keyword maxGlyphsPerRow. - -1.2.2 ------ - -* Tune car parameters. -* Fix track unlocking. -* Add 3 and 5 to lap count selection. -* CMake: Use target_link_libraries for MiniCore. -* CMake: Support for CPack. -* Fix build on Windows. - -1.2.1 ------ - -* Swap buffers only when renderer is enabled. -* Add 1 lap to lap count selection. -* Fine tune the font. -* Editor: Delete objects after they have been removed from the scene. Patch by Markus Rinne. -* Refactor StateMachine. -* Use Qt signal and lambda to exit game from menu. -* CMake: Print message about used Qt version. -* Move Scene::translateCarsToStartPositions() to Race:: -* Simplify menu texts. -* Removes useless QApplication::setGraphicsSystem("opengl") -* Removes dead code. -* Editor: The New Track Dialog validates entered values. -* Editor: Add shortcuts for undo and redo. -* Editor: Add Undo. Patch by Markus Rinne. -* Remove lap count property from race tracks. -* Add lap count menu. -* Add sandAreaCurve45 and sandAreaCurve45Right. -* Editor: Handle objects before target nodes. -* Correctly fade alpha. -* Adds sandAreaBig object. -* Adds sandAreaCurve object. -* Even smaller cars. -* Smaller turning impulse. -* More off-track friction. -* Simplifies the texture font system and config. -* Separate resolution menus for windowed and full screen. -* Refactor main.cpp -* Resolution scaling. -* Remove obsolete OpenGL stuff from MCGLScene. -* Remove obsolete OpenGL stuff from MCGLScene. -* Editor: Add flood fill. Patch by Markus Rinne. -* Prepare the project for Qt5. -* Refactors Startlights. -* More variance to computer speeds. -* Full screen by default. -* Add a comment about moment of intertia. -* Refactors StateMachine. -* Updates packaging. -* Editor: Refactors mouse event handling in EditorView. -* Generate desktop files only if ReleaseBuild defined. -* Adds home site url to the Help page. -* Refactors the number plate generation to GraphicsFactory. -1.0.2 ------ - -* Fixes install targets. -* Adds support for USC. -* Make sure the first track is always unlocked. -* Updates packaging. - -1.0.1 ------ - -* Unlock the first race track. -* Generate desktop files only on Linux. -* CMake: Output binaries to CMAKE_BINARY_DIR instead of CMAKE_SOURCE_DIR. -* Limit the power to 200 kW. - -1.0.0 ------ - -* Updates curvastone.trk. -* Updates infinity.trk. -* Updates triangle.trk. -* Removes irritating.trk (it was too irritating). -* Improves the lighting model. -* Improves the game dynamics. -* Support for mesh objects. -* Removes MCSurfaceConfigLoader::setConfigPath(). -* Adds cube.obj -* Moves MCObject::hasShadow() to MCShapeView. -* Configurable keys. -* Refactors SettingsMenu::SettingsMenu() -* Show all stars when best pos is 1. -* Removes demo.trk and circle.trk as they are crap. -* Less acceleration friction. -* Friction limits acceleration. -* Updates the car svg's. -* Adds documentation to TrackObjectFactory. -* Transparent background for the new application icons. -* Rename Track Editor to Level Editor in dustrac-editor.desktop -* Sets fixed limit to lateral friction. -* Adds clamp() and clampFast() to MCVector2d and MCVector3d. - -0.16.0 ------- - -* Fixes typo in surfaces.conf -* New grandstand texture. -* Refactors object creation in TrackLoader. -* Updates the help text. -* Correct shape radius for the plant object. -* Removes h.trk. -* Fixes loading of locked tracks. -* Replaces square.trk with demo.trk. -* Finish in TOP-6 to unlock a new race track. -* Start pos will be the best pos of the current race track. -* Increase car count to 12. -* Generate number plates on-the-fly. -* Refactors MCSurface. -* Updates INSTALL. -* New application icons. -* Adds curvastone.trk. -* Adds new resolutions to the Resolutions menu. -* Editor: Automatically select the most recently added object. -* Editor: Re-order toolbar icons. -* Editor: Allow even larger target nodes. -* Editor: Show open file name in the window title. -* Updates index.html - -0.15.0 ------- - -* Improves the startlight animation. -* Resizeable target nodes. -* Editor: Make TargetNodes darker. -* Editor: Adds grassEditor.png -* Editor: Rename computer hints. -* Remove 15 and 45 fps from the FPS menu. -* Correct layer for leaf particles. -* Adds menu.vsh -* Removes MCSurface::renderScaled(). -* Calculate color in the vertex shader. -* Kill particles when the world is cleared. -* The next starting pos will be the previous best pos. -* Refactors Race. -* Updates triagle.trk -* Reduce braking friction. -* Moves stuck cars onto the previous check point. -* Show a message box error if OpenGL to old. -* Updates monza.trk -* More realistic friction. -* New rock texture. -* Small particle optimizations. -* Adds skid marks. -* Decrease the max number of particles. -* Lazy release the active shader program. -* Simplify particle alpha. -* Refactors MCSurface. -* Force OpenGL core profile 3.0 -* Upgrades shaders to version 1.30. -* Fixes asphalt boundaries. -* Updates the example debian packaging. - -0.14.0 ------- - -* Adds sky reflection. -* Updates square.trk -* Fixes grandstand shadows. - -0.13.0 ------- - -* Refactors EventHandler to use an action map. -* Adds (L/R)SHIFT and (L/R)CTRL as alternative keys. -* Editor: Fixes clear tile action. -* Editor: Fixes a crash when clicking on empty track. -* Adds StateMachine::isFading(). -* Configurable fps. -* Revert "Use full screen mode as the default." -* Fixes game logic on different game modes. -* Adds Time Trial and Duel menu items. -* Adds index.html -* Adds screenshots of 0.12.0 - -0.12.0 ------- - -* Use full screen mode as the default. -* Kill particles that are not visible. -* Don't render checkered flag on two player race. -* Makes smoke faster. -* Change the color of blue car to grey. -* Input handling for player two. -* TimingOverlay for both players. -* Correctly update TreeView. -* Recreate cars again for each race. -* Moves OffTrackDetectors from Scene to Race. -* Renames car images. -* Refactors Scene::Scene(). -* Don't kill particles that are outside the view. -* Correctly setup and render cameras. -* Refactors Car::render(). -* Improves the documentation of Car::collisionEvent(). -* Adds leaf particles. -* New sparkle particle. -* Adds 'About Qt' menu action. -* Moves MCWorld from Physics/ to Core/ -* Removes some useless MCSurface::bindTexture()'s -* Refactors particle stuff to ParticleManager. -* Remove some banners from circle.trk -* Dynamically remove and restore sleeping objects from integration. -* Change the project name to DustRacing2D in CMakeLists.txt. -* Updates Help with controls for player 2. -* Adds support for permanently selected items. -* Use C++11 lambdas in SettingsMenu. -* Adds game mode menu. -* Adds MenuItem::setMenuOpenAction(). -* Split-screen support. -* Refactors MCGLScene. -* Removes unused destructor. -* Log info about GLEW and check failure on initialization error. -* Render grass by using multitexturing. -* Pass sin and cos to shaders. -* Adds tile.png -* Removes private implementation from MCSurfaceManager. -* Removes unused images. -* New grass and sand textures. -* Adds a message text to ConfirmationMenu. -* Makes trees darker. -* Makes asphalt darker. -* Windows-specific tweaks to CMakeList.txt's - -0.11.1 ------- - -* Adds zip output to the archive script. -* Use GLEW to improve portability. -* Use shared_ptr in MCForceRegistry. -* Cosmetic changes in Menu. -* Updates license texts with Dust Racing 2D. -* Cosmetic changes in MenuItem. -* Use shared_ptr in Scene. -* Renames AiLogic to AI. -* Removes a useless QTimer include. -* Replaces the explicit shader getters with a single getter and hash. -* Merges Renderer and MainWindow. -* Separates the menu toolkit from the game sources. -* Adds example packaging for Ubuntu/Debian. -* Adds screenshots of 0.11.0 -* Fixes game pause. - -0.11.0 ------- - -* Take window aspect ratio in the account. -* Adds resolution menu. - -0.10.0 ------- - -* New static checkered flag. -* Adds checkeredFlag.png -* Fixes compilation warnings on GCC 4.7. -* Increase restitution of the tire object. -* Refactors MCWorld. -* New broad phase algorithm. -* Editor: Also a right-click on object makes it selected. -* Editor: Objects can be properly added on top of other objects. -* Moves MathUtil::SIGN to public scope. -* Removes some plants from square.trk. -* Updades circle.trk. -* Removes some plants from monza.trk. -* Removes some plants from irritating.trk. -* Removes some plants from h.trk. -* Removes some plants from triangle.trk. -* Editor: Objects can be deleted under target nodes. -* New trees and plants. -* Makes plants stationary. -* Updates monza.trk. -* New smoother event loop. -* Adds Dust Racing 2D banner. -* Build object batches based on typeID. -* Batch support for MCSurfaceParticle. - -0.9.0 ------ - -* Removes obsolete glEnable(GL_TEXTURE_2D) calls. -* Adds type identifiers for particles. -* Improves rendering performance. -* Removes irritating rocks from irritating.trk. -* Lowers the linear and angular sleep limits to 0.01. -* New rock texture. -* Adds grandstand objects. -* Eliminate copy-paste initializations in MCObject. -* Eliminate copy-paste initializations in MCSurface. -* Editor: Arrow keys can be used to move objects. -* Adds screenshots of 0.8.1 -* Fixes a bug in the computer power scaling. -* Improves messages. -* Editor: Adds a tip about saving to ~/DustRacingTracks. -* Makes the game a bit faster and harder. -* Adds simple ambient lighting. -* Adds car number plates. - -0.8.1 ------ - -* Correctly reset QSettings. - -0.8.0 ------ - -* Adds functionality to the Settings menu. -* Editor: Makes object rotation incremental. -* Adds SurfaceMenu base class for game menus. -* Removes TODO as it's obsolete. -* Finishing in TOP-5 unlocks the next race track. -* Use std::stable_sort in TrackLoader. -* Disable wrapping around in TrackSelectionMenu. -* Sets indices to the default race tracks. -* Adds an arrow to the finish line preview tile. -* Updates the Help menu. -* Loads the unlock statuses of race tracks. -* Adds a new track circle.trk -* Refactors menu creation. -* Refines the intro. -* Improves the smoke effect. -* Particle performance improvements. -* Adds MessageOverlay. -* Updates the credits menu. -* Fixes turning on reverse. -* Also 'B' brakes. -* Moves all scattered QSettings related stuff to Settings. -* Editor: Open the "save as" dialog when saving (CTRL+S) the first time. -* Fixes the scaling of startLightGlow. -* Adds stars to track selection menu. -* Adds star.svg and star.png -* Save and load best positions. -* Adds index-based track ordering. -* Show time as mm:ss.zz -* Refactors TimingOverlay. -* Adds error handling for shader loading. - -0.7.3 ------ - -* Use the same image file for credits and help menus. -* Makes the race track data format a bit more compact. -* Refactors event handling to EventHandler. -* Fixes invalid categories in the desktop files. -* Don't install under /opt by default. - -0.7.2 ------ - -* Don't set CMAKE_INSTALL_PREFIX in CMakeLists.txt -* Batch support for MCSurfaceParticle. - -0.7.1 ------ - -* Moves curves.trk to obsolete/ -* Adds documentation to MCWorld::buildBatches(). -* Removes obsolete test.trk -* Set the object also sleeping if it's stationary. -* Ignore collisions between sleeping objects. -* Refactors TrackLoader. -* Adds triangle.trk -* Refactors rendering functions in MCWorld. -* Adds a missing vector include in editordata.hpp. -* Don't bind program if already bound. -* Cosmetic changes to MCVector2d and MCVector3d. -* Adds irritating.trk -* Refactors event handling in Renderer. -* Pressing P pauses the game. -* CMake: find_package() checks for Qt modules. Set CMake version to >= 2.8.7. -* CC license changed from by to by-nc. - -0.7.0 ------ - -* Refactors track rendering. -* New asphalt engine. -* Refactors the menu classes. -* Adds Intro. -* Adds transition animations between the menu and the game. -* Adds new background images for the menu. - -0.6.1 ------ - -* Adds documentation to shaderprogram.hpp -* Render sparkles as points. -* Adds mud particle. -* New smoke. -* Moves wall.hpp and wall.cpp to obsolete/ - -0.6.0 ------ - -* Fixes SF#3546834: OffTrackDetector doesn't work correctly on some tiles. -* Menu reacts on key press events, not key release events. -* Menu::done() returns true, if stack is empty. -* Adds Credits menu. -* Adds Help menu. -* Removes needless headers from mainmenu.cpp -* Take linefeed into account in MCTextureText. -* Updates README. -* Show timing as 'hh:mm:ss.zz' -* New track straight.trk -* Moves woods.trk to obsolete/ -* Makes the wall wall object longer. -* Adds CMake install targets. -* Makes some MCObject's methods non-virtual. - -0.5.0 ------ - -* Adds the main menu. -* Don't reset motion when adding object to the world. -* Dedicated friction generator for off-track conditions. -* Fixes SF#3547742: Some of the cars have a wrong orientation on the start grid. -* Fixes SF#3547321: Pressing ESC while playing should take the game back to the main menu. -* Fixes unit tests. - -0.4.0 ------ - -* Default lap count 5 for all tracks. -* Render all objects by using GLSL shaders. -* Renames basePath to baseImagePath in texture config. -* Adds shader support to MCShapeView. -* Improves the engine directory layout. -* Render text using shaders. -* MCSurface renders with shaders only. -* Adds MCGLShaderProgram and ShaderProgram. -* Render the track by using GLSL shaders. -* Removes animation from tiles. -* Slide more. -* Don't take typeId into account in MCObjectTree. -* Optimize collision detection of stationary objects. -* Don't set text color if not needed. -* Removes private class from MCTextureText. -* Fixes some compilation warnings. -* Adds infinity.trk - -0.3.2 ------ - -* Sets MCWorld::metersPerPixel earlier. -* Search tracks also in ~/DustRacingTracks -* Longer delay before fade out. -* Disable only acceleration when the race is over. -* Adds black and orange cars. -* Moves data/images/raw to src/images. -* Renames dustrac to dustrac-game and editor to dustrac-editor. -* Makes the starting grid shorter. - -0.3.1 ------ - -* Updates monza.trk. -* The game returns back to the main menu after a race. -* Makes the checkered flag smaller. -* Adds a plant object. -* Freeze laps time when player has finished. -* Disables car controls when race has finished. -* Displays 'winner finished' text when the race is over. -* Render MCGLRectParticle by using triangles instead of a quad. -* Render MCSurface by using triangles instead of a quad. -* Scales down the front tire texture. -* Friction adjustments. -* Use a simpler friction approach for stability (and more fun). -* Adds a rock object. - -0.3.0 ------ - -* Updates TODO. -* Draw the first checkpoint in white. -* Adds TrackSelectionMenu. -* Fixes some compilation warnings. -* Introduces more variance to the computer players. -* Use Car::Description instead of constants in anonymous namespace. -* Free-hand routes. -* Editor: Refactors Object creation to ObjectFactory. -* Renames ObjectData => ObjectModel, ObjectLoader => ObjectModelLoader. -* Fixes incorrect object dimensions when loading a track into the editor. -* Makes wall stationary, heavier tire objects. -* Braking spot hints. -* Adds monza.trk -* Increases slide friction. -* Track number of active particles. -* Don't update particle alpha on every frame. -* Batch support for MCSurfaceView. -* Simple batching of views. -* Reduce the displayed precision of timing. -* Refactors and optimizes MCTextureText. -* NVIDIA-specific optimizations for VBO's. -* Fixes compilation with -DMC_USE_DOUBLE. -* Refactors TimingOverlay. -* MCTextureText renders VBO's. -* Adds MCSurface::setTexCoords(). -* A bit taller trees. -* Physics improvements. -* Optimizations when rendering the same surface multiple times. -* Integer calculations in tree views. -* Don't test stationary objects against stationary objects. -* Enable depth tests for trees. -* Refactors MCSurface. -* Removes obsolete glColor4f()-calls. -* Removes debug code from MCRectShape. -* Track renders by using MCSurface instead of custom render. -* TreeView to use MCSurface instead of custom render. -* MCGLRectParticle uses VBO's. -* MCSurface uses VBO's. -* Updates AUTHORS. -* New track woods.trk. -* Rotation support for all objects in editor and in the game. -* Removes obsolete test.trk -* Log OpenGL version. -* Lap records are saved and loaded. -* Refactors TimingOverlay. -* Removes the obsolete analog speedometer. - -0.2.2 ------ - -* Updates TODO. -* Bigger start light glow. -* OpenGL call lists for multiple objects. -* Impulsegenerator improvements. -* Handle only one deepest contact at a time. -* Refactors MCObject properties. -* Fixes Z-buffering. -* Refactors MCWorld::setDimensions(). -* Adds missing include to mcrandom.cc -* Less powerful cars. -* Tunes steering so that it depends of speed. -* Editor bug fixes. -* Makes curves.trk longer. -* Misleading "set track properties" => "set lap count". -* Hor and ver size of the track can be enlarged separately. -* Hor/Ver driving line hints. -* Adds drag force to cars. -* New km/h speed scaling. -* Set higher possible max speed for Car. -* Digital speedometer. - -0.2.1 ------ - -* Changes MCLogger into a stream-based logger. - - Fixes crashes on some platforms due to portability -* issues with va_list. -* Only one update timer. -* Updates README. -* Performance improvements by removing pimpl from the engine. - -0.2.0 ------ - -* Refactors MCWorld. -* Collision improvements. -* Vertical initial positions. -* Object drag'n'drop. -* Updates README. -* Private class for MCTextureText. -* Refactors TimingOverlay. -* About dialog for editor. -* Erase action. -* Parameter tuning. -* Improves friction policy when off-track. -* Build binaries to the root of the source tree. -* Use rectangular objects as the world "walls". -* Physics improvements: friction, position resolving, KMS. -* Updates CentrifugalForceGenerator. -* Makes rendering of track smoother. -* Separates scene and screen resolutions. -* Adds MCGLScene. -* Fade in animation using a fragment shader. -* Adds the main state machine. -* Set the data path in the main CMakeLists.txt. - -0.1-alpha4 ----------- - -* Adds CHANGELOG. -* Lap count can be set in the editor for each track. -* Updates README. -* Implementation class for MCVectorAnimation. -* Refactors Track. -* Adds a CMake target for runtime files. -* Updates TODO. -* Update impulses only on integrate. -* Parameter tuning. -* Change the order of scene update and render. -* More power for reverse. Bug fixes related to reverse. -* Refactors wall.cpp. -* Disable culling after rendering walls. -* Four pixels bigger car. -* Separates position resolving and impulse generation. -* Support for "sleeping" objects. -* Simpler frame update timing. -* Mechanism to send MCTimerEvent's. -* Adds MCTimerEvent. -* Disables mouse cursor. -* Updates INSTALL. -* Adds missing sand.png. - -0.1-alpha3 ----------- - -* Use QWidget instead of QMainWindow. Also fixes rendering on Windows. -* Refactors Car controlling. -* Adds Car::Description. -* Support for ten cars. -* Don't spawn sparkles at low speeds. -* New graphics: sand. -* Updates graphics: asphalt. -* Updates archive.sh - -- Jussi Lind diff -Nru dustrac-2.0.1/.clang-format dustrac-2.0.5/.clang-format --- dustrac-2.0.1/.clang-format 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/.clang-format 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,37 @@ +AccessModifierOffset: -4 +AlignAfterOpenBracket: true +AllowShortFunctionsOnASingleLine: false +AlwaysBreakTemplateDeclarations: true +BasedOnStyle: WebKit +BreakBeforeBinaryOperators: NonAssignment +BreakBeforeBraces: Custom +BreakConstructorInitializersBeforeComma: false +BreakConstructorInitializers: BeforeComma +BraceWrapping: + AfterClass: true + AfterControlStatement: true + AfterEnum: true + AfterFunction: true + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: true + AfterUnion: false + BeforeCatch: false + BeforeElse: true + IndentBraces: false +ColumnLimit: 0 +CommentPragmas: "^!|^:" +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 2 +ContinuationIndentWidth: 2 +FixNamespaceComments: true +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE ] +IndentWidth: 4 +NamespaceIndentation: None +PointerAlignment: Middle +PointerBindsToType: false +SortIncludes: true +SpaceAfterTemplateKeyword: false +Standard: Cpp11 + diff -Nru dustrac-2.0.1/CMakeLists.txt dustrac-2.0.5/CMakeLists.txt --- dustrac-2.0.1/CMakeLists.txt 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/CMakeLists.txt 2020-01-06 23:07:24.000000000 +0000 @@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 2.8.12) cmake_policy(VERSION 2.8.12) +# Use cmake --help-policy [POLICY] for more information about these: + if(POLICY CMP0005) cmake_policy(SET CMP0005 NEW) endif() @@ -11,20 +13,40 @@ cmake_policy(SET CMP0020 NEW) endif() +# Default to GLVND +if(POLICY CMP0072) + cmake_policy(SET CMP0072 OLD) +endif() + +if(POLICY CMP0043) + cmake_policy(SET CMP0043 NEW) +endif() + # Global game version -set(VERSION_MAJOR "2") -set(VERSION_MINOR "0") -set(VERSION_PATCH "1") +set(VERSION_MAJOR 2) +set(VERSION_MINOR 0) +set(VERSION_PATCH 5) set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") -option(ReleaseBuild "This should be used when creating DEB and RPM packages." OFF) +# Some common CPack variables +set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}) + +set(CPACK_PACKAGE_NAME dustracing2d) +set(CPACK_PACKAGE_VENDOR Juzzlin) +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "") +set(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/data/images/about.png) + +set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING) +set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.md) + +option(ReleaseBuild "This should be used when creating a build with install targets" OFF) option(VorbisLibsPath "Optional path hint for vorbis libs (libvorbis, libvorbisfile)." "") option(OggLibPath "Optional path hint for ogg lib (libogg)." "") -option(USC "Enable install layout required by Ubuntu Software Center i.e. installs to /opt." OFF) - option(DATA_PATH "Optional DATA_PATH for Linux release build." "") option(BIN_PATH "Optional BIN_PATH for Linux release build." "") @@ -37,6 +59,8 @@ option(QOpenGLFunctions "Use QOpenGLFunctions to resolve OpenGL extensions if enabled." ON) +option(UnlockAllTracks "Unlock all tracks (for development purposes)" OFF) + # Default to release C++ flags if CMAKE_BUILD_TYPE not set if( NOT CMAKE_BUILD_TYPE ) set( CMAKE_BUILD_TYPE Release CACHE STRING @@ -62,6 +86,11 @@ add_definitions(-D__MC_NO_GLEW__) endif() +if (UnlockAllTracks) + message(STATUS "All tracks unlocked") + add_definitions(-DUNLOCK_ALL_TRACKS) +endif() + add_definitions(-DGLEW_STATIC) add_definitions(-DGLEW_NO_GLU) @@ -72,9 +101,16 @@ endif() if(CMAKE_COMPILER_IS_GNUCXX OR MINGW OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - add_compile_options("$<$:-W -Wall -O3 -pedantic -fomit-frame-pointer>") - add_compile_options("$<$:-W -Wall -O0 -g -pedantic>") + add_compile_options("$<$:-W;-Wall;-O3;-pedantic;-fomit-frame-pointer>") + add_compile_options("$<$:-W;-Wall;-O0;-pedantic>") + + # Automatically use ccache if found + find_program(CCACHE_FOUND ccache) + if(CCACHE_FOUND) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) + endif(CCACHE_FOUND) + elseif(MSVC) add_definitions(-DNOMINMAX) endif() @@ -86,7 +122,7 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(QT_MIN_VER 5.2.1) +set(QT_MIN_VER 5.4.0) find_package(Qt5Core ${QT_MIN_VER} REQUIRED) find_package(Qt5OpenGL ${QT_MIN_VER} REQUIRED) find_package(Qt5Xml ${QT_MIN_VER} REQUIRED) @@ -96,6 +132,11 @@ # Find OpenGL find_package(OpenGL REQUIRED) +if(${CMAKE_VERSION} VERSION_LESS "3.11.0") + set(DUSTRAC_OPENGL_LIBS ${OPENGL_gl_LIBRARY}) +else() + set(DUSTRAC_OPENGL_LIBS OpenGL::GL) +endif() # OpenAL for sounds. OpenAL directory can be given by -DOPENALDIR=... set(ENV{OPENALDIR} ${OpenALDir}) @@ -124,5 +165,8 @@ # Install paths depend on the build type and target platform resolve_install_paths() +add_subdirectory(src/contrib/SimpleLogger) +include_directories(src/contrib/SimpleLogger/src) + add_subdirectory(src/editor) add_subdirectory(src/game) diff -Nru dustrac-2.0.1/data/levels/Crossroads.trk dustrac-2.0.5/data/levels/Crossroads.trk --- dustrac-2.0.1/data/levels/Crossroads.trk 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/data/levels/Crossroads.trk 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,1051 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru dustrac-2.0.1/data/levels/curvastone.trk dustrac-2.0.5/data/levels/curvastone.trk --- dustrac-2.0.1/data/levels/curvastone.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/curvastone.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru "/tmp/tmppZ86sJ/bVSe_BAApl/dustrac-2.0.1/data/levels/Desert Storm.trk" "/tmp/tmppZ86sJ/NoNstEqUXL/dustrac-2.0.5/data/levels/Desert Storm.trk" --- "/tmp/tmppZ86sJ/bVSe_BAApl/dustrac-2.0.1/data/levels/Desert Storm.trk" 2017-12-30 13:09:21.000000000 +0000 +++ "/tmp/tmppZ86sJ/NoNstEqUXL/dustrac-2.0.5/data/levels/Desert Storm.trk" 2020-01-06 23:07:24.000000000 +0000 @@ -1,993 +1,994 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru dustrac-2.0.1/data/levels/Diamond.trk dustrac-2.0.5/data/levels/Diamond.trk --- dustrac-2.0.1/data/levels/Diamond.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/Diamond.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru "/tmp/tmppZ86sJ/bVSe_BAApl/dustrac-2.0.1/data/levels/Far Lands.trk" "/tmp/tmppZ86sJ/NoNstEqUXL/dustrac-2.0.5/data/levels/Far Lands.trk" --- "/tmp/tmppZ86sJ/bVSe_BAApl/dustrac-2.0.1/data/levels/Far Lands.trk" 2017-12-30 13:09:21.000000000 +0000 +++ "/tmp/tmppZ86sJ/NoNstEqUXL/dustrac-2.0.5/data/levels/Far Lands.trk" 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru "/tmp/tmppZ86sJ/bVSe_BAApl/dustrac-2.0.1/data/levels/Figure 8.trk" "/tmp/tmppZ86sJ/NoNstEqUXL/dustrac-2.0.5/data/levels/Figure 8.trk" --- "/tmp/tmppZ86sJ/bVSe_BAApl/dustrac-2.0.1/data/levels/Figure 8.trk" 2017-12-30 13:09:21.000000000 +0000 +++ "/tmp/tmppZ86sJ/NoNstEqUXL/dustrac-2.0.5/data/levels/Figure 8.trk" 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru dustrac-2.0.1/data/levels/infinity.trk dustrac-2.0.5/data/levels/infinity.trk --- dustrac-2.0.1/data/levels/infinity.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/infinity.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru dustrac-2.0.1/data/levels/monza.trk dustrac-2.0.5/data/levels/monza.trk --- dustrac-2.0.1/data/levels/monza.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/monza.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru dustrac-2.0.1/data/levels/Radiator.trk dustrac-2.0.5/data/levels/Radiator.trk --- dustrac-2.0.1/data/levels/Radiator.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/Radiator.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru dustrac-2.0.1/data/levels/ring.trk dustrac-2.0.5/data/levels/ring.trk --- dustrac-2.0.1/data/levels/ring.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/ring.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru dustrac-2.0.1/data/levels/straight.trk dustrac-2.0.5/data/levels/straight.trk --- dustrac-2.0.1/data/levels/straight.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/straight.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru dustrac-2.0.1/data/levels/suzuka.trk dustrac-2.0.5/data/levels/suzuka.trk --- dustrac-2.0.1/data/levels/suzuka.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/suzuka.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru dustrac-2.0.1/data/levels/triangle.trk dustrac-2.0.5/data/levels/triangle.trk --- dustrac-2.0.1/data/levels/triangle.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/triangle.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru dustrac-2.0.1/data/levels/Twineburg.trk dustrac-2.0.5/data/levels/Twineburg.trk --- dustrac-2.0.1/data/levels/Twineburg.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/Twineburg.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru dustrac-2.0.1/data/levels/twister.trk dustrac-2.0.5/data/levels/twister.trk --- dustrac-2.0.1/data/levels/twister.trk 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/data/levels/twister.trk 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + @@ -257,6 +258,7 @@ + diff -Nru "/tmp/tmppZ86sJ/bVSe_BAApl/dustrac-2.0.1/data/levels/Western Valley.trk" "/tmp/tmppZ86sJ/NoNstEqUXL/dustrac-2.0.5/data/levels/Western Valley.trk" --- "/tmp/tmppZ86sJ/bVSe_BAApl/dustrac-2.0.1/data/levels/Western Valley.trk" 2017-12-30 13:09:21.000000000 +0000 +++ "/tmp/tmppZ86sJ/NoNstEqUXL/dustrac-2.0.5/data/levels/Western Valley.trk" 2020-01-06 23:07:24.000000000 +0000 @@ -1,3 +1,4 @@ + diff -Nru dustrac-2.0.1/debian/changelog dustrac-2.0.5/debian/changelog --- dustrac-2.0.1/debian/changelog 2018-01-10 22:25:25.000000000 +0000 +++ dustrac-2.0.5/debian/changelog 2020-02-19 20:32:46.000000000 +0000 @@ -1,3 +1,18 @@ +dustrac (2.0.5-1) unstable; urgency=medium + + * New upstream release. (Closes: #951427) + * Switch the libqt5opengl5-dev build dependency to libqt5opengl5-desktop-dev, + as only the Desktop OpenGL is supported. + * Update the build dependencies according to the upstream build system: + - bump Qt packages to 5.4.0 + * Bump the debhelper compatibility to 12: + - switch the debhelper build dependency to debhelper-compat 12 + - remove debian/compat + * Update copyright. + * Bump Standards-Version to 4.5.0, no changes required. + + -- Pino Toscano Wed, 19 Feb 2020 21:32:46 +0100 + dustrac (2.0.1-1) unstable; urgency=medium * Initial release. diff -Nru dustrac-2.0.1/debian/compat dustrac-2.0.5/debian/compat --- dustrac-2.0.1/debian/compat 2018-01-10 22:22:20.000000000 +0000 +++ dustrac-2.0.5/debian/compat 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -10 diff -Nru dustrac-2.0.1/debian/control dustrac-2.0.5/debian/control --- dustrac-2.0.1/debian/control 2018-01-10 22:20:40.000000000 +0000 +++ dustrac-2.0.5/debian/control 2020-02-19 20:25:39.000000000 +0000 @@ -2,17 +2,17 @@ Section: games Priority: optional Maintainer: Pino Toscano -Build-Depends: debhelper (>= 10), +Build-Depends: debhelper-compat (= 12), cmake (>= 3.1), pkg-config, - qtbase5-dev, - libqt5opengl5-dev, - qttools5-dev, + qtbase5-dev (>= 5.4.0~), + libqt5opengl5-desktop-dev (>= 5.4.0~), + qttools5-dev (>= 5.4.0~), libopenal-dev, libvorbis-dev, xauth, xvfb, -Standards-Version: 4.1.3 +Standards-Version: 4.5.0 Homepage: https://juzzlin.github.io/DustRacing2D/ Package: dustracing2d diff -Nru dustrac-2.0.1/debian/copyright dustrac-2.0.5/debian/copyright --- dustrac-2.0.1/debian/copyright 2018-01-10 22:20:57.000000000 +0000 +++ dustrac-2.0.5/debian/copyright 2020-02-19 20:28:06.000000000 +0000 @@ -467,8 +467,8 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . - On Debian systems, the full text of the GNU Lesser Public License version 3 - can be found in the file '/usr/share/common-licenses/LGPL-3'. + On Debian systems, the full text of the GNU Lesser General Public License + version 3 can be found in the file '/usr/share/common-licenses/LGPL-3'. Files: src/game/MiniCore/src/Graphics/contrib/glew/* Copyright: 2002-2008, Milan Ikits @@ -519,8 +519,14 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Files: src/dustrac.appdata.xml +Copyright: none +License: CC0-1.0 + On Debian systems, the full text of the CC0 1.0 Universal + can be found in the file '/usr/share/common-licenses/CC0-1.0'. + Files: debian/* -Copyright: 2018 Pino Toscano +Copyright: 2018, 2020 Pino Toscano License: GPL-2+ License: GPL-2+ diff -Nru dustrac-2.0.1/INSTALL dustrac-2.0.5/INSTALL --- dustrac-2.0.1/INSTALL 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/INSTALL 2020-01-06 23:07:24.000000000 +0000 @@ -6,10 +6,9 @@ Source code =========== -The source tree includes source code for the track editor and -the game itself. The game uses an 2D engine called MiniCore -written by Jussi Lind. The code is "documented" by using -Doxygen tags. +The source tree includes source code for the track editor and the game itself. + +The code is "documented" with Doxygen tags. The source tree layout: @@ -20,30 +19,36 @@ src/editor/ : Source files for the track editor. src/common/ : Shared files between the editor and the game. src/images/ : Some SVG-images used as the source for final images. + +Data directory structure: + data/ : Data mapping and configuration files. +data/fonts/ : Font used by the game. +data/icons/ : Icon files for game and editor. data/images/ : Image files and textures loaded by the game. data/levels/ : Level data. -data/shaders/ : GLSL shaders. -packaging/ : Example packaging for Ubuntu/Debian. +data/models/ : 3D models. +data/sounds/ : Sound files. +data/translations/ : Released Qt translation files. + +Other: + +packaging/windows/ : NSIS packaging for Windows. Build systems ============= The "official" build system for Linux is CMake. -There are also qmake project files for easier cross-compilation for Windows and Android. Qt5 is required. - -I used to make Windows releases also with CMake, but in the future I'll cross-compile for Windows on Ubuntu host by using MXE and qmake. MXE is a cool cross-compilation environment -and all libraries are linked statically by default (no DLLs needed). - Toolchains ========== GCC/MinGW and Clang are the only "officially" supported toolchains on Linux. -Windows builds are done on Ubuntu with MXE (web: mxe.cc). The build script +Windows builds are done in a Docker container with MXE (http://mxe.cc). The build script also generates automatically an NSIS Windows installer and a ZIP-archive. -See scripts/mxeWindowsBuild.sh. + +See scripts/build-windows-installer and scripts/mxe-windows-build. Building the project with Microsoft Visual C++ 2013 also works, but no automatic packaging/deployment currently exist. The runtime files (data/, Qt, OpenAL..) must be @@ -55,95 +60,85 @@ Currently the build depends on Qt, libopenal and libvorbisfile. On Linux pkg-config is required. -Dustrac also exploits some features of the C++11 standard, -so a somewhat compliant compiler is required (GCC >= 4.7). +Dustrac also exploits some features of the C++14 standard, +so a somewhat compliant compiler is required (GCC >= 5.0). -Building in the command line on Linux (tested on Ubuntu 16.04) +Building in the command line on Linux (tested on Ubuntu 18.04) ============================================================== Development build (the game can be run without installing anything): ------------------------------------------------------------------- -1) Install Qt5 development files (qt5-default on Ubuntu). +1) Install Qt5 development files + - qt5-default package on Ubuntu/Debian/Mint should install everything needed + - You might need to install also these manually depending on your system + - qttools5-dev + - libqt5opengl5-dev + 2) Install OpenAL development files (libopenal-dev on Debian/Ubuntu). + 3) Install Vorbis development files (libvorbis-dev on Debian/Ubuntu). -4) Install CMake (cmake on Debian/Ubuntu). -5) Go to the source directory and run: -$ mkdir build -$ cd build -$ cmake .. +4) Install CMake (cmake on Debian/Ubuntu). -This runs CMake that generates the makefiles. +5) Go to the source directory and run: -You can also use Qt Creator to open the top-level CMakeLists.txt and build inside Qt Creator. -There's also a convenience configure script which is just a wrapper for cmake. +`$ mkdir build && cd build` -Anyway, if everything went ok with cmake, run: +`$ cmake ..` -$ make +`$ make` This will build the editor and the game binaries. Run the game: -$ ./dustrac-game +`$ ./dustrac-game` Optionally run the track editor: -$ ./dustrac-editor +`$ ./dustrac-editor` Run unit tests: -$ ctest +`$ ctest` Release build (in this example game installs under /usr): -------------------------------------------------------- -$ mkdir build -$ cd build -$ cmake .. -DReleaseBuild=1 -DCMAKE_INSTALL_PREFIX=/usr +`$ mkdir build && cd build` -This runs CMake that generates the makefiles. -If everything went ok, run: +`$ cmake .. -DReleaseBuild=ON -DCMAKE_INSTALL_PREFIX=/usr` -$ make +`$ make` This will build the editor and the game binaries. Install the binaries and data files: -$ sudo make install +`$ sudo make install` -This installs also the desktop files so Dust Racing +This installs also the desktop files so Dust Racing 2D should appear in your application menu. -Cross-compiling for Windows with MXE on Linux (tested on Ubuntu 14.04) -====================================================================== +Cross-compiling for Windows in Docker with MXE on Linux +======================================================= -1) Install MXE (http://mxe.cc) -2) Install Qt5, Vorbis and OpenAL with MXE -3) Run /usr/i686-pc-mingw32/qt5/bin/qmake dustrac.pro -4) make - -There's also a script to build the game with a Windows installer: -1) export DUSTRAC_RELEASE_VERSION=x.y.z (use the latest version) -2) source ./scripts/mxeEnv.sh (assumes that MXE is installed in /opt/mxe) -3) ./scripts/mxeWindowsBuild.sh +1) Install Docker -The script checks that needed binaries are found. +2) `$ ./scripts/build-windows-installer` CPack ===== Dust Racing 2D has a support for CPack. It's not complete, but can be used to generate -some generic binary packages. +e.g. Debian packages. -After a successful build run CPack: +After a successful build with ReleaseBuild=ON run CPack: -$ cpack +`$ cpack -G DEB` -This will generate .tar.gz and .sh binary packages on Linux. +This will generate a Debian package. Building with Microsoft Visual C++ ================================== @@ -157,9 +152,16 @@ * MS Visual Studio 2013 for Desktop Windows 1) Download and build Vorbis libraries and OpenAL Soft with the same toolchain + 2) Open the top-level CMakeLists.txt in Qt Creator, configure and build + 3) Copy the runtime files, like OpenAL DLL, to the same directory with the game binary +Jenkins CI +========== + +Jenkinsfile includes pipelines configuration for Jenkins CI. + For packagers ============= @@ -168,7 +170,7 @@ and is given to the game via -DDATA_PATH. The release build should be used when packaging (give --DReleaseBuild=1 to cmake). +-DReleaseBuild=ON to cmake). Currently the data files install to CMAKE_INSTALL_PREFIX/share/DustRacing and the binaries install to CMAKE_INSTALL_PREFIX/bin. @@ -177,8 +179,3 @@ can be changed by giving, for example, -DCMAKE_INSTALL_PREFIX=/usr to cmake (or to the configure script). -There's an example Debian packaging in packaging/debian/. - - --- Jussi Lind - diff -Nru dustrac-2.0.1/InstallLinux.cmake dustrac-2.0.5/InstallLinux.cmake --- dustrac-2.0.1/InstallLinux.cmake 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/InstallLinux.cmake 2020-01-06 23:07:24.000000000 +0000 @@ -10,19 +10,42 @@ set(BIN_PATH bin) endif() if(NOT DOC_PATH) - set(DOC_PATH ${CMAKE_INSTALL_PREFIX}/${DEFAULT_DATA_PATH_BASE}/) + set(DOC_PATH ${DEFAULT_DATA_PATH_BASE}/) endif() if(ReleaseBuild) message(STATUS "Linux release build with system install targets.") - if(USC) - message(STATUS "Installing to /opt.") - set(BIN_PATH /opt/dustrac) - set(DATA_PATH /opt/dustrac/data) - set(DOC_PATH /opt/dustrac/) + setup_install_targets(${BIN_PATH} ${DATA_PATH} ${DOC_PATH}) + + set(QT_VER_STR "qt5") + + set(CPACK_PACKAGE_FILE_NAME "dustracing2d-${VERSION}-linux-${CMAKE_HOST_SYSTEM_PROCESSOR}-${QT_VER_STR}") + set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING) + set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.md) + + set(CPACK_DEBIAN_PACKAGE_NAME "dustracing2d") + set(CPACK_DEBIAN_PACKAGE_VERSION ${VERSION}) + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Jussi Lind ") + set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "Dust Racing 2D is a traditional top-down car racing game including a level editor. ") + set(CPACK_DEBIAN_PACKAGE_SECTION "Games") + set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") + + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS YES) + + if(DISTRO_VERSION) + message(STATUS "Distro version: ${DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-${DISTRO_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}) + else() + set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}) endif() + + include(CPack) + else() - message(STATUS "Linux development build with local install targets.") + message(STATUS "Linux development build without install targets.") + message(STATUS "Use -DReleaseBuild=ON to enable install targets.") + set(BIN_PATH .) set(DATA_PATH ./data) set(DOC_PATH .) @@ -44,8 +67,6 @@ # This is the main data path given to the game and editor binaries. add_definitions(-DDATA_PATH="${DATA_PATH}") - setup_install_targets(${BIN_PATH} ${DATA_PATH} ${DOC_PATH}) - endfunction() # **** Install targets for Linux **** @@ -67,40 +88,17 @@ install(DIRECTORY data/fonts DESTINATION ${DATA_PATH} FILES_MATCHING PATTERN "*.txt") install(DIRECTORY ${CMAKE_BINARY_DIR}/data/translations DESTINATION ${DATA_PATH} FILES_MATCHING PATTERN "*.qm") - if(ReleaseBuild) - # Install .desktop files - install(FILES ${CMAKE_BINARY_DIR}/dustrac-game.desktop DESTINATION share/applications) - install(FILES ${CMAKE_BINARY_DIR}/dustrac-editor.desktop DESTINATION share/applications) - - # Install app store meta data - install(FILES src/dustrac.appdata.xml DESTINATION share/metainfo) - - # Install icons - install(FILES data/icons/dustrac-game.png DESTINATION share/pixmaps) - install(FILES data/icons/dustrac-game.png DESTINATION share/icons/hicolor/64x64/apps) - install(FILES data/icons/dustrac-editor.png DESTINATION share/pixmaps) - install(FILES data/icons/dustrac-editor.png DESTINATION share/icons/hicolor/64x64/apps) - - # Create symlinks to targets - if(USC) - execute_process(COMMAND cmake -E create_symlink ${BIN_PATH}/${GAME_BINARY_NAME} /usr/bin/${GAME_BINARY_NAME}) - execute_process(COMMAND cmake -E create_symlink ${BIN_PATH}/${EDITOR_BINARY_NAME} /usr/bin/${EDITOR_BINARY_NAME}) - endif() - endif() - - # CPack config to create e.g. self-extracting packages - set(CPACK_BINARY_STGZ ON) - set(CPACK_BINARY_TGZ ON) - set(CPACK_BINARY_TZ OFF) - - set(QT_VER_STR "qt5") - - set(CPACK_PACKAGE_FILE_NAME "dustrac-${VERSION}-linux-${CMAKE_HOST_SYSTEM_PROCESSOR}-${QT_VER_STR}") - set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING) - set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.md) - - if(NOT ReleaseBuild) - include(CPack) - endif() + # Install .desktop files + install(FILES ${CMAKE_BINARY_DIR}/dustrac-game.desktop DESTINATION share/applications) + install(FILES ${CMAKE_BINARY_DIR}/dustrac-editor.desktop DESTINATION share/applications) + + # Install app store meta data + install(FILES src/dustrac.appdata.xml DESTINATION share/metainfo) + + # Install icons + install(FILES data/icons/dustrac-game.png DESTINATION share/pixmaps) + install(FILES data/icons/dustrac-game.png DESTINATION share/icons/hicolor/64x64/apps) + install(FILES data/icons/dustrac-editor.png DESTINATION share/pixmaps) + install(FILES data/icons/dustrac-editor.png DESTINATION share/icons/hicolor/64x64/apps) endfunction() diff -Nru dustrac-2.0.1/Jenkinsfile dustrac-2.0.5/Jenkinsfile --- dustrac-2.0.1/Jenkinsfile 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/Jenkinsfile 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,84 @@ +pipeline { + agent none + stages { + stage('CMake Debug build and unit tests') { + agent { + docker { + image 'juzzlin/qt5-18.04:latest' + args '--privileged -t -v $WORKSPACE:/dr2d' + } + } + steps { + sh "mkdir -p build-debug" + sh "cd build-debug && cmake -DCMAKE_BUILD_TYPE=Debug .." + sh "cd build-debug && cmake --build . --target all -- -j3 && ctest" + } + } + stage('QMake build') { + agent { + docker { + image 'juzzlin/qt5-18.04:latest' + args '--privileged -t -v $WORKSPACE:/dr2d' + } + } + steps { + sh "mkdir -p build-qmake" + sh "cd build-qmake && qmake .. && make -j3" + } + } + stage('Debian package / Ubuntu 16.04') { + agent { + docker { + image 'juzzlin/qt5-16.04:latest' + args '--privileged -t -v $WORKSPACE:/dr2d' + } + } + steps { + sh "mkdir -p build" + sh "cd build && cmake -D DISTRO_VERSION=Ubuntu-16.04 -D ReleaseBuild=ON -D CMAKE_BUILD_TYPE=Release .. && cmake --build . --target all -- -j3" + sh "cd build && cpack -G DEB" + } + post { + always { + archiveArtifacts artifacts: 'build/*.deb', fingerprint: true + } + } + } + stage('Debian package / Ubuntu 18.04') { + agent { + docker { + image 'juzzlin/qt5-18.04:latest' + args '--privileged -t -v $WORKSPACE:/dr2d' + } + } + steps { + sh "mkdir -p build" + sh "cd build && cmake -D DISTRO_VERSION=Ubuntu-18.04 -D ReleaseBuild=ON -D CMAKE_BUILD_TYPE=Release .. && cmake --build . --target all -- -j3" + sh "cd build && cpack -G DEB" + } + post { + always { + archiveArtifacts artifacts: 'build/*.deb', fingerprint: true + } + } + } + stage('NSIS installer') { + agent { + docker { + image 'juzzlin/mxe-qt5-18.04:latest' + args '--privileged -t -v $WORKSPACE:/dr2d' + } + } + steps { + sh "./scripts/build-windows-installer" + } + post { + always { + archiveArtifacts artifacts: '*.exe', fingerprint: true + archiveArtifacts artifacts: '*.zip', fingerprint: true + } + } + } + } +} + diff -Nru dustrac-2.0.1/packaging/debian/changelog dustrac-2.0.5/packaging/debian/changelog --- dustrac-2.0.1/packaging/debian/changelog 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/packaging/debian/changelog 1970-01-01 00:00:00.000000000 +0000 @@ -1,1104 +0,0 @@ -dustrac (2.0.1-1) xenial; urgency=medium - - * Editor: use qSetGlobalQHashSeed with Qt 5.6+ - * Properly check for empty version in mxeWindowsBuild.sh - - -- Jussi Lind Sat, 30 Dec 2017 15:08:11 +0200 - -dustrac (2.0.0-1) xenial; urgency=medium - - * CMake: Set C++ standard with set_property() - * Fix some Clang warnings - * CMake: Set Debug and Release flags separately - * Improve off-track particle effects - * Improvements to 'Figure 8.trk' - * Tune sound levels - * Add ability to do burnouts - * Tune virtual revs - * Make speed in km/h a bit higher - * Hide cursor by default - * Add FPS menu - * Fix all resolutions getting triggered - * Add specific menu shader - * Set selected resolution correctly - * Switch AI to 'cool down' mode when the race is completed - * Update (guess) German translations - * Force upper case on titles in the credits page - * Tune sound volume levels - * Replace intro fade with a simple timer - * Update Italian translations - * Update Czech translations - * Update Italian translations - * Update all .ts-files - * Add scripts/updateTranslationFiles.sh - * Update authors and credits - * Add some missing license headers - * Add info text to lap count menu - * Update translation instructions - * Animate menu transitions - * Set default moment of inertia factor to 10 - * Refactor MCRectShape init - * Add default contructor to MCOBBox - * Always select difficulty and lap count after selecting "Play" - * Move audio-related files to audio/ - * Move menu-related files to menu/ - * Tune Twineburg.trk - * Handle first and last menu item properly - * Make track selection menu a way cooler! - * Reset shadow FBO in ~Renderer() - * Make track length unitless - * Fixes to Radiator.trk - * Refactor top-level rendering code - * Add surrounding sand area to infinity.trk - * Adjust AI braking in Far Lands - * Editor: Fix object add on target nodes and other objects - * Remove MCTypes - * Editor: Fix the behavior of right-click - * Editor: Fix undo erasing computer hints - * Add more stuff to Far Lands - * Fade in/out the FBO shader only - * Create the bridge object as a mesh - * Improve mesh support - * Share code between surfaces and meshes - * Fix lighting issues - * New Dust Racing 2D banner object - * Editor: Add option to force object stationary - * Editor: Lock qhash random seed so that XML output is not randomized - * Fix the bridge - * Tune light colors - * Double the wall mass - * Improvements to twister.trk - * Fix undo on target node resize and object rotation - * Reset also shadowFbo on resolution change - * Fix GitHub issue #26: Undo resets tile rotations - * MiniCore: Don't use surface object batching - * MiniCore: Use correct programs in surface object renderers - * Editor: Add CLI option to force language - * Update Finnish translations - * Remove dustRacing2D.svg - * New about.png - * Remove dustRacing.png - * Fix computer driving line in Desert Storm.trk - * Set colors for skid marks - * Set color for braking glow - * MiniCore: Fix most problems with transparent particle / object batches - * Refactor credits - * MiniCore: Make MCTextureText copyable - * Move settingsBack.svg to a correct dir - * New intro image - * More trees to triangle.trk - * Randomize trees - * Fix menu background images with respect to width - * New settings back - * Fix driving lines in Curvastone - * Fix brake lights - * Make all objects movable - * Rewrite trees - * MiniCore: Update legacy renderers - * MiniCore: Make it possible to scale MCShapeView - * MiniCore: Remove useless batchMode crap - * MiniCore: Fix surface color and alpha blending mess - * MiniCore: Refactor MCSurface::setScale() - * MiniCore: Add all objects to the grid - * MiniCore: Fix object clipping - * MiniCore: Refactor object and view ID's - * MiniCore: Move MCShape::setRadius() to public scope - * Fix qmake build - * More transparent smoke - * New sparkle particle - * New mud particle - * Make TrackItem use the new stepTime(int) member - * Animate menu items - * MiniCore: MCTextureText sizes in floats - * Improve texture font generation - * MiniCore: Fix the use of GL_MAX_TEXTURE_SIZE - * MiniCore: MCTextureText size as floats - * Fix GitHub issue #24: Change the game font to DejaVu - * MiniCore: Add support for texture font densities - * Remove obsolete fonts.conf - * Tune particle parameters - * MiniCore: Improved MCVector2D::lengthFast() - * Fix some particle life times - * MiniCore: Fix angular integration - * Take per-vertex Z-coordinate into account in MCSurfaceObjectRenderer - * Update MiniCore - * Sky as SVG - * Fix some compiler warnings - * Refactor MXE build scripts - * Refactor renderer.cpp - * Decrease view angle to 22.5 degrees - * Add build scripts for Jenkins - * Make unit tests guiless - * Update brake sign, add SVG - * Update left and right signs, add SVG - * Install AppData file to the right location - * Install also possible font licence files - * Add licence for Ubuntu fonts - * Fix shader deletion issues reported by Valgrind - * Fixing clang build which attributes wrongly std=c++11 into C compiler flags. - * Fixing build with GLEW and QOpenGLFunctions=OFF. - * Update screenshots in README.md - * Fix CMake dev build - - -- Jussi Lind Sun, 24 Dec 2017 14:37:08 +0200 - -dustrac (1.13.0-5) xenial; urgency=medium - - * Editor: Implement universal undo stack - * Editor: Add option to insert row/col before or after - * Implement a minimap - * Refactor editor/editordata.hpp - * Refactor race.cpp - * Refactor pointer use in the game - * Refactor pointer use in the editor - * Refactor game/trackloader.cpp - * Refactor editor/trackio.cpp - * Refactor game.cpp - * Refactor TrackLoader usage - * Refactor game init - * Cosmetic changes to tracktile.hpp - * Delete OpenGL context as the last object - * Fix crash on settings loading - * Include for std::rand - * Make debian/rules use CMake directly - * Prefer out-of-source CMake build in INSTALL - * Update copyright text - * Fix build with MXE and Qt project files - * Add pulseaudio to static Qt5 build config - * Readiness to see the next target node for AI - - -- Jussi Lind Sun, 27 Aug 2017 21:55:14 +0300 - -dustrac (1.12.0-4) xenial; urgency=medium - - * Redo startlight graphics in SVG - * CMake: Switch to the recommended way to link Qt5 - * Make the steering more stable - * Add a Linux AppData file. - * Add 3 new tracks by Wuzzy - * Remove CMake policy CMP0054 setting. - * Fix GitHub issue #7: Bad track preview images. - * Fix GitHub issue #6: Assertion failure when empty route cleared. - * Add 4 new tracks by Wuzzy - * Remove lower bridge rails for now. - * Add 'de' to lang options in README. - * Add German translation - * Track prop. dialog can set user track and name - * Fix VBO binding. - * Refactor trackselectionmenu.cpp - * Implement MCObject's physics properties as a separate component. - * Remove useless uniforms from shadow shaders. - * Eliminate copy-pasted web site url's. - * Improve log messages about translations. - * Editor: Improve override cursor logic. - * Editor: Remove dead code. - * Refactor TrackDataBase. - * Update Czech translations. - - -- Jussi Lind Sun, 11 Dec 2016 23:45:55 +0200 - -dustrac (1.11.0-3) vivid; urgency=medium - - * Show a red overlay on hard crashes. - * Fix unit tests. - * Own layer for damage smoke. - * Remove misleading comments. - * Eliminate copy-paste. - * Editor: Fix wrong scale when track given as a CLI argument. - * Add body damage system. - * Stabilize the steering a bit. - * Make difficulty setting affect game speed. - * Add difficulty selection. - * Refactor settingsmenu.hpp - * Refactor steering logic. - * Editor: Don't try to open a track if filename is empty. - * Use same renderer for all particle batches. - * Sparkles as surface particles. - * Remove alpha blending from the plant object. - * Add screenshots of 1.10.0 - * Sort particles in place. - * Update web/index.html - - -- Jussi Lind Sun, 03 May 2015 20:39:03 +0300 - -dustrac (1.11.0-2) utopic; urgency=medium - - * Show a red overlay on hard crashes. - * Fix unit tests. - * Own layer for damage smoke. - * Remove misleading comments. - * Eliminate copy-paste. - * Editor: Fix wrong scale when track given as a CLI argument. - * Add body damage system. - * Stabilize the steering a bit. - * Make difficulty setting affect game speed. - * Add difficulty selection. - * Refactor settingsmenu.hpp - * Refactor steering logic. - * Editor: Don't try to open a track if filename is empty. - * Use same renderer for all particle batches. - * Sparkles as surface particles. - * Remove alpha blending from the plant object. - * Add screenshots of 1.10.0 - * Sort particles in place. - * Update web/index.html - - -- Jussi Lind Sun, 03 May 2015 20:25:29 +0300 - -dustrac (1.11.0-1) trusty; urgency=medium - - * Show a red overlay on hard crashes. - * Fix unit tests. - * Own layer for damage smoke. - * Remove misleading comments. - * Eliminate copy-paste. - * Editor: Fix wrong scale when track given as a CLI argument. - * Add body damage system. - * Stabilize the steering a bit. - * Make difficulty setting affect game speed. - * Add difficulty selection. - * Refactor settingsmenu.hpp - * Refactor steering logic. - * Editor: Don't try to open a track if filename is empty. - * Use same renderer for all particle batches. - * Sparkles as surface particles. - * Remove alpha blending from the plant object. - * Add screenshots of 1.10.0 - * Sort particles in place. - * Update web/index.html - - -- Jussi Lind Tue, 28 Apr 2015 20:33:04 +0300 - -dustrac (1.10.0-1) trusty; urgency=medium - - * Remove some needless assert's. - * Reduce quadratic drag. - * Move brake signs a bit further. - * Add a chicane to straight.trk and make it shorter. - * Move MCGLScene to MCWorldRenderer. - * Common base class for all particle renderers. - * Refactor particle rendering. - * Smaller tree swing amplitude. - * Fix cppcheck warnings. - * Mud particles as surface particles. - * Make it possible to spin. - * Take more car colors in to use. - * Simple specular effect for the cars. - * Fix specular lighting of the tire object. - * No leaf particle when colliding with plants. - * Higher z for the plant object. - * Implement batching and shadows for MCSurfaceParticles. - * New-style signal connections in Game. - * Lambda slots for show/hide cursor. - * Lambda slot for the update timer. - * Eliminate magic numbers. - * Add MCSurfaceParticleRenderer. - * Longer start grid to Suzuka. - * Editor: Implement row and col deletion. - * Editor: replace some if's with asserts. - * Editor: Fit track properly when loading a track. - * More sane use of casts. - * C++11 way to disable copy ctor's. - * Cosmetic changes to tracktile.hpp. - * Editor: Implement row and column insertion. - * Refactor Config. - * Remove unused class TileTypeDialog. - * Editor: Use C++11's override specifier. - * Editor: Replace private slots with lambdas in EditorView. - * Editor: Cosmetic changes to EditorView. - * Use add_compile_options() instead of appending CMAKE_CXX_FLAGS. - * Render rect particles as quads if not GLES. - * Add MCGLRectParticleRenderer. - * Show lap time in message area. - * Fix a typo. - * Remove obsolete images. - * Use GLSL's reflect(). - * Replace MCException with std::runtime_error. - * Use C++11's move semantics in MCBBox and MCBBox3d. - * Use C++11's move semantics in MCVector2d and MCVector3d. - * Refactor child velocity logic. - * Don't set render layer when on bridge. - * Render hud after shadows. - * Refactor MCSurfaceConfigLoader. - * Enable depth test for smoke. - * Fix depth test toggling in MCWorldRenderer. - * Remove render layers from cars' sub-objects. - * Render shadows with depth information. - * Update point sizes after resolution change. - * Refactor bridge creation. - * Fix build with qmake. - * Rescue corrupted dev branch. - * Set z-offsets for car surfaces. - * Add optional z attribute to MCSurface / surface config loader. - * Fix exception handling. - * Rename textures.conf => surfaces.conf - * Add mcvector2d.hh and mcvector3d.hh to CMakeLists.txt - * Divide layers into render and collision layers. - * Fix depth buffering. - * Add option to filter layers to be rendered. - * Use C++11 enum class in ResetAction. - * Use C++11 enum class in InputHandler. - * Use C++11 enum class in Game. - * Use C++11 enum class in MTFH::Menu. - * Use C++11 enum class for state. - * Use C++11 enum class for layers. - * Editor: Improve some tile graphics. - * Editor: Different colors for brake and brake hard. - * Refactor the use of gravity. - * Make timing based on frames instead of QTime. - * Fix a bug where mouse release outside pressed item caused two items being focused. - * Instantly change the virtual resolution between fullscreen modes. - - -- Jussi Lind Tue, 07 Apr 2015 19:56:55 +0300 - -dustrac (1.9.2-1) trusty; urgency=medium - - * Fix rendering of the windowed mode. - * Fix rendering in other than native resolutions. - * Take maximum supported texture size into account. - * Remove unused code. - * Remove commented code. - * QGLFramebufferObject => QOpenGLFramebufferObject. - * Add camera location support to MCGLShaderProgram. - * Simplify FBO shading. - * CMake: Check for polices before setting. - * Fix some MSVC compilation warnings. - * Improve documentaton in mcglscene.hh - * Add getters for eyeZ and viewAngle. - - -- Jussi Lind Sun, 18 Jan 2015 22:24:03 +0200 - -dustrac (1.9.1-1) trusty; urgency=medium - - * Set VSync default to 'ON'. - * Force QSettings to .INI-format on Windows. - * Show game version in the intro screen. - * Fix broken OpenGL scene size on virtual desktops. - * Make the code compile with MS Visual C++ 2013. - * Adjustable object grid size. - * Add unit test for sleep prevention. - * Add MCWorldTest. - * Fix crash when quitting. - * Fix multiple bridge issues. - * Fix a bug where tire objects couldn't get on a bridge. - * Improve bridge graphics. - * Improve tile graphics. - * Re-license artwork under CC BY-SA. - * Enable vsync menu if QT_VERSION >= 5.3.0 - * Make shaders able to have pending property changes. - * Fix rendering of two-player game. - * Darker asphalt tile. - * New rotating leaf particles. - * Switch to the new QSurface-based graphics stack. - * Improve doc of MCSurfaceManager. - * Fix MiniCore compatibility with QML. - * Fix game.pro - * Remove obsolete files. - * Not mandatory to give paths to MCAssetManager. - * MCObjectTree => MCObjectGrid - * Move some MCWorldRenderer methods to private scope. - * Update printHelp(). - * Add support for QOpenGLFunctions. - * Move Particles/* to Graphics/ - * Refactor vertex attribute array stuff from MCGLRectParticle to MCGLObjectBase. - * Move some default shaders from the game to engine's side. - * Refactor vertex attribute array stuff from child classes to MCGLObjectBase. - * Add proxy methods to set shaders for texture fonts. - * Refactor CMakeLists.txt - * Remove option to build for OpenGL 3.0 because shaders are not up-to-date. - * Refactor MiniCore file layout. - - -- Jussi Lind Thu, 01 Jan 2015 19:50:25 +0200 - -dustrac (1.8.3-1) trusty; urgency=medium - - * Fix bug in child object velocity calculation. - * Tune impulse calibration. - - -- Jussi Lind Tue, 18 Nov 2014 20:01:48 +0200 - -dustrac (1.8.2-1) trusty; urgency=medium - - * More accurate contact normal calculations. - * Fix bridges collision layers. - * Add small collision margin. - * More accurate distance from veactor calculations. - * Improvements to physics regarding angular impulse. - * Remove impulse generation loops. - * Lighter tire object. - * More agile car. - * Add slightly more grip. - * Fix some object layering issues. - * Add suzuka.trk - * Refactor layer logic. - * Fix some compilation warnings. - * Set CXX flags for Clang. - * Move font generation from GraphicsFactory to FontFactory. - - -- Jussi Lind Tue, 18 Nov 2014 01:18:35 +0200 - -dustrac (1.8.1-5) trusty; urgency=medium - - * Tune car parameters. - * Drop support for Qt4. - - -- Jussi Lind Sat, 08 Nov 2014 22:36:55 +0200 - -dustrac (1.8.0-2) trusty; urgency=medium - - * Improve target zones of ring.trk - * Improvements to twister.trk - * Linear filtering for the generated font texture. - * Improve positioning of stuck cars. - * Remove the crap brightness/contrast functionality. - * Texture tuning. - * Break after resolving the deepest contact. - * Help stuck cars more eagerly. - * Rewrite bridge logic. - * Make the Dust Racing 2d banner stationary - * Completely tire-controlled car. - * Improve sky reflection. - * Add shader headers to project. - * Tune color of the yellow car. - * Improve effect when off-track. - * Remove redundant message print - * Improvements for Visual Studio build. - * Add names of static vorbis libs commonly used in Windows - * Set cxx flags only if compiler is GNUCXX or MINGW - * Fix tires appearing on top of the car on bridge. - * Refactor scene.cpp - * Refactor MCObject. - * Render shadows onto a texture. - * Decouple shadow rendering from object rendering. - * Remove SlideFrictionGenerator. - * Fix website image sizes on mobile. - * Rewrite index.html - * Refactor gravitational constant. - * Optimize texture binding. - * Optimize VAO release. - * Optimize VBO binding. - * Fix installing the game when not built in the source root. Patch by Rémi Verschelde. - * Enhancement of the desktop files. Patch by Rémi Verschelde. - - -- Jussi Lind Sun, 02 Nov 2014 14:40:22 +0200 - -dustrac (1.7.3-1) precise; urgency=medium - - * Revert "Optimize VBO, VAO and texture binding." - * Fix MCObject::addTorque() - * Remove linear and angular velocity limits. - * Add support for positional force. - * Fix build with GL30=ON. - * Enable build on FreeBSD. - - -- Jussi Lind Sat, 23 Aug 2014 00:26:14 +0300 - -dustrac (1.7.2-1) precise; urgency=medium - - * Log the font texture size. - * Add French translations. - * Improve computer braking in twister.trk. - * Add CONTRIBUTING instructions. - * Add screenshots of 1.7.1 - - -- Jussi Lind Sat, 29 Mar 2014 14:34:58 +0200 - -dustrac (1.7.1-1) precise; urgency=medium - - * Add missing bridge model for editor. - - -- Jussi Lind Sun, 09 Mar 2014 14:40:07 +0200 - -dustrac (1.7.0-1) precise; urgency=medium - - * Don't show prev/next if on first/last item. - * Add twister.trk - * Add bridge object. - * Remove specular shaders from crate and tire. - * Small improvements to render timing. - * Move user tracks to the beginning of the track array. - * Fix computer driving line in curvastone.trk - * Editor: visualize computer hints. - * Fix off-track detection on 'sand grass straight' tile. - * Optimize VBO, VAO and texture binding. - * Add fade out flash transition. - * Add turn left and turn right signs. - * Update brake.png - * Add a new crash sound. - * Increase the initial slide friction to 1.0 - * Optimize viewport switching. - * Optimize the use of GL_DEPTH_TEST. - * Add CLI option to force vsync off. - * Use random functionality from C++11. - * Improve sky reflection. - * Add cache for uniform locations. - * Update scripts/genericLinuxBuildQt5 - - -- Jussi Lind Sat, 08 Mar 2014 14:48:41 +0200 - -dustrac (1.6.3-1) precise; urgency=low - - * Add specular lighting. - * Set race record only if race with computers. - * Fix audio threading. - * Cars 0 and 1 as pink and grey. - * Introduce MCGLMaterial. - * Rename master to default when referring to shaders. - * Default argument value for MCWorldRenderer::enableDepthTestOnLayer() - * Scene-level setters for ambient and diffuse lights. - * Remove shadersGLES.h from game.pro - * CMake option to statically link vorbis libs. - * Move MCGLScene::updateViewProjectionMatrixAndShaders() to private scope. - * Add MCGLScene::setFadeValue(). - * Use tile.hasAsphalt() instead of listing non-asphalt tiles. - * Separate generic Linux build scripts for Qt4 and Qt5. - * Remove needless shadersGLES. - * Refactor lighting in shaders. - * update mxeWindowsBuild. - * Update Czech translations. - * Move MXE script to scripts/ - * Refactor race.cpp. - * Refactor car creation into CarFactory. - - -- Jussi Lind Sat, 25 Jan 2014 21:08:15 +0200 - -dustrac (1.6.2-1) precise; urgency=low - - * Update README and INSTALL. - * Fix time trial mode. - - -- Jussi Lind Wed, 18 Dec 2013 18:52:37 +0200 - -dustrac (1.6.1-1) precise; urgency=low - - * Use colorful cars only in TOP-6. - * Updates README. - * Update Czech translations. - * Add dark red car. - * Add dark green car. - * Update Italian translations. - * Update cs and it source strings. - * Add option to set sounds on/off. - * Add fallback char for ď. - * Add translations to mxeWindowsBuild. - * Use wide strings in credits.cpp. - * Add command line option to force language. - * Update Finnish translations. - * Remove the FPS menu and settings. - * Use the vsync setting in Game. - * Add VSyncMenu. - * Rename 'Key configuration' to 'Controls'. - * Update credits menu content. - * Move reset settings to a new reset menu. - * Move graphics settings to a new GFX menu. - * New game loop. - * Fix build for OpenGL 3.0 - * Refcator car image switching. - * Add cyan car. - * Add violet car. - * Add green car. - * Sort tiles before rendering. - * Add notion of driver vsync. - - -- Jussi Lind Tue, 17 Dec 2013 20:09:26 +0200 - -dustrac (1.5.5-1) precise; urgency=low - - * #ifdef for GL versions in game.cpp - * Set version 120 for OpenGL 2.1 shaders. - * Remove precision qualifiers from ver 1.00 desktop shaders. - - -- Jussi Lind Sun, 08 Dec 2013 15:29:58 +0200 - -dustrac (1.5.4-1) precise; urgency=low - - * Remove swap interval setting. - * Remove unused variable. - * Less dramatic tire wear when off-track. - * Remove FPS setting completely. - * Add install target for fonts. - * Add fallback glyphs. - * Add unlimited FPS setting. - * Use updateGL to update. - * Use the bounding rect version of QPainter::drawText(). - * Make text more dense. - * Font generator tries to use Ubuntu Mono. - * Add Ubuntu Mono fonts to data/fonts. - * Switch to wide chars. - * Use wchar_t in the font map. - * Update AUTHORS. - * Add Czech translations for the editor. - * Generate game font on-the-fly. - * Fix some documentation formatting. - * Make createFontFromData a public function. - * Cosmetics. - * Add message about missing translation. - * Add Finnish translations for the editor. - * Add Czech translations. - * Update qmake project files. - * Update Italian translations. - * Add Italian translations for the editor. - * Add blue car. - - -- Jussi Lind Sun, 08 Dec 2013 01:44:58 +0200 - -dustrac (1.5.2-1) precise; urgency=low - - * Add script to build and package for Windows on Linux. - * Move mxeEnv.sh to scripts/ - * Remove unused variable from MCTextureGlyph. - * Don't send pit signal twice. - * Add scissor tests for split screen modes. - * Pass QString as const reference in audio signals. - * More quiet skid sound. - * Update .gitignore - * Shorter audio signal names. - * Reset input handler on race start. - * Refactor CarSoundEffectManager. - * Add skid sound. - * Hit sounds. - * Less aggressive tire wear on grass. - * Remove some crates from curvastone.trk - * A bit more acceleration friction. - * More realistic kmh values. - * Refactor Startlights. - * Connect volume change signals. - * Play cheering when winner finishes, not the human player. - * Add bell sound when checkered flag appears. - * Add predefined keys to Settings. - * Save lap count. - * Add generic value setter/getter to Settings. - * Slide a bit more on worn-out tires. - * Init race record when new track is set. - * Reset tire wear on pit stop. - * Blink car status view on pit stop. - * Add pit stops. - * Make tires wear when turning and accelerating or just braking. - * Fix clang warnings. - * New background image for settings. - * Update Finnish translations. - * Translate resolutionmenu.cpp - * Fix documentation typos. - * MCObjectFactory returns MCObjectPtr's instead of references. - * Fix comment format in mcobject.hh - * Support for trigger objects. - * Cosmetics in MCObject. - * Add red car. - * Refactors Scene. - * Render different positions with different colors. - * Save and load race records. - * Longer fade out from game. - * Smaller font for timing data. - * Show race time. - * Fix editor crash on object deletion. - * Add Italian translations. - * Fix turning direction on reverse. - * Add dirty cell cache to MCObjectTree. - * Rename sound files. - * Stop engine sounds after a race. - * Update INSTALL. - * Set listener location via a signal. - * Use pkg_check_modules to find libvorbisfile. - * Update qmake project files to link to libopenal and libvorbisfile. - * Refactor Scene::updateFrame() - * Tune engine sound parameters. - * Common base class for OpenALWavData and OpenALOggData. - * Update the example debian/rules - * Add engine sound for all computers. - * Ogg Vorbis support. - * Drop dependency to ALUT. - * Add sound for each car. - * Optimize pitch changes. - * LPF the engine sound. - * Initial engine sound. - * Remove throw()'s from STFH. - * Add CarSoundEffectManager. - * Add stopSound(), setPitch(), setVolume() to AudioThread. - * Add mutex to OpenALSource. - * Add engine sound wave. - * Load sounds into a map. - * Load sounds concurrently with the rest of init. - * Use DATA_PATH in AudioThread::loadSounds() - * Remove needless STFH::DataManager. - * Add menu sounds. - * OpenAL implementation of STFH. - * Add STFH. - * Move glew and glm under contrib/ - * Remove deps installation from InstallWindows.cmake - * Remove obsolete/ - * Remove deps: assume statically linked libs on Windows builds. - * Add experimental qmake project files. - * Add mxeEnv.sh helper. - * Use CMAKE_RC_COMPILER instead of hard-coded windres.exe - * Correctly handle particle animation types in MCParticle. - * Support varying point size also in GL30 and GLES shaders. - * Reduce moment of inertia. - * Revisit smoke particle effects. - * Update AUTHORS - * Fix loop limits in TrackSelectionMenu. - * Small refactoring in MCObjectTree. - * Set to initial slide friction to 0.90. - * Rename some variables according to current naming convention. - * Improve smoke particle. - * Use smart pointers always when ownership is in question. - * New dir layout for source images. - * Fix translations on Qt5. - - -- Jussi Lind Sat, 30 Nov 2013 17:02:45 +0200 - -dustrac (1.4.6-1) precise; urgency=low - - * Option for horizontal split. - * Tune sliding parameters. - * Remove deprecated sandAreaCurve45*. - * Make track selection menu usable with mouse. - * Refactor MCSurfaceConfigLoader. - * Add blur to star.png - * Rework tile graphics. - * Remove sandGrassStraight45Female. - * Remove glPushAttrib() from StartlightsOverlay. - * Rework startlights. - * Remove sandAreaCurve45*. Graphics to be added directly to the tile. - * Remove unused src images. - * Fix artifacts in the textured font. - * Fix Help on wide screens. - * Rename confusing MCSurface::setScale() to ::setSize(). - * Automatically show/hide mouse cursor. - * Fade startlights out on GO. - * Refactor view splitting. - * Support translations via Qt. - - -- Jussi Lind Sat, 28 Sep 2013 14:00:20 +0300 - -dustrac (1.4.5-1) precise; urgency=low - - * Improve documentation of CMake's options. - * Optional DATA_PATH, BIN_PATH and DOC_PATH. - - -- Jussi Lind Sat, 14 Sep 2013 16:25:39 +0300 - -dustrac (1.4.4-1) precise; urgency=low - - * Fix regression with install paths. - * Set cmake policy to the required version. - * Ubuntu => USC in CMakelists.txt - * Add DEPENDS to runtime targets. - * Refactor runtime targets. - * Don't set CMAKE_INSTALL_PREFIX in the code. - - -- Jussi Lind Sat, 14 Sep 2013 15:18:50 +0300 - -dustrac (1.4.3-1) precise; urgency=low - - * Support OpenGL 2.1 by default. - * Add custom targets for doc files. - * Fix CPack binary paths. - * Add install targets for Windows deps. - * Add deps for win32. - - -- Jussi Lind Thu, 12 Sep 2013 18:13:24 +0300 - -dustrac (1.4.2-1) precise; urgency=low - - * Fix computer diriving lines in monza.trk - * Make the game a bit more challenging. - * More sane shader API. - * Fix normals. - * Normal mapping for cars. - * Tune car parameters. - * Move ShaderProgram to MiniCore. - * Refactor steering. - * Improve steering stability. - * Updates triangle.trk. - * Updates rock.png. - * No contrast setting for the grandstand. - * Add some crates to straight.trk. - * Fix batched rendering of surface shadows. - * Collision detection for MCCircleShape. - * Refactor MCCollisionDetector. - * Remove unused variable from MCCircleShape. - * Fix the contrast algorithm. - * Less aggressive off track message. - * Update INSTALL. - * Move install stuff to InstallLinux.cmake and InstallWindows.cmake. - - -- Jussi Lind Tue, 03 Sep 2013 23:16:20 +0300 - -dustrac (1.4.1-1) precise; urgency=low - - * Display a message when off track. - * Refactor on-display messaging. - * Android compatibility improvements. - * GLES compatibility improvements. - * Simplify texture and program binding. - * Add MC_NO_GLEW define to allow compilation without GLEW. - * Drop dependency to QGLWidget in MCSurfaceManager. - * Add missing virtual destructor body to MCGravityGenerator. - * Move common GL stuff into MCGLObjectBase. - * Move aboutdlg.* to obsolete/ - * Remove useless variable. - * Remove useless includes. - * Fix CPack on out-of-source builds. - * Load shaders from source code. - * Multitextured sand. - * Support third texture. - * Update curvastone.trk - * Update monza.trk - * Editor: Object rotation can be set randomly. - * Add bushArea object. - * Tires wear out when off track. - * Track locking and best positions per lap count. - * Menus remember saved values. - * Add a generic quit item (X) to menus. - * Show cursor with --show-cursor. - * Menu items can be selected with a mouse. - * Don't try to swap buffers if not enabled. - * Fix app shutdown on Windows. - - -- Jussi Lind Thu, 04 Jul 2013 12:18:33 +0300 - -dustrac (1.3.1-1) precise; urgency=low - - * Log the game version on startup. - * Fix point particles on OpenGL older than 3.3 - * Fix crashing shaders on OpenGL 3.3 - - -- Jussi Lind Mon, 20 May 2013 18:47:16 +0300 - -dustrac (1.3.0-1) precise; urgency=low - - * Include Qt version in CPack package names. - * Point sprite skid marks. - * Fix Z-buffering of grandstands. - * Set brightness and contrast in the surface config. - * Refactor MCSurfaceMetaData. - * Mud particles as MCGLRectParticles. - * Soften grandstand.png. - * Off-track smoke. - * Fix zero glPointSize(). - * Optimize batch rendering. - * Rename pCamera to camera. - * Add constructor for ActionMapping. - * Renames m_vba => m_vao. - * Optimize texture and VAO usage. - * Adds starting grid to all race tracks. - * Refactors rendering stuff out from MCWorld to MCWorldRenderer. - * Adds ring.trk - * Fix unlocking of new race tracks. - * Fix performance issues due to faulty texture scaling. - * Increase smoke timeout. - * Scale particle point size with resolution. - * GL_DYNAMIC_DRAW hint for particles. - * Font improvements. - * High contrast graphics. - * Proper batching for point sprites. - * Fix crash with OpenGL 3.3 - * Remove obsolete keyword maxGlyphsPerRow. - - -- Jussi Lind Sat, 18 May 2013 00:56:59 +0300 - -dustrac (1.2.2-1) precise; urgency=low - - * Tune car parameters. - * Fix track unlocking. - * Add 3 and 5 to lap count selection. - * CMake: Use target_link_libraries for MiniCore. - * CMake: Support for CPack. - * Fix build on Windows. - - -- Jussi Lind Sun, 14 Apr 2013 18:34:18 +0300 - -dustrac (1.2.1-1) precise; urgency=low - - * Swap buffers only when renderer is enabled. - * Add 1 lap to lap count selection. - * Fine tune the font. - * Editor: Delete objects after they have been removed from the scene. Patch by Markus Rinne. - * Refactor StateMachine. - * Use Qt signal and lambda to exit game from menu. - * CMake: Print message about used Qt version. - * Move Scene::translateCarsToStartPositions() to Race:: - * Simplify menu texts. - * Removes useless QApplication::setGraphicsSystem("opengl") - * Removes dead code. - * Editor: The New Track Dialog validates entered values. - * Editor: Add shortcuts for undo and redo. - * Editor: Add Undo. Patch by Markus Rinne. - * Remove lap count property from race tracks. - * Add lap count menu. - * Add sandAreaCurve45 and sandAreaCurve45Right. - * Editor: Handle objects before target nodes. - * Correctly fade alpha. - * Adds sandAreaBig object. - * Adds sandAreaCurve object. - * Even smaller cars. - * Smaller turning impulse. - * More off-track friction. - * Simplifies the texture font system and config. - * Separate resolution menus for windowed and full screen. - * Refactor main.cpp - * Resolution scaling. - * Remove obsolete OpenGL stuff from MCGLScene. - * Remove obsolete OpenGL stuff from MCGLScene. - * Editor: Add flood fill. Patch by Markus Rinne. - * Prepare the project for Qt5. - * Refactors Startlights. - * More variance to computer speeds. - * Full screen by default. - * Add a comment about moment of intertia. - * Refactors StateMachine. - * Updates packaging. - * Editor: Refactors mouse event handling in EditorView. - * Generate desktop files only if ReleaseBuild defined. - * Adds home site url to the Help page. - * Refactors the number plate generation to GraphicsFactory. - - -- Jussi Lind Wed, 10 Apr 2013 21:18:09 +0300 - -dustrac (1.0.2-1) precise; urgency=low - - * Fixes install targets. - * Adds support for USC. - * Make sure the first track is always unlocked. - * Updates packaging. - - -- Jussi Lind Sat, 23 Feb 2013 13:23:47 +0200 - -dustrac (1.0.1-1) precise; urgency=low - - * Unlock the first race track. - * Generate desktop files only on Linux. - * CMake: Output binaries to CMAKE_BINARY_DIR instead of CMAKE_SOURCE_DIR. - * Limit the power to 200 kW. - - -- Jussi Lind Sat, 16 Feb 2013 16:18:13 +0200 - -dustrac (1.0.0-1) precise; urgency=low - - * Updates curvastone.trk. - * Updates infinity.trk. - * Updates triangle.trk. - * Removes irritating.trk (it was too irritating). - * Improves the lighting model. - * Improves the game dynamics. - * Support for mesh objects. - * Removes MCSurfaceConfigLoader::setConfigPath(). - * Adds cube.obj - * Moves MCObject::hasShadow() to MCShapeView. - * Configurable keys. - * Refactors SettingsMenu::SettingsMenu() - * Show all stars when best pos is 1. - * Removes demo.trk and circle.trk as they are crap. - * Less acceleration friction. - * Friction limits acceleration. - * Updates the car svg's. - * Adds documentation to TrackObjectFactory. - * Transparent background for the new application icons. - * Rename Track Editor to Level Editor in dustrac-editor.desktop - * Sets fixed limit to lateral friction. - * Adds clamp() and clampFast() to MCVector2d and MCVector3d. - - -- Jussi Lind Sun, 10 Feb 2013 13:12:45 +0200 - -dustrac (0.16.0-1) precise; urgency=low - - * Fixes typo in surfaces.conf - * New grandstand texture. - * Refactors object creation in TrackLoader. - * Updates the help text. - * Correct shape radius for the plant object. - * Removes h.trk. - * Fixes loading of locked tracks. - * Replaces square.trk with demo.trk. - * Finish in TOP-6 to unlock a new race track. - * Start pos will be the best pos of the current race track. - * Increase car count to 12. - * Generate number plates on-the-fly. - * Refactors MCSurface. - * Updates INSTALL. - * New application icons. - * Adds curvastone.trk. - * Adds new resolutions to the Resolutions menu. - * Editor: Automatically select the most recently added object. - * Editor: Re-order toolbar icons. - * Editor: Allow even larger target nodes. - * Editor: Show open file name in the window title. - * Updates index.html - - -- Jussi Lind Fri, 04 Jan 2013 00:00:54 +0200 - -dustrac (0.15.0-1) precise; urgency=low - - * Improves the startlight animation. - * Resizeable target nodes. - * Editor: Make TargetNodes darker. - * Editor: Adds grassEditor.png - * Editor: Rename computer hints. - * Remove 15 and 45 fps from the FPS menu. - * Correct layer for leaf particles. - * Adds menu.vsh - * Removes MCSurface::renderScaled(). - * Calculate color in the vertex shader. - * Kill particles when the world is cleared. - * The next starting pos will be the previous best pos. - * Refactors Race. - * Updates triagle.trk - * Reduce braking friction. - * Moves stuck cars onto the previous check point. - * Show a message box error if OpenGL to old. - * Updates monza.trk - * More realistic friction. - * New rock texture. - * Small particle optimizations. - * Adds skid marks. - * Decrease the max number of particles. - * Lazy release the active shader program. - * Simplify particle alpha. - * Refactors MCSurface. - * Force OpenGL core profile 3.0 - * Upgrades shaders to version 1.30. - * Fixes asphalt boundaries. - * Updates the example debian packaging. - - -- Jussi Lind Wed, 26 Dec 2012 20:05:29 +0200 - -dustrac (0.14.0-1) precise; urgency=low - - * Adds sky reflection. - * Updates square.trk - * Fixes grandstand shadows. - - -- Jussi Lind Thu, 29 Nov 2012 22:20:50 +0200 - -dustrac (0.13.0-1) precise; urgency=low - - * Refactors EventHandler to use an action map. - * Adds (L/R)SHIFT and (L/R)CTRL as alternative keys. - * Editor: Fixes clear tile action. - * Editor: Fixes a crash when clicking on empty track. - * Adds StateMachine::isFading(). - * Configurable fps. - * Revert "Use full screen mode as the default." - * Fixes game logic on different game modes. - * Adds Time Trial and Duel menu items. - - -- Jussi Lind Mon, 19 Nov 2012 22:01:23 +0200 - -dustrac (0.12.0-1) precise; urgency=low - - * New release. - - -- Jussi Lind Fri, 16 Nov 2012 18:37:23 +0200 - -dustrac (0.11.1-1) precise; urgency=low - - * New release. - - -- Jussi Lind Sat, 10 Nov 2012 23:46:53 +0200 - -dustrac (0.11.0-1) precise; urgency=low - - * New release. - - -- Jussi Lind Wed, 31 Oct 2012 22:05:02 +0200 - diff -Nru dustrac-2.0.1/packaging/debian/compat dustrac-2.0.5/packaging/debian/compat --- dustrac-2.0.1/packaging/debian/compat 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/packaging/debian/compat 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8 diff -Nru dustrac-2.0.1/packaging/debian/control dustrac-2.0.5/packaging/debian/control --- dustrac-2.0.1/packaging/debian/control 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/packaging/debian/control 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Source: dustrac -Section: games -Priority: extra -Maintainer: Jussi Lind -Build-Depends: debhelper (>= 8.0.0), cmake (>= 2.8.0), pkg-config, qt5-default (>= 5.2.0), libqt5opengl5-dev (>= 5.2.0), qttools5-dev (>= 5.2.0), qttools5-dev-tools (>= 5.2.0), libopenal-dev, libvorbis-dev -Standards-Version: 3.9.2 -Homepage: https://sourceforge.net/projects/dustrac/ -Vcs-Git: git://dustrac.git.sourceforge.net/gitroot/dustrac/dustrac - -Package: dustrac -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Tile-based 2D racing game and track editor - Dust Racing is a tile-based, cross-platform 2D racing game - written in Qt (C++) and OpenGL. Dust Racing comes with a Qt-based - level editor for easy level creation. diff -Nru dustrac-2.0.1/packaging/debian/copyright dustrac-2.0.5/packaging/debian/copyright --- dustrac-2.0.1/packaging/debian/copyright 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/packaging/debian/copyright 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -Format: http://dep.debian.net/deps/dep5 -Upstream-Name: dustrac -Source: https://sourceforge.net/projects/dustrac/ - -Files: * -Copyright: 2012 Jussi Lind -License: GPL-3.0+ - -Files: data/images/* -Copyright: 2012 Jussi Lind -License: CC BY-SA 3.0 - -Files: data/icons/* -Copyright: 2012 Jussi Lind -License: CC BY-SA 3.0 - -Files: debian/* -Copyright: 2012 Jussi Lind -License: GPL-3.0+ - -License: GPL-3.0+ - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - . - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see . - . - On Debian systems, the complete text of the GNU General - Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". - -License: CC BY-SA 3.0 - http://creativecommons.org/licenses/by-sa/3.0/ - -# Please also look if there are files or directories which have a -# different copyright/license attached and list them here. diff -Nru dustrac-2.0.1/packaging/debian/rules dustrac-2.0.5/packaging/debian/rules --- dustrac-2.0.1/packaging/debian/rules 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/packaging/debian/rules 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ -#!/usr/bin/make -f -# Sample debian/rules that uses debhelper. -# This file is public domain software, originally written by Joey Hess. -# -# This version is for packages that are architecture dependent. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -build: build-stamp -build-stamp: - dh_testdir - - # Add here commands to compile the package. - cmake . -DReleaseBuild=1 -DUSC=1 -DCMAKE_INSTALL_PREFIX=/usr && $(MAKE) -j$(shell cat /proc/cpuinfo | grep processor | wc -l) - touch build-stamp - -clean: - dh_testdir - dh_testroot - rm -f build-stamp - - # Add here commands to clean up after the build process. - dh_clean - $(test -r Makefile && $MAKE clean) - -install: build - dh_testdir - dh_testroot - dh_prep - dh_installdirs - - # Add here commands to install the package into debian/ - DESTDIR=`pwd`/debian/`dh_listpackages` $(MAKE) install - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - dh_installchangelogs - dh_installdocs - dh_installexamples -# dh_install -# dh_installmenu -# dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installcatalogs -# dh_installpam -# dh_installmime -# dh_installinit -# dh_installcron -# dh_installinfo -# dh_installwm -# dh_installudev -# dh_lintian -# dh_bugfiles -# dh_undocumented -# dh_installman - dh_link - dh_strip - dh_compress - dh_fixperms -# dh_perl -# dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install - diff -Nru dustrac-2.0.1/packaging/README dustrac-2.0.5/packaging/README --- dustrac-2.0.1/packaging/README 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/packaging/README 2020-01-06 23:07:24.000000000 +0000 @@ -1,7 +1,6 @@ README ====== -debian : Example packaging for Ubuntu/Debian. windows : Packaging script for NSIS. -- Jussi Lind diff -Nru dustrac-2.0.1/packaging/windows/dustrac.nsi dustrac-2.0.5/packaging/windows/dustrac.nsi --- dustrac-2.0.1/packaging/windows/dustrac.nsi 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/packaging/windows/dustrac.nsi 2020-01-06 23:07:24.000000000 +0000 @@ -1,19 +1,22 @@ ; Script for NSIS packaging. +!include MUI2.nsh +!include LogicLib.nsh + !define PRODUCTNAME "Dust Racing 2D" !define APPNAME-GAME "Dust Racing 2D" !define APPNAME-EDITOR "Dust Racing 2D Level Editor" !define COMPANYNAME "Jussi Lind" !define DESCRIPTION "A traditional top-down racing game." -!define VERSIONMAJOR 2 -!define VERSIONMINOR 0 -!define VERSIONBUILD 1 +!define VERSIONMAJOR 2 +!define VERSIONMINOR 0 +!define VERSIONBUILD 5 !define HELPURL "http://juzzlin.github.io/DustRacing2D/" !define UPDATEURL "https://github.com/juzzlin/DustRacing2D/releases" !define ABOUTURL "http://juzzlin.github.io/DustRacing2D/" -!define MUI_FILE "" -!define MUI_BRANDINGTEXT ${PRODUCTNAME} +;!define MUI_FILE "" +!define MUI_BRANDINGTEXT "Dust Racing 2D" ;!define MUI_HEADERIMAGE ;!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\orange.bmp" !define MUI_ICON "data\icons\DustRacing.ico" @@ -29,9 +32,6 @@ !define MUI_FINISHPAGE CRCCheck On - -!include MUI2.nsh -!include LogicLib.nsh RequestExecutionLevel admin @@ -39,7 +39,7 @@ Name "${PRODUCTNAME}" Icon "data\icons\DustRacing.ico" -OutFile "dustrac-${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}-windows-x86-qt5_setup.exe" +OutFile "dustracing2d-${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}-windows-x86-qt5_setup.exe" !insertmacro MUI_LANGUAGE "English" diff -Nru dustrac-2.0.1/README.md dustrac-2.0.5/README.md --- dustrac-2.0.1/README.md 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/README.md 2020-01-06 23:07:24.000000000 +0000 @@ -11,12 +11,12 @@ -Video of the game +Video of the game -Dust Racing (Dustrac) is a tile-based, cross-platform 2D racing game written +Dust Racing 2D (Dustrac) is a tile-based, cross-platform 2D racing game written in Qt (C++) and OpenGL. -Dust Racing comes with a Qt-based level editor for easy level creation. +Dust Racing 2D comes with a Qt-based level editor for easy level creation. A separate engine, MiniCore, is used for physics modeling. ## Features @@ -39,13 +39,13 @@ ## License -Dust Racing source code is licensed under GNU GPLv3. +Dust Racing 2D source code is licensed under GNU GPLv3. See COPYING for the complete license text. -Dust Racing includes the source code for the GLEW library. +Dust Racing 2D includes the source code for the GLEW library. See src/game/MiniCore/Graphics/glew/glew.h for the license text. -Dust Racing includes the source code for the GLM library. +Dust Racing 2D includes the source code for the GLM library. See src/game/MiniCore/Graphics/glm/ogl-math/glm/glm.hpp for the license text. All image files, except where otherwise noted, are licensed under @@ -84,24 +84,36 @@ Your tires will wear out as the race progresses. This causes more and more sliding. -Fortunately there's a pit (the yellow rectangle). +Fortunately there's a pit (the yellow rectangle). By stopping on the pit your tires will be repaired. ### Custom track files -Dust Racing searches for race tracks also in ~/DustRacingTracks/ -where you can place your own race tracks. +Dust Racing 2D searches for race tracks in `~/DustRacingTracks/` where you can place your own race tracks. + +On Linux/Unix also `$XDG_DATA_HOME/DustRacing2D/tracks` is added to search paths, or `$HOME/.local/share/DustRacing2D/tracks` if `$XDG_DATA_HOME` is not defined. ## Command line options ---lang [lang] forces the language. Currently available: fi, cs, de, it, fr. +`--lang [lang]` forces the language. Currently available: `fi`, `cs`, `de`, `it`, `fr`, `ru`. + +E.g. `dustrac-game --lang it` + +`--screen [index]` forces the screen on multi-display setups when in fullscreen mode. -E.g. ./dustrac-game --lang it +E.g. `dustrac-game --screen 1` would start the game on the second display. ## Building the project -Please refer to the INSTALL document for build/install instructions if you're -going to build Dust Racing 2D from sources. +Please refer to the `INSTALL` document for build/install instructions if you're +going to build **Dust Racing 2D** from sources. + +In a nutshell, on Linux after installing `Qt5`, `OpenAL` and `Vorbis` dev libs you just: + +`$ mkdir build && cd build` + +`$ cmake ..` --- Jussi Lind +`$ make` +..or open the top-level `CMakeLists.txt` in **Qt Creator** or other IDE that supports CMake. diff -Nru dustrac-2.0.1/RELEASES dustrac-2.0.5/RELEASES --- dustrac-2.0.1/RELEASES 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/RELEASES 1970-01-01 00:00:00.000000000 +0000 @@ -1,383 +0,0 @@ -2.0.1 -===== - -A bug fix release to fix build on Qt 5.6+ - -Bug fixes: - -* Editor: use qSetGlobalQHashSeed with Qt 5.6+ - - qt_qhash_seed is no more exported in recent Qt 5.9.x versions, so use - the public functions for it available since Qt 5.6. - -Other: - -* Properly check for empty version in mxeWindowsBuild.sh - -2.0.0 -===== - -This not a completely new game, but still so many fixes and changes that -it deserves a major version bump. - -New features: - -* Animated game menus -* Always select difficulty and lap count after selecting "Play" -* "Cool down" laps for AI to prevent the destruction derby -* Bridge object as a mesh -* Font changed to DejaVu -* FPS setting menu -* Fully destructible tracks to make races more unpredictable -* New intro image -* New particle effects -* New randomized tree objects -* Editor: Add CLI option to force language -* Editor: Add option to force object stationary -* Editor: Lock qhash random seed so that XML output is not randomized - -Improvements: - -* Improved driving dynamics. It's now possible to do burnouts -* Improved graphics and lighting -* Improvements and additions to many tracks -* Sound levels tuned - -Bug fixes: - -* Fix GitHub issue #26: Undo resets tile rotations -* Fix GitHub issue #24: Change the game font to DejaVu -* Fix qmake build -* Fix some particle life times -* Fix some compiler warnings -* Fix shader deletion issues reported by Valgrind -* Fix clang build which attributes wrongly std=c++11 into C compiler flags -* Fix build with GLEW and QOpenGLFunctions=OFF -* Fix CMake dev build -* Editor: Fix object add on target nodes and other objects -* Editor: Fix the behavior of right-click -* Editor: Fix undo erasing computer hints -* Editor: Fix undo on target node resize and object rotation - -Other: - -* Translation updates -* Lots of code refactored - -1.13.0 -====== - -New features: - -* Implement a minimap -* Editor: Implement universal undo stack -* Editor: Add option to insert row/col before or after - -Bug fixes: - -* Fix GitHub issue #9: Editor segfaults when undoing a change on the last row/column which got deleted before -* Fix GitHub issue #19: Crash on exit on FreeBSD -* Fix a potential crash on settings loading - -Other: - -* Lots of code refactored - -1.12.0 -====== - -New features: - -* 7 new tracks by Wuzzy -* Add German translation - -Improvements: - -* Make the steering more stable -* Redo startlight graphics in SVG -* Improve log messages about translations. -* Editor: Improve override cursor logic. -* Editor: Remove dead code. -* Update Czech translations. - -Bug fixes: - -* Fix GitHub issue #7: Bad track preview images. -* Fix GitHub issue #6: Assertion failure when empty route cleared. -* Remove lower bridge rails for now. - -Other: - -* CMake: Switch to the recommended way to link Qt5 - -1.11.0 -====== - -New features: - -* Finally a difficulty setting with three levels: Easy, Medium and Senna -* Show a red overlay on hard crashes -* Cars can get damaged - -Improvements: - -* Remove alpha blending from the plant object -* Stabilize the steering a bit - -Bug fixes: - -* Editor: Fix wrong scale when track given as a CLI argument -* Editor: Don't try to open a track if filename is empty -* Fix unit tests - -Other: - -* Refactor settingsmenu.hpp -* Refactor steering logic -* Sparkles as surface particles -* Use same renderer for all particle batches - -1.10.0 -====== - -In this release multiple issues with shadow rendering are fixed. -Particle rendering is completely reworked and also the track editor -is given some love. Issues with depth testing are fixed. A lot of -bug fixes and miscellaneous improvements and changes. - -New features: - -* Add a chicane to straight.trk and make it shorter -* Instantly change the virtual resolution between fullscreen modes -* Longer start grid to Suzuka -* Make it possible to spin -* Show lap time in message area -* Simple specular effect for the cars -* Take more car colors in to use -* Editor: Different colors for brake and brake hard -* Editor: Implement row and col deletion -* Editor: Implement row and column insertion - -Improvements: - -* Enable depth test for smoke -* Implement batching and shadows for MCSurfaceParticles -* Make timing based on frames instead of QTime -* Mud particles as surface particles -* No leaf particle when colliding with plants -* Reduce quadratic drag -* Refactor particle rendering -* Rename textures.conf => surfaces.conf -* Render rect particles as quads if not GLES -* Render shadows with depth information -* Set z-offsets for car surfaces -* Smaller tree swing amplitude -* Use GLSL's reflect() -* Editor: Fit track properly when loading a track -* Editor: Improve some tile graphics -* Editor: Replace private slots with lambdas in EditorView -* Editor: Replace some if's with asserts -* Editor: Use C++11's override specifier - -Bug fixes: - -* Fix a bug where mouse release outside pressed item caused two items being focused -* Fix build with qmake -* Fix cppcheck warnings -* Fix depth buffering -* Fix exception handling -* Fix specular lighting of the tire object - -Other: - -* Add optional z attribute to MCSurface / surface config loader -* Add mcvector2d.hh and mcvector3d.hh to CMakeLists.txt -* Add option to filter layers to be rendered -* C++11 way to disable copy ctor's -* Common base class for all particle renderers -* Divide layers into render and collision layers -* Lambda slots for show/hide cursor -* Lambda slot for the update timer -* More sane use of casts -* Move MCGLScene to MCWorldRenderer -* New-style signal connections in Game -* Refactor bridge creation -* Refactor Config -* Refactor child velocity logic -* Refactor MCSurfaceConfigLoader -* Remove obsolete images -* Remove render layers from cars' sub-objects -* Replace MCException with std::runtime_error -* Use add_compile_options() instead of appending CMAKE_CXX_FLAGS -* Use C++11's move semantics in MCBBox and MCBBox3d -* Use C++11's move semantics in MCVector2d and MCVector3d - -1.9.2 -===== - -Bug fixes: - -* Fix rendering of the windowed mode. -* Fix rendering in other than native resolutions. - -Improvements: - -* Take maximum supported texture size into account. -* QGLFramebufferObject => QOpenGLFramebufferObject. -* Add camera location support to MCGLShaderProgram. -* Simplify FBO shading. -* CMake: Check for polices before setting. -* Fix some MSVC compilation warnings. -* Improve documentaton in mcglscene.hh -* Add getters for eyeZ and viewAngle. - -1.9.1 -===== - -New features: - -* Rotating leaf particles -* Show game version in the intro screen. - -Improvements: - -* Set VSync default to 'ON'. -* Force QSettings to .INI-format on Windows. -* Make the code compile with MS Visual C++ 2013. -* Improved tile graphics -* Re-license artwork under CC BY-SA -* Switch to the new QSurface-based graphics stack -* Engine improvements - -Bug fixes: - -* Fix broken OpenGL scene size on virtual desktops. -* Fix multiple bridge issues -* Fix crash when quitting -* Fix rendering of two-player game - -1.8.3 -===== - -Bug fixes: - -* Fix some physics issues - -1.8.2 -===== - -New features: - -* New race track suzuka.trk - -Improvements: - -* Physics improvements - - More stable and agile car handling - - Lighter tire object - -Bug fixes: - -* Fix multiple bugs in the bridge component -* Fix compilation with Clang - -1.8.1 -===== - -Improvements: - -* Tune car parameters - -Other: - -* Drop support for Qt4 - -1.8.0 -===== - -New features: - -* More realistic and dynamic car physics for funnier gameplay. -* Rewritten bridge object that now actually even works -* Some graphics improvements (they are still shitty, though) - - Transparent shadows - - Two-player game views separated by a narrow line - - Filtering added to some textures - - Some car graphics improved -* Driving off-track is now more merciful - -Bug fixes: - -* Fix installing the game when not built in the source root. Patch by Rémi Verschelde. -* Enhancement of the desktop files. Patch by Rémi Verschelde. -* Fix bridge - -Other: - -* Improve target zones of ring.trk - -1.7.3 -===== - -Maintenance release: - -* Revert "Optimize VBO, VAO and texture binding." - - Caused missing number plate of the first car -* Fix MCObject::addTorque() -* Remove linear and angular velocity limits. -* Add support for positional force. -* Fix build with GL30=ON. -* Enable build on FreeBSD. - -1.7.2 -===== - -New features - -* French translations - -Bug fixes: - -* Fix computer driving lines in twister.trk - -1.7.1 -===== - -Bug fixes: - -* Add missing bridge model for editor. - -1.7.0 -===== - -New features: - -* twister.trk -* Bridge object. -* Fade out flash transition. -* Turn left and turn right signs. -* CLI option to force vsync off. -* New crash sound. -* Editor: visualize computer hints. -* Move user tracks to the beginning of the track array. -* Increase the initial slide friction to 1.0 - -Bug fixes: - -* Don't show prev/next if on first/last item. -* Remove specular shaders from crate and tire. -* Fix computer driving line in curvastone.trk -* Fix off-track detection on 'sand grass straight' tile. - -Other: - -* Small improvements to render timing. -* Optimize VBO, VAO and texture binding. -* Optimize viewport switching. -* Optimize the use of GL_DEPTH_TEST. -* Use random functionality from C++11. -* Improve sky reflection. -* Update scripts/genericLinuxBuildQt5 - --- Jussi Lind - diff -Nru dustrac-2.0.1/scripts/apply-clang-format dustrac-2.0.5/scripts/apply-clang-format --- dustrac-2.0.1/scripts/apply-clang-format 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/scripts/apply-clang-format 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,9 @@ +#!/bin/bash + +CLANG_FORMAT=clang-format + +FILES=$(find src/editor src/game src/common -name *hpp -or -name *cpp -or -name *hh -or -name *cc -or -name *h | grep -v moc_ | grep -v qrc_) +${CLANG_FORMAT} -i -style=file ${FILES} + +echo "Done." + diff -Nru dustrac-2.0.1/scripts/archive.sh dustrac-2.0.5/scripts/archive.sh --- dustrac-2.0.1/scripts/archive.sh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/scripts/archive.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -VERSION=$(git log | grep -m 1 "^\s*[0-9]\.[0-9]*\.[0-9]*" | awk '{print $1}') -git archive --format=tar --prefix=dustrac-$VERSION/ HEAD | gzip > dustrac-$VERSION.tar.gz -git archive --format=zip --prefix=dustrac-$VERSION/ HEAD > dustrac-$VERSION.zip - diff -Nru dustrac-2.0.1/scripts/build/jenkins.sh dustrac-2.0.5/scripts/build/jenkins.sh --- dustrac-2.0.1/scripts/build/jenkins.sh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/scripts/build/jenkins.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/bash - -# Simple build script that can be run from Jenkins - -CORES=$(cat /proc/cpuinfo | grep processor | wc -l) - -(mkdir -p jenkins-build-cmake && cd jenkins-build-cmake && cmake .. && make -j${CORES} && ctest) || exit 1 - -(mkdir -p jenkins-build-qmake && cd jenkins-build-qmake && qmake .. && make -j${CORES}) || exit 1 - -MXE_PATH=/opt/mxe/ - -export PATH=${MXE_PATH}/usr/bin:${PATH} -export PKG_CONFIG_PATH=${MXE_PATH}/usr/i686-pc-mingw32/lin/pkgconfig - -(mkdir -p jenkins-build-mxe && cd jenkins-build-mxe && source ../scripts/mxeEnv.sh && ../scripts/mxeWindowsBuild.sh ..) || exit 1 - diff -Nru dustrac-2.0.1/scripts/build-windows-installer dustrac-2.0.5/scripts/build-windows-installer --- dustrac-2.0.1/scripts/build-windows-installer 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/scripts/build-windows-installer 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,19 @@ +#!/bin/bash + +# Builds NSIS installer for Windows in Docker + +DUSTRAC_RELEASE_VERSION=2.0.5 + +CMD="export LANG=en_US.UTF-8 && \ + export LC_ALL=en_US.UTF-8 && \ + export PATH='$PATH':/mxe/usr/bin && \ + cd /dr2d && DUSTRAC_RELEASE_VERSION=${DUSTRAC_RELEASE_VERSION} ./scripts/mxe-windows-build" + +if [ -f /.dockerenv ]; then + echo "Script inside Docker" + bash -c "${CMD}" +else + echo "Script outside Docker" + docker run --privileged -t -v $(pwd):/dr2d juzzlin/mxe-qt5-18.04:latest bash -c "${CMD}" +fi + diff -Nru dustrac-2.0.1/scripts/generic-linux-build-qt5 dustrac-2.0.5/scripts/generic-linux-build-qt5 --- dustrac-2.0.1/scripts/generic-linux-build-qt5 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/scripts/generic-linux-build-qt5 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,88 @@ +#!/bin/bash + +# Assumes, that you have installed (static) qt5 to ~/qt5. + +QT5_QMAKE=~/qt5/bin/qmake +if ! which $QT5_QMAKE; then + echo "$QT5_QMAKE not found." + exit 1 +fi + +TAR=tar +if ! which $TAR; then + echo "$TAR not found." + exit 1 +fi + +LRELEASE=lrelease +if ! which $LRELEASE; then + echo "$LRELEASE not found." + exit 1 +fi + +NUM_CPUS=$(cat /proc/cpuinfo | grep processor | wc -l) + +# Package naming + +NAME=dustrac +VERSION=${DUSTRAC_RELEASE_VERSION?"DUSTRAC_RELEASE_VERSION_NOT_SET"} +ARCH=linux-x86_64 +QT=qt5 + +# Build + +$QT5_QMAKE && make -j$NUM_CPUS || exit 1 + +# Update translations + +$LRELEASE ./src/game/game.pro && $LRELEASE ./src/editor/editor.pro || exit 1 + +# Install to packaging dir + +PACKAGE_PATH=$NAME-$VERSION-$ARCH-$QT +rm -rf $PACKAGE_PATH +mkdir $PACKAGE_PATH + +mkdir -p data/translations +cp -v ./src/game/translations/*.qm data/translations && +cp -v ./src/editor/translations/*.qm data/translations && +cp -v ./src/game/dustrac-game $PACKAGE_PATH && +cp -v ./src/editor/dustrac-editor $PACKAGE_PATH && +cp -rv data $PACKAGE_PATH || exit 1 + +TEXT_FILES="AUTHORS CHANGELOG COPYING README.md" +cp -v $TEXT_FILES $PACKAGE_PATH || exit 1 + +# Copy some needed dependecies + +DEPS="ogg vorbis openal" +for lib in $DEPS; do +cp -v $(ldd $PACKAGE_PATH/dustrac-game | grep $lib | awk '{print $3}') $PACKAGE_PATH +done + +# Create start script for the game + +cp $PACKAGE_PATH/dustrac-game $PACKAGE_PATH/g.bin +SCRIPT=$PACKAGE_PATH/dustrac-game +echo "#!/bin/sh" > $SCRIPT +echo "LD_LIBRARY_PATH=. ./g.bin" >> $SCRIPT +chmod 755 $SCRIPT + +# Create start script for the editor + +cp $PACKAGE_PATH/dustrac-editor $PACKAGE_PATH/e.bin +SCRIPT=$PACKAGE_PATH/dustrac-editor +echo "#!/bin/sh" > $SCRIPT +echo "LD_LIBRARY_PATH=. ./e.bin" >> $SCRIPT +chmod 755 $SCRIPT + +# Create tgz archive + +TGZ_ARCHIVE=$PACKAGE_PATH.tar.gz +rm -f $TGZ_ARCHIVE +$TAR czvf $TGZ_ARCHIVE $PACKAGE_PATH + +ls -ltr + +echo "Done." + diff -Nru dustrac-2.0.1/scripts/genericLinuxBuildQt5.sh dustrac-2.0.5/scripts/genericLinuxBuildQt5.sh --- dustrac-2.0.1/scripts/genericLinuxBuildQt5.sh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/scripts/genericLinuxBuildQt5.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ -#!/bin/bash - -# Assumes, that you have installed (static) qt5 to ~/qt5. - -QT5_QMAKE=~/qt5/bin/qmake -if ! which $QT5_QMAKE; then - echo "$QT5_QMAKE not found." - exit 1 -fi - -TAR=tar -if ! which $TAR; then - echo "$TAR not found." - exit 1 -fi - -LRELEASE=lrelease -if ! which $LRELEASE; then - echo "$LRELEASE not found." - exit 1 -fi - -NUM_CPUS=$(cat /proc/cpuinfo | grep processor | wc -l) - -# Package naming - -NAME=dustrac -VERSION=${DUSTRAC_RELEASE_VERSION?"DUSTRAC_RELEASE_VERSION_NOT_SET"} -ARCH=linux-x86_64 -QT=qt5 - -# Build - -$QT5_QMAKE && make -j$NUM_CPUS || exit 1 - -# Update translations - -$LRELEASE ./src/game/game.pro && $LRELEASE ./src/editor/editor.pro || exit 1 - -# Install to packaging dir - -PACKAGE_PATH=$NAME-$VERSION-$ARCH-$QT -rm -rf $PACKAGE_PATH -mkdir $PACKAGE_PATH - -mkdir -p data/translations -cp -v ./src/game/translations/*.qm data/translations && -cp -v ./src/editor/translations/*.qm data/translations && -cp -v ./src/game/dustrac-game $PACKAGE_PATH && -cp -v ./src/editor/dustrac-editor $PACKAGE_PATH && -cp -rv data $PACKAGE_PATH || exit 1 - -TEXT_FILES="AUTHORS CHANGELOG COPYING README.md" -cp -v $TEXT_FILES $PACKAGE_PATH || exit 1 - -# Copy some needed dependecies - -DEPS="ogg vorbis openal" -for lib in $DEPS; do -cp -v $(ldd $PACKAGE_PATH/dustrac-game | grep $lib | awk '{print $3}') $PACKAGE_PATH -done - -# Create start script for the game - -cp $PACKAGE_PATH/dustrac-game $PACKAGE_PATH/g.bin -SCRIPT=$PACKAGE_PATH/dustrac-game -echo "#!/bin/sh" > $SCRIPT -echo "LD_LIBRARY_PATH=. ./g.bin" >> $SCRIPT -chmod 755 $SCRIPT - -# Create start script for the editor - -cp $PACKAGE_PATH/dustrac-editor $PACKAGE_PATH/e.bin -SCRIPT=$PACKAGE_PATH/dustrac-editor -echo "#!/bin/sh" > $SCRIPT -echo "LD_LIBRARY_PATH=. ./e.bin" >> $SCRIPT -chmod 755 $SCRIPT - -# Create tgz archive - -TGZ_ARCHIVE=$PACKAGE_PATH.tar.gz -rm -f $TGZ_ARCHIVE -$TAR czvf $TGZ_ARCHIVE $PACKAGE_PATH - -ls -ltr - -echo "Done." - diff -Nru dustrac-2.0.1/scripts/license.py dustrac-2.0.5/scripts/license.py --- dustrac-2.0.1/scripts/license.py 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/scripts/license.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -#!/usr/bin/python - -# This file is part of Dust Racing (DustRAC). -# Copyright (C) 2011 Jussi Lind -# -# DustRAC is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# DustRAC is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with DustRAC. If not, see . -# -# Usage: -# -# This script replaces the license plate of the given file(s) with -# the given new license plate. license lines MUST begin with "//". -# -# e.g. python license.py gpl_header.txt `find . -name "*.hh"` - -import sys - -def main(argv): - - if len(argv) < 3: - print("Usage: python license.py [licenseHeaderFile] [sourceFiles]") - return 1 - - # Read the new license - fName = argv[1] - print("Opening " + fName + " for read..") - f = open(fName, 'r') - licenseLines = f.readlines() - f.close() - - for j in xrange(2, len(argv)): - fName = argv[j] - - # Read the original file - print("Opening " + fName + " for read..") - f = open(fName, 'r') - origLines = f.readlines() - f.close() - - # Skip the current license plate - headerSkip = True - newLines = [] - for i in origLines: - if (i.find('//') == 0 or i.find('\n') == 0) and headerSkip: - pass - else: - headerSkip = False - newLines.append(i) - - # Add the new license - newLines = licenseLines + newLines - - # Modify the source file - print("Opening " + fName + " for write..") - f = open(fName, 'w') - f.writelines(newLines) - f.close() - - print("Done.") - return 0 - -if __name__ == '__main__': - main(sys.argv) - diff -Nru dustrac-2.0.1/scripts/mxe-env dustrac-2.0.5/scripts/mxe-env --- dustrac-2.0.1/scripts/mxe-env 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/scripts/mxe-env 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,5 @@ +# source this script +export MXE_PATH=/opt/mxe/ +export PATH=${MXE_PATH}/usr/bin:$PATH +export PKG_CONFIG_PATH=${MXE_PATH}/usr/i686-pc-mingw32/lib/pkgconfig + diff -Nru dustrac-2.0.1/scripts/mxeEnv.sh dustrac-2.0.5/scripts/mxeEnv.sh --- dustrac-2.0.1/scripts/mxeEnv.sh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/scripts/mxeEnv.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -# source this script -export MXE_PATH=/opt/mxe/ -export PATH=${MXE_PATH}/usr/bin:$PATH -export PKG_CONFIG_PATH=${MXE_PATH}/usr/i686-pc-mingw32/lib/pkgconfig - diff -Nru dustrac-2.0.1/scripts/mxe-windows-build dustrac-2.0.5/scripts/mxe-windows-build --- dustrac-2.0.1/scripts/mxe-windows-build 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/scripts/mxe-windows-build 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,102 @@ +#!/bin/bash + +# Assumes, that you have built and installed qt5, openal and vorbis via MXE. + +ZIP=zip +if ! which ${ZIP}; then + echo "${ZIP} not found." + exit 1 +fi + +UNIX2DOS=unix2dos +if ! which ${UNIX2DOS}; then + echo "${UNIX2DOS} not found." + exit 1 +fi + +QMAKE=/mxe/usr/i686-w64-mingw32.static/qt5/bin/qmake +if ! which ${QMAKE}; then + echo "${QMAKE} not found." + exit 1 +fi + +MAKENSIS=/mxe/usr/bin/i686-w64-mingw32.static-makensis +if ! which ${MAKENSIS}; then + echo "${MAKENSIS} not found." + exit 1 +fi + +LRELEASE=/mxe/usr/i686-w64-mingw32.static/qt5/bin/lrelease +if ! which ${LRELEASE}; then + echo "${LRELEASE} not found." + exit 1 +fi + +NUM_CPUS=$(cat /proc/cpuinfo | grep processor | wc -l) + +# Package naming + +NAME=dustracing2d +VERSION=${DUSTRAC_RELEASE_VERSION} +if [[ -z ${VERSION} ]]; then + echo "DUSTRAC_RELEASE_VERSION not set." + exit 1 +fi + +ARCH=windows-x86 + +# Build + +PROJECT_DIR=. +if [[ $1 ]]; then + PROJECT_DIR=$1 + echo "Project dir: ${PROJECT_DIR}" +fi + +${QMAKE} ${PROJECT_DIR} && make clean && make -j${NUM_CPUS} || exit 1 + +# Update translations + +${LRELEASE} ${PROJECT_DIR}/src/game/game.pro && ${LRELEASE} ${PROJECT_DIR}/src/editor/editor.pro || exit 1 + +# Install to packaging dir + +PACKAGE_PATH=${NAME}-${VERSION}-${ARCH} + +rm -rf ${PACKAGE_PATH} +mkdir ${PACKAGE_PATH} + +mkdir -p data/translations && +cp -v ${PROJECT_DIR}/src/game/translations/*.qm data/translations && +cp -v ${PROJECT_DIR}/src/editor/translations/*.qm data/translations && + +# These are output files +cp -v src/game/release/dustrac-game.exe ${PACKAGE_PATH} && +cp -v src/editor/release/dustrac-editor.exe ${PACKAGE_PATH} && + +cp -rv ${PROJECT_DIR}/data ${PACKAGE_PATH} || exit 1 + +TEXT_FILES="AUTHORS CHANGELOG COPYING README.md" +for i in ${TEXT_FILES}; do + cp -v ${PROJECT_DIR}/$i ${PACKAGE_PATH} || exit 1 +done + +cd ${PACKAGE_PATH} +${UNIX2DOS} ${TEXT_FILES} +cd .. + +# Create zip archive + +ZIP_ARCHIVE=${NAME}-${VERSION}-${ARCH}.zip +rm -f ${ZIP_ARCHIVE} +$ZIP -rv ${ZIP_ARCHIVE} ${PACKAGE_PATH} + +# Create NSIS installer + +cp ${PROJECT_DIR}/packaging/windows/dustrac.nsi ${PACKAGE_PATH} && cd ${PACKAGE_PATH} && ${MAKENSIS} dustrac.nsi || exit 1 +cd .. && mv ${PACKAGE_PATH}/*setup.exe . || exit 1 + +ls -ltr + +echo "Done." + diff -Nru dustrac-2.0.1/scripts/mxeWindowsBuild.sh dustrac-2.0.5/scripts/mxeWindowsBuild.sh --- dustrac-2.0.1/scripts/mxeWindowsBuild.sh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/scripts/mxeWindowsBuild.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ -#!/bin/bash - -# Assumes, that you have installed qt5, libopenal and libvorbisfile via MXE. - -MXE_QT5_QMAKE=${MXE_PATH}/usr/i686-w64-mingw32.static/qt5/bin/qmake - -ZIP=zip -if ! which ${ZIP}; then - echo "${ZIP} not found." - exit 1 -fi - -UNIX2DOS=unix2dos -if ! which ${UNIX2DOS}; then - echo "${UNIX2DOS} not found." - exit 1 -fi - -MAKENSIS=makensis -if ! which ${MAKENSIS}; then - echo "${MAKENSIS} not found." - exit 1 -fi - -LRELEASE=lrelease -if ! which ${LRELEASE}; then - echo "${LRELEASE} not found." - exit 1 -fi - -NUM_CPUS=$(cat /proc/cpuinfo | grep processor | wc -l) - -# Package naming - -NAME=dustrac -VERSION=${DUSTRAC_RELEASE_VERSION} -if [[ -z ${VERSION} ]]; then - echo "DUSTRAC_RELEASE_VERSION not set." - VERSION="DUSTRAC_RELEASE_VERSION_NOT_SET" -fi - -ARCH=windows-x86 -QT=qt5 - -# Build - -PROJECT_DIR=. -if [[ $1 ]]; then - PROJECT_DIR=$1 - echo "Project dir: ${PROJECT_DIR}" -fi - -${MXE_QT5_QMAKE} ${PROJECT_DIR} && make -j${NUM_CPUS} || exit 1 - -# Update translations - -${LRELEASE} ${PROJECT_DIR}/src/game/game.pro && ${LRELEASE} ${PROJECT_DIR}/src/editor/editor.pro || exit 1 - -# Install to packaging dir - -PACKAGE_PATH=${NAME}-${VERSION}-${ARCH}-${QT} - -rm -rf ${PACKAGE_PATH} -mkdir ${PACKAGE_PATH} - -mkdir -p data/translations && -cp -v ${PROJECT_DIR}/src/game/translations/*.qm data/translations && -cp -v ${PROJECT_DIR}/src/editor/translations/*.qm data/translations && - -# These are output files -cp -v src/game/release/dustrac-game.exe ${PACKAGE_PATH} && -cp -v src/editor/release/dustrac-editor.exe ${PACKAGE_PATH} && - -cp -rv ${PROJECT_DIR}/data ${PACKAGE_PATH} || exit 1 - -TEXT_FILES="AUTHORS CHANGELOG COPYING README.md" -for i in ${TEXT_FILES}; do - cp -v ${PROJECT_DIR}/$i ${PACKAGE_PATH} || exit 1 -done - -cd ${PACKAGE_PATH} -${UNIX2DOS} ${TEXT_FILES} -cd .. - -# Create zip archive - -ZIP_ARCHIVE=${PACKAGE_PATH}.zip -rm -f ${ZIP_ARCHIVE} -$ZIP -rv ${ZIP_ARCHIVE} ${PACKAGE_PATH} - -# Create NSIS installer - -cp ${PROJECT_DIR}/packaging/windows/dustrac.nsi ${PACKAGE_PATH} && cd ${PACKAGE_PATH} && ${MAKENSIS} dustrac.nsi || exit 1 -cd .. && cp ${PACKAGE_PATH}/*setup.exe . || exit 1 - -ls -ltr - -echo "Done." - diff -Nru dustrac-2.0.1/scripts/qt5-static-configure dustrac-2.0.5/scripts/qt5-static-configure --- dustrac-2.0.1/scripts/qt5-static-configure 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/scripts/qt5-static-configure 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,30 @@ +#!/bin/bash + +# +# This for configuring static build of Qt5 itself, not the game. +# + +PREFIX='/home/juzzlin/qt5' +./configure \ + -opensource \ + -confirm-license \ + -force-pkg-config \ + -fontconfig \ + -release \ + -static \ + -prefix $PREFIX \ + -no-icu \ + -opengl desktop \ + -no-glib \ + -accessibility \ + -nomake examples \ + -nomake tests \ + -qt-zlib \ + -qt-libpng \ + -qt-libjpeg \ + -qt-sql-sqlite \ + -qt-xcb \ + -qt-pcre \ + -pulseaudio \ + -v + diff -Nru dustrac-2.0.1/scripts/qt5StaticConfigure.sh dustrac-2.0.5/scripts/qt5StaticConfigure.sh --- dustrac-2.0.1/scripts/qt5StaticConfigure.sh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/scripts/qt5StaticConfigure.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -#!/bin/bash - -# -# This for configuring static build of Qt5 itself, not the game. -# - -PREFIX='/home/juzzlin/qt5' -./configure \ - -opensource \ - -confirm-license \ - -force-pkg-config \ - -fontconfig \ - -release \ - -static \ - -prefix $PREFIX \ - -no-icu \ - -opengl desktop \ - -no-glib \ - -accessibility \ - -nomake examples \ - -nomake tests \ - -qt-zlib \ - -qt-libpng \ - -qt-libjpeg \ - -qt-sql-sqlite \ - -qt-xcb \ - -qt-pcre \ - -pulseaudio \ - -v - diff -Nru dustrac-2.0.1/scripts/runJenkinsBuilds.sh dustrac-2.0.5/scripts/runJenkinsBuilds.sh --- dustrac-2.0.1/scripts/runJenkinsBuilds.sh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/scripts/runJenkinsBuilds.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -#!/bin/bash - -./scripts/build/jenkins.sh > jenkins-build-${GIT_BRANCH##Local/}.log 2>&1 diff -Nru dustrac-2.0.1/scripts/update-license dustrac-2.0.5/scripts/update-license --- dustrac-2.0.1/scripts/update-license 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/scripts/update-license 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,73 @@ +#!/usr/bin/python + +# This file is part of Dust Racing (DustRAC). +# Copyright (C) 2011 Jussi Lind +# +# DustRAC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# DustRAC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with DustRAC. If not, see . +# +# Usage: +# +# This script replaces the license plate of the given file(s) with +# the given new license plate. license lines MUST begin with "//". +# +# e.g. python license.py gpl_header.txt `find . -name "*.hh"` + +import sys + +def main(argv): + + if len(argv) < 3: + print("Usage: python license.py [licenseHeaderFile] [sourceFiles]") + return 1 + + # Read the new license + fName = argv[1] + print("Opening " + fName + " for read..") + f = open(fName, 'r') + licenseLines = f.readlines() + f.close() + + for j in xrange(2, len(argv)): + fName = argv[j] + + # Read the original file + print("Opening " + fName + " for read..") + f = open(fName, 'r') + origLines = f.readlines() + f.close() + + # Skip the current license plate + headerSkip = True + newLines = [] + for i in origLines: + if (i.find('//') == 0 or i.find('\n') == 0) and headerSkip: + pass + else: + headerSkip = False + newLines.append(i) + + # Add the new license + newLines = licenseLines + newLines + + # Modify the source file + print("Opening " + fName + " for write..") + f = open(fName, 'w') + f.writelines(newLines) + f.close() + + print("Done.") + return 0 + +if __name__ == '__main__': + main(sys.argv) + diff -Nru dustrac-2.0.1/scripts/update-ppa dustrac-2.0.5/scripts/update-ppa --- dustrac-2.0.1/scripts/update-ppa 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/scripts/update-ppa 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,14 @@ +VERSION=${DUSTRAC_RELEASE_VERSION?"is not set."} + +# $VERSION-1 for xenial +# $VERSION-2 for artful + +DEBIAN_VERSION=$VERSION-1 +rm -rf *${VERSION}* +cp ../DustRacing2D/dustrac-$VERSION.tar.gz . +tar xzvf dustrac-$VERSION.tar.gz +mv dustrac-$VERSION dustrac-$DEBIAN_VERSION +cd dustrac-$DEBIAN_VERSION +cp -rv packaging/debian . +debuild -S -sa && cd .. && dput ppa:jussi-lind/dustrac "dustrac_${DEBIAN_VERSION}_source.changes" + diff -Nru dustrac-2.0.1/scripts/updatePPA.sh dustrac-2.0.5/scripts/updatePPA.sh --- dustrac-2.0.1/scripts/updatePPA.sh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/scripts/updatePPA.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -VERSION=${DUSTRAC_RELEASE_VERSION?"is not set."} - -# $VERSION-1 for xenial -# $VERSION-2 for artful - -DEBIAN_VERSION=$VERSION-1 -rm -rf *${VERSION}* -cp ../DustRacing2D/dustrac-$VERSION.tar.gz . -tar xzvf dustrac-$VERSION.tar.gz -mv dustrac-$VERSION dustrac-$DEBIAN_VERSION -cd dustrac-$DEBIAN_VERSION -cp -rv packaging/debian . -debuild -S -sa && cd .. && dput ppa:jussi-lind/dustrac "dustrac_${DEBIAN_VERSION}_source.changes" - diff -Nru dustrac-2.0.1/scripts/update-translation-files dustrac-2.0.5/scripts/update-translation-files --- dustrac-2.0.1/scripts/update-translation-files 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/scripts/update-translation-files 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,15 @@ +#!/bin/bash + +LUPDATE=lupdate +if ! which ${LUPDATE}; then + echo "${LUPDATE} not found." + exit 1 +fi + +for LANG in cs de fi fr it; do + ${LUPDATE} src/game/*.cpp src/game/menu/*.cpp -ts src/game/translations/dustrac-game_${LANG}.ts + ${LUPDATE} src/editor/*.cpp -ts src/editor/translations/dustrac-editor_${LANG}.ts +done + +echo "Done." + diff -Nru dustrac-2.0.1/scripts/updateTranslationFiles.sh dustrac-2.0.5/scripts/updateTranslationFiles.sh --- dustrac-2.0.1/scripts/updateTranslationFiles.sh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/scripts/updateTranslationFiles.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/bin/bash - -LUPDATE=lupdate -if ! which ${LUPDATE}; then - echo "${LUPDATE} not found." - exit 1 -fi - -for LANG in cs de fi fr it; do - ${LUPDATE} src/game/*.cpp src/game/menu/*.cpp -ts src/game/translations/dustrac-game_${LANG}.ts - ${LUPDATE} src/editor/*.cpp -ts src/editor/translations/dustrac-editor_${LANG}.ts -done - -echo "Done." - diff -Nru dustrac-2.0.1/scripts/update-version dustrac-2.0.5/scripts/update-version --- dustrac-2.0.1/scripts/update-version 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/scripts/update-version 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,35 @@ +#!/bin/bash + +# Updates Heimer version in all build and packaging scripts. +# Must be run in the project root. + +VERSION_MAJOR=$1 +VERSION_MINOR=$2 +VERSION_PATCH=$3 + +if [[ ! $1 || ! $2 || ! $3 ]]; then + echo "Usage: $0 VERSION_MAJOR VERSION_MINOR VERSION_PATCH" + exit 1 +fi + +FILE=CMakeLists.txt +echo "Updating ${FILE} .." +sed -i "s/^set(VERSION_MAJOR.*/set(VERSION_MAJOR ${VERSION_MAJOR})/" ${FILE} || exit 1 +sed -i "s/^set(VERSION_MINOR.*/set(VERSION_MINOR ${VERSION_MINOR})/" ${FILE} || exit 1 +sed -i "s/^set(VERSION_PATCH.*/set(VERSION_PATCH ${VERSION_PATCH})/" ${FILE} || exit 1 + +FILE=packaging/windows/dustrac.nsi +echo "Updating ${FILE} .." +sed -i "s/^!define VERSIONMAJOR.*/!define VERSIONMAJOR ${VERSION_MAJOR}/" ${FILE} || exit 1 +sed -i "s/^!define VERSIONMINOR.*/!define VERSIONMINOR ${VERSION_MINOR}/" ${FILE} || exit 1 +sed -i "s/^!define VERSIONBUILD.*/!define VERSIONBUILD ${VERSION_PATCH}/" ${FILE} || exit 1 + +for FILE in src/editor/editor.pro src/game/game.pro scripts/build-windows-installer; do + echo "Updating ${FILE} .." + sed -i -E "s/[0-9]+\.[0-9]+\.[0-9]+/$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH/" ${FILE} || exit 1 +done + +git diff + +echo "Done." + diff -Nru dustrac-2.0.1/src/common/config.cpp dustrac-2.0.5/src/common/config.cpp --- dustrac-2.0.1/src/common/config.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/config.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -// This file is part of Dust Racing 2D. -// Copyright (C) 2015 Jussi Lind -// -// Dust Racing 2D is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// Dust Racing 2D is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Dust Racing 2D. If not, see . - -#include "config.hpp" - -namespace Config { - -const QString Common::dataPath = DATA_PATH; - -const QString Common::COPYRIGHT = "Copyright (c) 2011-2017 Jussi Lind"; -const QString Common::QSETTINGS_COMPANY_NAME = "dustrac"; -const QString Common::TRACK_SEARCH_PATH = "DustRacingTracks"; -const QString Common::WEB_SITE_URL = "http://juzzlin.github.io/DustRacing2D"; - -const QString Editor::SELECT_ICON_PATH = ":/cursor.png"; -const QString Editor::ERASE_ICON_PATH = ":/cross.png"; -const QString Editor::CLEAR_ICON_PATH = ":/clear.png"; -const QString Editor::EDITOR_NAME = "Dust Racing 2D Track Editor"; -const QString Editor::EDITOR_VERSION = VERSION; -const QString Editor::MODEL_CONFIG_FILE_NAME = "editorModels.conf"; -const QString Editor::QSETTINGS_SOFTWARE_NAME = "Editor"; - -const QString Game::GAME_NAME = "Dust Racing 2D"; -const QString Game::GAME_VERSION = VERSION; -const QString Game::QSETTINGS_SOFTWARE_NAME = "Game"; - -} // Config diff -Nru dustrac-2.0.1/src/common/config.hpp dustrac-2.0.5/src/common/config.hpp --- dustrac-2.0.1/src/common/config.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/config.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -13,57 +13,62 @@ // You should have received a copy of the GNU General Public License // along with Dust Racing 2D. If not, see . -#include +#include +#include //! Config variables for editor and for the game. -namespace Config -{ - class Common - { - public: - //! The base data path given by -DDATA_PATH. - static const QString dataPath; +namespace Config { + +namespace General { +//! The base data path given by -DDATA_PATH. +static constexpr auto dataPath = DATA_PATH; - static const QString COPYRIGHT; +static constexpr auto COPYRIGHT = "Copyright (c) 2011-2019 Jussi Lind"; - //! "Company" name used in QSettings. - static const QString QSETTINGS_COMPANY_NAME; +//! "Company" name used in QSettings. +static constexpr auto QSETTINGS_COMPANY_NAME = "dustrac"; - /*! Path used to search "3rd party" race tracks under the home dir: - * ~/TRACK_SEARCH_PATH/ */ - static const QString TRACK_SEARCH_PATH; +//! Path used to search "3rd party" race tracks under the home dir: ~/TRACK_SEARCH_PATH/ +static constexpr auto TRACK_SEARCH_PATH = "DustRacingTracks"; - static const QString WEB_SITE_URL; - }; +static constexpr auto WEB_SITE_URL = "http://juzzlin.github.io/DustRacing2D"; - class Editor - { - public: - static const QString EDITOR_NAME; +namespace Unix { +//! Path used to search "3rd party" race tracks under `$XDG_DATA_HOME/TRACK_SEARCH_PATH_XDG` or +//! $HOME/.local/share/TRACK_SEARCH_PATH_XDG` if `$XDG_DATA_HOME` is not defined. +static constexpr auto TRACK_SEARCH_PATH_XDG = "DustRacing2D/tracks"; +inline QString getXdgTrackSearchPath() +{ + const auto env = QProcessEnvironment::systemEnvironment(); + const auto xdgDataHome = "XDG_DATA_HOME"; + return env.value(xdgDataHome, QDir::homePath() + "/.local/share") + "/" + TRACK_SEARCH_PATH_XDG; +} +} // namespace Unix - static const QString EDITOR_VERSION; +} // namespace General - static const QString MODEL_CONFIG_FILE_NAME; +namespace Editor { +static constexpr auto EDITOR_NAME = "Dust Racing 2D Track Editor"; - static const QString QSETTINGS_SOFTWARE_NAME; +static constexpr auto EDITOR_VERSION = VERSION; - static const QString SELECT_ICON_PATH; +static constexpr auto MODEL_CONFIG_FILE_NAME = "editorModels.conf"; - static const QString ERASE_ICON_PATH; +static constexpr auto QSETTINGS_SOFTWARE_NAME = "Editor"; - static const QString CLEAR_ICON_PATH; - }; +static constexpr auto SELECT_ICON_PATH = ":/cursor.png"; - class Game - { - public: - static const QString GAME_NAME; +static constexpr auto ERASE_ICON_PATH = ":/cross.png"; - static const QString GAME_VERSION; +static constexpr auto CLEAR_ICON_PATH = ":/clear.png"; +} // namespace Editor - static const QString QSETTINGS_SOFTWARE_NAME; - }; +namespace Game { +static constexpr auto GAME_NAME = "Dust Racing 2D"; -} // Config +static constexpr auto GAME_VERSION = VERSION; +static constexpr auto QSETTINGS_SOFTWARE_NAME = "Game"; +} // namespace Game +} // namespace Config diff -Nru dustrac-2.0.1/src/common/datakeywords.hpp dustrac-2.0.5/src/common/datakeywords.hpp --- dustrac-2.0.1/src/common/datakeywords.hpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/common/datakeywords.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,86 @@ +// This file is part of Dust Racing 2D. +// Copyright (C) 2019 Jussi Lind +// +// Dust Racing 2D is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Dust Racing 2D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Dust Racing 2D. If not, see . + +#ifndef DATAKEYWORDS_HPP +#define DATAKEYWORDS_HPP + +/** Keywords used in the track data files. */ +namespace DataKeywords { +namespace Header { +static constexpr auto version = "version"; + +static constexpr auto track = "track"; + +static constexpr auto name = "name"; + +static constexpr auto cols = "cols"; + +static constexpr auto rows = "rows"; + +static constexpr auto index = "index"; + +static constexpr auto user = "isUserTrack"; +} // namespace Header + +namespace Track { +static constexpr auto node = "n"; + +static constexpr auto tile = "t"; + +static constexpr auto object = "o"; +} // namespace Track + +namespace Node { +static constexpr auto index = "i"; + +static constexpr auto x = "x"; + +static constexpr auto y = "y"; + +static constexpr auto width = "w"; + +static constexpr auto height = "h"; +} // namespace Node + +namespace Tile { +static constexpr auto type = "t"; + +static constexpr auto i = "i"; + +static constexpr auto j = "j"; + +static constexpr auto orientation = "o"; + +static constexpr auto computerHint = "c"; + +static constexpr auto excludeFromMinimap = "e"; +} // namespace Tile + +namespace Object { +static constexpr auto role = "r"; + +static constexpr auto category = "c"; + +static constexpr auto x = "x"; + +static constexpr auto y = "y"; + +static constexpr auto orientation = "o"; + +static constexpr auto forceStationary = "fs"; +} // namespace Object +} // namespace DataKeywords + +#endif // DATAKEYWORDS_HPP diff -Nru dustrac-2.0.1/src/common/mapbase.cpp dustrac-2.0.5/src/common/mapbase.cpp --- dustrac-2.0.1/src/common/mapbase.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/mapbase.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -20,25 +20,26 @@ #include #include -MapBase::MapBase(unsigned int cols, unsigned int rows) - : m_cols(cols) - , m_rows(rows) - , m_map(rows, TrackTileRow(m_cols, nullptr)) -{} +MapBase::MapBase(size_t cols, size_t rows) + : m_cols(cols) + , m_rows(rows) + , m_map(rows, TrackTileRow(m_cols, nullptr)) +{ +} -unsigned int MapBase::cols() const +size_t MapBase::cols() const { return m_cols; } -unsigned int MapBase::rows() const +size_t MapBase::rows() const { return m_rows; } -void MapBase::resize(unsigned int newCols, unsigned int newRows) +void MapBase::resize(size_t newCols, size_t newRows) { - for (unsigned int row = 0; row < m_map.size(); row++) + for (size_t row = 0; row < m_map.size(); row++) { if (newCols > m_map[row].size()) { @@ -55,7 +56,7 @@ m_rows = newRows; } -bool MapBase::setTile(unsigned int x, unsigned int y, TrackTileBasePtr tile) +bool MapBase::setTile(size_t x, size_t y, TrackTileBasePtr tile) { if (x >= m_cols || y >= m_rows) return false; @@ -65,7 +66,7 @@ return true; } -TrackTileBasePtr MapBase::getTile(unsigned int x, unsigned int y) const +TrackTileBasePtr MapBase::getTile(size_t x, size_t y) const { if (x >= m_cols || y >= m_rows) return nullptr; @@ -73,7 +74,7 @@ return m_map[y][x]; } -unsigned int MapBase::insertColumn(unsigned int at, MapBase::InsertDirection insertDirection) +size_t MapBase::insertColumn(size_t at, MapBase::InsertDirection insertDirection) { at = at + (insertDirection == MapBase::InsertDirection::Before ? 0 : 1); @@ -87,7 +88,7 @@ return at; } -std::vector MapBase::deleteColumn(unsigned int at) +std::vector MapBase::deleteColumn(size_t at) { std::vector deleted; @@ -102,7 +103,7 @@ return deleted; } -unsigned int MapBase::insertRow(unsigned int at, MapBase::InsertDirection insertDirection) +size_t MapBase::insertRow(size_t at, MapBase::InsertDirection insertDirection) { at = at + (insertDirection == MapBase::InsertDirection::Before ? 0 : 1); @@ -113,7 +114,7 @@ return at; } -std::vector MapBase::deleteRow(unsigned int at) +std::vector MapBase::deleteRow(size_t at) { std::vector deleted = *(m_map.begin() + at); m_map.erase(m_map.begin() + at); diff -Nru dustrac-2.0.1/src/common/mapbase.hpp dustrac-2.0.5/src/common/mapbase.hpp --- dustrac-2.0.1/src/common/mapbase.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/mapbase.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,20 +16,19 @@ #ifndef MAPBASE_HPP #define MAPBASE_HPP -#include #include "tracktilebase.hpp" +#include //! Base class for the tile matrix used by TrackData. class MapBase { public: - //! Constructor. - MapBase(unsigned int cols, unsigned int rows); + MapBase(size_t cols, size_t rows); MapBase(const MapBase & other) = delete; - MapBase & operator= (const MapBase & other) = delete; + MapBase & operator=(const MapBase & other) = delete; enum class InsertDirection { @@ -41,37 +40,36 @@ virtual ~MapBase(); //! Get column count - unsigned int cols() const; + size_t cols() const; //! Get row count - unsigned int rows() const; + size_t rows() const; //! Resize the map. - virtual void resize(unsigned int newCols, unsigned int newRows); + virtual void resize(size_t newCols, size_t newRows); /*! Set given tile to given coordinates. * Returns false if impossible coordinates. */ - bool setTile(unsigned int x, unsigned int y, TrackTileBasePtr tile); + bool setTile(size_t x, size_t y, TrackTileBasePtr tile); /*! Get tile at given coordinates. * Returns nullptr if no tile set or impossible coordinates. */ - TrackTileBasePtr getTile(unsigned int x, unsigned int y) const; + TrackTileBasePtr getTile(size_t x, size_t y) const; //! Insert column after given index. - virtual unsigned int insertColumn(unsigned int at, InsertDirection insertDirection); + virtual size_t insertColumn(size_t at, InsertDirection insertDirection); //! Delete column at given index. Return deleted tiles. - virtual std::vector deleteColumn(unsigned int at); + virtual std::vector deleteColumn(size_t at); //! Insert row after given index. - virtual unsigned int insertRow(unsigned int at, InsertDirection insertDirection); + virtual size_t insertRow(size_t at, InsertDirection insertDirection); //! Delete row at given index. Return deleted tiles. - virtual std::vector deleteRow(unsigned int at); + virtual std::vector deleteRow(size_t at); private: - - unsigned int m_cols, m_rows; + size_t m_cols, m_rows; typedef std::vector TrackTileRow; typedef std::vector TrackTileMap; diff -Nru dustrac-2.0.1/src/common/objectbase.cpp dustrac-2.0.5/src/common/objectbase.cpp --- dustrac-2.0.1/src/common/objectbase.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/objectbase.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,9 +16,9 @@ #include "objectbase.hpp" ObjectBase::ObjectBase(QString category, QString role) -: m_category(category) -, m_role(role) -, m_forceStationary(false) + : m_category(category) + , m_role(role) + , m_forceStationary(false) { } diff -Nru dustrac-2.0.1/src/common/objectbase.hpp dustrac-2.0.5/src/common/objectbase.hpp --- dustrac-2.0.1/src/common/objectbase.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/objectbase.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,8 +16,8 @@ #ifndef OBJECTBASE_HPP #define OBJECTBASE_HPP -#include #include +#include #include @@ -25,13 +25,12 @@ class ObjectBase { public: - //! Constructor. ObjectBase(QString category, QString role); ObjectBase(ObjectBase & other) = delete; - ObjectBase & operator= (ObjectBase & other) = delete; + ObjectBase & operator=(ObjectBase & other) = delete; //! Destructor. virtual ~ObjectBase(); @@ -53,7 +52,6 @@ void setForceStationary(bool forceStationary); private: - //! Category of this object. QString m_category; diff -Nru dustrac-2.0.1/src/common/objects.cpp dustrac-2.0.5/src/common/objects.cpp --- dustrac-2.0.1/src/common/objects.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/objects.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -47,12 +47,12 @@ m_objects.clear(); } -unsigned int Objects::count() const +size_t Objects::count() const { - return static_cast(m_objects.size()); + return m_objects.size(); } -ObjectBasePtr Objects::object(unsigned int index) const +ObjectBasePtr Objects::object(size_t index) const { return m_objects.at(index); } @@ -76,4 +76,3 @@ { return m_objects.cend(); } - diff -Nru dustrac-2.0.1/src/common/objects.hpp dustrac-2.0.5/src/common/objects.hpp --- dustrac-2.0.1/src/common/objects.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/objects.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -18,14 +18,13 @@ #include "objectbase.hpp" -#include #include +#include //! Container for all objects. class Objects { public: - typedef std::vector ObjectVector; //! Constructor. @@ -33,7 +32,7 @@ Objects(const Objects & other) = delete; - Objects & operator= (const Objects & other) = delete; + Objects & operator=(const Objects & other) = delete; //! Add an object. void add(ObjectBasePtr object); @@ -45,10 +44,10 @@ void clear(); //! Return object count. - unsigned int count() const; + size_t count() const; //! Return given object. - ObjectBasePtr object(unsigned int index) const; + ObjectBasePtr object(size_t index) const; ObjectVector::iterator begin(); @@ -59,7 +58,6 @@ ObjectVector::const_iterator cend() const; private: - ObjectVector m_objects; }; diff -Nru dustrac-2.0.1/src/common/route.cpp dustrac-2.0.5/src/common/route.cpp --- dustrac-2.0.1/src/common/route.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/route.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -20,10 +20,6 @@ #include #include -namespace { -static const int CLOSING_TH = 32; -} - Route::Route() { } @@ -33,10 +29,10 @@ m_route.clear(); } -bool Route::push(TargetNodeBasePtr tnode) +bool Route::push(TargetNodeBasePtr node) { - tnode->setIndex(static_cast(m_route.size())); - m_route.push_back(tnode); + node->setIndex(static_cast(m_route.size())); + m_route.push_back(node); return isClosed(); } @@ -44,23 +40,23 @@ { if (m_route.size() > 1) { - const int dx = std::abs(m_route[0]->location().x() - m_route.back()->location().x()); - const int dy = std::abs(m_route[0]->location().y() - m_route.back()->location().y()); - - return dx < CLOSING_TH && dy < CLOSING_TH; + const auto dx = std::abs(m_route[0]->location().x() - m_route.back()->location().x()); + const auto dy = std::abs(m_route[0]->location().y() - m_route.back()->location().y()); + const auto closingThreshold = 32; + return dx < closingThreshold && dy < closingThreshold; } return false; } -unsigned int Route::numNodes() const +size_t Route::numNodes() const { - return static_cast(m_route.size()); + return static_cast(m_route.size()); } -TargetNodeBasePtr Route::get(unsigned int index) const +TargetNodeBasePtr Route::get(size_t index) const { - assert (index < numNodes()); + assert(index < numNodes()); return m_route[index]; } @@ -74,35 +70,34 @@ clear(); std::sort(routeVector.begin(), routeVector.end(), - [] (const TargetNodeBasePtr lhs, const TargetNodeBasePtr rhs) - { - return lhs->index() < rhs->index(); - }); + [](const auto lhs, const auto rhs) { + return lhs->index() < rhs->index(); + }); - for (TargetNodeBasePtr tnode : routeVector) + for (auto && node : routeVector) { - if (tnode && tnode->index() >= 0) + if (node && node->index() >= 0) { - push(tnode); + push(node); } } } -unsigned int Route::geometricLength() const +double Route::geometricLength() const { - unsigned int result = 0; + double result = 0; if (m_route.size() > 1) { - for (unsigned int i = 0; i < m_route.size() - 1; i++) + for (size_t i = 0; i < m_route.size() - 1; i++) { - int dx = m_route[i]->location().x() - m_route[i + 1]->location().x(); - int dy = m_route[i]->location().y() - m_route[i + 1]->location().y(); + const auto dx = m_route[i]->location().x() - m_route[i + 1]->location().x(); + const auto dy = m_route[i]->location().y() - m_route[i + 1]->location().y(); result += std::sqrt(dx * dx + dy * dy); } - int dx = m_route[m_route.size() - 1]->location().x() - m_route[0]->location().x(); - int dy = m_route[m_route.size() - 1]->location().y() - m_route[0]->location().y(); + const auto dx = m_route[m_route.size() - 1]->location().x() - m_route[0]->location().x(); + const auto dy = m_route[m_route.size() - 1]->location().y() - m_route[0]->location().y(); result += std::sqrt(dx * dx + dy * dy); } diff -Nru dustrac-2.0.1/src/common/route.hpp dustrac-2.0.5/src/common/route.hpp --- dustrac-2.0.1/src/common/route.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/route.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -28,13 +28,12 @@ class Route { public: - //! Constructor. Route(); Route(const Route & other) = delete; - Route & operator= (const Route & other) = delete; + Route & operator=(const Route & other) = delete; typedef std::vector RouteVector; @@ -50,16 +49,16 @@ void buildFromVector(RouteVector & routeVector); //! Return number of target nodes. - unsigned int numNodes() const; + size_t numNodes() const; //! Return Target for the given index. - TargetNodeBasePtr get(unsigned int index) const; + TargetNodeBasePtr get(size_t index) const; //! Get all nodes. void getAll(RouteVector & routeVector) const; //! Return length based on target node locations. - unsigned int geometricLength() const; + double geometricLength() const; RouteVector::iterator begin(); @@ -70,7 +69,6 @@ RouteVector::const_iterator cend() const; private: - bool isClosed() const; std::vector m_route; diff -Nru dustrac-2.0.1/src/common/targetnodebase.cpp dustrac-2.0.5/src/common/targetnodebase.cpp --- dustrac-2.0.1/src/common/targetnodebase.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/targetnodebase.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,14 +17,14 @@ #include "tracktilebase.hpp" TargetNodeBase::TargetNodeBase() -: m_size(QSize(TrackTileBase::TILE_H, TrackTileBase::TILE_W)) -, m_index(-1) + : m_size(QSize(static_cast(TrackTileBase::height()), static_cast(TrackTileBase::width()))) + , m_index(-1) { } -void TargetNodeBase::setNext(TargetNodeBasePtr tnode) +void TargetNodeBase::setNext(TargetNodeBasePtr nextNode) { - m_next = tnode; + m_next = nextNode; } TargetNodeBasePtr TargetNodeBase::next() const @@ -32,9 +32,9 @@ return m_next; } -void TargetNodeBase::setPrev(TargetNodeBasePtr tnode) +void TargetNodeBase::setPrev(TargetNodeBasePtr prevNode) { - m_prev = tnode; + m_prev = prevNode; } TargetNodeBasePtr TargetNodeBase::prev() const diff -Nru dustrac-2.0.1/src/common/targetnodebase.hpp dustrac-2.0.5/src/common/targetnodebase.hpp --- dustrac-2.0.1/src/common/targetnodebase.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/targetnodebase.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,9 +16,9 @@ #ifndef TARGETNODEBASE_HPP #define TARGETNODEBASE_HPP +#include #include #include -#include #include @@ -26,7 +26,6 @@ class TargetNodeBase { public: - typedef std::shared_ptr TargetNodeBasePtr; //! Constructor. @@ -34,10 +33,12 @@ TargetNodeBase(TargetNodeBase & other) = delete; - TargetNodeBase & operator= (TargetNodeBase & other) = delete; + TargetNodeBase(TargetNodeBase && other) = delete; + + TargetNodeBase & operator=(TargetNodeBase & other) = delete; //! Destructor. - virtual ~TargetNodeBase() {}; + virtual ~TargetNodeBase() = default; //! Get location in world / scene. virtual QPointF location() const; @@ -49,11 +50,11 @@ virtual void setIndex(int index); - virtual void setNext(TargetNodeBasePtr tnode); + virtual void setNext(TargetNodeBasePtr nextNnode); virtual TargetNodeBasePtr next() const; - virtual void setPrev(TargetNodeBasePtr tnode); + virtual void setPrev(TargetNodeBasePtr prevNode); virtual TargetNodeBasePtr prev() const; @@ -62,7 +63,6 @@ virtual QSizeF size() const; private: - //! Coordinates in the world. QPointF m_location; diff -Nru dustrac-2.0.1/src/common/trackdatabase.cpp dustrac-2.0.5/src/common/trackdatabase.cpp --- dustrac-2.0.1/src/common/trackdatabase.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/trackdatabase.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,16 +16,16 @@ #include "trackdatabase.hpp" TrackDataBase::TrackDataBase(QString name, bool isUserTrack) - : m_name(name) - , m_index(999) - , m_isUserTrack(isUserTrack) + : m_name(name) + , m_index(999) + , m_isUserTrack(isUserTrack) { } TrackDataBase::TrackDataBase(const TrackDataBase & other) - : m_name(other.m_name) - , m_index(other.m_index) - , m_isUserTrack(other.m_isUserTrack) + : m_name(other.m_name) + , m_index(other.m_index) + , m_isUserTrack(other.m_isUserTrack) { } @@ -44,7 +44,6 @@ return m_index; } - void TrackDataBase::setName(QString name) { m_name = name; diff -Nru dustrac-2.0.1/src/common/trackdatabase.hpp dustrac-2.0.5/src/common/trackdatabase.hpp --- dustrac-2.0.1/src/common/trackdatabase.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/trackdatabase.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -27,168 +27,13 @@ { public: - /** Keywords used in the track data files. - * TODO: Use constexpr when MSVC supports it properly. */ - struct DataKeywords - { - struct Header - { - static QString ver() - { - return "version"; - } - - static QString track() - { - return "track"; - } - - static QString name() - { - return "name"; - } - - static QString cols() - { - return "cols"; - } - - static QString rows() - { - return "rows"; - } - - static QString index() - { - return "index"; - } - - static QString user() - { - return "isUserTrack"; - } - }; - - struct Track - { - static QString node() - { - return "n"; - } - - static QString tile() - { - return "t"; - } - - static QString object() - { - return "o"; - } - }; - - struct Node - { - static QString index() - { - return "i"; - } - - static QString x() - { - return "x"; - } - - static QString y() - { - return "y"; - } - - static QString width() - { - return "w"; - } - - static QString height() - { - return "h"; - } - }; - - struct Tile - { - static QString type() - { - return "t"; - } - - static QString i() - { - return "i"; - } - - static QString j() - { - return "j"; - } - - static QString orientation() - { - return "o"; - } - - static QString computerHint() - { - return "c"; - } - - static QString excludeFromMinimap() - { - return "e"; - } - }; - - struct Object - { - static QString role() - { - return "r"; - } - - static QString category() - { - return "c"; - } - - static QString x() - { - return "x"; - } - - static QString y() - { - return "y"; - } - - static QString orientation() - { - return "o"; - } - - static QString forceStationary() - { - return "fs"; - } - }; - }; - //! Constructor. TrackDataBase(QString name, bool isUserTrack); //! Copy constructor. TrackDataBase(const TrackDataBase & other); - TrackDataBase & operator= (const TrackDataBase & other) = delete; + TrackDataBase & operator=(const TrackDataBase & other) = delete; //! Destructor. virtual ~TrackDataBase(); @@ -236,12 +81,11 @@ virtual const Objects & objects() const = 0; private: - QString m_name; unsigned int m_index; bool m_isUserTrack; -}; +}; // namespace DataKeywords #endif // TRACKDATABASE_HPP diff -Nru dustrac-2.0.1/src/common/tracktilebase.cpp dustrac-2.0.5/src/common/tracktilebase.cpp --- dustrac-2.0.1/src/common/tracktilebase.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/tracktilebase.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,14 +16,14 @@ #include "tracktilebase.hpp" TrackTileBase::TrackTileBase( - QPointF location, - QPoint matrixLocation, - const QString & type) -: m_tileType(type) -, m_location(location) -, m_matrixLocation(matrixLocation) -, m_computerHint(TrackTileBase::CH_NONE) -, m_excludeFromMinimap(false) + QPointF location, + QPoint matrixLocation, + const QString & type) + : m_tileType(type) + , m_location(location) + , m_matrixLocation(matrixLocation) + , m_computerHint(TrackTileBase::ComputerHint::None) + , m_excludeFromMinimap(false) { } @@ -60,6 +60,16 @@ return m_tileType; } +size_t TrackTileBase::width() +{ + return 256; +} + +size_t TrackTileBase::height() +{ + return 256; +} + void TrackTileBase::setComputerHint(TrackTileBase::ComputerHint hint) { m_computerHint = hint; diff -Nru dustrac-2.0.1/src/common/tracktilebase.hpp dustrac-2.0.5/src/common/tracktilebase.hpp --- dustrac-2.0.1/src/common/tracktilebase.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/tracktilebase.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -34,31 +34,23 @@ class TrackTileBase { public: - - //! Tile width in pixels - static const unsigned int TILE_W = 256; - - //! Tile height in pixels - static const unsigned int TILE_H = 256; - //! Hints for computer players. - enum ComputerHint + enum class ComputerHint { - CH_NONE = 0, - CH_BRAKE_HARD, - CH_BRAKE + None = 0, + BrakeHard, + Brake }; /*! Constructor. * \param location Location (coordinates) in the track scene. * \param matrixLocation Location in the tile matrix. * \param type Type of the tile. See setType(). */ - TrackTileBase(QPointF location, QPoint matrixLocation, - const QString & type = "clear"); + TrackTileBase(QPointF location, QPoint matrixLocation, const QString & type = "clear"); TrackTileBase(TrackTileBase & other) = delete; - TrackTileBase & operator= (TrackTileBase & other) = delete; + TrackTileBase & operator=(TrackTileBase & other) = delete; //! Destructor. virtual ~TrackTileBase(); @@ -79,6 +71,12 @@ //! Get type const QString & tileType() const; + //! \return Tile width in pixels + static size_t width(); + + //! \return Tile height in pixels + static size_t height(); + //! Set computer hint virtual void setComputerHint(ComputerHint hint); @@ -92,7 +90,6 @@ bool excludeFromMinimap() const; private: - //! Type string. QString m_tileType; diff -Nru dustrac-2.0.1/src/common/userexception.hpp dustrac-2.0.5/src/common/userexception.hpp --- dustrac-2.0.1/src/common/userexception.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/common/userexception.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -23,7 +23,7 @@ { public: explicit UserException(std::string msg) - : runtime_error(msg) + : runtime_error(msg) { } }; diff -Nru dustrac-2.0.1/src/contrib/SimpleLogger/CMakeLists.txt dustrac-2.0.5/src/contrib/SimpleLogger/CMakeLists.txt --- dustrac-2.0.1/src/contrib/SimpleLogger/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/contrib/SimpleLogger/CMakeLists.txt 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,36 @@ +project(SimpleLogger) + +cmake_minimum_required(VERSION 2.8.12) +cmake_policy(VERSION 2.8.12) + +option(SIMPLE_LOGGER_BUILD_SHARED_LIB "Build a shared library" OFF) + +set(VERSION_MAJOR "1") +set(VERSION_MINOR "1") +set(VERSION_PATCH "0") +set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") + +# Default to release C++ flags if CMAKE_BUILD_TYPE not set +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release CACHE STRING + "Choose the type of build, options are: None Debug Release RelWithDebInfo +MinSizeRel." FORCE) +endif() + +set(CMAKE_CXX_STANDARD 11) + +if(CMAKE_COMPILER_IS_GNUCXX OR MINGW OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic") + + # CMAKE_CXX_STANDARD supported only by versions >= 3.1 + if (CMAKE_VERSION VERSION_LESS "3.1") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") + endif () +endif() + +set(LIBRARY_NAME "SimpleLogger") + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +add_subdirectory(src) + diff -Nru dustrac-2.0.1/src/contrib/SimpleLogger/src/CMakeLists.txt dustrac-2.0.5/src/contrib/SimpleLogger/src/CMakeLists.txt --- dustrac-2.0.1/src/contrib/SimpleLogger/src/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/contrib/SimpleLogger/src/CMakeLists.txt 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,19 @@ +set(SRC simple_logger.cpp) +set(HDR simple_logger.hpp) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + +# This is the "object library" target: compiles the sources only once +add_library(objlib OBJECT ${SRC}) + +# Shared libraries need PIC +set_property(TARGET objlib PROPERTY POSITION_INDEPENDENT_CODE 1) + +set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}) +if(${SIMPLE_LOGGER_SHARED_LIB}) + add_library(${LIBRARY_NAME} SHARED $) +else() + add_library(${LIBRARY_NAME} STATIC $) +endif() +set_target_properties(${LIBRARY_NAME} PROPERTIES VERSION ${VERSION} SOVERSION ${VERSION_MAJOR}) +set_target_properties(${LIBRARY_NAME} PROPERTIES PUBLIC_HEADER ${HDR}) diff -Nru dustrac-2.0.1/src/contrib/SimpleLogger/src/simple_logger.cpp dustrac-2.0.5/src/contrib/SimpleLogger/src/simple_logger.cpp --- dustrac-2.0.1/src/contrib/SimpleLogger/src/simple_logger.cpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/contrib/SimpleLogger/src/simple_logger.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,313 @@ +// MIT License +// +// Copyright (c) 2018 Jussi Lind +// +// https://github.com/juzzlin/SimpleLogger +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +#define _CRT_SECURE_NO_WARNINGS + +#include "simple_logger.hpp" + +#include +#include +#include +#include +#include + +#ifdef Q_OS_ANDROID +#include +#else +#include +#endif + +namespace juzzlin { + +class Logger::Impl +{ +public: + + Impl(); + + ~Impl(); + + std::ostringstream & trace(); + + std::ostringstream & debug(); + + std::ostringstream & info(); + + std::ostringstream & warning(); + + std::ostringstream & error(); + + std::ostringstream & fatal(); + + static void enableEchoMode(bool enable); + + static void enableDateTime(bool enable); + + static void setLevelSymbol(Logger::Level level, std::string symbol); + + static void setLoggingLevel(Logger::Level level); + + static void init(std::string filename, bool append); + + void flush(); + + std::ostringstream & getStream(Logger::Level level); + + void prefixDateTime(); + +private: + + static bool m_echoMode; + + static bool m_dateTime; + + static Logger::Level m_level; + + static std::ofstream m_fout; + + using SymbolMap = std::map; + static SymbolMap m_symbols; + + using StreamMap = std::map; + static StreamMap m_streams; + + Logger::Level m_activeLevel = Logger::Level::Info; + + std::ostringstream m_oss; +}; + +bool Logger::Impl::m_echoMode = true; + +bool Logger::Impl::m_dateTime = true; + +Logger::Level Logger::Impl::m_level = Logger::Level::Info; + +std::ofstream Logger::Impl::m_fout; + +// Default level symbols +Logger::Impl::SymbolMap Logger::Impl::m_symbols = { + {Logger::Level::Trace, "T:"}, + {Logger::Level::Debug, "D:"}, + {Logger::Level::Info, "I:"}, + {Logger::Level::Warning, "W:"}, + {Logger::Level::Error, "E:"}, + {Logger::Level::Fatal, "F:"} +}; + +// Default streams +Logger::Impl::StreamMap Logger::Impl::m_streams = { + {Logger::Level::Trace, &std::cout}, + {Logger::Level::Debug, &std::cout}, + {Logger::Level::Info, &std::cout}, + {Logger::Level::Warning, &std::cerr}, + {Logger::Level::Error, &std::cerr}, + {Logger::Level::Fatal, &std::cerr} +}; + +Logger::Impl::Impl() +{ +} + +Logger::Impl::~Impl() +{ + flush(); +} + +void Logger::Impl::enableEchoMode(bool enable) +{ + Impl::m_echoMode = enable; +} + +void Logger::Impl::enableDateTime(bool enable) +{ + Impl::m_dateTime = enable; +} + +std::ostringstream & Logger::Impl::getStream(Logger::Level level) +{ + m_activeLevel = level; + Impl::prefixDateTime(); + m_oss << Impl::m_symbols[level] << " "; + return m_oss; +} + +void Logger::Impl::setLevelSymbol(Level level, std::string symbol) +{ + Impl::m_symbols[level] = symbol; +} + +void Logger::Impl::setLoggingLevel(Logger::Level level) +{ + Impl::m_level = level; +} + +void Logger::Impl::prefixDateTime() +{ + if (Impl::m_dateTime) + { + time_t rawTime; + time(&rawTime); + std::string timeStr(ctime(&rawTime)); + timeStr.erase(timeStr.length() - 1); + m_oss << "[" << timeStr << "] "; + } +} + +void Logger::Impl::flush() +{ + if (m_activeLevel < m_level) + { + return; + } + + if (!m_oss.str().size()) + { + return; + } + + if (Impl::m_fout.is_open()) + { + Impl::m_fout << m_oss.str() << std::endl; + Impl::m_fout.flush(); + } + + if (Impl::m_echoMode) + { +#ifdef Q_OS_ANDROID + qDebug() << m_oss.str().c_str(); +#else + auto stream = Impl::m_streams[m_activeLevel]; + if (stream) { + *stream << m_oss.str() << std::endl; + stream->flush(); + } +#endif + } +} + +void Logger::Impl::init(std::string filename, bool append) +{ + if (!filename.empty()) + { + Impl::m_fout.open(filename, append ? std::ofstream::out | std::ofstream::app : std::ofstream::out); + if (!Impl::m_fout.is_open()) + { + throw std::runtime_error("ERROR!!: Couldn't open '" + filename + "' for write.\n"); + } + } +} + +std::ostringstream & Logger::Impl::trace() +{ + return getStream(Logger::Level::Trace); +} + +std::ostringstream & Logger::Impl::debug() +{ + return getStream(Logger::Level::Debug); +} + +std::ostringstream & Logger::Impl::info() +{ + return getStream(Logger::Level::Info); +} + +std::ostringstream & Logger::Impl::warning() +{ + return getStream(Logger::Level::Warning); +} + +std::ostringstream & Logger::Impl::error() +{ + return getStream(Logger::Level::Error); +} + +std::ostringstream & Logger::Impl::fatal() +{ + return getStream(Logger::Level::Fatal); +} + +Logger::Logger() + : m_impl(new Logger::Impl) +{ +} + +void Logger::init(std::string filename, bool append) +{ + Impl::init(filename, append); +} + +void Logger::enableEchoMode(bool enable) +{ + Impl::enableEchoMode(enable); +} + +void Logger::enableDateTime(bool enable) +{ + Impl::enableDateTime(enable); +} + +void Logger::setLoggingLevel(Level level) +{ + Impl::setLoggingLevel(level); +} + +void Logger::setLevelSymbol(Level level, std::string symbol) +{ + Impl::setLevelSymbol(level, symbol); +} + +std::ostringstream & Logger::trace() +{ + return m_impl->trace(); +} + +std::ostringstream & Logger::debug() +{ + return m_impl->debug(); +} + +std::ostringstream & Logger::info() +{ + return m_impl->info(); +} + +std::ostringstream & Logger::warning() +{ + return m_impl->warning(); +} + +std::ostringstream & Logger::error() +{ + return m_impl->error(); +} + +std::ostringstream & Logger::fatal() +{ + return m_impl->fatal(); +} + +Logger::~Logger() = default; + +} // juzzlin diff -Nru dustrac-2.0.1/src/contrib/SimpleLogger/src/simple_logger.hpp dustrac-2.0.5/src/contrib/SimpleLogger/src/simple_logger.hpp --- dustrac-2.0.1/src/contrib/SimpleLogger/src/simple_logger.hpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/contrib/SimpleLogger/src/simple_logger.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,120 @@ +// MIT License +// +// Copyright (c) 2018 Jussi Lind +// +// https://github.com/juzzlin/SimpleLogger +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +#ifndef JUZZLIN_LOGGER_HPP +#define JUZZLIN_LOGGER_HPP + +#include +#include +#include + +namespace juzzlin { + +/*! + * Example initialization: + * + * using juzzlin::L; + * + * L::init("myLog.txt"); + * + * Example logging: + * + * L().info() << "Initialization finished."; + * L().error() << "Foo happened!"; + */ +class Logger +{ +public: + + enum class Level + { + Trace = 0, + Debug, + Info, + Warning, + Error, + Fatal + }; + + //! Constructor. + Logger(); + + //! Destructor. + ~Logger(); + + /*! Initialize the logger. + * \param filename Log to filename. Disabled if empty. + * \param append The existing log will be appended if true. + * Throws on error. */ + static void init(std::string filename, bool append = false); + + //! Enable/disable echo mode. + //! \param enable Echo everything if true. Default is false. + static void enableEchoMode(bool enable); + + //! Enable/disable date and time prefix. + //! \param enable Prefix with date and time if true. Default is true. + static void enableDateTime(bool enable); + + //! Set the logging level. + //! \param level The minimum level. Default is Info. + static void setLoggingLevel(Level level); + + //! Set custom symbol for the given logging level. + //! \param level The level. + //! \param symbol The symbol outputted for the messages of this level. + static void setLevelSymbol(Level level, std::string symbol); + + //! Get stream to the trace log message. + std::ostringstream & trace(); + + //! Get stream to the debug log message. + std::ostringstream & debug(); + + //! Get stream to the info log message. + std::ostringstream & info(); + + //! Get stream to the warning log message. + std::ostringstream & warning(); + + //! Get stream to the error log message. + std::ostringstream & error(); + + //! Get stream to the fatal log message. + std::ostringstream & fatal(); + +private: + + Logger(const Logger & r) = delete; + Logger & operator=(const Logger & r) = delete; + + class Impl; + std::unique_ptr m_impl; +}; + +using L = Logger; + +} // juzzlin + +#endif // JUZZLIN_LOGGER_HPP diff -Nru dustrac-2.0.1/src/dustrac.appdata.xml dustrac-2.0.5/src/dustrac.appdata.xml --- dustrac-2.0.1/src/dustrac.appdata.xml 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/dustrac.appdata.xml 2020-01-06 23:07:24.000000000 +0000 @@ -5,31 +5,55 @@ GPL-3.0 and CC BY-SA-3.0 Dust Racing 2D Traditional top-down car racing game including a level editor. + Traditionelles Autorennspiel aus der Vogelperspektive, mit Leveleditor.

- Dust Racing (Dustrac) is a tile-based, cross-platform 2D racing game written in Qt (C++) and OpenGL. + Dust Racing 2D (Dustrac) is a tile-based, cross-platform 2D racing game written in Qt (C++) and OpenGL. +

+

+ Dust Racing 2D (Dustrac) ist ein kachelbasiertes, plattformübergreifendes 2D-Rennspiel, das in Qt (C++) und OpenGL geschrieben wurde.

Features

+

+ Features +

  • 1-2 human players againts 11 challenging computer players
  • +
  • 1-2 menschliche Spieler gegen 11 herausfordernde Computerspieler
  • 3 difficulty settings: Easy, Medium, Hard
  • +
  • 3 Schwierigkeitsstufen: Einfach, mittel, schwierig
  • Split-screen two player game (vertical or horizontal)
  • +
  • Zweispielerspiel mit geteiltem Bildschirm (vertikal/horizontal)
  • Game modes: Race, Time Trial, Duel
  • +
  • Spielmodi: Rennen, Zeitrennen, Duell
  • 2D graphics with some 3D objects
  • +
  • 2D-Grafik mit einigen 3D-Objekten
  • Smooth game play and physics
  • +
  • Flüssiges Spielgeschehen und Physik
  • Multiple race tracks
  • +
  • Mehrere Rennstrecken
  • Finishing in TOP-6 will unlock the next race track
  • +
  • Rennen auf dem 6. oder einem besseren Platz beenden, um die nächste Rennstrecke freizuschalten
  • Star ratings based on the best positions on each race track
  • +
  • Sternenbewertung basierend auf der Bestposition auf jeder einzelnen Rennstrecke
  • Easy to create new race tracks with the level editor
  • +
  • Neue Rennstrecken können leicht mit dem Level-Editor erstellt werden
  • Engine and collision sounds
  • +
  • Motoren- und Kollisionsgeräusche
  • Pit stops
  • +
  • Boxenstopps
  • Runs windowed or fullscreen
  • +
  • Läuft im Fenster- oder Vollbildmodus
  • Will be forever completely free
  • +
  • Wird für immer völlig frei und kostenlos sein

- Dust Racing comes with a Qt-based level editor for easy level creation. A separate engine, MiniCore, is used for physics modeling. + Dust Racing 2D comes with a Qt-based level editor for easy level creation. A separate engine, MiniCore, is used for physics modeling. +

+

+ Dust Racing 2D hat einen Qt-basierten Level-Editor für die einfache Levelerstellung. Eine separate Engine, MiniCore, wird für die Physikmodellierung benutzt.

diff -Nru dustrac-2.0.1/src/dustrac-editor.desktop.in dustrac-2.0.5/src/dustrac-editor.desktop.in --- dustrac-2.0.1/src/dustrac-editor.desktop.in 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/dustrac-editor.desktop.in 2020-01-06 23:07:24.000000000 +0000 @@ -1,7 +1,9 @@ [Desktop Entry] Name=Dust Racing 2D Level Editor GenericName=2D racing game level editor +GenericName[de]=2D-Rennspiel-Level-Editor Comment=2D racing game level editor +Comment[de]=2D-Rennspiel-Level-Editor Exec=dustrac-editor Icon=dustrac-editor Type=Application diff -Nru dustrac-2.0.1/src/dustrac-editor.desktop.opt.in dustrac-2.0.5/src/dustrac-editor.desktop.opt.in --- dustrac-2.0.1/src/dustrac-editor.desktop.opt.in 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/dustrac-editor.desktop.opt.in 2020-01-06 23:07:24.000000000 +0000 @@ -1,7 +1,9 @@ [Desktop Entry] Name=Dust Racing 2D Level Editor GenericName=2D racing game level editor +GenericName[de]=2D-Rennspiel-Level-Editor Comment=2D racing game level editor +Comment[de]=2D-Rennspiel-Level-Editor Exec=/opt/dustrac/dustrac-editor Icon=dustrac-editor Type=Application diff -Nru dustrac-2.0.1/src/dustrac-game.desktop.in dustrac-2.0.5/src/dustrac-game.desktop.in --- dustrac-2.0.1/src/dustrac-game.desktop.in 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/dustrac-game.desktop.in 2020-01-06 23:07:24.000000000 +0000 @@ -1,7 +1,9 @@ [Desktop Entry] Name=Dust Racing 2D GenericName=Top-down 2D racing game +GenericName[de]=2D-Rennspiel in Vogelperspektive Comment=2D racing game +Comment[de]=2D-Rennspiel Exec=dustrac-game Icon=dustrac-game Type=Application diff -Nru dustrac-2.0.1/src/dustrac-game.desktop.opt.in dustrac-2.0.5/src/dustrac-game.desktop.opt.in --- dustrac-2.0.1/src/dustrac-game.desktop.opt.in 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/dustrac-game.desktop.opt.in 2020-01-06 23:07:24.000000000 +0000 @@ -1,7 +1,9 @@ [Desktop Entry] Name=Dust Racing 2D GenericName=Top-down 2D racing game +GenericName[de]=2D-Rennspiel in Vogelperspektive Comment=2D racing game +Comment[de]=2D-Rennspiel Exec=/opt/dustrac/dustrac-game Icon=dustrac-game Type=Application diff -Nru dustrac-2.0.1/src/editor/aboutdlg.cpp dustrac-2.0.5/src/editor/aboutdlg.cpp --- dustrac-2.0.1/src/editor/aboutdlg.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/aboutdlg.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -23,7 +23,7 @@ #include AboutDlg::AboutDlg(QWidget * parent) -: QDialog(parent) + : QDialog(parent) { setWindowTitle(tr("About Dust Racing")); initWidgets(); @@ -31,25 +31,25 @@ void AboutDlg::initWidgets() { - QVBoxLayout * vLayout = new QVBoxLayout(this); - QLabel * pixmapLabel = new QLabel(this); + QVBoxLayout * vLayout = new QVBoxLayout(this); + QLabel * pixmapLabel = new QLabel(this); pixmapLabel->setPixmap(QPixmap(":/about.png")); vLayout->addWidget(pixmapLabel); QLabel * infoLabel = new QLabel(this); infoLabel->setText( - QString("

") + Config::Game::GAME_NAME + " v" + Config::Game::GAME_VERSION + "

" - + "

" + Config::Game::GAME_NAME + " is licenced under GNU GPLv3.

" - + "

" + Config::Common::COPYRIGHT + "

" - + "" - + Config::Common::WEB_SITE_URL + ""); + QString("

") + Config::Game::GAME_NAME + " v" + Config::Game::GAME_VERSION + "

" + + "

" + Config::Game::GAME_NAME + " is licenced under GNU GPLv3.

" + + "

" + Config::General::COPYRIGHT + "

" + + "" + + Config::General::WEB_SITE_URL + ""); vLayout->addWidget(infoLabel); QHBoxLayout * buttonLayout = new QHBoxLayout(); QPushButton * button = new QPushButton("&Ok", this); - connect(button, SIGNAL(clicked()), this, SLOT(accept())); + connect(button, &QPushButton::clicked, this, &AboutDlg::accept); buttonLayout->addWidget(button); buttonLayout->insertStretch(0); vLayout->addLayout(buttonLayout); diff -Nru dustrac-2.0.1/src/editor/aboutdlg.hpp dustrac-2.0.5/src/editor/aboutdlg.hpp --- dustrac-2.0.1/src/editor/aboutdlg.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/aboutdlg.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -24,12 +24,10 @@ Q_OBJECT public: - //! Constructor. explicit AboutDlg(QWidget * parent = 0); private: - void initWidgets(); }; diff -Nru dustrac-2.0.1/src/editor/application.cpp dustrac-2.0.5/src/editor/application.cpp --- dustrac-2.0.1/src/editor/application.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/application.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -26,12 +26,15 @@ static void printHelp() { - std::cout << std::endl << "Dust Racing 2D version " << VERSION << std::endl; - std::cout << Config::Common::COPYRIGHT.toStdString() << std::endl << std::endl; - std::cout << "Usage: dustrac-editor [options] [trackFile]" << std::endl << std::endl; + std::cout << std::endl + << "Dust Racing 2D version " << VERSION << std::endl; + std::cout << Config::General::COPYRIGHT << std::endl + << std::endl; + std::cout << "Usage: dustrac-editor [options] [trackFile]" << std::endl + << std::endl; std::cout << "Options:" << std::endl; std::cout << "--help Show this help." << std::endl; - std::cout << "--lang [lang] Force language: fi, fr, it, cs." << std::endl; + std::cout << "--lang [lang] Force language: fi, fr, it, cs, ru." << std::endl; std::cout << std::endl; } @@ -58,7 +61,7 @@ QString lang = ""; const std::vector args(argv, argv + argc); - for (unsigned int i = 0; i < args.size(); i++) + for (unsigned int i = 1; i < args.size(); i++) { if (args[i] == "-h" || args[i] == "--help") { @@ -67,7 +70,7 @@ } else if (args[i] == "--lang" && (i + i) < args.size()) { - lang = args[i + 1]; + lang = args[++i]; } else { @@ -79,7 +82,7 @@ } Application::Application(int & argc, char ** argv) - : m_app(argc, argv) + : m_app(argc, argv) { parseArgs(argc, argv); diff -Nru dustrac-2.0.1/src/editor/application.hpp dustrac-2.0.5/src/editor/application.hpp --- dustrac-2.0.1/src/editor/application.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/application.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -24,7 +24,6 @@ class Application { public: - Application(int & argc, char ** argv); ~Application(); @@ -32,7 +31,6 @@ int run(); private: - void parseArgs(int argc, char ** argv); QApplication m_app; diff -Nru dustrac-2.0.1/src/editor/CMakeLists.txt dustrac-2.0.5/src/editor/CMakeLists.txt --- dustrac-2.0.1/src/editor/CMakeLists.txt 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/CMakeLists.txt 2020-01-06 23:07:24.000000000 +0000 @@ -1,21 +1,26 @@ # Translation files in src/editor/translations (without .ts) -set(TS dustrac-editor_fi dustrac-editor_it dustrac-editor_cs dustrac-editor_fr dustrac-editor_de) +set(TS dustrac-editor_fi dustrac-editor_it dustrac-editor_cs dustrac-editor_fr dustrac-editor_de dustrac-editor_ru) set(TS_FILES) set(QM_FILES) foreach(TS_FILE ${TS}) list(APPEND TS_FILES ${CMAKE_SOURCE_DIR}/src/editor/translations/${TS_FILE}.ts) - list(APPEND QM_FILES ${CMAKE_BINARY_DIR}/src/editor/${TS_FILE}.qm) + list(APPEND QM_FILES ${CMAKE_BINARY_DIR}/data/translations/${TS_FILE}.qm) endforeach() +set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION ${CMAKE_BINARY_DIR}/data/translations) + # Set sources set(SRC aboutdlg.cpp application.cpp + draganddropstore.cpp editordata.cpp editorview.cpp - editorscene.cpp + editormode.hpp + floodfill.cpp main.cpp mainwindow.cpp map.cpp + mediator.cpp newtrackdialog.cpp object.cpp objectfactory.cpp @@ -29,7 +34,7 @@ tracktile.cpp trackpropertiesdialog.cpp undostack.cpp - ../common/config.cpp + ../common/config.hpp ../common/mapbase.cpp ../common/objectbase.cpp ../common/objects.cpp @@ -79,13 +84,4 @@ add_executable(${EDITOR_BINARY_NAME} WIN32 ${SRC} ${MOC_SRC} ${RC_SRC} ${UI_HDRS} ${QM}) target_link_libraries(${EDITOR_BINARY_NAME} Qt5::Widgets Qt5::Xml) -set_property(TARGET ${EDITOR_BINARY_NAME} PROPERTY CXX_STANDARD 11) - -foreach(TS_FILE ${TS}) - # Make targets to copy generated qm files to data dir. This is done the hard - # way, because qt4_add_translation() generates the qm files to ${CMAKE_CURRENT_SOURCE_DIR} - add_custom_target(copy-translation-file-${TS_FILE} ALL - COMMAND cmake -E copy ${CMAKE_BINARY_DIR}/src/editor/${TS_FILE}.qm - ${CMAKE_BINARY_DIR}/data/translations/${TS_FILE}.qm - DEPENDS ${EDITOR_BINARY_NAME}) -endforeach() +set_property(TARGET ${EDITOR_BINARY_NAME} PROPERTY CXX_STANDARD 14) diff -Nru dustrac-2.0.1/src/editor/draganddropstore.cpp dustrac-2.0.5/src/editor/draganddropstore.cpp --- dustrac-2.0.1/src/editor/draganddropstore.cpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/editor/draganddropstore.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,69 @@ +// This file is part of Dust Racing 2D. +// Copyright (C) 2018 Jussi Lind +// +// Dust Racing 2D is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Dust Racing 2D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Dust Racing 2D. If not, see . + +#include "draganddropstore.hpp" + +DragAndDropStore::DragAndDropStore() +{ +} + +void DragAndDropStore::clear() +{ + m_dragAndDropSourceTile = nullptr; + + m_dragAndDropObject = nullptr; + + m_dragAndDropTargetNode = nullptr; +} + +void DragAndDropStore::setDragAndDropSourceTile(TrackTile * tile) +{ + m_dragAndDropSourceTile = tile; +} + +TrackTile * DragAndDropStore::dragAndDropSourceTile() const +{ + return m_dragAndDropSourceTile; +} + +void DragAndDropStore::setDragAndDropObject(Object * object) +{ + m_dragAndDropObject = object; +} + +Object * DragAndDropStore::dragAndDropObject() const +{ + return m_dragAndDropObject; +} + +void DragAndDropStore::setDragAndDropTargetNode(TargetNode * tnode) +{ + m_dragAndDropTargetNode = tnode; +} + +TargetNode * DragAndDropStore::dragAndDropTargetNode() const +{ + return m_dragAndDropTargetNode; +} + +void DragAndDropStore::setDragAndDropSourcePos(QPointF pos) +{ + m_dragAndDropSourcePos = pos; +} + +QPointF DragAndDropStore::dragAndDropSourcePos() const +{ + return m_dragAndDropSourcePos; +} diff -Nru dustrac-2.0.1/src/editor/draganddropstore.hpp dustrac-2.0.5/src/editor/draganddropstore.hpp --- dustrac-2.0.1/src/editor/draganddropstore.hpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/editor/draganddropstore.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,58 @@ +// This file is part of Dust Racing 2D. +// Copyright (C) 2018 Jussi Lind +// +// Dust Racing 2D is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Dust Racing 2D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Dust Racing 2D. If not, see . + +#ifndef DRAGANDDROPSTORE_HPP +#define DRAGANDDROPSTORE_HPP + +#include + +class Object; +class TargetNode; +class TrackTile; + +class DragAndDropStore +{ +public: + DragAndDropStore(); + + void clear(); + + void setDragAndDropTargetNode(TargetNode * tnode); + + TargetNode * dragAndDropTargetNode() const; + + QPointF dragAndDropSourcePos() const; + + void setDragAndDropSourcePos(QPointF pos); + + void setDragAndDropSourceTile(TrackTile * tile); + + TrackTile * dragAndDropSourceTile() const; + + void setDragAndDropObject(Object * object); + + Object * dragAndDropObject() const; + +private: + TrackTile * m_dragAndDropSourceTile = nullptr; + + Object * m_dragAndDropObject = nullptr; + + TargetNode * m_dragAndDropTargetNode = nullptr; + + QPointF m_dragAndDropSourcePos; +}; + +#endif // DRAGANDDROPSTORE_HPP diff -Nru dustrac-2.0.1/src/editor/editordata.cpp dustrac-2.0.5/src/editor/editordata.cpp --- dustrac-2.0.1/src/editor/editordata.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/editordata.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -14,25 +14,24 @@ // along with Dust Racing 2D. If not, see . #include "editordata.hpp" -#include "editorscene.hpp" #include "editorview.hpp" #include "mainwindow.hpp" +#include "mediator.hpp" #include "object.hpp" #include "objectmodelloader.hpp" #include "targetnode.hpp" -#include "tracktile.hpp" #include "trackio.hpp" +#include "tracktile.hpp" #include #include using std::dynamic_pointer_cast; -EditorData::EditorData(MainWindow * mainWindow) -: m_mode(EditorMode::None) -, m_dragAndDropSourcePos() -, m_mainWindow(mainWindow) -{} +EditorData::EditorData(Mediator & mediator) + : m_mediator(mediator) +{ +} void EditorData::clearScene() { @@ -41,6 +40,11 @@ removeTargetNodesFromScene(); } +DragAndDropStore & EditorData::dadStore() +{ + return m_dadStore; +} + bool EditorData::loadTrackData(QString fileName) { m_undoStack.clear(); @@ -60,16 +64,12 @@ { if (m_undoStack.isUndoable()) { - m_dragAndDropSourceTile = nullptr; - - m_dragAndDropObject = nullptr; + m_dadStore.clear(); m_selectedObject = nullptr; m_selectedTargetNode = nullptr; - m_dragAndDropTargetNode = nullptr; - saveRedoPoint(); clearScene(); @@ -87,16 +87,12 @@ { if (m_undoStack.isRedoable()) { - m_dragAndDropSourceTile = nullptr; - - m_dragAndDropObject = nullptr; + m_dadStore.clear(); m_selectedObject = nullptr; m_selectedTargetNode = nullptr; - m_dragAndDropTargetNode = nullptr; - saveUndoPoint(); clearScene(); @@ -116,7 +112,7 @@ assert(m_trackData); m_undoStack.pushUndoPoint(m_trackData); - m_mainWindow->enableUndo(m_undoStack.isUndoable()); + m_mediator.enableUndo(m_undoStack.isUndoable()); } void EditorData::saveRedoPoint() @@ -151,17 +147,11 @@ void EditorData::beginSetRoute() { assert(m_trackData); - setMode(EditorMode::SetRoute); + m_mediator.setMode(EditorMode::SetRoute); removeRouteFromScene(); m_trackData->route().clear(); } -void EditorData::endSetRoute() -{ - // Reset the editing mode. - setMode(EditorMode::None); -} - void EditorData::addExistingRouteToScene() { // Re-push existing (loaded) target nodes so that route lines @@ -204,8 +194,8 @@ auto routeLine = new QGraphicsLineItem; node->setRouteLine(routeLine); - m_mainWindow->editorScene().addItem(node.get()); // The scene wants a raw pointer - m_mainWindow->editorScene().addItem(routeLine); + m_mediator.addItem(node.get()); // The scene wants a raw pointer + m_mediator.addItem(routeLine); const int routeLineZ = 10; node->setZValue(routeLineZ); @@ -214,8 +204,7 @@ // Check if we might have a loop => end if (loopClosed) { - setMode(EditorMode::None); - m_mainWindow->endSetRoute(); + m_mediator.endSetRoute(); auto firstNode = route.get(0); route.get(route.numNodes() - 1)->setLocation(firstNode->location()); @@ -232,13 +221,13 @@ auto node = dynamic_pointer_cast(tnode); assert(node); - m_mainWindow->editorScene().removeItem(node.get()); // The scene wants a raw pointer - m_mainWindow->editorScene().removeItem(node->routeLine()); + m_mediator.removeItem(node.get()); // The scene wants a raw pointer + m_mediator.removeItem(node->routeLine()); delete node->routeLine(); } - m_mainWindow->editorView().update(); + m_mediator.updateView(); } TrackDataPtr EditorData::trackData() @@ -246,36 +235,6 @@ return m_trackData; } -EditorData::EditorMode EditorData::mode() const -{ - return m_mode; -} - -void EditorData::setMode(EditorData::EditorMode newMode) -{ - m_mode = newMode; -} - -void EditorData::setDragAndDropSourceTile(TrackTile * tile) -{ - m_dragAndDropSourceTile = tile; -} - -TrackTile * EditorData::dragAndDropSourceTile() const -{ - return m_dragAndDropSourceTile; -} - -void EditorData::setDragAndDropObject(Object * object) -{ - m_dragAndDropObject = object; -} - -Object * EditorData::dragAndDropObject() const -{ - return m_dragAndDropObject; -} - void EditorData::setSelectedObject(Object * object) { m_selectedObject = object; @@ -296,26 +255,6 @@ return m_selectedTargetNode; } -void EditorData::setDragAndDropTargetNode(TargetNode * tnode) -{ - m_dragAndDropTargetNode = tnode; -} - -TargetNode * EditorData::dragAndDropTargetNode() const -{ - return m_dragAndDropTargetNode; -} - -void EditorData::setDragAndDropSourcePos(QPointF pos) -{ - m_dragAndDropSourcePos = pos; -} - -QPointF EditorData::dragAndDropSourcePos() const -{ - return m_dragAndDropSourcePos; -} - void EditorData::addTilesToScene() { assert(m_trackData); @@ -331,7 +270,7 @@ if (!tile->added()) { - m_mainWindow->editorScene().addItem(tile.get()); // The scene wants a raw pointer + m_mediator.addItem(tile.get()); // The scene wants a raw pointer tile->setAdded(true); } @@ -351,7 +290,7 @@ auto object = dynamic_pointer_cast(m_trackData->objects().object(i)); assert(object); - m_mainWindow->editorScene().addItem(object.get()); // The scene wants a raw pointer + m_mediator.addItem(object.get()); // The scene wants a raw pointer object->setZValue(10); } @@ -364,7 +303,7 @@ auto tile = dynamic_pointer_cast(trackTile); assert(tile); - m_mainWindow->editorScene().removeItem(tile.get()); // The scene wants a raw pointer + m_mediator.removeItem(tile.get()); // The scene wants a raw pointer } void EditorData::removeTilesFromScene() @@ -380,7 +319,7 @@ auto tile = dynamic_pointer_cast(m_trackData->map().getTile(i, j)); assert(tile); - m_mainWindow->editorScene().removeItem(tile.get()); // The scene wants a raw pointer + m_mediator.removeItem(tile.get()); // The scene wants a raw pointer } } } @@ -395,12 +334,13 @@ auto object = dynamic_pointer_cast(m_trackData->objects().object(i)); assert(object); - m_mainWindow->editorScene().removeItem(object.get()); // The scene wants a raw pointer + m_mediator.removeItem(object.get()); // The scene wants a raw pointer } } m_selectedObject = nullptr; - m_dragAndDropObject = nullptr; + + m_dadStore.clear(); } void EditorData::removeTargetNodesFromScene() @@ -412,11 +352,21 @@ auto node = dynamic_pointer_cast(tnode); assert(node); - m_mainWindow->editorScene().removeItem(node.get()); // The scene wants a raw pointer + m_mediator.removeItem(node.get()); // The scene wants a raw pointer } } } +int EditorData::currentScale() const +{ + return m_currentScale; +} + +void EditorData::setCurrentScale(int currentScale) +{ + m_currentScale = currentScale; +} + void EditorData::clearRoute() { assert(m_trackData); @@ -424,7 +374,7 @@ removeRouteFromScene(); m_trackData->route().clear(); - m_mainWindow->console(QString(QObject::tr("Route cleared."))); + m_mediator.console(QString(QObject::tr("Route cleared."))); } void EditorData::setActiveColumn(unsigned int column) diff -Nru dustrac-2.0.1/src/editor/editordata.hpp dustrac-2.0.5/src/editor/editordata.hpp --- dustrac-2.0.1/src/editor/editordata.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/editordata.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -19,14 +19,16 @@ #include #include -#include #include +#include +#include "draganddropstore.hpp" +#include "editormode.hpp" #include "trackdata.hpp" #include "trackio.hpp" #include "undostack.hpp" -class MainWindow; +class Mediator; class Object; class ObjectModelLoader; class TargetNode; @@ -39,20 +41,10 @@ class EditorData { public: - - //! Editing modes. - enum class EditorMode - { - None, - SetRoute, - SetTileType, - AddObject, - EraseObject - }; - //! Constructor. - //! \param mainWindow Pointer to the main window. - EditorData(MainWindow * mainWindow); + explicit EditorData(Mediator & mediator); + + DragAndDropStore & dadStore(); //! Load track from the given file. bool loadTrackData(QString fileName); @@ -89,10 +81,6 @@ //! setting the route. void beginSetRoute(); - //! This should be called after user ends - //! setting the route. - void endSetRoute(); - //! Adds current target node objects to the scene. void addExistingRouteToScene(); @@ -108,24 +96,6 @@ //! Returns current track data object. Returns NULL if not set. TrackDataPtr trackData(); - //! Returns current editing mode. - EditorMode mode() const; - - //! Sets the current editing mode. - void setMode(EditorMode newMode); - - //! Set tile that is being drag'n'dropped. - void setDragAndDropSourceTile(TrackTile * tile); - - //! Returns the tile being drag'n'dropped or nullptr. - TrackTile * dragAndDropSourceTile() const; - - //! Set object that is being drag'n'dropped. - void setDragAndDropObject(Object * object); - - //! Returns the object being drag'n'dropped or nullptr. - Object * dragAndDropObject() const; - //! Set selected object. void setSelectedObject(Object * object); @@ -138,18 +108,6 @@ //! Returns the selected target node or nullptr. TargetNode * selectedTargetNode() const; - //! Set target node that is being drag'n'dropped. - void setDragAndDropTargetNode(TargetNode * tnode); - - //! Returns the target node being drag'n'dropped or nullptr. - TargetNode * dragAndDropTargetNode() const; - - //! Get source pos of the drag'n'drop. - QPointF dragAndDropSourcePos() const; - - //! Set source pos of the drag'n'drop. - void setDragAndDropSourcePos(QPointF pos); - //! Add tiles in current track data object to the scene. void addTilesToScene(); @@ -167,10 +125,13 @@ unsigned int activeRow() const; -private: + void setCurrentScale(int currentScale); + int currentScale() const; + +private: EditorData(const EditorData & e); - EditorData & operator= (const EditorData & e); + EditorData & operator=(const EditorData & e); void clearScene(); @@ -182,33 +143,28 @@ void removeTargetNodesFromScene(); + DragAndDropStore m_dadStore; + TrackIO m_trackIO; TrackDataPtr m_trackData; UndoStack m_undoStack; - EditorMode m_mode; - - TrackTile * m_dragAndDropSourceTile = nullptr; - - Object * m_dragAndDropObject = nullptr; - Object * m_selectedObject = nullptr; TargetNode * m_selectedTargetNode = nullptr; - TargetNode * m_dragAndDropTargetNode = nullptr; - - QPointF m_dragAndDropSourcePos; - - MainWindow * m_mainWindow = nullptr; + Mediator & m_mediator; std::vector m_targetNodes; unsigned int m_activeColumn = 0; unsigned int m_activeRow = 0; + + // Scale percentage + int m_currentScale = 50; }; #endif // EDITORDATA_HPP diff -Nru dustrac-2.0.1/src/editor/editormode.hpp dustrac-2.0.5/src/editor/editormode.hpp --- dustrac-2.0.1/src/editor/editormode.hpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/editor/editormode.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,29 @@ +// This file is part of Dust Racing 2D. +// Copyright (C) 2018 Jussi Lind +// +// Dust Racing 2D is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Dust Racing 2D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Dust Racing 2D. If not, see . + +#ifndef EDITORMODE_HPP +#define EDITORMODE_HPP + +//! Editing modes. +enum class EditorMode +{ + None, + SetRoute, + SetTileType, + AddObject, + EraseObject +}; + +#endif // EDITORMODE_HPP diff -Nru dustrac-2.0.1/src/editor/editor.pro dustrac-2.0.5/src/editor/editor.pro --- dustrac-2.0.1/src/editor/editor.pro 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/editor.pro 2020-01-06 23:07:24.000000000 +0000 @@ -3,8 +3,8 @@ TEMPLATE = app TARGET = dustrac-editor -DEFINES += DATA_PATH=\\\"./data\\\" VERSION=\\\"2.0.1\\\" -QMAKE_CXXFLAGS += -std=gnu++11 +CONFIG += c++14 +DEFINES += DATA_PATH=\\\"./data\\\" VERSION=\\\"2.0.5\\\" # Qt version check contains(QT_VERSION, ^5\\..*) { @@ -29,11 +29,14 @@ ../common/userexception.hpp \ aboutdlg.hpp \ application.hpp \ + draganddropstore.hpp \ editordata.hpp \ - editorscene.hpp \ editorview.hpp \ + editormode.hpp \ + floodfill.hpp \ mainwindow.hpp \ map.hpp \ + mediator.hpp \ newtrackdialog.hpp \ object.hpp \ objectfactory.hpp \ @@ -50,7 +53,6 @@ undostack.hpp \ SOURCES += \ - ../common/config.cpp \ ../common/mapbase.cpp \ ../common/objectbase.cpp \ ../common/objects.cpp \ @@ -60,12 +62,14 @@ ../common/tracktilebase.cpp \ aboutdlg.cpp \ application.cpp \ + draganddropstore.cpp \ editordata.cpp \ - editorscene.cpp \ editorview.cpp \ + floodfill.cpp \ main.cpp \ mainwindow.cpp \ map.cpp \ + mediator.cpp \ newtrackdialog.cpp \ object.cpp \ objectfactory.cpp \ @@ -83,10 +87,12 @@ RESOURCES += ../../data/icons/icons.qrc ../../data/images/editor.qrc RC_FILE = ../../data/icons/WindowsEditor.rc TRANSLATIONS += \ + translations/dustrac-editor_cs.ts \ + translations/dustrac-editor_de.ts \ translations/dustrac-editor_fi.ts \ translations/dustrac-editor_fr.ts \ translations/dustrac-editor_it.ts \ - translations/dustrac-editor_cs.ts + translations/dustrac-editor_ru.ts target.path = $$OUT_PWD/../.. INSTALLS += target diff -Nru dustrac-2.0.1/src/editor/editorscene.cpp dustrac-2.0.5/src/editor/editorscene.cpp --- dustrac-2.0.1/src/editor/editorscene.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/editorscene.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -// This file is part of Dust Racing 2D. -// Copyright (C) 2011 Jussi Lind -// -// Dust Racing 2D is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// Dust Racing 2D is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Dust Racing 2D. If not, see . - -#include "editorscene.hpp" - -EditorScene::EditorScene(QObject * parent) : - QGraphicsScene(parent) -{} diff -Nru dustrac-2.0.1/src/editor/editorscene.hpp dustrac-2.0.5/src/editor/editorscene.hpp --- dustrac-2.0.1/src/editor/editorscene.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/editorscene.hpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -// This file is part of Dust Racing 2D. -// Copyright (C) 2011 Jussi Lind -// -// Dust Racing 2D is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// Dust Racing 2D is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Dust Racing 2D. If not, see . - -#ifndef EDITORSCENE_HPP -#define EDITORSCENE_HPP - -#include - -//! Graphics scene of the editor. -class EditorScene : public QGraphicsScene -{ - Q_OBJECT - -public: - - //! Constructor. - explicit EditorScene(QObject * parent = nullptr); -}; - -#endif // EDITORSCENE_HPP diff -Nru dustrac-2.0.1/src/editor/editorview.cpp dustrac-2.0.5/src/editor/editorview.cpp --- dustrac-2.0.1/src/editor/editorview.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/editorview.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -20,9 +20,11 @@ #include #include -#include "editordata.hpp" #include "editorview.hpp" -#include "mainwindow.hpp" + +#include "draganddropstore.hpp" +#include "editormode.hpp" +#include "mediator.hpp" #include "object.hpp" #include "objectfactory.hpp" #include "objectmodelloader.hpp" @@ -35,9 +37,8 @@ #include #include -EditorView::EditorView(EditorData & editorData, QWidget * parent) -: QGraphicsView(parent) -, m_editorData(editorData) +EditorView::EditorView(Mediator & mediator) + : m_mediator(mediator) { createTileContextMenuActions(); createObjectContextMenuActions(); @@ -47,10 +48,10 @@ void EditorView::updateSceneRect() { const QRectF newSceneRect( - 0, - 0, - m_editorData.trackData()->map().cols() * TrackTile::TILE_W, - m_editorData.trackData()->map().rows() * TrackTile::TILE_H); + 0, + 0, + m_mediator.cols() * TrackTile::width(), + m_mediator.rows() * TrackTile::height()); setSceneRect(newSceneRect); @@ -69,45 +70,22 @@ } // Tile drag'n'drop active? - if (auto sourceTile = m_editorData.dragAndDropSourceTile()) + if (auto sourceTile = m_mediator.dadStore().dragAndDropSourceTile()) { sourceTile->setPos(mappedPos); } // Object drag'n'drop active? - else if (auto object = m_editorData.dragAndDropObject()) + else if (auto object = m_mediator.dadStore().dragAndDropObject()) { object->setLocation(mappedPos); } // Target node drag'n'drop active? - else if (auto tnode = m_editorData.dragAndDropTargetNode()) + else if (auto tnode = m_mediator.dadStore().dragAndDropTargetNode()) { tnode->setLocation(mappedPos); } - updateCoordinates(mappedPos); - } -} - -void EditorView::updateCoordinates(QPointF mappedPos) -{ - if (m_editorData.trackData()) - { - const int maxCols = static_cast(m_editorData.trackData()->map().cols()); - int column = mappedPos.x() / TrackTile::TILE_W; - column = column >= maxCols ? maxCols - 1 : column; - column = column < 0 ? 0 : column; - - const int maxRows = static_cast(m_editorData.trackData()->map().rows()); - int row = mappedPos.y() / TrackTile::TILE_H; - row = row >= maxRows ? maxRows - 1 : row; - row = row < 0 ? 0 : row; - - m_editorData.setActiveRow(static_cast(row)); - m_editorData.setActiveColumn(static_cast(column)); - - QString coordinates("X: %1 Y: %2 I: %3 J: %4"); - coordinates = coordinates.arg(mappedPos.x()).arg(mappedPos.y()).arg(column).arg(row); - MainWindow::instance()->statusBar()->showMessage(coordinates); + m_mediator.updateCoordinates(mappedPos); } } @@ -117,11 +95,11 @@ const QString dummy1(QString(QWidget::tr("Rotate 90")) + degreeSign + QWidget::tr(" CW..")); auto rotate90CW = new QAction(dummy1, &m_tileContextMenu); - QObject::connect(rotate90CW, &QAction::triggered, [this] () { + QObject::connect(rotate90CW, &QAction::triggered, [this]() { if (TrackTile * tile = - dynamic_cast(scene()->itemAt(mapToScene(m_clickedPos), QTransform()))) + dynamic_cast(scene()->itemAt(mapToScene(m_clickedPos), QTransform()))) { - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); tile->rotate90CW(); } }); @@ -129,106 +107,96 @@ const QString dummy2(QString(QWidget::tr("Rotate 90")) + degreeSign + QWidget::tr(" CCW..")); auto rotate90CCW = new QAction(dummy2, &m_tileContextMenu); - QObject::connect(rotate90CCW, &QAction::triggered, [this] () { + QObject::connect(rotate90CCW, &QAction::triggered, [this]() { if (auto tile = - dynamic_cast(scene()->itemAt(mapToScene(m_clickedPos), QTransform()))) + dynamic_cast(scene()->itemAt(mapToScene(m_clickedPos), QTransform()))) { - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); tile->rotate90CCW(); } }); m_clearComputerHint = new QAction(QWidget::tr("Clear computer hint"), &m_tileContextMenu); - QObject::connect(m_clearComputerHint, &QAction::triggered, [this] () { - m_editorData.saveUndoPoint(); - setComputerHint(TrackTileBase::CH_NONE); + QObject::connect(m_clearComputerHint, &QAction::triggered, [this]() { + m_mediator.saveUndoPoint(); + setComputerHint(TrackTileBase::ComputerHint::None); }); m_setComputerHintBrakeHard = new QAction( - QWidget::tr("Set computer hint 'brake hard'.."), &m_tileContextMenu); - QObject::connect(m_setComputerHintBrakeHard, &QAction::triggered, [this] () { - m_editorData.saveUndoPoint(); - setComputerHint(TrackTileBase::CH_BRAKE_HARD); + QWidget::tr("Set computer hint 'brake hard'.."), &m_tileContextMenu); + QObject::connect(m_setComputerHintBrakeHard, &QAction::triggered, [this]() { + m_mediator.saveUndoPoint(); + setComputerHint(TrackTileBase::ComputerHint::BrakeHard); }); m_setComputerHintBrake = new QAction( - QWidget::tr("Set computer hint 'brake'.."), &m_tileContextMenu); - QObject::connect(m_setComputerHintBrake, &QAction::triggered, [this] () { - m_editorData.saveUndoPoint(); - setComputerHint(TrackTileBase::CH_BRAKE); + QWidget::tr("Set computer hint 'brake'.."), &m_tileContextMenu); + QObject::connect(m_setComputerHintBrake, &QAction::triggered, [this]() { + m_mediator.saveUndoPoint(); + setComputerHint(TrackTileBase::ComputerHint::Brake); }); m_excludeFromMinimap = new QAction( - QWidget::tr("Exclude from minimap"), &m_tileContextMenu); + QWidget::tr("Exclude from minimap"), &m_tileContextMenu); m_excludeFromMinimap->setCheckable(true); - QObject::connect(m_excludeFromMinimap, &QAction::changed, [this] () { + QObject::connect(m_excludeFromMinimap, &QAction::changed, [this]() { if (auto tile = dynamic_cast(scene()->itemAt(mapToScene(this->m_clickedPos), QTransform()))) { - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); tile->setExcludeFromMinimap(this->m_excludeFromMinimap->isChecked()); } }); auto insertRowBefore = new QAction( - QWidget::tr("Insert row before.."), &m_tileContextMenu); - QObject::connect(insertRowBefore, &QAction::triggered, [this] () { - m_editorData.saveUndoPoint(); - m_editorData.trackData()->insertRow(m_editorData.activeRow(), MapBase::InsertDirection::Before); - m_editorData.addTilesToScene(); + QWidget::tr("Insert row before.."), &m_tileContextMenu); + QObject::connect(insertRowBefore, &QAction::triggered, [this]() { + m_mediator.saveUndoPoint(); + m_mediator.insertRowBefore(); updateSceneRect(); update(); }); auto insertRowAfter = new QAction( - QWidget::tr("Insert row after.."), &m_tileContextMenu); - QObject::connect(insertRowAfter, &QAction::triggered, [this] () { - m_editorData.saveUndoPoint(); - m_editorData.trackData()->insertRow(m_editorData.activeRow(), MapBase::InsertDirection::After); - m_editorData.addTilesToScene(); + QWidget::tr("Insert row after.."), &m_tileContextMenu); + QObject::connect(insertRowAfter, &QAction::triggered, [this]() { + m_mediator.saveUndoPoint(); + m_mediator.insertRowAfter(); updateSceneRect(); update(); }); m_deleteRow = new QAction( - QWidget::tr("Delete row.."), &m_tileContextMenu); - QObject::connect(m_deleteRow, &QAction::triggered, [this] () { - m_editorData.saveUndoPoint(); - auto deleted = m_editorData.trackData()->deleteRow(m_editorData.activeRow()); - for (auto && tile : deleted) { - m_editorData.removeTileFromScene(tile); - } + QWidget::tr("Delete row.."), &m_tileContextMenu); + QObject::connect(m_deleteRow, &QAction::triggered, [this]() { + m_mediator.saveUndoPoint(); + m_mediator.deleteRow(); updateSceneRect(); update(); }); auto insertColBefore = new QAction( - QWidget::tr("Insert column before.."), &m_tileContextMenu); - QObject::connect(insertColBefore, &QAction::triggered, [this] () { - m_editorData.saveUndoPoint(); - m_editorData.trackData()->insertColumn(m_editorData.activeColumn(), MapBase::InsertDirection::Before); - m_editorData.addTilesToScene(); + QWidget::tr("Insert column before.."), &m_tileContextMenu); + QObject::connect(insertColBefore, &QAction::triggered, [this]() { + m_mediator.saveUndoPoint(); + m_mediator.insertColumnBefore(); updateSceneRect(); update(); }); auto insertColAfter = new QAction( - QWidget::tr("Insert column after.."), &m_tileContextMenu); - QObject::connect(insertColAfter, &QAction::triggered, [this] () { - m_editorData.saveUndoPoint(); - m_editorData.trackData()->insertColumn(m_editorData.activeColumn(), MapBase::InsertDirection::After); - m_editorData.addTilesToScene(); + QWidget::tr("Insert column after.."), &m_tileContextMenu); + QObject::connect(insertColAfter, &QAction::triggered, [this]() { + m_mediator.saveUndoPoint(); + m_mediator.insertColumnAfter(); updateSceneRect(); update(); }); m_deleteCol = new QAction( - QWidget::tr("Delete column.."), &m_tileContextMenu); - QObject::connect(m_deleteCol, &QAction::triggered, [this] () { - m_editorData.saveUndoPoint(); - auto deleted = m_editorData.trackData()->deleteColumn(m_editorData.activeColumn()); - for (auto && tile : deleted) { - m_editorData.removeTileFromScene(tile); - } + QWidget::tr("Delete column.."), &m_tileContextMenu); + QObject::connect(m_deleteCol, &QAction::triggered, [this]() { + m_mediator.saveUndoPoint(); + m_mediator.deleteColumn(); updateSceneRect(); update(); }); @@ -256,13 +224,13 @@ { const QString dummy1(QString(QWidget::tr("Rotate.."))); auto rotate = new QAction(dummy1, &m_tileContextMenu); - QObject::connect(rotate, &QAction::triggered, [this] () { + QObject::connect(rotate, &QAction::triggered, [this]() { RotateDialog dialog; if (dialog.exec() == QDialog::Accepted) { - if (auto object = m_editorData.selectedObject()) + if (auto object = m_mediator.selectedObject()) { - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); object->setRotation(static_cast(dialog.angle() + object->rotation()) % 360); } @@ -272,10 +240,10 @@ const QString dummy2(QString(QWidget::tr("Force stationary"))); m_forceStationaryAction = new QAction(dummy2, &m_tileContextMenu); m_forceStationaryAction->setCheckable(true); - QObject::connect(m_forceStationaryAction, &QAction::changed, [this] () { - if (auto object = m_editorData.selectedObject()) + QObject::connect(m_forceStationaryAction, &QAction::changed, [this]() { + if (auto object = m_mediator.selectedObject()) { - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); object->setForceStationary(m_forceStationaryAction->isChecked()); } }); @@ -290,13 +258,13 @@ { const QString dummy1(QString(QWidget::tr("Set size.."))); auto setSize = new QAction(dummy1, &m_targetNodeContextMenu); - QObject::connect(setSize, &QAction::triggered, [this] () { - if (auto tnode = m_editorData.selectedTargetNode()) + QObject::connect(setSize, &QAction::triggered, [this]() { + if (auto tnode = m_mediator.selectedTargetNode()) { TargetNodeSizeDlg dialog(tnode->size()); if (dialog.exec() == QDialog::Accepted) { - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); tnode->setSize(dialog.targetNodeSize()); } @@ -311,12 +279,11 @@ { if (scene()) { - m_clickedPos = event->pos(); + m_clickedPos = event->pos(); m_clickedScenePos = mapToScene(m_clickedPos); // Fetch all items at the location - QList items = scene()->items( - m_clickedScenePos, Qt::IntersectsItemShape, Qt::DescendingOrder); + QList items = scene()->items(m_clickedScenePos, Qt::IntersectsItemShape, Qt::DescendingOrder); if (items.size()) { @@ -351,11 +318,11 @@ void EditorView::eraseObjectAtCurrentClickedPos() { - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); // Fetch all items at the location QList items = scene()->items( - m_clickedScenePos, Qt::IntersectsItemShape, Qt::DescendingOrder); + m_clickedScenePos, Qt::IntersectsItemShape, Qt::DescendingOrder); // We need to find the first object to be erased, because // there might be also overlapping TargetNodes. @@ -363,9 +330,8 @@ { if (auto object = dynamic_cast(item)) { - scene()->removeItem(object); - m_editorData.trackData()->objects().remove(*object); - m_editorData.setSelectedObject(nullptr); + m_mediator.removeObject(*object); + m_mediator.setSelectedObject(nullptr); break; } } @@ -373,26 +339,7 @@ void EditorView::addCurrentToolBarObjectToScene() { - if (QAction * action = MainWindow::instance()->currentToolBarAction()) - { - if (scene()) - { - m_editorData.saveUndoPoint(); - - Object & object = ObjectFactory::createObject(action->data().toString()); - object.setLocation(m_clickedScenePos); - - if (MainWindow::instance()->randomlyRotateObjects()) - { - object.setRotation(std::rand() % 360); - } - - scene()->addItem(&object); - - m_editorData.trackData()->objects().add(ObjectBasePtr(&object)); - m_editorData.setSelectedObject(&object); - } - } + m_mediator.addCurrentToolBarObjectToScene(m_clickedScenePos); } void EditorView::handleMousePressEventOnObject(QMouseEvent & event, Object & object) @@ -404,12 +351,12 @@ else if (event.button() == Qt::LeftButton) { // User is adding an object - if (m_editorData.mode() == EditorData::EditorMode::AddObject) + if (m_mediator.mode() == EditorMode::AddObject) { addCurrentToolBarObjectToScene(); } // User is erasing an object - else if (m_editorData.mode() == EditorData::EditorMode::EraseObject) + else if (m_mediator.mode() == EditorMode::EraseObject) { eraseObjectAtCurrentClickedPos(); } @@ -432,7 +379,7 @@ else if (event.button() == Qt::LeftButton) { // User is adding an object - if (m_editorData.mode() == EditorData::EditorMode::AddObject) + if (m_mediator.mode() == EditorMode::AddObject) { addCurrentToolBarObjectToScene(); } @@ -456,7 +403,7 @@ else if (event.button() == Qt::LeftButton) { // User is adding an object - if (m_editorData.mode() == EditorData::EditorMode::AddObject) + if (m_mediator.mode() == EditorMode::AddObject) { addCurrentToolBarObjectToScene(); } @@ -472,13 +419,13 @@ void EditorView::handleLeftButtonClickOnObject(Object & object) { // User is initiating a drag'n'drop - if (m_editorData.mode() == EditorData::EditorMode::None) + if (m_mediator.mode() == EditorMode::None) { - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); object.setZValue(object.zValue() + 1); - m_editorData.setDragAndDropObject(&object); - m_editorData.setSelectedObject(&object); + m_mediator.dadStore().setDragAndDropObject(&object); + m_mediator.setSelectedObject(&object); // Change cursor to the closed hand cursor. QApplication::setOverrideCursor(QCursor(Qt::ClosedHandCursor)); @@ -488,34 +435,34 @@ void EditorView::handleLeftButtonClickOnTargetNode(TargetNode & tnode) { // User is initiating a drag'n'drop - if (m_editorData.mode() == EditorData::EditorMode::None) + if (m_mediator.mode() == EditorMode::None) { - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); tnode.setZValue(tnode.zValue() + 1); - m_editorData.setDragAndDropTargetNode(&tnode); + m_mediator.dadStore().setDragAndDropTargetNode(&tnode); // Change cursor to the closed hand cursor. QApplication::setOverrideCursor(QCursor(Qt::ClosedHandCursor)); } // It's not possible to make nodes overlap if not handled also here. - else if (m_editorData.mode() == EditorData::EditorMode::SetRoute) + else if (m_mediator.mode() == EditorMode::SetRoute) { - m_editorData.pushNewTargetNodeToRoute(m_clickedScenePos); + m_mediator.pushNewTargetNodeToRoute(m_clickedScenePos); } } void EditorView::handleLeftButtonClickOnTile(TrackTile & tile) { // User is defining the route - if (m_editorData.mode() == EditorData::EditorMode::SetRoute) + if (m_mediator.mode() == EditorMode::SetRoute) { - m_editorData.pushNewTargetNodeToRoute(m_clickedScenePos); + m_mediator.pushNewTargetNodeToRoute(m_clickedScenePos); } // User is setting the tile type - else if (m_editorData.mode() == EditorData::EditorMode::SetTileType) + else if (m_mediator.mode() == EditorMode::SetTileType) { - if (QAction * action = MainWindow::instance()->currentToolBarAction()) + if (QAction * action = m_mediator.currentToolBarAction()) { Qt::KeyboardModifiers modifiers = QApplication::keyboardModifiers(); @@ -525,7 +472,7 @@ if (typeToFill != action->data().toString()) { - doFloodFill(tile, action, typeToFill); + m_mediator.floodFill(tile, action, typeToFill); } } else @@ -535,11 +482,11 @@ } } // User is initiating a drag'n'drop - else if (m_editorData.mode() == EditorData::EditorMode::None) + else if (m_mediator.mode() == EditorMode::None) { tile.setZValue(tile.zValue() + 1); - m_editorData.setDragAndDropSourceTile(&tile); - m_editorData.setDragAndDropSourcePos(tile.pos()); + m_mediator.dadStore().setDragAndDropSourceTile(&tile); + m_mediator.dadStore().setDragAndDropSourcePos(tile.pos()); // Change cursor to the closed hand cursor. QApplication::setOverrideCursor(QCursor(Qt::ClosedHandCursor)); @@ -555,26 +502,21 @@ switch (tile.computerHint()) { - case TrackTileBase::CH_NONE: + case TrackTileBase::ComputerHint::None: m_clearComputerHint->setEnabled(false); break; - case TrackTileBase::CH_BRAKE_HARD: + case TrackTileBase::ComputerHint::BrakeHard: m_setComputerHintBrakeHard->setEnabled(false); break; - case TrackTileBase::CH_BRAKE: + case TrackTileBase::ComputerHint::Brake: m_setComputerHintBrake->setEnabled(false); break; - default: - break; } m_excludeFromMinimap->setChecked(tile.excludeFromMinimap()); - if (m_editorData.trackData()) - { - m_deleteCol->setEnabled(m_editorData.trackData()->map().cols() > 2); - m_deleteRow->setEnabled(m_editorData.trackData()->map().rows() > 2); - } + m_deleteCol->setEnabled(m_mediator.cols()); + m_deleteRow->setEnabled(m_mediator.rows()); const QPoint globalPos = mapToGlobal(m_clickedPos); m_tileContextMenu.exec(globalPos); @@ -593,7 +535,7 @@ void EditorView::handleRightButtonClickOnObject(Object & object) { - m_editorData.setSelectedObject(&object); + m_mediator.setSelectedObject(&object); m_forceStationaryAction->setChecked(object.forceStationary()); @@ -608,7 +550,7 @@ void EditorView::handleRightButtonClickOnTargetNode(TargetNode & tnode) { - m_editorData.setSelectedTargetNode(&tnode); + m_mediator.setSelectedTargetNode(&tnode); openTargetNodeContextMenu(); } @@ -622,26 +564,26 @@ void EditorView::keyPressEvent(QKeyEvent * event) { - if (auto object = m_editorData.selectedObject()) + if (auto object = m_mediator.selectedObject()) { if (!event->isAutoRepeat()) { switch (event->key()) { case Qt::Key_Left: - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); object->setLocation(QPointF(object->location().x() - 1, object->location().y())); break; case Qt::Key_Right: - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); object->setLocation(QPointF(object->location().x() + 1, object->location().y())); break; case Qt::Key_Up: - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); object->setLocation(QPointF(object->location().x(), object->location().y() - 1)); break; case Qt::Key_Down: - m_editorData.saveUndoPoint(); + m_mediator.saveUndoPoint(); object->setLocation(QPointF(object->location().x(), object->location().y() + 1)); break; default: @@ -653,81 +595,72 @@ void EditorView::handleTileDragRelease(QMouseEvent * event) { - if (scene()) + // Tile drag'n'drop active? + if (auto sourceTile = m_mediator.dadStore().dragAndDropSourceTile()) { - // Tile drag'n'drop active? - if (auto sourceTile = m_editorData.dragAndDropSourceTile()) + // Determine the dest tile + auto destTile = sourceTile; + QList items = scene()->items(mapToScene(event->pos())); + for (QGraphicsItem * item : items) { - // Determine the dest tile - auto destTile = sourceTile; - QList items = scene()->items(mapToScene(event->pos())); - for (QGraphicsItem * item : items) + auto testTile = dynamic_cast(item); + if (testTile && testTile != sourceTile) { - auto testTile = dynamic_cast(item); - if (testTile && testTile != sourceTile) - { - destTile = testTile; - break; - } + destTile = testTile; + break; } + } - // Swap tiles - sourceTile->swap(*destTile); + // Swap tiles + sourceTile->swap(*destTile); - // Restore position - sourceTile->setPos(m_editorData.dragAndDropSourcePos()); - sourceTile->setZValue(sourceTile->zValue() - 1); - destTile->setZValue(sourceTile->zValue()); + // Restore position + sourceTile->setPos(m_mediator.dadStore().dragAndDropSourcePos()); + sourceTile->setZValue(sourceTile->zValue() - 1); + destTile->setZValue(sourceTile->zValue()); - update(); + update(); - m_editorData.setDragAndDropSourceTile(nullptr); + m_mediator.dadStore().clear(); - // Restore the cursor. - QApplication::restoreOverrideCursor(); - } + // Restore the cursor. + QApplication::restoreOverrideCursor(); } } void EditorView::handleObjectDragRelease(QMouseEvent * event) { - if (scene()) + // Object drag'n'drop active? + if (auto object = m_mediator.dadStore().dragAndDropObject()) { - // Object drag'n'drop active? - if (auto object = m_editorData.dragAndDropObject()) - { - // Set the new position position - object->setLocation(mapToScene(event->pos())); - object->setZValue(object->zValue() - 1); + // Set the new position position + object->setLocation(mapToScene(event->pos())); + object->setZValue(object->zValue() - 1); - update(); + update(); - m_editorData.setDragAndDropObject(nullptr); + m_mediator.dadStore().clear(); - // Restore the cursor. - QApplication::restoreOverrideCursor(); - } + // Restore the cursor. + QApplication::restoreOverrideCursor(); } } void EditorView::handleTargetNodeDragRelease(QMouseEvent * event) { - if (scene()) + // Target node drag'n'drop active? + if (auto tnode = m_mediator.dadStore().dragAndDropTargetNode()) { - // Target node drag'n'drop active? - if (auto tnode = m_editorData.dragAndDropTargetNode()) - { - // Set the new position position - tnode->setLocation(mapToScene(event->pos())); - tnode->setZValue(tnode->zValue() - 1); + // Set the new position position + tnode->setLocation(mapToScene(event->pos())); + tnode->setZValue(tnode->zValue() - 1); - update(); + update(); - m_editorData.setDragAndDropTargetNode(nullptr); + m_mediator.dadStore().clear(); - // Restore the cursor. - QApplication::restoreOverrideCursor(); - } + // Restore the cursor. + QApplication::restoreOverrideCursor(); } } @@ -735,63 +668,31 @@ { if (auto tile = dynamic_cast(scene()->itemAt(mapToScene(m_clickedPos), QTransform()))) { - m_editorData.saveUndoPoint(); - + m_mediator.saveUndoPoint(); tile->setComputerHint(hint); } } -void EditorView::doFloodFill(TrackTile & tile, QAction * action, QString typeToFill) -{ - m_editorData.saveUndoPoint(); - - floodFill(tile, action, typeToFill); -} - -void EditorView::floodFill(TrackTile & tile, QAction * action, const QString & typeToFill) -{ - static const int DIRECTION_COUNT = 4; - - // Coordinates of neighbor tiles can be calculated by adding these - // adjustments to tile coordinates. - static const QPoint neighborAdjustments[DIRECTION_COUNT] = - { - QPoint( 1, 0), // right - QPoint( 0, -1), // up - QPoint(-1, 0), // left - QPoint( 0, 1) // down - }; - - setTileType(tile, action); - - MapBase & map = m_editorData.trackData()->map(); - QPoint location = tile.matrixLocation(); - - for (int i = 0; i < DIRECTION_COUNT; ++i) - { - int x = location.x() + neighborAdjustments[i].x(); - int y = location.y() + neighborAdjustments[i].y(); - - if (x >= 0 && y >= 0) - { - auto tile = std::dynamic_pointer_cast(map.getTile(x, y)); - if (tile && tile->tileType() == typeToFill) - { - floodFill(*(tile.get()), action, typeToFill); - } - } - } -} - void EditorView::changeTileType(TrackTile & tile, QAction * action) { - m_editorData.saveUndoPoint(); - + m_mediator.saveUndoPoint(); setTileType(tile, action); } void EditorView::setTileType(TrackTile & tile, QAction * action) { tile.setTileType(action->data().toString()); - tile.setPixmap(action->icon().pixmap(TrackTile::TILE_W, TrackTile::TILE_H)); + tile.setPixmap(action->icon().pixmap(TrackTile::width(), TrackTile::height())); +} + +void EditorView::wheelEvent(QWheelEvent * event) +{ + if (event->modifiers() & Qt::ControlModifier) + { + m_mediator.mouseWheelZoom(event->delta()); + } + else + { + QGraphicsView::wheelEvent(event); + } } diff -Nru dustrac-2.0.1/src/editor/editorview.hpp dustrac-2.0.5/src/editor/editorview.hpp --- dustrac-2.0.1/src/editor/editorview.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/editorview.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,14 +16,14 @@ #ifndef EDITORVIEW_HPP #define EDITORVIEW_HPP +#include "../common/tracktilebase.hpp" #include #include -#include "../common/tracktilebase.hpp" +class Mediator; class QAction; class QMouseEvent; class QPaintEvent; -class EditorData; class Object; class ObjectModelLoaderoader; class TargetNode; @@ -34,13 +34,11 @@ Q_OBJECT public: - - explicit EditorView(EditorData & editorData, QWidget * parent = 0); + explicit EditorView(Mediator & mediator); void updateSceneRect(); protected: - void mouseMoveEvent(QMouseEvent * event) override; void mousePressEvent(QMouseEvent * event) override; @@ -49,8 +47,9 @@ void keyPressEvent(QKeyEvent * event) override; -private: + void wheelEvent(QWheelEvent * event) override; +private: void addCurrentToolBarObjectToScene(); void changeTileType(TrackTile & tile, QAction * action); @@ -61,12 +60,8 @@ void createTargetNodeContextMenuActions(); - void doFloodFill(TrackTile & tile, QAction * action, QString typeToFill); - void eraseObjectAtCurrentClickedPos(); - void floodFill(TrackTile & tile, QAction * action, const QString & typeToFill); - void handleMousePressEventOnTile(QMouseEvent & event, TrackTile & tile); void handleLeftButtonClickOnTile(TrackTile & tile); @@ -99,8 +94,6 @@ void setComputerHint(TrackTileBase::ComputerHint hint); - void updateCoordinates(QPointF mappedPos); - static void setTileType(TrackTile & tile, QAction * action); QMenu m_tileContextMenu; @@ -127,7 +120,7 @@ QAction * m_forceStationaryAction = nullptr; - EditorData & m_editorData; + Mediator & m_mediator; }; #endif // EDITORVIEW_HPP diff -Nru dustrac-2.0.1/src/editor/floodfill.cpp dustrac-2.0.5/src/editor/floodfill.cpp --- dustrac-2.0.1/src/editor/floodfill.cpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/editor/floodfill.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,61 @@ +// This file is part of Dust Racing 2D. +// Copyright (C) 2018 Jussi Lind +// +// Dust Racing 2D is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Dust Racing 2D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Dust Racing 2D. If not, see . + +#include "floodfill.hpp" +#include "map.hpp" +#include "tracktile.hpp" + +#include + +namespace FloodFill { +void setTileType(TrackTile & tile, QAction * action) +{ + tile.setTileType(action->data().toString()); + tile.setPixmap(action->icon().pixmap(TrackTile::width(), TrackTile::height())); +} +} // namespace FloodFill + +void FloodFill::floodFill(TrackTile & tile, QAction * action, const QString & typeToFill, MapBase & map) +{ + static const int DIRECTION_COUNT = 4; + + // Coordinates of neighbor tiles can be calculated by adding these + // adjustments to tile coordinates. + static const QPoint neighborAdjustments[DIRECTION_COUNT] = { + QPoint(1, 0), // right + QPoint(0, -1), // up + QPoint(-1, 0), // left + QPoint(0, 1) // down + }; + + setTileType(tile, action); + + QPoint location = tile.matrixLocation(); + + for (int i = 0; i < DIRECTION_COUNT; ++i) + { + int x = location.x() + neighborAdjustments[i].x(); + int y = location.y() + neighborAdjustments[i].y(); + + if (x >= 0 && y >= 0) + { + auto tile = std::dynamic_pointer_cast(map.getTile(x, y)); + if (tile && tile->tileType() == typeToFill) + { + FloodFill::floodFill(*(tile.get()), action, typeToFill, map); + } + } + } +} diff -Nru dustrac-2.0.1/src/editor/floodfill.hpp dustrac-2.0.5/src/editor/floodfill.hpp --- dustrac-2.0.1/src/editor/floodfill.hpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/editor/floodfill.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,28 @@ +// This file is part of Dust Racing 2D. +// Copyright (C) 2018 Jussi Lind +// +// Dust Racing 2D is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Dust Racing 2D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Dust Racing 2D. If not, see . + +#ifndef FLOODFILL_HPP +#define FLOODFILL_HPP + +class MapBase; +class QAction; +class QString; +class TrackTile; + +namespace FloodFill { +void floodFill(TrackTile & tile, QAction * action, const QString & typeToFill, MapBase & map); +} + +#endif // FLOODFILL_HPP diff -Nru dustrac-2.0.1/src/editor/main.cpp dustrac-2.0.5/src/editor/main.cpp --- dustrac-2.0.1/src/editor/main.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/main.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -21,9 +21,9 @@ #include "application.hpp" +#include #include #include -#include #if QT_VERSION < 0x50600 extern Q_CORE_EXPORT QBasicAtomicInt qt_qhash_seed; @@ -37,7 +37,7 @@ qt_qhash_seed.store(0); #endif - QApplication::setOrganizationName(Config::Common::QSETTINGS_COMPANY_NAME); + QApplication::setOrganizationName(Config::General::QSETTINGS_COMPANY_NAME); QApplication::setApplicationName(Config::Editor::QSETTINGS_SOFTWARE_NAME); #ifdef Q_OS_WIN32 QSettings::setDefaultFormat(QSettings::IniFormat); @@ -47,11 +47,10 @@ try { - app.reset(new Application(argc, argv)); + app = std::make_unique(argc, argv); return app->run(); - } - catch (std::exception & e) + } catch (std::exception & e) { if (!dynamic_cast(&e)) { diff -Nru dustrac-2.0.1/src/editor/mainwindow.cpp dustrac-2.0.5/src/editor/mainwindow.cpp --- dustrac-2.0.1/src/editor/mainwindow.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/mainwindow.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,17 +17,17 @@ #include "../common/config.hpp" #include "aboutdlg.hpp" +#include "editordata.hpp" +#include "editorview.hpp" +#include "mediator.hpp" +#include "newtrackdialog.hpp" #include "object.hpp" #include "objectmodel.hpp" #include "objectmodelloader.hpp" -#include "trackio.hpp" #include "trackdata.hpp" +#include "trackio.hpp" #include "trackpropertiesdialog.hpp" #include "tracktile.hpp" -#include "editordata.hpp" -#include "editorview.hpp" -#include "editorscene.hpp" -#include "newtrackdialog.hpp" #include #include @@ -36,45 +36,34 @@ #include #include #include +#include +#include #include #include #include -#include #include #include #include #include #include #include -#include #include -#include +#include #include #include MainWindow * MainWindow::m_instance = nullptr; -namespace -{ - const char * SETTINGS_GROUP = "MainWindow"; - const unsigned int MIN_ZOOM = 0; - const unsigned int MAX_ZOOM = 200; - const unsigned int INI_ZOOM = 100; - const int CONSOLE_HEIGHT = 64; -} - MainWindow::MainWindow(QString trackFile) -: m_objectModelLoader(new ObjectModelLoader) -, m_aboutDlg(new AboutDlg(this)) -, m_editorData(new EditorData(this)) -, m_editorScene(new EditorScene(this)) -, m_editorView(new EditorView(*m_editorData, this)) -, m_console(new QTextEdit(this)) -, m_scaleSlider(new QSlider(Qt::Horizontal, this)) -, m_toolBar(new QToolBar(this)) -, m_randomRotationCheck(new QCheckBox(tr("Randomly rotate objects"), this)) -, m_argTrackFile(trackFile) + : m_objectModelLoader(std::make_unique()) + , m_mediator(std::make_unique(*this)) + , m_aboutDlg(new AboutDlg(this)) + , m_console(new QTextEdit(this)) + , m_scaleSlider(new QSlider(Qt::Horizontal, this)) + , m_toolBar(new QToolBar(this)) + , m_randomRotationCheck(new QCheckBox(tr("Randomly rotate objects"), this)) + , m_argTrackFile(trackFile) { if (!m_instance) { @@ -92,13 +81,12 @@ console("CWD: " + QDir::currentPath()); // Load object models that can be used to build tracks. - const QString objectFilePath = QString(Config::Common::dataPath) + - QDir::separator() + QString(Config::Editor::MODEL_CONFIG_FILE_NAME); + const QString objectFilePath = QString(Config::General::dataPath) + QDir::separator() + QString(Config::Editor::MODEL_CONFIG_FILE_NAME); loadObjectModels(objectFilePath); if (!m_argTrackFile.isEmpty()) { - QTimer::singleShot(0, this, SLOT(openArgTrack())); + QTimer::singleShot(0, this, &MainWindow::openArgTrack); } else { @@ -122,13 +110,32 @@ } } +void MainWindow::updateScaleSlider(int value) +{ + m_scaleSlider->setValue(value); +} + void MainWindow::showTip() { + const auto commonTitle = tr("Save your work to correct location."); +#ifdef __unix__ + QMessageBox::information( + this, + commonTitle, + QString(tr("To make the game find your circuits, save them to %1%2%3%2") + tr(", %4%2")) + .arg(QDir::homePath()) + .arg(QDir::separator()) + .arg(Config::General::TRACK_SEARCH_PATH) + .arg(Config::General::Unix::getXdgTrackSearchPath())); +#else QMessageBox::information( - this, - tr("Save your work to correct location."), - QString(tr("To make the game find your circuits, save them to %1%2%3%2")) - .arg(QDir::homePath()).arg(QDir::separator()).arg(Config::Common::TRACK_SEARCH_PATH)); + this, + commonTitle, + QString(tr("To make the game find your circuits, save them to %1%2%3%2")) + .arg(QDir::homePath()) + .arg(QDir::separator()) + .arg(Config::General::TRACK_SEARCH_PATH)); +#endif } void MainWindow::init() @@ -138,24 +145,24 @@ QSettings settings; // Read dialog size data - settings.beginGroup(SETTINGS_GROUP); + settings.beginGroup(m_settingsGroup); resize(settings.value("size", QSize(640, 480)).toSize()); settings.endGroup(); // Try to center the window. QRect geometry(QApplication::desktop()->availableGeometry()); move(geometry.width() / 2 - width() / 2, - geometry.height() / 2 - height() / 2); + geometry.height() / 2 - height() / 2); + + m_mediator->initScene(); - // Populate menu bar with actions populateMenuBar(); - // Set scene to the view - m_editorView->setScene(m_editorScene); - m_editorView->setSizePolicy(QSizePolicy::Preferred, - QSizePolicy::Expanding); - m_editorView->setMouseTracking(true); + createWidgets(); +} +void MainWindow::createWidgets() +{ // Create a splitter QSplitter * splitter = new QSplitter(this); splitter->setOrientation(Qt::Vertical); @@ -164,7 +171,7 @@ QVBoxLayout * centralLayout = new QVBoxLayout; QHBoxLayout * viewToolBarLayout = new QHBoxLayout; m_toolBar->setOrientation(Qt::Vertical); - viewToolBarLayout->addWidget(m_editorView); + m_mediator->addViewToLayout(viewToolBarLayout); viewToolBarLayout->addWidget(m_toolBar); centralLayout->addLayout(viewToolBarLayout); @@ -172,12 +179,12 @@ populateToolBar(); // Add zoom slider to the layout - m_scaleSlider->setRange(MIN_ZOOM, MAX_ZOOM); - m_scaleSlider->setValue(INI_ZOOM); + m_scaleSlider->setRange(m_minZoom, m_maxZoom); + m_scaleSlider->setValue(m_initZoom); m_scaleSlider->setTracking(false); m_scaleSlider->setTickInterval(10); m_scaleSlider->setTickPosition(QSlider::TicksBelow); - connect(m_scaleSlider, SIGNAL(valueChanged(int)), this, SLOT(updateScale(int))); + connect(m_scaleSlider, &QSlider::valueChanged, this, &MainWindow::updateScale); QHBoxLayout * sliderLayout = new QHBoxLayout; sliderLayout->addWidget(new QLabel(tr("Scale:"))); sliderLayout->addWidget(m_scaleSlider); @@ -207,15 +214,14 @@ setCentralWidget(splitter); QList sizes; - sizes << height() - CONSOLE_HEIGHT << CONSOLE_HEIGHT; + sizes << height() - m_consoleHeight << m_consoleHeight; splitter->setSizes(sizes); } void MainWindow::setTitle(QString openFileName) { setWindowTitle( - QString(Config::Editor::EDITOR_NAME) + " " + Config::Editor::EDITOR_VERSION + " - " + - openFileName); + QString(Config::Editor::EDITOR_NAME) + " " + Config::Editor::EDITOR_VERSION + " - " + openFileName); } bool MainWindow::randomlyRotateObjects() const @@ -232,8 +238,7 @@ } else { - const QString msg = tr("ERROR!!: Cannot load objects from '") + - objectFilePath + tr("'"); + const QString msg = tr("ERROR!!: Cannot load objects from '") + objectFilePath + tr("'"); console(msg); return false; } @@ -244,15 +249,16 @@ // Loop through all object models loaded // by the object loader. QVector categories; - categories << "tile" << "free"; + categories << "tile" + << "free"; for (QString category : categories) { ObjectModelLoader::ObjectDataVector objects = - m_objectModelLoader->getObjectModelsByCategory(category); - for (const ObjectModel model : objects) + m_objectModelLoader->getObjectModelsByCategory(category); + for (const ObjectModel & model : objects) { // Create the action. - QAction * p = new QAction(QIcon(model.pixmap), model.role, this); + auto p = new QAction(QIcon(model.pixmap), model.role, this); // Set model role as the data. p->setData(QVariant(model.role)); @@ -268,21 +274,6 @@ return MainWindow::m_instance; } -EditorView & MainWindow::editorView() const -{ - return *m_editorView; -} - -EditorScene & MainWindow::editorScene() const -{ - return *m_editorScene; -} - -EditorData & MainWindow::editorData() const -{ - return *m_editorData; -} - ObjectModelLoader & MainWindow::objectModelLoader() const { return *m_objectModelLoader; @@ -295,11 +286,7 @@ void MainWindow::updateScale(int value) { - qreal scale = static_cast(value) / 100; - - QTransform transform; - transform.scale(scale, scale); - m_editorView->setTransform(transform); + m_mediator->setScale(value); console(QString(tr("Scale set to %1%")).arg(value)); } @@ -310,7 +297,7 @@ QSettings settings; // Save window size - settings.beginGroup(SETTINGS_GROUP); + settings.beginGroup(m_settingsGroup); settings.setValue("size", size()); settings.endGroup(); @@ -326,33 +313,33 @@ QAction * newAct = new QAction(tr("&New..."), this); newAct->setShortcut(QKeySequence("Ctrl+N")); fileMenu->addAction(newAct); - connect(newAct, SIGNAL(triggered()), this, SLOT(initializeNewTrack())); + connect(newAct, &QAction::triggered, this, &MainWindow::initializeNewTrack); // Add "open"-action QAction * openAct = new QAction(tr("&Open..."), this); openAct->setShortcut(QKeySequence("Ctrl+O")); fileMenu->addAction(openAct); - connect(openAct, SIGNAL(triggered()), this, SLOT(openTrack())); + connect(openAct, &QAction::triggered, this, &MainWindow::openTrack); // Add "save"-action m_saveAction = new QAction(tr("&Save"), this); m_saveAction->setShortcut(QKeySequence("Ctrl+S")); fileMenu->addAction(m_saveAction); - connect(m_saveAction, SIGNAL(triggered()), this, SLOT(saveTrack())); + connect(m_saveAction, &QAction::triggered, this, &MainWindow::saveTrack); m_saveAction->setEnabled(false); // Add "save as"-action m_saveAsAction = new QAction(tr("&Save as..."), this); m_saveAsAction->setShortcut(QKeySequence("Ctrl+Shift+S")); fileMenu->addAction(m_saveAsAction); - connect(m_saveAsAction, SIGNAL(triggered()), this, SLOT(saveAsTrack())); + connect(m_saveAsAction, &QAction::triggered, this, &MainWindow::saveAsTrack); m_saveAsAction->setEnabled(false); // Add "quit"-action QAction * quitAct = new QAction(tr("&Quit"), this); quitAct->setShortcut(QKeySequence("Ctrl+W")); fileMenu->addAction(quitAct); - connect(quitAct, SIGNAL(triggered()), this, SLOT(close())); + connect(quitAct, &QAction::triggered, this, &MainWindow::close); // Create "edit"-menu QMenu * editMenu = menuBar()->addMenu(tr("&Edit")); @@ -361,13 +348,13 @@ m_undoAction = new QAction(tr("Undo"), this); m_undoAction->setShortcut(QKeySequence("Ctrl+Z")); editMenu->addAction(m_undoAction); - connect(m_undoAction, &QAction::triggered, [this](){ - m_editorData->undo(); + connect(m_undoAction, &QAction::triggered, [this]() { + m_mediator->undo(); setupTrackAfterUndoOrRedo(); - m_undoAction->setEnabled(m_editorData->isUndoable()); - m_redoAction->setEnabled(m_editorData->isRedoable()); + m_undoAction->setEnabled(m_mediator->isUndoable()); + m_redoAction->setEnabled(m_mediator->isRedoable()); }); m_undoAction->setEnabled(false); @@ -375,32 +362,20 @@ m_redoAction = new QAction(tr("Redo"), this); m_redoAction->setShortcut(QKeySequence("Ctrl+Shift+Z")); editMenu->addAction(m_redoAction); - connect(m_redoAction, &QAction::triggered, [this](){ - m_editorData->redo(); + connect(m_redoAction, &QAction::triggered, [this]() { + m_mediator->redo(); setupTrackAfterUndoOrRedo(); - m_undoAction->setEnabled(m_editorData->isUndoable()); - m_redoAction->setEnabled(m_editorData->isRedoable()); + m_undoAction->setEnabled(m_mediator->isUndoable()); + m_redoAction->setEnabled(m_mediator->isRedoable()); }); m_redoAction->setEnabled(false); - // Add "enlarge hor size"-action - m_enlargeHorSize = new QAction(tr("Enlarge hor size"), this); - editMenu->addAction(m_enlargeHorSize); - connect(m_enlargeHorSize, SIGNAL(triggered()), this, SLOT(enlargeHorSize())); - m_enlargeHorSize->setEnabled(false); - - // Add "enlarge ver size"-action - m_enlargeVerSize = new QAction(tr("Enlarge ver size"), this); - editMenu->addAction(m_enlargeVerSize); - connect(m_enlargeVerSize, SIGNAL(triggered()), this, SLOT(enlargeVerSize())); - m_enlargeVerSize->setEnabled(false); - // Add "Set track properties"-action m_setTrackPropertiesAction = new QAction(tr("&Set properties.."), this); editMenu->addAction(m_setTrackPropertiesAction); - connect(m_setTrackPropertiesAction, SIGNAL(triggered()), this, SLOT(setTrackProperties())); + connect(m_setTrackPropertiesAction, &QAction::triggered, this, &MainWindow::setTrackProperties); m_setTrackPropertiesAction->setEnabled(false); // Create "route"-menu @@ -409,13 +384,13 @@ // Add "clear"-action m_clearRouteAction = new QAction(tr("Clear &route"), this); routeMenu->addAction(m_clearRouteAction); - connect(m_clearRouteAction, SIGNAL(triggered()), this, SLOT(clearRoute())); + connect(m_clearRouteAction, &QAction::triggered, this, &MainWindow::clearRoute); m_clearRouteAction->setEnabled(false); // Add "set order"-action m_setRouteAction = new QAction(tr("&Set route.."), this); routeMenu->addAction(m_setRouteAction); - connect(m_setRouteAction, SIGNAL(triggered()), this, SLOT(beginSetRoute())); + connect(m_setRouteAction, &QAction::triggered, this, &MainWindow::beginSetRoute); m_setRouteAction->setEnabled(false); // Create "help"-menu @@ -424,12 +399,12 @@ // Add "about"-action QAction * aboutAct = new QAction(tr("&About"), this); helpMenu->addAction(aboutAct); - connect(aboutAct, SIGNAL(triggered()), this, SLOT(showAboutDlg())); + connect(aboutAct, &QAction::triggered, this, &MainWindow::showAboutDlg); // Add "about Qt"-action QAction * aboutQtAct = new QAction(tr("About &Qt"), this); helpMenu->addAction(aboutQtAct); - connect(aboutQtAct, SIGNAL(triggered()), this, SLOT(showAboutQtDlg())); + connect(aboutQtAct, &QAction::triggered, this, &MainWindow::showAboutQtDlg); } void MainWindow::populateToolBar() @@ -441,7 +416,7 @@ // Add "erase"-action p = new QAction( - QIcon(QPixmap(Config::Editor::ERASE_ICON_PATH)), tr("Erase object"), this); + QIcon(QPixmap(Config::Editor::ERASE_ICON_PATH)), tr("Erase object"), this); p->setData(QVariant(QString("erase"))); m_toolBar->addAction(p); @@ -450,8 +425,7 @@ p->setData(QVariant(QString("clear"))); m_toolBar->addAction(p); - connect(m_toolBar, SIGNAL(actionTriggered(QAction*)), - this, SLOT(handleToolBarActionClick(QAction*))); + connect(m_toolBar, &QToolBar::actionTriggered, this, &MainWindow::handleToolBarActionClick); m_toolBar->setEnabled(false); } @@ -460,8 +434,6 @@ { if (action != m_currentToolBarAction) { - assert(m_editorData); - m_currentToolBarAction = action; // Select-action @@ -474,30 +446,32 @@ { QApplication::restoreOverrideCursor(); QApplication::setOverrideCursor(QCursor(action->icon().pixmap(32, 32))); - m_editorData->setMode(EditorData::EditorMode::EraseObject); + m_mediator->setMode(EditorMode::EraseObject); } // The user wants to clear a tile. else if (action->data() == "clear") { QApplication::restoreOverrideCursor(); QApplication::setOverrideCursor(QCursor(action->icon().pixmap(32, 32))); - m_editorData->setMode(EditorData::EditorMode::SetTileType); + m_mediator->setMode(EditorMode::SetTileType); } // The user wants to set a tile type or clear it. else if (m_objectModelLoader->getCategoryByRole( - action->data().toString()) == "tile") + action->data().toString()) + == "tile") { QApplication::restoreOverrideCursor(); QApplication::setOverrideCursor(QCursor(action->icon().pixmap(32, 32))); - m_editorData->setMode(EditorData::EditorMode::SetTileType); + m_mediator->setMode(EditorMode::SetTileType); } // The user wants to add an object to the scene. else if (m_objectModelLoader->getCategoryByRole( - action->data().toString()) == "free") + action->data().toString()) + == "free") { QApplication::restoreOverrideCursor(); QApplication::setOverrideCursor(QCursor(QPixmap(":/cursor2.png"))); - m_editorData->setMode(EditorData::EditorMode::AddObject); + m_mediator->setMode(EditorMode::AddObject); } } else @@ -514,13 +488,14 @@ // Load recent path QSettings settings; - settings.beginGroup(SETTINGS_GROUP); + settings.beginGroup(m_settingsGroup); QString path = settings.value("recentPath", - QStandardPaths::writableLocation(QStandardPaths::HomeLocation)).toString(); + QStandardPaths::writableLocation(QStandardPaths::HomeLocation)) + .toString(); settings.endGroup(); const QString fileName = QFileDialog::getOpenFileName( - this, tr("Open a track"), path, tr("Track Files (*.trk)")); + this, tr("Open a track"), path, tr("Track Files (*.trk)")); if (!fileName.isEmpty()) { doOpenTrack(fileName); @@ -539,9 +514,8 @@ void MainWindow::clearRoute() { - assert(m_editorData); - m_editorData->saveUndoPoint(); - m_editorData->clearRoute(); + m_mediator->clearRoute(); + m_clearRouteAction->setEnabled(false); } @@ -553,13 +527,11 @@ return false; } - assert(m_editorData); - // Undo stack will be cleared. m_undoAction->setEnabled(false); m_redoAction->setEnabled(false); - if (m_editorData->loadTrackData(fileName)) + if (m_mediator->openTrack(fileName)) { console(QString(tr("Track '%1' opened.").arg(fileName))); @@ -568,7 +540,7 @@ // Save recent path QSettings settings; - settings.beginGroup(SETTINGS_GROUP); + settings.beginGroup(m_settingsGroup); settings.setValue("recentPath", fileName); settings.endGroup(); @@ -576,50 +548,99 @@ setActionStatesOnNewTrack(); - delete m_editorScene; - m_editorScene = new EditorScene; - - m_editorView->setScene(m_editorScene); - m_editorView->updateSceneRect(); - - m_editorData->addTilesToScene(); - m_editorData->addObjectsToScene(); - m_editorData->addExistingRouteToScene(); - fitScale(); m_saved = true; - m_clearRouteAction->setEnabled(m_editorData->trackData()->route().numNodes()); + m_clearRouteAction->setEnabled(m_mediator->routeHasNodes()); return true; } + + console(QString(tr("Failed to open track '")) + fileName + "'."); + return false; +} + +void MainWindow::beginSetRoute() +{ + if (m_mediator->beginSetRoute()) + { + console(tr("Set route: begin.")); + QMessageBox::information( + this, + tr("Set route, checkpoints and driving lines."), + tr("Setting the route defines checkpoints for the cars so\n" + "that no shortcuts can be taken. It also defines\n" + "driving lines for the computer players.\n\n" + "Click on the tiles one by one and make a closed loop\n" + "with the target nodes. You can adjust the nodes afterwads.\n" + "Start from the first tile after the finish line tile\n" + "to make the lap detection and timing work correctly.\n" + "Click on the first node again to finish.")); + } else { - console(QString(tr("Failed to open track '")) + fileName + "'."); - return false; + console(tr("Set route: not a valid track.")); + QMessageBox::critical(this, tr("Set route"), tr("Invalid track. Route cannot be set.")); } +} - return false; +void MainWindow::clearEditMode() +{ + m_mediator->clearEditMode(); } -void MainWindow::setupTrackAfterUndoOrRedo() +void MainWindow::console(QString text) { - m_saveAction->setEnabled(true); + QDateTime date = QDateTime::currentDateTime(); + m_console->append(QString("(") + date.toString("hh:mm:ss") + "): " + text); +} - setActionStatesOnNewTrack(); +void MainWindow::enableUndo(bool enable) +{ + m_undoAction->setEnabled(enable); +} - delete m_editorScene; - m_editorScene = new EditorScene; +void MainWindow::endSetRoute() +{ + m_mediator->endSetRoute(); - m_editorView->setScene(m_editorScene); - m_editorView->updateSceneRect(); + m_clearRouteAction->setEnabled(m_mediator->routeHasNodes()); - m_editorData->addTilesToScene(); - m_editorData->addObjectsToScene(); - m_editorData->addExistingRouteToScene(); + console(tr("Set route: route finished.")); +} - m_clearRouteAction->setEnabled(m_editorData->trackData()->route().numNodes()); +void MainWindow::fitScale() +{ + m_scaleSlider->setValue(m_mediator->fitScale()); +} + +void MainWindow::initializeNewTrack() +{ + const auto trackData = m_mediator->initializeNewTrack(); + if (std::get(trackData)) + { + // Undo stack has been cleared. + m_undoAction->setEnabled(false); + m_redoAction->setEnabled(false); + + fitScale(); + + setActionStatesOnNewTrack(); + + setTitle(tr("New file")); + + m_clearRouteAction->setEnabled(false); + + m_saved = false; + + console(QString(tr("A new track '%1' created. Columns: %2, Rows: %3.")) + .arg(std::get<1>(trackData)) + .arg(std::get<2>(trackData)) + .arg(std::get<3>(trackData))); + } + + QApplication::restoreOverrideCursor(); } void MainWindow::saveTrack() @@ -632,18 +653,15 @@ } else { - assert(m_editorData); - if (m_editorData->saveTrackData()) + if (m_mediator->saveTrackData()) { - console(QString( - tr("Track '")) + m_editorData->trackData()->fileName() + tr("' saved.")); - setTitle(m_editorData->trackData()->fileName()); + console(QString(tr("Track '")) + m_mediator->currentFileName() + tr("' saved.")); + setTitle(m_mediator->currentFileName()); m_saved = true; } else { - console(QString( - tr("Failed to save track '")) + m_editorData->trackData()->fileName() + "'."); + console(QString(tr("Failed to save track '")) + m_mediator->currentFileName() + "'."); } } @@ -655,9 +673,9 @@ QApplication::setOverrideCursor(QCursor(Qt::ArrowCursor)); QString fileName = QFileDialog::getSaveFileName(this, - tr("Save a track"), - QStandardPaths::writableLocation(QStandardPaths::HomeLocation), - tr("Track Files (*.trk)")); + tr("Save a track"), + QStandardPaths::writableLocation(QStandardPaths::HomeLocation), + tr("Track Files (*.trk)")); const QString trackFileExtension(".trk"); if (!fileName.endsWith(trackFileExtension)) @@ -665,8 +683,7 @@ fileName += trackFileExtension; } - assert(m_editorData); - if (m_editorData->saveTrackDataAs(fileName)) + if (m_mediator->saveTrackDataAs(fileName)) { console(QString(tr("Track '")) + fileName + tr("' saved.")); setTitle(fileName); @@ -680,51 +697,15 @@ QApplication::restoreOverrideCursor(); } -void MainWindow::initializeNewTrack() +void MainWindow::setupTrackAfterUndoOrRedo() { - QApplication::setOverrideCursor(QCursor(Qt::ArrowCursor)); - - // Show a dialog asking some questions about the track - NewTrackDialog dialog(this); - if (dialog.exec() == QDialog::Accepted) - { - const unsigned int cols = dialog.cols(); - const unsigned int rows = dialog.rows(); - - assert(m_editorData); - - m_editorData->setTrackData(TrackDataPtr(new TrackData(dialog.name(), dialog.isUserTrack(), cols, rows))); - - delete m_editorScene; - m_editorScene = new EditorScene; - - m_editorView->setScene(m_editorScene); - m_editorView->updateSceneRect(); - - // Undo stack has been cleared. - m_undoAction->setEnabled(false); - m_redoAction->setEnabled(false); - - m_editorData->addTilesToScene(); - m_editorData->addObjectsToScene(); - - fitScale(); - - setActionStatesOnNewTrack(); - - console(QString(tr("A new track '%1' created. Columns: %2, Rows: %3.")) - .arg(m_editorData->trackData()->name()) - .arg(m_editorData->trackData()->map().cols()) - .arg(m_editorData->trackData()->map().rows())); - - setTitle(tr("New file")); + m_saveAction->setEnabled(true); - m_clearRouteAction->setEnabled(false); + setActionStatesOnNewTrack(); - m_saved = false; - } + m_mediator->setupTrackAfterUndoOrRedo(); - QApplication::restoreOverrideCursor(); + m_clearRouteAction->setEnabled(m_mediator->routeHasNodes()); } void MainWindow::setActionStatesOnNewTrack() @@ -732,114 +713,16 @@ m_saveAction->setEnabled(true); m_saveAsAction->setEnabled(true); m_toolBar->setEnabled(true); - m_enlargeHorSize->setEnabled(true); - m_enlargeVerSize->setEnabled(true); m_setRouteAction->setEnabled(true); m_setTrackPropertiesAction->setEnabled(true); } void MainWindow::setTrackProperties() { - // Show a dialog to set some properties e.g. lap count. - assert(m_editorData); - TrackPropertiesDialog dialog(m_editorData->trackData()->name(), m_editorData->trackData()->index(), m_editorData->trackData()->isUserTrack(), this); - if (dialog.exec() == QDialog::Accepted) - { - m_editorData->trackData()->setName(dialog.name()); - m_editorData->trackData()->setIndex(dialog.index()); - m_editorData->trackData()->setUserTrack(dialog.isUserTrack()); - console(QString(tr("Track properties updated."))); - } -} - -void MainWindow::enlargeHorSize() -{ - assert(m_editorData); - if (m_editorData->trackData()) + if (m_mediator->setTrackProperties()) { - m_editorData->trackData()->enlargeHorSize(); - m_editorData->addTilesToScene(); - - m_editorView->updateSceneRect(); - } -} - -void MainWindow::enlargeVerSize() -{ - assert(m_editorData); - if (m_editorData->trackData()) - { - m_editorData->trackData()->enlargeVerSize(); - m_editorData->addTilesToScene(); - - m_editorView->updateSceneRect(); - } -} - -void MainWindow::enableUndo(bool enable) -{ - m_undoAction->setEnabled(enable); -} - -void MainWindow::beginSetRoute() -{ - QApplication::restoreOverrideCursor(); - - assert(m_editorData); - - m_editorData->saveUndoPoint(); - - if (m_editorData->canRouteBeSet()) - { - console(tr("Set route: begin.")); - QMessageBox::information( - this, - tr("Set route, checkpoints and driving lines."), - tr("Setting the route defines checkpoints for the cars so\n" - "that no shortcuts can be taken. It also defines\n" - "driving lines for the computer players.\n\n" - "Click on the tiles one by one and make a closed loop\n" - "with the target nodes. You can adjust the nodes afterwads.\n" - "Start from the first tile after the finish line tile\n" - "to make the lap detection and timing work correctly.\n" - "Click on the first node again to finish.")); - m_editorData->beginSetRoute(); - } - else - { - QMessageBox::critical(this, tr("Set route"), tr("Invalid track. Route cannot be set.")); - console(tr("Set route: not a valid track.")); + console(QString(tr("Track properties updated."))); } } -void MainWindow::endSetRoute() -{ - assert(m_editorData); - m_editorData->endSetRoute(); - m_clearRouteAction->setEnabled(m_editorData->trackData()->route().numNodes()); - console(tr("Set route: route finished.")); -} - -void MainWindow::console(QString text) -{ - QDateTime date = QDateTime::currentDateTime(); - m_console->append(QString("(") + date.toString("hh:mm:ss") + "): " + text); -} - -void MainWindow::clearEditMode() -{ - QApplication::restoreOverrideCursor(); - m_editorData->setMode(EditorData::EditorMode::None); -} - -void MainWindow::fitScale() -{ - m_editorView->centerOn(m_editorView->sceneRect().center()); - m_scaleSlider->setValue(m_editorView->viewport()->height() * 100 / m_editorView->sceneRect().height()); -} - -MainWindow::~MainWindow() -{ - delete m_editorData; - delete m_objectModelLoader; -} +MainWindow::~MainWindow() = default; diff -Nru dustrac-2.0.1/src/editor/mainwindow.hpp dustrac-2.0.5/src/editor/mainwindow.hpp --- dustrac-2.0.1/src/editor/mainwindow.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/mainwindow.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,20 +16,21 @@ #ifndef MAINWINDOW_HPP #define MAINWINDOW_HPP -#include #include +#include #include +#include + class AboutDlg; -class EditorData; -class EditorView; -class EditorScene; class ObjectModelLoader; class QAction; class QCheckBox; class QSlider; class QTextEdit; class QToolBar; + +class Mediator; class TrackData; /*! \class MainWindow @@ -40,7 +41,6 @@ Q_OBJECT public: - //! Constructor. //! The constructor tries to load object models from //! Config::DATA_PATH/objects.conf. @@ -48,7 +48,7 @@ explicit MainWindow(QString trackFile = ""); //! Destructor - ~MainWindow(); + ~MainWindow() override; //! Return the singleton MainWindow. static MainWindow * instance(); @@ -59,15 +59,6 @@ //! Print text to the console. void console(QString text); - //! Get reference to the view. - EditorView & editorView() const; - - //! Get reference to the scene. - EditorScene & editorScene() const; - - //! Get reference to the data. - EditorData & editorData() const; - //! Get reference to the object loaded. ObjectModelLoader & objectModelLoader() const; @@ -89,8 +80,9 @@ void setVisible(bool visible) override; -protected: + void updateScaleSlider(int value); +protected: void closeEvent(QCloseEvent * event) override; private slots: @@ -99,10 +91,6 @@ bool doOpenTrack(QString fileName); - void enlargeHorSize(); - - void enlargeVerSize(); - void handleToolBarActionClick(QAction * action); void initializeNewTrack(); @@ -128,11 +116,12 @@ void updateScale(int value); private: - void addObjectsToToolBar(); void clearEditMode(); + void createWidgets(); + void fitScale(); void init(); @@ -145,15 +134,11 @@ void setActionStatesOnNewTrack(); - ObjectModelLoader * m_objectModelLoader; - - AboutDlg * m_aboutDlg; - - EditorData * m_editorData; + std::unique_ptr m_objectModelLoader; - EditorScene * m_editorScene; + std::unique_ptr m_mediator; - EditorView * m_editorView; + AboutDlg * m_aboutDlg; QTextEdit * m_console; @@ -167,10 +152,6 @@ QAction * m_redoAction = nullptr; - QAction * m_enlargeHorSize = nullptr; - - QAction * m_enlargeVerSize = nullptr; - QAction * m_clearRouteAction = nullptr; QAction * m_setRouteAction = nullptr; @@ -187,8 +168,17 @@ bool m_saved = false; + const char * m_settingsGroup = "MainWindow"; + + const unsigned int m_minZoom = 0; + + const unsigned int m_maxZoom = 200; + + const unsigned int m_initZoom = 100; + + const int m_consoleHeight = 64; + static MainWindow * m_instance; }; #endif // MAINWINDOW_HPP - diff -Nru dustrac-2.0.1/src/editor/map.cpp dustrac-2.0.5/src/editor/map.cpp --- dustrac-2.0.1/src/editor/map.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/map.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -21,14 +21,14 @@ #include -Map::Map(unsigned int cols, unsigned int rows) - : MapBase(cols, rows) +Map::Map(size_t cols, size_t rows) + : MapBase(cols, rows) { createEmptyTiles(); } Map::Map(const Map & other) - : MapBase(other.cols(), other.rows()) + : MapBase(other.cols(), other.rows()) { copyTiles(other); } @@ -36,12 +36,11 @@ void Map::copyTiles(const Map & other) { // Create tiles and set coordinates. - for (unsigned int j = 0; j < rows(); j++) + for (size_t j = 0; j < rows(); j++) { - for (unsigned int i = 0; i < cols(); i++) + for (size_t i = 0; i < cols(); i++) { - auto newTile = new TrackTile(*std::dynamic_pointer_cast(other.getTile(i, j))); - setTile(i, j, TrackTileBasePtr(newTile)); + setTile(i, j, std::make_shared(*std::dynamic_pointer_cast(other.getTile(i, j)))); } } } @@ -49,70 +48,70 @@ void Map::createEmptyTiles() { // Create tiles and set coordinates. - for (unsigned int j = 0; j < rows(); j++) + for (size_t j = 0; j < rows(); j++) { - for (unsigned int i = 0; i < cols(); i++) + for (size_t i = 0; i < cols(); i++) { if (!getTile(i, j)) { - auto newTile = new TrackTile( - QPointF(TrackTile::TILE_W / 2 + i * TrackTile::TILE_W, - TrackTile::TILE_H / 2 + j * TrackTile::TILE_H), - QPoint(i, j)); - setTile(i, j, TrackTileBasePtr(newTile)); + const auto newTile = std::make_shared( + QPointF(TrackTile::width() / 2 + i * TrackTile::width(), + TrackTile::height() / 2 + j * TrackTile::height()), + QPoint(static_cast(i), static_cast(j))); + setTile(i, j, newTile); } else { getTile(i, j)->setLocation( - QPointF( - TrackTile::TILE_W / 2 + i * TrackTile::TILE_W, - TrackTile::TILE_H / 2 + j * TrackTile::TILE_H)); - getTile(i, j)->setMatrixLocation(QPoint(i, j)); + QPointF( + TrackTile::width() / 2 + i * TrackTile::width(), + TrackTile::height() / 2 + j * TrackTile::height())); + getTile(i, j)->setMatrixLocation(QPoint(static_cast(i), static_cast(j))); } } } } -void Map::moveTilesAfterColumnDeletion(unsigned int at) +void Map::moveTilesAfterColumnDeletion(size_t at) { - for (unsigned int j = 0; j < rows(); j++) + for (size_t j = 0; j < rows(); j++) { - for (unsigned int i = at + 1; i < cols(); i++) + for (size_t i = at + 1; i < cols(); i++) { const QPointF location(getTile(i, j)->location()); getTile(i, j)->setLocation( - QPointF( - location.x() - TrackTile::TILE_W, - location.y())); - getTile(i, j)->setMatrixLocation(QPoint(i - 1, j)); + QPointF( + location.x() - TrackTile::width(), + location.y())); + getTile(i, j)->setMatrixLocation(QPoint(static_cast(i) - 1, static_cast(j))); } } } -void Map::moveTilesAfterRowDeletion(unsigned int at) +void Map::moveTilesAfterRowDeletion(size_t at) { - for (unsigned int j = at + 1; j < rows(); j++) + for (size_t j = at + 1; j < rows(); j++) { - for (unsigned int i = 0; i < cols(); i++) + for (size_t i = 0; i < cols(); i++) { const QPointF location(getTile(i, j)->location()); getTile(i, j)->setLocation( - QPointF( - location.x(), - location.y() - TrackTile::TILE_H)); - getTile(i, j)->setMatrixLocation(QPoint(i, j - 1)); + QPointF( + location.x(), + location.y() - TrackTile::height())); + getTile(i, j)->setMatrixLocation(QPoint(static_cast(i), static_cast(j) - 1)); } } } -void Map::resize(unsigned int newCols, unsigned int newRows) +void Map::resize(size_t newCols, size_t newRows) { MapBase::resize(newCols, newRows); createEmptyTiles(); } -unsigned int Map::insertColumn(unsigned int at, InsertDirection insertDirection) +size_t Map::insertColumn(size_t at, InsertDirection insertDirection) { at = MapBase::insertColumn(at, insertDirection); @@ -121,13 +120,13 @@ return at; } -std::vector Map::deleteColumn(unsigned int at) +std::vector Map::deleteColumn(size_t at) { moveTilesAfterColumnDeletion(at); return MapBase::deleteColumn(at); } -unsigned int Map::insertRow(unsigned int at, InsertDirection insertDirection) +size_t Map::insertRow(size_t at, InsertDirection insertDirection) { at = MapBase::insertRow(at, insertDirection); @@ -136,7 +135,7 @@ return at; } -std::vector Map::deleteRow(unsigned int at) +std::vector Map::deleteRow(size_t at) { moveTilesAfterRowDeletion(at); return MapBase::deleteRow(at); diff -Nru dustrac-2.0.1/src/editor/map.hpp dustrac-2.0.5/src/editor/map.hpp --- dustrac-2.0.1/src/editor/map.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/map.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -22,31 +22,29 @@ class Map : public MapBase { public: - //! Constuctor. - Map(unsigned int cols, unsigned int rows); + Map(size_t cols, size_t rows); //! Copy constructor. Map(const Map & other); - void resize(unsigned int newCols, unsigned int newRows) override; + void resize(size_t newCols, size_t newRows) override; - unsigned int insertColumn(unsigned int at, InsertDirection insertDirection) override; + size_t insertColumn(size_t at, InsertDirection insertDirection) override; - std::vector deleteColumn(unsigned int at) override; + std::vector deleteColumn(size_t at) override; - unsigned int insertRow(unsigned int at, InsertDirection insertDirection) override; + size_t insertRow(size_t at, InsertDirection insertDirection) override; - std::vector deleteRow(unsigned int at) override; + std::vector deleteRow(size_t at) override; //! Destructor. - virtual ~Map(); + virtual ~Map() override; private: + void moveTilesAfterColumnDeletion(size_t at); - void moveTilesAfterColumnDeletion(unsigned int at); - - void moveTilesAfterRowDeletion(unsigned int at); + void moveTilesAfterRowDeletion(size_t at); void copyTiles(const Map & other); diff -Nru dustrac-2.0.1/src/editor/mediator.cpp dustrac-2.0.5/src/editor/mediator.cpp --- dustrac-2.0.1/src/editor/mediator.cpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/editor/mediator.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,469 @@ +// This file is part of Dust Racing 2D. +// Copyright (C) 2018 Jussi Lind +// +// Dust Racing 2D is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Dust Racing 2D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Dust Racing 2D. If not, see . + +#include "mediator.hpp" + +#include "draganddropstore.hpp" +#include "editordata.hpp" +#include "editorview.hpp" +#include "floodfill.hpp" +#include "mainwindow.hpp" +#include "newtrackdialog.hpp" +#include "object.hpp" +#include "objectfactory.hpp" +#include "trackdata.hpp" +#include "trackpropertiesdialog.hpp" +#include "tracktile.hpp" + +#include + +#include +#include +#include +#include +#include + +Mediator::Mediator(MainWindow & mainWindow) + : m_editorData(std::make_unique(*this)) + , m_editorScene(new QGraphicsScene) + , m_editorView(new EditorView(*this)) + , m_mainWindow(mainWindow) +{ + m_editorView->setParent(&mainWindow); +} + +void Mediator::addCurrentToolBarObjectToScene(QPointF clickedScenePos) +{ + if (const auto action = MainWindow::instance()->currentToolBarAction()) + { + saveUndoPoint(); + + const auto object = std::make_shared(ObjectFactory::createObject(action->data().toString())); + object->setLocation(clickedScenePos); + + if (MainWindow::instance()->randomlyRotateObjects()) + { + object->setRotation(std::rand() % 360); + } + + addObject(object); + setSelectedObject(object.get()); + } +} + +void Mediator::addItem(QGraphicsItem * item) +{ + m_editorScene->addItem(item); +} + +void Mediator::addObject(std::shared_ptr object) +{ + m_editorScene->addItem(object.get()); + m_editorData->trackData()->objects().add(object); +} + +void Mediator::addViewToLayout(QLayout * layout) +{ + layout->addWidget(m_editorView); +} + +bool Mediator::beginSetRoute() +{ + QApplication::restoreOverrideCursor(); + + assert(m_editorData); + + m_editorData->saveUndoPoint(); + + if (m_editorData->canRouteBeSet()) + { + m_editorData->beginSetRoute(); + + return true; + } + + return false; +} + +void Mediator::console(QString message) +{ + m_mainWindow.console(message); +} + +QString Mediator::currentFileName() const +{ + return m_editorData->trackData()->fileName(); +} + +QAction * Mediator::currentToolBarAction() const +{ + return m_mainWindow.currentToolBarAction(); +} + +DragAndDropStore & Mediator::dadStore() +{ + return m_editorData->dadStore(); +} + +void Mediator::deleteColumn() +{ + auto deleted = m_editorData->trackData()->deleteColumn(m_editorData->activeColumn()); + for (auto && tile : deleted) + { + m_editorData->removeTileFromScene(tile); + } +} + +void Mediator::deleteRow() +{ + auto deleted = m_editorData->trackData()->deleteRow(m_editorData->activeRow()); + for (auto && tile : deleted) + { + m_editorData->removeTileFromScene(tile); + } +} + +void Mediator::floodFill(TrackTile & tile, QAction * action, const QString & typeToFill) +{ + saveUndoPoint(); + + FloodFill::floodFill(tile, action, typeToFill, m_editorData->trackData()->map()); +} + +void Mediator::endSetRoute() +{ + setMode(EditorMode::None); +} + +void Mediator::enableUndo(bool enable) +{ + m_mainWindow.enableUndo(enable); +} + +int Mediator::fitScale() +{ + m_editorView->centerOn(m_editorView->sceneRect().center()); + return static_cast(m_editorView->viewport()->height() * 100 / m_editorView->sceneRect().height()); +} + +std::tuple Mediator::initializeNewTrack() +{ + assert(m_editorData); + + // Show a dialog asking some questions about the track + NewTrackDialog dialog(&m_mainWindow); + if (dialog.exec() == QDialog::Accepted) + { + m_editorData->setTrackData(std::make_shared(dialog.name(), dialog.isUserTrack(), dialog.cols(), dialog.rows())); + + delete m_editorScene; + m_editorScene = new QGraphicsScene; + + m_editorView->setScene(m_editorScene); + m_editorView->updateSceneRect(); + + m_editorData->addTilesToScene(); + m_editorData->addObjectsToScene(); + + return std::make_tuple(true, dialog.name(), dialog.cols(), dialog.rows()); + } + + return {}; +} + +void Mediator::insertColumnAfter() +{ + m_editorData->trackData()->insertColumn(m_editorData->activeColumn(), MapBase::InsertDirection::After); + m_editorData->addTilesToScene(); +} + +void Mediator::insertColumnBefore() +{ + m_editorData->trackData()->insertColumn(m_editorData->activeColumn(), MapBase::InsertDirection::Before); + m_editorData->addTilesToScene(); +} + +void Mediator::insertRowAfter() +{ + m_editorData->trackData()->insertRow(m_editorData->activeRow(), MapBase::InsertDirection::After); + m_editorData->addTilesToScene(); +} + +void Mediator::insertRowBefore() +{ + m_editorData->trackData()->insertRow(m_editorData->activeRow(), MapBase::InsertDirection::Before); + m_editorData->addTilesToScene(); +} + +void Mediator::initScene() +{ + m_editorView->setScene(m_editorScene); + m_editorView->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); + m_editorView->setMouseTracking(true); +} + +bool Mediator::isUndoable() const +{ + return m_editorData->isUndoable(); +} + +void Mediator::clearEditMode() +{ + QApplication::restoreOverrideCursor(); + setMode(EditorMode::None); +} + +void Mediator::clearRoute() +{ + assert(m_editorData); + + m_editorData->saveUndoPoint(); + m_editorData->clearRoute(); +} + +int Mediator::cols() +{ + if (m_editorData->trackData()) + { + return static_cast(m_editorData->trackData()->map().cols()); + } + return 0; +} + +bool Mediator::openTrack(QString fileName) +{ + assert(m_editorData); + + if (m_editorData->loadTrackData(fileName)) + { + delete m_editorScene; + m_editorScene = new QGraphicsScene; + + m_editorView->setScene(m_editorScene); + m_editorView->updateSceneRect(); + + m_editorData->addTilesToScene(); + m_editorData->addObjectsToScene(); + m_editorData->addExistingRouteToScene(); + + return true; + } + + return false; +} + +bool Mediator::isRedoable() const +{ + return m_editorData->isRedoable(); +} + +void Mediator::mouseWheelZoom(int delta) +{ + const int sensitivity = 10; + const int currentScale = m_editorData->currentScale(); + const int maxScale = 200; + + int newScale = currentScale; + + if (delta < 0) + { + if (currentScale > sensitivity) + { + newScale = currentScale - sensitivity; + } + else + { + newScale = 0; + } + } + else if (delta > 0) + { + if (currentScale + sensitivity < maxScale) + { + newScale = currentScale + sensitivity; + } + else + { + newScale = maxScale; + } + } + + if (newScale != currentScale) + { + setScale(newScale); + m_mainWindow.updateScaleSlider(newScale); + } +} + +void Mediator::pushNewTargetNodeToRoute(QPointF pos) +{ + m_editorData->pushNewTargetNodeToRoute(pos); +} + +void Mediator::redo() +{ + m_editorData->redo(); +} + +void Mediator::removeItem(QGraphicsItem * item) +{ + m_editorScene->removeItem(item); +} + +void Mediator::removeObject(Object & object) +{ + m_editorScene->removeItem(&object); + m_editorData->trackData()->objects().remove(object); +} + +bool Mediator::routeHasNodes() const +{ + return m_editorData->trackData()->route().numNodes(); +} + +void Mediator::saveUndoPoint() +{ + m_editorData->saveUndoPoint(); +} + +bool Mediator::saveTrackData() +{ + return m_editorData->saveTrackData(); +} + +bool Mediator::saveTrackDataAs(QString fileName) +{ + return m_editorData->saveTrackDataAs(fileName); +} + +void Mediator::setMode(EditorMode mode) +{ + m_mode = mode; +} + +void Mediator::setSelectedObject(Object * object) +{ + m_editorData->setSelectedObject(object); +} + +Object * Mediator::selectedObject() const +{ + return m_editorData->selectedObject(); +} + +void Mediator::setSelectedTargetNode(TargetNode * tnode) +{ + m_editorData->setSelectedTargetNode(tnode); +} + +TargetNode * Mediator::selectedTargetNode() const +{ + return m_editorData->selectedTargetNode(); +} + +void Mediator::setScale(int value) +{ + const qreal scale = static_cast(value) / 100; + QTransform transform; + transform.scale(scale, scale); + m_editorView->setTransform(transform); + m_editorData->setCurrentScale(value); +} + +EditorMode Mediator::mode() const +{ + return m_mode; +} + +int Mediator::rows() +{ + if (m_editorData->trackData()) + { + return static_cast(m_editorData->trackData()->map().rows()); + } + return 0; +} + +bool Mediator::setTrackProperties() +{ + assert(m_editorData); + + // Show a dialog to set some properties e.g. lap count. + TrackPropertiesDialog dialog( + m_editorData->trackData()->name(), m_editorData->trackData()->index(), m_editorData->trackData()->isUserTrack(), &m_mainWindow); + if (dialog.exec() == QDialog::Accepted) + { + m_editorData->trackData()->setName(dialog.name()); + m_editorData->trackData()->setIndex(dialog.index()); + m_editorData->trackData()->setUserTrack(dialog.isUserTrack()); + return true; + } + + return false; +} + +void Mediator::showStatusBarMessage(QString message) +{ + m_mainWindow.statusBar()->showMessage(message); +} + +void Mediator::setupTrackAfterUndoOrRedo() +{ + delete m_editorScene; + m_editorScene = new QGraphicsScene; + + m_editorView->setScene(m_editorScene); + m_editorView->updateSceneRect(); + + m_editorData->addTilesToScene(); + m_editorData->addObjectsToScene(); + m_editorData->addExistingRouteToScene(); +} + +void Mediator::undo() +{ + m_editorData->undo(); +} + +void Mediator::updateCoordinates(QPointF mappedPos) +{ + if (m_editorData->trackData()) + { + const int maxCols = static_cast(m_editorData->trackData()->map().cols()); + int column = static_cast(mappedPos.x() / TrackTile::width()); + column = column >= maxCols ? maxCols - 1 : column; + column = column < 0 ? 0 : column; + + const int maxRows = static_cast(m_editorData->trackData()->map().rows()); + int row = static_cast(mappedPos.y() / TrackTile::height()); + row = row >= maxRows ? maxRows - 1 : row; + row = row < 0 ? 0 : row; + + m_editorData->setActiveRow(static_cast(row)); + m_editorData->setActiveColumn(static_cast(column)); + + QString coordinates("X: %1 Y: %2 I: %3 J: %4"); + coordinates = coordinates.arg(mappedPos.x()).arg(mappedPos.y()).arg(column).arg(row); + + showStatusBarMessage(coordinates); + } +} + +void Mediator::updateView() +{ + m_editorView->update(); +} + +Mediator::~Mediator() = default; diff -Nru dustrac-2.0.1/src/editor/mediator.hpp dustrac-2.0.5/src/editor/mediator.hpp --- dustrac-2.0.1/src/editor/mediator.hpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/editor/mediator.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,158 @@ +// This file is part of Dust Racing 2D. +// Copyright (C) 2018 Jussi Lind +// +// Dust Racing 2D is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Dust Racing 2D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Dust Racing 2D. If not, see . + +#ifndef MEDIATOR_HPP +#define MEDIATOR_HPP + +#include + +#include "editormode.hpp" +#include "targetnode.hpp" + +#include +#include + +class DragAndDropStore; +class EditorData; +class EditorView; +class MainWindow; +class TrackTile; +class Object; +class QAction; +class QGraphicsScene; +class QLayout; + +/*! Acts as a communication channel between MainWindow and editor components: + * + * - MainWindow <-> Mediator <-> QGraphicsScene / EditorView / EditorData + * - EditorView <-> Mediator <-> EditorData + */ +class Mediator +{ +public: + explicit Mediator(MainWindow & mainWindow); + + ~Mediator(); + + void addCurrentToolBarObjectToScene(QPointF clickedScenePos); + + void addItem(QGraphicsItem * item); + + void addObject(std::shared_ptr object); + + void addViewToLayout(QLayout * layout); + + bool beginSetRoute(); + + void clearEditMode(); + + void clearRoute(); + + int cols(); + + void console(QString message); + + QString currentFileName() const; + + QAction * currentToolBarAction() const; + + DragAndDropStore & dadStore(); + + void deleteColumn(); + + void deleteRow(); + + void endSetRoute(); + + void enableUndo(bool enable); + + void floodFill(TrackTile & tile, QAction * action, const QString & typeToFill); + + int fitScale(); + + void initScene(); + + std::tuple initializeNewTrack(); + + void insertColumnAfter(); + + void insertColumnBefore(); + + void insertRowAfter(); + + void insertRowBefore(); + + bool isUndoable() const; + + bool isRedoable() const; + + void mouseWheelZoom(int delta); + + bool openTrack(QString fileName); + + void pushNewTargetNodeToRoute(QPointF pos); + + void redo(); + + void removeItem(QGraphicsItem * item); + + void removeObject(Object & object); + + bool routeHasNodes() const; + + int rows(); + + void saveUndoPoint(); + + bool saveTrackData(); + + bool saveTrackDataAs(QString fileName); + + void setScale(int value); + + void setMode(EditorMode newMode); + EditorMode mode() const; + + void setSelectedObject(Object * object); + Object * selectedObject() const; + + void setSelectedTargetNode(TargetNode * tnode); + TargetNode * selectedTargetNode() const; + + bool setTrackProperties(); + + void showStatusBarMessage(QString message); + + void setupTrackAfterUndoOrRedo(); + + void undo(); + + void updateCoordinates(QPointF mappedPos); + + void updateView(); + +private: + std::unique_ptr m_editorData; + + QGraphicsScene * m_editorScene; + + EditorView * m_editorView; + + MainWindow & m_mainWindow; + + EditorMode m_mode = EditorMode::None; +}; + +#endif // MEDIATOR_HPP diff -Nru dustrac-2.0.1/src/editor/newtrackdialog.cpp dustrac-2.0.5/src/editor/newtrackdialog.cpp --- dustrac-2.0.1/src/editor/newtrackdialog.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/newtrackdialog.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -15,49 +15,49 @@ #include "newtrackdialog.hpp" -#include -#include #include +#include +#include #include #include #include -#include +#include -NewTrackDialog::NewTrackDialog(QWidget *parent) : - QDialog(parent), - m_layout(new QGridLayout(this)), - m_okButton(new QPushButton(tr("Ok"))), - m_cancelButton(new QPushButton(tr("Cancel"))), - m_colsEdit(new QLineEdit), - m_rowsEdit(new QLineEdit), - m_nameEdit(new QLineEdit), - m_colsLabel(new QLabel(tr("Number of tile columns:"))), - m_rowsLabel(new QLabel(tr("Number of tile rows:"))), - m_nameLabel(new QLabel(tr("Track name:"))), - m_userLabel(new QLabel(tr("User track:"))), - m_userCheck(new QCheckBox) +NewTrackDialog::NewTrackDialog(QWidget * parent) + : QDialog(parent) + , m_layout(new QGridLayout(this)) + , m_okButton(new QPushButton(tr("Ok"))) + , m_cancelButton(new QPushButton(tr("Cancel"))) + , m_colsEdit(new QLineEdit) + , m_rowsEdit(new QLineEdit) + , m_nameEdit(new QLineEdit) + , m_colsLabel(new QLabel(tr("Number of tile columns:"))) + , m_rowsLabel(new QLabel(tr("Number of tile rows:"))) + , m_nameLabel(new QLabel(tr("Track name:"))) + , m_userLabel(new QLabel(tr("User track:"))) + , m_userCheck(new QCheckBox) { setWindowTitle(tr("Create a new track")); m_userCheck->setChecked(true); m_okButton->setEnabled(false); - m_layout->addWidget(m_nameLabel, 0, 0); - m_layout->addWidget(m_nameEdit, 0, 1); - m_layout->addWidget(m_userLabel, 1, 0); - m_layout->addWidget(m_userCheck, 1, 1); - m_layout->addWidget(m_colsLabel, 2, 0); - m_layout->addWidget(m_colsEdit, 2, 1); - m_layout->addWidget(m_rowsLabel, 3, 0); - m_layout->addWidget(m_rowsEdit, 3, 1); - m_layout->addWidget(m_okButton, 4, 0); + m_layout->addWidget(m_nameLabel, 0, 0); + m_layout->addWidget(m_nameEdit, 0, 1); + m_layout->addWidget(m_userLabel, 1, 0); + m_layout->addWidget(m_userCheck, 1, 1); + m_layout->addWidget(m_colsLabel, 2, 0); + m_layout->addWidget(m_colsEdit, 2, 1); + m_layout->addWidget(m_rowsLabel, 3, 0); + m_layout->addWidget(m_rowsEdit, 3, 1); + m_layout->addWidget(m_okButton, 4, 0); m_layout->addWidget(m_cancelButton, 4, 1); - connect(m_nameEdit, SIGNAL(textChanged(QString)), this, SLOT(validateData())); - connect(m_rowsEdit, SIGNAL(textChanged(QString)), this, SLOT(validateData())); - connect(m_colsEdit, SIGNAL(textChanged(QString)), this, SLOT(validateData())); - connect(m_okButton, SIGNAL(clicked()), this, SLOT(accept())); - connect(m_cancelButton, SIGNAL(clicked()), this, SLOT(reject())); + connect(m_nameEdit, &QLineEdit::textChanged, this, &NewTrackDialog::validateData); + connect(m_rowsEdit, &QLineEdit::textChanged, this, &NewTrackDialog::validateData); + connect(m_colsEdit, &QLineEdit::textChanged, this, &NewTrackDialog::validateData); + connect(m_okButton, &QPushButton::clicked, this, &NewTrackDialog::accept); + connect(m_cancelButton, &QPushButton::clicked, this, &NewTrackDialog::reject); } unsigned int NewTrackDialog::cols() const @@ -83,8 +83,5 @@ void NewTrackDialog::validateData() { m_okButton->setEnabled( - m_nameEdit->text().length() > 0 && - m_colsEdit->text().toInt() > 1 && - m_rowsEdit->text().toInt() > 1); + m_nameEdit->text().length() > 0 && m_colsEdit->text().toInt() > 1 && m_rowsEdit->text().toInt() > 1); } - diff -Nru dustrac-2.0.1/src/editor/newtrackdialog.hpp dustrac-2.0.5/src/editor/newtrackdialog.hpp --- dustrac-2.0.1/src/editor/newtrackdialog.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/newtrackdialog.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -30,7 +30,6 @@ Q_OBJECT public: - //! Constructor. explicit NewTrackDialog(QWidget * parent = nullptr); @@ -51,18 +50,17 @@ void validateData(); private: - QGridLayout * m_layout; QPushButton * m_okButton; QPushButton * m_cancelButton; - QLineEdit * m_colsEdit; - QLineEdit * m_rowsEdit; - QLineEdit * m_nameEdit; - QLabel * m_colsLabel; - QLabel * m_rowsLabel; - QLabel * m_nameLabel; - QLabel * m_userLabel; - QCheckBox * m_userCheck; + QLineEdit * m_colsEdit; + QLineEdit * m_rowsEdit; + QLineEdit * m_nameEdit; + QLabel * m_colsLabel; + QLabel * m_rowsLabel; + QLabel * m_nameLabel; + QLabel * m_userLabel; + QCheckBox * m_userCheck; }; #endif // NEWTRACKDIALOG_HPP diff -Nru dustrac-2.0.1/src/editor/object.cpp dustrac-2.0.5/src/editor/object.cpp --- dustrac-2.0.1/src/editor/object.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/object.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,39 +17,40 @@ #include Object::Object(QString category, QString role, QSizeF size, QPixmap pixmap) - : ObjectBase(category, role) - , m_size(size) - , m_pixmap(pixmap) + : ObjectBase(category, role) + , m_size(size) + , m_pixmap(pixmap) { } Object::Object(const Object & other) - : QGraphicsItem() - , ObjectBase(other.category(), other.role()) - , m_size(other.m_size) - , m_pixmap(other.m_pixmap) + : QGraphicsItem() + , ObjectBase(other.category(), other.role()) + , m_size(other.m_size) + , m_pixmap(other.m_pixmap) { setLocation(other.location()); setRotation(other.rotation()); setForceStationary(other.forceStationary()); } -QRectF Object::boundingRect () const +Object::Object(std::unique_ptr other) + : Object(*other) { - return QRectF(-m_size.width() / 2, -m_size.height() / 2, - m_size.width(), m_size.height()); } -void Object::paint(QPainter * painter, - const QStyleOptionGraphicsItem * option, QWidget * widget) +QRectF Object::boundingRect() const { - Q_UNUSED(widget); - Q_UNUSED(option); + return QRectF(-m_size.width() / 2, -m_size.height() / 2, m_size.width(), m_size.height()); +} + +void Object::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget) +{ + Q_UNUSED(widget) + Q_UNUSED(option) painter->save(); - painter->drawPixmap(boundingRect().x(), boundingRect().y(), - boundingRect().width(), boundingRect().height(), - m_pixmap); + painter->drawPixmap(boundingRect().x(), boundingRect().y(), boundingRect().width(), boundingRect().height(), m_pixmap); painter->restore(); } diff -Nru dustrac-2.0.1/src/editor/objectfactory.cpp dustrac-2.0.5/src/editor/objectfactory.cpp --- dustrac-2.0.1/src/editor/objectfactory.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/objectfactory.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -20,28 +20,19 @@ #include "objectmodel.hpp" #include "objectmodelloader.hpp" -ObjectFactory::ObjectFactory() +std::unique_ptr ObjectFactory::createObject(QString role) { -} - -Object & ObjectFactory::createObject(QString role) -{ - ObjectModel model = - MainWindow::instance()->objectModelLoader().getObjectModelByRole( - role); + const auto model = MainWindow::instance()->objectModelLoader().getObjectModelByRole(role); - unsigned int w = model.width; - w = w > 0 ? w : model.pixmap.width(); + size_t w = model.width; + w = w > 0 ? w : static_cast(model.pixmap.width()); - unsigned int h = model.height; - h = h > 0 ? h : model.pixmap.height(); + size_t h = model.height; + h = h > 0 ? h : static_cast(model.pixmap.height()); - Object * object = new Object( - model.category, - role, - QSizeF(w, h), - model.pixmap); - - return *object; + return std::make_unique( + model.category, + role, + QSizeF(w, h), + model.pixmap); } - diff -Nru dustrac-2.0.1/src/editor/objectfactory.hpp dustrac-2.0.5/src/editor/objectfactory.hpp --- dustrac-2.0.1/src/editor/objectfactory.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/objectfactory.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,20 +17,14 @@ #define OBJECTFACTORY_HPP #include +#include class Object; //! Creates Objects from given role. -class ObjectFactory -{ -public: - - /*! Create an Objects from given role. - * The caller gets the ownership. */ - static Object & createObject(QString role); - -private: - ObjectFactory(); -}; +namespace ObjectFactory { +/*! Create an Objects from given role. */ +std::unique_ptr createObject(QString role); +} // namespace ObjectFactory #endif // OBJECTFACTORY_HPP diff -Nru dustrac-2.0.1/src/editor/object.hpp dustrac-2.0.5/src/editor/object.hpp --- dustrac-2.0.1/src/editor/object.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/object.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -25,23 +25,22 @@ class Object : public QGraphicsItem, public ObjectBase { public: - //! Constructor. Object(QString category, QString role, QSizeF size, QPixmap pixmap); //! Copy constructor. Object(const Object & other); - virtual QRectF boundingRect () const override; + Object(std::unique_ptr other); + + virtual QRectF boundingRect() const override; - virtual void paint(QPainter * painter, - const QStyleOptionGraphicsItem * option, QWidget * widget = 0) override; + virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr) override; //! Sets the Object and QGraphicsItem locations. virtual void setLocation(QPointF newLocation) override; private: - //! Original size in pixels. QSizeF m_size; diff -Nru dustrac-2.0.1/src/editor/objectmodelloader.cpp dustrac-2.0.5/src/editor/objectmodelloader.cpp --- dustrac-2.0.1/src/editor/objectmodelloader.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/objectmodelloader.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -44,34 +44,31 @@ file.close(); - QDomElement root = doc.documentElement(); - QString version = root.attribute("version", - Config::Editor::EDITOR_VERSION); + const auto root = doc.documentElement(); + const auto version = root.attribute("version", Config::Editor::EDITOR_VERSION); m_objects.clear(); - QDomNode node = root.firstChild(); - while(!node.isNull()) + auto node = root.firstChild(); + while (!node.isNull()) { - QDomElement tag = node.toElement(); - if(!tag.isNull()) + const auto tag = node.toElement(); + if (!tag.isNull()) { // Parse an object tag if (tag.nodeName() == "object") { ObjectModel newData; - - newData.category = tag.attribute("category", "undefined"); - newData.role = tag.attribute("role", "undefined"); - newData.width = tag.attribute("width", "0").toUInt(); - newData.height = tag.attribute("height", "0").toUInt(); - QString imagePath = tag.attribute("imagePath", "undefined"); + newData.category = tag.attribute("category", "undefined"); + newData.role = tag.attribute("role", "undefined"); + newData.width = tag.attribute("width", "0").toUInt(); + newData.height = tag.attribute("height", "0").toUInt(); + auto imagePath = tag.attribute("imagePath", "undefined"); // The corresponding image is loaded // from Config::DATA_PATH/model.imagePath. // Check that it's available and load it. - imagePath = QString(Config::Common::dataPath) + - QDir::separator() + imagePath; + imagePath = QString(Config::General::dataPath) + QDir::separator() + imagePath; if (QFile::exists(imagePath)) { @@ -91,16 +88,15 @@ return true; } -ObjectModelLoader::ObjectDataVector ObjectModelLoader::getObjectModelsByCategory( - QString category) const +ObjectModelLoader::ObjectDataVector ObjectModelLoader::getObjectModelsByCategory(QString category) const { ObjectDataVector result; - for (int i = 0; i < m_objects.size(); i++) + for (auto && object : m_objects) { - if (m_objects[i].category == category) + if (object.category == category) { - result << m_objects[i]; + result << object; } } @@ -109,28 +105,28 @@ ObjectModel ObjectModelLoader::getObjectModelByRole(QString role) const { - for (int i = 0; i < m_objects.size(); i++) + for (auto && object : m_objects) { - if (m_objects[i].role == role) + if (object.role == role) { - return m_objects[i]; + return object; } } - return ObjectModel(); + return {}; } QString ObjectModelLoader::getCategoryByRole(QString role) const { - for (int i = 0; i < m_objects.size(); i++) + for (auto && object : m_objects) { - if (m_objects[i].role == role) + if (object.role == role) { - return m_objects[i].category; + return object.category; } } - return QString(); + return {}; } ObjectModelLoader::ObjectDataVector ObjectModelLoader::objects() const @@ -140,13 +136,13 @@ QPixmap ObjectModelLoader::getPixmapByRole(QString role) const { - for (int i = 0; i < m_objects.size(); i++) + for (auto && object : m_objects) { - if (m_objects[i].role == role) + if (object.role == role) { - return m_objects[i].pixmap; + return object.pixmap; } } - return QPixmap(); + return {}; } diff -Nru dustrac-2.0.1/src/editor/objectmodelloader.hpp dustrac-2.0.5/src/editor/objectmodelloader.hpp --- dustrac-2.0.1/src/editor/objectmodelloader.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/objectmodelloader.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -25,7 +25,6 @@ class ObjectModelLoader { public: - typedef QVector ObjectDataVector; //! Constructor. @@ -52,7 +51,6 @@ QPixmap getPixmapByRole(QString role) const; private: - Q_DISABLE_COPY(ObjectModelLoader) ObjectDataVector m_objects; diff -Nru dustrac-2.0.1/src/editor/rotatedialog.cpp dustrac-2.0.5/src/editor/rotatedialog.cpp --- dustrac-2.0.1/src/editor/rotatedialog.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/rotatedialog.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -15,20 +15,20 @@ #include "rotatedialog.hpp" -#include #include +#include #include #include #include -#include +#include RotateDialog::RotateDialog(QWidget * parent) -: QDialog(parent) -, m_layout(new QGridLayout(this)) -, m_okButton(new QPushButton(tr("Ok"))) -, m_cancelButton(new QPushButton(tr("Cancel"))) -, m_angleEdit(new QLineEdit) -, m_angleLabel(new QLabel(tr("Angle in degrees:"))) + : QDialog(parent) + , m_layout(new QGridLayout(this)) + , m_okButton(new QPushButton(tr("Ok"))) + , m_cancelButton(new QPushButton(tr("Cancel"))) + , m_angleEdit(new QLineEdit) + , m_angleLabel(new QLabel(tr("Angle in degrees:"))) { setWindowTitle(tr("Rotate Object")); @@ -37,13 +37,13 @@ m_angleEdit->setValidator(validator); m_angleEdit->setText("90"); - m_layout->addWidget(m_angleLabel, 0, 0); - m_layout->addWidget(m_angleEdit, 0, 1); - m_layout->addWidget(m_okButton, 3, 0); + m_layout->addWidget(m_angleLabel, 0, 0); + m_layout->addWidget(m_angleEdit, 0, 1); + m_layout->addWidget(m_okButton, 3, 0); m_layout->addWidget(m_cancelButton, 3, 1); - connect(m_okButton, SIGNAL(clicked()), this, SLOT(accept())); - connect(m_cancelButton, SIGNAL(clicked()), this, SLOT(reject())); + connect(m_okButton, &QPushButton::clicked, this, &RotateDialog::accept); + connect(m_cancelButton, &QPushButton::clicked, this, &RotateDialog::reject); } int RotateDialog::angle() const diff -Nru dustrac-2.0.1/src/editor/rotatedialog.hpp dustrac-2.0.5/src/editor/rotatedialog.hpp --- dustrac-2.0.1/src/editor/rotatedialog.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/rotatedialog.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -28,18 +28,16 @@ Q_OBJECT public: - explicit RotateDialog(QWidget * parent = 0); int angle() const; private: - QGridLayout * m_layout; QPushButton * m_okButton; QPushButton * m_cancelButton; - QLineEdit * m_angleEdit; - QLabel * m_angleLabel; + QLineEdit * m_angleEdit; + QLabel * m_angleLabel; }; #endif // ROTATEDIALOG_HPP diff -Nru dustrac-2.0.1/src/editor/targetnode.cpp dustrac-2.0.5/src/editor/targetnode.cpp --- dustrac-2.0.1/src/editor/targetnode.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/targetnode.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -29,14 +29,14 @@ static const QColor NODE_COLOR(ROUTE_LINE_COLOR); TargetNode::TargetNode() - : m_routeLine(nullptr) + : m_routeLine(nullptr) { } TargetNode::TargetNode(const TargetNode & other) - : QGraphicsItem() - , TargetNodeBase() - , m_routeLine(nullptr) + : QGraphicsItem() + , TargetNodeBase() + , m_routeLine(nullptr) { setIndex(other.index()); @@ -49,7 +49,7 @@ { m_routeLine = routeLine; m_routeLine->setPen( - QPen(QBrush(ROUTE_LINE_COLOR), LINE_WIDTH, Qt::DashDotDotLine, Qt::RoundCap)); + QPen(QBrush(ROUTE_LINE_COLOR), LINE_WIDTH, Qt::DashDotDotLine, Qt::RoundCap)); } QGraphicsLineItem * TargetNode::routeLine() const @@ -57,15 +57,15 @@ return m_routeLine; } -QRectF TargetNode::boundingRect () const +QRectF TargetNode::boundingRect() const { return QRectF( - -size().width() / 2 - LINE_WIDTH, -size().height() / 2 - LINE_WIDTH, - size().width() + LINE_WIDTH, size().height() + LINE_WIDTH); + -size().width() / 2 - LINE_WIDTH, -size().height() / 2 - LINE_WIDTH, + size().width() + LINE_WIDTH, size().height() + LINE_WIDTH); } void TargetNode::paint(QPainter * painter, - const QStyleOptionGraphicsItem * option, QWidget * widget) + const QStyleOptionGraphicsItem * option, QWidget * widget) { Q_UNUSED(widget); Q_UNUSED(option); @@ -83,16 +83,16 @@ // Outline painter->drawRect( - boundingRect().x() + LINE_WIDTH, boundingRect().y() + LINE_WIDTH, - boundingRect().width() - LINE_WIDTH * 2, boundingRect().height() - LINE_WIDTH * 2); + boundingRect().x() + LINE_WIDTH, boundingRect().y() + LINE_WIDTH, + boundingRect().width() - LINE_WIDTH * 2, boundingRect().height() - LINE_WIDTH * 2); // Circle in the middle painter->drawEllipse( - QPointF( - boundingRect().x() + boundingRect().width() / 2 + LINE_WIDTH / 2, - boundingRect().y() + boundingRect().height() / 2 + LINE_WIDTH / 2), - LINE_WIDTH, - LINE_WIDTH); + QPointF( + boundingRect().x() + boundingRect().width() / 2 + LINE_WIDTH / 2, + boundingRect().y() + boundingRect().height() / 2 + LINE_WIDTH / 2), + LINE_WIDTH, + LINE_WIDTH); painter->restore(); } @@ -115,9 +115,9 @@ if (m_routeLine && next()) { m_routeLine->setLine( - location().x(), - location().y(), - next()->location().x(), - next()->location().y()); + location().x(), + location().y(), + next()->location().x(), + next()->location().y()); } } diff -Nru dustrac-2.0.1/src/editor/targetnode.hpp dustrac-2.0.5/src/editor/targetnode.hpp --- dustrac-2.0.1/src/editor/targetnode.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/targetnode.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,8 +16,8 @@ #ifndef TARGETNODE_HPP #define TARGETNODE_HPP -#include #include "../common/targetnodebase.hpp" +#include class QGraphicsLineItem; @@ -25,17 +25,16 @@ class TargetNode : public QGraphicsItem, public TargetNodeBase { public: - //! Constructor. TargetNode(); //! Copy constructor. TargetNode(const TargetNode & other); - virtual QRectF boundingRect () const override; + virtual QRectF boundingRect() const override; virtual void paint(QPainter * painter, - const QStyleOptionGraphicsItem * option, QWidget * widget = 0) override; + const QStyleOptionGraphicsItem * option, QWidget * widget = 0) override; //! Sets the TargetNode and QGraphicsItem locations. virtual void setLocation(QPointF newLocation) override; @@ -50,7 +49,6 @@ void updateRouteLine(); private: - //! Line that is drawn from a node to the next node //! according to the route vector. QGraphicsLineItem * m_routeLine; diff -Nru dustrac-2.0.1/src/editor/targetnodesizedlg.cpp dustrac-2.0.5/src/editor/targetnodesizedlg.cpp --- dustrac-2.0.1/src/editor/targetnodesizedlg.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/targetnodesizedlg.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,44 +16,44 @@ #include "targetnodesizedlg.hpp" #include "tracktile.hpp" -#include #include +#include #include #include #include -#include +#include TargetNodeSizeDlg::TargetNodeSizeDlg(QSizeF defaultSize, QWidget * parent) -: QDialog(parent) -, m_layout(new QGridLayout(this)) -, m_okButton(new QPushButton(tr("Ok"))) -, m_cancelButton(new QPushButton(tr("Cancel"))) -, m_widthEdit(new QLineEdit) -, m_widthLabel(new QLabel(tr("Width:"))) -, m_heightEdit(new QLineEdit) -, m_heightLabel(new QLabel(tr("Height:"))) + : QDialog(parent) + , m_layout(new QGridLayout(this)) + , m_okButton(new QPushButton(tr("Ok"))) + , m_cancelButton(new QPushButton(tr("Cancel"))) + , m_widthEdit(new QLineEdit) + , m_widthLabel(new QLabel(tr("Width:"))) + , m_heightEdit(new QLineEdit) + , m_heightLabel(new QLabel(tr("Height:"))) { setWindowTitle(tr("Set target node size")); QIntValidator * widthValidator = new QIntValidator(this); - widthValidator->setRange(TrackTile::TILE_W / 2, TrackTile::TILE_W * 4); + widthValidator->setRange(TrackTile::width() / 2, TrackTile::width() * 4); m_widthEdit->setValidator(widthValidator); m_widthEdit->setText(QString("%1").arg(defaultSize.width())); QIntValidator * heightValidator = new QIntValidator(this); - heightValidator->setRange(TrackTile::TILE_H / 2, TrackTile::TILE_H * 4); + heightValidator->setRange(TrackTile::height() / 2, TrackTile::height() * 4); m_heightEdit->setValidator(widthValidator); m_heightEdit->setText(QString("%1").arg(defaultSize.height())); - m_layout->addWidget(m_widthLabel, 0, 0); - m_layout->addWidget(m_widthEdit, 0, 1); - m_layout->addWidget(m_heightLabel, 1, 0); - m_layout->addWidget(m_heightEdit, 1, 1); - m_layout->addWidget(m_okButton, 3, 0); + m_layout->addWidget(m_widthLabel, 0, 0); + m_layout->addWidget(m_widthEdit, 0, 1); + m_layout->addWidget(m_heightLabel, 1, 0); + m_layout->addWidget(m_heightEdit, 1, 1); + m_layout->addWidget(m_okButton, 3, 0); m_layout->addWidget(m_cancelButton, 3, 1); - connect(m_okButton, SIGNAL(clicked()), this, SLOT(accept())); - connect(m_cancelButton, SIGNAL(clicked()), this, SLOT(reject())); + connect(m_okButton, &QPushButton::clicked, this, &TargetNodeSizeDlg::accept); + connect(m_cancelButton, &QPushButton::clicked, this, &TargetNodeSizeDlg::reject); } QSizeF TargetNodeSizeDlg::targetNodeSize() const diff -Nru dustrac-2.0.1/src/editor/targetnodesizedlg.hpp dustrac-2.0.5/src/editor/targetnodesizedlg.hpp --- dustrac-2.0.1/src/editor/targetnodesizedlg.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/targetnodesizedlg.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -28,20 +28,18 @@ Q_OBJECT public: - explicit TargetNodeSizeDlg(QSizeF defaultSize, QWidget * parent = 0); QSizeF targetNodeSize() const; private: - QGridLayout * m_layout; QPushButton * m_okButton; QPushButton * m_cancelButton; - QLineEdit * m_widthEdit; - QLabel * m_widthLabel; - QLineEdit * m_heightEdit; - QLabel * m_heightLabel; + QLineEdit * m_widthEdit; + QLabel * m_widthLabel; + QLineEdit * m_heightEdit; + QLabel * m_heightLabel; }; #endif // TARGETNODESIZEDLG_HPP diff -Nru dustrac-2.0.1/src/editor/tileanimator.cpp dustrac-2.0.5/src/editor/tileanimator.cpp --- dustrac-2.0.1/src/editor/tileanimator.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/tileanimator.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -21,12 +21,12 @@ const int FRAMES = 30; TileAnimator::TileAnimator(TrackTile * tile) -: QTimeLine(250) -, m_tile(tile) + : QTimeLine(250) + , m_tile(tile) { setFrameRange(0, FRAMES); - connect(this, SIGNAL(frameChanged(int)), this, SLOT(setTileRotation(int))); + connect(this, &TileAnimator::frameChanged, this, &TileAnimator::setTileRotation); } bool TileAnimator::rotate90CW() diff -Nru dustrac-2.0.1/src/editor/tileanimator.hpp dustrac-2.0.5/src/editor/tileanimator.hpp --- dustrac-2.0.1/src/editor/tileanimator.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/tileanimator.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -26,7 +26,6 @@ Q_OBJECT public: - explicit TileAnimator(TrackTile * tile); bool rotate90CW(); @@ -38,7 +37,6 @@ void setTileRotation(int frame); private: - TrackTile * m_tile; int m_a0, m_a1; diff -Nru dustrac-2.0.1/src/editor/trackdata.cpp dustrac-2.0.5/src/editor/trackdata.cpp --- dustrac-2.0.1/src/editor/trackdata.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/trackdata.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -23,15 +23,16 @@ #include -TrackData::TrackData(QString name, bool isUserTrack, unsigned int cols, unsigned int rows) - : TrackDataBase(name, isUserTrack) - , m_map(cols, rows) -{} +TrackData::TrackData(QString name, bool isUserTrack, size_t cols, size_t rows) + : TrackDataBase(name, isUserTrack) + , m_map(cols, rows) +{ +} TrackData::TrackData(const TrackData & other) - : TrackDataBase(other) - , m_fileName(other.m_fileName) - , m_map(other.m_map) + : TrackDataBase(other) + , m_fileName(other.m_fileName) + , m_map(other.m_map) { copyObjects(other); @@ -44,8 +45,8 @@ for (auto iter = other.m_objects.cbegin(); iter != other.m_objects.cend(); iter++) { - auto object = std::dynamic_pointer_cast(*iter); - auto newObject = new Object(*(object.get())); + const auto object = std::dynamic_pointer_cast(*iter); + const auto newObject = std::make_shared(*object); m_objects.add(ObjectBasePtr(newObject)); } @@ -57,10 +58,10 @@ for (auto iter = other.m_route.cbegin(); iter != other.m_route.cend(); iter++) { - auto node = std::dynamic_pointer_cast(*iter); - auto newNode = new TargetNode(*(node.get())); + const auto node = std::dynamic_pointer_cast(*iter); + const auto newNode = std::make_shared(*node); - m_route.push(TargetNodeBasePtr(newNode)); + m_route.push(newNode); } } @@ -104,17 +105,7 @@ return m_objects; } -void TrackData::enlargeHorSize() -{ - m_map.resize(m_map.cols() + 1, m_map.rows()); -} - -void TrackData::enlargeVerSize() -{ - m_map.resize(m_map.cols(), m_map.rows() + 1); -} - -void TrackData::insertColumn(unsigned int at, MapBase::InsertDirection insertDirection) +void TrackData::insertColumn(size_t at, MapBase::InsertDirection insertDirection) { at = m_map.insertColumn(at, insertDirection); @@ -123,7 +114,7 @@ moveTargetNodesAfterColumnInsertion(at); } -void TrackData::insertRow(unsigned int at, MapBase::InsertDirection insertDirection) +void TrackData::insertRow(size_t at, MapBase::InsertDirection insertDirection) { at = m_map.insertRow(at, insertDirection); @@ -132,7 +123,7 @@ moveTargetNodesAfterRowInsertion(at); } -std::vector TrackData::deleteColumn(unsigned int at) +std::vector TrackData::deleteColumn(size_t at) { moveObjectsAfterColumnDeletion(at); @@ -141,7 +132,7 @@ return m_map.deleteColumn(at); } -std::vector TrackData::deleteRow(unsigned int at) +std::vector TrackData::deleteRow(size_t at) { moveObjectsAfterRowDeletion(at); @@ -150,90 +141,90 @@ return m_map.deleteRow(at); } -void TrackData::moveObjectsAfterColumnInsertion(unsigned int at) +void TrackData::moveObjectsAfterColumnInsertion(size_t at) { - for (auto object : m_objects) + for (auto && object : m_objects) { - if (object->location().x() > TrackTile::TILE_W * at) + if (object->location().x() > TrackTile::width() * at) { - object->setLocation(QPointF(object->location().x() + TrackTile::TILE_W, object->location().y())); + object->setLocation(QPointF(object->location().x() + TrackTile::width(), object->location().y())); } } } -void TrackData::moveObjectsAfterRowInsertion(unsigned int at) +void TrackData::moveObjectsAfterRowInsertion(size_t at) { - for (auto object : m_objects) + for (auto && object : m_objects) { - if (object->location().y() > TrackTile::TILE_H * at) + if (object->location().y() > TrackTile::height() * at) { - object->setLocation(QPointF(object->location().x(), object->location().y() + TrackTile::TILE_H)); + object->setLocation(QPointF(object->location().x(), object->location().y() + TrackTile::height())); } } } -void TrackData::moveTargetNodesAfterColumnInsertion(unsigned int at) +void TrackData::moveTargetNodesAfterColumnInsertion(size_t at) { - for (auto tnode : m_route) + for (auto && targetNode : m_route) { - if (tnode->location().x() > TrackTile::TILE_W * at) + if (targetNode->location().x() > TrackTile::width() * at) { - tnode->setLocation(QPointF(tnode->location().x() + TrackTile::TILE_W, tnode->location().y())); + targetNode->setLocation(QPointF(targetNode->location().x() + TrackTile::width(), targetNode->location().y())); } } } -void TrackData::moveTargetNodesAfterRowInsertion(unsigned int at) +void TrackData::moveTargetNodesAfterRowInsertion(size_t at) { - for (auto tnode : m_route) + for (auto && targetNode : m_route) { - if (tnode->location().y() > TrackTile::TILE_H * at) + if (targetNode->location().y() > TrackTile::height() * at) { - tnode->setLocation(QPointF(tnode->location().x(), tnode->location().y() + TrackTile::TILE_H)); + targetNode->setLocation(QPointF(targetNode->location().x(), targetNode->location().y() + TrackTile::height())); } } } -void TrackData::moveObjectsAfterColumnDeletion(unsigned int at) +void TrackData::moveObjectsAfterColumnDeletion(size_t at) { - for (auto object : m_objects) + for (auto && object : m_objects) { - if (object->location().x() > TrackTile::TILE_W * at) + if (object->location().x() > TrackTile::width() * at) { - object->setLocation(QPointF(object->location().x() - TrackTile::TILE_W, object->location().y())); + object->setLocation(QPointF(object->location().x() - TrackTile::width(), object->location().y())); } } } -void TrackData::moveObjectsAfterRowDeletion(unsigned int at) +void TrackData::moveObjectsAfterRowDeletion(size_t at) { - for (auto object : m_objects) + for (auto && object : m_objects) { - if (object->location().y() > TrackTile::TILE_H * at) + if (object->location().y() > TrackTile::height() * at) { - object->setLocation(QPointF(object->location().x(), object->location().y() - TrackTile::TILE_H)); + object->setLocation(QPointF(object->location().x(), object->location().y() - TrackTile::height())); } } } -void TrackData::moveTargetNodesAfterColumnDeletion(unsigned int at) +void TrackData::moveTargetNodesAfterColumnDeletion(size_t at) { - for (auto tnode : m_route) + for (auto && targetNode : m_route) { - if (tnode->location().x() > TrackTile::TILE_W * at) + if (targetNode->location().x() > TrackTile::width() * at) { - tnode->setLocation(QPointF(tnode->location().x() - TrackTile::TILE_W, tnode->location().y())); + targetNode->setLocation(QPointF(targetNode->location().x() - TrackTile::width(), targetNode->location().y())); } } } -void TrackData::moveTargetNodesAfterRowDeletion(unsigned int at) +void TrackData::moveTargetNodesAfterRowDeletion(size_t at) { - for (auto tnode : m_route) + for (auto && targetNode : m_route) { - if (tnode->location().y() > TrackTile::TILE_H * at) + if (targetNode->location().y() > TrackTile::height() * at) { - tnode->setLocation(QPointF(tnode->location().x(), tnode->location().y() - TrackTile::TILE_H)); + targetNode->setLocation(QPointF(targetNode->location().x(), targetNode->location().y() - TrackTile::height())); } } } diff -Nru dustrac-2.0.1/src/editor/trackdata.hpp dustrac-2.0.5/src/editor/trackdata.hpp --- dustrac-2.0.1/src/editor/trackdata.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/trackdata.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -18,10 +18,10 @@ #include -#include "../common/trackdatabase.hpp" #include "../common/mapbase.hpp" -#include "../common/route.hpp" #include "../common/objects.hpp" +#include "../common/route.hpp" +#include "../common/trackdatabase.hpp" #include "map.hpp" @@ -30,9 +30,8 @@ class TrackData : public TrackDataBase { public: - //! Constructor. - TrackData(QString name, bool isUserTrack, unsigned int cols, unsigned int rows); + TrackData(QString name, bool isUserTrack, size_t cols, size_t rows); //! Copy constructor TrackData(const TrackData & other); @@ -64,45 +63,38 @@ //! Get objects object. const Objects & objects() const; - //! Enlarge horizontal size. - void enlargeHorSize(); - - //! Enlarge vertical size. - void enlargeVerSize(); - //! Insert tile column at given index and move objects. - void insertColumn(unsigned int at, MapBase::InsertDirection insertDirection); + void insertColumn(size_t at, MapBase::InsertDirection insertDirection); //! Insert tile row at given index and move objects. - void insertRow(unsigned int at, MapBase::InsertDirection insertDirection); + void insertRow(size_t at, MapBase::InsertDirection insertDirection); //! Delete tile column at given index and move objects. - std::vector deleteColumn(unsigned int at); + std::vector deleteColumn(size_t at); //! Delete tile row at given index and move objects. - std::vector deleteRow(unsigned int at); + std::vector deleteRow(size_t at); private: - void copyObjects(const TrackData & other); void copyRoute(const TrackData & other); - void moveObjectsAfterColumnInsertion(unsigned int at); + void moveObjectsAfterColumnInsertion(size_t at); - void moveObjectsAfterRowInsertion(unsigned int at); + void moveObjectsAfterRowInsertion(size_t at); - void moveTargetNodesAfterColumnInsertion(unsigned int at); + void moveTargetNodesAfterColumnInsertion(size_t at); - void moveTargetNodesAfterRowInsertion(unsigned int at); + void moveTargetNodesAfterRowInsertion(size_t at); - void moveObjectsAfterColumnDeletion(unsigned int at); + void moveObjectsAfterColumnDeletion(size_t at); - void moveObjectsAfterRowDeletion(unsigned int at); + void moveObjectsAfterRowDeletion(size_t at); - void moveTargetNodesAfterColumnDeletion(unsigned int at); + void moveTargetNodesAfterColumnDeletion(size_t at); - void moveTargetNodesAfterRowDeletion(unsigned int at); + void moveTargetNodesAfterRowDeletion(size_t at); QString m_fileName; diff -Nru dustrac-2.0.1/src/editor/trackio.cpp dustrac-2.0.5/src/editor/trackio.cpp --- dustrac-2.0.1/src/editor/trackio.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/trackio.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -13,11 +13,11 @@ // You should have received a copy of the GNU General Public License // along with Dust Racing 2D. If not, see . -#include #include -#include #include #include +#include +#include #include "mainwindow.hpp" #include "object.hpp" @@ -30,6 +30,7 @@ #include "tracktile.hpp" #include "../common/config.hpp" +#include "../common/datakeywords.hpp" #include "../common/objectbase.hpp" #include "../common/targetnodebase.hpp" @@ -42,85 +43,82 @@ { // Init a new tile. QGraphicsScene will take // the ownership eventually. - auto tile = dynamic_cast(newData.map().getTile( - element.attribute(TrackDataBase::DataKeywords::Tile::i(), "0").toUInt(), - element.attribute(TrackDataBase::DataKeywords::Tile::j(), "0").toUInt()).get()); + const auto tile = std::dynamic_pointer_cast(newData.map().getTile( + element.attribute(DataKeywords::Tile::i, "0").toUInt(), + element.attribute(DataKeywords::Tile::j, "0").toUInt())); assert(tile); - tile->setRotation(element.attribute(TrackDataBase::DataKeywords::Tile::orientation(), "0").toInt()); - - const auto type = element.attribute(TrackDataBase::DataKeywords::Tile::type(), "clear"); + tile->setRotation(element.attribute(DataKeywords::Tile::orientation, "0").toInt()); - tile->setTileType(type); + tile->setTileType(element.attribute(DataKeywords::Tile::type, "clear")); tile->setComputerHint( - static_cast(element.attribute(TrackDataBase::DataKeywords::Tile::computerHint(), "0").toInt())); + static_cast(element.attribute(DataKeywords::Tile::computerHint, "0").toInt())); - tile->setExcludeFromMinimap(element.attribute(TrackDataBase::DataKeywords::Tile::excludeFromMinimap(), "0").toUInt()); + tile->setExcludeFromMinimap(element.attribute(DataKeywords::Tile::excludeFromMinimap, "0").toUInt()); } void readObject(TrackData & newData, const QDomElement & element) { // Create a new object. QGraphicsScene will take // the ownership eventually. - Object & object = ObjectFactory::createObject(element.attribute(TrackDataBase::DataKeywords::Object::role(), "clear")); + auto object = std::make_shared(ObjectFactory::createObject(element.attribute(DataKeywords::Object::role, "clear"))); - object.setLocation(QPointF( - element.attribute(TrackDataBase::DataKeywords::Object::x(), "0").toInt(), - element.attribute(TrackDataBase::DataKeywords::Object::y(), "0").toInt())); + object->setLocation(QPointF( + element.attribute(DataKeywords::Object::x, "0").toInt(), + element.attribute(DataKeywords::Object::y, "0").toInt())); - object.setRotation(element.attribute(TrackDataBase::DataKeywords::Object::orientation(), "0").toInt()); + object->setRotation(element.attribute(DataKeywords::Object::orientation, "0").toInt()); - object.setForceStationary(element.attribute(TrackDataBase::DataKeywords::Object::forceStationary(), "0").toUInt()); + object->setForceStationary(element.attribute(DataKeywords::Object::forceStationary, "0").toUInt()); - newData.objects().add(ObjectBasePtr(&object)); + newData.objects().add(object); } void readTargetNode(std::vector & route, const QDomElement & element) { // Create a new object. QGraphicsScene will take // the ownership eventually. - auto tnode = new TargetNode; - tnode->setIndex(element.attribute(TrackDataBase::DataKeywords::Node::index(), "0").toInt()); + const auto targetNode = std::make_shared(); + targetNode->setIndex(element.attribute(DataKeywords::Node::index, "0").toInt()); - const int x = element.attribute(TrackDataBase::DataKeywords::Node::x(), "0").toInt(); - const int y = element.attribute(TrackDataBase::DataKeywords::Node::y(), "0").toInt(); + const int x = element.attribute(DataKeywords::Node::x, "0").toInt(); + const int y = element.attribute(DataKeywords::Node::y, "0").toInt(); - tnode->setLocation(QPointF(x, y)); + targetNode->setLocation(QPointF(x, y)); - const int w = element.attribute(TrackDataBase::DataKeywords::Node::width(), "0").toInt(); - const int h = element.attribute(TrackDataBase::DataKeywords::Node::height(), "0").toInt(); + const int w = element.attribute(DataKeywords::Node::width, "0").toInt(); + const int h = element.attribute(DataKeywords::Node::height, "0").toInt(); if (w > 0 && h > 0) { - tnode->setSize(QSizeF(w, h)); + targetNode->setSize(QSizeF(w, h)); } - route.push_back(TargetNodeBasePtr(tnode)); + route.push_back(targetNode); } void writeTiles(const TrackDataPtr trackData, QDomElement & root, QDomDocument & doc) { - for (unsigned int i = 0; i < trackData->map().cols(); i++) + for (size_t i = 0; i < trackData->map().cols(); i++) { - for (unsigned int j = 0; j < trackData->map().rows(); j++) + for (size_t j = 0; j < trackData->map().rows(); j++) { - auto tile = std::dynamic_pointer_cast(trackData->map().getTile(i, j)); - assert(tile); + auto && tileElement = doc.createElement(DataKeywords::Track::tile); + const auto tile = std::dynamic_pointer_cast(trackData->map().getTile(i, j)); + tileElement.setAttribute(DataKeywords::Tile::type, tile->tileType()); + tileElement.setAttribute(DataKeywords::Tile::i, static_cast(i)); + tileElement.setAttribute(DataKeywords::Tile::j, static_cast(j)); + tileElement.setAttribute(DataKeywords::Tile::orientation, tile->rotation()); - QDomElement tileElement = doc.createElement(TrackDataBase::DataKeywords::Track::tile()); - tileElement.setAttribute(TrackDataBase::DataKeywords::Tile::type(), tile->tileType()); - tileElement.setAttribute(TrackDataBase::DataKeywords::Tile::i(), i); - tileElement.setAttribute(TrackDataBase::DataKeywords::Tile::j(), j); - tileElement.setAttribute(TrackDataBase::DataKeywords::Tile::orientation(), tile->rotation()); - - if (tile->excludeFromMinimap()) { - tileElement.setAttribute(TrackDataBase::DataKeywords::Tile::excludeFromMinimap(), true); + if (tile->excludeFromMinimap()) + { + tileElement.setAttribute(DataKeywords::Tile::excludeFromMinimap, true); } - if (tile->computerHint() != TrackTile::CH_NONE) + if (tile->computerHint() != TrackTile::ComputerHint::None) { - tileElement.setAttribute(TrackDataBase::DataKeywords::Tile::computerHint(), tile->computerHint()); + tileElement.setAttribute(DataKeywords::Tile::computerHint, static_cast(tile->computerHint())); } root.appendChild(tileElement); @@ -135,16 +133,16 @@ auto object = std::dynamic_pointer_cast(objectPtr); assert(object); - QDomElement objectElement = doc.createElement(TrackDataBase::DataKeywords::Track::object()); - objectElement.setAttribute(TrackDataBase::DataKeywords::Object::category(), object->category()); - objectElement.setAttribute(TrackDataBase::DataKeywords::Object::role(), object->role()); - objectElement.setAttribute(TrackDataBase::DataKeywords::Object::x(), static_cast(object->location().x())); - objectElement.setAttribute(TrackDataBase::DataKeywords::Object::y(), static_cast(object->location().y())); - objectElement.setAttribute(TrackDataBase::DataKeywords::Object::orientation(), static_cast(object->rotation())); + auto && objectElement = doc.createElement(DataKeywords::Track::object); + objectElement.setAttribute(DataKeywords::Object::category, object->category()); + objectElement.setAttribute(DataKeywords::Object::role, object->role()); + objectElement.setAttribute(DataKeywords::Object::x, static_cast(object->location().x())); + objectElement.setAttribute(DataKeywords::Object::y, static_cast(object->location().y())); + objectElement.setAttribute(DataKeywords::Object::orientation, static_cast(object->rotation())); if (object->forceStationary()) { - objectElement.setAttribute(TrackDataBase::DataKeywords::Object::forceStationary(), static_cast(object->forceStationary())); + objectElement.setAttribute(DataKeywords::Object::forceStationary, static_cast(object->forceStationary())); } root.appendChild(objectElement); @@ -153,16 +151,16 @@ void writeTargetNodes(TrackDataPtr trackData, QDomElement & root, QDomDocument & doc) { - for (auto tnode : trackData->route()) + for (auto && targetNode : trackData->route()) { - QDomElement tnodeElement = doc.createElement(TrackDataBase::DataKeywords::Track::node()); - tnodeElement.setAttribute(TrackDataBase::DataKeywords::Node::index(), tnode->index()); - tnodeElement.setAttribute(TrackDataBase::DataKeywords::Node::x(), static_cast(tnode->location().x())); - tnodeElement.setAttribute(TrackDataBase::DataKeywords::Node::y(), static_cast(tnode->location().y())); - tnodeElement.setAttribute(TrackDataBase::DataKeywords::Node::width(), static_cast(tnode->size().width())); - tnodeElement.setAttribute(TrackDataBase::DataKeywords::Node::height(), static_cast(tnode->size().height())); + auto && targetNodeElement = doc.createElement(DataKeywords::Track::node); + targetNodeElement.setAttribute(DataKeywords::Node::index, targetNode->index()); + targetNodeElement.setAttribute(DataKeywords::Node::x, static_cast(targetNode->location().x())); + targetNodeElement.setAttribute(DataKeywords::Node::y, static_cast(targetNode->location().y())); + targetNodeElement.setAttribute(DataKeywords::Node::width, static_cast(targetNode->size().width())); + targetNodeElement.setAttribute(DataKeywords::Node::height, static_cast(targetNode->size().height())); - root.appendChild(tnodeElement); + root.appendChild(targetNodeElement); } } @@ -172,16 +170,18 @@ { // Create content QDomDocument doc; - QDomElement root = doc.createElement(TrackDataBase::DataKeywords::Header::track()); - root.setAttribute(TrackDataBase::DataKeywords::Header::ver(), Config::Editor::EDITOR_VERSION); - root.setAttribute(TrackDataBase::DataKeywords::Header::name(), trackData->name()); - root.setAttribute(TrackDataBase::DataKeywords::Header::cols(), trackData->map().cols()); - root.setAttribute(TrackDataBase::DataKeywords::Header::rows(), trackData->map().rows()); - root.setAttribute(TrackDataBase::DataKeywords::Header::index(), trackData->index()); + doc.appendChild(doc.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")); + + auto && root = doc.createElement(DataKeywords::Header::track); + root.setAttribute(DataKeywords::Header::version, Config::Editor::EDITOR_VERSION); + root.setAttribute(DataKeywords::Header::name, trackData->name()); + root.setAttribute(DataKeywords::Header::cols, static_cast(trackData->map().cols())); + root.setAttribute(DataKeywords::Header::rows, static_cast(trackData->map().rows())); + root.setAttribute(DataKeywords::Header::index, trackData->index()); if (trackData->isUserTrack()) // Don't add the attribute at all, if not set { - root.setAttribute(TrackDataBase::DataKeywords::Header::user(), true); + root.setAttribute(DataKeywords::Header::user, true); } doc.appendChild(root); @@ -221,45 +221,40 @@ file.close(); - const QDomElement root = doc.documentElement(); + auto && root = doc.documentElement(); + const size_t cols = root.attribute(DataKeywords::Header::cols, "0").toUInt(); + const size_t rows = root.attribute(DataKeywords::Header::rows, "0").toUInt(); - const unsigned int cols = - root.attribute(TrackDataBase::DataKeywords::Header::cols(), "0").toUInt(); - const unsigned int rows = - root.attribute(TrackDataBase::DataKeywords::Header::rows(), "0").toUInt(); - - TrackData * newData = nullptr; + TrackDataPtr newData; if (cols && rows) { - const QString name = root.attribute(TrackDataBase::DataKeywords::Header::name(), "undefined"); - const bool isUserTrack = root.attribute(TrackDataBase::DataKeywords::Header::user(), "0").toInt(); - newData = new TrackData(name, isUserTrack, cols, rows); + const auto name = root.attribute(DataKeywords::Header::name, "undefined"); + const bool isUserTrack = root.attribute(DataKeywords::Header::user, "0").toInt(); + newData = std::make_shared(name, isUserTrack, cols, rows); newData->setFileName(path); - - const unsigned int index = root.attribute(TrackDataBase::DataKeywords::Header::index(), "0").toUInt(); - newData->setIndex(index); + newData->setIndex(root.attribute(DataKeywords::Header::index, "0").toUInt()); // Temporary route vector. std::vector route; - QDomNode node = root.firstChild(); - while(!node.isNull()) + auto && node = root.firstChild(); + while (!node.isNull()) { - QDomElement element = node.toElement(); - if(!element.isNull()) + auto element = node.toElement(); + if (!element.isNull()) { // Read a tile element - if (element.nodeName() == TrackDataBase::DataKeywords::Track::tile()) + if (element.nodeName() == DataKeywords::Track::tile) { readTile(*newData, element); } // Read an object element - else if (element.nodeName() == TrackDataBase::DataKeywords::Track::object()) + else if (element.nodeName() == DataKeywords::Track::object) { readObject(*newData, element); } // Read a target node element - else if (element.nodeName() == TrackDataBase::DataKeywords::Track::node()) + else if (element.nodeName() == DataKeywords::Track::node) { readTargetNode(route, element); } @@ -272,5 +267,5 @@ newData->route().buildFromVector(route); } - return TrackDataPtr(newData); + return newData; } diff -Nru dustrac-2.0.1/src/editor/trackio.hpp dustrac-2.0.5/src/editor/trackio.hpp --- dustrac-2.0.1/src/editor/trackio.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/trackio.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -25,7 +25,6 @@ class TrackIO { public: - //! Save given track data. Returns false if failed. bool save(TrackDataPtr trackData, QString path); diff -Nru dustrac-2.0.1/src/editor/trackpropertiesdialog.cpp dustrac-2.0.5/src/editor/trackpropertiesdialog.cpp --- dustrac-2.0.1/src/editor/trackpropertiesdialog.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/trackpropertiesdialog.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -15,26 +15,26 @@ #include "trackpropertiesdialog.hpp" -#include +#include #include +#include #include #include -#include #include -#include #include +#include TrackPropertiesDialog::TrackPropertiesDialog(QString name, unsigned int index, bool isUserTrack, QWidget * parent) -: QDialog(parent) -, m_layout(new QGridLayout(this)) -, m_okButton(new QPushButton(tr("Ok"))) -, m_cancelButton(new QPushButton(tr("Cancel"))) -, m_nameEdit(new QLineEdit) -, m_nameLabel(new QLabel(tr("Name:"))) -, m_indexEdit(new QLineEdit) -, m_indexLabel(new QLabel(tr("Index:"))) -, m_isUserTrackCheckBox(new QCheckBox) -, m_isUserTrackLabel(new QLabel(tr("User track:"))) + : QDialog(parent) + , m_layout(new QGridLayout(this)) + , m_okButton(new QPushButton(tr("Ok"))) + , m_cancelButton(new QPushButton(tr("Cancel"))) + , m_nameEdit(new QLineEdit) + , m_nameLabel(new QLabel(tr("Name:"))) + , m_indexEdit(new QLineEdit) + , m_indexLabel(new QLabel(tr("Index:"))) + , m_isUserTrackCheckBox(new QCheckBox) + , m_isUserTrackLabel(new QLabel(tr("User track:"))) { setWindowTitle(tr("Set track properties")); @@ -45,17 +45,17 @@ m_indexEdit->setText(QString("%1").arg(index)); m_isUserTrackCheckBox->setChecked(isUserTrack); - m_layout->addWidget(m_nameLabel, 0, 0); - m_layout->addWidget(m_nameEdit, 0, 1); - m_layout->addWidget(m_indexLabel, 1, 0); - m_layout->addWidget(m_indexEdit, 1, 1); + m_layout->addWidget(m_nameLabel, 0, 0); + m_layout->addWidget(m_nameEdit, 0, 1); + m_layout->addWidget(m_indexLabel, 1, 0); + m_layout->addWidget(m_indexEdit, 1, 1); m_layout->addWidget(m_isUserTrackLabel, 2, 0); m_layout->addWidget(m_isUserTrackCheckBox, 2, 1); - m_layout->addWidget(m_okButton, 3, 0); - m_layout->addWidget(m_cancelButton, 3, 1); + m_layout->addWidget(m_okButton, 3, 0); + m_layout->addWidget(m_cancelButton, 3, 1); - connect(m_okButton, SIGNAL(clicked()), this, SLOT(accept())); - connect(m_cancelButton, SIGNAL(clicked()), this, SLOT(reject())); + connect(m_okButton, &QPushButton::clicked, this, &TrackPropertiesDialog::accept); + connect(m_cancelButton, &QPushButton::clicked, this, &TrackPropertiesDialog::reject); } unsigned int TrackPropertiesDialog::index() const diff -Nru dustrac-2.0.1/src/editor/trackpropertiesdialog.hpp dustrac-2.0.5/src/editor/trackpropertiesdialog.hpp --- dustrac-2.0.1/src/editor/trackpropertiesdialog.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/trackpropertiesdialog.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -30,7 +30,6 @@ Q_OBJECT public: - //! Constructor. TrackPropertiesDialog(QString name, unsigned int index, bool isUserTrack, QWidget * parent = nullptr); @@ -44,16 +43,15 @@ bool isUserTrack() const; private: - QGridLayout * m_layout; QPushButton * m_okButton; QPushButton * m_cancelButton; - QLineEdit * m_nameEdit; - QLabel * m_nameLabel; - QLineEdit * m_indexEdit; - QLabel * m_indexLabel; - QCheckBox * m_isUserTrackCheckBox; - QLabel * m_isUserTrackLabel; + QLineEdit * m_nameEdit; + QLabel * m_nameLabel; + QLineEdit * m_indexEdit; + QLabel * m_indexLabel; + QCheckBox * m_isUserTrackCheckBox; + QLabel * m_isUserTrackLabel; }; #endif // TRACKPROPERTIESDIALOG_HPP diff -Nru dustrac-2.0.1/src/editor/tracktile.cpp dustrac-2.0.5/src/editor/tracktile.cpp --- dustrac-2.0.1/src/editor/tracktile.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/tracktile.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -14,36 +14,36 @@ // along with Dust Racing 2D. If not, see . #include "tracktile.hpp" -#include "tileanimator.hpp" #include "mainwindow.hpp" +#include "tileanimator.hpp" #include "../common/config.hpp" #include #include -#include #include +#include #include TrackTile * TrackTile::m_activeTile = nullptr; TrackTile::TrackTile(QPointF location, QPoint matrixLocation, const QString & type) - : TrackTileBase(location, matrixLocation, type) - , m_size(QSizeF(TILE_W, TILE_H)) - , m_active(false) - , m_animator(new TileAnimator(this)) - , m_added(false) + : TrackTileBase(location, matrixLocation, type) + , m_size(QSizeF(width(), height())) + , m_active(false) + , m_animator(new TileAnimator(this)) + , m_added(false) { setPos(location); } TrackTile::TrackTile(const TrackTile & other) - : QGraphicsItem() - , TrackTileBase(other.location(), other.matrixLocation(), other.tileType()) - , m_size(other.m_size) - , m_active(false) - , m_animator(new TileAnimator(this)) - , m_added(false) + : QGraphicsItem() + , TrackTileBase(other.location(), other.matrixLocation(), other.tileType()) + , m_size(other.m_size) + , m_active(false) + , m_animator(new TileAnimator(this)) + , m_added(false) { setPos(other.location()); setRotation(other.rotation()); @@ -51,16 +51,15 @@ setExcludeFromMinimap(other.excludeFromMinimap()); } -QRectF TrackTile::boundingRect () const +QRectF TrackTile::boundingRect() const { - return QRectF(-m_size.width() / 2, -m_size.height() / 2, - m_size.width(), m_size.height()); + return QRectF(-m_size.width() / 2, -m_size.height() / 2, m_size.width(), m_size.height()); } void TrackTile::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget) { - Q_UNUSED(widget); - Q_UNUSED(option); + Q_UNUSED(widget) + Q_UNUSED(option) painter->save(); @@ -70,25 +69,25 @@ // Render the tile pixmap if tile is not cleared. if (tileType() != "clear") { - painter->drawPixmap(boundingRect().x(), boundingRect().y(), - boundingRect().width(), boundingRect().height(), - m_pixmap); + painter->drawPixmap(static_cast(boundingRect().x()), static_cast(boundingRect().y()), + static_cast(boundingRect().width()), static_cast(boundingRect().height()), + m_pixmap); // Mark the tile if it has computer hints set - if (computerHint() == TrackTile::CH_BRAKE_HARD) + if (computerHint() == TrackTile::ComputerHint::BrakeHard) { painter->fillRect(boundingRect(), QBrush(QColor(255, 0, 0, 128))); } - else if (computerHint() == TrackTile::CH_BRAKE) + else if (computerHint() == TrackTile::ComputerHint::Brake) { painter->fillRect(boundingRect(), QBrush(QColor(128, 0, 0, 128))); } } else { - painter->drawPixmap(boundingRect().x(), boundingRect().y(), - boundingRect().width(), boundingRect().height(), - QPixmap(Config::Editor::CLEAR_ICON_PATH)); + painter->drawPixmap(static_cast(boundingRect().x()), static_cast(boundingRect().y()), + static_cast(boundingRect().width()), static_cast(boundingRect().height()), + QPixmap(Config::Editor::CLEAR_ICON_PATH)); pen.setColor(QColor(0, 0, 0)); painter->setPen(pen); @@ -111,7 +110,9 @@ if (active && TrackTile::m_activeTile != this) { if (TrackTile::m_activeTile) + { TrackTile::m_activeTile->setActive(false); + } TrackTile::m_activeTile = this; } @@ -128,7 +129,9 @@ else { if (activeTile()) + { activeTile()->setActive(false); + } TrackTile::m_activeTile = nullptr; } @@ -183,22 +186,22 @@ void TrackTile::swap(TrackTile & other) { // Swap tile types - const QString sourceType = tileType(); + const auto sourceType = tileType(); setTileType(other.tileType()); other.setTileType(sourceType); // Swap tile pixmaps - const QPixmap sourcePixmap = pixmap(); + const auto sourcePixmap = pixmap(); setPixmap(other.pixmap()); other.setPixmap(sourcePixmap); // Swap tile rotations - const int sourceAngle = rotation(); + const auto sourceAngle = rotation(); setRotation(other.rotation()); other.setRotation(sourceAngle); // Swap computer hints - const TrackTileBase::ComputerHint sourceHint = computerHint(); + const auto sourceHint = computerHint(); setComputerHint(other.computerHint()); other.setComputerHint(sourceHint); } diff -Nru dustrac-2.0.1/src/editor/tracktile.hpp dustrac-2.0.5/src/editor/tracktile.hpp --- dustrac-2.0.1/src/editor/tracktile.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/tracktile.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,8 +17,8 @@ #define TRACKTILE_HPP #include -#include #include +#include #include "../common/tracktilebase.hpp" @@ -32,13 +32,12 @@ class TrackTile : public QGraphicsItem, public TrackTileBase { public: - /*! Constructor. * \param location Location (coordinates) in the track scene. * \param matrixLocation Location in the tile matrix. * \param type Type of the tile. See setType(). */ TrackTile(QPointF location, QPoint matrixLocation, - const QString & type = "clear"); + const QString & type = "clear"); /*! Copy constructor. * NOTE!!: This is used when saving undo points so make sure all properties are copied! */ @@ -49,10 +48,10 @@ //! Destructor virtual ~TrackTile(); - virtual QRectF boundingRect () const override; + virtual QRectF boundingRect() const override; virtual void paint(QPainter * painter, - const QStyleOptionGraphicsItem * option, QWidget * widget = 0) override; + const QStyleOptionGraphicsItem * option, QWidget * widget = 0) override; //! Set tile active (a blue collar is drawn) void setActive(bool active); @@ -90,7 +89,6 @@ bool added() const; private: - //! Create the menu that is shown when right-clicking on the tile. void createContextMenu(); diff -Nru dustrac-2.0.1/src/editor/translations/dustrac-editor_cs.ts dustrac-2.0.5/src/editor/translations/dustrac-editor_cs.ts --- dustrac-2.0.1/src/editor/translations/dustrac-editor_cs.ts 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/translations/dustrac-editor_cs.ts 2020-01-06 23:07:24.000000000 +0000 @@ -12,98 +12,104 @@ MainWindow - + Randomly rotate objects Náhodně otočit předměty - + Loading '%1'.. Nahrává se '%1'.. - + Choose 'File -> New' or 'File -> Open' to start. Vyberte Soubor -> Nový nebo Soubor -> Otevřít pro spuštění. - + Save your work to correct location. Uložte svou práci do správného umístění. - + + To make the game find your circuits, save them to %1%2%3%2 Aby hra našla vaše okruhy, uložte je do %1%2%3%2 - - + + , %4%2 + + + + + New file Nový soubor - + Scale: Měřítko: - + ERROR!!: Cannot load objects from ' Chyba: Nelze nahrát předměty z - + ' - + Scale set to %1% Měřítko nastaveno na %1% - + &File &Soubor - + &New... &Nový... - + &Open... &Otevřít... - + &Save &Uložit - + &Save as... Uložit &jako... - + &Quit U&končit - + &Edit Úp&ravy - + Undo Zpět - + Redo Znovu @@ -112,130 +118,128 @@ &Vyprázdnit vše - Enlarge hor size - Zvětšit vodorovnou velikost + Zvětšit vodorovnou velikost - Enlarge ver size - Zvětšit svislou velikost + Zvětšit svislou velikost - + &Set properties.. Nastavit &vlastnosti... - + &Route &Cesta - + Clear &route Vyprázdnit c&estu - + &Set route.. &Nastavit cestu... - + &Help Nápo&věda - + &About &O programu - + About &Qt O &Qt - + Select Vybrat - + Erase object Vymazat předmět - + Clear Odstranit - + Open a track Otevřít trať - - + + Track Files (*.trk) Soubory s tratěmi (*.trk) - + About Qt O Qt - + ERROR!!: %1 doesn't exist. Chyba: %1 neexistuje. - + Track '%1' opened. Trať '%1' otevřena. - + Failed to open track ' Nepodařilo se otevřít trať - - + + Track ' Trať - - + + ' saved. uložena. - + Failed to save track ' Nepodařilo se uložit trať - + Save a track Uložit trať - + Failed to save track as ' Nepodařilo se uložit trať jako - + A new track '%1' created. Columns: %2, Rows: %3. Nová trať %1 vytvořena. Sloupce: %2, řádky: %3. - + Track properties updated. @@ -244,17 +248,17 @@ Index nastaven na '%1'. - + Set route: begin. Nastavit cestu: začátek. - + Set route, checkpoints and driving lines. Nastavit cestu, kontrolní body a jízdní dráhy. - + Setting the route defines checkpoints for the cars so that no shortcuts can be taken. It also defines driving lines for the computer players. @@ -275,22 +279,22 @@ Klepněte znovu na první uzel pro dokončení. - + Set route Nastavit cestu - + Invalid track. Route cannot be set. Neplatná trať. Cestu nelze nastavit. - + Set route: not a valid track. Nastavit cestu: neplatná trať. - + Set route: route finished. Nastavit cestu: cesta dokončena. @@ -340,7 +344,7 @@ Dlaždice vyprázdněny. - + Route cleared. Cesta vyprázdněna. @@ -348,83 +352,83 @@ QWidget - - + + Rotate 90 Otočit o 90° - + CW.. po směru hodinových ručiček. - + CCW.. proti směru hodinových ručiček. - + Clear computer hint Odstranit radu počítače - + Set computer hint 'brake hard'.. Nastavit radu počítače Usilovně brzdit... - + Set computer hint 'brake'.. Nastavit radu počítače Brzdit... - + Exclude from minimap - + Insert row before.. - + Insert row after.. - + Delete row.. - + Insert column before.. - + Insert column after.. - + Delete column.. - + Rotate.. Otočit... - + Force stationary - + Set size.. Nastavit velikost... diff -Nru dustrac-2.0.1/src/editor/translations/dustrac-editor_de.ts dustrac-2.0.5/src/editor/translations/dustrac-editor_de.ts --- dustrac-2.0.1/src/editor/translations/dustrac-editor_de.ts 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/translations/dustrac-editor_de.ts 2020-01-06 23:07:24.000000000 +0000 @@ -98,7 +98,7 @@ Enlarge ver size - Vertikal vergrößern + Vertikal vergrößern Randomly rotate objects @@ -138,7 +138,7 @@ ERROR!!: Cannot load objects from ' - Fehler! Objekte können nicht geladen werden von: ' + FEHLER! Objekte können nicht geladen werden von: ' Save a track @@ -158,7 +158,7 @@ ERROR!!: %1 doesn't exist. - Fehler! %1 existiert nicht. + FEHLER! %1 existiert nicht. Save your work to correct location. @@ -214,7 +214,7 @@ Enlarge hor size - Horizontal vergrößern + Horizontal vergrößern &Set properties.. @@ -232,6 +232,10 @@ Track properties updated. Streckeneigenschaften aktualisiert + + , %4%2 + + NewTrackDialog @@ -331,23 +335,23 @@ Insert row before.. - Zeile vorher einfügen + Zeile davor einfügen Insert row after.. - Zeile danach einfügen + Zeile dahinter einfügen Insert column before.. - Spalte vorher einfügen + Spalte davor einfügen Insert column after.. - Spalte nach einfügen + Spalte dahinter einfügen Force stationary - Machen Sie stationär + Stationär machen diff -Nru dustrac-2.0.1/src/editor/translations/dustrac-editor_fi.ts dustrac-2.0.5/src/editor/translations/dustrac-editor_fi.ts --- dustrac-2.0.1/src/editor/translations/dustrac-editor_fi.ts 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/translations/dustrac-editor_fi.ts 2020-01-06 23:07:24.000000000 +0000 @@ -12,98 +12,104 @@ MainWindow - + Randomly rotate objects Pyöritä objekteja satunnaisesti - + Loading '%1'.. Ladataan '%1' - + Choose 'File -> New' or 'File -> Open' to start. Valitse 'Tiedosto -> Uusi' tai 'Tiedosto -> Avaa' aloittaaksesi. - + Save your work to correct location. Tallenna työsi oikeaan hakemistoon. - + + To make the game find your circuits, save them to %1%2%3%2 Jotta peli löytäisi ratasi, tallenna ne hakemistoon %1%2%3%2 - - + + , %4%2 + tai %4%2 + + + + New file Uusi tiedosto - + Scale: Skaala: - + ERROR!!: Cannot load objects from ' VIRHE!! Ei voida ladata objekteja tiedostosta ' - + ' ' - + Scale set to %1% Skaala asetettu arvoon %1% - + &File &Tiedosto - + &New... &Uusi... - + &Open... &Avaa... - + &Save &Tallenna - + &Save as... Tallenna &nimellä... - + &Quit &Poistu - + &Edit &Muokkaa - + Undo Peruuta - + Redo Tee uudelleen @@ -112,130 +118,128 @@ &Tyhjennä kaikki - Enlarge hor size - Suurenna vaakasuunnassa + Suurenna vaakasuunnassa - Enlarge ver size - Suurenna pystysuunnassa + Suurenna pystysuunnassa - + &Set properties.. &Aseta radan ominaisuuksia... - + &Route &Reitti - + Clear &route Tyhjennä &reitti - + &Set route.. &Aseta reitti... - + &Help &Apua - + &About &Tietoa - + About &Qt &Tietoa &Qt:sta - + Select Valitse - + Erase object Poista objekti - + Clear Tyhjennä - + Open a track Avaa rata - - + + Track Files (*.trk) Ratatiedostot (*.trk) - + About Qt Tietoa Qt:sta - + ERROR!!: %1 doesn't exist. VIRHE!!: %1 ei ole olemassa. - + Track '%1' opened. Rata '%1' avattu. - + Failed to open track ' Virhe avattaessa rataa ' - - + + Track ' Rata ' - - + + ' saved. ' tallennettu. - + Failed to save track ' Virhe tallennettaessa rataa ' - + Save a track Tallenna rata - + Failed to save track as ' Virhe tallennettaessa rataa ' - + A new track '%1' created. Columns: %2, Rows: %3. Uusi rata '%1' luotu. Sarakkeita: %2, Rivejä: %3. - + Track properties updated. Radan ominaisuudet päivitetty. @@ -244,17 +248,17 @@ Indeksi asetettu arvoon '%1'. - + Set route: begin. Aseta reitti: alku. - + Set route, checkpoints and driving lines. Aseta reitti, tarkastuspisteet ja ajolinjat. - + Setting the route defines checkpoints for the cars so that no shortcuts can be taken. It also defines driving lines for the computer players. @@ -273,22 +277,22 @@ - + Set route Aseta reitti - + Invalid track. Route cannot be set. Epäkelpo rata. Reittiä ei voitu asettaa. - + Set route: not a valid track. Aseta reitti: rata ei validi. - + Set route: route finished. Aseta reitti: reitti valmis. @@ -338,7 +342,7 @@ Laatat tyhjennetty. - + Route cleared. Reitti tyhjennetty. @@ -346,83 +350,83 @@ QWidget - - + + Rotate 90 Pyöritä 90 - + CW.. Myötäpäivään.. - + CCW.. Vastapäivään.. - + Clear computer hint Tyhjennä tietokonevihje - + Set computer hint 'brake hard'.. Aseta tietokonevihje 'jarruta voimakkaasti'.. - + Set computer hint 'brake'.. Aseta tietokonevihje 'jarruta'.. - + Exclude from minimap Älä näytä kartassa - + Insert row before.. Lisää rivi ennen.. - + Insert row after.. Lisää rivi jälkeen.. - + Delete row.. Poista rivi.. - + Insert column before.. Lisää sarake ennen.. - + Insert column after.. Lisää sarake jälkeen.. - + Delete column.. Poista sarake.. - + Rotate.. Pyöritä.. - + Force stationary - + Pakota liikkumattomaksi - + Set size.. Aseta koko.. diff -Nru dustrac-2.0.1/src/editor/translations/dustrac-editor_fr.ts dustrac-2.0.5/src/editor/translations/dustrac-editor_fr.ts --- dustrac-2.0.1/src/editor/translations/dustrac-editor_fr.ts 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/translations/dustrac-editor_fr.ts 2020-01-06 23:07:24.000000000 +0000 @@ -12,98 +12,104 @@ MainWindow - + Randomly rotate objects Orienter les objets aléatoirement - + Loading '%1'.. Chargement de "%1"... - + Choose 'File -> New' or 'File -> Open' to start. Choisissez "Fichier -> Nouveau" ou "Fichier -> Ouvrir" pour commencer. - + Save your work to correct location. Enregistrez votre travail au bon endroit. - + + To make the game find your circuits, save them to %1%2%3%2 Pour que le jeu détecte vos circuits, enregistrez-les dans %1%2%3%2 - - + + , %4%2 + + + + + New file Nouveau fichier - + Scale: Échelle : - + ERROR!!: Cannot load objects from ' ERREUR : Impossible de charger les objets de " - + ' " - + Scale set to %1% Échelle définie à %1 %. - + &File &Fichier - + &New... &Nouveau... - + &Open... &Ouvrir... - + &Save &Enregistrer - + &Save as... &Enregistrer sous... - + &Quit &Quitter - + &Edit &Édition - + Undo Annuler - + Redo Refaire @@ -112,130 +118,128 @@ Tout &effacer - Enlarge hor size - Augmenter la taille horizontale + Augmenter la taille horizontale - Enlarge ver size - Augmenter la taille verticale + Augmenter la taille verticale - + &Set properties.. Définir les &propriétés... - + &Route &Parcours - + Clear &route &Effacer le parcours - + &Set route.. &Définir le parcours... - + &Help &Aide - + &About &À propos - + About &Qt À propos de &Qt - + Select Sélectionner - + Erase object Effacer l'objet - + Clear Effacer - + Open a track Ouvrir un circuit - - + + Track Files (*.trk) Fichiers de circuits (*.trk) - + About Qt À propos de Qt - + ERROR!!: %1 doesn't exist. ERREUR : %1 n'existe pas. - + Track '%1' opened. Circuit "%1" ouvert. - + Failed to open track ' Échec d'ouverture du circuit " - - + + Track ' Circuit " - - + + ' saved. " enregistré. - + Failed to save track ' Échec d'enregistrement du circuit " - + Save a track Enregistrer un circuit - + Failed to save track as ' Échec d'enregistrement du circuit dans " - + A new track '%1' created. Columns: %2, Rows: %3. Un nouveau circuit "%1" a été créé. Colonnes : %2, Lignes : %3. - + Track properties updated. @@ -244,17 +248,17 @@ Index défini à "%1". - + Set route: begin. Définition du parcours : départ. - + Set route, checkpoints and driving lines. Définir le parcours, les points de contrôle et les trajectoires - + Setting the route defines checkpoints for the cars so that no shortcuts can be taken. It also defines driving lines for the computer players. @@ -277,22 +281,22 @@ Cliquez à nouveau sur le premier nœud pour fermer la boucle. - + Set route Définir le parcours - + Invalid track. Route cannot be set. Circuit invalide. Le parcours ne peut pas être défini. - + Set route: not a valid track. Définition du parcours : le circuit n'est pas valide. - + Set route: route finished. Définition du parcours : parcours terminé. @@ -342,7 +346,7 @@ Cases supprimées. - + Route cleared. Parcours supprimé. @@ -350,83 +354,83 @@ QWidget - - + + Rotate 90 Tourner de 90 - + CW.. (sens horaire) - + CCW.. (sens anti-horaire) - + Clear computer hint Supprimer l'indice pour l'ordinateur - + Set computer hint 'brake hard'.. Définir l'indice "Freiner fortement" pour l'ordinateur - + Set computer hint 'brake'.. Définir l'indice "Freiner" pour l'ordinateur - + Exclude from minimap - + Insert row before.. - + Insert row after.. - + Delete row.. - + Insert column before.. - + Insert column after.. - + Delete column.. - + Rotate.. Tourner... - + Force stationary - + Set size.. Définir la taille... diff -Nru dustrac-2.0.1/src/editor/translations/dustrac-editor_it.ts dustrac-2.0.5/src/editor/translations/dustrac-editor_it.ts --- dustrac-2.0.1/src/editor/translations/dustrac-editor_it.ts 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/translations/dustrac-editor_it.ts 2020-01-06 23:07:24.000000000 +0000 @@ -12,98 +12,104 @@ MainWindow - + Randomly rotate objects Ruota casualmente gli oggetti - + Loading '%1'.. Loading '%1'.. - + Choose 'File -> New' or 'File -> Open' to start. Scegli 'File -> Nuovo' o 'File -> Apri' per iniziare. - + Save your work to correct location. Salva il tuo lavoro nella posizione corretta. - + + To make the game find your circuits, save them to %1%2%3%2 Per far trovare al gioco i tuoi circuiti, salvali in %1%2%3%2 - - + + , %4%2 + + + + + New file Nuovo file - + Scale: Scala: - + ERROR!!: Cannot load objects from ' Errore!!: Impossibile caricare gli oggetti da ' - + ' ' - + Scale set to %1% Scala impostata a %1% - + &File &File - + &New... &Nuovo... - + &Open... &Apri... - + &Save &Salva - + &Save as... &Salva come... - + &Quit &Esci - + &Edit &Modifica - + Undo Annulla - + Redo Ripeti @@ -112,130 +118,128 @@ &Cancella tutto - Enlarge hor size - Ingrandisci orizzontalmente + Ingrandisci orizzontalmente - Enlarge ver size - Ingrandisci verticalmente + Ingrandisci verticalmente - + &Set properties.. &Imposta proprietà.. - + &Route &Itinerario - + Clear &route Cancella &itinerario - + &Set route.. &Imposta itinerario.. - + &Help &Aiuto - + &About &Informazioni - + About &Qt Informazioni su &Qt - + Select Seleziona - + Erase object Cancella oggetto - + Clear Cancella - + Open a track Apri un tracciato - - + + Track Files (*.trk) Files dei tracciati(*.trk) - + About Qt Informazioni su Qt - + ERROR!!: %1 doesn't exist. ERRORE!!: %1 non esiste. - + Track '%1' opened. Tracciato '%1' aperto. - + Failed to open track ' Impossibile aprire tracciato ' - - + + Track ' Tracciato ' - - + + ' saved. ' salvato. - + Failed to save track ' Impossibile salvare il tracciato ' - + Save a track Salva un tracciato - + Failed to save track as ' Impossibile salvare il tracciato come ' - + A new track '%1' created. Columns: %2, Rows: %3. Nuovo tracciato '%1' creato. Colonne: %2, Righe: %3. - + Track properties updated. Proprietà del tracciato aggiornate. @@ -244,17 +248,17 @@ Indice impostato a '%1'. - + Set route: begin. Imposta itinerario: inizio. - + Set route, checkpoints and driving lines. Imposta itinerario, punti di controllo e linee di guida. - + Setting the route defines checkpoints for the cars so that no shortcuts can be taken. It also defines driving lines for the computer players. @@ -277,22 +281,22 @@ correttamente la rilevazione del giro e del tempo. - + Set route Imposta l'itinerario - + Invalid track. Route cannot be set. Tracciato non valido. L'itinerario non può essere impostato. - + Set route: not a valid track. Imposta itinerario: tracciato non valido. - + Set route: route finished. Imposta itinerario: itinerario terminato. @@ -342,7 +346,7 @@ Tessere eliminate. - + Route cleared. Itinerario eliminato. @@ -350,83 +354,83 @@ QWidget - - + + Rotate 90 Ruota di 90 - + CW.. in senso orario.. - + CCW.. in senso antiorario.. - + Clear computer hint Cancella suggerimenti al computer - + Set computer hint 'brake hard'.. Imposta suggerimento al computer 'frena forte'.. - + Set computer hint 'brake'.. Imposta suggerimento al computer 'frena'.. - + Exclude from minimap Escludi dalla minimappa - + Insert row before.. Inserisci una riga sopra.. - + Insert row after.. Inserisci una riga sotto.. - + Delete row.. Elimina riga.. - + Insert column before.. Inserisci una colonna prima.. - + Insert column after.. Inserisci una colonna dopo.. - + Delete column.. Elimina colonna.. - + Rotate.. Ruota.. - + Force stationary Forza stazionario - + Set size.. Imposta dimensione.. diff -Nru dustrac-2.0.1/src/editor/translations/dustrac-editor_ru.ts dustrac-2.0.5/src/editor/translations/dustrac-editor_ru.ts --- dustrac-2.0.1/src/editor/translations/dustrac-editor_ru.ts 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/editor/translations/dustrac-editor_ru.ts 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,425 @@ + + + + + AboutDlg + + About Dust Racing + О Dust Racing + + + + MainWindow + + ' + ' + + + Redo + Восстановить + + + Undo + Отменить + + + &Edit + &Редактировать + + + &File + &Файл + + + &Help + &Справка + + + &Quit + &Выход + + + &Save + &Сохранить + + + Clear + Очистить + + + A new track '%1' created. Columns: %2, Rows: %3. + Новая трасса %1 создана. Колонок: %2; Строк: %3. + + + Set route: not a valid track. + Настройки трассы: трасса не правильны. + + + Setting the route defines checkpoints for the cars so +that no shortcuts can be taken. It also defines +driving lines for the computer players. + +Click on the tiles one by one and make a closed loop +with the target nodes. You can adjust the nodes afterwads. +Start from the first tile after the finish line tile +to make the lap detection and timing work correctly. +Click on the first node again to finish. + Определяя направляющую вы устанавливаете контрольные пункты для машин и делите направляющую на маленькие отрезки, которые должны быть пройдены. +Также направляющая задает линию движения машин под управлением компьютера. +Щелкая на знакоместах(тайлах) один за одним сделайте замкнутую петлю с целевыми узлами. +Вы можете отрегулировать узлы позже. +Отмечается Старт на стартовом знакоместе и Финиш на финишном для верного подсчета кругов и времени. +Щелкните на первом узле снова для того чтобы закончить(замкнуть направляющую линию). + + + Track '%1' opened. + Трасса »%1« открыта. + + + &About + + + + &Route + &Направляющая + + + Erase object + Стереть объект + + + Index set to '%1'. + Значение индекса установлено в %1. + + + Choose 'File -> New' or 'File -> Open' to start. + Для начала работы выбрать в меню: "Файл" > "Новый" или "Файл" > "Открыть". + + + Set route, checkpoints and driving lines. + Установите контрольные точки и направляющие линии движения ИИ. + + + Enlarge ver size + Увеличить по вертикали + + + Randomly rotate objects + Случайно поворачивать объекты + + + Scale: + Масштаб: + + + Select + Выбрать + + + Scale set to %1% + Установлен масштаб в %1% процентов + + + Open a track + Открыть трассу + + + &Open... + &Открыть … + + + Set route + Установть направляющую + + + Clear &route + Очистить &направляющую + + + About &Qt + О &Qt + + + ERROR!!: Cannot load objects from ' + Ошибка! Не получилось загрузить объекты из: ' + + + Save a track + Сохранить трассу + + + &Save as... + Сохранить &как … + + + ' saved. + ' сохранено. + + + Loading '%1'.. + Загрузка: %1 … + + + ERROR!!: %1 doesn't exist. + Ошибка! %1 не найдено. + + + Save your work to correct location. + Сохраняйте ваши наработки в корректное место. + + + About Qt + О Qt + + + &New... + &Новый + + + &Clear all + Очистить &всё + + + Track ' + Трасса ' + + + &Set route.. + Установить &трассу … + + + New file + Новый файл + + + Track Files (*.trk) + Файлы трасс (*.trk) + + + Invalid track. Route cannot be set. + Некоректная трасса. Направляющая не может быть привязана. + + + Failed to open track ' + Не удалось открыть трассу: ' + + + Failed to save track as ' + Не удалось сохранить трассу как: ' + + + To make the game find your circuits, save them to %1%2%3%2 + Для того чтобы игра могла загрузить ваши трассы, сохраняйте их сюда: %1%2%3%2 + + + Failed to save track ' + Не удалось сохранить трассу: ' + + + Enlarge hor size + Увеличить по горизонтали + + + &Set properties.. + &Установить свойства … + + + Set route: route finished. + Установить свойство направляющей: Конец. + + + Set route: begin. + Установить свойство направляющей: Начало. + + + Track properties updated. + Свойства трассы обновлены + + + + NewTrackDialog + + Ok + OK + + + Cancel + Отмена + + + Number of tile columns: + Количество колонок: + + + Create a new track + Создать новую трассу + + + Track name: + Имя трассы: + + + Number of tile rows: + Количество строк: + + + User track: + Пользовательская трасса: + + + + QObject + + Tiles cleared. + Знакоместа(тайлы) очищены. + + + Route cleared. + Трасса очищена. + + + + QWidget + + CW.. + по часовой стрелке.. + + + CCW.. + против часовой стрелки.. + + + Set computer hint 'brake hard'.. + Установить подсказку для ИИ "Тормозить в пол".. + + + Rotate.. + Повернуть.. + + + Set size.. + Установить размер.. + + + Clear computer hint + Снять подсказку для ИИ + + + Rotate 90 + Повернуть на 90 + + + Set computer hint 'brake'.. + Установить подсказку для ИИ "Притормозить".. + + + Insert row.. + Вставить строку.. + + + Delete row.. + Удалить строку.. + + + Insert column.. + Вставить колонку.. + + + Delete column.. + Удалить колонку.. + + + Exclude from minimap + Исключить из мини карты + + + Insert row before.. + Вставить строку перед.. + + + Insert row after.. + Вставить строку после.. + + + Insert column before.. + Вставить колонку перед.. + + + Insert column after.. + Вставить колонку после.. + + + Force stationary + Сделать неподвижными + + + + RotateDialog + + Ok + OK + + + Cancel + Отмена + + + Angle in degrees: + Угол в градусах: + + + Rotate Object + Повернуть объект + + + + TargetNodeSizeDlg + + Ok + OK + + + Cancel + Отмена + + + Width: + Ширина: + + + Set target node size + Установить размер целевого узла + + + Height: + Высота: + + + + TrackPropertiesDialog + + Ok + OK + + + Set track properties + Установить свойства трассы + + + Cancel + Отмена + + + Index: + Индекс: + + + Name: + Имя: + + + User track: + Трасса добавленна пользователем: + + + diff -Nru dustrac-2.0.1/src/editor/undostack.cpp dustrac-2.0.5/src/editor/undostack.cpp --- dustrac-2.0.1/src/editor/undostack.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/undostack.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,7 +16,7 @@ #include "undostack.hpp" UndoStack::UndoStack(unsigned int maxHistorySize) - : m_maxHistorySize(maxHistorySize) + : m_maxHistorySize(maxHistorySize) { } diff -Nru dustrac-2.0.1/src/editor/undostack.hpp dustrac-2.0.5/src/editor/undostack.hpp --- dustrac-2.0.1/src/editor/undostack.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/editor/undostack.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -23,7 +23,6 @@ class UndoStack { public: - UndoStack(unsigned int maxHistorySize = 100); void pushUndoPoint(TrackDataPtr trackData); @@ -41,7 +40,6 @@ TrackDataPtr redo(); private: - using TrackDataVector = std::list; TrackDataVector m_undoStack; diff -Nru dustrac-2.0.1/src/game/ai.cpp dustrac-2.0.5/src/game/ai.cpp --- dustrac-2.0.1/src/game/ai.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/ai.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -14,23 +14,22 @@ // along with Dust Racing 2D. If not, see . #include "ai.hpp" +#include "../common/route.hpp" +#include "../common/tracktilebase.hpp" #include "car.hpp" +#include "race.hpp" #include "track.hpp" #include "trackdata.hpp" #include "tracktile.hpp" -#include "../common/route.hpp" -#include "../common/tracktilebase.hpp" #include #include - -AI::AI(Car & car) -: m_car(car) -, m_track(nullptr) -, m_route(nullptr) -, m_lastDiff(0) -, m_lastTargetNodeIndex(0) +AI::AI(Car & car, std::shared_ptr race) + : m_car(car) + , m_race(race) + , m_lastDiff(0) + , m_lastTargetNodeIndex(0) { } @@ -43,37 +42,34 @@ { if (m_track) { - if (m_lastTargetNodeIndex != m_car.currentTargetNodeIndex()) + if (m_lastTargetNodeIndex != m_race->getCurrentTargetNodeIndex(m_car)) { setRandomTolerance(); } - m_car.clearStatuses(); - const Route & route = m_track->trackData().route(); - steerControl(route.get(m_car.currentTargetNodeIndex())); + steerControl(route.get(m_race->getCurrentTargetNodeIndex(m_car))); - TrackTile & currentTile = *m_track->trackTileAtLocation(m_car.location().i(), m_car.location().j()); - speedControl(currentTile, isRaceCompleted); + speedControl(*m_track->trackTileAtLocation(m_car.location().i(), m_car.location().j()), isRaceCompleted); - m_lastTargetNodeIndex = m_car.currentTargetNodeIndex(); + m_lastTargetNodeIndex = m_race->getCurrentTargetNodeIndex(m_car); } } void AI::setRandomTolerance() { - m_randomTolerance = MCRandom::randomVector2d() * TrackTileBase::TILE_W / 8; + m_randomTolerance = MCRandom::randomVector2d() * TrackTileBase::width() / 8; } -void AI::steerControl(TargetNodeBasePtr tnode) +void AI::steerControl(TargetNodeBasePtr targetNode) { // Initial target coordinates - MCVector3dF target(tnode->location().x(), tnode->location().y()); + MCVector3dF target(static_cast(targetNode->location().x()), static_cast(targetNode->location().y())); target -= MCVector3dF(m_car.location() + MCVector3dF(m_randomTolerance)); - float angle = MCTrigonom::radToDeg(std::atan2(target.j(), target.i())); - float cur = static_cast(m_car.angle()) % 360; - float diff = angle - cur; + const float angle = MCTrigonom::radToDeg(std::atan2(target.j(), target.i())); + const float cur = static_cast(m_car.angle()) % 360; + float diff = angle - cur; bool ok = false; while (!ok) @@ -96,7 +92,7 @@ // PID-controller. This makes the computer players to turn and react faster // than the human player, but hey...they are stupid. - float control = diff * 0.025 + (diff - m_lastDiff) * 0.025; + float control = diff * 0.025f + (diff - m_lastDiff) * 0.025f; const float maxControl = 1.5; control = control < 0 ? -control : control; control = control > maxControl ? maxControl : control; @@ -123,13 +119,13 @@ // Braking / acceleration logic bool accelerate = true; - bool brake = false; + bool brake = false; const float absSpeed = m_car.absSpeed(); // The following speed limits are experimentally defined. float scale = 0.9f; - if (currentTile.computerHint() == TrackTile::CH_BRAKE) + if (currentTile.computerHint() == TrackTile::ComputerHint::Brake) { if (absSpeed > 14.0f * scale) { @@ -137,7 +133,7 @@ } } - if (currentTile.computerHint() == TrackTile::CH_BRAKE_HARD) + if (currentTile.computerHint() == TrackTile::ComputerHint::BrakeHard) { if (absSpeed > 9.5f * scale) { @@ -145,7 +141,7 @@ } } - if (currentTile.tileTypeEnum() == TrackTile::TT_CORNER_90) + if (currentTile.tileTypeEnum() == TrackTile::TileType::Corner90) { if (absSpeed > 7.0f * scale) { @@ -153,8 +149,7 @@ } } - if (currentTile.tileTypeEnum() == TrackTile::TT_CORNER_45_LEFT || - currentTile.tileTypeEnum() == TrackTile::TT_CORNER_45_RIGHT) + if (currentTile.tileTypeEnum() == TrackTile::TileType::Corner45Left || currentTile.tileTypeEnum() == TrackTile::TileType::Corner45Right) { if (absSpeed > 8.3f * scale) { @@ -181,16 +176,22 @@ if (brake) { - m_car.brake(); + m_car.setAcceleratorEnabled(false); + m_car.setBrakeEnabled(true); } else if (accelerate) { - m_car.accelerate(); + m_car.setAcceleratorEnabled(true); + m_car.setBrakeEnabled(false); + } + else + { + m_car.setAcceleratorEnabled(false); + m_car.setBrakeEnabled(false); } } -void AI::setTrack(Track & track) +void AI::setTrack(std::shared_ptr track) { - m_track = &track; - m_route = &track.trackData().route(); + m_track = track; } diff -Nru dustrac-2.0.1/src/game/ai.hpp dustrac-2.0.5/src/game/ai.hpp --- dustrac-2.0.1/src/game/ai.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/ai.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,12 +16,12 @@ #ifndef AI_HPP #define AI_HPP +#include "../common/targetnodebase.hpp" #include #include -#include "../common/targetnodebase.hpp" class Car; -class Route; +class Race; class Track; class TrackTile; @@ -29,21 +29,19 @@ class AI { public: - //! Constructor. - AI(Car & car); + AI(Car & car, std::shared_ptr race); //! Update. void update(bool isRaceCompleted); //! Set the current race track. - void setTrack(Track & track); + void setTrack(std::shared_ptr track); //! Get associated car. Car & car() const; private: - //! Steering logic. void steerControl(TargetNodeBasePtr tnode); @@ -54,13 +52,13 @@ Car & m_car; - Track * m_track; + std::shared_ptr m_race; - const Route * m_route; + std::shared_ptr m_track; - int m_lastDiff; + float m_lastDiff; - int m_lastTargetNodeIndex; + size_t m_lastTargetNodeIndex; MCVector2dF m_randomTolerance; }; diff -Nru dustrac-2.0.1/src/game/application.cpp dustrac-2.0.5/src/game/application.cpp --- dustrac-2.0.1/src/game/application.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/application.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -14,8 +14,8 @@ // along with Dust Racing 2D. If not, see . #include "application.hpp" +#include "simple_logger.hpp" -#include #include namespace { @@ -23,7 +23,7 @@ } Application::Application(int & argc, char ** argv) - : QApplication(argc, argv) + : QApplication(argc, argv) { } @@ -32,11 +32,10 @@ try { return QApplication::notify(receiver, event); - } - catch (std::exception & e) + } catch (std::exception & e) { - MCLogger().fatal() << e.what(); - MCLogger().fatal() << INIT_ERROR; + juzzlin::L().fatal() << e.what(); + juzzlin::L().fatal() << INIT_ERROR; QApplication::exit(EXIT_FAILURE); diff -Nru dustrac-2.0.1/src/game/application.hpp dustrac-2.0.5/src/game/application.hpp --- dustrac-2.0.1/src/game/application.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/application.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -23,7 +23,6 @@ Q_OBJECT public: - explicit Application(int & argc, char ** argv); /** Re-implementing this is required to make exceptions work with slots. */ diff -Nru dustrac-2.0.1/src/game/audio/audiosource.hpp dustrac-2.0.5/src/game/audio/audiosource.hpp --- dustrac-2.0.1/src/game/audio/audiosource.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/audiosource.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -25,7 +25,6 @@ Q_OBJECT public: - //! Constructor. AudioSource(); diff -Nru dustrac-2.0.1/src/game/audio/audioworker.cpp dustrac-2.0.5/src/game/audio/audioworker.cpp --- dustrac-2.0.1/src/game/audio/audioworker.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/audioworker.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -15,8 +15,8 @@ #include "audioworker.hpp" #include "audiosource.hpp" -#include "openalwavdata.hpp" #include "openaloggdata.hpp" +#include "openalwavdata.hpp" #include "settings.hpp" #include @@ -27,15 +27,15 @@ #include -static const int MAX_DIST = 250; +static const int MAX_DIST = 250; static const int REFERENCE_DIST = 50; AudioWorker::AudioWorker(int numCars, bool enabled) - : m_openALDevice(new OpenALDevice) - , m_inited(false) - , m_defaultVolume(0.5) - , m_numCars(numCars) - , m_enabled(enabled) + : m_openALDevice(new OpenALDevice) + , m_inited(false) + , m_defaultVolume(0.5) + , m_numCars(numCars) + , m_enabled(enabled) { } @@ -62,30 +62,20 @@ void AudioWorker::connectAudioSource(AudioSource & source) { - connect(&source, SIGNAL(playRequested(QString, bool)), - this, SLOT(playSound(QString, bool))); - connect(&source, SIGNAL(stopRequested(QString)), - this, SLOT(stopSound(QString))); - connect(&source, SIGNAL(pitchChanged(QString, float)), - this, SLOT(setPitch(QString, float))); - connect(&source, SIGNAL(volumeChanged(QString, float)), - this, SLOT(setVolume(QString, float))); - connect(&source, SIGNAL(locationChanged(QString, float, float)), - this, SLOT(setLocation(QString, float, float))); + connect(&source, &AudioSource::playRequested, this, &AudioWorker::playSound); + connect(&source, &AudioSource::stopRequested, this, &AudioWorker::stopSound); + connect(&source, &AudioSource::pitchChanged, this, &AudioWorker::setPitch); + connect(&source, &AudioSource::volumeChanged, this, &AudioWorker::setVolume); + connect(&source, &AudioSource::locationChanged, this, &AudioWorker::setLocation); } void AudioWorker::disconnectAudioSource(AudioSource & source) { - disconnect(&source, SIGNAL(playRequested(QString, bool)), - this, SLOT(playSound(QString, bool))); - disconnect(&source, SIGNAL(stopRequested(QString)), - this, SLOT(stopSound(QString))); - disconnect(&source, SIGNAL(pitchChanged(QString, float)), - this, SLOT(setPitch(QString, float))); - disconnect(&source, SIGNAL(volumeChanged(QString, float)), - this, SLOT(setVolume(QString, float))); - disconnect(&source, SIGNAL(locationChanged(QString, float, float)), - this, SLOT(setLocation(QString, float, float))); + disconnect(&source, &AudioSource::playRequested, this, &AudioWorker::playSound); + disconnect(&source, &AudioSource::stopRequested, this, &AudioWorker::stopSound); + disconnect(&source, &AudioSource::pitchChanged, this, &AudioWorker::setPitch); + disconnect(&source, &AudioSource::volumeChanged, this, &AudioWorker::setVolume); + disconnect(&source, &AudioSource::locationChanged, this, &AudioWorker::setLocation); } void AudioWorker::loadSounds() @@ -108,11 +98,11 @@ void AudioWorker::loadSingleInstanceCarSound(QString handle, QString path, float volume) { const QString soundPath = - QString(DATA_PATH) + QDir::separator() + "sounds" + QDir::separator() + path; + QString(DATA_PATH) + QDir::separator() + "sounds" + QDir::separator() + path; checkFile(soundPath); STFH::SourcePtr source(new OpenALSource( - STFH::DataPtr(new OpenALOggData(soundPath.toStdString())))); + STFH::DataPtr(new OpenALOggData(soundPath.toStdString())))); source->setMaxDist(MAX_DIST); source->setReferenceDist(REFERENCE_DIST); source->setVolume(volume); @@ -122,19 +112,19 @@ void AudioWorker::loadCommonSound(QString handle, QString path, float volume) { const QString soundPath = - QString(DATA_PATH) + QDir::separator() + "sounds" + QDir::separator() + path; + QString(DATA_PATH) + QDir::separator() + "sounds" + QDir::separator() + path; checkFile(soundPath); m_soundMap[handle] = - STFH::SourcePtr(new OpenALSource( - STFH::DataPtr(new OpenALOggData(soundPath.toStdString())))); + STFH::SourcePtr(new OpenALSource( + STFH::DataPtr(new OpenALOggData(soundPath.toStdString())))); m_soundMap[handle]->setVolume(volume); } void AudioWorker::loadMultiInstanceCarSound(QString baseName, QString path, float volume) { const QString soundPath = - QString(DATA_PATH) + QDir::separator() + "sounds" + QDir::separator() + path; + QString(DATA_PATH) + QDir::separator() + "sounds" + QDir::separator() + path; checkFile(soundPath); STFH::DataPtr sharedData(new OpenALOggData(soundPath.toStdString())); diff -Nru dustrac-2.0.1/src/game/audio/audioworker.hpp dustrac-2.0.5/src/game/audio/audioworker.hpp --- dustrac-2.0.1/src/game/audio/audioworker.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/audioworker.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -31,7 +31,6 @@ Q_OBJECT public: - AudioWorker(int numCars, bool enabled); virtual ~AudioWorker(); @@ -65,7 +64,6 @@ void setEnabled(bool enabled); private: - void checkFile(QString path); void loadCommonSound(QString handle, QString path, float volume = 1.0f); diff -Nru dustrac-2.0.1/src/game/audio/openaldata.hpp dustrac-2.0.5/src/game/audio/openaldata.hpp --- dustrac-2.0.1/src/game/audio/openaldata.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/openaldata.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,8 +16,8 @@ #ifndef OPENALDATA_HPP #define OPENALDATA_HPP -#include #include +#include #include @@ -25,7 +25,6 @@ class OpenALData : public STFH::Data { public: - //! Constructor. OpenALData(); diff -Nru dustrac-2.0.1/src/game/audio/openaldevice.cpp dustrac-2.0.5/src/game/audio/openaldevice.cpp --- dustrac-2.0.1/src/game/audio/openaldevice.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/openaldevice.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -15,25 +15,24 @@ #include "openaldevice.hpp" -#include - +#include "simple_logger.hpp" OpenALDevice::OpenALDevice() - : m_device(nullptr) - , m_context(nullptr) + : m_device(nullptr) + , m_context(nullptr) { } void OpenALDevice::initialize() { - m_device = alcOpenDevice(alcGetString(NULL, ALC_DEFAULT_DEVICE_SPECIFIER)); + m_device = alcOpenDevice(alcGetString(nullptr, ALC_DEFAULT_DEVICE_SPECIFIER)); if (!m_device) { throw std::runtime_error("Failed to open default sound device"); } - MCLogger().info() << "Sound device: " << alcGetString(m_device, ALC_DEVICE_SPECIFIER); + juzzlin::L().info() << "Sound device: " << alcGetString(m_device, ALC_DEVICE_SPECIFIER); - m_context = alcCreateContext(m_device, NULL); + m_context = alcCreateContext(m_device, nullptr); if (!alcMakeContextCurrent(m_context)) { throw std::runtime_error("Failed to create default sound context"); diff -Nru dustrac-2.0.1/src/game/audio/openaldevice.hpp dustrac-2.0.5/src/game/audio/openaldevice.hpp --- dustrac-2.0.1/src/game/audio/openaldevice.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/openaldevice.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -25,7 +25,6 @@ class OpenALDevice : public STFH::Device { public: - //! Constructor. OpenALDevice(); @@ -39,8 +38,7 @@ virtual ~OpenALDevice(); private: - - ALCdevice * m_device; + ALCdevice * m_device; ALCcontext * m_context; }; diff -Nru dustrac-2.0.1/src/game/audio/openaloggdata.cpp dustrac-2.0.5/src/game/audio/openaloggdata.cpp --- dustrac-2.0.1/src/game/audio/openaloggdata.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/openaloggdata.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,8 +17,8 @@ #include -#include #include +#include #include @@ -34,16 +34,16 @@ // http://www.gamedev.net/page/resources/_/technical/game-programming/introduction-to-ogg-vorbis-r2031 static void loadOgg(const char * fileName, std::vector & buffer, ALenum & format, ALsizei & freq) { - int endian = 0; // 0 for Little-Endian, 1 for Big-Endian + int endian = 0; // 0 for Little-Endian, 1 for Big-Endian int bitStream; long bytes; - char array[BUFFER_SIZE]; // Local fixed size array - FILE *f; + char array[BUFFER_SIZE]; // Local fixed size array + FILE * f; // Open for binary reading f = std::fopen(fileName, "rb"); - vorbis_info *pInfo; + vorbis_info * pInfo; OggVorbis_File oggFile; ov_open(f, &oggFile, NULL, 0); @@ -76,8 +76,8 @@ } OpenALOggData::OpenALOggData(const std::string & path) - : m_freq(0) - , m_buffer(0) + : m_freq(0) + , m_buffer(0) { load(path); } diff -Nru dustrac-2.0.1/src/game/audio/openaloggdata.hpp dustrac-2.0.5/src/game/audio/openaloggdata.hpp --- dustrac-2.0.1/src/game/audio/openaloggdata.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/openaloggdata.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -22,7 +22,6 @@ class OpenALOggData : public OpenALData { public: - //! Constructor. OpenALOggData(const std::string & path); @@ -36,10 +35,9 @@ virtual ALuint buffer() const override; private: - ALsizei m_freq; - ALenum m_format; - ALuint m_buffer; + ALenum m_format; + ALuint m_buffer; }; #endif // OPENALOGGDATA_HPP diff -Nru dustrac-2.0.1/src/game/audio/openalsource.cpp dustrac-2.0.5/src/game/audio/openalsource.cpp --- dustrac-2.0.1/src/game/audio/openalsource.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/openalsource.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -27,15 +27,15 @@ } OpenALSource::OpenALSource(STFH::DataPtr data) - : m_handle(0) + : m_handle(0) { alGenSources((ALuint)1, &m_handle); - alSourcef(m_handle, AL_PITCH, pitch()); - alSourcef(m_handle, AL_GAIN, volume()); + alSourcef(m_handle, AL_PITCH, pitch()); + alSourcef(m_handle, AL_GAIN, volume()); alSource3f(m_handle, AL_POSITION, 0, 0, 0); alSource3f(m_handle, AL_VELOCITY, 0, 0, 0); - alSourcei(m_handle, AL_LOOPING, AL_FALSE); + alSourcei(m_handle, AL_LOOPING, AL_FALSE); setData(data); } diff -Nru dustrac-2.0.1/src/game/audio/openalsource.hpp dustrac-2.0.5/src/game/audio/openalsource.hpp --- dustrac-2.0.1/src/game/audio/openalsource.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/openalsource.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -27,7 +27,6 @@ class OpenALSource : public STFH::Source { public: - //! Constructor. OpenALSource(STFH::DataPtr data); @@ -59,7 +58,6 @@ virtual void setReferenceDist(float refDist) override; private: - ALuint m_handle; }; diff -Nru dustrac-2.0.1/src/game/audio/openalwavdata.cpp dustrac-2.0.5/src/game/audio/openalwavdata.cpp --- dustrac-2.0.1/src/game/audio/openalwavdata.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/openalwavdata.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -15,11 +15,16 @@ #define _CRT_SECURE_NO_WARNINGS +// Always enable asserts +#ifdef NDEBUG +#undef NDEBUG +#endif + #include "openalwavdata.hpp" +#include #include #include -#include static bool checkError() { @@ -30,42 +35,46 @@ // WAV load code from http://www.dunsanyinteractive.com/blogs/oliver/?p=72 // by Oliver Plunkett -struct RIFF_Header { - char chunkID[4]; - int32_t chunkSize; - char format[4]; +struct RIFF_Header +{ + char chunkID[4]; + int32_t chunkSize; + char format[4]; }; -struct WAVE_Format { - char subChunkID[4]; - int32_t subChunkSize; - int16_t audioFormat; - int16_t numChannels; - int32_t sampleRate; - int32_t byteRate; - int16_t blockAlign; - int16_t bitsPerSample; +struct WAVE_Format +{ + char subChunkID[4]; + int32_t subChunkSize; + int16_t audioFormat; + int16_t numChannels; + int32_t sampleRate; + int32_t byteRate; + int16_t blockAlign; + int16_t bitsPerSample; }; -struct WAVE_Data { - char subChunkID[4]; // Should contain the word data - int32_t subChunk2Size; // Stores the size of the data block +struct WAVE_Data +{ + char subChunkID[4]; // Should contain the word data + int32_t subChunk2Size; // Stores the size of the data block }; static bool loadWavFile( - const std::string& filename, - ALuint* buffer, - ALsizei* size, - ALsizei* frequency, - ALenum* format) + const std::string & filename, + ALuint * buffer, + ALsizei * size, + ALsizei * frequency, + ALenum * format) { - FILE* soundFile = NULL; + FILE * soundFile = nullptr; WAVE_Format wave_format; RIFF_Header riff_header; WAVE_Data wave_data; - unsigned char* data; + unsigned char * data; - try { + try + { soundFile = fopen(filename.c_str(), "rb"); if (!soundFile) throw std::runtime_error(filename); @@ -75,14 +84,7 @@ assert(bytesRead == sizeof(RIFF_Header)); //check for RIFF and WAVE tag in memeory - if ((riff_header.chunkID[0] != 'R' || - riff_header.chunkID[1] != 'I' || - riff_header.chunkID[2] != 'F' || - riff_header.chunkID[3] != 'F') || - (riff_header.format[0] != 'W' || - riff_header.format[1] != 'A' || - riff_header.format[2] != 'V' || - riff_header.format[3] != 'E')) + if ((riff_header.chunkID[0] != 'R' || riff_header.chunkID[1] != 'I' || riff_header.chunkID[2] != 'F' || riff_header.chunkID[3] != 'F') || (riff_header.format[0] != 'W' || riff_header.format[1] != 'A' || riff_header.format[2] != 'V' || riff_header.format[3] != 'E')) throw std::runtime_error("Invalid RIFF or WAVE Header"); //Read in the 2nd chunk for the wave info @@ -90,10 +92,7 @@ assert(bytesRead == sizeof(WAVE_Format)); //check for fmt tag in memory - if (wave_format.subChunkID[0] != 'f' || - wave_format.subChunkID[1] != 'm' || - wave_format.subChunkID[2] != 't' || - wave_format.subChunkID[3] != ' ') + if (wave_format.subChunkID[0] != 'f' || wave_format.subChunkID[1] != 'm' || wave_format.subChunkID[2] != 't' || wave_format.subChunkID[3] != ' ') throw std::runtime_error("Invalid Wave Format"); //check for extra parameters; @@ -105,17 +104,14 @@ assert(bytesRead == sizeof(WAVE_Data)); //check for data tag in memory - if (wave_data.subChunkID[0] != 'd' || - wave_data.subChunkID[1] != 'a' || - wave_data.subChunkID[2] != 't' || - wave_data.subChunkID[3] != 'a') + if (wave_data.subChunkID[0] != 'd' || wave_data.subChunkID[1] != 'a' || wave_data.subChunkID[2] != 't' || wave_data.subChunkID[3] != 'a') throw std::runtime_error("Invalid data header"); //Allocate memory for data data = new unsigned char[wave_data.subChunk2Size]; // Read in the sound data into the soundData variable - if (!std::fread(data, wave_data.subChunk2Size, 1, soundFile)) + if (!std::fread(data, static_cast(wave_data.subChunk2Size), 1, soundFile)) throw std::runtime_error("error loading WAVE data into struct!"); //Now we set the variables that we passed in with the @@ -124,13 +120,16 @@ *frequency = wave_format.sampleRate; //The format is worked out by looking at the number of //channels and the bits per sample. - if (wave_format.numChannels == 1) { - if (wave_format.bitsPerSample == 8 ) + if (wave_format.numChannels == 1) + { + if (wave_format.bitsPerSample == 8) *format = AL_FORMAT_MONO8; else if (wave_format.bitsPerSample == 16) *format = AL_FORMAT_MONO16; - } else if (wave_format.numChannels == 2) { - if (wave_format.bitsPerSample == 8 ) + } + else if (wave_format.numChannels == 2) + { + if (wave_format.bitsPerSample == 8) *format = AL_FORMAT_STEREO8; else if (wave_format.bitsPerSample == 16) *format = AL_FORMAT_STEREO16; @@ -140,13 +139,13 @@ checkError(); //now we put our data into the openAL buffer and //check for success - alBufferData(*buffer, *format, (void*)data, - *size, *frequency); + alBufferData(*buffer, *format, reinterpret_cast(data), *size, *frequency); checkError(); //clean up and return true if successful fclose(soundFile); return true; - } catch(std::string error) { + } catch (std::string error) + { //clean up memory if wave loading fails std::fclose(soundFile); //return false to indicate the failure to load wave @@ -155,9 +154,9 @@ } OpenALWavData::OpenALWavData(const std::string & path) - : m_size(0) - , m_freq(0) - , m_buffer(0) + : m_size(0) + , m_freq(0) + , m_buffer(0) { load(path); } diff -Nru dustrac-2.0.1/src/game/audio/openalwavdata.hpp dustrac-2.0.5/src/game/audio/openalwavdata.hpp --- dustrac-2.0.1/src/game/audio/openalwavdata.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/audio/openalwavdata.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -22,7 +22,6 @@ class OpenALWavData : public OpenALData { public: - //! Constructor. OpenALWavData(const std::string & path); @@ -36,10 +35,9 @@ virtual ALuint buffer() const override; private: - ALsizei m_size, m_freq; - ALenum m_format; - ALuint m_buffer; + ALenum m_format; + ALuint m_buffer; }; #endif // OPENALWAVDATA_HPP diff -Nru dustrac-2.0.1/src/game/bridge.cpp dustrac-2.0.5/src/game/bridge.cpp --- dustrac-2.0.1/src/game/bridge.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/bridge.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -14,72 +14,99 @@ // along with Dust Racing 2D. If not, see . #include "bridge.hpp" -#include "bridgetrigger.hpp" +#include "../contrib/SimpleLogger/src/simple_logger.hpp" #include "car.hpp" #include "layers.hpp" #include "renderer.hpp" +#include "tracktile.hpp" #include #include #include #include #include +#include #include #include namespace { -static const char * BRIDGE_ID = "bridge"; -static const char * BRIDGE_RAIL_ID = "bridgeRail"; -static const int RAIL_Z = 16; -static const float OBJECT_Z_DELTA = RAIL_Z; -static const float OBJECT_Z_ZERO = 0.0f; -static const int WIDTH = 256; -} +static const float RAIL_Z = 16; +} // namespace + +Bridge::ObjectStatusMap Bridge::m_onBridgeStatusMap; + +Bridge::ObjectStatusMap Bridge::m_underBridgeStatusMap; + +class UnderBridgeTrigger : public MCObject +{ +public: + UnderBridgeTrigger(Bridge & bridge) + : MCObject("under_bridge_trigger") + , m_bridge(bridge) + { + setShape(MCShapePtr(new MCRectShape(nullptr, TrackTile::width() - TrackTile::width() / 8, TrackTile::height() + TrackTile::height() / 8))); + + setCollisionLayer(-1); + setIsPhysicsObject(false); + setIsTriggerObject(true); + + physicsComponent().setMass(0, true); + } + + //! \reimp + virtual void collisionEvent(MCCollisionEvent & event) override + { + if (!event.collidingObject().physicsComponent().isStationary()) + { + m_bridge.objectUnderBridge(event.collidingObject(), true); + } + } + + //! \reimp + inline void separationEvent(MCSeparationEvent & event) override + { + m_bridge.objectUnderBridge(event.separatedObject(), false); + } + +private: + Bridge & m_bridge; +}; Bridge::Bridge() - : MCObject(BRIDGE_ID) - , m_tag(0) + : MCObject("bridge") { - auto && shape = MCShapePtr(new MCRectShape(nullptr, WIDTH, WIDTH)); - setShape(shape); + setShape(std::make_shared(nullptr, TrackTile::width(), TrackTile::height())); setCollisionLayer(-1); - setIsPhysicsObject(false); setIsTriggerObject(true); physicsComponent().setMass(0, true); - const int railYDisplacement = 110; - + const auto bridgeRailId = "bridge_rail"; auto && railSurface = MCAssetManager::instance().surfaceManager().surface("wallLong"); - - auto && rail0 = MCObjectPtr(new MCObject(railSurface, BRIDGE_RAIL_ID)); + const auto rail0 = std::make_shared(railSurface, bridgeRailId); + const int railYDisplacement = 42 * static_cast(TrackTile::height()) / 100; addChildObject(rail0, MCVector3dF(0, -railYDisplacement, RAIL_Z)); + const auto rail1 = std::make_shared(railSurface, bridgeRailId); + addChildObject(rail1, MCVector3dF(0, railYDisplacement, RAIL_Z)); - auto && rail1 = MCObjectPtr(new MCObject(railSurface, BRIDGE_RAIL_ID)); - addChildObject(rail1, MCVector3dF(0, railYDisplacement, RAIL_Z)); - - rail0->setCollisionLayer(static_cast(Layers::Collision::BridgeRails)); + const auto railLayer = static_cast(Layers::Collision::BridgeRails); + rail0->setCollisionLayer(railLayer); rail0->physicsComponent().setMass(0, true); - rail0->shape()->view()->setShaderProgram(Renderer::instance().program("defaultSpecular")); - - rail1->setCollisionLayer(static_cast(Layers::Collision::BridgeRails)); + const auto railShader = Renderer::instance().program("defaultSpecular"); + rail0->shape()->view()->setShaderProgram(railShader); + rail1->setCollisionLayer(railLayer); rail1->physicsComponent().setMass(0, true); - rail1->shape()->view()->setShaderProgram(Renderer::instance().program("defaultSpecular")); - - const int triggerXDisplacement = WIDTH / 2; - - auto && trigger0 = MCObjectPtr(new BridgeTrigger(*this)); - addChildObject(trigger0, MCVector3dF(-triggerXDisplacement, 0, 0)); + rail1->shape()->view()->setShaderProgram(railShader); - auto && trigger1 = MCObjectPtr(new BridgeTrigger(*this)); - addChildObject(trigger1, MCVector3dF( triggerXDisplacement, 0, 0)); + const auto underBridgeTrigger = std::make_shared(*this); + addChildObject(underBridgeTrigger, MCVector3dF(0, 0, 0)); MCMeshObjectData data("bridge"); data.setMeshId("bridge"); data.setSurfaceId("asphalt"); - data.setRestitution(0.9); + data.setRestitution(0.9f); MCObjectFactory objectFactory(MCAssetManager::instance()); auto bridgeMeshObject = objectFactory.build(data); @@ -92,7 +119,7 @@ { const auto x = object.location().i(); const auto y = object.location().j(); - const auto z = raise ? location().k() + OBJECT_Z_DELTA : OBJECT_Z_ZERO; + const auto z = raise ? location().k() + RAIL_Z : 0.0f; const MCVector3dF newLocation(x, y, z); object.translate(newLocation); @@ -100,59 +127,55 @@ object.shape()->setShadowOffset(MCVector3dF(s.i(), s.j(), z)); } -void Bridge::enterObject(MCObject & object) +void Bridge::collisionEvent(MCCollisionEvent & event) { - if (!m_objectsEntered.count(&object)) + if (!event.collidingObject().physicsComponent().isStationary()) { - object.setCollisionLayer(static_cast(Layers::Collision::BridgeRails)); - - raiseObject(object, true); - - m_objectsEntered[&object] = true; - m_objectsOnBridge[&object] = m_tag; + const auto object = &event.collidingObject(); + juzzlin::L().debug() << "Object " << object->index() << " collided with bridge " << index(); + if (!Bridge::m_underBridgeStatusMap[object].count(this)) + { + Bridge::m_onBridgeStatusMap[object].insert(this); + juzzlin::L().debug() << "Raising object " << object->index(); + object->setCollisionLayer(static_cast(Layers::Collision::BridgeRails)); + raiseObject(*object, true); + } } } -void Bridge::collisionEvent(MCCollisionEvent & event) +void Bridge::separationEvent(MCSeparationEvent & event) { - MCObject & object = event.collidingObject(); - if (!object.physicsComponent().isStationary()) + const auto object = &event.separatedObject(); + juzzlin::L().debug() << "Object " << object->index() << " separated with bridge " << index(); + Bridge::m_onBridgeStatusMap[object].erase(this); + if (Bridge::m_onBridgeStatusMap[object].empty()) { - if (m_objectsEntered.count(&object)) - { - object.setCollisionLayer(static_cast(Layers::Collision::BridgeRails)); - object.physicsComponent().preventSleeping(true); - - raiseObject(object, true); - - m_objectsOnBridge[&object] = m_tag; - } + juzzlin::L().debug() << "Lowering object " << object->index(); + object->setCollisionLayer(0); // MCObject default collision layer + object->physicsComponent().preventSleeping(false); + raiseObject(*object, false); } } -// Check if object has left the bridge -void Bridge::onStepTime(int) +void Bridge::objectUnderBridge(MCObject & object, bool isUnder) { - const int frameTolerance = 2; - auto iter = m_objectsOnBridge.begin(); - while (iter != m_objectsOnBridge.end()) + if (isUnder) { - if (m_tag > iter->second + frameTolerance) - { - MCObject & object = *iter->first; - object.setCollisionLayer(0); // MCObject default collision layer - object.physicsComponent().preventSleeping(false); - - raiseObject(object, false); - - m_objectsEntered.erase(&object); - iter = m_objectsOnBridge.erase(iter); - } - else + if (!Bridge::m_onBridgeStatusMap[&object].count(this)) { - iter++; + juzzlin::L().debug() << "Object " << object.index() << " under bridge " << index(); + Bridge::m_underBridgeStatusMap[&object].insert(this); } } + else + { + juzzlin::L().debug() << "Object " << object.index() << " not under bridge " << index(); + Bridge::m_underBridgeStatusMap[&object].erase(this); + } +} - m_tag++; +void Bridge::reset() +{ + Bridge::m_onBridgeStatusMap.clear(); + Bridge::m_underBridgeStatusMap.clear(); } diff -Nru dustrac-2.0.1/src/game/bridge.hpp dustrac-2.0.5/src/game/bridge.hpp --- dustrac-2.0.1/src/game/bridge.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/bridge.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,36 +17,35 @@ #define BRIDGE_HPP #include - #include class MCCollisionEvent; +class MCSeparationEvent; class MCSurface; -class Car; class Bridge : public MCObject { public: - Bridge(); //! \reimp virtual void collisionEvent(MCCollisionEvent & event) override; //! \reimp - virtual void onStepTime(int step) override; + virtual void separationEvent(MCSeparationEvent & event) override; + + void objectUnderBridge(MCObject & object, bool isUnder); - void enterObject(MCObject & object); + static void reset(); private: + void doExitObject(MCObject & object); void raiseObject(MCObject & object, bool raise); - std::map m_objectsOnBridge; - - std::map m_objectsEntered; - - int m_tag; + using ObjectStatusMap = std::map>; + static ObjectStatusMap m_onBridgeStatusMap; + static ObjectStatusMap m_underBridgeStatusMap; }; #endif // BRIDGE_HPP diff -Nru dustrac-2.0.1/src/game/bridgetrigger.cpp dustrac-2.0.5/src/game/bridgetrigger.cpp --- dustrac-2.0.1/src/game/bridgetrigger.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/bridgetrigger.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -// This file is part of Dust Racing 2D. -// Copyright (C) 2014 Jussi Lind -// -// Dust Racing 2D is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// Dust Racing 2D is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Dust Racing 2D. If not, see . - -#include "bridgetrigger.hpp" -#include "bridge.hpp" -#include "layers.hpp" - -#include -#include -#include - -static const char * BRIDGE_TRIGGER_ID = "bridgeTrigger"; - -BridgeTrigger::BridgeTrigger(Bridge & bridge) -: MCObject(BRIDGE_TRIGGER_ID) -, m_bridge(bridge) -{ - MCRectShape * shape = new MCRectShape(nullptr, 16, 224); - setShape(MCShapePtr(shape)); - - setCollisionLayer(-1); - - setIsPhysicsObject(false); - setIsTriggerObject(true); - - physicsComponent().setMass(0, true); -} - -void BridgeTrigger::collisionEvent(MCCollisionEvent & event) -{ - if (!event.collidingObject().physicsComponent().isStationary()) - { - m_bridge.enterObject(event.collidingObject()); - } -} diff -Nru dustrac-2.0.1/src/game/bridgetrigger.hpp dustrac-2.0.5/src/game/bridgetrigger.hpp --- dustrac-2.0.1/src/game/bridgetrigger.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/bridgetrigger.hpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -// This file is part of Dust Racing 2D. -// Copyright (C) 2014 Jussi Lind -// -// Dust Racing 2D is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// Dust Racing 2D is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Dust Racing 2D. If not, see . - -#ifndef BRIDGETRIGGER_HPP -#define BRIDGETRIGGER_HPP - -#include - -class Bridge; - -class BridgeTrigger : public MCObject -{ -public: - - BridgeTrigger(Bridge & bridge); - - //! \reimp - virtual void collisionEvent(MCCollisionEvent & event) override; - -private: - - Bridge & m_bridge; -}; - -#endif // BRIDGETRIGGER_HPP diff -Nru dustrac-2.0.1/src/game/car.cpp dustrac-2.0.5/src/game/car.cpp --- dustrac-2.0.1/src/game/car.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/car.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -14,8 +14,11 @@ // along with Dust Racing 2D. If not, see . #include "car.hpp" +#include "carparticleeffectmanager.hpp" #include "carphysicscomponent.hpp" +#include "carsoundeffectmanager.hpp" #include "game.hpp" +#include "gearbox.hpp" #include "graphicsfactory.hpp" #include "layers.hpp" #include "renderer.hpp" @@ -44,94 +47,99 @@ using std::dynamic_pointer_cast; using std::static_pointer_cast; -Car::Car(Description & desc, MCSurface & surface, unsigned int index, bool isHuman) -: MCObject(surface, "car") -, m_desc(desc) -, m_onTrackFriction(new MCFrictionGenerator(desc.rollingFrictionOnTrack, 0.0)) -, m_leftSideOffTrack(false) -, m_rightSideOffTrack(false) -, m_accelerating(false) -, m_braking(false) -, m_reverse(false) -, m_skidding(false) -, m_steer(Steer::Neutral) -, m_index(index) -, m_tireAngle(0) -, m_initDamageCapacity(100) -, m_damageCapacity(m_initDamageCapacity) -, m_initTireWearOutCapacity(100) -, m_tireWearOutCapacity(m_initTireWearOutCapacity) -, m_frontTire(MCAssetManager::surfaceManager().surface("frontTire")) -, m_brakeGlow(MCAssetManager::surfaceManager().surface("brakeGlow")) -, m_speedInKmh(0) -, m_absSpeed(0) -, m_dx(0) -, m_dy(0) -, m_currentTargetNodeIndex(-1) -, m_prevTargetNodeIndex(-1) -, m_routeProgression(0) -, m_position(0) -, m_isHuman(isHuman) -, m_particleEffectManager(*this) -, m_numberPos(-5, 0, 0) -, m_leftFrontTirePos(14, 9, 0) -, m_rightFrontTirePos(14, -9, 0) -, m_leftRearTirePos(-14, 9, 0) -, m_rightRearTirePos(-14, -9, 0) -, m_leftBrakeGlowPos(-21, 8, 0) -, m_rightBrakeGlowPos(-21, -8, 0) -, m_hadHardCrash(false) +Car::Car(Description & desc, MCSurfacePtr surface, size_t index, bool isHuman) + : MCObject(surface, "car") + , m_desc(desc) + , m_onTrackFriction(new MCFrictionGenerator(desc.rollingFrictionOnTrack, 0.0)) + , m_leftSideOffTrack(false) + , m_rightSideOffTrack(false) + , m_skidding(false) + , m_steer(Steer::Neutral) + , m_index(index) + , m_tireAngle(0) + , m_initDamageCapacity(100) + , m_damageCapacity(m_initDamageCapacity) + , m_initTireWearOutCapacity(100) + , m_tireWearOutCapacity(m_initTireWearOutCapacity) + , m_frontTire(MCAssetManager::surfaceManager().surface("frontTire")) + , m_brakeGlow(MCAssetManager::surfaceManager().surface("brakeGlow")) + , m_speedInKmh(0) + , m_absSpeed(0) + , m_dx(0) + , m_dy(0) + , m_isHuman(isHuman) + , m_particleEffectManager(std::make_unique(*this)) + , m_numberPos(-5, 0, 0) + , m_leftFrontTirePos(14, 9, 0) + , m_rightFrontTirePos(14, -9, 0) + , m_leftRearTirePos(-14, 9, 0) + , m_rightRearTirePos(-14, -9, 0) + , m_leftBrakeGlowPos(-21, 8, 0) + , m_rightBrakeGlowPos(-21, -8, 0) + , m_hadHardCrash(false) + , m_gearbox(new Gearbox) { // Override the default physics component to handle damage from impulses - setPhysicsComponent(*(new CarPhysicsComponent(*this))); + setPhysicsComponent(std::make_unique(*this)); setProperties(desc); + initForceGenerators(desc); + createChildObjects(surface->maxZ(), index); +} + +void Car::createChildObjects(float maxZ, size_t index) +{ // Note that the z-coordinate of the actual car body is 0. The small lift is done in the // surface vertex level and configured in surfaces.conf. - MCObjectPtr numberPlate(new MCObject(GraphicsFactory::generateNumberSurface(index), "Number")); - addChildObject(numberPlate, m_numberPos + MCVector3dF(0, 0, surface.maxZ() + 1), 90); + const auto numberPlate = std::make_shared(GraphicsFactory::generateNumberSurface(index), "Number"); + addChildObject(numberPlate, m_numberPos + MCVector3dF(0, 0, maxZ + 1), 90); numberPlate->setBypassCollisions(true); numberPlate->shape()->view()->setHasShadow(false); - const float offTrackFrictionFactor = 0.8f; - const float frontFriction = 0.85f; - const MCVector3dF tireZ = MCVector3dF(0, 0, 1); - m_leftFrontTire.reset(new Tire(*this, frontFriction, frontFriction)); - addChildObject(m_leftFrontTire, m_leftFrontTirePos + tireZ, 0); - - m_rightFrontTire.reset(new Tire(*this, frontFriction, frontFriction)); - addChildObject(m_rightFrontTire, m_rightFrontTirePos + tireZ, 0); - - const float rearFriction = 0.95f; - m_leftRearTire.reset(new Tire(*this, rearFriction, rearFriction * offTrackFrictionFactor)); - addChildObject(m_leftRearTire, m_leftRearTirePos + tireZ, 0); - - m_rightRearTire.reset(new Tire(*this, rearFriction, rearFriction * offTrackFrictionFactor)); - addChildObject(m_rightRearTire, m_rightRearTirePos + tireZ, 0); + createTires(); - m_leftBrakeGlowPos += MCVector3dF(0, 0, surface.maxZ() + 1.0f); - m_rightBrakeGlowPos += MCVector3dF(0, 0, surface.maxZ() + 1.0f); + m_leftBrakeGlowPos += MCVector3dF(0, 0, maxZ + 1.0f); + m_rightBrakeGlowPos += MCVector3dF(0, 0, maxZ + 1.0f); - m_leftBrakeGlow.reset(new MCObject(m_brakeGlow, "LeftBrakeGlow")); + m_leftBrakeGlow = std::make_shared(m_brakeGlow, "LeftBrakeGlow"); m_leftBrakeGlow->setBypassCollisions(true); m_leftBrakeGlow->shape()->view()->setHasShadow(false); m_leftBrakeGlow->setIsRenderable(false); addChildObject(m_leftBrakeGlow, m_leftBrakeGlowPos); - m_rightBrakeGlow.reset(new MCObject(m_brakeGlow, "RightBrakeGlow")); + m_rightBrakeGlow = std::make_shared(m_brakeGlow, "RightBrakeGlow"); m_rightBrakeGlow->setBypassCollisions(true); m_rightBrakeGlow->shape()->view()->setHasShadow(false); m_rightBrakeGlow->setIsRenderable(false); addChildObject(m_rightBrakeGlow, m_rightBrakeGlowPos); } +void Car::createTires() +{ + const float offTrackFrictionFactor = 0.8f; + const float frontFriction = 0.85f; + const MCVector3dF tireZ = MCVector3dF(0, 0, 1); + m_leftFrontTire = std::make_shared(*this, frontFriction, frontFriction * offTrackFrictionFactor); + addChildObject(m_leftFrontTire, m_leftFrontTirePos + tireZ, 0); + + m_rightFrontTire = std::make_shared(*this, frontFriction, frontFriction * offTrackFrictionFactor); + addChildObject(m_rightFrontTire, m_rightFrontTirePos + tireZ, 0); + + const float rearFriction = 0.95f; + m_leftRearTire = std::make_shared(*this, rearFriction, rearFriction * offTrackFrictionFactor); + addChildObject(m_leftRearTire, m_leftRearTirePos + tireZ, 0); + + m_rightRearTire = std::make_shared(*this, rearFriction, rearFriction * offTrackFrictionFactor); + addChildObject(m_rightRearTire, m_rightRearTirePos + tireZ, 0); +} + void Car::setProperties(Description & desc) { physicsComponent().setMass(desc.mass); - physicsComponent().setMomentOfInertia(desc.mass * 3); + physicsComponent().setMomentOfInertia(desc.mass * 2.5f); physicsComponent().setRestitution(desc.restitution); setShadowOffset(MCVector3dF(5, -5, 1)); @@ -150,15 +158,7 @@ MCWorld::instance().forceRegistry().addForceGenerator(drag, *this); } -void Car::clearStatuses() -{ - m_accelerating = false; - m_braking = false; - m_reverse = false; - m_skidding = false; -} - -unsigned int Car::index() const +size_t Car::index() const { return m_index; } @@ -188,13 +188,8 @@ void Car::accelerate(bool deccelerate) { - m_skidding = false; - - static_pointer_cast(m_leftRearTire)->setSpinCoeff(1.0f); - static_pointer_cast(m_rightRearTire)->setSpinCoeff(1.0f); - const float maxForce = - physicsComponent().mass() * m_desc.accelerationFriction * std::fabs(MCWorld::instance().gravity().k()); + physicsComponent().mass() * m_desc.accelerationFriction * std::fabs(MCWorld::instance().gravity().k()); float currentForce = maxForce; const float velocity = physicsComponent().velocity().length(); if (velocity > 0.001f) @@ -203,59 +198,57 @@ if (currentForce > maxForce) { currentForce = maxForce; - const float maxSpinVelocity = 4.5f; - if (!m_reverse && velocity > 0 && velocity < maxSpinVelocity) - { - if (isHuman()) // Don't enable tire spin for AI yet - { - const float spinCoeff = 0.025f + 0.975f * std::pow(velocity / maxSpinVelocity, 2.0f); - static_pointer_cast(m_leftRearTire)->setSpinCoeff(spinCoeff); - static_pointer_cast(m_rightRearTire)->setSpinCoeff(spinCoeff); - } - - m_skidding = true; - } } } MCVector2dF direction(m_dx, m_dy); if (deccelerate) { - direction *= -1; - } - else - { - m_accelerating = true; - m_reverse = false; + if (std::abs(speedInKmh()) < 25) + { + direction *= -1; + } + else + { + direction *= 0; + } } physicsComponent().addForce(direction * currentForce * damageFactor()); - - m_braking = false; } -void Car::brake() +void Car::doTireSpinEffect() { - m_accelerating = false; + static_pointer_cast(m_leftRearTire)->setSpinCoeff(1.0f); + static_pointer_cast(m_rightRearTire)->setSpinCoeff(1.0f); - if (m_speedInKmh < 1) - { - m_reverse = true; - } + m_skidding = false; - if (m_reverse && m_speedInKmh > -25) - { - accelerate(true); - } - else + const float minSpinVelocity = 0.1f; + const float maxSpinVelocity = 4.5f; + const float velocity = physicsComponent().velocity().length(); + if (m_acceleratorEnabled && m_gearbox->gear() == Gearbox::Gear::Forward && velocity > minSpinVelocity && velocity < maxSpinVelocity) { - m_braking = true; + if (isHuman()) // Don't enable tire spin for AI yet + { + const float spinCoeff = 0.025f + 0.975f * std::pow(velocity / maxSpinVelocity, 2.0f); + static_pointer_cast(m_leftRearTire)->setSpinCoeff(spinCoeff); + static_pointer_cast(m_rightRearTire)->setSpinCoeff(spinCoeff); + } + + m_skidding = true; } } +bool Car::isAccelerating() const +{ + return m_acceleratorEnabled && (m_gearbox->gear() != Gearbox::Gear::Neutral || !m_isHuman); +} + bool Car::isBraking() const { - return m_braking; + // This is not entirely correct, but should work in most scenarios + return m_brakeEnabled && (m_gearbox->gear() != Gearbox::Gear::Reverse || !m_isHuman); } bool Car::isSkidding() const @@ -267,10 +260,10 @@ { const float bodyNormalAngle = angle() + 90; const MCVector2dF n( - MCTrigonom::cos(bodyNormalAngle), MCTrigonom::sin(bodyNormalAngle)); + MCTrigonom::cos(bodyNormalAngle), MCTrigonom::sin(bodyNormalAngle)); const MCVector2dF & v = physicsComponent().velocity().normalized(); const MCVector2dF s = MCVector2dF::projection(v, n); - return absSpeed() > 7.5 && s.lengthFast() > 0.25; + return absSpeed() > 7.5f && s.lengthFast() > 0.25f; } int Car::speedInKmh() const @@ -305,7 +298,14 @@ void Car::updateAnimations() { - m_particleEffectManager.update(); + for (auto && collision : m_collisionEffectStack) + { + m_particleEffectManager->collision(collision.first->typeId(), collision.second); + m_soundEffectManager->collision(*collision.first); + } + m_collisionEffectStack.clear(); + + m_particleEffectManager->update(); if (m_soundEffectManager) { @@ -316,7 +316,7 @@ m_leftFrontTire->rotateRelative(m_tireAngle - offset); m_rightFrontTire->rotateRelative(m_tireAngle + offset); - const bool brakingGlowVisible = m_braking && speedInKmh() > 0; + const bool brakingGlowVisible = isBraking() && speedInKmh() > 0; m_leftBrakeGlow->setIsRenderable(brakingGlowVisible); m_rightBrakeGlow->setIsRenderable(brakingGlowVisible); } @@ -328,12 +328,12 @@ m_dy = MCTrigonom::sin(angle()); // Cache speed in km/h. - m_absSpeed = physicsComponent().speed(); - m_speedInKmh = m_absSpeed * 3.6 * 2.75; + m_absSpeed = physicsComponent().speed(); + m_speedInKmh = static_cast(m_absSpeed * 3.6f * 2.75f); if (m_isHuman) { - if (m_braking || (m_accelerating && m_steer != Steer::Neutral)) + if (isBraking() || (isAccelerating() && m_steer != Steer::Neutral)) { const float brakingTireWearFactor = 0.05f; wearOutTires(step, brakingTireWearFactor); @@ -373,8 +373,7 @@ { if (!event.collidingObject().isTriggerObject()) { - m_particleEffectManager.collision(event); - m_soundEffectManager->collision(event); + m_collisionEffectStack.push_back({ &event.collidingObject(), event.contactPoint() }); } event.accept(); @@ -414,6 +413,20 @@ } } +void Car::setBrakeEnabled(bool brakeEnabled) +{ + m_brakeEnabled = brakeEnabled; + + m_gearbox->setBrakeEnabled(brakeEnabled); +} + +void Car::setAcceleratorEnabled(bool acceleratorEnabled) +{ + m_acceleratorEnabled = acceleratorEnabled; + + m_gearbox->setAcceleratorEnabled(acceleratorEnabled); +} + void Car::resetTireWear() { m_tireWearOutCapacity = m_initTireWearOutCapacity; @@ -459,6 +472,19 @@ updateAnimations(); updateTireWear(step); + + m_gearbox->update(speedInKmh()); + + if (m_gearbox->gear() == Gearbox::Gear::Forward && m_acceleratorEnabled) + { + accelerate(); + } + else if (m_gearbox->gear() == Gearbox::Gear::Reverse && m_brakeEnabled) + { + accelerate(true); + } + + doTireSpinEffect(); } void Car::setLeftSideOffTrack(bool state) @@ -488,56 +514,6 @@ return leftSideOffTrack() || rightSideOffTrack(); } -void Car::setNextTargetNodeIndex(int index) -{ - m_nextTargetNodeIndex = index; -} - -int Car::nextTargetNodeIndex() const -{ - return m_nextTargetNodeIndex; -} - -void Car::setCurrentTargetNodeIndex(int index) -{ - m_currentTargetNodeIndex = index; -} - -int Car::currentTargetNodeIndex() const -{ - return m_currentTargetNodeIndex; -} - -void Car::setPrevTargetNodeIndex(int index) -{ - m_prevTargetNodeIndex = index; -} - -int Car::prevTargetNodeIndex() const -{ - return m_prevTargetNodeIndex; -} - -void Car::setRouteProgression(int value) -{ - m_routeProgression = value; -} - -void Car::setPosition(int value) -{ - m_position = value; -} - -int Car::position() const -{ - return m_position; -} - -int Car::routeProgression() const -{ - return m_routeProgression; -} - bool Car::isHuman() const { return m_isHuman; diff -Nru dustrac-2.0.1/src/game/carfactory.cpp dustrac-2.0.5/src/game/carfactory.cpp --- dustrac-2.0.1/src/game/carfactory.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/carfactory.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,25 +17,24 @@ #include -CarPtr CarFactory::buildCar(int index, int numCars, Game & game) +std::unique_ptr CarFactory::buildCar(size_t index, size_t carCount, Game & game) { - const int defaultPower = 200000; // This in Watts - const float defaultDrag = 2.5f; + const int defaultPower = 200000; // This in Watts + const float defaultDrag = 2.5f; - static const int NUM_CARS = numCars; - static std::map carImageMap = { - {NUM_CARS - 1, "carBlack" }, - {NUM_CARS - 2, "carOrange" }, - {NUM_CARS - 3, "carRed" }, - {NUM_CARS - 4, "carBlue" }, - {NUM_CARS - 5, "carDarkGreen"}, - {NUM_CARS - 6, "carBrown" }, - {NUM_CARS - 7, "carCyan" }, - {NUM_CARS - 8, "carViolet" }, - {NUM_CARS - 9, "carGreen" }, - {NUM_CARS - 10,"carDarkRed" }, - {1, "carGrey" }, - {0, "carPink" } + static std::map carImageMap = { + { 0, "carPink" }, + { 1, "carGrey" }, + { 2, "carDarkRed" }, + { 3, "carGreen" }, + { 4, "carViolet" }, + { 5, "carCyan" }, + { 6, "carBrown" }, + { 7, "carDarkGreen" }, + { 8, "carBlue" }, + { 9, "carRed" }, + { 10, "carOrange" }, + { 11, "carBlack" } }; Car::Description desc; @@ -47,27 +46,25 @@ carImage = carImageMap[index]; } - CarPtr car; if (index == 0 || (index == 1 && game.hasTwoHumanPlayers())) { - desc.power = defaultPower; - desc.dragQuadratic = defaultDrag; + desc.power = defaultPower; + desc.dragQuadratic = defaultDrag; desc.accelerationFriction = 0.55f * Game::instance().difficultyProfile().accelerationFrictionMultiplier(true); - car.reset(new Car(desc, MCAssetManager::surfaceManager().surface(carImage), index, true)); + return std::make_unique(desc, MCAssetManager::surfaceManager().surface(carImage), index, true); } else if (game.hasComputerPlayers()) { // Introduce some variance to the power of computer players so that the // slowest cars have less power than the human player and the fastest // cars have more power than the human player. - desc.power = defaultPower / 2 + (index + 1) * defaultPower / NUM_CARS; - desc.accelerationFriction = (0.3f + 0.4f * float(index + 1) / NUM_CARS) * - Game::instance().difficultyProfile().accelerationFrictionMultiplier(false); - desc.dragQuadratic = defaultDrag; + desc.power = defaultPower / 2 + (index + 1) * defaultPower / carCount; + desc.accelerationFriction = (0.3f + 0.4f * float(index + 1) / carCount) * Game::instance().difficultyProfile().accelerationFrictionMultiplier(false); + desc.dragQuadratic = defaultDrag; - car.reset(new Car(desc, MCAssetManager::surfaceManager().surface(carImage), index, false)); + return std::make_unique(desc, MCAssetManager::surfaceManager().surface(carImage), index, false); } - return car; + return nullptr; } diff -Nru dustrac-2.0.1/src/game/carfactory.hpp dustrac-2.0.5/src/game/carfactory.hpp --- dustrac-2.0.1/src/game/carfactory.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/carfactory.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -19,8 +19,10 @@ #include "car.hpp" #include "game.hpp" +#include + namespace CarFactory { -CarPtr buildCar(int index, int numCars, Game & game); +std::unique_ptr buildCar(size_t index, size_t carCount, Game & game); } #endif // CARFACTORY_HPP diff -Nru dustrac-2.0.1/src/game/car.hpp dustrac-2.0.5/src/game/car.hpp --- dustrac-2.0.1/src/game/car.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/car.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,15 +16,17 @@ #ifndef CAR_HPP #define CAR_HPP +#include #include #include #include -#include "carparticleeffectmanager.hpp" -#include "carsoundeffectmanager.hpp" - +#include #include +class CarParticleEffectManager; +class CarSoundEffectManager; +class Gearbox; class MCSurface; class MCFrictionGenerator; class Route; @@ -33,60 +35,45 @@ class Car : public MCObject { public: - - enum class Steer { + enum class Steer + { Neutral, Left, Right }; //! Defines the (default) car properties. - class Description + struct Description { - public: + float accelerationFriction = 0.75f; + + float rollingFrictionOnTrack = 0.1f; + + float rotationFriction = 1.0f; + + float power = 5000.0f; - //! Constructor. - Description() - : accelerationFriction(0.75f) - , rollingFrictionOnTrack(0.1f) - , rotationFriction(1.0f) - , power(5000.0f) - , mass(1500.0f) - , restitution(0.05f) - , dragLinear(1.0f) - , dragQuadratic(5.0f) - {} - - float accelerationFriction; - float rollingFrictionOnTrack; - float rotationFriction; - float power; - float mass; - float restitution; - float dragLinear; - float dragQuadratic; + float mass = 1500.0f; + + float restitution = 0.05f; + + float dragLinear = 1.0f; + + float dragQuadratic = 5.0f; }; //! Constructor. - Car(Description & desc, MCSurface & surface, unsigned int index, bool isHuman); + Car(Description & desc, std::shared_ptr surface, size_t index, bool isHuman); //! Destructor. - virtual ~Car(); + virtual ~Car() override; //! Return the index. - unsigned int index() const; + size_t index() const; - //! Clear statuses before setting any states. - void clearStatuses(); - - //! Steer. void steer(Steer direction, float control = 1.0f); - //! Accelerate. - void accelerate(bool deccelerate = false); - - //! Brake. - void brake(); + bool isAccelerating() const; bool isBraking() const; @@ -121,26 +108,6 @@ bool isOffTrack() const; void setTurningImpulse(float impulse); - - void setNextTargetNodeIndex(int index); - - int nextTargetNodeIndex() const; - - void setCurrentTargetNodeIndex(int index); - - int currentTargetNodeIndex() const; - - void setPrevTargetNodeIndex(int index); - - int prevTargetNodeIndex() const; - - void setRouteProgression(int value); - - int routeProgression() const; - - void setPosition(int value); - - int position() const; //! Get location of the left front tire. MCVector3dF leftFrontTireLocation() const; @@ -170,11 +137,27 @@ bool hadHardCrash(); + using CarSoundEffectManagerPtr = std::shared_ptr; void setSoundEffectManager(CarSoundEffectManagerPtr soundEffectManager); CarSoundEffectManagerPtr soundEffectManager() const; + bool hasDamage() const; + + bool hasTireWear() const; + + void setAcceleratorEnabled(bool acceleratorEnabled); + + void setBrakeEnabled(bool brakeEnabled); + private: + void accelerate(bool deccelerate = false); + + void createChildObjects(float maxZ, size_t index); + + void createTires(); + + void doTireSpinEffect(); void initForceGenerators(Description & desc); @@ -194,17 +177,11 @@ bool m_rightSideOffTrack; - bool m_accelerating; - - bool m_braking; - - bool m_reverse; - bool m_skidding; Steer m_steer; - unsigned int m_index; + size_t m_index; float m_tireAngle; @@ -216,9 +193,9 @@ float m_tireWearOutCapacity; - MCSurface & m_frontTire; + std::shared_ptr m_frontTire; - MCSurface & m_brakeGlow; + std::shared_ptr m_brakeGlow; float m_length; @@ -228,19 +205,9 @@ float m_dx, m_dy; - int m_nextTargetNodeIndex; - - int m_currentTargetNodeIndex; - - int m_prevTargetNodeIndex; - - int m_routeProgression; - - int m_position; - bool m_isHuman; - CarParticleEffectManager m_particleEffectManager; + std::unique_ptr m_particleEffectManager; CarSoundEffectManagerPtr m_soundEffectManager; @@ -271,6 +238,14 @@ MCVector3dF m_rightBrakeGlowPos; bool m_hadHardCrash; + + std::unique_ptr m_gearbox; + + bool m_acceleratorEnabled = false; + + bool m_brakeEnabled = false; + + std::deque> m_collisionEffectStack; }; typedef std::shared_ptr CarPtr; diff -Nru dustrac-2.0.1/src/game/carparticleeffectmanager.cpp dustrac-2.0.5/src/game/carparticleeffectmanager.cpp --- dustrac-2.0.1/src/game/carparticleeffectmanager.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/carparticleeffectmanager.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,23 +16,21 @@ #include "carparticleeffectmanager.hpp" #include "car.hpp" -#include #include #include #include +#include namespace { static const int SKID_MARK_DENSITY = 8; static const int NEW_SKID_LIMIT = SKID_MARK_DENSITY * 4; -static const int OFF_TRACK_ANIMATION_SPEED_MIN = 5; static const int ON_TRACK_ANIMATION_SPEED_MIN = 5; -} +} // namespace CarParticleEffectManager::CarParticleEffectManager(Car & car) -: m_car(car) -, m_sparkleCounter(0) -, m_smokeCounter(0) -, m_mudCounter(0) + : m_car(car) + , m_smokeCounter(0) + , m_mudCounter(0) { } @@ -89,8 +87,7 @@ void CarParticleEffectManager::doOnTrackAnimations() { - if ((m_car.isBraking() && m_car.speedInKmh() > ON_TRACK_ANIMATION_SPEED_MIN && m_car.speedInKmh() < 200) || - m_car.isSkidding()) + if ((m_car.isBraking() && m_car.speedInKmh() > ON_TRACK_ANIMATION_SPEED_MIN && m_car.speedInKmh() < 200) || m_car.isSkidding()) { if (!m_car.leftSideOffTrack()) { @@ -108,83 +105,85 @@ void CarParticleEffectManager::doOffTrackAnimations() { - if (std::abs(m_car.speedInKmh()) > OFF_TRACK_ANIMATION_SPEED_MIN || m_car.isSkidding()) + const bool leftSideOffTrack = m_car.leftSideOffTrack(); + const bool rightSideOffTrack = m_car.rightSideOffTrack(); + const float speed = std::abs(m_car.speedInKmh()); + const float minSpeedMud = 15; + const float minSpeedSkidMark = 5; + const float minSpeedSmoke = 5; + + // Left skid mark + if (leftSideOffTrack && speed > minSpeedSkidMark) { - bool smoke = false; + doLeftSkidMark(ParticleFactory::OffTrackSkidMark); + } - if (m_car.leftSideOffTrack()) + // Left mud particle + if (leftSideOffTrack && speed > minSpeedMud) + { + if (++m_mudCounter >= 5) // This is to prevent a continuous spray of mud particles { - doLeftSkidMark(ParticleFactory::OffTrackSkidMark); - - smoke = true; - - if (++m_mudCounter >= 5) - { - ParticleFactory::instance().doParticle( - ParticleFactory::Mud, m_car.leftRearTireLocation(), m_car.physicsComponent().velocity() * 0.5f); - m_mudCounter = 0; - } + ParticleFactory::instance().doParticle( + ParticleFactory::Mud, m_car.leftRearTireLocation(), m_car.physicsComponent().velocity() * 0.5f); + m_mudCounter = 0; } + } - if (m_car.rightSideOffTrack()) - { - doRightSkidMark(ParticleFactory::OffTrackSkidMark); - - smoke = true; + // Right skid mark + if (rightSideOffTrack && speed > minSpeedSkidMark) + { + doRightSkidMark(ParticleFactory::OffTrackSkidMark); + } - if (++m_mudCounter >= 5) - { - ParticleFactory::instance().doParticle( - ParticleFactory::Mud, m_car.rightRearTireLocation(), m_car.physicsComponent().velocity() * 0.5f); - m_mudCounter = 0; - } + // Right mud particle + if (rightSideOffTrack && speed > minSpeedMud) + { + if (++m_mudCounter >= 5) // This is to prevent a continuous spray of mud particles + { + ParticleFactory::instance().doParticle( + ParticleFactory::Mud, m_car.rightRearTireLocation(), m_car.physicsComponent().velocity() * 0.5f); + m_mudCounter = 0; } + } - if (smoke) + // Smoke + if ((leftSideOffTrack || rightSideOffTrack) && speed > minSpeedSmoke) + { + if (++m_smokeCounter >= 2) // This is to prevent a continuous spray of smoke particles { - if (++m_smokeCounter >= 2) - { - MCVector3dF smokeLocation = (m_car.leftRearTireLocation() + m_car.rightRearTireLocation()) * 0.5f; - ParticleFactory::instance().doParticle(ParticleFactory::OffTrackSmoke, smokeLocation); - } + MCVector3dF smokeLocation = (m_car.leftRearTireLocation() + m_car.rightRearTireLocation()) * 0.5f; + ParticleFactory::instance().doParticle(ParticleFactory::OffTrackSmoke, smokeLocation); } } } -void CarParticleEffectManager::collision(const MCCollisionEvent & event) +void CarParticleEffectManager::collision(size_t typeId, const MCVector3dF & contactPoint) { if (m_car.physicsComponent().velocity().lengthFast() > 4.0f) { // Check if the car is colliding with another car. - if (event.collidingObject().typeId() == m_car.typeId()) + const size_t particles = 10; + if (typeId == m_car.typeId()) { - if (++m_sparkleCounter >= 10) + for (size_t i = 0; i < particles; i++) { ParticleFactory::instance().doParticle(ParticleFactory::Sparkle, - event.contactPoint(), m_car.physicsComponent().velocity() * 0.75f); - m_sparkleCounter = 0; + contactPoint, m_car.physicsComponent().velocity() * 0.75f); } } // Check if the car is colliding with hard stationary objects. - else if ( - event.collidingObject().typeId() == MCObject::typeId("crate") || - event.collidingObject().typeId() == MCObject::typeId("dustRacing2DBanner") || - event.collidingObject().typeId() == MCObject::typeId("grandstand") || - event.collidingObject().typeId() == MCObject::typeId("wall") || - event.collidingObject().typeId() == MCObject::typeId("wallLong") || - event.collidingObject().typeId() == MCObject::typeId("rock")) + else if (typeId == MCObject::typeId("crate") || typeId == MCObject::typeId("dustRacing2DBanner") || typeId == MCObject::typeId("grandstand") || typeId == MCObject::typeId("wall") || typeId == MCObject::typeId("wallLong") || typeId == MCObject::typeId("rock")) { - if (++m_sparkleCounter >= 10) + for (size_t i = 0; i < particles; i++) { ParticleFactory::instance().doParticle(ParticleFactory::Sparkle, - event.contactPoint(), m_car.physicsComponent().velocity() * 0.5f); - m_sparkleCounter = 0; + contactPoint, m_car.physicsComponent().velocity() * 0.5f); } } - else if (event.collidingObject().typeId() == MCObject::typeId("tree")) + else if (typeId == MCObject::typeId("tree")) { ParticleFactory::instance().doParticle(ParticleFactory::Leaf, - event.contactPoint(), m_car.physicsComponent().velocity() * 0.1f); + contactPoint, m_car.physicsComponent().velocity() * 0.1f); } } } diff -Nru dustrac-2.0.1/src/game/carparticleeffectmanager.hpp dustrac-2.0.5/src/game/carparticleeffectmanager.hpp --- dustrac-2.0.1/src/game/carparticleeffectmanager.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/carparticleeffectmanager.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -27,16 +27,14 @@ class CarParticleEffectManager { public: - //! Constructor. CarParticleEffectManager(Car & car); void update(); - void collision(const MCCollisionEvent & event); + void collision(size_t typeId, const MCVector3dF & contactPoint); private: - void doDamageSmoke(); void doOnTrackAnimations(); @@ -49,11 +47,14 @@ float calculateSkidAngle(float distance, double dx, double dy); - Car & m_car; - int m_sparkleCounter; - int m_smokeCounter; - int m_mudCounter; + Car & m_car; + + int m_smokeCounter; + + int m_mudCounter; + MCVector2dF m_prevLeftSkidMarkLocation; + MCVector2dF m_prevRightSkidMarkLocation; }; diff -Nru dustrac-2.0.1/src/game/carphysicscomponent.cpp dustrac-2.0.5/src/game/carphysicscomponent.cpp --- dustrac-2.0.1/src/game/carphysicscomponent.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/carphysicscomponent.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -20,7 +20,7 @@ #include "game.hpp" CarPhysicsComponent::CarPhysicsComponent(Car & car) - : m_car(car) + : m_car(car) { } diff -Nru dustrac-2.0.1/src/game/carphysicscomponent.hpp dustrac-2.0.5/src/game/carphysicscomponent.hpp --- dustrac-2.0.1/src/game/carphysicscomponent.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/carphysicscomponent.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -23,14 +23,12 @@ class CarPhysicsComponent : public MCPhysicsComponent { public: - CarPhysicsComponent(Car & car); //! \reimp void addImpulse(const MCVector3dF & impulse, bool isCollision) override; private: - Car & m_car; }; diff -Nru dustrac-2.0.1/src/game/carsoundeffectmanager.cpp dustrac-2.0.5/src/game/carsoundeffectmanager.cpp --- dustrac-2.0.1/src/game/carsoundeffectmanager.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/carsoundeffectmanager.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,19 +17,19 @@ #include "car.hpp" #include +#include #include #include -#include -static std::vector gearRatios = {1.0f, 0.8f, 0.6f, 0.5f, 0.4f, 0.3f}; +static std::vector gearRatios = { 1.0f, 0.8f, 0.6f, 0.5f, 0.4f, 0.3f }; CarSoundEffectManager::CarSoundEffectManager( - Car & car, const CarSoundEffectManager::MultiSoundHandles & handles) - : m_car(car) - , m_gear(0) - , m_prevSpeed(0) - , m_handles(handles) - , m_skidPlaying(false) + Car & car, const CarSoundEffectManager::MultiSoundHandles & handles) + : m_car(car) + , m_gear(0) + , m_prevSpeed(0) + , m_handles(handles) + , m_skidPlaying(false) { m_hitTimer.setSingleShot(true); m_hitTimer.setInterval(500); @@ -61,8 +61,8 @@ if (speed != m_prevSpeed) { const float virtualRev = speed * 50; - const float effRev = virtualRev * gearRatios[m_gear]; - const float pitch = 1.0 + effRev / 5000; + const float effRev = virtualRev * gearRatios[m_gear]; + const float pitch = 1.0 + effRev / 5000; if (effRev > 3000) { @@ -106,38 +106,26 @@ } } -void CarSoundEffectManager::collision(const MCCollisionEvent & event) +void CarSoundEffectManager::collision(MCObject & collidingObject) { - const MCVector3dF speedDiff(event.collidingObject().physicsComponent().velocity() - - m_car.physicsComponent().velocity()); + const MCVector3dF speedDiff(collidingObject.physicsComponent().velocity() - m_car.physicsComponent().velocity()); if (!m_hitTimer.isActive() && speedDiff.lengthFast() > 4.0) { - if (event.collidingObject().typeId() == m_car.typeId() || - event.collidingObject().typeId() == MCObject::typeId("grandstand") || - event.collidingObject().typeId() == MCObject::typeId("tree") || - event.collidingObject().typeId() == MCObject::typeId("rock")) + if (collidingObject.typeId() == m_car.typeId() || collidingObject.typeId() == MCObject::typeId("grandstand") || collidingObject.typeId() == MCObject::typeId("tree") || collidingObject.typeId() == MCObject::typeId("rock")) { emit locationChanged(m_handles.hitSoundHandle, m_car.location().i(), m_car.location().j()); emit playRequested(m_handles.hitSoundHandle, false); m_hitTimer.start(); } else if ( - event.collidingObject().typeId() == MCObject::typeId("wall") || - event.collidingObject().typeId() == MCObject::typeId("bridgeRail") || - event.collidingObject().typeId() == MCObject::typeId("wallLong")) + collidingObject.typeId() == MCObject::typeId("wall") || collidingObject.typeId() == MCObject::typeId("bridgeRail") || collidingObject.typeId() == MCObject::typeId("wallLong")) { emit locationChanged("carHit2", m_car.location().i(), m_car.location().j()); emit playRequested("carHit2", false); m_hitTimer.start(); } else if ( - event.collidingObject().typeId() == MCObject::typeId("dustRacing2DBanner") || - event.collidingObject().typeId() == MCObject::typeId("brake") || - event.collidingObject().typeId() == MCObject::typeId("crate") || - event.collidingObject().typeId() == MCObject::typeId("left") || - event.collidingObject().typeId() == MCObject::typeId("plant") || - event.collidingObject().typeId() == MCObject::typeId("right") || - event.collidingObject().typeId() == MCObject::typeId("tire")) + collidingObject.typeId() == MCObject::typeId("dustRacing2DBanner") || collidingObject.typeId() == MCObject::typeId("brake") || collidingObject.typeId() == MCObject::typeId("crate") || collidingObject.typeId() == MCObject::typeId("left") || collidingObject.typeId() == MCObject::typeId("plant") || collidingObject.typeId() == MCObject::typeId("right") || collidingObject.typeId() == MCObject::typeId("tire")) { emit locationChanged("carHit3", m_car.location().i(), m_car.location().j()); emit playRequested("carHit3", false); diff -Nru dustrac-2.0.1/src/game/carsoundeffectmanager.hpp dustrac-2.0.5/src/game/carsoundeffectmanager.hpp --- dustrac-2.0.1/src/game/carsoundeffectmanager.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/carsoundeffectmanager.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -19,13 +19,13 @@ #include #include -#include +#include "audiosource.hpp" #include #include -#include "audiosource.hpp" +#include class Car; -class MCCollisionEvent; +class MCObject; /*! Manages sound effects, like the engine sound. These are connected * to the AudioThread via Qt signals. */ @@ -34,7 +34,6 @@ Q_OBJECT public: - /*! Handles to special sounds that can be played simultaneously by each car */ struct MultiSoundHandles { @@ -51,7 +50,7 @@ void update(); - void collision(const MCCollisionEvent & event); + void collision(MCObject & collidingObject); public slots: @@ -60,19 +59,25 @@ void stopEngineSound(); private: - void processEngineSound(); void processSkidSound(); - Car & m_car; - int m_gear; - int m_prevSpeed; - MCVector3dF m_prevLocation; - QTimer m_hitTimer; - QTimer m_skidTimer; + Car & m_car; + + int m_gear; + + int m_prevSpeed; + + MCVector3dF m_prevLocation; + + QTimer m_hitTimer; + + QTimer m_skidTimer; + MultiSoundHandles m_handles; - bool m_skidPlaying; + + bool m_skidPlaying; }; typedef std::shared_ptr CarSoundEffectManagerPtr; diff -Nru dustrac-2.0.1/src/game/carstatusview.cpp dustrac-2.0.5/src/game/carstatusview.cpp --- dustrac-2.0.1/src/game/carstatusview.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/carstatusview.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -21,24 +21,24 @@ #include CarStatusView::CarStatusView() -: m_body(MCAssetManager::instance().surfaceManager().surface("tireStatusIndicatorBody")) -, m_tires(MCAssetManager::instance().surfaceManager().surface("tireStatusIndicatorTires")) -, m_car(nullptr) + : m_body(MCAssetManager::instance().surfaceManager().surface("tireStatusIndicatorBody")) + , m_tires(MCAssetManager::instance().surfaceManager().surface("tireStatusIndicatorTires")) + , m_car(nullptr) { - setDimensions(m_body.height(), m_tires.width()); + setDimensions(m_body->height(), m_tires->width()); - m_body.setColor(MCGLColor(1.0f, 1.0f, 1.0f, 0.9f)); + m_body->setColor(MCGLColor(1.0f, 1.0f, 1.0f, 0.9f)); } void CarStatusView::render() { const float damageLevel = m_car->damageLevel(); - m_body.setColor(MCGLColor(1.0f, damageLevel, damageLevel, 0.9f)); - m_body.render(nullptr, MCVector3dF(x(), y(), 0), 0); + m_body->setColor(MCGLColor(1.0f, damageLevel, damageLevel, 0.9f)); + m_body->render(nullptr, MCVector3dF(x(), y(), 0), 0); const float tireWearLevel = m_car->tireWearLevel(); - m_tires.setColor(MCGLColor(1.0f, tireWearLevel, tireWearLevel, 0.9f)); - m_tires.render(nullptr, MCVector3dF(x(), y(), 0), 0); + m_tires->setColor(MCGLColor(1.0f, tireWearLevel, tireWearLevel, 0.9f)); + m_tires->render(nullptr, MCVector3dF(x(), y(), 0), 0); } void CarStatusView::setCarToFollow(const Car & car) diff -Nru dustrac-2.0.1/src/game/carstatusview.hpp dustrac-2.0.5/src/game/carstatusview.hpp --- dustrac-2.0.1/src/game/carstatusview.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/carstatusview.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -18,6 +18,8 @@ #include "renderable.hpp" +#include + class MCSurface; class Car; @@ -25,7 +27,6 @@ class CarStatusView : public Renderable { public: - //! Constructor. CarStatusView(); @@ -35,9 +36,10 @@ void setCarToFollow(const Car & car); private: + std::shared_ptr m_body; + + std::shared_ptr m_tires; - MCSurface & m_body; - MCSurface & m_tires; const Car * m_car; }; diff -Nru dustrac-2.0.1/src/game/checkeredflag.cpp dustrac-2.0.5/src/game/checkeredflag.cpp --- dustrac-2.0.1/src/game/checkeredflag.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/checkeredflag.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -20,18 +20,18 @@ #include #include -static const int FLAG_W = 32; -static const int FLAG_H = 24; -static const int V_SPACING = 20; +static const int FLAG_W = 32; +static const int FLAG_H = 24; +static const int V_SPACING = 20; CheckeredFlag::CheckeredFlag() -: m_surface(MCAssetManager::surfaceManager().surface("checkeredFlag")) + : m_surface(MCAssetManager::surfaceManager().surface("checkeredFlag")) { } void CheckeredFlag::render() { MCVector3dF pos(width() / 2, height() - FLAG_H / 2 - V_SPACING); - m_surface.setSize(FLAG_W, FLAG_H); - m_surface.render(nullptr, pos, 0); + m_surface->setSize(FLAG_W, FLAG_H); + m_surface->render(nullptr, pos, 0); } diff -Nru dustrac-2.0.1/src/game/checkeredflag.hpp dustrac-2.0.5/src/game/checkeredflag.hpp --- dustrac-2.0.1/src/game/checkeredflag.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/checkeredflag.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -18,13 +18,14 @@ #include "overlaybase.hpp" +#include + class MCSurface; //! Renders checkerflag on top of the game scene. class CheckeredFlag : public OverlayBase { public: - //! Constructor. CheckeredFlag(); @@ -32,8 +33,7 @@ virtual void render() override; private: - - MCSurface & m_surface; + std::shared_ptr m_surface; }; #endif // CHECKEREDFLAG_HPP diff -Nru dustrac-2.0.1/src/game/CMakeLists.txt dustrac-2.0.5/src/game/CMakeLists.txt --- dustrac-2.0.1/src/game/CMakeLists.txt 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/CMakeLists.txt 2020-01-06 23:07:24.000000000 +0000 @@ -24,13 +24,14 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/audio") # Translation files in src/game/translations (without .ts) -set(TS dustrac-game_fi dustrac-game_it dustrac-game_cs dustrac-game_fr dustrac-game_de) +set(TS dustrac-game_fi dustrac-game_it dustrac-game_cs dustrac-game_fr dustrac-game_de dustrac-game_ru) set(TS_FILES) set(QM_FILES) foreach(TS_FILE ${TS}) list(APPEND TS_FILES ${CMAKE_SOURCE_DIR}/src/game/translations/${TS_FILE}.ts) - list(APPEND QM_FILES ${CMAKE_BINARY_DIR}/src/game/${TS_FILE}.qm) + list(APPEND QM_FILES ${CMAKE_BINARY_DIR}/data/translations/${TS_FILE}.qm) endforeach() +set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION ${CMAKE_BINARY_DIR}/data/translations) # Set headers that don't have a corresponding cpp file set(HDR @@ -45,7 +46,6 @@ ai.cpp application.cpp bridge.cpp - bridgetrigger.cpp car.cpp carfactory.cpp carparticleeffectmanager.cpp @@ -59,6 +59,7 @@ fadeanimation.cpp fontfactory.cpp game.cpp + gearbox.cpp graphicsfactory.cpp inputhandler.cpp intro.cpp @@ -87,7 +88,8 @@ trackobjectfactory.cpp tracktile.cpp tree.cpp - ../common/config.cpp + ../common/config.hpp + ../common/datakeywords.hpp ../common/objectbase.cpp ../common/objects.cpp ../common/route.cpp @@ -157,22 +159,13 @@ MiniCore MTFH STFH - ${OPENGL_gl_LIBRARY} - ${OPENGL_glu_LIBRARY} ${OPENAL_LIBRARY} ${VORBISFILE_LIBRARIES} ${VORBISFILE_LIB} # Valid only with MSVC ${VORBIS_LIB} # Valid only with MSVC ${OGG_LIB}) # Valid only with MSVC -target_link_libraries(${GAME_BINARY_NAME} ${COMMON_LIBS} Qt5::OpenGL Qt5::Xml) -set_property(TARGET ${GAME_BINARY_NAME} PROPERTY CXX_STANDARD 11) +target_link_libraries(${GAME_BINARY_NAME} ${COMMON_LIBS} Qt5::OpenGL Qt5::Xml ${DUSTRAC_OPENGL_LIBS} SimpleLogger) +set_property(TARGET ${GAME_BINARY_NAME} PROPERTY CXX_STANDARD 14) -foreach(TS_FILE ${TS}) - # Make targets to copy generated qm files to data dir. This is done the hard - # way, because qt4_add_translation() generates the qm files to ${CMAKE_CURRENT_SOURCE_DIR} - add_custom_target(copy-translation-file-${TS_FILE} ALL - COMMAND cmake -E copy ${CMAKE_BINARY_DIR}/src/game/${TS_FILE}.qm - ${CMAKE_BINARY_DIR}/data/translations/${TS_FILE}.qm - DEPENDS ${GAME_BINARY_NAME}) -endforeach() +add_subdirectory(unittests) diff -Nru dustrac-2.0.1/src/game/crashoverlay.cpp dustrac-2.0.5/src/game/crashoverlay.cpp --- dustrac-2.0.1/src/game/crashoverlay.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/crashoverlay.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -21,15 +21,15 @@ #include CrashOverlay::CrashOverlay() - : m_surface(MCAssetManager::instance().surfaceManager().surface("crashOverlay")) - , m_alpha(1.0f) - , m_car(nullptr) - , m_isTriggered(false) + : m_surface(MCAssetManager::instance().surfaceManager().surface("crashOverlay")) + , m_alpha(1.0f) + , m_car(nullptr) + , m_isTriggered(false) { - m_surface.material()->setAlphaBlend(true); + m_surface->material()->setAlphaBlend(true); } -void CrashOverlay::setDimensions(int width, int height) +void CrashOverlay::setDimensions(size_t width, size_t height) { OverlayBase::setDimensions(width, height); } @@ -45,12 +45,12 @@ { glDisable(GL_DEPTH_TEST); - const int w2 = width() / 2; - const int h2 = height() / 2; + const auto halfWidth = width() / 2; + const auto halfHeight = height() / 2; - m_surface.setColor(MCGLColor(1.0, 1.0, 1.0, m_alpha)); - m_surface.setSize(width(), height()); - m_surface.render(nullptr, MCVector3dF(w2, h2, 0), 0); + m_surface->setColor({ 1.0, 1.0, 1.0, m_alpha }); + m_surface->setSize(width(), height()); + m_surface->render(nullptr, MCVector3dF(halfWidth, halfHeight, 0), 0); } } diff -Nru dustrac-2.0.1/src/game/crashoverlay.hpp dustrac-2.0.5/src/game/crashoverlay.hpp --- dustrac-2.0.1/src/game/crashoverlay.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/crashoverlay.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -18,20 +18,21 @@ #include "overlaybase.hpp" +#include + class MCSurface; class Car; class CrashOverlay : public OverlayBase { public: - CrashOverlay(); //! \reimp virtual void render() override; //! \reimp - virtual void setDimensions(int width, int height) override; + virtual void setDimensions(size_t width, size_t height) override; //! \reimp virtual bool update() override; @@ -39,8 +40,7 @@ void setCarToFollow(Car & car); private: - - MCSurface & m_surface; + std::shared_ptr m_surface; float m_alpha; diff -Nru dustrac-2.0.1/src/game/difficultyprofile.cpp dustrac-2.0.5/src/game/difficultyprofile.cpp --- dustrac-2.0.1/src/game/difficultyprofile.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/difficultyprofile.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -20,7 +20,7 @@ DifficultyProfile * DifficultyProfile::m_instance = nullptr; DifficultyProfile::DifficultyProfile(Difficulty difficulty) - : m_difficulty(difficulty) + : m_difficulty(difficulty) { assert(!m_instance); m_instance = this; diff -Nru dustrac-2.0.1/src/game/difficultyprofile.hpp dustrac-2.0.5/src/game/difficultyprofile.hpp --- dustrac-2.0.1/src/game/difficultyprofile.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/difficultyprofile.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -25,8 +25,8 @@ Q_OBJECT public: - - enum class Difficulty { + enum class Difficulty + { Easy = 0, Medium, Hard @@ -61,10 +61,9 @@ void difficultyChanged(); private: - DifficultyProfile(DifficultyProfile & other) = delete; - DifficultyProfile & operator =(DifficultyProfile & other) = delete; + DifficultyProfile & operator=(DifficultyProfile & other) = delete; static DifficultyProfile * m_instance; diff -Nru dustrac-2.0.1/src/game/eventhandler.cpp dustrac-2.0.5/src/game/eventhandler.cpp --- dustrac-2.0.1/src/game/eventhandler.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/eventhandler.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -18,40 +18,39 @@ #include "settings.hpp" #include "statemachine.hpp" -#include #include +#include #include EventHandler::EventHandler(InputHandler & inputHandler) -: m_inputHandler(inputHandler) -, m_captureMode(false) + : m_inputHandler(inputHandler) + , m_captureMode(false) { // Default key bindings m_keyToActionMap[KeyCodes::LSHIFT] = ActionMapping(1, InputHandler::Action::Up); m_keyToActionMap[KeyCodes::RSHIFT] = ActionMapping(0, InputHandler::Action::Up); - m_keyToActionMap[KeyCodes::LCTRL] = ActionMapping(1, InputHandler::Action::Down); - m_keyToActionMap[KeyCodes::RCTRL] = ActionMapping(0, InputHandler::Action::Down); - m_keyToActionMap[Qt::Key_Left] = ActionMapping(0, InputHandler::Action::Left); - m_keyToActionMap[Qt::Key_Right] = ActionMapping(0, InputHandler::Action::Right); - m_keyToActionMap[Qt::Key_A] = ActionMapping(1, InputHandler::Action::Left); - m_keyToActionMap[Qt::Key_D] = ActionMapping(1, InputHandler::Action::Right); - m_keyToActionMap[Qt::Key_Up] = ActionMapping(0, InputHandler::Action::Up); - m_keyToActionMap[Qt::Key_Down] = ActionMapping(0, InputHandler::Action::Down); - m_keyToActionMap[Qt::Key_W] = ActionMapping(1, InputHandler::Action::Up); - m_keyToActionMap[Qt::Key_S] = ActionMapping(1, InputHandler::Action::Down); + m_keyToActionMap[KeyCodes::LCTRL] = ActionMapping(1, InputHandler::Action::Down); + m_keyToActionMap[KeyCodes::RCTRL] = ActionMapping(0, InputHandler::Action::Down); + m_keyToActionMap[Qt::Key_Left] = ActionMapping(0, InputHandler::Action::Left); + m_keyToActionMap[Qt::Key_Right] = ActionMapping(0, InputHandler::Action::Right); + m_keyToActionMap[Qt::Key_A] = ActionMapping(1, InputHandler::Action::Left); + m_keyToActionMap[Qt::Key_D] = ActionMapping(1, InputHandler::Action::Right); + m_keyToActionMap[Qt::Key_Up] = ActionMapping(0, InputHandler::Action::Up); + m_keyToActionMap[Qt::Key_Down] = ActionMapping(0, InputHandler::Action::Down); + m_keyToActionMap[Qt::Key_W] = ActionMapping(1, InputHandler::Action::Up); + m_keyToActionMap[Qt::Key_S] = ActionMapping(1, InputHandler::Action::Down); loadKeyMappings(); m_mouseCursorTimer.setSingleShot(true); m_mouseCursorTimer.setInterval(3000); - connect(&m_mouseCursorTimer, SIGNAL(timeout()), this, SIGNAL(cursorHid())); + connect(&m_mouseCursorTimer, &QTimer::timeout, this, &EventHandler::cursorHid); } void EventHandler::loadKeyMappings() { - std::vector actions = - { + std::vector actions = { InputHandler::Action::Up, InputHandler::Action::Down, InputHandler::Action::Left, @@ -64,9 +63,9 @@ for (InputHandler::Action action : actions) { mapKeyToAction( - player, - action, - Settings::instance().loadKeyMapping(player, action)); + player, + action, + Settings::instance().loadKeyMapping(player, action)); } } } @@ -75,7 +74,7 @@ { assert(player == 0 || player == 1); - m_captureMode = true; + m_captureMode = true; m_captureAction = action; m_capturePlayer = player; } @@ -273,10 +272,7 @@ bool EventHandler::mapKeyToAction(int player, InputHandler::Action action, int key) { - if (key && - key != Qt::Key_Escape && - key != Qt::Key_Q && - key != Qt::Key_P) + if (key && key != Qt::Key_Escape && key != Qt::Key_Q && key != Qt::Key_P) { // Find the matching action and change the key auto iter = m_keyToActionMap.begin(); @@ -292,7 +288,7 @@ } } - m_keyToActionMap[key] = {player, action}; + m_keyToActionMap[key] = { player, action }; Settings::instance().saveKeyMapping(player, action, key); diff -Nru dustrac-2.0.1/src/game/eventhandler.hpp dustrac-2.0.5/src/game/eventhandler.hpp --- dustrac-2.0.1/src/game/eventhandler.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/eventhandler.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -30,7 +30,6 @@ Q_OBJECT public: - //! Constructor. EventHandler(InputHandler & inputHandler); @@ -52,25 +51,25 @@ void gameExited(); - void soundRequested(QString handle); + void soundRequested(QString handle, bool loop = false); void cursorRevealed(); void cursorHid(); private: - class ActionMapping { public: - ActionMapping(int player, InputHandler::Action action) - : m_player(player) - , m_action(action) - {} + : m_player(player) + , m_action(action) + { + } ActionMapping() - {} + { + } int player() const { @@ -83,7 +82,6 @@ } private: - int m_player; InputHandler::Action m_action; }; diff -Nru dustrac-2.0.1/src/game/fadeanimation.cpp dustrac-2.0.5/src/game/fadeanimation.cpp --- dustrac-2.0.1/src/game/fadeanimation.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/fadeanimation.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,12 +17,12 @@ #include FadeAnimation::FadeAnimation(int updateFps) -: m_updateFps(updateFps) -, m_fadeValue(0.0) -, m_fadeIn(false) + : m_updateFps(updateFps) + , m_fadeValue(0.0) + , m_fadeIn(false) { m_timer.setInterval(1000 / updateFps); - connect(&m_timer, SIGNAL(timeout()), this, SLOT(updateAnimation())); + connect(&m_timer, &QTimer::timeout, this, &FadeAnimation::updateAnimation); } bool FadeAnimation::isFading() const @@ -32,11 +32,11 @@ void FadeAnimation::beginFadeIn(int preDelayMSec, int msec, int postDelayMSec) { - m_preDelayMSec = preDelayMSec / m_updateFps; + m_preDelayMSec = preDelayMSec / m_updateFps; m_postDelayMSec = postDelayMSec / m_updateFps; - m_fadeValue = 0.0; - m_step = 1.0 / (msec / m_updateFps); - m_fadeIn = true; + m_fadeValue = 0.0; + m_step = 1.0 / (msec / m_updateFps); + m_fadeIn = true; emit fadeValueChanged(m_fadeValue); @@ -45,11 +45,11 @@ void FadeAnimation::beginFadeOut(int preDelayMSec, int msec, int postDelayMSec) { - m_preDelayMSec = preDelayMSec / m_updateFps; + m_preDelayMSec = preDelayMSec / m_updateFps; m_postDelayMSec = postDelayMSec / m_updateFps; - m_fadeValue = 1.0; - m_step = m_fadeValue / (msec / m_updateFps); - m_fadeIn = false; + m_fadeValue = 1.0; + m_step = m_fadeValue / (msec / m_updateFps); + m_fadeIn = false; emit fadeValueChanged(m_fadeValue); @@ -58,11 +58,11 @@ void FadeAnimation::beginFadeOutFlash(int preDelayMSec, int msec, int postDelayMSec) { - m_preDelayMSec = preDelayMSec / m_updateFps; + m_preDelayMSec = preDelayMSec / m_updateFps; m_postDelayMSec = postDelayMSec / m_updateFps; - m_fadeValue = 10.0; - m_step = m_fadeValue / (msec / m_updateFps); - m_fadeIn = false; + m_fadeValue = 10.0; + m_step = m_fadeValue / (msec / m_updateFps); + m_fadeIn = false; emit fadeValueChanged(m_fadeValue); @@ -111,4 +111,3 @@ } } } - diff -Nru dustrac-2.0.1/src/game/fadeanimation.hpp dustrac-2.0.5/src/game/fadeanimation.hpp --- dustrac-2.0.1/src/game/fadeanimation.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/fadeanimation.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -24,7 +24,6 @@ Q_OBJECT public: - explicit FadeAnimation(int updateFps = 60); bool isFading() const; @@ -50,14 +49,13 @@ void updateAnimation(); private: - QTimer m_timer; - float m_updateFps; - float m_fadeValue; - float m_step; - int m_preDelayMSec; - int m_postDelayMSec; - bool m_fadeIn; + float m_updateFps; + float m_fadeValue; + float m_step; + int m_preDelayMSec; + int m_postDelayMSec; + bool m_fadeIn; }; #endif // FADEANIMATION_HPP diff -Nru dustrac-2.0.1/src/game/fontfactory.cpp dustrac-2.0.5/src/game/fontfactory.cpp --- dustrac-2.0.1/src/game/fontfactory.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/fontfactory.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,12 +17,13 @@ #include "game.hpp" #include -#include #include -#include #include +#include #include +#include "simple_logger.hpp" + #include #include #include @@ -33,22 +34,21 @@ // in order to make all the wide chars work correctly. On Linux/Unix it doesn't // matter whether there's a BOM or not. -static const std::vector glyphs( - {L'A', L'B', L'C', L'D', L'E', L'F', L'G', L'H', - L'I', L'J', L'K', L'L', L'M', L'N', L'O', L'P', - L'Q', L'R', L'S', L'T', L'U', L'V', L'W', L'X', - L'Y', L'Z', L' ', L'Ä', L'Ö', L'Ü', L'Å', L' ', - L'a', L'b', L'c', L'd', L'e', L'f', L'g', L'h', - L'i', L'j', L'k', L'l', L'm', L'n', L'o', L'p', - L'q', L'r', L's', L't', L'u', L'v', L'w', L'x', - L'y', L'z', L' ', L'ä', L'ö', L'ü', L'å', L'\"', - L'0', L'1', L'2', L'3', L'4', L'5', L'6', L'7', - L'8', L'9', L'!', L'\"',L'#', L'$', L'%', L'&', - L'@', L'(', L')', L'*', L'+', L',', L'-', L'.', - L'/', L':', L';', L'<', L'=', L'>', L'?', L'_', - L'Â', L'À', L'É', L'È', L'Ê', L'Ë', L'Î', L'Ï', - L'Ô', L'Û', L'Ç', L'â', L'à', L'é', L'è', L'ê', - L'ë', L'î', L'ï', L'ô', L'û', L'ç', L'\'',L' '}); +static const std::vector russianGlyphs({ + // Russian letters in UTF-8 + L'А', L'Б', L'В', L'Г', L'Д', L'Е', L'Ё', L'Ж', + L'З', L'И', L'Й', L'К', L'Л', L'М', L'Н', L'О', + L'П', L'Р', L'С', L'Т', L'У', L'Ф', L'Х', L'Ц', + L'Ч', L'Ш', L'Щ', L'Ъ', L'Ы', L'Ь', L'Э', L'Ю', + L'Я', + + L'а', L'б', L'в', L'г', L'д', L'е', L'ё', L'ж', + L'з', L'и', L'й', L'к', L'л', L'м', L'н', L'о', + L'п', L'р', L'с', L'т', L'у', L'ф', L'х', L'ц', + L'ч', L'ш', L'щ', L'ъ', L'ы', L'ь', L'э', L'ю', + L'я', L'№' + // End of russian letters in UTF-8 +}); static void addFallbacks(MCTextureFontData & fontData) { @@ -87,27 +87,31 @@ MCTextureFontData FontFactory::generateFontData(QString family) { - const int cols = 8; - const int rows = glyphs.size() / cols; - - int slotWidth = 64; - int slotHeight = 64; - const int glyphHeight = 64; + auto glyphs = russianGlyphs; + for (wchar_t ascii = 0; ascii < 256; ascii++) + { + glyphs.push_back(ascii); + } QFont font; font.setFamily(family); font.setStyleHint(QFont::Monospace); + const int glyphHeight = 64; font.setPixelSize(glyphHeight); font.setBold(true); // Calculate the widest glyph and tune the slot size accordingly + int slotWidth = glyphHeight; + int slotHeight = glyphHeight; + const int cols = 8; + const int rows = static_cast(glyphs.size()) / cols; QFontMetrics fm(font); for (int j = 0; j < rows; j++) { for (int i = 0; i < cols; i++) { const int glyphIndex = j * cols + i; - const QString text(glyphs.at(glyphIndex)); + const QString text(glyphs.at(static_cast(glyphIndex))); if (fm.width(text) > slotWidth) { slotWidth = fm.width(text); @@ -122,12 +126,12 @@ // Add a little margin slotHeight += 4; - MCLogger().info() << "Font slot size: " << slotWidth << "x" << slotHeight; + juzzlin::L().debug() << "Font slot size: " << slotWidth << "x" << slotHeight; const int textureW = cols * slotWidth; const int textureH = rows * slotHeight; - MCLogger().info() << "Font texture size (initial): " << textureW << "x" << textureH; + juzzlin::L().debug() << "Font texture size (initial): " << textureW << "x" << textureH; QPixmap fontPixmap(textureW, textureH); fontPixmap.fill(Qt::transparent); @@ -139,7 +143,7 @@ for (int i = 0; i < cols; i++) { const int glyphIndex = j * cols + i; - const QString text(glyphs.at(glyphIndex)); + const QString text(glyphs.at(static_cast(glyphIndex))); if (text.length()) { @@ -150,17 +154,17 @@ painter.setPen(QColor(255, 255, 255)); painter.drawText( - i * slotWidth, - j * slotHeight, - slotWidth, - slotHeight, - Qt::AlignCenter, - text); + i * slotWidth, + j * slotHeight, + slotWidth, + slotHeight, + Qt::AlignCenter, + text); painter.end(); MCTextureFontData::Glyph glyph; - glyph.name = glyphs.at(glyphIndex); + glyph.name = glyphs.at(static_cast(glyphIndex)); glyph.x0 = i * textureW / cols; glyph.y0 = (rows - j) * textureH / rows; glyph.x1 = (i + 1) * textureW / cols; @@ -175,7 +179,7 @@ // surface / texture rendering that pixmap. MCSurfaceMetaData surfaceData; surfaceData.height = std::pair(textureH, true); - surfaceData.width = std::pair(textureW, true); + surfaceData.width = std::pair(textureW, true); surfaceData.minFilter = std::pair(GL_LINEAR, true); surfaceData.magFilter = std::pair(GL_LINEAR, true); surfaceData.handle = family.toStdString(); diff -Nru dustrac-2.0.1/src/game/game.cpp dustrac-2.0.5/src/game/game.cpp --- dustrac-2.0.1/src/game/game.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/game.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -19,8 +19,8 @@ #include "game.hpp" #include "audioworker.hpp" -#include "graphicsfactory.hpp" #include "eventhandler.hpp" +#include "graphicsfactory.hpp" #include "inputhandler.hpp" #include "renderer.hpp" #include "scene.hpp" @@ -30,19 +30,19 @@ #include "trackloader.hpp" #include "trackselectionmenu.hpp" -#include #include -#include -#include #include #include #include #include -#include -#include +#include #include #include +#include +#include + +#include "simple_logger.hpp" #include @@ -50,30 +50,33 @@ Game * Game::m_instance = nullptr; +using juzzlin::L; + Game::Game(int & argc, char ** argv) -: m_app(argc, argv) -, m_forceNoVSync(false) -, m_settings() -, m_difficultyProfile(m_settings.loadDifficulty()) -, m_inputHandler(new InputHandler(MAX_PLAYERS)) -, m_eventHandler(new EventHandler(*m_inputHandler)) -, m_stateMachine(new StateMachine(*m_inputHandler)) -, m_renderer(nullptr) -, m_scene(nullptr) -, m_trackLoader(new TrackLoader) -, m_updateFps(60) -, m_updateDelay(1000 / m_updateFps) -, m_timeStep(1000 / m_updateFps) -, m_lapCount(m_settings.loadValue(Settings::lapCountKey(), 5)) -, m_paused(false) -, m_renderElapsed(0) -, m_fps(m_settings.loadValue(Settings::fpsKey()) == 30 ? Fps::Fps30 : Fps::Fps60) -, m_mode(Mode::OnePlayerRace) -, m_splitType(SplitType::Vertical) -, m_audioWorker(new AudioWorker( - Scene::NUM_CARS, Settings::instance().loadValue(Settings::soundsKey(), true))) -, m_audioThread(new QThread) -, m_world(new MCWorld) + : m_app(argc, argv) + , m_forceNoVSync(false) + , m_settings() + , m_difficultyProfile(m_settings.loadDifficulty()) + , m_inputHandler(new InputHandler(MAX_PLAYERS)) + , m_eventHandler(new EventHandler(*m_inputHandler)) + , m_stateMachine(new StateMachine(*m_inputHandler)) + , m_renderer(nullptr) + , m_scene(nullptr) + , m_trackLoader(new TrackLoader) + , m_screenIndex(m_settings.loadValue(m_settings.screenKey(), 0)) + , m_updateFps(60) + , m_updateDelay(1000 / m_updateFps) + , m_timeStep(1000 / m_updateFps) + , m_lapCount(m_settings.loadValue(Settings::lapCountKey(), 5)) + , m_paused(false) + , m_renderElapsed(0) + , m_fps(m_settings.loadValue(Settings::fpsKey()) == 30 ? Fps::Fps30 : Fps::Fps60) + , m_mode(Mode::OnePlayerRace) + , m_splitType(SplitType::Vertical) + , m_audioWorker(new AudioWorker( + Scene::carCount(), Settings::instance().loadValue(Settings::soundsKey(), true))) + , m_audioThread(new QThread) + , m_world(new MCWorld) { assert(!Game::m_instance); Game::m_instance = this; @@ -82,24 +85,24 @@ createRenderer(); - connect(&m_difficultyProfile, &DifficultyProfile::difficultyChanged, [this] () { + connect(&m_difficultyProfile, &DifficultyProfile::difficultyChanged, [this]() { m_trackLoader->updateLockedTracks(m_lapCount, m_difficultyProfile.difficulty()); }); connect(m_eventHandler, &EventHandler::pauseToggled, this, &Game::togglePause); connect(m_eventHandler, &EventHandler::gameExited, this, &Game::exitGame); - connect(m_eventHandler, &EventHandler::cursorRevealed, [this] () { + connect(m_eventHandler, &EventHandler::cursorRevealed, [this]() { m_renderer->setCursor(Qt::ArrowCursor); }); - connect(m_eventHandler, &EventHandler::cursorHid, [this] () { + connect(m_eventHandler, &EventHandler::cursorHid, [this]() { m_renderer->setCursor(Qt::BlankCursor); }); - connect(m_eventHandler, SIGNAL(soundRequested(QString)), m_audioWorker, SLOT(playSound(QString))); + connect(m_eventHandler, &EventHandler::soundRequested, m_audioWorker, &AudioWorker::playSound); - connect(&m_updateTimer, &QTimer::timeout, [this] () { + connect(&m_updateTimer, &QTimer::timeout, [this]() { m_stateMachine->update(); m_scene->updateFrame(*m_inputHandler, m_timeStep); m_scene->updateOverlays(); @@ -110,11 +113,7 @@ connect(m_stateMachine, &StateMachine::exitGameRequested, this, &Game::exitGame); - // Add race track search paths - m_trackLoader->addTrackSearchPath(QString(Config::Common::dataPath) + - QDir::separator() + "levels"); - m_trackLoader->addTrackSearchPath(QDir::homePath() + QDir::separator() + - Config::Common::TRACK_SEARCH_PATH); + addTrackSearchPaths(); m_elapsed.start(); } @@ -127,12 +126,17 @@ static void printHelp() { - std::cout << std::endl << "Dust Racing 2D version " << VERSION << std::endl; - std::cout << Config::Common::COPYRIGHT.toStdString() << std::endl << std::endl; + std::cout << std::endl + << "Dust Racing 2D version " << VERSION << std::endl; + std::cout << Config::General::COPYRIGHT << std::endl + << std::endl; std::cout << "Options:" << std::endl; - std::cout << "--help Show this help." << std::endl; - std::cout << "--lang [lang] Force language: fi, fr, it, cs." << std::endl; - std::cout << "--no-vsync Force vsync off." << std::endl; + std::cout << "--debug Set log level to debug." << std::endl; + std::cout << "--help Show this help." << std::endl; + std::cout << "--screen [index] Force a certain screen on multi-display setups." << std::endl; + std::cout << "--trace Set log level to trace." << std::endl; + std::cout << "--lang [lang] Force language: fi, fr, it, cs, ru." << std::endl; + std::cout << "--no-vsync Force vsync off." << std::endl; std::cout << std::endl; } @@ -146,34 +150,64 @@ if (appTranslator.load(QString(DATA_PATH) + "/translations/dustrac-game_" + lang)) { app.installTranslator(&appTranslator); - MCLogger().info() << "Loaded translations for " << lang.toStdString(); + L().info() << "Loaded translations for " << lang.toStdString(); } else { - MCLogger().warning() << "Failed to load translations for " << lang.toStdString(); + L().warning() << "Failed to load translations for " << lang.toStdString(); } } +void Game::addTrackSearchPaths() +{ + m_trackLoader->addTrackSearchPath(QString(Config::General::dataPath) + QDir::separator() + "levels"); + m_trackLoader->addTrackSearchPath(QDir::homePath() + QDir::separator() + Config::General::TRACK_SEARCH_PATH); + +#ifdef __unix__ + // See: https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html, + // https://github.com/juzzlin/DustRacing2D/issues/49 + m_trackLoader->addTrackSearchPath(Config::General::Unix::getXdgTrackSearchPath()); +#endif +} + void Game::parseArgs(int argc, char ** argv) { QString lang = ""; const std::vector args(argv, argv + argc); - for (unsigned int i = 0; i < args.size(); i++) + for (size_t i = 1; i < args.size(); i++) { if (args[i] == "-h" || args[i] == "--help") { printHelp(); throw UserException("Exit due to help."); } + else if (args[i] == "--screen" && (i + i) < args.size()) + { + m_screenIndex = args[++i].toInt(); + m_settings.saveValue(m_settings.screenKey(), m_screenIndex); + } else if (args[i] == "--lang" && (i + i) < args.size()) { - lang = args[i + 1]; + lang = args[++i]; } else if (args[i] == "--no-vsync") { m_forceNoVSync = true; } + else if (args[i] == "--debug") + { + L::setLoggingLevel(L::Level::Debug); + } + else if (args[i] == "--trace") + { + L::setLoggingLevel(L::Level::Trace); + } + else + { + printHelp(); + throw std::runtime_error("Unknown argument: " + args[i].toStdString()); + } } initTranslations(m_appTranslator, m_app, lang); @@ -181,25 +215,6 @@ void Game::createRenderer() { - // Create the main window / renderer - int hRes, vRes; - bool fullScreen = false; - - m_settings.loadResolution(hRes, vRes, fullScreen); - - if (!hRes || !vRes) - { - hRes = QGuiApplication::primaryScreen()->geometry().width(); - vRes = QGuiApplication::primaryScreen()->geometry().height(); - } - - adjustSceneSize(hRes, vRes); - - MCLogger().info() - << "Resolution: " << hRes << " " << vRes << " " << fullScreen; - - MCLogger().info() << "Creating the renderer.."; - QSurfaceFormat format; #ifdef __MC_GL30__ @@ -224,12 +239,39 @@ } #endif + // Create the main window / renderer + int hRes, vRes; + bool fullScreen = false; + + m_settings.loadResolution(hRes, vRes, fullScreen); + + const auto screens = QGuiApplication::screens(); + + L().info() << "Screen: " << m_screenIndex << "/" << screens.size(); + + m_screen = m_screenIndex < screens.size() ? screens.at(m_screenIndex) : screens.at(0); + + if (!hRes || !vRes) + { + hRes = m_screen->geometry().width(); + vRes = m_screen->geometry().height(); + } + + adjustSceneSize(m_screen->geometry().width(), m_screen->geometry().height()); + + L().info() << "Screen resolution: " << m_screen->geometry().width() << " " << m_screen->geometry().height(); + + L().info() << "Virtual resolution: " << hRes << " " << vRes << " " << fullScreen; + + L().debug() << "Creating the renderer.."; + m_renderer = new Renderer(hRes, vRes, fullScreen, m_world->renderer().glScene()); m_renderer->setFormat(format); m_renderer->setCursor(Qt::BlankCursor); if (fullScreen) { + m_renderer->setGeometry(m_screen->geometry()); m_renderer->showFullScreen(); } else @@ -326,12 +368,17 @@ return m_app.exec(); } +QScreen * Game::screen() const +{ + return m_screen; +} + bool Game::loadTracks() { // Load track data if (int numLoaded = m_trackLoader->loadTracks(m_lapCount, m_difficultyProfile.difficulty())) { - MCLogger().info() << "A total of " << numLoaded << " race track(s) loaded."; + L().info() << "A total of " << numLoaded << " race track(s) loaded."; } else { @@ -355,7 +402,7 @@ // Add tracks to the menu. for (unsigned int i = 0; i < m_trackLoader->tracks(); i++) { - trackSelectionMenu->addTrack(*m_trackLoader->track(i)); + trackSelectionMenu->addTrack(m_trackLoader->track(i)); } // Set the current game scene. Renderer calls render() @@ -411,12 +458,12 @@ if (m_paused) { start(); - MCLogger().info() << "Game continued."; + L().info() << "Game continued."; } else { stop(); - MCLogger().info() << "Game paused."; + L().info() << "Game paused."; } } diff -Nru dustrac-2.0.1/src/game/game.hpp dustrac-2.0.5/src/game/game.hpp --- dustrac-2.0.1/src/game/game.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/game.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,8 +17,8 @@ #define GAME_HPP #include -#include #include +#include #include #include @@ -36,8 +36,7 @@ class StateMachine; class TimingOverlay; class TrackLoader; -class MCObjectFactory; -class MCAssetManager; +class QScreen; //! The main game class. class Game : public QObject @@ -45,7 +44,6 @@ Q_OBJECT public: - enum class Mode { OnePlayerRace, @@ -116,6 +114,8 @@ const std::string & fontName() const; + QScreen * screen() const; + public slots: void exitGame(); @@ -127,6 +127,7 @@ void togglePause(); private: + void addTrackSearchPaths(); void adjustSceneSize(int hRes, int vRes); @@ -164,6 +165,10 @@ TrackLoader * m_trackLoader; + QScreen * m_screen = nullptr; + + int m_screenIndex = 0; + int m_updateFps; int m_updateDelay; diff -Nru dustrac-2.0.1/src/game/game.pro dustrac-2.0.5/src/game/game.pro --- dustrac-2.0.1/src/game/game.pro 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/game.pro 2020-01-06 23:07:24.000000000 +0000 @@ -3,8 +3,9 @@ TEMPLATE = app TARGET = dustrac-game -DEFINES += DATA_PATH=\\\"./data\\\" VERSION=\\\"2.0.1\\\" -QMAKE_CXXFLAGS += -O3 -std=gnu++11 -fomit-frame-pointer -finline-functions -ffast-math +CONFIG += c++14 +DEFINES += DATA_PATH=\\\"./data\\\" VERSION=\\\"2.0.5\\\" +QMAKE_CXXFLAGS += -O3 -fomit-frame-pointer -finline-functions -ffast-math # Qt version check contains(QT_VERSION, ^5\\..*) { @@ -34,6 +35,7 @@ STFH \ menu \ audio \ + ../contrib/SimpleLogger/src # Input HEADERS += \ @@ -68,7 +70,6 @@ ai.hpp \ application.hpp \ bridge.hpp \ - bridgetrigger.hpp \ car.hpp \ carfactory.hpp \ carparticleeffectmanager.hpp \ @@ -82,6 +83,7 @@ fadeanimation.hpp \ fontfactory.hpp \ game.hpp \ + gearbox.hpp \ graphicsfactory.hpp \ inputhandler.hpp \ intro.hpp \ @@ -196,6 +198,7 @@ MiniCore/src/Physics/mcrectshape.hh \ MiniCore/src/Physics/mcsegment.hh \ MiniCore/src/Physics/mcshape.hh \ + MiniCore/src/Physics/mcseparationevent.hh \ MiniCore/src/Physics/mcspringforcegenerator.hh \ MiniCore/src/Physics/mcspringforcegenerator2dfast.hh \ MiniCore/src/Text/mctexturefont.hh \ @@ -209,9 +212,9 @@ STFH/listener.hpp \ STFH/location.hpp \ STFH/source.hpp \ + ../contrib/SimpleLogger/src/simple_logger.hpp SOURCES += \ - ../common/config.cpp \ ../common/mapbase.cpp \ ../common/objectbase.cpp \ ../common/objects.cpp \ @@ -242,7 +245,6 @@ ai.cpp \ application.cpp \ bridge.cpp \ - bridgetrigger.cpp \ car.cpp \ carfactory.cpp \ carparticleeffectmanager.cpp \ @@ -256,6 +258,7 @@ fadeanimation.cpp \ fontfactory.cpp \ game.cpp \ + gearbox.cpp \ graphicsfactory.cpp \ inputhandler.cpp \ intro.cpp \ @@ -345,6 +348,7 @@ MiniCore/src/Physics/mcoutofboundariesevent.cc \ MiniCore/src/Physics/mcphysicscomponent.cc \ MiniCore/src/Physics/mcrectshape.cc \ + MiniCore/src/Physics/mcseparationevent.cc \ MiniCore/src/Physics/mcshape.cc \ MiniCore/src/Physics/mcspringforcegenerator.cc \ MiniCore/src/Physics/mcspringforcegenerator2dfast.cc \ @@ -360,14 +364,17 @@ STFH/listener.cpp \ STFH/location.cpp \ STFH/source.cpp \ + ../contrib/SimpleLogger/src/simple_logger.cpp RESOURCES += ../../data/icons/icons.qrc ../../data/images/editor.qrc RC_FILE = ../../data/icons/WindowsGame.rc TRANSLATIONS += \ + translations/dustrac-game_cs.ts \ + translations/dustrac-game_de.ts \ translations/dustrac-game_fi.ts \ translations/dustrac-game_fr.ts \ translations/dustrac-game_it.ts \ - translations/dustrac-game_cs.ts + translations/dustrac-game_ru.ts target.path = $$OUT_PWD/../.. INSTALLS += target diff -Nru dustrac-2.0.1/src/game/gearbox.cpp dustrac-2.0.5/src/game/gearbox.cpp --- dustrac-2.0.1/src/game/gearbox.cpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/game/gearbox.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,74 @@ +// This file is part of Dust Racing 2D. +// Copyright (C) 2019 Jussi Lind +// +// Dust Racing 2D is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Dust Racing 2D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Dust Racing 2D. If not, see . + +#include "gearbox.hpp" + +#include + +Gearbox::Gearbox() +{ +} + +Gearbox::Gear Gearbox::gear() const +{ + return m_gear; +} + +void Gearbox::update(int speedInKmh) +{ + if (m_acceleratorEnabled && m_brakeEnabled) + { + m_gear = Gear::Neutral; + } + else if (m_brakeEnabled) + { + if (speedInKmh == 0) + { + if (m_gear != Gear::Stop && m_gear != Gear::Reverse) + { + m_gear = Gear::Stop; + m_stopCounter = 0; + } + else + { + if (++m_stopCounter > 30) // Wait ~0.5 sec before reverse engages + { + m_gear = Gear::Reverse; + } + } + } + } + else if (m_acceleratorEnabled) + { + if (m_gear == Gear::Neutral || m_gear == Gear::Stop) + { + m_gear = Gear::Forward; + } + } + else + { + m_gear = Gear::Neutral; + } +} + +void Gearbox::setAcceleratorEnabled(bool enable) +{ + m_acceleratorEnabled = enable; +} + +void Gearbox::setBrakeEnabled(bool enable) +{ + m_brakeEnabled = enable; +} diff -Nru dustrac-2.0.1/src/game/gearbox.hpp dustrac-2.0.5/src/game/gearbox.hpp --- dustrac-2.0.1/src/game/gearbox.hpp 1970-01-01 00:00:00.000000000 +0000 +++ dustrac-2.0.5/src/game/gearbox.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -0,0 +1,50 @@ +// This file is part of Dust Racing 2D. +// Copyright (C) 2019 Jussi Lind +// +// Dust Racing 2D is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// Dust Racing 2D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Dust Racing 2D. If not, see . + +#ifndef GEARBOX_HPP +#define GEARBOX_HPP + +class Gearbox +{ +public: + enum class Gear + { + Neutral, + Forward, + Reverse, + Stop + }; + + Gearbox(); + + Gear gear() const; + + void setAcceleratorEnabled(bool enable); + + void setBrakeEnabled(bool enable); + + void update(int speedInKmh); + +private: + Gear m_gear = Gear::Neutral; + + bool m_acceleratorEnabled = false; + + bool m_brakeEnabled = false; + + int m_stopCounter = 0; +}; + +#endif // GEARBOX_HPP diff -Nru dustrac-2.0.1/src/game/graphicsfactory.cpp dustrac-2.0.5/src/game/graphicsfactory.cpp --- dustrac-2.0.1/src/game/graphicsfactory.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/graphicsfactory.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,10 +16,9 @@ #include "graphicsfactory.hpp" #include -#include #include -#include #include +#include // These are needed to generate the number plate surface on top of the car. #include @@ -29,13 +28,9 @@ #include -MCSurface & GraphicsFactory::generateNumberSurface(int index) +MCSurfacePtr GraphicsFactory::generateNumberSurface(size_t index) { - static std::vector numberPlates( - {"1", "11", "10", "9", "8", "7", "6", "5", "4", "3", "2", "x"}); - assert(index < static_cast(numberPlates.size())); - - const int pixmapWidth = 32; + const int pixmapWidth = 32; const int pixmapHeight = 32; QPixmap numberPixmap(pixmapWidth, pixmapHeight); @@ -50,34 +45,31 @@ painter.setFont(font); painter.setPen(QColor(0, 0, 0)); - const QFontMetrics fm = painter.fontMetrics(); - const QString text = numberPlates.at(index).c_str(); - painter.drawText( - 0, - 0, - pixmapWidth, - pixmapHeight, - Qt::AlignCenter, - text); + 0, + 0, + pixmapWidth, + pixmapHeight, + Qt::AlignCenter, + std::to_string(index + 1).c_str()); painter.end(); // Note, that the size of the pixmap doesn't affect the size of the actual // surface / texture rendering that pixmap. MCSurfaceMetaData surfaceData; - surfaceData.height = {9, true}; - surfaceData.width = {9, true}; - surfaceData.minFilter = {GL_LINEAR, true}; - surfaceData.magFilter = {GL_LINEAR, true}; + surfaceData.height = { 9, true }; + surfaceData.width = { 9, true }; + surfaceData.minFilter = { GL_LINEAR, true }; + surfaceData.magFilter = { GL_LINEAR, true }; surfaceData.handle = "Number" + std::to_string(index); return MCAssetManager::surfaceManager().createSurfaceFromImage(surfaceData, numberPixmap.toImage()); } -MCSurface & GraphicsFactory::generateMinimapMarker() +MCSurfacePtr GraphicsFactory::generateMinimapMarker() { - const int pixmapWidth = 64; + const int pixmapWidth = 64; const int pixmapHeight = 64; QPixmap markerPixmap(pixmapWidth, pixmapHeight); @@ -94,10 +86,10 @@ // Note, that the size of the pixmap doesn't affect the size of the actual // surface / texture rendering that pixmap. MCSurfaceMetaData surfaceData; - surfaceData.height = {9, true}; - surfaceData.width = {9, true}; - surfaceData.minFilter = {GL_LINEAR, true}; - surfaceData.magFilter = {GL_LINEAR, true}; + surfaceData.height = { 9, true }; + surfaceData.width = { 9, true }; + surfaceData.minFilter = { GL_LINEAR, true }; + surfaceData.magFilter = { GL_LINEAR, true }; surfaceData.handle = "Minimap"; return MCAssetManager::surfaceManager().createSurfaceFromImage(surfaceData, markerPixmap.toImage()); diff -Nru dustrac-2.0.1/src/game/graphicsfactory.hpp dustrac-2.0.5/src/game/graphicsfactory.hpp --- dustrac-2.0.1/src/game/graphicsfactory.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/graphicsfactory.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -18,14 +18,16 @@ #include "minimap.hpp" +#include + class MCSurface; //! Helper functions to create miscellaneous graphic items. namespace GraphicsFactory { -MCSurface & generateNumberSurface(int index); +std::shared_ptr generateNumberSurface(size_t index); -MCSurface & generateMinimapMarker(); +std::shared_ptr generateMinimapMarker(); } // namespace GraphicsFactory diff -Nru dustrac-2.0.1/src/game/inputhandler.cpp dustrac-2.0.5/src/game/inputhandler.cpp --- dustrac-2.0.1/src/game/inputhandler.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/inputhandler.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -14,23 +14,24 @@ // along with Dust Racing 2D. If not, see . #include "inputhandler.hpp" -#include #include +#include bool InputHandler::m_enabled = true; -InputHandler::InputHandler(unsigned int maxPlayers) +InputHandler::InputHandler(size_t maxPlayers) : m_playerActions(maxPlayers, std::bitset(Action::EndOfEnum)>()) -{} +{ +} -bool InputHandler::getActionState(unsigned int playerIndex, Action action) const +bool InputHandler::getActionState(size_t playerIndex, Action action) const { - return InputHandler::m_enabled && m_playerActions[playerIndex][static_cast(action)]; + return InputHandler::m_enabled && m_playerActions[playerIndex][static_cast(action)]; } -void InputHandler::setActionState(unsigned int playerIndex, Action action, bool state) +void InputHandler::setActionState(size_t playerIndex, Action action, bool state) { - m_playerActions[playerIndex][static_cast(action)] = state; + m_playerActions[playerIndex][static_cast(action)] = state; } void InputHandler::setEnabled(bool state) @@ -45,7 +46,7 @@ void InputHandler::reset() { - for (auto & i : m_playerActions) + for (auto && i : m_playerActions) { i.reset(); } diff -Nru dustrac-2.0.1/src/game/inputhandler.hpp dustrac-2.0.5/src/game/inputhandler.hpp --- dustrac-2.0.1/src/game/inputhandler.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/inputhandler.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,16 +16,13 @@ #ifndef INPUTHANDLER_HPP #define INPUTHANDLER_HPP -#include #include - - +#include //! Handler for players' interactions. class InputHandler { public: - //! Possible actions. enum class Action : int { @@ -37,13 +34,13 @@ }; //! Constructor. - InputHandler(unsigned int maxPlayers); + InputHandler(size_t maxPlayers); //! Set state of the given action of the given player. - void setActionState(unsigned int playerIndex, Action action, bool state); + void setActionState(size_t playerIndex, Action action, bool state); //! Get state of the given action of the given player. - bool getActionState(unsigned int playerIndex, Action action) const; + bool getActionState(size_t playerIndex, Action action) const; //! Reset the current actions. void reset(); @@ -55,7 +52,6 @@ static bool enabled(); private: - typedef std::vector(Action::EndOfEnum)>> ActionVector; ActionVector m_playerActions; diff -Nru dustrac-2.0.1/src/game/intro.cpp dustrac-2.0.5/src/game/intro.cpp --- dustrac-2.0.1/src/game/intro.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/intro.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -23,32 +23,32 @@ #include Intro::Intro() -: m_back(MCAssetManager::surfaceManager().surface("intro")) -, m_font(MCAssetManager::textureFontManager().font(Game::instance().fontName())) + : m_back(MCAssetManager::surfaceManager().surface("intro")) + , m_font(MCAssetManager::textureFontManager().font(Game::instance().fontName())) { - m_back.setShaderProgram(Renderer::instance().program("menu")); - m_back.setColor(MCGLColor(1.0f, 1.0f, 1.0f, 1.0f)); + m_back->setShaderProgram(Renderer::instance().program("menu")); + m_back->setColor(MCGLColor(1.0f, 1.0f, 1.0f, 1.0f)); } -void Intro::setDimensions(int width, int height) +void Intro::setDimensions(size_t width, size_t height) { OverlayBase::setDimensions(width, height); } void Intro::render() { - const int w2 = width() / 2; + const int w2 = width() / 2; const int h2 = height() / 2; assert(w2 > 0 && h2 > 0); - m_back.bind(); - m_back.setSize(width(), width() * m_back.height() / m_back.width()); - m_back.render(nullptr, MCVector3dF(w2, h2, 0), 0); + m_back->bind(); + m_back->setSize(width(), width() * m_back->height() / m_back->width()); + m_back->render(nullptr, { static_cast(w2), static_cast(h2), 0 }, 0); - static QString version = QString("v") + VERSION; + static auto version = QString("v") + VERSION; static MCTextureText versionText(version.toStdWString()); versionText.setGlyphSize(20, height() / 32); versionText.setColor(MCGLColor(0.75f, 0.75f, 0.75f)); versionText.render( - versionText.height(m_font), - versionText.height(m_font), nullptr, m_font, false); + versionText.height(m_font), + versionText.height(m_font), nullptr, m_font, false); } diff -Nru dustrac-2.0.1/src/game/intro.hpp dustrac-2.0.5/src/game/intro.hpp --- dustrac-2.0.1/src/game/intro.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/intro.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -20,6 +20,8 @@ #include +#include + class MCSurface; class MCTextureFont; @@ -27,7 +29,6 @@ class Intro : public OverlayBase { public: - //! Constructor. Intro(); @@ -35,11 +36,10 @@ void render() override; //! \reimp - void setDimensions(int width, int height) override; + void setDimensions(size_t width, size_t height) override; private: - - MCSurface & m_back; + std::shared_ptr m_back; MCTextureFont & m_font; }; diff -Nru dustrac-2.0.1/src/game/keycodes.hpp dustrac-2.0.5/src/game/keycodes.hpp --- dustrac-2.0.1/src/game/keycodes.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/keycodes.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,14 +8,14 @@ const unsigned int RSHIFT = 62; -const unsigned int LCTRL = 37; +const unsigned int LCTRL = 37; -const unsigned int RCTRL = 105; +const unsigned int RCTRL = 105; -const unsigned int LALT = 64; +const unsigned int LALT = 64; -const unsigned int RALT = 92; +const unsigned int RALT = 92; -} +} // namespace KeyCodes #endif // KEYCODES_HPP diff -Nru dustrac-2.0.1/src/game/layers.hpp dustrac-2.0.5/src/game/layers.hpp --- dustrac-2.0.1/src/game/layers.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/layers.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -21,12 +21,12 @@ /*! Define the collision layers for different kinds of objects. */ enum class Collision : int { - Ground = 0, - Objects = 1, - Bridge = 2, + Ground = 0, + Objects = 1, + Bridge = 2, BridgeRails = 3 }; -} +} // namespace Layers #endif // LAYERS_HPP diff -Nru dustrac-2.0.1/src/game/main.cpp dustrac-2.0.5/src/game/main.cpp --- dustrac-2.0.1/src/game/main.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/main.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -13,8 +13,8 @@ // You should have received a copy of the GNU General Public License // along with Dust Racing 2D. If not, see . -#include #include +#include #include #include #include @@ -25,28 +25,33 @@ #include "application.hpp" #include "game.hpp" -#include +#include "simple_logger.hpp" #include #include -#include #include +#include -static const char * INIT_ERROR = "Initializing the game failed!"; +using juzzlin::L; static void initLogger() { - QString logPath = QDir::tempPath() + QDir::separator() + "dustrac.log"; - MCLogger::init(logPath.toStdString().c_str()); - MCLogger::enableEchoMode(true); - MCLogger::enableDateTimePrefix(true); - MCLogger().info() << "Dust Racing 2D version " << VERSION; - MCLogger().info() << "Compiled against Qt version " << QT_VERSION_STR; + QString logPath = QDir::tempPath() + QDir::separator() + "dr2d.log"; + L::init(logPath.toStdString().c_str()); + L::enableDateTime(true); + L::setLevelSymbol(L::Level::Trace, ""); + L::setLevelSymbol(L::Level::Debug, ""); + L::setLevelSymbol(L::Level::Info, ""); + L::setLevelSymbol(L::Level::Warning, ""); + L::setLevelSymbol(L::Level::Fatal, ""); + L::enableEchoMode(true); + L().info() << "Dust Racing 2D version " << VERSION; + L().info() << "Compiled against Qt version " << QT_VERSION_STR; } int main(int argc, char ** argv) { - QApplication::setOrganizationName(Config::Common::QSETTINGS_COMPANY_NAME); + QApplication::setOrganizationName(Config::General::QSETTINGS_COMPANY_NAME); QApplication::setApplicationName(Config::Game::QSETTINGS_SOFTWARE_NAME); #ifdef Q_OS_WIN32 QSettings::setDefaultFormat(QSettings::IniFormat); @@ -60,18 +65,17 @@ // Create the main game object. The game loop starts immediately after // the Renderer has been initialized. - MCLogger().info() << "Creating game object.."; + L().debug() << "Creating game object.."; - game.reset(new Game(argc, argv)); + game = std::make_unique(argc, argv); return game->run(); - } - catch (std::exception & e) + } catch (std::exception & e) { if (!dynamic_cast(&e)) { - MCLogger().fatal() << e.what(); - MCLogger().fatal() << INIT_ERROR; + L().fatal() << e.what(); + L().fatal() << "Initializing the game failed!"; } game.reset(); @@ -79,4 +83,3 @@ return EXIT_FAILURE; } } - diff -Nru dustrac-2.0.1/src/game/map.cpp dustrac-2.0.5/src/game/map.cpp --- dustrac-2.0.1/src/game/map.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/map.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -19,19 +19,19 @@ #include #include -Map::Map(unsigned int cols, unsigned int rows) -: MapBase(cols, rows) +Map::Map(size_t cols, size_t rows) + : MapBase(cols, rows) { // Create tiles and set coordinates. - for (unsigned int i = 0; i < cols; i++) + for (size_t i = 0; i < cols; i++) { - for (unsigned int j = 0; j < rows; j++) + for (size_t j = 0; j < rows; j++) { - TrackTileBase * newTile = new TrackTile( - QPointF(TrackTile::TILE_W / 2 + i * TrackTile::TILE_W, - TrackTile::TILE_H / 2 + j * TrackTile::TILE_H), - QPoint(i, j)); - setTile(i, j, TrackTileBasePtr(newTile)); + auto newTile = std::make_shared( + QPointF(TrackTile::width() / 2 + i * TrackTile::width(), + TrackTile::height() / 2 + j * TrackTile::height()), + QPoint(static_cast(i), static_cast(j))); + setTile(i, j, newTile); } } } diff -Nru dustrac-2.0.1/src/game/map.hpp dustrac-2.0.5/src/game/map.hpp --- dustrac-2.0.1/src/game/map.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/map.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -24,9 +24,8 @@ class Map : public MapBase { public: - //! Constuctor. - Map(unsigned int cols, unsigned int rows); + Map(size_t cols, size_t rows); //! Destructor. virtual ~Map(); diff -Nru dustrac-2.0.1/src/game/menu/confirmationmenu.cpp dustrac-2.0.5/src/game/menu/confirmationmenu.cpp --- dustrac-2.0.1/src/game/menu/confirmationmenu.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/confirmationmenu.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -27,16 +27,16 @@ #include ConfirmationMenu::ConfirmationMenu(std::string id, int width, int height) - : SurfaceMenu("settingsBack", id, width, height, MTFH::Menu::Style::HorizontalList, false) -, m_acceptItem(new MTFH::MenuItem(width / 4, height, QObject::tr("Ok").toStdWString())) -, m_cancelItem(new MTFH::MenuItem(width / 4, height, QObject::tr("Cancel").toStdWString())) -, m_text(L"") + : SurfaceMenu("settingsBack", id, width, height, MTFH::Menu::Style::HorizontalList, false) + , m_acceptItem(std::make_shared(width / 4, height, QObject::tr("Ok").toStdWString())) + , m_cancelItem(std::make_shared(width / 4, height, QObject::tr("Cancel").toStdWString())) + , m_text(L"") { - m_acceptItem->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *m_acceptItem))); - m_cancelItem->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *m_cancelItem))); + m_acceptItem->setView(std::make_shared(20, *m_acceptItem)); + m_cancelItem->setView(std::make_shared(20, *m_cancelItem)); - addItem(MTFH::MenuItemPtr(m_acceptItem)); - addItem(MTFH::MenuItemPtr(m_cancelItem)); + addItem(m_acceptItem); + addItem(m_cancelItem); } void ConfirmationMenu::setAcceptAction(MTFH::MenuItemActionPtr action) @@ -75,12 +75,10 @@ SurfaceMenu::render(); MCTextureText text(m_text); - - const int shadowY = -2; - const int shadowX = 2; - text.setColor(MCGLColor(0.25, 0.75, 1.0, 1.0)); text.setGlyphSize(20, 20); + const int shadowY = -2; + const int shadowX = 2; text.setShadowOffset(shadowX, shadowY); auto && font = MCAssetManager::textureFontManager().font(Game::instance().fontName()); diff -Nru dustrac-2.0.1/src/game/menu/confirmationmenu.hpp dustrac-2.0.5/src/game/menu/confirmationmenu.hpp --- dustrac-2.0.1/src/game/menu/confirmationmenu.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/confirmationmenu.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -28,7 +28,6 @@ class ConfirmationMenu : public SurfaceMenu { public: - //! Constructor. ConfirmationMenu(std::string id, int width, int height); @@ -49,7 +48,6 @@ virtual void render(); private: - MTFH::MenuItemPtr m_acceptItem; MTFH::MenuItemPtr m_cancelItem; diff -Nru dustrac-2.0.1/src/game/menu/credits.cpp dustrac-2.0.5/src/game/menu/credits.cpp --- dustrac-2.0.1/src/game/menu/credits.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/credits.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -34,47 +34,22 @@ } Credits::Credits(std::string id, int width, int height) - : SurfaceMenu("creditsBack", id, width, height, Menu::Style::VerticalList, true) + : SurfaceMenu("creditsBack", id, width, height, Menu::Style::VerticalList, true) { m_texts = { - MCTextureText(margin(8) + QObject::tr("PROGRAMMING").toUpper().toStdWString() + - L"\n\n" + - L"Jussi Lind \n\n"), - - MCTextureText(margin(13) + QObject::tr("GRAPHICS").toUpper().toStdWString() + - L"\n\n" + - L"Jussi Lind\n\n" + - L"Ville Mäkiranta (original graphics)\n\n"), - - MCTextureText(margin(5) + QObject::tr("LEVEL DESIGN").toUpper().toStdWString() + - L"\n\n" + - L"Jussi Lind\n\n" + - L"Wuzzy \n\n"), - - MCTextureText(margin(14) + QObject::tr("TRANSLATIONS").toUpper().toStdWString() + - L"\n\n" + - L"Pavel Fric (cs)\n\n" + - L"Wuzzy (de)\n\n" + - L"Paolo Straffi (it)\n\n" + - L"Jussi Lind (fi)\n\n" + - L"Rémi Verschelde (fr)\n\n"), - - MCTextureText(margin(14) + QObject::tr("PATCHES").toUpper().toStdWString() + - L"\n\n" + - L"Markus Rinne\n\n" + - L"Paolo Straffi\n\n" + - L"Pavel Fric\n\n" + - L"Rémi Verschelde\n\n" + - L"Pino Toscano \n\n" + - L"David Carlier \n\n" + - L"Dimitriy Marakasov \n\n" + - L"jarssoft \n\n"), - - MCTextureText(margin(2) + QObject::tr("SPECIAL THANKS").toUpper().toStdWString() + - L"\n\n" + - L"Tommi Martela\n\n" - L"Alex Rietveld\n\n" - L"Matthias Mailänder\n") + MCTextureText(margin(8) + QObject::tr("PROGRAMMING").toUpper().toStdWString() + L"\n\n" + L"Jussi Lind \n\n"), + + MCTextureText(margin(13) + QObject::tr("GRAPHICS").toUpper().toStdWString() + L"\n\n" + L"Jussi Lind\n\n" + L"Ville Mäkiranta (original graphics)\n\n"), + + MCTextureText(margin(5) + QObject::tr("LEVEL DESIGN").toUpper().toStdWString() + L"\n\n" + L"Jussi Lind\n\n" + L"Wuzzy \n\n"), + + MCTextureText(margin(14) + QObject::tr("TRANSLATIONS").toUpper().toStdWString() + L"\n\n" + L"Pavel Fric (cs)\n\n" + L"Wuzzy (de)\n\n" + L"Paolo Straffi (it)\n\n" + L"Jussi Lind (fi)\n\n" + L"Rémi Verschelde (fr)\n\n"), + + MCTextureText(margin(14) + QObject::tr("PATCHES").toUpper().toStdWString() + L"\n\n" + L"Markus Rinne\n\n" + L"Paolo Straffi\n\n" + L"Pavel Fric\n\n" + L"Rémi Verschelde\n\n" + L"Pino Toscano \n\n" + L"David Carlier \n\n" + L"Dimitriy Marakasov \n\n" + L"jarssoft \n\n"), + + MCTextureText(margin(2) + QObject::tr("SPECIAL THANKS").toUpper().toStdWString() + L"\n\n" + L"Tommi Martela\n\n" + L"Alex Rietveld\n\n" + L"Matthias Mailänder\n") }; } @@ -90,9 +65,9 @@ m_textIndex = m_textIndex % m_texts.size(); } - auto text = m_texts.at(m_textIndex); + auto && text = m_texts.at(m_textIndex); text.setGlyphSize(20, 20 * height() / 640); text.render( - x() + width() / 2 - text.width(font()) / 2, - y() + height() / 2 + text.height(font()) / 2, nullptr, font()); + x() + width() / 2 - text.width(font()) / 2, + y() + height() / 2 + text.height(font()) / 2, nullptr, font()); } diff -Nru dustrac-2.0.1/src/game/menu/credits.hpp dustrac-2.0.5/src/game/menu/credits.hpp --- dustrac-2.0.1/src/game/menu/credits.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/credits.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -25,7 +25,6 @@ class Credits : public SurfaceMenu { public: - //! Constructor. Credits(std::string id, int width, int height); @@ -33,12 +32,11 @@ virtual void render() override; private: - std::vector m_texts; int m_time = 0; - int m_textIndex = 0; + size_t m_textIndex = 0; }; #endif // CREDITS_HPP diff -Nru dustrac-2.0.1/src/game/menu/difficultymenu.cpp dustrac-2.0.5/src/game/menu/difficultymenu.cpp --- dustrac-2.0.1/src/game/menu/difficultymenu.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/difficultymenu.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -24,55 +24,54 @@ #include #include -#include +#include "simple_logger.hpp" static const int ITEM_TEXT_SIZE = 40; std::string DifficultyMenu::MenuId = "difficulty"; DifficultyMenu::DifficultyMenu(int width, int height) - : SurfaceMenu("trackSelectionBack", MenuId, width, height, Menu::Style::VerticalList) + : SurfaceMenu("trackSelectionBack", MenuId, width, height, Menu::Style::VerticalList) { const int itemHeight = height / 8; const int textSize = ITEM_TEXT_SIZE; using MTFH::MenuItem; using MTFH::MenuManager; - using MTFH::MenuItemViewPtr; - MenuItem * easyItem = new MenuItem(width, itemHeight, QObject::tr("Easy").toUpper().toStdWString()); - easyItem->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *easyItem))); - easyItem->setAction([] () { - MCLogger().info() << "Easy selected."; + const auto easyItem = std::make_shared(width, itemHeight, QObject::tr("Easy").toUpper().toStdWString()); + easyItem->setView(std::make_shared(textSize, *easyItem)); + easyItem->setAction([]() { + juzzlin::L().info() << "Easy selected."; const DifficultyProfile::Difficulty chosenDifficulty = DifficultyProfile::Difficulty::Easy; Settings::instance().saveDifficulty(chosenDifficulty); Game::instance().difficultyProfile().setDifficulty(chosenDifficulty); MenuManager::instance().pushMenu(LapCountMenu::MenuId); }); - MenuItem * mediumItem = new MenuItem(width, itemHeight, QObject::tr("Medium").toUpper().toStdWString()); - mediumItem->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *mediumItem))); - mediumItem->setAction([] () { - MCLogger().info() << "Medium selected."; + const auto mediumItem = std::make_shared(width, itemHeight, QObject::tr("Medium").toUpper().toStdWString()); + mediumItem->setView(std::make_shared(textSize, *mediumItem)); + mediumItem->setAction([]() { + juzzlin::L().info() << "Medium selected."; const DifficultyProfile::Difficulty chosenDifficulty = DifficultyProfile::Difficulty::Medium; Settings::instance().saveDifficulty(chosenDifficulty); Game::instance().difficultyProfile().setDifficulty(chosenDifficulty); MenuManager::instance().pushMenu(LapCountMenu::MenuId); }); - MenuItem * hardItem = new MenuItem(width, itemHeight, QObject::tr("Hard").toUpper().toStdWString()); - hardItem->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *hardItem))); - hardItem->setAction([] () { - MCLogger().info() << "Hard selected."; + const auto hardItem = std::make_shared(width, itemHeight, QObject::tr("Hard").toUpper().toStdWString()); + hardItem->setView(std::make_shared(textSize, *hardItem)); + hardItem->setAction([]() { + juzzlin::L().info() << "Hard selected."; const DifficultyProfile::Difficulty chosenDifficulty = DifficultyProfile::Difficulty::Hard; Settings::instance().saveDifficulty(chosenDifficulty); Game::instance().difficultyProfile().setDifficulty(chosenDifficulty); MenuManager::instance().pushMenu(LapCountMenu::MenuId); }); - addItem(MTFH::MenuItemPtr(hardItem)); - addItem(MTFH::MenuItemPtr(mediumItem)); - addItem(MTFH::MenuItemPtr(easyItem)); + addItem(hardItem); + addItem(mediumItem); + addItem(easyItem); const DifficultyProfile::Difficulty difficulty = Game::instance().difficultyProfile().difficulty(); switch (difficulty) diff -Nru dustrac-2.0.1/src/game/menu/difficultymenu.hpp dustrac-2.0.5/src/game/menu/difficultymenu.hpp --- dustrac-2.0.1/src/game/menu/difficultymenu.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/difficultymenu.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -21,7 +21,6 @@ class DifficultyMenu : public SurfaceMenu { public: - static std::string MenuId; DifficultyMenu(int width, int height); diff -Nru dustrac-2.0.1/src/game/menu/help.cpp dustrac-2.0.5/src/game/menu/help.cpp --- dustrac-2.0.1/src/game/menu/help.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/help.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -13,44 +13,44 @@ // You should have received a copy of the GNU General Public License // along with Dust Racing 2D. If not, see . -#include "../common/config.hpp" #include "help.hpp" +#include "../common/config.hpp" #include "renderer.hpp" #include #include // For QObject::tr() Help::Help(std::string id, int width, int height) - : SurfaceMenu("helpBack", id, width, height, Menu::Style::VerticalList, true) + : SurfaceMenu("helpBack", id, width, height, Menu::Style::VerticalList, true) { } void Help::render() { static MCTextureText HELP_TEXT( - (QObject::tr("GAME GOAL\n\n" - "You are racing against eleven\ncomputer players.\n\n" - "Your best position will be\nthe next start position.\n\n" - "Finish in TOP-6 to unlock\na new race track!\n\n" - "CONTROLS FOR PLAYER 1\n\n" - "Turn left : Left\n" - "Turn right : Right\n" - "Accelerate : Up / RIGHT SHIFT\n" - "Brake : Down / RIGHT CTRL\n\n" - "CONTROLS FOR PLAYER 2\n\n" - "Turn left : A\n" - "Turn right : D\n" - "Accelerate : W / LEFT SHIFT\n" - "Brake : S / LEFT CTRL\n\n" - "Quit : ESC/Q\n" - "Pause : P") + "\n\n" + - Config::Common::WEB_SITE_URL).toStdWString() - ); + (QObject::tr("GAME GOAL\n\n" + "You are racing against eleven\ncomputer players.\n\n" + "Your best position will be\nthe next start position.\n\n" + "Finish in TOP-6 to unlock\na new race track!\n\n" + "CONTROLS FOR PLAYER 1\n\n" + "Turn left : Left\n" + "Turn right : Right\n" + "Accelerate : Up / RIGHT SHIFT\n" + "Brake : Down / RIGHT CTRL\n\n" + "CONTROLS FOR PLAYER 2\n\n" + "Turn left : A\n" + "Turn right : D\n" + "Accelerate : W / LEFT SHIFT\n" + "Brake : S / LEFT CTRL\n\n" + "Quit : ESC/Q\n" + "Pause : P") + + "\n\n" + Config::General::WEB_SITE_URL) + .toStdWString()); SurfaceMenu::render(); HELP_TEXT.setGlyphSize(20, 20 * height() / 640); HELP_TEXT.render( - x() + width() / 2 - HELP_TEXT.width(font()) / 2, - y() + height() / 2 + HELP_TEXT.height(font()) / 2, nullptr, font()); + x() + width() / 2 - HELP_TEXT.width(font()) / 2, + y() + height() / 2 + HELP_TEXT.height(font()) / 2, nullptr, font()); } diff -Nru dustrac-2.0.1/src/game/menu/help.hpp dustrac-2.0.5/src/game/menu/help.hpp --- dustrac-2.0.1/src/game/menu/help.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/help.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -24,7 +24,6 @@ class Help : public SurfaceMenu { public: - //! Constructor. Help(std::string id, int width, int height); diff -Nru dustrac-2.0.1/src/game/menu/keyconfigmenu.cpp dustrac-2.0.5/src/game/menu/keyconfigmenu.cpp --- dustrac-2.0.1/src/game/menu/keyconfigmenu.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/keyconfigmenu.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -15,8 +15,8 @@ #include "keyconfigmenu.hpp" #include "eventhandler.hpp" -#include "inputhandler.hpp" #include "game.hpp" +#include "inputhandler.hpp" #include "textmenuitemview.hpp" #include @@ -25,9 +25,8 @@ #include #include -#include -#include #include +#include #include // For QObject::tr() @@ -35,7 +34,6 @@ class PressKeyMenu : public SurfaceMenu { public: - //! Constructor. PressKeyMenu(std::string id, int width, int height); @@ -43,13 +41,12 @@ virtual void render() override; private: - std::wstring m_text; }; PressKeyMenu::PressKeyMenu(std::string id, int width, int height) - : SurfaceMenu("settingsBack", id, width, height, MTFH::Menu::Style::HorizontalList) -, m_text(QObject::tr("Press a key..").toUpper().toStdWString()) + : SurfaceMenu("settingsBack", id, width, height, MTFH::Menu::Style::HorizontalList) + , m_text(QObject::tr("Press a key..").toUpper().toStdWString()) { } @@ -60,7 +57,7 @@ MCTextureText text(m_text); const int shadowY = -2; - const int shadowX = 2; + const int shadowX = 2; text.setColor(MCGLColor(0.25, 0.75, 1.0, 1.0)); text.setGlyphSize(20, 20); @@ -73,9 +70,9 @@ static const char * PRESS_KEY_MENU_ID = "pressKeyMenu"; KeyConfigMenu::KeyConfigMenu(std::string id, int width, int height) - : SurfaceMenu("settingsBack", id, width, height, Menu::Style::VerticalList) + : SurfaceMenu("settingsBack", id, width, height, Menu::Style::VerticalList) { - MTFH::MenuManager::instance().addMenu(MTFH::MenuPtr(new PressKeyMenu(PRESS_KEY_MENU_ID, width, height))); + MTFH::MenuManager::instance().addMenu(std::make_shared(PRESS_KEY_MENU_ID, width, height)); addPlayerTwoConfig(width, height); addPlayerOneConfig(width, height); @@ -88,50 +85,46 @@ using MTFH::MenuItem; using MTFH::MenuManager; - MenuItem * playerOneAccelerate = - new MenuItem(width, itemHeight, QObject::tr("Player One Accelerate").toUpper().toStdWString()); - playerOneAccelerate->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *playerOneAccelerate))); + const auto playerOneAccelerate = + std::make_shared(width, itemHeight, QObject::tr("Player One Accelerate").toUpper().toStdWString()); + playerOneAccelerate->setView(std::make_shared(20, *playerOneAccelerate)); playerOneAccelerate->setAction( - []() - { - Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Up, 0); - MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); - }); - - MenuItem * playerOneBrake = - new MenuItem(width, itemHeight, QObject::tr("Player One Brake").toUpper().toStdWString()); - playerOneBrake->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *playerOneBrake))); + []() { + Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Up, 0); + MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); + }); + + const auto playerOneBrake = + std::make_shared(width, itemHeight, QObject::tr("Player One Brake").toUpper().toStdWString()); + playerOneBrake->setView(std::make_shared(20, *playerOneBrake)); playerOneBrake->setAction( - []() - { - Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Down, 0); - MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); - }); - - MenuItem * playerOneTurnLeft = - new MenuItem(width, itemHeight, QObject::tr("Player One Turn Left").toUpper().toStdWString()); - playerOneTurnLeft->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *playerOneTurnLeft))); + []() { + Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Down, 0); + MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); + }); + + const auto playerOneTurnLeft = + std::make_shared(width, itemHeight, QObject::tr("Player One Turn Left").toUpper().toStdWString()); + playerOneTurnLeft->setView(std::make_shared(20, *playerOneTurnLeft)); playerOneTurnLeft->setAction( - []() - { - Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Left, 0); - MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); - }); - - MenuItem * playerOneTurnRight = - new MenuItem(width, itemHeight, QObject::tr("Player One Turn Right").toUpper().toStdWString()); - playerOneTurnRight->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *playerOneTurnRight))); + []() { + Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Left, 0); + MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); + }); + + const auto playerOneTurnRight = + std::make_shared(width, itemHeight, QObject::tr("Player One Turn Right").toUpper().toStdWString()); + playerOneTurnRight->setView(std::make_shared(20, *playerOneTurnRight)); playerOneTurnRight->setAction( - []() - { - Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Right, 0); - MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); - }); - - addItem(MTFH::MenuItemPtr(playerOneBrake)); - addItem(MTFH::MenuItemPtr(playerOneAccelerate)); - addItem(MTFH::MenuItemPtr(playerOneTurnRight)); - addItem(MTFH::MenuItemPtr(playerOneTurnLeft)); + []() { + Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Right, 0); + MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); + }); + + addItem(playerOneBrake); + addItem(playerOneAccelerate); + addItem(playerOneTurnRight); + addItem(playerOneTurnLeft); } void KeyConfigMenu::addPlayerTwoConfig(int width, int height) @@ -141,52 +134,46 @@ using MTFH::MenuItem; using MTFH::MenuManager; - MenuItem * playerTwoAccelerate = - new MenuItem(width, itemHeight, QObject::tr("Player Two Accelerate").toUpper().toStdWString()); - playerTwoAccelerate->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *playerTwoAccelerate))); + const auto playerTwoAccelerate = + std::make_shared(width, itemHeight, QObject::tr("Player Two Accelerate").toUpper().toStdWString()); + playerTwoAccelerate->setView(std::make_shared(20, *playerTwoAccelerate)); playerTwoAccelerate->setAction( - []() - { - Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Up, 1); - MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); - }); - - MenuItem * playerTwoBrake = - new MenuItem(width, itemHeight, QObject::tr("Player Two Brake").toUpper().toStdWString()); - playerTwoBrake->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *playerTwoBrake))); + []() { + Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Up, 1); + MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); + }); + + const auto playerTwoBrake = + std::make_shared(width, itemHeight, QObject::tr("Player Two Brake").toUpper().toStdWString()); + playerTwoBrake->setView(std::make_shared(20, *playerTwoBrake)); playerTwoBrake->setAction( - []() - { - Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Down, 1); - MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); - }); - - MenuItem * playerTwoTurnLeft = - new MenuItem(width, itemHeight, QObject::tr("Player Two Turn Left").toUpper().toStdWString()); - playerTwoTurnLeft->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *playerTwoTurnLeft))); + []() { + Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Down, 1); + MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); + }); + + const auto playerTwoTurnLeft = + std::make_shared(width, itemHeight, QObject::tr("Player Two Turn Left").toUpper().toStdWString()); + playerTwoTurnLeft->setView(std::make_shared(20, *playerTwoTurnLeft)); playerTwoTurnLeft->setAction( - []() - { - Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Left, 1); - MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); - }); - - MenuItem * playerTwoTurnRight = - new MenuItem(width, itemHeight, QObject::tr("Player Two Turn Right").toUpper().toStdWString()); - playerTwoTurnRight->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *playerTwoTurnRight))); + []() { + Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Left, 1); + MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); + }); + + const auto playerTwoTurnRight = + std::make_shared(width, itemHeight, QObject::tr("Player Two Turn Right").toUpper().toStdWString()); + playerTwoTurnRight->setView(std::make_shared(20, *playerTwoTurnRight)); playerTwoTurnRight->setAction( - []() - { - Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Right, 1); - MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); - }); - - addItem(MTFH::MenuItemPtr(playerTwoBrake)); - addItem(MTFH::MenuItemPtr(playerTwoAccelerate)); - addItem(MTFH::MenuItemPtr(playerTwoTurnRight)); - addItem(MTFH::MenuItemPtr(playerTwoTurnLeft)); + []() { + Game::instance().eventHandler().enableCaptureMode(InputHandler::Action::Right, 1); + MenuManager::instance().pushMenu(PRESS_KEY_MENU_ID); + }); + + addItem(playerTwoBrake); + addItem(playerTwoAccelerate); + addItem(playerTwoTurnRight); + addItem(playerTwoTurnLeft); } -KeyConfigMenu::~KeyConfigMenu() -{ -} +KeyConfigMenu::~KeyConfigMenu() = default; diff -Nru dustrac-2.0.1/src/game/menu/keyconfigmenu.hpp dustrac-2.0.5/src/game/menu/keyconfigmenu.hpp --- dustrac-2.0.1/src/game/menu/keyconfigmenu.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/keyconfigmenu.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -22,7 +22,6 @@ class KeyConfigMenu : public SurfaceMenu { public: - //! Constructor. KeyConfigMenu(std::string id, int width, int height); @@ -30,7 +29,6 @@ virtual ~KeyConfigMenu(); private: - void addPlayerOneConfig(int width, int height); void addPlayerTwoConfig(int width, int height); }; diff -Nru dustrac-2.0.1/src/game/menu/lapcountmenu.cpp dustrac-2.0.5/src/game/menu/lapcountmenu.cpp --- dustrac-2.0.1/src/game/menu/lapcountmenu.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/lapcountmenu.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -15,41 +15,40 @@ #include "lapcountmenu.hpp" -#include "menumanager.hpp" #include "menuitem.hpp" #include "menuitemview.hpp" +#include "menumanager.hpp" #include "textmenuitemview.hpp" #include "trackselectionmenu.hpp" #include "game.hpp" #include -#include #include +#include "simple_logger.hpp" + static const QString LAP_COUNT_KEY(Settings::lapCountKey()); -static const int ITEM_TEXT_SIZE = 40; +static const int ITEM_TEXT_SIZE = 40; std::string LapCountMenu::MenuId = "lapCount"; LapCountMenu::LapCountMenu(int width, int height) - : SurfaceMenu("trackSelectionBack", MenuId, width, height, Menu::Style::HorizontalList) - , m_font(MCAssetManager::textureFontManager().font(Game::instance().fontName())) + : SurfaceMenu("trackSelectionBack", MenuId, width, height, Menu::Style::HorizontalList) + , m_font(MCAssetManager::textureFontManager().font(Game::instance().fontName())) { - static int LAP_COUNTS[] = - { + static int LAP_COUNTS[] = { 1, 3, 5, 10, 20, 50, 100 }; const int numLapCounts = sizeof(LAP_COUNTS) / sizeof(int); - const int itemHeight = height / (numLapCounts + 2); - const int itemWidth = width / (numLapCounts + 2); - const int textSize = ITEM_TEXT_SIZE; + const int itemHeight = height / (numLapCounts + 2); + const int itemWidth = width / (numLapCounts + 2); + const int textSize = ITEM_TEXT_SIZE; using MTFH::MenuItem; using MTFH::MenuManager; - using MTFH::MenuItemViewPtr; int selectedIndex = 0; for (int i = 0; i < numLapCounts; i++) @@ -57,18 +56,17 @@ std::wstringstream itemText; itemText << LAP_COUNTS[i]; - MenuItem * lapCountItem = new MenuItem(itemWidth, itemHeight, itemText.str()); - lapCountItem->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *lapCountItem))); + const auto lapCountItem = std::make_shared(itemWidth, itemHeight, itemText.str()); + lapCountItem->setView(std::make_shared(textSize, *lapCountItem)); lapCountItem->setAction( - [i]() - { - MCLogger().info() << LAP_COUNTS[i] << " laps selected."; - Game::instance().setLapCount(LAP_COUNTS[i]); - Settings::instance().saveValue(LAP_COUNT_KEY, LAP_COUNTS[i]); - MenuManager::instance().pushMenu(TrackSelectionMenu::MenuId); - }); + [i]() { + juzzlin::L().info() << LAP_COUNTS[i] << " laps selected."; + Game::instance().setLapCount(LAP_COUNTS[i]); + Settings::instance().saveValue(LAP_COUNT_KEY, LAP_COUNTS[i]); + MenuManager::instance().pushMenu(TrackSelectionMenu::MenuId); + }); - addItem(MTFH::MenuItemPtr(lapCountItem)); + addItem(lapCountItem); if (Game::instance().lapCount() == LAP_COUNTS[i]) { @@ -86,7 +84,7 @@ MCTextureText text(QObject::tr("Choose lap count").toUpper().toStdWString()); const int shadowY = -2; - const int shadowX = 2; + const int shadowX = 2; text.setGlyphSize(30, 30); text.setShadowOffset(shadowX, shadowY); diff -Nru dustrac-2.0.1/src/game/menu/lapcountmenu.hpp dustrac-2.0.5/src/game/menu/lapcountmenu.hpp --- dustrac-2.0.1/src/game/menu/lapcountmenu.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/lapcountmenu.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -23,7 +23,6 @@ class LapCountMenu : public SurfaceMenu { public: - static std::string MenuId; LapCountMenu(int width, int height); @@ -31,7 +30,6 @@ virtual void render() override; private: - MCTextureFont m_font; }; diff -Nru dustrac-2.0.1/src/game/menu/mainmenu.cpp dustrac-2.0.5/src/game/menu/mainmenu.cpp --- dustrac-2.0.1/src/game/menu/mainmenu.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/mainmenu.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -29,18 +29,19 @@ #include #include -#include #include #include +#include "simple_logger.hpp" + static const int ITEM_TEXT_SIZE = 40; std::string MainMenu::MenuId = "main"; MainMenu::MainMenu(MTFH::MenuManager & menuManager, Scene & scene, int width, int height) - : SurfaceMenu("mainMenuBack", MenuId, width, height, Menu::Style::VerticalList, false) - , m_menuManager(menuManager) - , m_scene(scene) + : SurfaceMenu("mainMenuBack", MenuId, width, height, Menu::Style::VerticalList, false) + , m_menuManager(menuManager) + , m_scene(scene) { createMenuItems(); createSubMenus(); @@ -53,49 +54,48 @@ const int itemHeight = height() / 8; const int textSize = ITEM_TEXT_SIZE; - MenuItem * play = new MenuItem(width(), itemHeight, tr("Play").toUpper().toStdWString()); - play->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(textSize, *play))); + const auto play = std::make_shared(width(), itemHeight, tr("Play").toUpper().toStdWString()); + play->setView(std::make_shared(textSize, *play)); play->setMenuOpenAction("difficulty"); - MenuItem * help = new MenuItem(width(), itemHeight, tr("Help").toUpper().toStdWString()); - help->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(textSize, *help))); + const auto help = std::make_shared(width(), itemHeight, tr("Help").toUpper().toStdWString()); + help->setView(std::make_shared(textSize, *help)); help->setMenuOpenAction("help"); - MenuItem * credits = new MenuItem(width(), itemHeight, tr("Credits").toUpper().toStdWString()); - credits->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(textSize, *credits))); + const auto credits = std::make_shared(width(), itemHeight, tr("Credits").toUpper().toStdWString()); + credits->setView(std::make_shared(textSize, *credits)); credits->setMenuOpenAction("credits"); - MenuItem * quit = new MenuItem(width(), itemHeight, tr("Quit").toUpper().toStdWString()); - quit->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(textSize, *quit))); + const auto quit = std::make_shared(width(), itemHeight, tr("Quit").toUpper().toStdWString()); + quit->setView(std::make_shared(textSize, *quit)); quit->setAction( - [this]() - { - MCLogger().info() << "Quit selected from the main menu."; - emit exitGameRequested(); - }); + [this]() { + juzzlin::L().info() << "Quit selected from the main menu."; + emit exitGameRequested(); + }); - MenuItem * settings = new MenuItem(width(), itemHeight, tr("Settings").toUpper().toStdWString()); - settings->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(textSize, *settings))); + const auto settings = std::make_shared(width(), itemHeight, tr("Settings").toUpper().toStdWString()); + settings->setView(std::make_shared(textSize, *settings)); settings->setMenuOpenAction("settings"); - addItem(MTFH::MenuItemPtr(quit)); - addItem(MTFH::MenuItemPtr(credits)); - addItem(MTFH::MenuItemPtr(settings)); - addItem(MTFH::MenuItemPtr(help)); - addItem(MTFH::MenuItemPtr(play)); + addItem(quit); + addItem(credits); + addItem(settings); + addItem(help); + addItem(play); } void MainMenu::createSubMenus() { - m_menuManager.addMenu(MTFH::MenuPtr(new Help("help", width(), height()))); + m_menuManager.addMenu(std::make_shared("help", width(), height())); - m_menuManager.addMenu(MTFH::MenuPtr(new Credits("credits", width(), height()))); + m_menuManager.addMenu(std::make_shared("credits", width(), height())); - m_menuManager.addMenu(MTFH::MenuPtr(new LapCountMenu(width(), height()))); + m_menuManager.addMenu(std::make_shared(width(), height())); - m_menuManager.addMenu(MTFH::MenuPtr(new SettingsMenu("settings", width(), height()))); + m_menuManager.addMenu(std::make_shared("settings", width(), height())); - m_menuManager.addMenu(MTFH::MenuPtr(new TrackSelectionMenu(width(), height(), m_scene))); + m_menuManager.addMenu(std::make_shared(width(), height(), m_scene)); - m_menuManager.addMenu(MTFH::MenuPtr(new DifficultyMenu(width(), height()))); + m_menuManager.addMenu(std::make_shared(width(), height())); } diff -Nru dustrac-2.0.1/src/game/menu/mainmenu.hpp dustrac-2.0.5/src/game/menu/mainmenu.hpp --- dustrac-2.0.1/src/game/menu/mainmenu.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/mainmenu.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -20,7 +20,9 @@ #include "surfacemenu.hpp" -namespace MTFH { class MenuManager; } +namespace MTFH { +class MenuManager; +} class Scene; //! The main menu of the game. @@ -29,7 +31,6 @@ Q_OBJECT public: - static std::string MenuId; //! Constructor. @@ -40,7 +41,6 @@ void exitGameRequested(); private: - void createMenuItems(); void createSubMenus(); diff -Nru dustrac-2.0.1/src/game/menu/resolutionmenu.cpp dustrac-2.0.5/src/game/menu/resolutionmenu.cpp --- dustrac-2.0.1/src/game/menu/resolutionmenu.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/resolutionmenu.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -25,10 +25,8 @@ #include #include -#include +#include "simple_logger.hpp" -#include -#include #include // for tr() #include @@ -43,15 +41,13 @@ class ResolutionItem : public MTFH::MenuItem { public: - class SaveResolutionAction : public MTFH::MenuItemAction { public: - //! Constructor. SaveResolutionAction(ResolutionItem & parent, bool fullScreen) - : m_parent(parent) - , m_fullScreen(fullScreen) + : m_parent(parent) + , m_fullScreen(fullScreen) { } @@ -66,9 +62,9 @@ const int hRes = m_parent.hRes(); const int vRes = m_parent.vRes(); Settings::instance().saveResolution(hRes, vRes, m_fullScreen); - MCLogger().info() - << "Resolution set: " << hRes << " " << vRes - << " Full screen: " << m_fullScreen; + juzzlin::L().info() + << "Resolution set: " << hRes << " " << vRes + << " Full screen: " << m_fullScreen; if (Game::instance().renderer().fullScreen() && m_fullScreen) { @@ -81,24 +77,25 @@ } private: - ResolutionItem & m_parent; bool m_fullScreen; }; //! Constructor. ResolutionItem(ConfirmationMenuPtr confirmationMenu, - int hRes, int vRes, bool fullScreen, int width, int height, std::wstring text = L"") - : MenuItem(width, height, text) - , m_confirmationMenu(confirmationMenu) - , m_saveResolutionAction(new SaveResolutionAction(*this, fullScreen)) - , m_hRes(hRes) - , m_vRes(vRes) + int hRes, int vRes, bool fullScreen, int width, int height, std::wstring text = L"") + : MenuItem(width, height, text) + , m_confirmationMenu(confirmationMenu) + , m_saveResolutionAction(std::make_shared(*this, fullScreen)) + , m_hRes(hRes) + , m_vRes(vRes) { } //! Destructor. - virtual ~ResolutionItem() {} + virtual ~ResolutionItem() + { + } //! \reimp virtual void setSelected(bool flag) @@ -108,8 +105,7 @@ if (flag) { // Change the virtual resolution immediately if changing from fullscreen to fullscreen - if (Game::instance().renderer().fullScreen() && - std::dynamic_pointer_cast(m_saveResolutionAction)->fullScreen()) + if (Game::instance().renderer().fullScreen() && std::dynamic_pointer_cast(m_saveResolutionAction)->fullScreen()) { m_saveResolutionAction->fire(); } @@ -134,7 +130,6 @@ } private: - ConfirmationMenuPtr m_confirmationMenu; MTFH::MenuItemActionPtr m_saveResolutionAction; @@ -145,13 +140,13 @@ }; ResolutionMenu::ResolutionMenu( - ConfirmationMenuPtr confirmationMenu, std::string id, int width, int height, bool fullScreen) -: SurfaceMenu("settingsBack", id, width, height) -, m_confirmationMenu(confirmationMenu) + ConfirmationMenuPtr confirmationMenu, std::string id, int width, int height, bool fullScreen) + : SurfaceMenu("settingsBack", id, width, height) + , m_confirmationMenu(confirmationMenu) { const int numResolutions = 8; - const int fullHRes = QGuiApplication::primaryScreen()->geometry().width(); - const int fullVRes = QGuiApplication::primaryScreen()->geometry().height(); + const int fullHRes = Game::instance().screen()->geometry().width(); + const int fullVRes = Game::instance().screen()->geometry().height(); const int itemHeight = height / (numResolutions + 3); int itemHRes = fullHRes; @@ -160,10 +155,10 @@ { std::wstringstream resString; resString << itemHRes << "x" << itemVRes; - ResolutionItem * resolution = - new ResolutionItem(m_confirmationMenu, itemHRes, itemVRes, fullScreen, width, itemHeight, resString.str()); - resolution->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *resolution))); - addItem(MTFH::MenuItemPtr(resolution)); + const auto resolution = + std::make_shared(m_confirmationMenu, itemHRes, itemVRes, fullScreen, width, itemHeight, resString.str()); + resolution->setView(std::make_shared(20, *resolution)); + addItem(resolution); itemHRes -= fullHRes / numResolutions; itemVRes -= fullVRes / numResolutions; @@ -176,15 +171,15 @@ void ResolutionMenu::enter() { - setCurrentIndex(itemCount() - 1); + setCurrentIndex(static_cast(itemCount()) - 1); // Set the current active resolution selected for (unsigned int i = 0; i < itemCount(); i++) { if (auto resolution = std::dynamic_pointer_cast(item(i))) { - int hRes = 0; - int vRes = 0; + int hRes = 0; + int vRes = 0; bool fullScreen = false; Settings::instance().loadResolution(hRes, vRes, fullScreen); diff -Nru dustrac-2.0.1/src/game/menu/resolutionmenu.hpp dustrac-2.0.5/src/game/menu/resolutionmenu.hpp --- dustrac-2.0.1/src/game/menu/resolutionmenu.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/resolutionmenu.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -24,17 +24,14 @@ class ResolutionMenu : public SurfaceMenu { public: - //! Constructor. ResolutionMenu(ConfirmationMenuPtr confirmationMenu, std::string id, int width, int height, bool fullScreen); protected: - //! \reimp virtual void enter() override; private: - ConfirmationMenuPtr m_confirmationMenu; }; diff -Nru dustrac-2.0.1/src/game/menu/settingsmenu.cpp dustrac-2.0.5/src/game/menu/settingsmenu.cpp --- dustrac-2.0.1/src/game/menu/settingsmenu.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/settingsmenu.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,8 +17,8 @@ #include "audioworker.hpp" #include "confirmationmenu.hpp" -#include "keyconfigmenu.hpp" #include "game.hpp" +#include "keyconfigmenu.hpp" #include "renderer.hpp" #include "resolutionmenu.hpp" #include "settings.hpp" @@ -34,7 +34,7 @@ #include #include -#include +#include "simple_logger.hpp" #include #include @@ -47,12 +47,11 @@ #endif static const int ITEM_HEIGHT_DIV = 10; -static const int ITEM_TEXT_SIZE = 20; +static const int ITEM_TEXT_SIZE = 20; class ResetAction : public MTFH::MenuItemAction { public: - enum class Type { Times, @@ -61,13 +60,12 @@ }; ResetAction(Type type, std::shared_ptr menu) - : m_type(type) - , m_confirmationMenu(menu) + : m_type(type) + , m_confirmationMenu(menu) { } private: - //! \reimp void fire() { @@ -79,11 +77,10 @@ MenuManager::instance().pushMenu(m_confirmationMenu->id()); m_confirmationMenu->setText(QObject::tr("Reset best positions?").toUpper().toStdWString()); m_confirmationMenu->setAcceptAction( - []() - { - MCLogger().info() << "Reset positions selected."; - Settings::instance().resetBestPos(); - }); + []() { + juzzlin::L().info() << "Reset positions selected."; + Settings::instance().resetBestPos(); + }); m_confirmationMenu->setCurrentIndex(1); break; @@ -91,12 +88,11 @@ MenuManager::instance().pushMenu(m_confirmationMenu->id()); m_confirmationMenu->setText(QObject::tr("Reset record times?").toUpper().toStdWString()); m_confirmationMenu->setAcceptAction( - []() - { - MCLogger().info() << "Reset times selected."; - Settings::instance().resetLapRecords(); - Settings::instance().resetRaceRecords(); - }); + []() { + juzzlin::L().info() << "Reset times selected."; + Settings::instance().resetLapRecords(); + Settings::instance().resetRaceRecords(); + }); m_confirmationMenu->setCurrentIndex(1); break; @@ -104,24 +100,20 @@ MenuManager::instance().pushMenu(m_confirmationMenu->id()); m_confirmationMenu->setText(QObject::tr("Reset unlocked tracks?").toUpper().toStdWString()); m_confirmationMenu->setAcceptAction( - []() - { - MCLogger().info() << "Reset tracks selected."; - TrackLoader & tl = TrackLoader::instance(); - for (unsigned int i = 0; i < tl.tracks(); i++) + []() { + juzzlin::L().info() << "Reset tracks selected."; + auto && trackLoader = TrackLoader::instance(); + for (size_t i = 0; i < trackLoader.tracks(); i++) { - Track & track = *tl.track(i); + Track & track = *trackLoader.track(i); if (track.trackData().index() > 0) { track.trackData().setIsLocked(true); } } - Settings::instance().resetTrackUnlockStatuses();}); + Settings::instance().resetTrackUnlockStatuses(); }); m_confirmationMenu->setCurrentIndex(1); break; - - default: - break; } } @@ -130,41 +122,41 @@ std::shared_ptr m_confirmationMenu; }; -static const char * CONFIRMATION_MENU_ID = "confirmationMenu"; +static const auto CONFIRMATION_MENU_ID = "confirmationMenu"; -static const char * FPS_MENU_ID = "fpsMenu"; +static const auto FPS_MENU_ID = "fpsMenu"; -static const char * FULL_SCREEN_RESOLUTION_MENU_ID = "fullScreenResolutionMenu"; +static const auto FULL_SCREEN_RESOLUTION_MENU_ID = "fullScreenResolutionMenu"; -static const char * GAME_MODE_MENU_ID = "gameModeMenu"; +static const auto GAME_MODE_MENU_ID = "gameModeMenu"; -static const char * GFX_MENU_ID = "gfxMenu"; +static const auto GFX_MENU_ID = "gfxMenu"; -static const char * KEY_CONFIG_MENU_ID = "keyConfigMenu"; +static const auto KEY_CONFIG_MENU_ID = "keyConfigMenu"; -static const char * RESET_MENU_ID = "resetMenu"; +static const auto RESET_MENU_ID = "resetMenu"; -static const char * SFX_MENU_ID = "sfxMenu"; +static const auto SFX_MENU_ID = "sfxMenu"; -static const char * SPLIT_TYPE_MENU_ID = "splitTypeMenu"; +static const auto SPLIT_TYPE_MENU_ID = "splitTypeMenu"; -static const char * VSYNC_MENU_ID = "vsyncMenu"; +static const auto VSYNC_MENU_ID = "vsyncMenu"; -static const char * WINDOWED_RESOLUTION_MENU_ID = "windowedResolutionMenu"; +static const auto WINDOWED_RESOLUTION_MENU_ID = "windowedResolutionMenu"; SettingsMenu::SettingsMenu(std::string id, int width, int height) -: SurfaceMenu("settingsBack", id, width, height, Menu::Style::VerticalList) -, m_confirmationMenu(new ConfirmationMenu(CONFIRMATION_MENU_ID, width, height)) -, m_fpsMenu(new SurfaceMenu("settingsBack", FPS_MENU_ID, width, height, Menu::Style::VerticalList)) -, m_fullScreenResolutionMenu(new ResolutionMenu(m_confirmationMenu, FULL_SCREEN_RESOLUTION_MENU_ID, width, height, true)) -, m_windowedResolutionMenu(new ResolutionMenu(m_confirmationMenu, WINDOWED_RESOLUTION_MENU_ID, width, height, false)) -, m_gameModeMenu(new SurfaceMenu("settingsBack", GAME_MODE_MENU_ID, width, height, Menu::Style::VerticalList)) -, m_gfxMenu(new SurfaceMenu("settingsBack", GFX_MENU_ID, width, height, Menu::Style::VerticalList)) -, m_resetMenu(new SurfaceMenu("settingsBack", RESET_MENU_ID, width, height, Menu::Style::VerticalList)) -, m_sfxMenu(new SurfaceMenu("settingsBack", SFX_MENU_ID, width, height, Menu::Style::VerticalList)) -, m_splitTypeMenu(new SurfaceMenu("settingsBack", SPLIT_TYPE_MENU_ID, width, height, Menu::Style::VerticalList)) -, m_vsyncMenu(new VSyncMenu(m_confirmationMenu, VSYNC_MENU_ID, width, height)) -, m_keyConfigMenu(new KeyConfigMenu(KEY_CONFIG_MENU_ID, width, height)) + : SurfaceMenu("settingsBack", id, width, height, Menu::Style::VerticalList) + , m_confirmationMenu(std::make_shared(CONFIRMATION_MENU_ID, width, height)) + , m_fpsMenu(std::make_shared("settingsBack", FPS_MENU_ID, width, height, Menu::Style::VerticalList)) + , m_fullScreenResolutionMenu(std::make_shared(m_confirmationMenu, FULL_SCREEN_RESOLUTION_MENU_ID, width, height, true)) + , m_windowedResolutionMenu(std::make_shared(m_confirmationMenu, WINDOWED_RESOLUTION_MENU_ID, width, height, false)) + , m_gameModeMenu(std::make_shared("settingsBack", GAME_MODE_MENU_ID, width, height, Menu::Style::VerticalList)) + , m_gfxMenu(std::make_shared("settingsBack", GFX_MENU_ID, width, height, Menu::Style::VerticalList)) + , m_resetMenu(std::make_shared("settingsBack", RESET_MENU_ID, width, height, Menu::Style::VerticalList)) + , m_sfxMenu(std::make_shared("settingsBack", SFX_MENU_ID, width, height, Menu::Style::VerticalList)) + , m_splitTypeMenu(std::make_shared("settingsBack", SPLIT_TYPE_MENU_ID, width, height, Menu::Style::VerticalList)) + , m_vsyncMenu(std::make_shared(m_confirmationMenu, VSYNC_MENU_ID, width, height)) + , m_keyConfigMenu(std::make_shared(KEY_CONFIG_MENU_ID, width, height)) { populate(width, height); @@ -200,40 +192,36 @@ void SettingsMenu::populate(int width, int height) { const int itemHeight = height / ITEM_HEIGHT_DIV; - const int textSize = ITEM_TEXT_SIZE; + const int textSize = ITEM_TEXT_SIZE; using MTFH::MenuItem; using MTFH::MenuManager; - using MTFH::MenuItemViewPtr; - using MTFH::MenuItemActionPtr; - MenuItem * gameMode = new MenuItem(width, itemHeight, QObject::tr("Game mode >").toUpper().toStdWString()); - gameMode->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *gameMode))); + const auto gameMode = std::make_shared(width, itemHeight, QObject::tr("Game mode >").toUpper().toStdWString()); + gameMode->setView(std::make_shared(textSize, *gameMode)); gameMode->setMenuOpenAction(GAME_MODE_MENU_ID); - MenuItem * sfx = new MenuItem(width, itemHeight, QObject::tr("Sounds >").toUpper().toStdWString()); - sfx->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *sfx))); + const auto sfx = std::make_shared(width, itemHeight, QObject::tr("Sounds >").toUpper().toStdWString()); + sfx->setView(std::make_shared(textSize, *sfx)); sfx->setMenuOpenAction(SFX_MENU_ID); - MenuItem * gfx = new MenuItem(width, itemHeight, QObject::tr("GFX >").toUpper().toStdWString()); - gfx->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *gfx))); + const auto gfx = std::make_shared(width, itemHeight, QObject::tr("GFX >").toUpper().toStdWString()); + gfx->setView(std::make_shared(textSize, *gfx)); gfx->setMenuOpenAction(GFX_MENU_ID); - MenuItem * configureKeys = new MenuItem(width, itemHeight, QObject::tr("Controls >").toUpper().toStdWString()); - configureKeys->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *configureKeys))); + const auto configureKeys = std::make_shared(width, itemHeight, QObject::tr("Controls >").toUpper().toStdWString()); + configureKeys->setView(std::make_shared(textSize, *configureKeys)); configureKeys->setMenuOpenAction(KEY_CONFIG_MENU_ID); - MenuItem * reset = new MenuItem(width, itemHeight, QObject::tr("Reset >").toUpper().toStdWString()); - reset->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *reset))); + const auto reset = std::make_shared(width, itemHeight, QObject::tr("Reset >").toUpper().toStdWString()); + reset->setView(std::make_shared(textSize, *reset)); reset->setMenuOpenAction(RESET_MENU_ID); - using MTFH::MenuItemPtr; - - addItem(MenuItemPtr(reset)); - addItem(MenuItemPtr(configureKeys)); - addItem(MenuItemPtr(sfx)); - addItem(MenuItemPtr(gfx)); - addItem(MenuItemPtr(gameMode)); + addItem(reset); + addItem(configureKeys); + addItem(sfx); + addItem(gfx); + addItem(gameMode); } void SettingsMenu::populateFpsMenu(int width, int height) @@ -244,32 +232,29 @@ using MTFH::MenuItem; using MTFH::MenuManager; - using MTFH::MenuItemViewPtr; - MenuItem * fps30 = new MenuItem(width, itemHeight, QObject::tr("30 fps").toUpper().toStdWString()); - fps30->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *fps30))); + const auto fps30 = std::make_shared(width, itemHeight, QObject::tr("30 fps").toUpper().toStdWString()); + fps30->setView(std::make_shared(textSize, *fps30)); fps30->setAction( - []() - { - MCLogger().info() << "30 fps selected."; - Game::instance().setFps(Game::Fps::Fps30); - Settings::instance().saveValue(Settings::fpsKey(), 30); - MenuManager::instance().popMenu(); - }); + []() { + juzzlin::L().info() << "30 fps selected."; + Game::instance().setFps(Game::Fps::Fps30); + Settings::instance().saveValue(Settings::fpsKey(), 30); + MenuManager::instance().popMenu(); + }); - MenuItem * fps60 = new MenuItem(width, itemHeight, QObject::tr("60 fps").toUpper().toStdWString()); - fps60->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *fps60))); + const auto fps60 = std::make_shared(width, itemHeight, QObject::tr("60 fps").toUpper().toStdWString()); + fps60->setView(std::make_shared(textSize, *fps60)); fps60->setAction( - []() - { - MCLogger().info() << "60 fps selected."; - Game::instance().setFps(Game::Fps::Fps60); - Settings::instance().saveValue(Settings::fpsKey(), 60); - MenuManager::instance().popMenu(); - }); + []() { + juzzlin::L().info() << "60 fps selected."; + Game::instance().setFps(Game::Fps::Fps60); + Settings::instance().saveValue(Settings::fpsKey(), 60); + MenuManager::instance().popMenu(); + }); - m_fpsMenu->addItem(MTFH::MenuItemPtr(fps30)); - m_fpsMenu->addItem(MTFH::MenuItemPtr(fps60)); + m_fpsMenu->addItem(fps30); + m_fpsMenu->addItem(fps60); if (Settings::instance().loadValue(Settings::fpsKey()) == 30) { @@ -284,165 +269,150 @@ void SettingsMenu::populateGameModeMenu(int width, int height) { const int itemHeight = height / ITEM_HEIGHT_DIV; - const int textSize = ITEM_TEXT_SIZE; + const int textSize = ITEM_TEXT_SIZE; using MTFH::MenuItem; using MTFH::MenuManager; - using MTFH::MenuItemViewPtr; - MenuItem * twoPlayers = new MenuItem(width, itemHeight, QObject::tr("Two player race").toUpper().toStdWString()); - twoPlayers->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *twoPlayers))); + const auto twoPlayers = std::make_shared(width, itemHeight, QObject::tr("Two player race").toUpper().toStdWString()); + twoPlayers->setView(std::make_shared(textSize, *twoPlayers)); twoPlayers->setAction( - []() - { - MCLogger().info() << "Two player race selected."; - Game::instance().setMode(Game::Mode::TwoPlayerRace); - MenuManager::instance().popMenu(); - }); + []() { + juzzlin::L().info() << "Two player race selected."; + Game::instance().setMode(Game::Mode::TwoPlayerRace); + MenuManager::instance().popMenu(); + }); - MenuItem * onePlayer = new MenuItem(width, itemHeight, QObject::tr("One player race").toUpper().toStdWString()); - onePlayer->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *onePlayer))); + const auto onePlayer = std::make_shared(width, itemHeight, QObject::tr("One player race").toUpper().toStdWString()); + onePlayer->setView(std::make_shared(textSize, *onePlayer)); onePlayer->setAction( - []() - { - MCLogger().info() << "One player race selected."; - Game::instance().setMode(Game::Mode::OnePlayerRace); - MenuManager::instance().popMenu(); - }); + []() { + juzzlin::L().info() << "One player race selected."; + Game::instance().setMode(Game::Mode::OnePlayerRace); + MenuManager::instance().popMenu(); + }); - MenuItem * timeTrial = new MenuItem(width, itemHeight, QObject::tr("Time Trial").toUpper().toStdWString()); - timeTrial->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *timeTrial))); + const auto timeTrial = std::make_shared(width, itemHeight, QObject::tr("Time Trial").toUpper().toStdWString()); + timeTrial->setView(std::make_shared(textSize, *timeTrial)); timeTrial->setAction( - []() - { - MCLogger().info() << "Time Trial selected."; - Game::instance().setMode(Game::Mode::TimeTrial); - MenuManager::instance().popMenu(); - }); + []() { + juzzlin::L().info() << "Time Trial selected."; + Game::instance().setMode(Game::Mode::TimeTrial); + MenuManager::instance().popMenu(); + }); - MenuItem * duel = new MenuItem(width, itemHeight, QObject::tr("Duel").toUpper().toStdWString()); - duel->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *duel))); + const auto duel = std::make_shared(width, itemHeight, QObject::tr("Duel").toUpper().toStdWString()); + duel->setView(std::make_shared(textSize, *duel)); duel->setAction( - []() - { - MCLogger().info() << "Duel selected."; - Game::instance().setMode(Game::Mode::Duel); - MenuManager::instance().popMenu(); - }); - - using MTFH::MenuItemPtr; - - m_gameModeMenu->addItem(MenuItemPtr(duel)); - m_gameModeMenu->addItem(MenuItemPtr(timeTrial)); - m_gameModeMenu->addItem(MenuItemPtr(twoPlayers)); - m_gameModeMenu->addItem(MenuItemPtr(onePlayer)); + []() { + juzzlin::L().info() << "Duel selected."; + Game::instance().setMode(Game::Mode::Duel); + MenuManager::instance().popMenu(); + }); + + m_gameModeMenu->addItem(duel); + m_gameModeMenu->addItem(timeTrial); + m_gameModeMenu->addItem(twoPlayers); + m_gameModeMenu->addItem(onePlayer); } void SettingsMenu::populateSplitTypeMenu(int width, int height) { - const int numItems = 2; + const int numItems = 2; const int itemHeight = height / (numItems + 4); - const int textSize = ITEM_TEXT_SIZE; + const int textSize = ITEM_TEXT_SIZE; using MTFH::MenuItem; using MTFH::MenuManager; - using MTFH::MenuItemViewPtr; - MenuItem * vertical = new MenuItem(width, itemHeight, QObject::tr("Vertical").toUpper().toStdWString()); - vertical->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *vertical))); + const auto vertical = std::make_shared(width, itemHeight, QObject::tr("Vertical").toUpper().toStdWString()); + vertical->setView(std::make_shared(textSize, *vertical)); vertical->setAction( - []() - { - MCLogger().info() << "Vertical split selected."; - Game::instance().setSplitType(Game::SplitType::Vertical); - MenuManager::instance().popMenu(); - }); + []() { + juzzlin::L().info() << "Vertical split selected."; + Game::instance().setSplitType(Game::SplitType::Vertical); + MenuManager::instance().popMenu(); + }); - MenuItem * horizontal = new MenuItem(width, itemHeight, QObject::tr("Horizontal").toUpper().toStdWString()); - horizontal->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *horizontal))); + const auto horizontal = std::make_shared(width, itemHeight, QObject::tr("Horizontal").toUpper().toStdWString()); + horizontal->setView(std::make_shared(textSize, *horizontal)); horizontal->setAction( - []() - { - MCLogger().info() << "Horizontal split selected."; - Game::instance().setSplitType(Game::SplitType::Horizontal); - MenuManager::instance().popMenu(); - }); + []() { + juzzlin::L().info() << "Horizontal split selected."; + Game::instance().setSplitType(Game::SplitType::Horizontal); + MenuManager::instance().popMenu(); + }); - m_splitTypeMenu->addItem(MTFH::MenuItemPtr(horizontal)); - m_splitTypeMenu->addItem(MTFH::MenuItemPtr(vertical)); + m_splitTypeMenu->addItem(horizontal); + m_splitTypeMenu->addItem(vertical); } void SettingsMenu::populateGfxMenu(int width, int height) { const int itemHeight = height / ITEM_HEIGHT_DIV; - const int textSize = ITEM_TEXT_SIZE; + const int textSize = ITEM_TEXT_SIZE; using MTFH::MenuItem; - using MTFH::MenuItemPtr; using MTFH::MenuManager; - using MTFH::MenuItemViewPtr; - MenuItem * selectFullScreenResolution = new MenuItem(width, itemHeight, QObject::tr("Full screen resolution >").toUpper().toStdWString()); - selectFullScreenResolution->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *selectFullScreenResolution))); + const auto selectFullScreenResolution = std::make_shared(width, itemHeight, QObject::tr("Full screen resolution >").toUpper().toStdWString()); + selectFullScreenResolution->setView(std::make_shared(textSize, *selectFullScreenResolution)); selectFullScreenResolution->setMenuOpenAction(FULL_SCREEN_RESOLUTION_MENU_ID); - MenuItem * selectWindowedResolution = new MenuItem(width, itemHeight, QObject::tr("Windowed resolution >").toUpper().toStdWString()); - selectWindowedResolution->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *selectWindowedResolution))); + const auto selectWindowedResolution = std::make_shared(width, itemHeight, QObject::tr("Windowed resolution >").toUpper().toStdWString()); + selectWindowedResolution->setView(std::make_shared(textSize, *selectWindowedResolution)); selectWindowedResolution->setMenuOpenAction(WINDOWED_RESOLUTION_MENU_ID); - MenuItem * selectFps = new MenuItem(width, itemHeight, QObject::tr("FPS >").toUpper().toStdWString()); - selectFps->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *selectFps))); + const auto selectFps = std::make_shared(width, itemHeight, QObject::tr("FPS >").toUpper().toStdWString()); + selectFps->setView(std::make_shared(textSize, *selectFps)); selectFps->setMenuOpenAction(FPS_MENU_ID); - MenuItem * splitType = new MenuItem(width, itemHeight, QObject::tr("Split type >").toUpper().toStdWString()); - splitType->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *splitType))); + const auto splitType = std::make_shared(width, itemHeight, QObject::tr("Split type >").toUpper().toStdWString()); + splitType->setView(std::make_shared(textSize, *splitType)); splitType->setMenuOpenAction(SPLIT_TYPE_MENU_ID); #ifdef VSYNC_MENU - MenuItem * vsync = new MenuItem(width, itemHeight, QObject::tr("VSync >").toUpper().toStdWString()); - vsync->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *vsync))); + const auto vsync = std::make_shared(width, itemHeight, QObject::tr("VSync >").toUpper().toStdWString()); + vsync->setView(std::make_shared(textSize, *vsync)); vsync->setMenuOpenAction(VSYNC_MENU_ID); - m_gfxMenu->addItem(MenuItemPtr(vsync)); + m_gfxMenu->addItem(vsync); #endif - m_gfxMenu->addItem(MenuItemPtr(splitType)); - m_gfxMenu->addItem(MenuItemPtr(selectFps)); - m_gfxMenu->addItem(MenuItemPtr(selectWindowedResolution)); - m_gfxMenu->addItem(MenuItemPtr(selectFullScreenResolution)); + m_gfxMenu->addItem(splitType); + m_gfxMenu->addItem(selectFps); + m_gfxMenu->addItem(selectWindowedResolution); + m_gfxMenu->addItem(selectFullScreenResolution); } void SettingsMenu::populateSfxMenu(int width, int height) { const int itemHeight = height / ITEM_HEIGHT_DIV; - const int textSize = ITEM_TEXT_SIZE; + const int textSize = ITEM_TEXT_SIZE; using MTFH::MenuItem; using MTFH::MenuManager; - using MTFH::MenuItemViewPtr; - MenuItem * offItem = new MenuItem(width, itemHeight, QObject::tr("Off").toUpper().toStdWString()); - offItem->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *offItem))); + const auto offItem = std::make_shared(width, itemHeight, QObject::tr("Off").toUpper().toStdWString()); + offItem->setView(std::make_shared(textSize, *offItem)); offItem->setAction( - []() - { - MCLogger().info() << "Sounds off selected."; - Game::instance().audioWorker().setEnabled(false); - Settings::instance().saveValue(Settings::soundsKey(), false); - MenuManager::instance().popMenu(); - }); + []() { + juzzlin::L().info() << "Sounds off selected."; + Game::instance().audioWorker().setEnabled(false); + Settings::instance().saveValue(Settings::soundsKey(), false); + MenuManager::instance().popMenu(); + }); m_sfxMenu->addItem(MTFH::MenuItemPtr(offItem)); - MenuItem * onItem = new MenuItem(width, itemHeight, QObject::tr("On").toUpper().toStdWString()); - onItem->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *onItem))); + const auto onItem = std::make_shared(width, itemHeight, QObject::tr("On").toUpper().toStdWString()); + onItem->setView(std::make_shared(textSize, *onItem)); onItem->setAction( - []() - { - MCLogger().info() << "Sounds on selected."; - Game::instance().audioWorker().setEnabled(true); - Settings::instance().saveValue(Settings::soundsKey(), true); - MenuManager::instance().popMenu(); - }); + []() { + juzzlin::L().info() << "Sounds on selected."; + Game::instance().audioWorker().setEnabled(true); + Settings::instance().saveValue(Settings::soundsKey(), true); + MenuManager::instance().popMenu(); + }); - m_sfxMenu->addItem(MTFH::MenuItemPtr(onItem)); + m_sfxMenu->addItem(onItem); if (Game::instance().audioWorker().enabled()) { @@ -457,30 +427,24 @@ void SettingsMenu::populateResetMenu(int width, int height) { const int itemHeight = height / ITEM_HEIGHT_DIV; - const int textSize = ITEM_TEXT_SIZE; + const int textSize = ITEM_TEXT_SIZE; using MTFH::MenuItem; - using MTFH::MenuItemPtr; - using MTFH::MenuItemActionPtr; using MTFH::MenuManager; - using MTFH::MenuItemViewPtr; - MenuItem * resetRecordTimes = new MenuItem(width, itemHeight, QObject::tr("Reset record times").toUpper().toStdWString()); - resetRecordTimes->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *resetRecordTimes))); - resetRecordTimes->setAction( - MenuItemActionPtr(new ResetAction(ResetAction::Type::Times, m_confirmationMenu))); - - MenuItem * resetBestPositions = new MenuItem(width, itemHeight, QObject::tr("Reset best positions").toUpper().toStdWString()); - resetBestPositions->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *resetBestPositions))); - resetBestPositions->setAction( - MenuItemActionPtr(new ResetAction(ResetAction::Type::Positions, m_confirmationMenu))); - - MenuItem * resetUnlockedTracks = new MenuItem(width, itemHeight, QObject::tr("Reset unlocked tracks").toUpper().toStdWString()); - resetUnlockedTracks->setView(MenuItemViewPtr(new TextMenuItemView(textSize, *resetUnlockedTracks))); - resetUnlockedTracks->setAction( - MenuItemActionPtr(new ResetAction(ResetAction::Type::Tracks, m_confirmationMenu))); - - m_resetMenu->addItem(MenuItemPtr(resetRecordTimes)); - m_resetMenu->addItem(MenuItemPtr(resetBestPositions)); - m_resetMenu->addItem(MenuItemPtr(resetUnlockedTracks)); + const auto resetRecordTimes = std::make_shared(width, itemHeight, QObject::tr("Reset record times").toUpper().toStdWString()); + resetRecordTimes->setView(std::make_shared(textSize, *resetRecordTimes)); + resetRecordTimes->setAction(std::make_shared(ResetAction::Type::Times, m_confirmationMenu)); + + const auto resetBestPositions = std::make_shared(width, itemHeight, QObject::tr("Reset best positions").toUpper().toStdWString()); + resetBestPositions->setView(std::make_shared(textSize, *resetBestPositions)); + resetBestPositions->setAction(std::make_shared(ResetAction::Type::Positions, m_confirmationMenu)); + + const auto resetUnlockedTracks = std::make_shared(width, itemHeight, QObject::tr("Reset unlocked tracks").toUpper().toStdWString()); + resetUnlockedTracks->setView(std::make_shared(textSize, *resetUnlockedTracks)); + resetUnlockedTracks->setAction(std::make_shared(ResetAction::Type::Tracks, m_confirmationMenu)); + + m_resetMenu->addItem(resetRecordTimes); + m_resetMenu->addItem(resetBestPositions); + m_resetMenu->addItem(resetUnlockedTracks); } diff -Nru dustrac-2.0.1/src/game/menu/settingsmenu.hpp dustrac-2.0.5/src/game/menu/settingsmenu.hpp --- dustrac-2.0.1/src/game/menu/settingsmenu.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/settingsmenu.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -25,12 +25,10 @@ class SettingsMenu : public SurfaceMenu { public: - //! Constructor. SettingsMenu(std::string id, int width, int height); private: - void populate(int width, int height); void populateFpsMenu(int width, int height); diff -Nru dustrac-2.0.1/src/game/menu/surfacemenu.cpp dustrac-2.0.5/src/game/menu/surfacemenu.cpp --- dustrac-2.0.1/src/game/menu/surfacemenu.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/surfacemenu.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -18,62 +18,52 @@ #include "renderer.hpp" #include "textmenuitemview.hpp" +#include #include #include -#include #include #include -SurfaceMenu::SurfaceMenu( - std::string surfaceId, - std::string id, - int width, - int height, - Menu::Style style, - bool quitItem, - bool prevItem, - bool nextItem) -: Menu(id, width, height, style) -, m_back(MCAssetManager::surfaceManager().surface(surfaceId)) -, m_font(MCAssetManager::textureFontManager().font(Game::instance().fontName())) +SurfaceMenu::SurfaceMenu(std::string surfaceId, std::string id, int width, int height, Menu::Style style, bool quitItem, bool prevItem, bool nextItem) + : Menu(id, width, height, style) + , m_back(MCAssetManager::surfaceManager().surface(surfaceId)) + , m_font(MCAssetManager::textureFontManager().font(Game::instance().fontName())) { - m_back.setShaderProgram(Renderer::instance().program("menu")); - m_back.setColor(MCGLColor(0.5, 0.5, 0.5, 1.0)); + m_back->setShaderProgram(Renderer::instance().program("menu")); + m_back->setColor({ 0.5, 0.5, 0.5, 1.0 }); if (quitItem) { const int textSize = 40; - MTFH::MenuItem * quit = new MTFH::MenuItem(textSize, textSize, L"X"); - quit->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(textSize, *quit))); - addMouseItem(MTFH::Menu::MouseItemType::Quit, MTFH::MenuItemPtr(quit)); + const auto quit = std::make_shared(textSize, textSize, L"X"); + quit->setView(std::make_shared(textSize, *quit)); + addMouseItem(MTFH::Menu::MouseItemType::Quit, quit); } if (prevItem) { const int textSize = 40; - MTFH::MenuItem * prev = new MTFH::MenuItem(textSize, textSize, L"<"); - prev->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(textSize, *prev))); - addMouseItem(MTFH::Menu::MouseItemType::Prev, MTFH::MenuItemPtr(prev)); + const auto prev = std::make_shared(textSize, textSize, L"<"); + prev->setView(std::make_shared(textSize, *prev)); + addMouseItem(MTFH::Menu::MouseItemType::Prev, prev); } if (nextItem) { const int textSize = 40; - MTFH::MenuItem * next = new MTFH::MenuItem(textSize, textSize, L">"); - next->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(textSize, *next))); - addMouseItem(MTFH::Menu::MouseItemType::Next, MTFH::MenuItemPtr(next)); + const auto next = std::make_shared(textSize, textSize, L">"); + next->setView(std::make_shared(textSize, *next)); + addMouseItem(MTFH::Menu::MouseItemType::Next, next); } } void SurfaceMenu::render() { - const int w2 = x() + width() / 2; - const int h2 = y() + height() / 2; - m_back.bind(); - m_back.setSize(width(), width() * m_back.height() / m_back.width()); - m_back.render(nullptr, MCVector3dF(w2, h2, 0), 0); + m_back->bind(); + m_back->setSize(width(), width() * m_back->height() / m_back->width()); + m_back->render(nullptr, { x() + width() / 2, y() + height() / 2, 0 }, 0); Menu::render(); } diff -Nru dustrac-2.0.1/src/game/menu/surfacemenu.hpp dustrac-2.0.5/src/game/menu/surfacemenu.hpp --- dustrac-2.0.1/src/game/menu/surfacemenu.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/surfacemenu.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -18,6 +18,8 @@ #include +#include + class MCSurface; class MCTextureFont; @@ -25,15 +27,14 @@ class SurfaceMenu : public MTFH::Menu { public: - //! Constructor. SurfaceMenu( - std::string surfaceId, std::string id, int width, int height, - Menu::Style style = Menu::Style::VerticalList, - bool quitItem = true, bool prevItem = false, bool nextItem = false); + std::string surfaceId, std::string id, int width, int height, + Menu::Style style = Menu::Style::VerticalList, + bool quitItem = true, bool prevItem = false, bool nextItem = false); //! Destructor. - virtual ~SurfaceMenu() {} + virtual ~SurfaceMenu() override = default; //! \reimp virtual void render() override; @@ -54,12 +55,11 @@ virtual void popExit() override; protected: - MCTextureFont & font() const; private: + std::shared_ptr m_back; - MCSurface & m_back; MCTextureFont & m_font; }; diff -Nru dustrac-2.0.1/src/game/menu/textmenuitemview.cpp dustrac-2.0.5/src/game/menu/textmenuitemview.cpp --- dustrac-2.0.1/src/game/menu/textmenuitemview.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/textmenuitemview.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -18,16 +18,16 @@ #include #include +#include #include #include -#include #include TextMenuItemView::TextMenuItemView(float textSize, MTFH::MenuItem & owner) -: MenuItemView(owner) -, m_textSize(textSize) -, m_angle(MCRandom::getValue() * 2.0f * 3.1415f) + : MenuItemView(owner) + , m_textSize(textSize) + , m_angle(MCRandom::getValue() * 2.0f * 3.1415f) { } @@ -70,7 +70,7 @@ } const float shadowY = -2; - const float shadowX = 2; + const float shadowX = 2; text.setShadowOffset(shadowX, shadowY); auto && font = MCAssetManager::textureFontManager().font(Game::instance().fontName()); diff -Nru dustrac-2.0.1/src/game/menu/textmenuitemview.hpp dustrac-2.0.5/src/game/menu/textmenuitemview.hpp --- dustrac-2.0.1/src/game/menu/textmenuitemview.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/textmenuitemview.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -26,7 +26,6 @@ class TextMenuItemView : public MTFH::MenuItemView { public: - //! Constructor. TextMenuItemView(float textSize, MTFH::MenuItem & owner); @@ -43,7 +42,6 @@ virtual void setTextSize(float size); private: - float m_textSize; float m_angle; diff -Nru dustrac-2.0.1/src/game/menu/trackselectionmenu.cpp dustrac-2.0.5/src/game/menu/trackselectionmenu.cpp --- dustrac-2.0.1/src/game/menu/trackselectionmenu.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/trackselectionmenu.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -17,9 +17,9 @@ #include "game.hpp" #include "mainmenu.hpp" +#include "renderer.hpp" #include "scene.hpp" #include "settings.hpp" -#include "renderer.hpp" #include "timing.hpp" #include "track.hpp" #include "trackdata.hpp" @@ -29,7 +29,6 @@ #include #include -#include #include #include #include @@ -54,47 +53,43 @@ class TrackItem : public MTFH::MenuItem { public: - - TrackItem(int width, int height, Track & track) - : MenuItem(width, height) - , m_game(Game::instance()) - , m_track(track) - , m_font(MCAssetManager::textureFontManager().font(m_game.fontName())) - , m_star(MCAssetManager::surfaceManager().surface("star")) - , m_glow(MCAssetManager::surfaceManager().surface("starGlow")) - , m_lock(MCAssetManager::surfaceManager().surface("lock")) - , m_lapRecord(Settings::instance().loadLapRecord(m_track)) - , m_raceRecord(Settings::instance().loadRaceRecord( - m_track, m_game.lapCount(), m_game.difficultyProfile().difficulty())) - , m_bestPos(Settings::instance().loadBestPos( - m_track, m_game.lapCount(), m_game.difficultyProfile().difficulty())) + TrackItem(int width, int height, std::shared_ptr track) + : MenuItem(width, height) + , m_game(Game::instance()) + , m_track(track) + , m_font(MCAssetManager::textureFontManager().font(m_game.fontName())) + , m_star(MCAssetManager::surfaceManager().surface("star")) + , m_glow(MCAssetManager::surfaceManager().surface("starGlow")) + , m_lock(MCAssetManager::surfaceManager().surface("lock")) { + updateData(); + auto && program = Renderer::instance().program("menu"); - m_star.setShaderProgram(program); - m_glow.setShaderProgram(program); - m_lock.setShaderProgram(program); + m_star->setShaderProgram(program); + m_glow->setShaderProgram(program); + m_lock->setShaderProgram(program); } - Track & track() const + std::shared_ptr track() const { return m_track; } + // This ensures that data has been updated when player returns to the menu after a race virtual void setFocused(bool focused) override { MenuItem::setFocused(focused); - - m_lapRecord = Settings::instance().loadLapRecord(m_track); - m_raceRecord = Settings::instance().loadRaceRecord( - m_track, m_game.lapCount(), m_game.difficultyProfile().difficulty()); - m_bestPos = Settings::instance().loadBestPos( - m_track, m_game.lapCount(), m_game.difficultyProfile().difficulty()); + if (focused) + { + updateData(); + } } //! \reimp virtual void render() override; private: + void updateData(); void renderTiles(); @@ -108,15 +103,15 @@ Game & m_game; - Track & m_track; + std::shared_ptr m_track; MCTextureFont & m_font; - MCSurface & m_star; + MCSurfacePtr m_star; - MCSurface & m_glow; + MCSurfacePtr m_glow; - MCSurface & m_lock; + MCSurfacePtr m_lock; int m_lapRecord; @@ -125,12 +120,21 @@ int m_bestPos; }; +void TrackItem::updateData() +{ + m_lapRecord = Settings::instance().loadLapRecord(*m_track); + m_raceRecord = Settings::instance().loadRaceRecord( + *m_track, m_game.lapCount(), m_game.difficultyProfile().difficulty()); + m_bestPos = Settings::instance().loadBestPos( + *m_track, m_game.lapCount(), m_game.difficultyProfile().difficulty()); +} + void TrackItem::renderTiles() { - const MapBase & rMap = m_track.trackData().map(); + const MapBase & rMap = m_track->trackData().map(); - const int previewW = width(); - const int previewH = height(); + const auto previewW = width(); + const auto previewH = height(); // Set tileW and tileH so that they are squares float tileW = previewW / rMap.cols(); @@ -146,36 +150,31 @@ } // Center the preview - int initX, initY; + float initX; if (rMap.cols() % 2 == 0) { - initX = x() - rMap.cols() * tileW / 2 + tileW / 4; + initX = x() - rMap.cols() * tileW / 2 + tileW / 4 + menu()->x(); } else { - initX = x() - rMap.cols() * tileW / 2; + initX = x() - rMap.cols() * tileW / 2 + menu()->x(); } - initY = y() - rMap.rows() * tileH / 2; - - initX += menu()->x(); - initY += menu()->y(); - // Loop through the visible tile matrix and draw the tiles - float tileY = initY; - for (unsigned int j = 0; j < rMap.rows(); j++) + float tileY = y() - rMap.rows() * tileH / 2 + menu()->y(); + for (size_t j = 0; j < rMap.rows(); j++) { float tileX = initX; - for (unsigned int i = 0; i < rMap.cols(); i++) + for (size_t i = 0; i < rMap.cols(); i++) { - auto tile = std::static_pointer_cast(rMap.getTile(i, j)); - auto surface = tile->previewSurface(); + const auto tile = std::static_pointer_cast(rMap.getTile(i, j)); + const auto surface = tile->previewSurface(); if (surface && !tile->excludeFromMinimap()) { surface->setShaderProgram(Renderer::instance().program("menu")); surface->bind(); - if (m_track.trackData().isLocked()) + if (m_track->trackData().isLocked()) { surface->setColor(MCGLColor(0.5, 0.5, 0.5)); } @@ -186,8 +185,8 @@ surface->setSize(tileH, tileW); surface->render( - nullptr, - MCVector3dF(tileX + tileW / 2, tileY + tileH / 2), tile->rotation()); + nullptr, + MCVector3dF(tileX + tileW / 2, tileY + tileH / 2), tile->rotation()); } tileX += tileW; @@ -202,10 +201,10 @@ MCTextureText text(L""); const int shadowY = -2; - const int shadowX = 2; + const int shadowX = 2; std::wstringstream ss; - ss << m_track.trackData().name().toUpper().toStdWString(); + ss << m_track->trackData().name().toUpper().toStdWString(); text.setText(ss.str()); text.setGlyphSize(30, 30); text.setShadowOffset(shadowX, shadowY); @@ -214,58 +213,52 @@ void TrackItem::renderStars() { - if (!m_track.trackData().isLocked()) + if (!m_track->trackData().isLocked()) { - const int starW = m_star.width(); - const int starH = m_star.height(); - const int startX = menu()->x() + x() - 5 * starW + starW / 2; - const int numStars = 10; + const auto starW = m_star->width(); + const auto starH = m_star->height(); + const auto startX = menu()->x() + x() - 5 * starW + starW / 2; const MCGLColor yellow(1.0, 1.0, 0.0); const MCGLColor grey(.75, .75, .75); + const int numStars = 10; for (int i = 0; i < numStars; i++) { const MCVector3dF starPos(startX + i * starW, menu()->y() + y() - height() / 2 + starH / 2, 0); // The range of m_bestPos is 1..NUM_CARS - if (m_bestPos != -1 && - Scene::NUM_CARS - (i + 1 ) * Scene::NUM_CARS / numStars >= m_bestPos - 1) + if (m_bestPos != -1 && numStars - i >= m_bestPos) { - m_star.setColor(yellow); - m_glow.render(nullptr, starPos, 0); + m_star->setColor(yellow); + m_glow->render(nullptr, starPos, 0); } else { - m_star.setColor(grey); + m_star->setColor(grey); } - m_star.render(nullptr, starPos, 0); + m_star->render(nullptr, starPos, 0); } } } void TrackItem::renderLock() { - if (m_track.trackData().isLocked()) + if (m_track->trackData().isLocked()) { - m_lock.render(nullptr, MCVector3dF(menu()->x() + x(), menu()->y() + y(), 0), 0); + m_lock->render(nullptr, { menu()->x() + x(), menu()->y() + y(), 0 }, 0); } } void TrackItem::renderTrackProperties() { - MCTextureText text(L""); - - const int shadowY = -2; - const int shadowX = 2; - std::wstringstream ss; + MCTextureText text(L""); text.setGlyphSize(20, 20); + const int shadowY = -2; + const int shadowX = 2; text.setShadowOffset(shadowX, shadowY); - const int textX = menu()->x() + x(); - int maxWidth = 0; - std::vector texts; // Render track properties @@ -273,17 +266,17 @@ ss << QObject::tr(" Laps: ").toStdWString() << Game::instance().lapCount(); text.setText(ss.str()); text.setGlyphSize(20, 20); - maxWidth = std::fmax(maxWidth, text.width(m_font)); + float maxWidth = text.width(m_font); texts.push_back(text); ss.str(L""); ss << QObject::tr(" Length: ").toStdWString() - << int(m_track.trackData().route().geometricLength() * MCWorld::metersPerUnit()); + << static_cast(m_track->trackData().route().geometricLength() * MCWorld::metersPerUnit()); text.setText(ss.str()); maxWidth = std::fmax(maxWidth, text.width(m_font)); texts.push_back(text); - if (!m_track.trackData().isLocked()) + if (!m_track->trackData().isLocked()) { ss.str(L""); ss << QObject::tr(" Lap Record: ").toStdWString() << Timing::msecsToString(m_lapRecord); @@ -299,10 +292,11 @@ } const float yPos = menu()->y() + y() - height() / 2; - float lineHeight = text.height(m_font); + const float lineHeight = text.height(m_font); int line = 2; - for (auto && text: texts) + for (auto && text : texts) { + const auto textX = menu()->x() + x(); text.render(textX - maxWidth / 2, yPos - lineHeight * line, nullptr, m_font); line++; } @@ -322,20 +316,19 @@ } TrackSelectionMenu::TrackSelectionMenu(int width, int height, Scene & scene) - : SurfaceMenu("trackSelectionBack", MenuId, width, height, Menu::Style::ShowMany, true, true, true) - , m_selectedTrack(nullptr) - , m_scene(scene) + : SurfaceMenu("trackSelectionBack", MenuId, width, height, Menu::Style::ShowMany, true, true, true) + , m_scene(scene) { setWrapAround(false); } -void TrackSelectionMenu::addTrack(Track & track) +void TrackSelectionMenu::addTrack(std::shared_ptr track) { - auto item = MTFH::MenuItemPtr(new TrackItem(width() / 2, height() / 2, track)); + const auto item = std::make_shared(width() / 2, height() / 2, track); item->setPos(width() / 2, height() / 2); addItem(item); setCurrentIndex(0); - setItemsToShow({0}); + setItemsToShow({ 0 }); } void TrackSelectionMenu::left() @@ -352,7 +345,7 @@ currentItem()->setPos(-SAIL_AWAY_HONEY_X, height() / 2, width() / 2, height() / 2); currentItem()->resetAnimationCurve(ANIMATION_STEPS, ANIMATION_EXP); - setItemsToShow({prevIndex, currentIndex()}); + setItemsToShow({ prevIndex, currentIndex() }); } } @@ -370,7 +363,7 @@ currentItem()->setPos(width() + SAIL_AWAY_HONEY_X, height() / 2, width() / 2, height() / 2); currentItem()->resetAnimationCurve(ANIMATION_STEPS, ANIMATION_EXP); - setItemsToShow({prevIndex, currentIndex()}); + setItemsToShow({ prevIndex, currentIndex() }); } } @@ -392,16 +385,16 @@ void TrackSelectionMenu::selectCurrentItem() { Menu::selectCurrentItem(); - auto && selection = std::static_pointer_cast(currentItem())->track(); - if (!selection.trackData().isLocked()) + auto && selectedTrack = std::static_pointer_cast(currentItem())->track(); + if (!selectedTrack->trackData().isLocked()) { - m_selectedTrack = &selection; - m_scene.setActiveTrack(*m_selectedTrack); + m_selectedTrack = selectedTrack; + m_scene.setActiveTrack(m_selectedTrack); setIsDone(true); } } -Track * TrackSelectionMenu::selectedTrack() const +std::shared_ptr TrackSelectionMenu::selectedTrack() const { return m_selectedTrack; } diff -Nru dustrac-2.0.1/src/game/menu/trackselectionmenu.hpp dustrac-2.0.5/src/game/menu/trackselectionmenu.hpp --- dustrac-2.0.1/src/game/menu/trackselectionmenu.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/trackselectionmenu.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -27,17 +27,16 @@ class TrackSelectionMenu : public SurfaceMenu { public: - static std::string MenuId; //! Constructor. TrackSelectionMenu(int width, int height, Scene & scene); //! Add a track to the list of selectable tracks. - void addTrack(Track & track); + void addTrack(std::shared_ptr track); //! Returns the selected track or nullptr. - Track * selectedTrack() const; + std::shared_ptr selectedTrack() const; //! \reimp virtual void left() override; @@ -58,8 +57,7 @@ virtual void selectCurrentItem() override; private: - - Track * m_selectedTrack; + std::shared_ptr m_selectedTrack; Scene & m_scene; diff -Nru dustrac-2.0.1/src/game/menu/vsyncmenu.cpp dustrac-2.0.5/src/game/menu/vsyncmenu.cpp --- dustrac-2.0.1/src/game/menu/vsyncmenu.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/vsyncmenu.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -24,7 +24,7 @@ #include #include -#include +#include "simple_logger.hpp" #include // for tr() @@ -33,14 +33,12 @@ class VSyncItem : public MTFH::MenuItem { public: - class SaveVSyncAction : public MTFH::MenuItemAction { public: - //! Constructor. SaveVSyncAction(VSyncItem & parent) - : m_parent(parent) + : m_parent(parent) { } @@ -49,26 +47,25 @@ { const int vsync = m_parent.vsync(); Settings::instance().saveValue(Settings::vsyncKey(), vsync); - MCLogger().info() << "VSync set: " << vsync; + juzzlin::L().info() << "VSync set: " << vsync; Game::instance().exitGame(); } private: - VSyncItem & m_parent; }; //! Constructor. VSyncItem(ConfirmationMenuPtr confirmationMenu, int vsync, int width, int height, std::wstring text = L"") - : MenuItem(width, height, text) - , m_confirmationMenu(confirmationMenu) - , m_saveVSyncAction(new SaveVSyncAction(*this)) - , m_vsync(vsync) + : MenuItem(width, height, text) + , m_confirmationMenu(confirmationMenu) + , m_saveVSyncAction(new SaveVSyncAction(*this)) + , m_vsync(vsync) { } //! Destructor. - virtual ~VSyncItem() {} + virtual ~VSyncItem() = default; //! \reimp virtual void setSelected(bool flag) @@ -86,7 +83,6 @@ } private: - ConfirmationMenuPtr m_confirmationMenu; MTFH::MenuItemActionPtr m_saveVSyncAction; @@ -95,18 +91,18 @@ }; VSyncMenu::VSyncMenu(ConfirmationMenuPtr confirmationMenu, std::string id, int width, int height) -: SurfaceMenu("settingsBack", id, width, height) -, m_confirmationMenu(confirmationMenu) + : SurfaceMenu("settingsBack", id, width, height) + , m_confirmationMenu(confirmationMenu) { const int itemHeight = height / 10; - auto off = new VSyncItem(m_confirmationMenu, 0, width, itemHeight, QObject::tr("Off").toStdWString()); - off->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *off))); - addItem(MTFH::MenuItemPtr(off)); - - auto on = new VSyncItem(m_confirmationMenu, 1, width, itemHeight, QObject::tr("On").toStdWString()); - on->setView(MTFH::MenuItemViewPtr(new TextMenuItemView(20, *on))); - addItem(MTFH::MenuItemPtr(on)); + const auto off = std::make_shared(m_confirmationMenu, 0, width, itemHeight, QObject::tr("Off").toStdWString()); + off->setView(std::make_shared(20, *off)); + addItem(off); + + auto on = std::make_shared(m_confirmationMenu, 1, width, itemHeight, QObject::tr("On").toStdWString()); + on->setView(std::make_shared(20, *on)); + addItem(on); enter(); } diff -Nru dustrac-2.0.1/src/game/menu/vsyncmenu.hpp dustrac-2.0.5/src/game/menu/vsyncmenu.hpp --- dustrac-2.0.1/src/game/menu/vsyncmenu.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/menu/vsyncmenu.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -16,25 +16,22 @@ #ifndef VSYNCMENU_HPP #define VSYNCMENU_HPP -#include "surfacemenu.hpp" #include "confirmationmenu.hpp" +#include "surfacemenu.hpp" class ConfirmationMenu; class VSyncMenu : public SurfaceMenu { public: - //! Constructor. VSyncMenu(ConfirmationMenuPtr confirmationMenu, std::string id, int width, int height); protected: - //! \reimp virtual void enter() override; private: - ConfirmationMenuPtr m_confirmationMenu; }; diff -Nru dustrac-2.0.1/src/game/messageoverlay.cpp dustrac-2.0.5/src/game/messageoverlay.cpp --- dustrac-2.0.1/src/game/messageoverlay.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/messageoverlay.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -15,18 +15,18 @@ #include "messageoverlay.hpp" #include "game.hpp" -#include #include +#include -static const int GLYPH_WIDTH = 20; +static const int GLYPH_WIDTH = 20; static const int GLYPH_HEIGHT = 20; -MessageOverlay::MessageOverlay(Alignment align, int messageMaxTime) -: m_fontManager(MCAssetManager::textureFontManager()) -, m_font(m_fontManager.font(Game::instance().fontName())) -, m_text(L"") -, m_messageMaxTime(messageMaxTime) -, m_align(align) +MessageOverlay::MessageOverlay(Alignment align, size_t messageMaxTime) + : m_fontManager(MCAssetManager::textureFontManager()) + , m_font(m_fontManager.font(Game::instance().fontName())) + , m_text(L"") + , m_messageMaxTime(messageMaxTime) + , m_align(align) { m_text.setShadowOffset(2, -2); m_text.setGlyphSize(GLYPH_WIDTH, GLYPH_HEIGHT); @@ -58,7 +58,7 @@ // Time to vanish? if (m.timeShown >= m.maxTime / 2) { - m.targetY = -20; + m.targetY = -20; m.isRemoving = true; } @@ -81,13 +81,13 @@ // Create a new message MessageOverlay::Message myMsg; - myMsg.timeShown = 0; - myMsg.maxTime = m_messageMaxTime * 2; // Half of the time is used when removing - myMsg.text = msg; - myMsg.y = -1; - myMsg.targetY = -1; + myMsg.timeShown = 0; + myMsg.maxTime = m_messageMaxTime * 2; // Half of the time is used when removing + myMsg.text = msg; + myMsg.y = -1; + myMsg.targetY = -1; myMsg.isYInitialized = false; - myMsg.isRemoving = false; + myMsg.isRemoving = false; // Add to the list of active messages m_listMessages.push_front(myMsg); @@ -114,57 +114,47 @@ if (m_align == MessageOverlay::Alignment::Bottom) { // Y-coordinate for the fist message - y = GLYPH_HEIGHT; + y = GLYPH_HEIGHT; dY = GLYPH_HEIGHT; } else { // Y-coordinate for the fist message - y = height() - 2 * GLYPH_HEIGHT; + y = static_cast(height()) - 2 * GLYPH_HEIGHT; dY = -GLYPH_HEIGHT; } // Center X-coordinate - x = width() / 2; + x = static_cast(width()) / 2; // Loop through active messages and init their targetY - auto i(m_listMessages.begin()); - while (i != m_listMessages.end()) + for (auto && message : m_listMessages) { - MessageOverlay::Message & m = *i; - - if (!m.isYInitialized) + if (!message.isYInitialized) { - m.y = y; - m.targetY = y; - m.isYInitialized = true; + message.y = y; + message.targetY = y; + message.isYInitialized = true; } else { - if (!m.isRemoving) + if (!message.isRemoving) { - m.targetY = y; + message.targetY = y; } } // Increment / decrement y-coordinate y += dY; - - i++; } // Loop trough active messages and render them stacked - auto j(m_listMessages.begin()); - while (j != m_listMessages.end()) + for (auto && message : m_listMessages) { - const MessageOverlay::Message & m = *j; - - // Create a Text object from the std QString - m_text.setText(m.text); + // Create a Text object from the string + m_text.setText(message.text); // Render the text - m_text.render(x - (m_text.width(m_font) / 2), m.y, nullptr, m_font); - - j++; + m_text.render(x - (m_text.width(m_font) / 2), message.y, nullptr, m_font); } } diff -Nru dustrac-2.0.1/src/game/messageoverlay.hpp dustrac-2.0.5/src/game/messageoverlay.hpp --- dustrac-2.0.1/src/game/messageoverlay.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/messageoverlay.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -32,12 +32,15 @@ Q_OBJECT public: - //! Alignment of the MessageOverlay messages. - enum class Alignment {Top, Bottom}; + enum class Alignment + { + Top, + Bottom + }; //! Constructor. - MessageOverlay(Alignment align = Alignment::Bottom, int messageMaxTime = 180); + MessageOverlay(Alignment align = Alignment::Bottom, size_t messageMaxTime = 180); //! \reimp virtual void render() override; @@ -57,7 +60,6 @@ void addMessage(const wchar_t * msg); private: - //! Render messages. void renderMessages(); @@ -65,32 +67,37 @@ struct Message { //! Time the message has been shown - int timeShown; + size_t timeShown = 0; //! The time after which message will be deleted - int maxTime; + size_t maxTime = 0; //! Current y - float y; + float y = 0; //! Target y - float targetY; + float targetY = 0; //! Message std::wstring text; //! True, if y is initialized - bool isYInitialized; + bool isYInitialized = false; - bool isRemoving; + bool isRemoving = false; }; MCTextureFontManager & m_fontManager; - MCTextureFont & m_font; - MCTextureText m_text; - int m_messageMaxTime; - Alignment m_align; - std::list m_listMessages; + + MCTextureFont & m_font; + + MCTextureText m_text; + + size_t m_messageMaxTime; + + Alignment m_align; + + std::list m_listMessages; }; #endif // MESSAGEOVERLAY_HPP diff -Nru dustrac-2.0.1/src/game/MiniCore/CMakeLists.txt dustrac-2.0.5/src/game/MiniCore/CMakeLists.txt --- dustrac-2.0.1/src/game/MiniCore/CMakeLists.txt 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/CMakeLists.txt 2020-01-06 23:07:24.000000000 +0000 @@ -45,13 +45,6 @@ add_definitions(-DGLEW_STATIC) add_definitions(-DGLEW_NO_GLU) -if(CMAKE_COMPILER_IS_GNUCXX OR MINGW OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - add_compile_options("$<$:-W -Wall -O3 -pedantic -fomit-frame-pointer>") - add_compile_options("$<$:-W -Wall -O0 -g -pedantic>") -elseif(MSVC) - add_definitions(-DNOMINMAX) -endif() - add_definitions(-DVERSION="${VERSION}") set(CMAKE_AUTOMOC ON) @@ -64,6 +57,11 @@ # Find OpenGL find_package(OpenGL REQUIRED) +if(${CMAKE_VERSION} VERSION_LESS "3.11.0") + set(MINICORE_OPENGL_LIBS ${OPENGL_gl_LIBRARY}) +else() + set(MINICORE_OPENGL_LIBS OpenGL::GL) +endif() # Enable CMake's unit test framework enable_testing() diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcassetmanager.cc dustrac-2.0.5/src/game/MiniCore/src/Asset/mcassetmanager.cc --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcassetmanager.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcassetmanager.cc 2020-01-06 23:07:24.000000000 +0000 @@ -25,17 +25,17 @@ MCAssetManager * MCAssetManager::m_instance = nullptr; MCAssetManager::MCAssetManager( - const std::string & baseDataPath, - const std::string & surfaceConfigPath, - const std::string & fontConfigPath, - const std::string & meshConfigPath) -: m_surfaceManager(new MCSurfaceManager) -, m_textureFontManager(new MCTextureFontManager(*m_surfaceManager)) -, m_meshManager(new MCMeshManager) -, m_baseDataPath(baseDataPath) -, m_surfaceConfigPath(surfaceConfigPath) -, m_fontConfigPath(fontConfigPath) -, m_meshConfigPath(meshConfigPath) + const std::string & baseDataPath, + const std::string & surfaceConfigPath, + const std::string & fontConfigPath, + const std::string & meshConfigPath) + : m_surfaceManager(new MCSurfaceManager) + , m_textureFontManager(new MCTextureFontManager(*m_surfaceManager)) + , m_meshManager(new MCMeshManager) + , m_baseDataPath(baseDataPath) + , m_surfaceConfigPath(surfaceConfigPath) + , m_fontConfigPath(fontConfigPath) + , m_meshConfigPath(meshConfigPath) { assert(!MCAssetManager::m_instance); MCAssetManager::m_instance = this; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcassetmanager.hh dustrac-2.0.5/src/game/MiniCore/src/Asset/mcassetmanager.hh --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcassetmanager.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcassetmanager.hh 2020-01-06 23:07:24.000000000 +0000 @@ -22,22 +22,21 @@ #include +#include "mcmeshmanager.hh" #include "mcsurfacemanager.hh" #include "mctexturefontmanager.hh" -#include "mcmeshmanager.hh" /*! Singleton class that handles loading of assets and instantiates * all sub-managers (MCSurfaceManager, MCTextureFontManager, MCMeshManager) */ class MCAssetManager { public: - //! Constructor. explicit MCAssetManager( - const std::string & baseDataPath = "", - const std::string & surfaceConfigPath = "", - const std::string & fontConfigPath = "", - const std::string & meshConfigPath = ""); + const std::string & baseDataPath = "", + const std::string & surfaceConfigPath = "", + const std::string & fontConfigPath = "", + const std::string & meshConfigPath = ""); //! \return The singleton instance. static MCAssetManager & instance(); @@ -55,7 +54,6 @@ ~MCAssetManager(); private: - void loadSurfaces(); void loadFonts(); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshconfigloader.cc dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshconfigloader.cc --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshconfigloader.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshconfigloader.cc 2020-01-06 23:07:24.000000000 +0000 @@ -22,8 +22,8 @@ #include #include -#include "mcmeshconfigloader.hh" #include "mclogger.hh" +#include "mcmeshconfigloader.hh" #include @@ -49,9 +49,9 @@ { const std::string baseModelPath = root.attribute("baseModelPath", "./").toStdString(); auto && node = root.firstChild(); - while(!node.isNull() && node.nodeName() == "mesh") + while (!node.isNull() && node.nodeName() == "mesh") { - MeshDataPtr newData(new MCMeshMetaData); + const auto newData = std::make_shared(); const auto && element = node.toElement(); if (!element.isNull()) { @@ -68,7 +68,7 @@ return true; } -void MCMeshConfigLoader::parseAttributes(const QDomElement & element, MeshDataPtr newData, const std::string & baseModelPath) +void MCMeshConfigLoader::parseAttributes(const QDomElement & element, MCMeshDataPtr newData, const std::string & baseModelPath) { const std::string model = element.attribute("model", "").toStdString(); @@ -84,7 +84,7 @@ } } -void MCMeshConfigLoader::parseChildNodes(const QDomNode & node, MeshDataPtr newData) +void MCMeshConfigLoader::parseChildNodes(const QDomNode & node, MCMeshDataPtr newData) { auto && childNode = node.firstChild(); while (!childNode.isNull()) @@ -120,14 +120,12 @@ } } -unsigned int MCMeshConfigLoader::meshCount() const +size_t MCMeshConfigLoader::meshCount() const { - return static_cast(m_meshes.size()); + return m_meshes.size(); } -const MCMeshMetaData & MCMeshConfigLoader::mesh(unsigned int index) const +MCMeshDataPtr MCMeshConfigLoader::mesh(size_t index) const { - assert(index < static_cast(m_meshes.size())); - assert(m_meshes.at(index)); - return *m_meshes.at(index); + return m_meshes.at(index); } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshconfigloader.hh dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshconfigloader.hh --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshconfigloader.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshconfigloader.hh 2020-01-06 23:07:24.000000000 +0000 @@ -22,8 +22,8 @@ #include "mcmeshmetadata.hh" -#include #include +#include class QDomElement; class QDomNode; @@ -32,26 +32,22 @@ class MCMeshConfigLoader { public: - //! Load all meshes found in filePath. //! \return true if succeeded. bool load(const std::string & filePath); //! Get mesh count. - unsigned int meshCount() const; + size_t meshCount() const; //! Get mesh data of given index. - const MCMeshMetaData & mesh(unsigned int index) const; + MCMeshDataPtr mesh(size_t index) const; private: + void parseAttributes(const QDomElement & element, MCMeshDataPtr newData, const std::string & baseModelPath); - typedef std::shared_ptr MeshDataPtr; - - void parseAttributes(const QDomElement & element, MeshDataPtr newData, const std::string & baseModelPath); - - void parseChildNodes(const QDomNode & node, MeshDataPtr newData); + void parseChildNodes(const QDomNode & node, MCMeshDataPtr newData); - std::vector m_meshes; + std::vector m_meshes; }; #endif // MCMESHCONFIGLOADER_HH diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshloader.cc dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshloader.cc --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshloader.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshloader.cc 2020-01-06 23:07:24.000000000 +0000 @@ -26,10 +26,10 @@ MCMeshLoader::MCMeshLoader() { - m_keyToFunctionMap["v"] = std::bind(&MCMeshLoader::parseV, this, std::placeholders::_1); + m_keyToFunctionMap["v"] = std::bind(&MCMeshLoader::parseV, this, std::placeholders::_1); m_keyToFunctionMap["vt"] = std::bind(&MCMeshLoader::parseVT, this, std::placeholders::_1); m_keyToFunctionMap["vn"] = std::bind(&MCMeshLoader::parseVN, this, std::placeholders::_1); - m_keyToFunctionMap["f"] = std::bind(&MCMeshLoader::parseF, this, std::placeholders::_1); + m_keyToFunctionMap["f"] = std::bind(&MCMeshLoader::parseF, this, std::placeholders::_1); } bool MCMeshLoader::load(QString filePath) @@ -67,11 +67,8 @@ void MCMeshLoader::processLine(QString line) { line.remove(QRegExp("^\\s+")); - if (!line.startsWith('#') && - !line.startsWith('s') && - !line.startsWith('o') && - !line.startsWith('m') && // mtllib - !line.startsWith('u')) // usemtl + if (!line.startsWith('#') && !line.startsWith('s') && !line.startsWith('o') && !line.startsWith('m') && // mtllib + !line.startsWith('u')) // usemtl { const QString key = line.split(QRegExp("\\s+")).at(0); auto iter = m_keyToFunctionMap.find(key); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshloader.hh dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshloader.hh --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshloader.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshloader.hh 2020-01-06 23:07:24.000000000 +0000 @@ -32,7 +32,6 @@ class MCMeshLoader { public: - struct V { float x, y, z; @@ -65,7 +64,6 @@ const std::vector & textureCoords() const; protected: - void processLine(QString line); void parseV(QString line); @@ -77,10 +75,9 @@ void parseF(QString line); private: + std::map> m_keyToFunctionMap; - std::map > m_keyToFunctionMap; - - std::vector m_v; + std::vector m_v; std::vector m_vn; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshmanager.cc dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshmanager.cc --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshmanager.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshmanager.cc 2020-01-06 23:07:24.000000000 +0000 @@ -35,24 +35,21 @@ { } -MCMesh & MCMeshManager::createMesh( - const MCMeshMetaData & data, const MCMesh::FaceVector & faces) +MCMeshPtr MCMeshManager::createMesh(const MCMeshMetaData & data, const MCMesh::FaceVector & faces) { // Create material - MCGLMaterialPtr material(new MCGLMaterial); + const auto material = std::make_shared(); material->setTexture( - data.texture1 != "" ? - MCAssetManager::surfaceManager().surface(data.texture1).material()->texture(0) : 0, - 0); + data.texture1 != "" ? MCAssetManager::surfaceManager().surface(data.texture1)->material()->texture(0) : 0, + 0); material->setTexture( - data.texture2 != "" ? - MCAssetManager::surfaceManager().surface(data.texture2).material()->texture(0) : 0, - 1); + data.texture2 != "" ? MCAssetManager::surfaceManager().surface(data.texture2)->material()->texture(0) : 0, + 1); // Create a new MCMesh object - MeshPtr mesh(new MCMesh(data.handle, faces, material)); + const auto mesh = std::make_shared(data.handle, faces, material); // Maybe better place for this could be in the material? mesh->setColor(data.color); @@ -64,29 +61,28 @@ m_meshMap[data.handle] = mesh; - return *mesh; + return mesh; } -void MCMeshManager::load( - const std::string & configFilePath, const std::string & baseDataPath) +void MCMeshManager::load(const std::string & configFilePath, const std::string & baseDataPath) { MCMeshConfigLoader configLoader; - MCMeshLoader modelLoader; + MCMeshLoader modelLoader; if (configLoader.load(configFilePath)) { - for (unsigned int i = 0; i < configLoader.meshCount(); i++) + for (size_t i = 0; i < configLoader.meshCount(); i++) { - const MCMeshMetaData & metaData = configLoader.mesh(i); + auto && metaData = configLoader.mesh(i); QString modelPath = - QString(baseDataPath.c_str()) + QDir::separator().toLatin1() + metaData.modelPath.c_str(); + QString(baseDataPath.c_str()) + QDir::separator().toLatin1() + metaData->modelPath.c_str(); modelPath.replace("./", ""); modelPath.replace("//", "/"); if (modelLoader.load(modelPath)) { - createMesh(metaData, modelLoader.faces()); + createMesh(*metaData, modelLoader.faces()); } else { @@ -100,7 +96,7 @@ } } -MCMesh & MCMeshManager::mesh(const std::string & handle) const +MCMeshPtr MCMeshManager::mesh(const std::string & handle) const { // Try to find existing mesh for the handle if (m_meshMap.count(handle) == 0) @@ -109,8 +105,5 @@ } // Yes: return handle for the mesh - MeshPtr mesh = m_meshMap.find(handle)->second; - assert(mesh); - return *mesh; + return m_meshMap.find(handle)->second; } - diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshmanager.hh dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshmanager.hh --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshmanager.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshmanager.hh 2020-01-06 23:07:24.000000000 +0000 @@ -57,42 +57,38 @@ class MCMeshManager { public: - //! Constructor. MCMeshManager(); //! Destructor - virtual ~MCMeshManager() {}; + virtual ~MCMeshManager() + { + } /*! Loads mesh config from strBasePath using the given mapping file strFile. * \param configFilePath Path to the XML-based input file. * \param baseDataPath The absolute search path for an mesh is * baseDataPath + baseModelPath + fileName. baseModelPath and the fileName are * defined in the input file. */ - virtual void load( - const std::string & configFilePath, const std::string & baseDataPath); + virtual void load(const std::string & configFilePath, const std::string & baseDataPath); /*! Returns a mesh object associated with given strId. * MCMeshManager will keep the ownership. * \param handle Handle defined in the mesh config file. * \return Reference to the corresponding MCMesh. * \throws std::runtime_error on failure. */ - MCMesh & mesh( - const std::string & handle) const; + MCMeshPtr mesh(const std::string & handle) const; //! Create a mesh from given meta data and face vector. - MCMesh & createMesh( - const MCMeshMetaData & data, const MCMesh::FaceVector & faces); + MCMeshPtr createMesh(const MCMeshMetaData & data, const MCMesh::FaceVector & faces); private: - - //! Map for resulting mesh objects - typedef std::shared_ptr MeshPtr; - typedef std::unordered_map MeshHash; + typedef std::unordered_map MeshHash; MeshHash m_meshMap; DISABLE_COPY(MCMeshManager); DISABLE_ASSI(MCMeshManager); + DISABLE_MOVE(MCMeshManager); }; #endif // MCMESHMANAGER_HH diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshmetadata.hh dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshmetadata.hh --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshmetadata.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshmetadata.hh 2020-01-06 23:07:24.000000000 +0000 @@ -24,15 +24,13 @@ #include #include +#include #include /*! Mesh metadata structure returned by MCMeshConfigLoader. * MCMeshManager can create MCMesh objects based on this data. */ struct MCMeshMetaData { - MCMeshMetaData() - {} - //! Handle of the mesh. std::string handle; @@ -52,4 +50,6 @@ std::pair scale; }; +using MCMeshDataPtr = std::shared_ptr; + #endif // MCMESHMETADATA_HH diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshobjectdata.cc dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshobjectdata.cc --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshobjectdata.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshobjectdata.cc 2020-01-06 23:07:24.000000000 +0000 @@ -20,7 +20,7 @@ #include "mcmeshobjectdata.hh" MCMeshObjectData::MCMeshObjectData(const std::string & typeId) -: MCSurfaceObjectData(typeId) + : MCSurfaceObjectData(typeId) { } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshobjectdata.hh dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshobjectdata.hh --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcmeshobjectdata.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcmeshobjectdata.hh 2020-01-06 23:07:24.000000000 +0000 @@ -26,7 +26,6 @@ class MCMeshObjectData : public MCSurfaceObjectData { public: - //! Constructor. explicit MCMeshObjectData(const std::string & typeId); @@ -40,7 +39,6 @@ const std::string & meshId() const; private: - DISABLE_COPY(MCMeshObjectData); DISABLE_ASSI(MCMeshObjectData); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfaceconfigloader.cc dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfaceconfigloader.cc --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfaceconfigloader.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfaceconfigloader.cc 2020-01-06 23:07:24.000000000 +0000 @@ -22,23 +22,23 @@ #include #include +#include "mclogger.hh" #include "mcsurfaceconfigloader.hh" #include "mcsurfacemetadata.hh" -#include "mclogger.hh" #include #include MCSurfaceConfigLoader::MCSurfaceConfigLoader() -: m_surfaces() + : m_surfaces() { - m_blendFuncMap["one"] = GL_ONE; - m_blendFuncMap["zero"] = GL_ZERO; - m_blendFuncMap["srcColor"] = GL_SRC_COLOR; + m_blendFuncMap["one"] = GL_ONE; + m_blendFuncMap["zero"] = GL_ZERO; + m_blendFuncMap["srcColor"] = GL_SRC_COLOR; m_blendFuncMap["oneMinusSrcColor"] = GL_ONE_MINUS_SRC_COLOR; - m_blendFuncMap["srcAlpha"] = GL_SRC_ALPHA; + m_blendFuncMap["srcAlpha"] = GL_SRC_ALPHA; m_blendFuncMap["oneMinusSrcAlpha"] = GL_ONE_MINUS_SRC_ALPHA; - m_blendFuncMap["dstColor"] = GL_DST_COLOR; + m_blendFuncMap["dstColor"] = GL_DST_COLOR; m_blendFuncMap["oneMinusDstColor"] = GL_ONE_MINUS_DST_COLOR; } @@ -77,10 +77,7 @@ newData->z3 = z; } else if ( - element.hasAttribute("z0") || - element.hasAttribute("z1") || - element.hasAttribute("z2") || - element.hasAttribute("z3")) + element.hasAttribute("z0") || element.hasAttribute("z1") || element.hasAttribute("z2") || element.hasAttribute("z3")) { newData->z0 = element.attribute("z0", "0").toFloat(); newData->z1 = element.attribute("z1", "0").toFloat(); @@ -132,7 +129,7 @@ newData->colorKey.m_r = element.attribute("r", "0").toUInt(); newData->colorKey.m_g = element.attribute("g", "0").toUInt(); newData->colorKey.m_b = element.attribute("b", "0").toUInt(); - newData->colorKeySet = true; + newData->colorKeySet = true; } } else if (childNode.nodeName() == "alphaBlend") @@ -141,12 +138,13 @@ if (!element.isNull()) { newData->alphaBlend.first.m_src = - alphaBlendStringToEnum( - element.attribute("src", "srcAlpha").toStdString()); + alphaBlendStringToEnum( + element.attribute("src", "srcAlpha").toStdString()); newData->alphaBlend.first.m_dst = - alphaBlendStringToEnum( - element.attribute( - "dst", "srcAlphaMinusOne").toStdString()); + alphaBlendStringToEnum( + element.attribute( + "dst", "srcAlphaMinusOne") + .toStdString()); newData->alphaBlend.second = true; } } @@ -202,10 +200,10 @@ const std::string s = element.attribute("s", "").toStdString(); const std::string t = element.attribute("t", "").toStdString(); - // Windows build hack - #ifndef GL_CLAMP_TO_EDGE - #define GL_CLAMP_TO_EDGE 0x812F - #endif +// Windows build hack +#ifndef GL_CLAMP_TO_EDGE +#define GL_CLAMP_TO_EDGE 0x812F +#endif if (s == "clamp") { @@ -265,11 +263,11 @@ { const std::string baseImagePath = root.attribute("baseImagePath", "./").toStdString(); auto && node = root.firstChild(); - while(!node.isNull() && node.nodeName() == "surface") + while (!node.isNull() && node.nodeName() == "surface") { - SurfaceDataPtr newData(new MCSurfaceMetaData); - auto && element = node.toElement(); - if(!element.isNull()) + auto newData = std::make_shared(); + auto element = node.toElement(); + if (!element.isNull()) { parseAttributes(element, newData, baseImagePath); parseChildNodes(node, newData); @@ -284,14 +282,12 @@ return true; } -GLenum MCSurfaceConfigLoader::alphaBlendStringToEnum( - const std::string & function) const +GLenum MCSurfaceConfigLoader::alphaBlendStringToEnum(const std::string & function) const { try { return m_blendFuncMap.at(function); - } - catch (...) + } catch (...) { throw std::runtime_error("Unknown alpha blend function '" + function + "'"); } @@ -299,14 +295,14 @@ return GL_SRC_ALPHA; } -unsigned int MCSurfaceConfigLoader::surfaceCount() const +size_t MCSurfaceConfigLoader::surfaceCount() const { - return static_cast(m_surfaces.size()); + return m_surfaces.size(); } -const MCSurfaceMetaData & MCSurfaceConfigLoader::surface(unsigned int index) const +const MCSurfaceMetaData & MCSurfaceConfigLoader::surface(size_t index) const { - assert(index < static_cast(m_surfaces.size())); + assert(index < m_surfaces.size()); assert(m_surfaces.at(index)); return *m_surfaces.at(index); } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfaceconfigloader.hh dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfaceconfigloader.hh --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfaceconfigloader.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfaceconfigloader.hh 2020-01-06 23:07:24.000000000 +0000 @@ -20,10 +20,10 @@ #ifndef MCSURFACECONFIGLOADER_HH #define MCSURFACECONFIGLOADER_HH -#include #include -#include #include +#include +#include #include // For GLenum. @@ -36,7 +36,6 @@ class MCSurfaceConfigLoader { public: - //! Constructor. MCSurfaceConfigLoader(); @@ -45,13 +44,12 @@ bool load(const std::string & filePath); //! Get surface count. - unsigned int surfaceCount() const; + size_t surfaceCount() const; //! Get surface data of given index. - const MCSurfaceMetaData & surface(unsigned int index) const; + const MCSurfaceMetaData & surface(size_t index) const; private: - //! Convert alpha blend function string to enum. GLenum alphaBlendStringToEnum(const std::string & function) const; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfacemanager.cc dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfacemanager.cc --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfacemanager.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfacemanager.cc 2020-01-06 23:07:24.000000000 +0000 @@ -22,12 +22,12 @@ #include "mcsurface.hh" #include "mcsurfaceconfigloader.hh" +#include #include #include #include #include #include -#include #include #include @@ -43,43 +43,54 @@ { #ifdef __MC_GLES__ (void)texture_format; - if (false) { + if (false) + { #else - if (texture_format == GL_BGRA) { + if (texture_format == GL_BGRA) + { #endif - if (QSysInfo::ByteOrder == QSysInfo::BigEndian) { + if (QSysInfo::ByteOrder == QSysInfo::BigEndian) + { return ((src_pixel << 24) & 0xff000000) - | ((src_pixel >> 24) & 0x000000ff) - | ((src_pixel << 8) & 0x00ff0000) - | ((src_pixel >> 8) & 0x0000ff00); - } else { + | ((src_pixel >> 24) & 0x000000ff) + | ((src_pixel << 8) & 0x00ff0000) + | ((src_pixel >> 8) & 0x0000ff00); + } + else + { return src_pixel; } - } else { // GL_RGBA - if (QSysInfo::ByteOrder == QSysInfo::BigEndian) { + } + else + { // GL_RGBA + if (QSysInfo::ByteOrder == QSysInfo::BigEndian) + { return (src_pixel << 8) | ((src_pixel >> 24) & 0xff); - } else { + } + else + { return ((src_pixel << 16) & 0xff0000) - | ((src_pixel >> 16) & 0xff) - | (src_pixel & 0xff00ff00); + | ((src_pixel >> 16) & 0xff) + | (src_pixel & 0xff00ff00); } } } // This function is taken from Qt in order to drop dependency to QGLWidget::convertToGLFormat(). -static void convertToGLFormatHelper(QImage &dst, const QImage &img, GLenum texture_format) +static void convertToGLFormatHelper(QImage & dst, const QImage & img, GLenum texture_format) { Q_ASSERT(dst.depth() == 32); Q_ASSERT(img.depth() == 32); - if (dst.size() != img.size()) { + if (dst.size() != img.size()) + { int target_width = dst.width(); int target_height = dst.height(); qreal sx = target_width / qreal(img.width()); qreal sy = target_height / qreal(img.height()); - quint32 *dest = (quint32 *) dst.scanLine(0); // NB! avoid detach here - uchar *srcPixels = (uchar *) img.scanLine(img.height() - 1); + quint32 * dest = (quint32 *)dst.scanLine(0); // NB! avoid detach here + uchar * srcPixels = (uchar *)img.scanLine(img.height() - 1); int sbpl = img.bytesPerLine(); int dbpl = dst.bytesPerLine(); @@ -90,64 +101,85 @@ quint32 srcy = int(0.5 * iy); // scale, swizzle and mirror in one loop - while (target_height--) { - const uint *src = (const quint32 *) (srcPixels - (srcy >> 16) * sbpl); + while (target_height--) + { + const uint * src = (const quint32 *)(srcPixels - (srcy >> 16) * sbpl); int srcx = basex; - for (int x=0; x> 16], texture_format); srcx += ix; } - dest = (quint32 *)(((uchar *) dest) + dbpl); + dest = (quint32 *)(((uchar *)dest) + dbpl); srcy += iy; } - } else { + } + else + { const int width = img.width(); const int height = img.height(); - const uint *p = (const uint*) img.scanLine(img.height() - 1); - uint *q = (uint*) dst.scanLine(0); + const uint * p = (const uint *)img.scanLine(img.height() - 1); + uint * q = (uint *)dst.scanLine(0); #ifdef __MC_GLES__ - if (false) { + if (false) + { #else - if (texture_format == GL_BGRA) { + if (texture_format == GL_BGRA) + { #endif - if (QSysInfo::ByteOrder == QSysInfo::BigEndian) { + if (QSysInfo::ByteOrder == QSysInfo::BigEndian) + { // mirror + swizzle - for (int i=0; i < height; ++i) { - const uint *end = p + width; - while (p < end) { + for (int i = 0; i < height; ++i) + { + const uint * end = p + width; + while (p < end) + { *q = ((*p << 24) & 0xff000000) - | ((*p >> 24) & 0x000000ff) - | ((*p << 8) & 0x00ff0000) - | ((*p >> 8) & 0x0000ff00); + | ((*p >> 24) & 0x000000ff) + | ((*p << 8) & 0x00ff0000) + | ((*p >> 8) & 0x0000ff00); p++; q++; } p -= 2 * width; } - } else { + } + else + { const uint bytesPerLine = img.bytesPerLine(); - for (int i=0; i < height; ++i) { + for (int i = 0; i < height; ++i) + { memcpy(q, p, bytesPerLine); q += width; p -= width; } } - } else { - if (QSysInfo::ByteOrder == QSysInfo::BigEndian) { - for (int i=0; i < height; ++i) { - const uint *end = p + width; - while (p < end) { + } + else + { + if (QSysInfo::ByteOrder == QSysInfo::BigEndian) + { + for (int i = 0; i < height; ++i) + { + const uint * end = p + width; + while (p < end) + { *q = (*p << 8) | ((*p >> 24) & 0xff); p++; q++; } p -= 2 * width; } - } else { - for (int i=0; i < height; ++i) { - const uint *end = p + width; - while (p < end) { + } + else + { + for (int i = 0; i < height; ++i) + { + const uint * end = p + width; + while (p < end) + { *q = ((*p << 16) & 0xff0000) | ((*p >> 16) & 0xff) | (*p & 0xff00ff00); p++; q++; @@ -163,7 +195,40 @@ { } -MCSurface & MCSurfaceManager::createSurfaceFromImage(const MCSurfaceMetaData & data, QImage image) +MCGLColor getAverageColor(QImage image) +{ + std::map colorCounts; + const int scale = 8; + for (int i = 0; i < image.width(); i++) + { + for (int j = 0; j < image.height(); j++) + { + if (((image.pixel(i, j) & 0xff000000) >> 24) > 128) + { + const int r = ((image.pixel(i, j) & 0x00ff0000) >> 16) / scale; + const int g = ((image.pixel(i, j) & 0x0000ff00) >> 8) / scale; + const int b = ((image.pixel(i, j) & 0x000000ff)) / scale; + colorCounts[(r << 16) + (g << 8) + b]++; + } + } + } + int bestColor = 0; + int bestCount = 0; + for (auto && color : colorCounts) + { + if (color.second > bestCount) + { + bestCount = color.second; + bestColor = color.first; + } + } + return MCGLColor( + static_cast(((bestColor & 0xff0000) >> 16) * scale) / 256, + static_cast(((bestColor & 0x00ff00) >> 8) * scale) / 256, + static_cast((bestColor & 0x0000ff) * scale) / 256); +} + +std::shared_ptr MCSurfaceManager::createSurfaceFromImage(const MCSurfaceMetaData & data, QImage image) { if (data.handle.size() == 0) { @@ -174,14 +239,14 @@ // Store original width of the image int origH = data.height.second ? data.height.first : image.height(); - int origW = data.width.second ? data.width.first : image.width(); + int origW = data.width.second ? data.width.first : image.width(); // Create material. Possible secondary textures are taken from surfaces // that are initialized before this surface. MCGLMaterialPtr material(new MCGLMaterial); material->setTexture(create2DTextureFromImage(data, image), 0); - material->setTexture(data.handle2.length() ? surface(data.handle2).material()->texture(0) : 0, 1); - material->setTexture(data.handle3.length() ? surface(data.handle3).material()->texture(0) : 0, 2); + material->setTexture(data.handle2.length() ? surface(data.handle2)->material()->texture(0) : 0, 1); + material->setTexture(data.handle3.length() ? surface(data.handle3)->material()->texture(0) : 0, 2); if (data.specularCoeff.second) { @@ -189,26 +254,24 @@ } // Create a new MCSurface object - MCSurface * surface = - new MCSurface(data.handle, material, origW, origH, data.z0, data.z1, data.z2, data.z3); + const auto surface = std::make_shared(data.handle, material, origW, origH, data.z0, data.z1, data.z2, data.z3); // Maybe better place for this could be in the material? surface->setColor(data.color); + surface->setAverageColor(getAverageColor(image)); - assert(surface); - createSurfaceCommon(*surface, data); + createSurfaceCommon(surface, data); - return *surface; + return surface; } -void MCSurfaceManager::createSurfaceCommon(MCSurface & surface, const MCSurfaceMetaData & data) +void MCSurfaceManager::createSurfaceCommon(std::shared_ptr surface, const MCSurfaceMetaData & data) { // Enable alpha blend, if set - surface.material()->setAlphaBlend( - data.alphaBlend.second, data.alphaBlend.first.m_src, data.alphaBlend.first.m_dst); + surface->material()->setAlphaBlend(data.alphaBlend.second, data.alphaBlend.first.m_src, data.alphaBlend.first.m_dst); // Store MCSurface to map - m_surfaceMap[data.handle] = &surface; + m_surfaceMap[data.handle] = surface; } #ifdef __MC_GLES__ static bool isPowerOfTwo(unsigned int x) @@ -218,9 +281,11 @@ static unsigned int getNearestPowerOfTwo(unsigned int x) { - const std::vector powers = {2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048}; - for (auto power : powers) { - if (power > x) { + const std::vector powers = { 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 }; + for (auto power : powers) + { + if (power > x) + { return power; } } @@ -254,8 +319,7 @@ return image.scaled(width, height); } #endif -GLuint MCSurfaceManager::create2DTextureFromImage( - const MCSurfaceMetaData & data, const QImage & image) +GLuint MCSurfaceManager::create2DTextureFromImage(const MCSurfaceMetaData & data, const QImage & image) { #ifdef __MC_GLES__ QImage textureImage = forceToNearestPowerOfTwoImage(data, image); @@ -349,9 +413,7 @@ } // Edit image data using the information textureImage gives us - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, - glFormattedImage.width(), glFormattedImage.height(), - 0, GL_RGBA, GL_UNSIGNED_BYTE, glFormattedImage.bits()); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, glFormattedImage.width(), glFormattedImage.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, glFormattedImage.bits()); return textureHandle; } @@ -362,9 +424,7 @@ { for (int j = 0; j < textureImage.height(); j++) { - if (colorMatch( textureImage.pixel(i, j) & 0x000000ff, b, 2) && - colorMatch((textureImage.pixel(i, j) & 0x0000ff00) >> 8, g, 2) && - colorMatch((textureImage.pixel(i, j) & 0x00ff0000) >> 16, r, 2)) + if (colorMatch(textureImage.pixel(i, j) & 0x000000ff, b, 2) && colorMatch((textureImage.pixel(i, j) & 0x0000ff00) >> 8, g, 2) && colorMatch((textureImage.pixel(i, j) & 0x00ff0000) >> 16, r, 2)) { textureImage.setPixel(i, j, 0x00000000); } @@ -393,34 +453,30 @@ MCSurfaceManager::~MCSurfaceManager() { // Delete OpenGL textures and Textures - auto iter(m_surfaceMap.begin()); - while (iter != m_surfaceMap.end()) + for (auto && iter : m_surfaceMap) { - if (iter->second) + if (iter.second) { - MCSurface * p = iter->second; - for (unsigned int i = 0; i < MCGLMaterial::MAX_TEXTURES; i++) + const auto surface = iter.second; + for (size_t i = 0; i < MCGLMaterial::MAX_TEXTURES; i++) { - GLuint dummyHandle1 = p->material()->texture(i); + GLuint dummyHandle1 = surface->material()->texture(i); glDeleteTextures(1, &dummyHandle1); } - delete p; } - iter++; } } -void MCSurfaceManager::load( - const std::string & configFilePath, const std::string & baseDataPath) +void MCSurfaceManager::load(const std::string & configFilePath, const std::string & baseDataPath) { MCSurfaceConfigLoader loader; // Parse the texture config file if (loader.load(configFilePath)) { - for (unsigned int i = 0; i < loader.surfaceCount(); i++) + for (size_t i = 0; i < loader.surfaceCount(); i++) { - const MCSurfaceMetaData & metaData = loader.surface(i); + const auto metaData = loader.surface(i); // Load the image and create a 2D texture. Due to possible Android asset URLs, // an explicit QFile-based loading is used instead of directly using QImage::loadFromFile(). @@ -433,10 +489,9 @@ { throw std::runtime_error("Cannot read file '" + path.toStdString() + "'"); } - QByteArray blob = imageFile.readAll(); QImage textureImage; - textureImage.loadFromData(blob); + textureImage.loadFromData(imageFile.readAll()); createSurfaceFromImage(metaData, textureImage); } } @@ -447,16 +502,14 @@ } } -MCSurface & MCSurfaceManager::surface(const std::string & id) const +std::shared_ptr MCSurfaceManager::surface(const std::string & id) const { // Try to find existing texture for the surface - if (m_surfaceMap.count(id) == 0) + if (!m_surfaceMap.count(id)) { throw std::runtime_error("Cannot find texture object for handle '" + id + "'"); } // Yes: return handle for the texture - MCSurface * pSurface = m_surfaceMap.find(id)->second; - assert(pSurface); - return *pSurface; + return m_surfaceMap.find(id)->second; } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfacemanager.hh dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfacemanager.hh --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfacemanager.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfacemanager.hh 2020-01-06 23:07:24.000000000 +0000 @@ -20,6 +20,7 @@ #ifndef MCSURFACEMANAGER_HH #define MCSURFACEMANAGER_HH +#include #include #include @@ -71,7 +72,6 @@ class MCSurfaceManager { public: - //! Consturctor MCSurfaceManager(); @@ -83,25 +83,21 @@ * \param baseDataPath The absolute search path for an image is * baseDataPath + baseImagePath + fileName. baseImagePath and the fileName are * defined in the input file. */ - virtual void load( - const std::string & configFilePath, const std::string & baseDataPath); + virtual void load(const std::string & configFilePath, const std::string & baseDataPath); /*! Returns a surface object associated with given strId. * Corresponding OpenGL texture handle can be obtained * by calling handle() of the resulting MCSurface. - * MCSurfaceManager will keep the ownership. * \param handle Handle defined in the textures XML file. * \return Reference to the corresponding MCSurface. * \throws std::runtime_error on failure. */ - MCSurface & surface( - const std::string & handle) const; + std::shared_ptr surface(const std::string & handle) const; /*! Creates an MCSurface containing an OpenGL texture from a QImage + texture meta data. * MCSurfaceManager keeps the ownership. */ - MCSurface & createSurfaceFromImage(const MCSurfaceMetaData & data, QImage image); + std::shared_ptr createSurfaceFromImage(const MCSurfaceMetaData & data, QImage image); private: - //! Apply alpha clamp (set alpha values off based on the given limit). void applyAlphaClamp(QImage & textureImage, unsigned int a) const; @@ -112,10 +108,10 @@ GLuint create2DTextureFromImage(const MCSurfaceMetaData & data, const QImage & image); //! Helper to set surface meta data. - void createSurfaceCommon(MCSurface & surface, const MCSurfaceMetaData & data); + void createSurfaceCommon(std::shared_ptr surface, const MCSurfaceMetaData & data); //! Map for resulting surface objects - typedef std::unordered_map SurfaceHash; + typedef std::unordered_map> SurfaceHash; SurfaceHash m_surfaceMap; DISABLE_COPY(MCSurfaceManager); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfacemetadata.hh dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfacemetadata.hh --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfacemetadata.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfacemetadata.hh 2020-01-06 23:07:24.000000000 +0000 @@ -22,8 +22,8 @@ #include "mcvector2d.hh" -#include // For GLenum #include +#include // For GLenum #include #include diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfaceobjectdata.cc dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfaceobjectdata.cc --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfaceobjectdata.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfaceobjectdata.cc 2020-01-06 23:07:24.000000000 +0000 @@ -20,9 +20,9 @@ #include "mcsurfaceobjectdata.hh" MCSurfaceObjectData::MCSurfaceObjectData(const std::string & typeId) -: MCObjectData(typeId) -, m_surfaceId(typeId) -, m_defaultCircleShape(false) + : MCObjectData(typeId) + , m_surfaceId(typeId) + , m_defaultCircleShape(false) { } @@ -41,7 +41,9 @@ m_defaultCircleShape = state; } -bool MCSurfaceObjectData::defaultCirleShape() const +bool MCSurfaceObjectData::defaultCircleShape() const { return m_defaultCircleShape; } + +MCSurfaceObjectData::~MCSurfaceObjectData() = default; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfaceobjectdata.hh dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfaceobjectdata.hh --- dustrac-2.0.1/src/game/MiniCore/src/Asset/mcsurfaceobjectdata.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Asset/mcsurfaceobjectdata.hh 2020-01-06 23:07:24.000000000 +0000 @@ -29,12 +29,11 @@ class MCSurfaceObjectData : public MCObjectData { public: - //! Constructor. explicit MCSurfaceObjectData(const std::string & typeId); //! Destructor. - virtual ~MCSurfaceObjectData() {}; + virtual ~MCSurfaceObjectData(); //! Set the id of the already created MCSurface. void setSurfaceId(const std::string & id); @@ -46,10 +45,9 @@ void setDefaultCircleShape(bool state); //! Returns true if default circle shape is wanted. - bool defaultCirleShape() const; + bool defaultCircleShape() const; private: - DISABLE_COPY(MCSurfaceObjectData); DISABLE_ASSI(MCSurfaceObjectData); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/CMakeLists.txt dustrac-2.0.5/src/game/MiniCore/src/CMakeLists.txt --- dustrac-2.0.1/src/game/MiniCore/src/CMakeLists.txt 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/CMakeLists.txt 2020-01-06 23:07:24.000000000 +0000 @@ -71,6 +71,7 @@ Physics/mcoutofboundariesevent.cc Physics/mcphysicscomponent.cc Physics/mcrectshape.cc +Physics/mcseparationevent.cc Physics/mcshape.cc Physics/mcspringforcegenerator.cc Physics/mcspringforcegenerator2dfast.cc @@ -88,8 +89,8 @@ set(MiniCoreTargetName MiniCore) add_library(${MiniCoreTargetName} ${MiniCoreSRC}) -target_link_libraries(${MiniCoreTargetName} Qt5::Core Qt5::OpenGL Qt5::Xml) -set_property(TARGET ${MiniCoreTargetName} PROPERTY CXX_STANDARD 11) +target_link_libraries(${MiniCoreTargetName} Qt5::Core Qt5::OpenGL Qt5::Xml ${MINICORE_OPENGL_LIBS}) +set_property(TARGET ${MiniCoreTargetName} PROPERTY CXX_STANDARD 14) add_subdirectory(UnitTests) diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcbbox3d.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcbbox3d.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcbbox3d.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcbbox3d.hh 2020-01-06 23:07:24.000000000 +0000 @@ -24,82 +24,143 @@ #include "mcvector3d.hh" //! Bounding box structure in 3d -template +template class MCBBox3d { public: - //! Constructor - MCBBox3d() : - m_x1(0), m_y1(0), m_z1(0), - m_x2(0), m_y2(0), m_z2(0) - {} + MCBBox3d() + : m_x1(0) + , m_y1(0) + , m_z1(0) + , m_x2(0) + , m_y2(0) + , m_z2(0) + { + } //! Constructor - MCBBox3d(T x1, T y1, T z1, T x2, T y2, T z2) : - m_x1(x1), m_y1(y1), m_z1(z1), - m_x2(x2), m_y2(y2), m_z2(z2) - {} + MCBBox3d(T x1, T y1, T z1, T x2, T y2, T z2) + : m_x1(x1) + , m_y1(y1) + , m_z1(z1) + , m_x2(x2) + , m_y2(y2) + , m_z2(z2) + { + } //! Copy constructor - template - MCBBox3d(const MCBBox3d & r) : - m_x1(r.x1()), m_y1(r.y1()), m_z1(r.z1()), - m_x2(r.x2()), m_y2(r.y2()), m_z2(r.z2()) - {} + template + MCBBox3d(const MCBBox3d & r) + : m_x1(r.x1()) + , m_y1(r.y1()) + , m_z1(r.z1()) + , m_x2(r.x2()) + , m_y2(r.y2()) + , m_z2(r.z2()) + { + } //! Move constructor - template - MCBBox3d(const MCBBox3d && r) : - m_x1(r.x1()), m_y1(r.y1()), m_z1(r.z1()), - m_x2(r.x2()), m_y2(r.y2()), m_z2(r.z2()) - {} + template + MCBBox3d(const MCBBox3d && r) + : m_x1(r.x1()) + , m_y1(r.y1()) + , m_z1(r.z1()) + , m_x2(r.x2()) + , m_y2(r.y2()) + , m_z2(r.z2()) + { + } //! Get the leftmost x - inline T x1() const {return m_x1;} + inline T x1() const + { + return m_x1; + } //! Get the lower y - inline T y1() const {return m_y1;} + inline T y1() const + { + return m_y1; + } //! Get the rightmost x - inline T x2() const {return m_x2;} + inline T x2() const + { + return m_x2; + } //! Get the higher y - inline T y2() const {return m_y2;} + inline T y2() const + { + return m_y2; + } //! Get the lower z - inline T z1() const {return m_z1;} + inline T z1() const + { + return m_z1; + } //! Get the higher z - inline T z2() const {return m_z2;} + inline T z2() const + { + return m_z2; + } //! Get width - inline T width() const {return m_x2 - m_x1;} + inline T width() const + { + return m_x2 - m_x1; + } //! Get height - inline T height() const {return m_y2 - m_y1;} + inline T height() const + { + return m_y2 - m_y1; + } //! Set the leftmost x - void setX1(T v) {m_x1 = v;} + void setX1(T v) + { + m_x1 = v; + } //! Set the lower y - void setY1(T v) {m_y1 = v;} + void setY1(T v) + { + m_y1 = v; + } //! Set the rightmost x - void setX2(T v) {m_x2 = v;} + void setX2(T v) + { + m_x2 = v; + } //! Set the higher y - void setY2(T v) {m_y2 = v;} + void setY2(T v) + { + m_y2 = v; + } //! Set the lower z - void setZ1(T v) {m_z1 = v;} + void setZ1(T v) + { + m_z1 = v; + } //! Set the higher z - void setZ2(T v) {m_z2 = v;} + void setZ2(T v) + { + m_z2 = v; + } //! Assignment operator - template - MCBBox3d & operator =(const MCBBox3d & r) + template + MCBBox3d & operator=(const MCBBox3d & r) { if (reinterpret_cast(const_cast *>(&r)) != reinterpret_cast(this)) { @@ -115,8 +176,8 @@ } //! Move assignment operator - template - MCBBox3d & operator =(const MCBBox3d && r) + template + MCBBox3d & operator=(const MCBBox3d && r) { m_x1 = r.x1(); m_x2 = r.x2(); @@ -129,40 +190,52 @@ } //! Test if MCBBox3d intersects another one - template + template bool intersects(const MCBBox3d & r) const { - if (r.x1() >= m_x2) {return false;} - if (r.x2() <= m_x1) {return false;} - if (r.y1() >= m_y2) {return false;} - if (r.y2() <= m_y1) {return false;} - if (r.z1() >= m_z2) {return false;} - if (r.z2() <= m_z1) {return false;} + if (r.x1() >= m_x2) + { + return false; + } + if (r.x2() <= m_x1) + { + return false; + } + if (r.y1() >= m_y2) + { + return false; + } + if (r.y2() <= m_y1) + { + return false; + } + if (r.z1() >= m_z2) + { + return false; + } + if (r.z2() <= m_z1) + { + return false; + } return true; } //! Test if MCBBox3d contains another one - template + template bool contains(const MCBBox3d & r) const { - return - r.x1() >= m_x1 && r.x2() <= m_x2 && - r.y1() >= m_y1 && r.y2() <= m_y2 && - r.z1() >= m_z1 && r.z2() <= m_z2; + return r.x1() >= m_x1 && r.x2() <= m_x2 && r.y1() >= m_y1 && r.y2() <= m_y2 && r.z1() >= m_z1 && r.z2() <= m_z2; } //! Test if MCBBox3d contains given point - template + template bool contains(const MCVector3d & r) const { - return - r.i() >= m_x1 && r.i() <= m_x2 && - r.j() >= m_y1 && r.j() <= m_y2 && - r.k() >= m_z1 && r.k() <= m_z2; + return r.i() >= m_x1 && r.i() <= m_x2 && r.j() >= m_y1 && r.j() <= m_y2 && r.k() >= m_z1 && r.k() <= m_z2; } //! Translate. - template + template void translate(const MCVector3d & r) { m_x1 += r.i(); @@ -179,7 +252,6 @@ } private: - //! Vertex coordinates T m_x1, m_y1, m_z1, m_x2, m_y2, m_z2; }; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcbbox.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcbbox.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcbbox.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcbbox.hh 2020-01-06 23:07:24.000000000 +0000 @@ -13,94 +13,144 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, // MA 02110-1301, USA. // #ifndef MCBBOX_HH #define MCBBOX_HH -#include #include "mcvector2d.hh" #include "mcvector3d.hh" +#include //! Bounding box structure in 2d -template +template class MCBBox { public: - //! Constructor - MCBBox() : - m_x1(0), m_y1(0), - m_x2(0), m_y2(0) - {} + MCBBox() + : m_x1(0) + , m_y1(0) + , m_x2(0) + , m_y2(0) + { + } //! Constructor - MCBBox(const MCVector2d & v1_, T width_, T height_) : - m_x1(v1_.i()), m_y1(v1_.j()), - m_x2(m_x1 + width_), m_y2(m_y1 + height_) - {} + MCBBox(const MCVector2d & v1_, T width_, T height_) + : m_x1(v1_.i()) + , m_y1(v1_.j()) + , m_x2(m_x1 + width_) + , m_y2(m_y1 + height_) + { + } //! Constructor - MCBBox(T x1_, T y1_, T x2_, T y2_) : - m_x1(x1_), m_y1(y1_), - m_x2(x2_), m_y2(y2_) - {} + MCBBox(T x1_, T y1_, T x2_, T y2_) + : m_x1(x1_) + , m_y1(y1_) + , m_x2(x2_) + , m_y2(y2_) + { + } //! Copy constructor - template - MCBBox(const MCBBox & r) : - m_x1(r.x1()), m_y1(r.y1()), - m_x2(r.x2()), m_y2(r.y2()) - {} + template + MCBBox(const MCBBox & r) + : m_x1(r.x1()) + , m_y1(r.y1()) + , m_x2(r.x2()) + , m_y2(r.y2()) + { + } //! Move constructor - template - MCBBox(const MCBBox && r) : - m_x1(r.x1()), m_y1(r.y1()), - m_x2(r.x2()), m_y2(r.y2()) - {} + template + MCBBox(const MCBBox && r) + : m_x1(r.x1()) + , m_y1(r.y1()) + , m_x2(r.x2()) + , m_y2(r.y2()) + { + } //! Get the leftmost x - inline T x1() const {return m_x1;} + inline T x1() const + { + return m_x1; + } //! Get the lower y - inline T y1() const {return m_y1;} + inline T y1() const + { + return m_y1; + } //! Get the rightmost x - inline T x2() const {return m_x2;} + inline T x2() const + { + return m_x2; + } //! Get the higher y - inline T y2() const {return m_y2;} + inline T y2() const + { + return m_y2; + } //! Get the leftmost vertex - const MCVector2d v1() const {return MCVector2d(m_x1, m_y1);} + const MCVector2d v1() const + { + return MCVector2d(m_x1, m_y1); + } //! Get the rightmost vertex - const MCVector2d v2() const {return MCVector2d(m_x2, m_y2);} + const MCVector2d v2() const + { + return MCVector2d(m_x2, m_y2); + } //! Get width - inline T width() const {return m_x2 - m_x1;} + inline T width() const + { + return m_x2 - m_x1; + } //! Get height - inline T height() const {return m_y2 - m_y1;} + inline T height() const + { + return m_y2 - m_y1; + } //! Set the leftmost x - void setX1(T v) {m_x1 = v;} + void setX1(T v) + { + m_x1 = v; + } //! Set the lower y - void setY1(T v) {m_y1 = v;} + void setY1(T v) + { + m_y1 = v; + } //! Set the rightmost x - void setX2(T v) {m_x2 = v;} + void setX2(T v) + { + m_x2 = v; + } //! Set the higher y - void setY2(T v) {m_y2 = v;} + void setY2(T v) + { + m_y2 = v; + } //! Assignment operator - template - MCBBox & operator =(const MCBBox & r) + template + MCBBox & operator=(const MCBBox & r) { if (reinterpret_cast(const_cast *>(&r)) != reinterpret_cast(this)) { @@ -114,8 +164,8 @@ } //! Move assignment operator - template - MCBBox & operator =(const MCBBox && r) + template + MCBBox & operator=(const MCBBox && r) { m_x1 = r.x1(); m_x2 = r.x2(); @@ -129,43 +179,55 @@ static MCBBox unionBBox(const MCBBox & l, const MCBBox & r) { return MCBBox(std::min(l.m_x1, r.m_x1), std::min(l.m_y1, r.m_y1), - std::max(l.m_x2, r.m_x2), std::max(l.m_y2, r.m_y2)); + std::max(l.m_x2, r.m_x2), std::max(l.m_y2, r.m_y2)); } //! Test if MCBBox intersects another one - template + template bool intersects(const MCBBox & r) const { - if (r.x1() >= m_x2) {return false;} - if (r.x2() <= m_x1) {return false;} - if (r.y1() >= m_y2) {return false;} - if (r.y2() <= m_y1) {return false;} + if (r.x1() >= m_x2) + { + return false; + } + if (r.x2() <= m_x1) + { + return false; + } + if (r.y1() >= m_y2) + { + return false; + } + if (r.y2() <= m_y1) + { + return false; + } return true; } //! Test if MCBBox contains another one - template + template bool contains(const MCBBox & r) const { return r.x1() >= m_x1 && r.x2() <= m_x2 && r.y1() >= m_y1 && r.y2() <= m_y2; } //! Test if MCBBox contains given point - template + template bool contains(const MCVector2d & r) const { return r.i() >= m_x1 && r.i() <= m_x2 && r.j() >= m_y1 && r.j() <= m_y2; } //! Test if MCBBox contains given point - template + template bool contains(const MCVector3d & r) const { return r.i() >= m_x1 && r.i() <= m_x2 && r.j() >= m_y1 && r.j() <= m_y2; } //! Translate. - template + template void translate(const MCVector2d & r) { m_x1 += r.i(); @@ -175,7 +237,7 @@ } //! Translate. - template + template void translate(const MCVector3d & r) { m_x1 += r.i(); @@ -185,21 +247,20 @@ } //! Get translated. - template + template MCBBox translated(const MCVector2d & r) const { return MCBBox(m_x1 + r.i(), m_y1 + r.j(), m_x2 + r.i(), m_y2 + r.j()); } //! Get translated. - template + template MCBBox translated(const MCVector3d & r) const { return MCBBox(m_x1 + r.i(), m_y1 + r.j(), m_x2 + r.i(), m_y2 + r.j()); } private: - //! Vertex coordinates T m_x1, m_y1, m_x2, m_y2; }; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mccast.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mccast.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mccast.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mccast.hh 2020-01-06 23:07:24.000000000 +0000 @@ -13,7 +13,7 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, // MA 02110-1301, USA. // diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcevent.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mcevent.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcevent.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcevent.cc 2020-01-06 23:07:24.000000000 +0000 @@ -23,8 +23,9 @@ unsigned int MCEvent::m_typeCount = 0; MCEvent::MCEvent() -: m_accepted(false) -{} + : m_accepted(false) +{ +} unsigned int MCEvent::registerType() { @@ -47,4 +48,5 @@ } MCEvent::~MCEvent() -{} +{ +} diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcevent.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcevent.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcevent.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcevent.hh 2020-01-06 23:07:24.000000000 +0000 @@ -28,37 +28,36 @@ class MCEvent { public: - //! Constructor - MCEvent(); + //! Constructor + MCEvent(); - //! Destructor - virtual ~MCEvent(); + //! Destructor + virtual ~MCEvent(); - /*! Register a new event type + /*! Register a new event type * \return The new unique type ID */ - static unsigned int registerType(); + static unsigned int registerType(); - //! Return class-wide type id - virtual unsigned int instanceTypeId() const = 0; + //! Return class-wide type id + virtual unsigned int instanceTypeId() const = 0; - //! Accept the event. - void accept(); + //! Accept the event. + void accept(); - //! Ignore the event. This is the default state. - void ignore(); + //! Ignore the event. This is the default state. + void ignore(); - //! Return true, if event was accepted. - bool accepted() const; + //! Return true, if event was accepted. + bool accepted() const; private: + DISABLE_COPY(MCEvent); + DISABLE_ASSI(MCEvent); - DISABLE_COPY(MCEvent); - DISABLE_ASSI(MCEvent); + static unsigned int m_typeCount; - static unsigned int m_typeCount; - - bool m_accepted; + bool m_accepted; }; #endif // MCEVENT_HH diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mclogger.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mclogger.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mclogger.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mclogger.cc 2020-01-06 23:07:24.000000000 +0000 @@ -28,9 +28,9 @@ #include #endif -bool MCLogger::m_echoMode = false; -bool MCLogger::m_dateTime = true; -FILE * MCLogger::m_file = nullptr; +bool MCLogger::m_echoMode = false; +bool MCLogger::m_dateTime = true; +FILE * MCLogger::m_file = nullptr; MCLogger::MCLogger() { diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mclogger.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mclogger.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mclogger.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mclogger.hh 2020-01-06 23:07:24.000000000 +0000 @@ -40,7 +40,6 @@ class MCLogger { public: - //! Constructor. MCLogger(); @@ -74,7 +73,6 @@ std::ostringstream & fatal(); private: - DISABLE_COPY(MCLogger); DISABLE_ASSI(MCLogger); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcmacros.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcmacros.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcmacros.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcmacros.hh 2020-01-06 23:07:24.000000000 +0000 @@ -13,7 +13,7 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, // MA 02110-1301, USA. // @@ -23,7 +23,10 @@ //! Disable copy constructor #define DISABLE_COPY(className) className(const className & r) = delete -//! Disable assignment / assignment +//! Disable assignment #define DISABLE_ASSI(className) className & operator=(const className & r) = delete +//! Disable move +#define DISABLE_MOVE(className) className & operator=(const className && r) = delete + #endif // MCMACROS_HH diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcmathutil.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mcmathutil.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcmathutil.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcmathutil.cc 2020-01-06 23:07:24.000000000 +0000 @@ -22,18 +22,16 @@ float MCMathUtil::rotatedX(float x0, float y0, float angle) { - return MCTrigonom::cos(angle) * x0 - - MCTrigonom::sin(angle) * y0; + return MCTrigonom::cos(angle) * x0 - MCTrigonom::sin(angle) * y0; } float MCMathUtil::rotatedY(float x0, float y0, float angle) { - return MCTrigonom::sin(angle) * x0 + - MCTrigonom::cos(angle) * y0; + return MCTrigonom::sin(angle) * x0 + MCTrigonom::cos(angle) * y0; } void MCMathUtil::rotateVector( - const MCVector2dF & v0, MCVector2dF & v1, float angle) + const MCVector2dF & v0, MCVector2dF & v1, float angle) { const float sin = MCTrigonom::sin(angle); const float cos = MCTrigonom::cos(angle); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcmathutil.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcmathutil.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcmathutil.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcmathutil.hh 2020-01-06 23:07:24.000000000 +0000 @@ -13,7 +13,7 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, // MA 02110-1301, USA. // @@ -33,14 +33,13 @@ using std::max; -#include "mcvector2d.hh" #include "mcsegment.hh" +#include "mcvector2d.hh" //! Miscellaneous math utilities. class MCMathUtil { public: - enum class Sign { Negative, @@ -49,15 +48,15 @@ }; //! \returns the absolute of x. - template + template inline static T abs(T x); //! \returns true if x == y. Can be used with integers / floats. - template + template inline static bool equals(T x, T y); //! \returns the sign of x. - template + template inline static MCMathUtil::Sign sign(T x); //! \returns true if the given segments cross. @@ -82,7 +81,7 @@ static MCVector2dF rotatedVector(const MCVector2dF & v0, float angle); }; -template +template bool MCMathUtil::equals(T x, T y) { if (numeric_limits::is_exact) @@ -103,7 +102,7 @@ } } -template +template MCMathUtil::Sign MCMathUtil::sign(T x) { if (x < 0) @@ -120,11 +119,10 @@ } } -template +template T MCMathUtil::abs(T x) { return x < 0 ? -x : x; } #endif // MCMATHUTIL_HH - diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcobbox.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcobbox.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcobbox.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcobbox.hh 2020-01-06 23:07:24.000000000 +0000 @@ -21,11 +21,12 @@ #define MCOBBOX_HH #include "mcbbox.hh" -#include "mcvector2d.hh" -#include "mctrigonom.hh" #include "mcmathutil.hh" +#include "mctrigonom.hh" +#include "mcvector2d.hh" #include +#include /*! \class MCOBBox * \brief Oriented bounding-box template @@ -36,11 +37,10 @@ * | | * v0--v3 */ -template +template class MCOBBox { public: - //! Constructor. MCOBBox(); @@ -76,10 +76,16 @@ } //! Return current half width - inline T hx() const {return m_hx;} + inline T hx() const + { + return m_hx; + } //! Return current half height - inline T hy() const {return m_hy;} + inline T hy() const + { + return m_hy; + } //! Return given vertex inline MCVector2d vertex(unsigned int index) const @@ -98,13 +104,13 @@ /*! Return true if intersects with given MCOBBox * \param r The MCOBBox to be tested */ - template + template bool intersects(const MCOBBox & r) const; /*! Return true if intersects with given BBox * \param r The BBox to be tested */ - template + template bool intersects(const MCBBox & r) const; /*! Rotate @@ -121,7 +127,6 @@ void scale(T s); private: - //! Initial half X-axis T m_hx; @@ -135,93 +140,78 @@ float m_a; //! Vertex vectors - MCVector2d m_v[4]; + std::array, 4> m_v; }; typedef MCOBBox MCOBBoxF; -template +template MCOBBox::MCOBBox() -: m_hx(0) -, m_hy(0) -, m_p(0, 0) -, m_a(0) + : m_hx(0) + , m_hy(0) + , m_p(0, 0) + , m_a(0) { } -template +template MCOBBox::MCOBBox(T newHx, T newHy, const MCVector2d & loc) -: m_hx(newHx) -, m_hy(newHy) -, m_p(loc) -, m_a(0) -{ - m_v[0] = MCVector2d(-m_hx, -m_hy); - m_v[1] = MCVector2d(-m_hx, m_hy); - m_v[2] = MCVector2d( m_hx, m_hy); - m_v[3] = MCVector2d( m_hx, -m_hy); + : m_hx(newHx) + , m_hy(newHy) + , m_p(loc) + , m_a(0) + , m_v({ MCVector2d(-m_hx, -m_hy), MCVector2d(-m_hx, m_hy), MCVector2d(m_hx, m_hy), MCVector2d(m_hx, -m_hy) }) +{ } -template +template MCOBBox::MCOBBox(const MCOBBox & other) -: m_hx(other.m_hx) -, m_hy(other.m_hy) -, m_p(other.m_p) -, m_a(other.m_a) -{ - m_v[0] = other.m_v[0]; - m_v[1] = other.m_v[1]; - m_v[2] = other.m_v[2]; - m_v[3] = other.m_v[3]; + : m_hx(other.m_hx) + , m_hy(other.m_hy) + , m_p(other.m_p) + , m_a(other.m_a) + , m_v({ other.m_v[0], other.m_v[1], other.m_v[2], other.m_v[3] }) +{ } -template +template MCOBBox::MCOBBox(const MCOBBox && other) -: m_hx(other.m_hx) -, m_hy(other.m_hy) -, m_p(other.m_p) -, m_a(other.m_a) -{ - std::swap(m_v[0], other.m_v[0]); - std::swap(m_v[1], other.m_v[1]); - std::swap(m_v[2], other.m_v[2]); - std::swap(m_v[3], other.m_v[3]); + : m_hx(other.m_hx) + , m_hy(other.m_hy) + , m_p(other.m_p) + , m_a(other.m_a) +{ + std::swap(m_v, other.m_v); } -template +template MCOBBox & MCOBBox::operator=(const MCOBBox & other) { if (this != &other) { - m_hx = other.m_hx; - m_hy = other.m_hy; - m_p = other.m_p; - m_a = other.m_a; - m_v[0] = other.m_v[0]; - m_v[1] = other.m_v[1]; - m_v[2] = other.m_v[2]; - m_v[3] = other.m_v[3]; + m_hx = other.m_hx; + m_hy = other.m_hy; + m_p = other.m_p; + m_a = other.m_a; + m_v = other.m_v; } return *this; } -template +template MCOBBox & MCOBBox::operator=(const MCOBBox && other) { - m_hx = other.m_hx; - m_hy = other.m_hy; - m_p = other.m_p; - m_a = other.m_a; - m_v[0] = other.m_v[0]; - m_v[1] = other.m_v[1]; - m_v[2] = other.m_v[2]; - m_v[3] = other.m_v[3]; + m_hx = other.m_hx; + m_hy = other.m_hy; + m_p = other.m_p; + m_a = other.m_a; + m_v = other.m_v; return *this; } -template +template bool MCOBBox::contains(MCVector2d p) const { // Translate the test point @@ -234,7 +224,7 @@ const MCVector2d e3 = m_v[0] - m_v[3]; // Do the test by using cross products. - const MCMathUtil::Sign ref = MCMathUtil::sign(e0 % (m_v[1] - p)); + const MCMathUtil::Sign ref = MCMathUtil::sign(e0 % (m_v[1] - p)); const MCMathUtil::Sign e1v2 = MCMathUtil::sign(e1 % (m_v[2] - p)); const MCMathUtil::Sign e2v3 = MCMathUtil::sign(e2 % (m_v[3] - p)); const MCMathUtil::Sign e3v0 = MCMathUtil::sign(e3 % (m_v[0] - p)); @@ -272,7 +262,7 @@ return false; } -template +template void MCOBBox::rotate(float a) { if (a != m_a) @@ -283,7 +273,7 @@ // Update vertex vectors. Note that the original // vertex vectors must be used as the source. MCMathUtil::rotateVector(MCVector2d(-m_hx, -m_hy), m_v[0], m_a); - MCMathUtil::rotateVector(MCVector2d(-m_hx, m_hy), m_v[1], m_a); + MCMathUtil::rotateVector(MCVector2d(-m_hx, m_hy), m_v[1], m_a); // Mirror the other two vertices m_v[2].setI(-m_v[0].i()); @@ -293,31 +283,25 @@ } } -template +template void MCOBBox::translate(const MCVector2d & p) { m_p = p; } -template -template +template +template bool MCOBBox::intersects(const MCOBBox & r) const { // Test if r includes at least one vertice - if (r.contains(m_p + m_v[0]) || - r.contains(m_p + m_v[1]) || - r.contains(m_p + m_v[2]) || - r.contains(m_p + m_v[3])) + if (r.contains(m_p + m_v[0]) || r.contains(m_p + m_v[1]) || r.contains(m_p + m_v[2]) || r.contains(m_p + m_v[3])) { // Yes: intersection return true; } // Test if this includes at least one of r's vertices else if ( - contains(r.m_p + r.m_v[0]) || - contains(r.m_p + r.m_v[1]) || - contains(r.m_p + r.m_v[2]) || - contains(r.m_p + r.m_v[3])) + contains(r.m_p + r.m_v[0]) || contains(r.m_p + r.m_v[1]) || contains(r.m_p + r.m_v[2]) || contains(r.m_p + r.m_v[3])) { // Yes: intersection return true; @@ -327,25 +311,19 @@ return false; } -template -template +template +template bool MCOBBox::intersects(const MCBBox & r) const { // Test if r includes at least one vertice - if (r.contains(m_p + m_v[0]) || - r.contains(m_p + m_v[1]) || - r.contains(m_p + m_v[2]) || - r.contains(m_p + m_v[3])) + if (r.contains(m_p + m_v[0]) || r.contains(m_p + m_v[1]) || r.contains(m_p + m_v[2]) || r.contains(m_p + m_v[3])) { // Yes: intersection return true; } // Test if this includes at least one of r's vertices else if ( - contains(MCVector2d(r.x1, r.y1)) || - contains(MCVector2d(r.x1, r.y2)) || - contains(MCVector2d(r.x2, r.y1)) || - contains(MCVector2d(r.x2, r.y2))) + contains(MCVector2d(r.x1, r.y1)) || contains(MCVector2d(r.x1, r.y2)) || contains(MCVector2d(r.x2, r.y1)) || contains(MCVector2d(r.x2, r.y2))) { // Yes: intersection return true; @@ -355,7 +333,7 @@ return false; } -template +template MCBBox MCOBBox::bbox() const { const MCVector2d v0p = m_v[0] + m_p; @@ -364,17 +342,17 @@ const MCVector2d v3p = m_v[3] + m_p; return MCBBox( - std::min(std::min(v0p.i(), v1p.i()), std::min(v2p.i(), v3p.i())), - std::min(std::min(v0p.j(), v1p.j()), std::min(v2p.j(), v3p.j())), - std::max(std::max(v0p.i(), v1p.i()), std::max(v2p.i(), v3p.i())), - std::max(std::max(v0p.j(), v1p.j()), std::max(v2p.j(), v3p.j()))); + std::min(std::min(v0p.i(), v1p.i()), std::min(v2p.i(), v3p.i())), + std::min(std::min(v0p.j(), v1p.j()), std::min(v2p.j(), v3p.j())), + std::max(std::max(v0p.i(), v1p.i()), std::max(v2p.i(), v3p.i())), + std::max(std::max(v0p.j(), v1p.j()), std::max(v2p.j(), v3p.j()))); } -template +template void MCOBBox::scale(T s) { - m_hx *= s; - m_hy *= s; + m_hx *= s; + m_hy *= s; m_v[0] *= s; m_v[1] *= s; m_v[2] *= s; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcobject.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mcobject.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcobject.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcobject.cc 2020-01-06 23:07:24.000000000 +0000 @@ -26,122 +26,758 @@ #include "mcoutofboundariesevent.hh" #include "mcphysicscomponent.hh" #include "mcrectshape.hh" +#include "mcseparationevent.hh" #include "mcshapeview.hh" #include "mcsurface.hh" +#include "mcsurfaceview.hh" #include "mctimerevent.hh" #include "mctrigonom.hh" -#include "mcsurfaceview.hh" #include "mcworld.hh" #include "mcworldrenderer.hh" -#include +#include +#include +#include +#include +#include + +class MCObject::Impl +{ +public: + enum class StatusBit + { + BypassCollisions = 1, + Particle = 2, + PhysicsObject = 3, + Removing = 4, + Renderable = 5, + TriggerObject = 6 + }; + + Impl(MCObject & parent, const std::string & typeName) + : m_typeId(Impl::m_typeRegistry.registerType(typeName)) + , m_typeName(typeName) + , m_this(parent) + , m_parent(&parent) + , m_physicsComponent(std::make_unique()) + { + setStatus(StatusBit::Renderable, true); + setStatus(StatusBit::PhysicsObject, true); + m_physicsComponent->setObject(m_this); + } + + Impl(MCObject & parent, MCShapePtr shape, const std::string & typeName) + : Impl(parent, typeName) + { + setShape(shape); + } + + Impl(MCObject & parent, MCSurfacePtr surface, const std::string & typeName) + : Impl(parent, typeName) + { + // Create an MCRectShape using surface with an MCSurfaceView + setShape( + std::make_shared( + std::make_shared(surface->handle(), surface), surface->width(), surface->height())); + } + + void addToWorld() + { + MCWorld::instance().addObject(m_this); + + for (auto child : m_children) + { + MCWorld::instance().addObject(*child); + } + } + + void addToWorld(float x, float y, float z) + { + MCWorld::instance().addObject(m_this); + + for (auto child : m_children) + { + MCWorld::instance().addObject(*child); + } + + translate(MCVector3dF(x, y, z)); + } + + void removeFromWorld() + { + if (MCWorld::hasInstance()) + { + MCWorld::instance().removeObject(m_this); + + for (auto child : m_children) + { + MCWorld::instance().removeObjectNow(*child); + } + } + } + + void removeFromWorldNow() + { + if (MCWorld::hasInstance()) + { + MCWorld::instance().removeObjectNow(m_this); + + for (auto child : m_children) + { + MCWorld::instance().removeObjectNow(*child); + } + } + } + + void checkBoundaries() + { + // Use shape bbox if shape is defined. + if (m_shape) + { + checkXBoundariesAndSendEvent(m_shape->bbox().x1(), m_shape->bbox().x2()); + checkYBoundariesAndSendEvent(m_shape->bbox().y1(), m_shape->bbox().y2()); + } + else + { + // By default use the center point as the test point. + checkXBoundariesAndSendEvent(m_location.i() - m_center.i(), m_location.i() - m_center.i()); + checkYBoundariesAndSendEvent(m_location.j() - m_center.j(), m_location.j() - m_center.j()); + } + + checkZBoundariesAndSendEvent(); + } + + static size_t getTypeIdForName(const std::string & typeName) + { + return Impl::m_typeRegistry.getTypeIdForName(typeName); + } + + const std::string & typeName() const + { + return m_typeName; + } + + void addChildObject(MCObjectPtr object, const MCVector3dF & relativeLocation, float relativeAngle) + { + assert(object.get() != &m_this); + assert(object->m_impl->m_parent != m_parent); + m_children.push_back(object); + object->m_impl->setParent(m_this); + object->m_impl->m_relativeLocation = relativeLocation; + object->m_impl->m_relativeAngle = relativeAngle; + } + + const MCObject::Children & children() const + { + return m_children; + } + + void removeChildObject(MCObject & child) + { + if (child.m_impl->m_parent == &m_this) + { + child.m_impl->m_parent = &child; + for (auto iter = m_children.begin(); iter != m_children.end(); iter++) + { + if ((*iter).get() == &child) + { + m_children.erase(iter); + break; + } + } + } + } + + void removeChildObject(MCObjectPtr child) + { + if (child->m_impl->m_parent == &m_this) + { + child->m_impl->m_parent = child.get(); + for (auto iter = m_children.begin(); iter != m_children.end(); iter++) + { + if ((*iter) == child) + { + m_children.erase(iter); + break; + } + } + } + } + + void addContact(MCContact & contact) + { + m_contacts[&contact.object()].push_back(&contact); + } + + const MCObject::ContactHash & contacts() const + { + return m_contacts; + } + + void setCollisionLayer(int layer) + { + m_collisionLayer = layer; + + for (auto child : m_children) + { + child->setCollisionLayer(layer); + } + } + + int collisionLayer() const + { + return m_collisionLayer; + } + + void setIndex(int newIndex) + { + m_index = newIndex; + } + + int index() const + { + return m_index; + } + + void setPhysicsComponent(std::unique_ptr physicsComponent) + { + m_physicsComponent = std::move(physicsComponent); + m_physicsComponent->setObject(m_this); + } + + MCPhysicsComponent & physicsComponent() + { + assert(m_physicsComponent); + return *m_physicsComponent; + } + + static void subscribeTimerEvent(MCObject & object) + { + if (object.m_impl->m_timerEventObjectsIndex == -1) + { + m_timerEventObjects.push_back(&object); + object.m_impl->m_timerEventObjectsIndex = static_cast(m_timerEventObjects.size()) - 1; + } + } + + static void unsubscribeTimerEvent(MCObject & object) + { + if (object.m_impl->m_timerEventObjectsIndex > -1) + { + m_timerEventObjects.back()->m_impl->m_timerEventObjectsIndex = + object.m_impl->m_timerEventObjectsIndex; + m_timerEventObjects.at(static_cast(object.m_impl->m_timerEventObjectsIndex)) = m_timerEventObjects.back(); + m_timerEventObjects.pop_back(); + object.m_impl->m_timerEventObjectsIndex = -1; + } + } + + void render(MCCamera * p) + { + if (m_shape) + { + m_shape->render(p); + } + } + + void renderShadow(MCCamera * p) + { + if (m_shape) + { + m_shape->renderShadow(p); + } + } + + void setShape(MCShapePtr shape) + { + m_shape = shape; + + if (m_shape) + { + m_shape->setParent(m_this); + rotateShape(m_angle); + } + } + + MCShapePtr shape() const + { + return m_shape; + } + + const MCVector3dF & location() const + { + return m_location; + } + + const MCVector3dF & relativeLocation() const + { + return m_relativeLocation; + } + + void setInitialLocation(const MCVector3dF & location) + { + m_initialLocation = location; + } + + const MCVector3dF & initialLocation() const + { + return m_initialLocation; + } + + void setInitialAngle(int angle) + { + m_initialAngle = angle; + } + + int initialAngle() const + { + return m_initialAngle; + } + + void translateRelative(const MCVector3dF & newLocation) + { + m_relativeLocation = newLocation; + } + + void translate(const MCVector3dF & newLocation) + { + if (!m_shape) + { + m_location = newLocation; + + updateChildTransforms(); + } + else + { + const bool wasInWorld = !removing() && MCWorld::instance().objectGrid().remove(m_this); + + // Calculate velocity if this object is a child object and is thus moved + // by the parent. This way we'll automatically get linear velocity + + // possible orbital velocity. + // TODO: do we need to take the time step into account here? + if (m_parent != &m_this && m_parent->physicsComponent().isIntegrating() && !m_parent->physicsComponent().isStationary()) + { + m_physicsComponent->setVelocity(newLocation - m_location); + } + + m_location = newLocation; + + m_shape->translate(m_location - MCVector3dF(m_center)); + + updateChildTransforms(); + + if (wasInWorld) + { + MCWorld::instance().objectGrid().insert(m_this); + } + } + } + + void deleteContacts() + { + for (auto && contact : m_contacts) + { + for (size_t j = 0; j < contact.second.size(); j++) + { + contact.second[j]->free(); + } + } + m_contacts.clear(); + } + + void deleteContacts(MCObject & object) + { + const auto iter(m_contacts.find(&object)); + if (iter != m_contacts.end()) + { + for (size_t j = 0; j < iter->second.size(); j++) + { + iter->second[j]->free(); + } + iter->second.clear(); + } + } + + void displace(const MCVector3dF & displacement) + { + translate(m_location + displacement); + } + + float angle() const + { + return m_angle; + } + + void rotate(float newAngle, bool updateChildTransforms) + { + doRotate(newAngle); + m_angle = newAngle; + + if (updateChildTransforms) + { + this->updateChildTransforms(); + } + } + + void rotateRelative(float newAngle) + { + m_relativeAngle = newAngle; + } + + void setShadowOffset(const MCVector2dF & p) + { + assert(m_shape); + m_shape->setShadowOffset(p); + } + + void setCenter(MCVector2dF center) + { + m_initialCenter = center; + updateCenter(); + rotateShape(m_angle); + } + + static void sendTimerEvent(MCTimerEvent & event) + { + for (auto && obj : m_timerEventObjects) + { + MCObject::sendEvent(*obj, event); + } + } + + size_t typeId() const + { + return m_typeId; + } + + size_t typeId(const std::string & typeName) + { + return MCObject::getTypeIdForName(typeName); + } + + void setIsPhysicsObject(bool flag) + { + setStatus(StatusBit::PhysicsObject, flag); + } + + bool isPhysicsObject() const + { + return testStatus(StatusBit::PhysicsObject); + } + + void setIsTriggerObject(bool flag) + { + setStatus(StatusBit::TriggerObject, flag); + } + + bool isTriggerObject() const + { + return testStatus(StatusBit::TriggerObject); + } + + void setBypassCollisions(bool flag) + { + setStatus(StatusBit::BypassCollisions, flag); + } + + bool bypassCollisions() const + { + return testStatus(StatusBit::BypassCollisions); + } + + void setIsRenderable(bool flag) + { + setStatus(StatusBit::Renderable, flag); + } + + bool isRenderable() const + { + return testStatus(StatusBit::Renderable); + } + + void setIsParticle(bool flag) + { + setStatus(StatusBit::Particle, flag); + } + + bool isParticle() const + { + return testStatus(StatusBit::Particle); + } + + void cacheIndexRange(size_t i0, size_t i1, size_t j0, size_t j1) + { + m_i0 = i0; + m_i1 = i1; + m_j0 = j0; + m_j1 = j1; + } + + void restoreIndexRange(size_t * i0, size_t * i1, size_t * j0, size_t * j1) + { + *i0 = m_i0; + *i1 = m_i1; + *j0 = m_j0; + *j1 = m_j1; + } + + void setRemoving(bool flag) + { + setStatus(StatusBit::Removing, flag); + } + + bool removing() const + { + return testStatus(StatusBit::Removing); + } + + MCObject & parent() const + { + return *m_parent; + } + + ~Impl() + { + removeFromWorldNow(); + deleteContacts(); + } + +private: + float calculateLinearBalance(const MCVector3dF & force, const MCVector3dF & pos) + { + float linearBalance = 1.0f; + if (shape()) + { + const float r = shape()->radius(); + if (r > 0) + { + linearBalance = 1.0f - MCMathUtil::distanceFromVector(MCVector2dF(pos - location()), MCVector2dF(force)) / r; + linearBalance = linearBalance < 0 ? 0 : linearBalance; + linearBalance = linearBalance > 1 ? 1 : linearBalance; + } + } + return linearBalance; + } + + void checkXBoundariesAndSendEvent(float minX, float maxX) + { + const MCWorld & world = MCWorld::instance(); + if (minX < world.minX()) + { + MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::West, m_this); + m_this.outOfBoundariesEvent(e); + } + else if (maxX > world.maxX()) + { + MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::East, m_this); + m_this.outOfBoundariesEvent(e); + } + } -namespace { -const int physicsObjectBit = 1; -const int triggerObjectBit = 2; -const int renderableBit = 4; -const int bypassCollisionsBit = 8; -const int removingBit = 32; -const int isParticleBit = 128; -} + void checkYBoundariesAndSendEvent(float minY, float maxY) + { + const MCWorld & world = MCWorld::instance(); + if (minY < world.minY()) + { + MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::South, m_this); + m_this.outOfBoundariesEvent(e); + } + else if (maxY > world.maxY()) + { + MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::North, m_this); + m_this.outOfBoundariesEvent(e); + } + } + + void checkZBoundariesAndSendEvent() + { + const MCWorld & world = MCWorld::instance(); + if (m_location.k() < world.minZ()) + { + m_physicsComponent->resetZ(); + translate( + MCVector3dF(m_location.i(), m_location.j(), world.minZ())); + MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::Bottom, m_this); + m_this.outOfBoundariesEvent(e); + } + else if (m_location.k() > world.maxZ()) + { + m_physicsComponent->resetZ(); + translate( + MCVector3dF(m_location.i(), m_location.j(), world.maxZ())); + MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::Top, m_this); + m_this.outOfBoundariesEvent(e); + } + } + + void doRotate(float newAngle) + { + updateCenter(); + rotateShape(newAngle); + } + + void rotateShape(float angle) + { + if (m_shape && std::fabs(m_shape->angle() - angle) > std::numeric_limits::epsilon()) + { + if (m_shape->type() == MCShape::Type::Circle && m_centerIsZero) + { + m_shape->rotate(angle); + } + else + { + const bool wasInWorld = MCWorld::instance().objectGrid().remove(m_this); + + m_shape->rotate(angle); + m_shape->translate(m_location - MCVector3dF(m_center)); + + if (wasInWorld) + { + MCWorld::instance().objectGrid().insert(m_this); + } + } + } + } + + void setParent(MCObject & parent) + { + m_parent = &parent; + } + + void updateChildTransforms() + { + for (auto child : m_children) + { + const float newAngle = m_angle + child->m_impl->m_relativeAngle; + child->rotate(newAngle); + child->translate(m_location - MCVector3dF(m_center) + MCVector3dF(MCMathUtil::rotatedVector(child->m_impl->m_relativeLocation, m_angle), child->m_impl->m_relativeLocation.k())); + } + } + + void updateCenter() + { + m_center = MCMathUtil::rotatedVector(m_initialCenter, m_angle); + m_centerIsZero = m_center.isZero(); + } + + void setStatus(StatusBit bit, bool flag) + { + m_status.set(static_cast(bit), flag); + } + + bool testStatus(StatusBit bit) const + { + return m_status.test(static_cast(bit)); + } + + static MCTypeRegistry m_typeRegistry; + + size_t m_typeId; + + std::string m_typeName; + + float m_angle = 0; // Degrees + + float m_relativeAngle = 0; // Degrees + + int m_collisionLayer = 0; -MCTypeRegistry MCObject::m_typeRegistry; -MCObject::TimerEventObjectsList MCObject::m_timerEventObjects; + int m_index = -1; + + size_t m_i0 = 0; + + size_t m_i1 = 0; + + size_t m_j0 = 0; + + size_t m_j1 = 0; + + MCVector3dF m_initialLocation; + + int m_initialAngle = 0; + + MCVector3dF m_location; + + MCVector3dF m_relativeLocation; + + MCVector2dF m_initialCenter; + + MCVector2dF m_center; + + bool m_centerIsZero = false; + + MCShapePtr m_shape; + + typedef std::vector TimerEventObjectsList; + + static TimerEventObjectsList m_timerEventObjects; + + MCObject::ContactHash m_contacts; + + int m_timerEventObjectsIndex = -1; + + std::bitset<8> m_status; + + Children m_children; + + MCObject & m_this; + + MCObject * m_parent = nullptr; + + std::unique_ptr m_physicsComponent; +}; + +MCTypeRegistry MCObject::Impl::m_typeRegistry; +MCObject::Impl::TimerEventObjectsList MCObject::Impl::m_timerEventObjects; MCObject::MCObject(const std::string & typeName) - : m_typeId(MCObject::m_typeRegistry.registerType(typeName)) - , m_typeName(typeName) - , m_status(physicsObjectBit | renderableBit) - , m_parent(this) - , m_physicsComponent(nullptr) + : m_impl(std::make_unique(*this, typeName)) { - setPhysicsComponent(*(new MCPhysicsComponent)); } MCObject::MCObject(MCShapePtr shape, const std::string & typeName) - : MCObject(typeName) + : m_impl(std::make_unique(*this, shape, typeName)) { - setShape(shape); } -MCObject::MCObject(MCSurface & surface, const std::string & typeName) - : MCObject(typeName) +MCObject::MCObject(MCSurfacePtr surface, const std::string & typeName) + : m_impl(std::make_unique(*this, surface, typeName)) { - // Create an MCRectShape using surface with an MCSurfaceView - MCShapePtr rectShape(new MCRectShape( - MCShapeViewPtr(new MCSurfaceView(surface.handle(), &surface)), - surface.width(), - surface.height())); - - setShape(rectShape); } -unsigned int MCObject::getTypeIdForName(const std::string & typeName) +size_t MCObject::getTypeIdForName(const std::string & typeName) { - return MCObject::m_typeRegistry.getTypeIdForName(typeName); + return Impl::getTypeIdForName(typeName); } const std::string & MCObject::typeName() const { - return m_typeName; + return m_impl->typeName(); } -void MCObject::addChildObject( - MCObjectPtr object, const MCVector3dF & relativeLocation, float relativeAngle) +void MCObject::addChildObject(MCObjectPtr object, const MCVector3dF & relativeLocation, float relativeAngle) { - assert(object.get() != this); - assert(object->m_parent != this); - m_children.push_back(object); - object->setParent(*this); - object->m_relativeLocation = relativeLocation; - object->m_relativeAngle = relativeAngle; + m_impl->addChildObject(object, relativeLocation, relativeAngle); } void MCObject::removeChildObject(MCObject & child) { - if (child.m_parent == this) - { - child.m_parent = &child; - for (auto iter = m_children.begin(); iter != m_children.end(); iter++) - { - if ((*iter).get() == &child) - { - m_children.erase(iter); - break; - } - } - } + m_impl->removeChildObject(child); } void MCObject::removeChildObject(MCObjectPtr child) { - if (child->m_parent == this) - { - child->m_parent = child.get(); - for (auto iter = m_children.begin(); iter != m_children.end(); iter++) - { - if ((*iter) == child) - { - m_children.erase(iter); - break; - } - } - } + m_impl->removeChildObject(child); } const MCObject::Children & MCObject::children() const { - return m_children; -} - -void MCObject::setParent(MCObject & parent) -{ - m_parent = &parent; + return m_impl->children(); } MCObject & MCObject::parent() const { - return *m_parent; + return m_impl->parent(); } void MCObject::onStepTime(int) @@ -150,81 +786,18 @@ void MCObject::checkBoundaries() { - // Use shape bbox if shape is defined. - if (m_shape) - { - checkXBoundariesAndSendEvent(m_shape->bbox().x1(), m_shape->bbox().x2()); - checkYBoundariesAndSendEvent(m_shape->bbox().y1(), m_shape->bbox().y2()); - } - else - { - // By default use the center point as the test point. - checkXBoundariesAndSendEvent(m_location.i() - m_center.i(), m_location.i() - m_center.i()); - checkYBoundariesAndSendEvent(m_location.j() - m_center.j(), m_location.j() - m_center.j()); - } - - checkZBoundariesAndSendEvent(); -} - -void MCObject::checkXBoundariesAndSendEvent(float minX, float maxX) -{ - const MCWorld & world = MCWorld::instance(); - if (minX < world.minX()) - { - MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::West, *this); - outOfBoundariesEvent(e); - } - else if (maxX > world.maxX()) - { - MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::East, *this); - outOfBoundariesEvent(e); - } -} - -void MCObject::checkYBoundariesAndSendEvent(float minY, float maxY) -{ - const MCWorld & world = MCWorld::instance(); - if (minY < world.minY()) - { - MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::South, *this); - outOfBoundariesEvent(e); - } - else if (maxY > world.maxY()) - { - MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::North, *this); - outOfBoundariesEvent(e); - } + m_impl->checkBoundaries(); } -void MCObject::checkZBoundariesAndSendEvent() -{ - const MCWorld & world = MCWorld::instance(); - if (m_location.k() < world.minZ()) - { - m_physicsComponent->resetZ(); - translate( - MCVector3dF(m_location.i(), m_location.j(), world.minZ())); - MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::Bottom, *this); - outOfBoundariesEvent(e); - } - else if (m_location.k() > world.maxZ()) - { - m_physicsComponent->resetZ(); - translate( - MCVector3dF(m_location.i(), m_location.j(), world.maxZ())); - MCOutOfBoundariesEvent e(MCOutOfBoundariesEvent::Top, *this); - outOfBoundariesEvent(e); - } -} -unsigned int MCObject::typeId() const +size_t MCObject::typeId() const { - return m_typeId; + return m_impl->typeId(); } -unsigned int MCObject::typeId(const std::string & typeName) +size_t MCObject::typeId(const std::string & typeName) { - return MCObject::getTypeIdForName(typeName); + return Impl::getTypeIdForName(typeName); } bool MCObject::event(MCEvent & event) @@ -234,6 +807,11 @@ collisionEvent(static_cast(event)); return true; } + else if (event.instanceTypeId() == MCSeparationEvent::typeId()) + { + separationEvent(static_cast(event)); + return true; + } else if (event.instanceTypeId() == MCOutOfBoundariesEvent::typeId()) { outOfBoundariesEvent(static_cast(event)); @@ -248,6 +826,11 @@ event.accept(); } +void MCObject::separationEvent(MCSeparationEvent & event) +{ + event.accept(); +} + void MCObject::outOfBoundariesEvent(MCOutOfBoundariesEvent & event) { event.accept(); @@ -260,298 +843,147 @@ void MCObject::subscribeTimerEvent(MCObject & object) { - if (object.m_timerEventObjectsIndex == -1) - { - m_timerEventObjects.push_back(&object); - object.m_timerEventObjectsIndex = static_cast(m_timerEventObjects.size()) - 1; - } + Impl::subscribeTimerEvent(object); } void MCObject::unsubscribeTimerEvent(MCObject & object) { - if (object.m_timerEventObjectsIndex > -1) - { - m_timerEventObjects.back()->m_timerEventObjectsIndex = - object.m_timerEventObjectsIndex; - m_timerEventObjects.at(object.m_timerEventObjectsIndex) = - m_timerEventObjects.back(); - m_timerEventObjects.pop_back(); - object.m_timerEventObjectsIndex = -1; - } + Impl::unsubscribeTimerEvent(object); } void MCObject::sendTimerEvent(MCTimerEvent & event) { - for (MCObject * obj : m_timerEventObjects) - { - MCObject::sendEvent(*obj, event); - } + Impl::sendTimerEvent(event); } void MCObject::addToWorld() { - MCWorld::instance().addObject(*this); - - for (auto child : m_children) - { - MCWorld::instance().addObject(*child); - } + m_impl->addToWorld(); } void MCObject::addToWorld(float x, float y, float z) { - MCWorld::instance().addObject(*this); - - for (auto child : m_children) - { - MCWorld::instance().addObject(*child); - } - - translate(MCVector3dF(x, y, z)); + m_impl->addToWorld(x, y, z); } void MCObject::removeFromWorld() { - if (MCWorld::hasInstance()) - { - MCWorld::instance().removeObject(*this); - - for (auto child : m_children) - { - MCWorld::instance().removeObjectNow(*child); - } - } + m_impl->removeFromWorld(); } void MCObject::removeFromWorldNow() { - if (MCWorld::hasInstance()) - { - MCWorld::instance().removeObjectNow(*this); - - for (auto child : m_children) - { - MCWorld::instance().removeObjectNow(*child); - } - } + m_impl->removeFromWorldNow(); } void MCObject::render(MCCamera * p) { - if (m_shape) - { - m_shape->render(p); - } + m_impl->render(p); } void MCObject::renderShadow(MCCamera * p) { - if (m_shape) - { - m_shape->renderShadow(p); - } -} - -void MCObject::setStatus(int bit, bool flag) -{ - if (flag) - { - m_status |= bit; - } - else - { - m_status &= ~bit; - } -} - -bool MCObject::testStatus(int bit) const -{ - return m_status & bit; + m_impl->renderShadow(p); } void MCObject::setIsPhysicsObject(bool flag) { - setStatus(physicsObjectBit, flag); + m_impl->setIsPhysicsObject(flag); } bool MCObject::isPhysicsObject() const { - return testStatus(physicsObjectBit); + return m_impl->isPhysicsObject(); } void MCObject::setIsTriggerObject(bool flag) { - setStatus(triggerObjectBit, flag); + m_impl->setIsTriggerObject(flag); } bool MCObject::isTriggerObject() const { - return testStatus(triggerObjectBit); + return m_impl->isTriggerObject(); } void MCObject::setBypassCollisions(bool flag) { - setStatus(bypassCollisionsBit, flag); + m_impl->setBypassCollisions(flag); } bool MCObject::bypassCollisions() const { - return testStatus(bypassCollisionsBit); + return m_impl->bypassCollisions(); } void MCObject::setIsRenderable(bool flag) { - setStatus(renderableBit, flag); + m_impl->setIsRenderable(flag); } bool MCObject::isRenderable() const { - return testStatus(renderableBit); + return m_impl->isRenderable(); } void MCObject::setIsParticle(bool flag) { - setStatus(isParticleBit, flag); + m_impl->setIsParticle(flag); } bool MCObject::isParticle() const { - return testStatus(isParticleBit); -} - -void MCObject::setRemoving(bool flag) -{ - setStatus(removingBit, flag); -} - -bool MCObject::removing() const -{ - return testStatus(removingBit); + return m_impl->isParticle(); } void MCObject::translateRelative(const MCVector3dF & newLocation) { - m_relativeLocation = newLocation; + m_impl->translateRelative(newLocation); } void MCObject::translate(const MCVector3dF & newLocation) { - if (!m_shape) - { - m_location = newLocation; - - updateChildTransforms(); - } - else - { - const bool wasInWorld = !removing() && MCWorld::instance().objectGrid().remove(*this); - - // Calculate velocity if this object is a child object and is thus moved - // by the parent. This way we'll automatically get linear velocity + - // possible orbital velocity. - // TODO: do we need to take the time step into account here? - if (m_parent != this && - m_parent->physicsComponent().isIntegrating() && - !m_parent->physicsComponent().isStationary()) - { - m_physicsComponent->setVelocity(newLocation - m_location); - } - - m_location = newLocation; - - m_shape->translate(m_location - MCVector3dF(m_center)); - - updateChildTransforms(); - - if (wasInWorld) - { - MCWorld::instance().objectGrid().insert(*this); - } - } + m_impl->translate(newLocation); } void MCObject::displace(const MCVector3dF & displacement) { - translate(m_location + displacement); + m_impl->displace(displacement); } const MCVector3dF & MCObject::location() const { - return m_location; + return m_impl->location(); } const MCVector3dF & MCObject::relativeLocation() const { - return m_relativeLocation; + return m_impl->relativeLocation(); } void MCObject::setShadowOffset(const MCVector2dF & p) { - assert(m_shape); - m_shape->setShadowOffset(p); + m_impl->setShadowOffset(p); } void MCObject::setCenter(MCVector2dF center) { - m_initialCenter = center; - updateCenter(); - rotateShape(m_angle); + m_impl->setCenter(center); } -void MCObject::rotate(float newAngle, bool updateChildTransforms_) +void MCObject::rotate(float newAngle, bool updateChildTransforms) { - doRotate(newAngle); - m_angle = newAngle; - - if (updateChildTransforms_) - { - updateChildTransforms(); - } + m_impl->rotate(newAngle, updateChildTransforms); } void MCObject::rotateRelative(float newAngle) { - m_relativeAngle = newAngle; -} - -void MCObject::doRotate(float newAngle) -{ - updateCenter(); - rotateShape(newAngle); -} - -void MCObject::rotateShape(float angle) -{ - if (m_shape && std::abs(m_shape->angle() - angle) > std::numeric_limits::epsilon()) - { - if (m_shape->instanceTypeId() == MCCircleShape::typeId() && m_centerIsZero) - { - m_shape->rotate(angle); - } - else - { - const bool wasInWorld = MCWorld::instance().objectGrid().remove(*this); - - m_shape->rotate(angle); - m_shape->translate(m_location - MCVector3dF(m_center)); - - if (wasInWorld) - { - MCWorld::instance().objectGrid().insert(*this); - } - } - } -} - -void MCObject::updateCenter() -{ - m_center = MCMathUtil::rotatedVector(m_initialCenter, m_angle); - m_centerIsZero = m_center.isZero(); + m_impl->rotateRelative(newAngle); } float MCObject::angle() const { - return m_angle; + return m_impl->angle(); } MCVector2dF MCObject::direction() const @@ -561,158 +993,102 @@ void MCObject::setShape(MCShapePtr shape) { - m_shape = shape; - - if (m_shape) - { - m_shape->setParent(*this); - rotateShape(m_angle); - } + m_impl->setShape(shape); } MCShapePtr MCObject::shape() const { - return m_shape; + return m_impl->shape(); } void MCObject::setCollisionLayer(int layer) { - m_collisionLayer = layer; - - for (auto child : m_children) { - child->setCollisionLayer(layer); - } + m_impl->setCollisionLayer(layer); } int MCObject::collisionLayer() const { - return m_collisionLayer; + return m_impl->collisionLayer(); } -void MCObject::setIndex(int newIndex) +void MCObject::cacheIndexRange(size_t i0, size_t i1, size_t j0, size_t j1) { - m_index = newIndex; + m_impl->cacheIndexRange(i0, i1, j0, j1); } -int MCObject::index() const +void MCObject::restoreIndexRange(size_t * i0, size_t * i1, size_t * j0, size_t * j1) +{ + m_impl->restoreIndexRange(i0, i1, j0, j1); +} + +void MCObject::setIndex(int index) +{ + m_impl->setIndex(index); +} + +void MCObject::setRemoving(bool flag) { - return m_index; + m_impl->setRemoving(flag); } -void MCObject::cacheIndexRange(unsigned int i0, unsigned int i1, unsigned int j0, unsigned int j1) +bool MCObject::removing() const { - m_i0 = i0; - m_i1 = i1; - m_j0 = j0; - m_j1 = j1; + return m_impl->removing(); } -void MCObject::restoreIndexRange(unsigned int * i0, unsigned int * i1, unsigned int * j0, unsigned int * j1) +int MCObject::index() const { - *i0 = m_i0; - *i1 = m_i1; - *j0 = m_j0; - *j1 = m_j1; + return m_impl->index(); } void MCObject::addContact(MCContact & contact) { - m_contacts[&contact.object()].push_back(&contact); + m_impl->addContact(contact); } const MCObject::ContactHash & MCObject::contacts() const { - return m_contacts; + return m_impl->contacts(); } void MCObject::deleteContacts() { - auto i(m_contacts.begin()); - for (; i != m_contacts.end(); i++) - { - for (unsigned int j = 0; j < i->second.size(); j++) - { - i->second[j]->free(); - } - } - m_contacts.clear(); + m_impl->deleteContacts(); } void MCObject::deleteContacts(MCObject & object) { - auto i(m_contacts.find(&object)); - if (i != m_contacts.end()) - { - for (unsigned int j = 0; j < i->second.size(); j++) - { - i->second[j]->free(); - } - i->second.clear(); - } + m_impl->deleteContacts(object); } void MCObject::setInitialLocation(const MCVector3dF & location) { - m_initialLocation = location; + m_impl->setInitialLocation(location); } const MCVector3dF & MCObject::initialLocation() const { - return m_initialLocation; + return m_impl->initialLocation(); } void MCObject::setInitialAngle(int angle) { - m_initialAngle = angle; + m_impl->setInitialAngle(angle); } int MCObject::initialAngle() const { - return m_initialAngle; -} - -void MCObject::updateChildTransforms() -{ - for (auto child : m_children) - { - const float newAngle = m_angle + child->m_relativeAngle; - child->rotate(newAngle); - child->translate(m_location - MCVector3dF(m_center) + - MCVector3dF(MCMathUtil::rotatedVector(child->m_relativeLocation, m_angle), - child->m_relativeLocation.k())); - } -} - -float MCObject::calculateLinearBalance(const MCVector3dF & force, const MCVector3dF & pos) -{ - float linearBalance = 1.0; - if (shape()) { - const float r = shape()->radius(); - if (r > 0) { - linearBalance = 1.0 - MCMathUtil::distanceFromVector( - MCVector2dF(pos - location()), MCVector2dF(force)) / r; - linearBalance = linearBalance < 0 ? 0 : linearBalance; - linearBalance = linearBalance > 1 ? 1 : linearBalance; - } - } - return linearBalance; + return m_impl->initialAngle(); } -void MCObject::setPhysicsComponent(MCPhysicsComponent & physicsComponent) +void MCObject::setPhysicsComponent(std::unique_ptr physicsComponent) { - delete m_physicsComponent; - m_physicsComponent = &physicsComponent; - m_physicsComponent->setObject(*this); + m_impl->setPhysicsComponent(std::move(physicsComponent)); } MCPhysicsComponent & MCObject::physicsComponent() { - return *m_physicsComponent; + return m_impl->physicsComponent(); } -MCObject::~MCObject() -{ - removeFromWorldNow(); - deleteContacts(); - delete m_physicsComponent; -} +MCObject::~MCObject() = default; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectcomponent.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectcomponent.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectcomponent.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectcomponent.cc 2020-01-06 23:07:24.000000000 +0000 @@ -20,7 +20,7 @@ #include "mcobjectcomponent.hh" MCObjectComponent::MCObjectComponent() - : m_object(nullptr) + : m_object(nullptr) { } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectcomponent.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectcomponent.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectcomponent.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectcomponent.hh 2020-01-06 23:07:24.000000000 +0000 @@ -28,7 +28,6 @@ class MCObjectComponent { public: - MCObjectComponent(); void setObject(MCObject & object); @@ -40,11 +39,9 @@ virtual void reset(); protected: - MCObject & object() const; private: - DISABLE_ASSI(MCObjectComponent); DISABLE_COPY(MCObjectComponent); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectdata.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectdata.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectdata.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectdata.cc 2020-01-06 23:07:24.000000000 +0000 @@ -20,16 +20,16 @@ #include "mcobjectdata.hh" MCObjectData::MCObjectData(const std::string & typeId) -: m_typeId(typeId) -, m_mass(0.0) -, m_shape(MCObjectData::Default) -, m_shapeRadius(0.0) -, m_shapeWidth(0.0) -, m_shapeHeight(0.0) -, m_restitution(0.5) -, m_xyFriction(0.0) -, m_stationary(false) -, m_angle(0) + : m_typeId(typeId) + , m_mass(0.0) + , m_shape(MCObjectData::Default) + , m_shapeRadius(0.0) + , m_shapeWidth(0.0) + , m_shapeHeight(0.0) + , m_restitution(0.5) + , m_xyFriction(0.0) + , m_stationary(false) + , m_angle(0) { } @@ -50,7 +50,7 @@ void MCObjectData::setShapeRadius(float radius) { - m_shape = MCObjectData::Circle; + m_shape = MCObjectData::Circle; m_shapeRadius = radius; } @@ -61,8 +61,8 @@ void MCObjectData::setShapeWidth(float width) { - m_shape = MCObjectData::Rect; - m_shapeWidth = width; + m_shape = MCObjectData::Rect; + m_shapeWidth = width; } float MCObjectData::shapeWidth() const @@ -72,7 +72,7 @@ void MCObjectData::setShapeHeight(float height) { - m_shape = MCObjectData::Rect; + m_shape = MCObjectData::Rect; m_shapeHeight = height; } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectdata.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectdata.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectdata.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectdata.hh 2020-01-06 23:07:24.000000000 +0000 @@ -22,7 +22,6 @@ #include "mcmacros.hh" - #include #include @@ -35,11 +34,15 @@ class MCObjectData { public: - /*! Possible shape types: * Rect = MCRectShape. * Circle = MCCircleShape. */ - enum Shape {Default, Rect, Circle}; + enum Shape + { + Default, + Rect, + Circle + }; //! Constructor. explicit MCObjectData(const std::string & typeId); @@ -108,21 +111,20 @@ int initialAngle() const; private: - DISABLE_COPY(MCObjectData); DISABLE_ASSI(MCObjectData); - std::string m_typeId; - float m_mass; + std::string m_typeId; + float m_mass; MCObjectData::Shape m_shape; - float m_shapeRadius; - float m_shapeWidth; - float m_shapeHeight; - float m_restitution; - float m_xyFriction; - bool m_stationary; - MCVector3dF m_location; - int m_angle; + float m_shapeRadius; + float m_shapeWidth; + float m_shapeHeight; + float m_restitution; + float m_xyFriction; + bool m_stationary; + MCVector3dF m_location; + int m_angle; }; #endif // MCOBJECTDATA_HH diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectfactory.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectfactory.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectfactory.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectfactory.cc 2020-01-06 23:07:24.000000000 +0000 @@ -33,53 +33,52 @@ #include MCObjectFactory::MCObjectFactory(MCAssetManager & assetManager) -: m_assetManager(assetManager) + : m_assetManager(assetManager) { } MCObjectPtr MCObjectFactory::build(const MCSurfaceObjectData & data) { - MCShapeViewPtr view; - MCShapePtr shape; - MCSurface & surface = m_assetManager.surfaceManager().surface(data.surfaceId()); - MCObject * object = nullptr; + const auto surface = m_assetManager.surfaceManager().surface(data.surfaceId()); + + MCObjectPtr object; switch (data.shape()) { // Default shape, use surface dimensions case MCObjectData::Default: + { // Circle shape according to surface dimensions - if (data.defaultCirleShape()) + if (data.defaultCircleShape()) { - object = new MCObject(data.typeId()); - view.reset(new MCSurfaceView(data.typeId(), &surface)); - shape.reset(new MCCircleShape(view, std::max(surface.width(), surface.height()) / 2)); - object->setShape(shape); + object = std::make_shared(data.typeId()); + object->setShape(std::make_shared( + std::make_shared(data.typeId(), surface), std::max(surface->width(), surface->height()) / 2)); } // Rect shape according to surface dimensions (default) else { - object = new MCObject(surface, data.typeId()); + object = std::make_shared(surface, data.typeId()); } break; - + } // Explicit circle shape case MCObjectData::Circle: - object = new MCObject(data.typeId()); - view.reset(new MCSurfaceView(data.typeId(), &surface)); - shape.reset(new MCCircleShape(view, data.shapeRadius())); - object->setShape(shape); + { + object = std::make_shared(data.typeId()); + object->setShape(std::make_shared( + std::make_shared(data.typeId(), surface), data.shapeRadius())); break; - + } // Explicit rect shape case MCObjectData::Rect: - object = new MCObject(data.typeId()); - view.reset(new MCSurfaceView(data.typeId(), &surface)); - shape.reset(new MCRectShape(view, data.shapeWidth(), data.shapeHeight())); - object->setShape(shape); + { + object = std::make_shared(data.typeId()); + object->setShape(std::make_shared( + std::make_shared(data.typeId(), surface), data.shapeWidth(), data.shapeHeight())); break; } - + } assert(object); setCommonProperties(*object, data); @@ -88,91 +87,74 @@ MCObjectPtr MCObjectFactory::build(const MCMeshObjectData & data) { - MCShapeViewPtr view; - MCShapePtr shape; - MCObject * object = nullptr; - MCMesh & mesh = m_assetManager.meshManager().mesh(data.meshId()); + const auto object = std::make_shared(data.typeId()); + const auto mesh = m_assetManager.meshManager().mesh(data.meshId()); switch (data.shape()) { // Default shape, use surface dimensions case MCObjectData::Default: // Circle shape according to surface dimensions - if (data.defaultCirleShape()) + if (data.defaultCircleShape()) { - object = new MCObject(data.typeId()); - view.reset(new MCMeshView(data.typeId(), &mesh)); - shape.reset(new MCCircleShape(view, std::max(mesh.width(), mesh.height()) / 2)); - object->setShape(shape); + object->setShape(std::make_shared(std::make_shared(data.typeId(), mesh), std::max(mesh->width(), mesh->height()) / 2)); } // Rect shape according to mesh dimensions (default) else { - object = new MCObject(data.typeId()); - view.reset(new MCMeshView(data.typeId(), &mesh)); - shape.reset(new MCRectShape(view, mesh.width(), mesh.height())); - object->setShape(shape); + object->setShape(std::make_shared(std::make_shared(data.typeId(), mesh), mesh->width(), mesh->height())); } break; // Explicit circle shape case MCObjectData::Circle: - object = new MCObject(data.typeId()); - view.reset(new MCMeshView(data.typeId(), &mesh)); - shape.reset(new MCCircleShape(view, data.shapeRadius())); - object->setShape(shape); + object->setShape(std::make_shared(std::make_shared(data.typeId(), mesh), data.shapeRadius())); break; // Explicit rect shape case MCObjectData::Rect: - object = new MCObject(data.typeId()); - view.reset(new MCMeshView(data.typeId(), &mesh)); - shape.reset(new MCRectShape(view, data.shapeWidth(), data.shapeHeight())); - object->setShape(shape); + object->setShape(std::make_shared(std::make_shared(data.typeId(), mesh), data.shapeWidth(), data.shapeHeight())); break; } - assert(object); setCommonProperties(*object, data); - return MCObjectPtr(object); + return object; } MCObjectPtr MCObjectFactory::build(const MCObjectData & data, MCShapeViewPtr view) { - MCShapePtr shape; - MCObject * object = nullptr; + MCObjectPtr object; switch (data.shape()) { // Default shape, use surface dimensions case MCObjectData::Default: // Auto shape not supported. - break; + return nullptr; // Explicit circle shape case MCObjectData::Circle: - object = new MCObject(data.typeId()); - shape.reset(new MCCircleShape(view, data.shapeRadius())); - object->setShape(shape); + { + object = std::make_shared(data.typeId()); + object->setShape(std::make_shared(view, data.shapeRadius())); break; - + } // Explicit rect shape case MCObjectData::Rect: - object = new MCObject(data.typeId()); - shape.reset(new MCRectShape(view, data.shapeWidth(), data.shapeHeight())); - object->setShape(shape); + { + object = std::make_shared(data.typeId()); + object->setShape(std::make_shared(view, data.shapeWidth(), data.shapeHeight())); break; } + } - assert(object); setCommonProperties(*object, data); - return MCObjectPtr(object); + return object; } -void MCObjectFactory::setCommonProperties( - MCObject & object, const MCObjectData & data) const +void MCObjectFactory::setCommonProperties(MCObject & object, const MCObjectData & data) const { object.physicsComponent().setMass(data.mass(), data.stationary()); object.physicsComponent().setXYFriction(data.xyFriction()); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectfactory.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectfactory.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcobjectfactory.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcobjectfactory.hh 2020-01-06 23:07:24.000000000 +0000 @@ -20,10 +20,10 @@ #ifndef MCOBJECTFACTORY_HH #define MCOBJECTFACTORY_HH -#include "mcsurfaceobjectdata.hh" #include "mcmeshobjectdata.hh" #include "mcobject.hh" #include "mcshapeview.hh" +#include "mcsurfaceobjectdata.hh" #include #include @@ -34,7 +34,6 @@ class MCObjectFactory { public: - //! Constructor. MCObjectFactory(MCAssetManager & assetManager); @@ -51,7 +50,6 @@ MCObjectPtr build(const MCObjectData & data, MCShapeViewPtr view); private: - DISABLE_COPY(MCObjectFactory); DISABLE_ASSI(MCObjectFactory); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcobject.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcobject.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcobject.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcobject.hh 2020-01-06 23:07:24.000000000 +0000 @@ -25,20 +25,19 @@ #include "mcmacros.hh" #include "mcobjectgrid.hh" #include "mcshape.hh" +#include "mcsurface.hh" #include "mctyperegistry.hh" #include "mcvector3d.hh" #include "mcworld.hh" -#include #include -#include -#include #include class MCShapeView; -class MCSurface; class MCEvent; class MCCollisionEvent; +class MCSeparationEvent; +class MCSurface; class MCOutOfBoundariesEvent; class MCPhysicsComponent; class MCTimerEvent; @@ -53,9 +52,8 @@ class MCObject { public: - //! Hash container for contacts. Prefer map here for iteration performance. - typedef std::map > ContactHash; + typedef std::map> ContactHash; /*! Constructor. * \param typeId Type name string e.g. "CAR". All identical objects should have the same typeName. */ @@ -74,10 +72,10 @@ * MCObject won't take the ownership, because the same surface * can be used to draw multiple objects and is managed by MCSurfaceManager. * \param typeName Type name string e.g. "CAR". All identical objects should have the same typeName. */ - MCObject(MCSurface & surface, const std::string & typeName); + MCObject(std::shared_ptr surface, const std::string & typeName); //! Return integer id corresponding to the given object name. - static unsigned int getTypeIdForName(const std::string & typeName); + static size_t getTypeIdForName(const std::string & typeName); /*! Destructor. It's the callers responsibility to first remove * the object from MCWorld before deleting the object. */ @@ -88,7 +86,7 @@ * against each others without need for dynamic_cast. * The filtered collision detection system uses this * to match given types of objects. */ - virtual unsigned int typeId() const; + virtual size_t typeId() const; /*! Return typeId for the given typeName string from * MCObject's hash table. Each object registers @@ -96,7 +94,7 @@ * derived classes, they only need to pass the desired * typeId string to MCObject's constructor. * Returns 0 if type is not registered. */ - static unsigned int typeId(const std::string & typeName); + static size_t typeId(const std::string & typeName); //! Return the type name given to constructor. const std::string & typeName() const; @@ -156,9 +154,8 @@ //! Return whether the object is a physics object. bool isPhysicsObject() const; - /*! Override the default physics component. - * MCObject will take the ownership. */ - void setPhysicsComponent(MCPhysicsComponent & physicsComponent); + /*! Override the default physics component. */ + void setPhysicsComponent(std::unique_ptr physicsComponent); /*! \brief The physics component of the object. * All physics functionality is accessed via this component. */ @@ -270,9 +267,9 @@ //! Add child object. Used on composite objects. void addChildObject( - MCObjectPtr object, - const MCVector3dF & relativeLocation = MCVector3dF(), - float relativeAngle = 0); + MCObjectPtr object, + const MCVector3dF & relativeLocation = MCVector3dF(), + float relativeAngle = 0); //! Remove child object. void removeChildObject(MCObject & object); @@ -283,7 +280,7 @@ typedef std::vector Children; const Children & children() const; - //! Get parent or self; + //! \return parent or self MCObject & parent() const; /*! Set parent relative rotation ("yaw") angle about Z-axis. @@ -293,7 +290,6 @@ void checkBoundaries(); protected: - /*! Event handler. * \param pEvent Event to be handled. * \return true if event was handled. */ @@ -305,113 +301,32 @@ * \param event Event to be handled. */ virtual void collisionEvent(MCCollisionEvent & event); + /*! Event handler for MCSeparationEvent. Override this to + * filter out collision separations with certain objects. + * \param event Event to be handled. */ + virtual void separationEvent(MCSeparationEvent & event); + /*! Event handler for MCOutOfBoundariesEvent. * \param event Event to be handled. */ virtual void outOfBoundariesEvent(MCOutOfBoundariesEvent & event); private: + void cacheIndexRange(size_t i0, size_t i1, size_t j0, size_t j1); - float calculateLinearBalance(const MCVector3dF & force, const MCVector3dF & pos); - - /*! Cache range of objectGrid cells the object is touching. - * Used by MCObjectGrid. */ - void cacheIndexRange(unsigned int i0, unsigned int i1, unsigned int j0, unsigned int j1); - - void checkXBoundariesAndSendEvent(float minX, float maxX); - - void checkYBoundariesAndSendEvent(float minY, float maxY); - - void checkZBoundariesAndSendEvent(); - - void doRotate(float newAngle); - - void rotateShape(float angle); + void restoreIndexRange(size_t * i0, size_t * i1, size_t * j0, size_t * j1); - /*! Return true, if object is to be removed. - * Used by MCWorld. */ - bool removing() const; - - /*! Get cached index range. - * Used by MCObjectGrid. */ - void restoreIndexRange(unsigned int * i0, unsigned int * i1, unsigned int * j0, unsigned int * j1); - - /*! Set index in worlds' object vector. - * Used by MCWorld. */ void setIndex(int index); - //! Set parent object. Used on composite objects. - void setParent(MCObject & parent); - - /*! Set object to be removed. Objects cannot be removed immediately, because - * they might be involved in collision calculations of other objects yet to - * be completed. Used by MCWorld. */ void setRemoving(bool flag); - void updateChildTransforms(); - - void updateCenter(); - - void setStatus(int bit, bool flag); - - bool testStatus(int bit) const; - - static MCTypeRegistry m_typeRegistry; - - unsigned int m_typeId; - - std::string m_typeName; - - float m_angle = 0; // Degrees - - float m_relativeAngle = 0; // Degrees - - int m_collisionLayer = 0; - - int m_index = -1; - - unsigned int m_i0 = 0; - - unsigned int m_i1 = 0; - - unsigned int m_j0 = 0; - - unsigned int m_j1 = 0; - - MCVector3dF m_initialLocation; - - int m_initialAngle = 0; - - MCVector3dF m_location; - - MCVector3dF m_relativeLocation; - - MCVector2dF m_initialCenter; - - MCVector2dF m_center; - - bool m_centerIsZero = false; - - MCShapePtr m_shape; - - typedef std::vector TimerEventObjectsList; - - static TimerEventObjectsList m_timerEventObjects; - - MCObject::ContactHash m_contacts; - - int m_timerEventObjectsIndex = -1; - - int m_status; - - Children m_children; - - MCObject * m_parent; + bool removing() const; - MCPhysicsComponent * m_physicsComponent; + class Impl; + std::unique_ptr m_impl; - //! Disable copy constructor and assignment. DISABLE_COPY(MCObject); DISABLE_ASSI(MCObject); + DISABLE_MOVE(MCObject); friend class MCObjectGrid; friend class MCObjectGridImpl; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcrandom.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mcrandom.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcrandom.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcrandom.cc 2020-01-06 23:07:24.000000000 +0000 @@ -25,36 +25,35 @@ #include #include -namespace -{ +namespace { const unsigned int LUT_SIZE = 1024; const unsigned int MOD_MASK = 0x3ff; -} +} // namespace //! Implementation class for MCRandom class MCRandomImpl { public: - MCRandomImpl(); - inline float getValue(); + MCRandomImpl(); + inline float getValue(); private: - void buildLUT(); + void buildLUT(); - mutable unsigned int m_valPtr; - std::vector m_data; - int m_seed; - bool m_isBuilt; - friend class MCRandom; + mutable unsigned int m_valPtr; + std::vector m_data; + int m_seed; + bool m_isBuilt; + friend class MCRandom; }; std::unique_ptr const MCRandom::m_impl(new MCRandomImpl); -MCRandomImpl::MCRandomImpl() : - m_valPtr(0), - m_data(LUT_SIZE, 0), - m_seed(0), - m_isBuilt(false) +MCRandomImpl::MCRandomImpl() + : m_valPtr(0) + , m_data(LUT_SIZE, 0) + , m_seed(0) + , m_isBuilt(false) { } @@ -63,7 +62,8 @@ std::mt19937 engine(m_seed); std::uniform_real_distribution dist(0, 1); - for (unsigned int i = 0; i < LUT_SIZE; i++) { + for (unsigned int i = 0; i < LUT_SIZE; i++) + { m_data[i] = dist(engine); } @@ -72,7 +72,8 @@ float MCRandomImpl::getValue() { - if (!MCRandomImpl::m_isBuilt) { + if (!MCRandomImpl::m_isBuilt) + { MCRandomImpl::buildLUT(); } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcrandom.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcrandom.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcrandom.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcrandom.hh 2020-01-06 23:07:24.000000000 +0000 @@ -22,7 +22,6 @@ #include "mcmacros.hh" - #include "mcvector2d.hh" #include "mcvector3d.hh" @@ -34,7 +33,6 @@ class MCRandom { public: - //! Get next random value [0.0..1.0] in the table static float getValue(); @@ -51,7 +49,6 @@ static void setSeed(int seed); private: - //! Constructor disabled MCRandom(); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcrecycler.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcrecycler.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcrecycler.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcrecycler.hh 2020-01-06 23:07:24.000000000 +0000 @@ -20,8 +20,8 @@ #ifndef MCRECYCLER_HH #define MCRECYCLER_HH -#include #include +#include /*! \class MCRecycler * \brief Generic object recycler. @@ -30,11 +30,10 @@ * cache. Objects to be stored must have a default constructor. * "Freed" Objects are moved to a free-list for fast creation later. * All created Objects are automatically deleted in the destructor of MCRecycler. */ -template +template class MCRecycler { public: - //! Constructor. MCRecycler(); @@ -54,7 +53,6 @@ void freeObjects(); private: - unsigned int deleteFreeObjects(); unsigned int deleteObjects(); @@ -66,29 +64,34 @@ FreeObjectPool m_freeObjs; }; -template +template MCRecycler::MCRecycler() -{} +{ +} -template +template T * MCRecycler::newObject() { T * p = nullptr; - if (m_freeObjs.size()) { + if (m_freeObjs.size()) + { p = m_freeObjs.top(); m_freeObjs.pop(); - } else { + } + else + { p = new T; m_objs.push_back(p); } return p; } -template +template unsigned int MCRecycler::deleteObjects() { unsigned int count = 0; - for (auto iter = m_objs.begin(); iter != m_objs.end(); iter++) { + for (auto iter = m_objs.begin(); iter != m_objs.end(); iter++) + { delete *iter; count++; } @@ -96,21 +99,22 @@ return count; } -template +template void MCRecycler::freeObject(T * p) { m_freeObjs.push(p); } -template +template void MCRecycler::freeObjects() { - for (auto iter = m_objs.begin(); iter != m_objs.end(); iter++) { + for (auto iter = m_objs.begin(); iter != m_objs.end(); iter++) + { m_freeObjs.push(*iter); } } -template +template MCRecycler::~MCRecycler() { deleteObjects(); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mctimerevent.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mctimerevent.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mctimerevent.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mctimerevent.cc 2020-01-06 23:07:24.000000000 +0000 @@ -29,12 +29,12 @@ }; MCTimerEventImpl::MCTimerEventImpl(unsigned int frequency) -: frequency(frequency) + : frequency(frequency) { } MCTimerEvent::MCTimerEvent(unsigned int frequency) -: m_pImpl(new MCTimerEventImpl(frequency)) + : m_pImpl(new MCTimerEventImpl(frequency)) { } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mctimerevent.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mctimerevent.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mctimerevent.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mctimerevent.hh 2020-01-06 23:07:24.000000000 +0000 @@ -30,7 +30,6 @@ class MCTimerEvent : public MCEvent { public: - /*! Constructor. * \param frequency The frequency of the timer. */ @@ -49,7 +48,6 @@ virtual unsigned int instanceTypeId() const; private: - DISABLE_COPY(MCTimerEvent); DISABLE_ASSI(MCTimerEvent); diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mctrigonom.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mctrigonom.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mctrigonom.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mctrigonom.cc 2020-01-06 23:07:24.000000000 +0000 @@ -20,14 +20,14 @@ #include "mctrigonom.hh" #include "mccast.hh" +#include #include -#include -namespace -{ - const unsigned int LutSize = 7200; - const float PI = 3.1415926536f; -} +namespace { +const size_t LUT_SIZE = 7200; +const float SCALE = 10; +const float PI = 3.1415926536f; +} // namespace //! Implementation class for MCTrigonom class MCTrigonomImpl @@ -36,41 +36,38 @@ MCTrigonomImpl(); private: - std::vector m_sin; - std::vector m_cos; + std::array m_sin; + std::array m_cos; friend class MCTrigonom; }; std::unique_ptr const MCTrigonom::m_pImpl(new MCTrigonomImpl); MCTrigonomImpl::MCTrigonomImpl() -: m_sin(LutSize, 0) -, m_cos(LutSize, 0) { - for (unsigned int i = 0; i < LutSize; i++) { + for (size_t i = 0; i < LUT_SIZE; i++) + { MCTrigonomImpl::m_sin.at(i) = - std::sin(MCTrigonom::degToRad(TO_FLOAT(i) / 10.0f - 3600)); + std::sin(MCTrigonom::degToRad(static_cast(i / SCALE - LUT_SIZE / 2))); MCTrigonomImpl::m_cos.at(i) = - std::cos(MCTrigonom::degToRad(TO_FLOAT(i) / 10.0f - 3600)); + std::cos(MCTrigonom::degToRad(static_cast(i / SCALE - LUT_SIZE / 2))); } } float MCTrigonom::degToRad(float angle) { - static const float DegToRad(PI / 180.0f); - return angle * DegToRad; + return angle * PI / 180.0f; } float MCTrigonom::radToDeg(float angle) { - static const float RadToDeg(180.0f / PI); - return angle * RadToDeg; + return angle * 180.0f / PI; } float MCTrigonom::sin(float angle) { - const int index = static_cast(angle * 10.0f) + 3600; - if (index >= 0 && index < static_cast(LutSize)) + const size_t index = static_cast(angle * SCALE) + LUT_SIZE / 2; + if (index < LUT_SIZE) { return m_pImpl->m_sin[index]; } @@ -79,8 +76,8 @@ float MCTrigonom::cos(float angle) { - const int index = static_cast(angle * 10.0f) + 3600; - if (index >= 0 && index < static_cast(LutSize)) + const size_t index = static_cast(angle * SCALE) + LUT_SIZE / 2; + if (index < LUT_SIZE) { return m_pImpl->m_cos[index]; } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mctrigonom.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mctrigonom.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mctrigonom.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mctrigonom.hh 2020-01-06 23:07:24.000000000 +0000 @@ -38,7 +38,6 @@ class MCTrigonom { public: - //! Convert degree to radians static float degToRad(float angle); @@ -52,7 +51,6 @@ static float cos(float angle); private: - //! Disabled constructor. MCTrigonom(); @@ -63,4 +61,3 @@ }; #endif // MCTRIGONOM_HH - diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mctyperegistry.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mctyperegistry.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mctyperegistry.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mctyperegistry.cc 2020-01-06 23:07:24.000000000 +0000 @@ -20,7 +20,7 @@ #include "mctyperegistry.hh" MCTypeRegistry::MCTypeRegistry() - : m_typeIdCount(1) + : m_typeIdCount(1) { } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mctyperegistry.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mctyperegistry.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mctyperegistry.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mctyperegistry.hh 2020-01-06 23:07:24.000000000 +0000 @@ -20,16 +20,12 @@ #ifndef MCTYPEREGISTRY_HH #define MCTYPEREGISTRY_HH - - - #include #include class MCTypeRegistry { public: - MCTypeRegistry(); //! \brief Register a new type and get a unique type id. @@ -39,7 +35,6 @@ unsigned int getTypeIdForName(const std::string & typeName); private: - typedef std::unordered_map TypeHash; TypeHash m_typeHash; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcvector2d.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcvector2d.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcvector2d.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcvector2d.hh 2020-01-06 23:07:24.000000000 +0000 @@ -14,7 +14,7 @@ // You should have received a copy of the GNU Lesser General // Public License along with this library; if not, write to the // Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -// Boston, MA 02110-1301 USA +// Boston, MA 02110-1301 USA // #ifndef MCVECTOR2D_HH @@ -39,101 +39,102 @@ * // Dot product * cout << a.dot(b) << endl; * - */ + */ -template +template class MCVector2d { public: - //! Constructor MCVector2d(); //! Constructor - explicit MCVector2d(T i, T j = 0); + MCVector2d(T i, T j); //! Copy constructor - template + template MCVector2d(const MCVector2d & r); //! Move constructor - template + template MCVector2d(const MCVector2d && r); //! Destructor - inline ~MCVector2d() {} + inline ~MCVector2d() + { + } //! Assignment - template - MCVector2d & operator = (const MCVector2d & r); + template + MCVector2d & operator=(const MCVector2d & r); //! Move assignment - template - MCVector2d & operator = (const MCVector2d && r); + template + MCVector2d & operator=(const MCVector2d && r); //! Cross product. Returns the resulting component. - template - T operator % (const MCVector2d & r) const; + template + T operator%(const MCVector2d & r) const; //! Dot product - template + template T dot(const MCVector2d & r) const; //! Component product - template + template MCVector2d comp(const MCVector2d & r) const; //! Component product + store - template + template MCVector2d & compStore(const MCVector2d & r); - + //! Multiplication - template - MCVector2d operator * (S n) const; + template + MCVector2d operator*(S n) const; //! Vector multiplication - template - MCVector2d operator * (const MCVector2d & r) const; + template + MCVector2d operator*(const MCVector2d & r) const; //! Division - template - MCVector2d operator / (S n) const; + template + MCVector2d operator/(S n) const; //! Vector division - template - MCVector2d operator / (const MCVector2d & r) const; + template + MCVector2d operator/(const MCVector2d & r) const; //! Vector sum - template - MCVector2d operator + (const MCVector2d & r) const; + template + MCVector2d operator+(const MCVector2d & r) const; //! Vector subtraction - template - MCVector2d operator - (const MCVector2d & r) const; + template + MCVector2d operator-(const MCVector2d & r) const; //! *= - template - MCVector2d & operator *= (S n); + template + MCVector2d & operator*=(S n); //! *= - template - MCVector2d & operator *= (const MCVector2d & r); + template + MCVector2d & operator*=(const MCVector2d & r); //! /= - template - MCVector2d & operator /= (S n); + template + MCVector2d & operator/=(S n); //! /= - template - MCVector2d & operator /= (const MCVector2d & r); + template + MCVector2d & operator/=(const MCVector2d & r); //! += - template - MCVector2d & operator += (const MCVector2d & r); + template + MCVector2d & operator+=(const MCVector2d & r); //! -= - template - MCVector2d & operator -= (const MCVector2d & r); + template + MCVector2d & operator-=(const MCVector2d & r); //! Get length inline T length() const; @@ -193,14 +194,13 @@ inline T j() const; //! Write to stream - friend std::ostream & operator << (std::ostream & out, const MCVector2d & v) + friend std::ostream & operator<<(std::ostream & out, const MCVector2d & v) { out << "[ " << v.m_i << ", " << v.m_j << " ]"; return out; } private: - //! Components T m_i, m_j; }; @@ -208,35 +208,39 @@ using MCVector2dF = MCVector2d; using MCVector2dFR = const MCVector2dF &; -template -MCVector2d::MCVector2d() : - m_i(0), - m_j(0) -{} - -template -MCVector2d::MCVector2d(T newI, T newJ) : - m_i(newI), - m_j(newJ) -{} - -template -template -MCVector2d::MCVector2d(const MCVector2d & r) : - m_i(r.i()), - m_j(r.j()) -{} - -template -template -MCVector2d::MCVector2d(const MCVector2d && r) : - m_i(r.i()), - m_j(r.j()) -{} - -template -template -MCVector2d & MCVector2d::operator = (const MCVector2d & r) +template +MCVector2d::MCVector2d() + : m_i(0) + , m_j(0) +{ +} + +template +MCVector2d::MCVector2d(T newI, T newJ) + : m_i(newI) + , m_j(newJ) +{ +} + +template +template +MCVector2d::MCVector2d(const MCVector2d & r) + : m_i(r.i()) + , m_j(r.j()) +{ +} + +template +template +MCVector2d::MCVector2d(const MCVector2d && r) + : m_i(r.i()) + , m_j(r.j()) +{ +} + +template +template +MCVector2d & MCVector2d::operator=(const MCVector2d & r) { if (reinterpret_cast(&r) != reinterpret_cast(this)) { @@ -247,9 +251,9 @@ return *this; } -template -template -MCVector2d & MCVector2d::operator = (const MCVector2d && r) +template +template +MCVector2d & MCVector2d::operator=(const MCVector2d && r) { m_i = r.i(); m_j = r.j(); @@ -257,29 +261,29 @@ return *this; } -template -template -T MCVector2d::operator % (const MCVector2d & r) const +template +template +T MCVector2d::operator%(const MCVector2d & r) const { return m_i * r.j() - m_j * r.i(); } -template -template +template +template T MCVector2d::dot(const MCVector2d & r) const { return m_i * r.i() + m_j * r.j(); } -template -template +template +template MCVector2d MCVector2d::comp(const MCVector2d & r) const { return MCVector2d(m_i * r.i(), m_j * r.j()); } -template -template +template +template MCVector2d & MCVector2d::compStore(const MCVector2d & r) { m_i = m_i * r.i(); @@ -288,109 +292,109 @@ return *this; } -template -template -MCVector2d MCVector2d::operator * (S n) const +template +template +MCVector2d MCVector2d::operator*(S n) const { return MCVector2d(m_i * n, m_j * n); } -template -template -MCVector2d MCVector2d::operator * (const MCVector2d & r) const +template +template +MCVector2d MCVector2d::operator*(const MCVector2d & r) const { return MCVector2d(m_i * r.i(), m_j * r.j()); } -template -template -MCVector2d & MCVector2d::operator *= (S n) +template +template +MCVector2d & MCVector2d::operator*=(S n) { m_i *= n; m_j *= n; return *this; } -template -template -MCVector2d & MCVector2d::operator *= (const MCVector2d & r) +template +template +MCVector2d & MCVector2d::operator*=(const MCVector2d & r) { m_i *= r.i(); m_j *= r.j(); return *this; } -template -template -MCVector2d MCVector2d::operator / (S n) const +template +template +MCVector2d MCVector2d::operator/(S n) const { return MCVector2d(m_i / n, m_j / n); } -template -template -MCVector2d MCVector2d::operator / (const MCVector2d & r) const +template +template +MCVector2d MCVector2d::operator/(const MCVector2d & r) const { return MCVector2d(m_i / r.i(), m_j / r.j()); } -template -template -MCVector2d & MCVector2d::operator /= (S n) +template +template +MCVector2d & MCVector2d::operator/=(S n) { m_i /= n; m_j /= n; return *this; } -template -template -MCVector2d & MCVector2d::operator /= (const MCVector2d & r) +template +template +MCVector2d & MCVector2d::operator/=(const MCVector2d & r) { m_i /= r.i(); m_j /= r.j(); return *this; } -template -template -MCVector2d MCVector2d::operator + (const MCVector2d & r) const +template +template +MCVector2d MCVector2d::operator+(const MCVector2d & r) const { return MCVector2d(m_i + r.i(), m_j + r.j()); } -template -template -MCVector2d & MCVector2d::operator += (const MCVector2d & r) +template +template +MCVector2d & MCVector2d::operator+=(const MCVector2d & r) { m_i += r.i(); m_j += r.j(); return *this; } -template -template -MCVector2d MCVector2d::operator - (const MCVector2d & r) const +template +template +MCVector2d MCVector2d::operator-(const MCVector2d & r) const { return MCVector2d(m_i - r.i(), m_j - r.j()); } -template -template -MCVector2d & MCVector2d::operator -= (const MCVector2d & r) +template +template +MCVector2d & MCVector2d::operator-=(const MCVector2d & r) { m_i -= r.i(); m_j -= r.j(); return *this; } -template +template T MCVector2d::length() const { return std::sqrt(m_i * m_i + m_j * m_j); } -template +template T MCVector2d::lengthFast() const { const T a = std::abs(m_i); @@ -399,13 +403,13 @@ return a + b - m / 2; } -template +template T MCVector2d::lengthSquared() const { return m_i * m_i + m_j * m_j; } -template +template void MCVector2d::normalize() { if (!isZero()) @@ -416,7 +420,7 @@ } } -template +template void MCVector2d::normalizeFast() { if (!isZero()) @@ -427,7 +431,7 @@ } } -template +template MCVector2d MCVector2d::normalized() const { if (!isZero()) @@ -439,7 +443,7 @@ return MCVector2d(); } -template +template MCVector2d MCVector2d::normalizedFast() const { if (!isZero()) @@ -451,64 +455,64 @@ return MCVector2d(); } -template +template void MCVector2d::invert() { m_i = -m_i; m_j = -m_j; } -template +template MCVector2d MCVector2d::inverted() const { return MCVector2d(-m_i, -m_j); } -template +template MCVector2d MCVector2d::projection(const MCVector2d & a, const MCVector2d & b) { return b * a.dot(b) / b.lengthSquared(); } -template +template void MCVector2d::set(T newI, T newJ) { m_i = newI; m_j = newJ; } -template +template void MCVector2d::setI(T newI) { m_i = newI; } -template +template void MCVector2d::setJ(T newJ) { m_j = newJ; } -template +template T MCVector2d::i() const { return m_i; } -template +template T MCVector2d::j() const { return m_j; } -template +template void MCVector2d::setZero() { m_i = 0; m_j = 0; } -template +template bool MCVector2d::isZero() const { if (std::numeric_limits::is_exact) @@ -517,13 +521,11 @@ } else { - return - std::abs(m_i) <= std::numeric_limits::epsilon() && - std::abs(m_j) <= std::numeric_limits::epsilon(); + return std::abs(m_i) <= std::numeric_limits::epsilon() && std::abs(m_j) <= std::numeric_limits::epsilon(); } } -template +template void MCVector2d::clamp(T maxLength) { const T l = length(); @@ -536,7 +538,7 @@ } } -template +template void MCVector2d::clampFast(T maxLength) { const T l = lengthFast(); @@ -550,11 +552,10 @@ } // Unary negation -template -MCVector2d operator - (const MCVector2d & r) +template +MCVector2d operator-(const MCVector2d & r) { return MCVector2d(-r.i(), -r.j()); } #endif // MCVECTOR2D_HH - diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcvector3d.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcvector3d.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcvector3d.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcvector3d.hh 2020-01-06 23:07:24.000000000 +0000 @@ -14,7 +14,7 @@ // You should have received a copy of the GNU Lesser General // Public License along with this library; if not, write to the // Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -// Boston, MA 02110-1301 USA +// Boston, MA 02110-1301 USA // #ifndef MCVECTOR3D_HH @@ -41,97 +41,101 @@ * // Dot product * cout << a.dot(b) << endl; * - */ + */ -template +template class MCVector3d { public: - //! Constructor MCVector3d(); //! Constructor - explicit MCVector3d(T i, T j = 0, T k = 0); + MCVector3d(T i, T j); + + //! Constructor + MCVector3d(T i, T j, T k); //! Constructor - template + template MCVector3d(const MCVector2d & r, U k = 0); //! Copy constructor - template + template MCVector3d(const MCVector3d & r); //! Move constructor - template + template MCVector3d(const MCVector3d && r); //! Destructor - inline ~MCVector3d() {} + inline ~MCVector3d() + { + } //! Type conversion to MCVector2d - template + template operator MCVector2d() const; //! Assignment - template - MCVector3d & operator = (const MCVector3d & r); + template + MCVector3d & operator=(const MCVector3d & r); //! Move assignment - template - MCVector3d & operator = (const MCVector3d && r); + template + MCVector3d & operator=(const MCVector3d && r); //! Cross product. Returns the resulting vector. - template - MCVector3d operator % (const MCVector3d & r) const; + template + MCVector3d operator%(const MCVector3d & r) const; //! Dot product - template + template T dot(const MCVector3d & r) const; //! Component product - template + template MCVector3d comp(const MCVector3d & r) const; //! Component product + store - template + template MCVector3d & compStore(const MCVector3d & r); - + //! Multiplication - template - MCVector3d operator * (S n) const; - MCVector3d operator * (const MCVector3d & n) const; + template + MCVector3d operator*(S n) const; + MCVector3d operator*(const MCVector3d & n) const; //! Division - template - MCVector3d operator / (S n) const; - MCVector3d operator / (const MCVector3d & n) const; + template + MCVector3d operator/(S n) const; + MCVector3d operator/(const MCVector3d & n) const; //! Vector sum - template - MCVector3d operator + (const MCVector3d & r) const; + template + MCVector3d operator+(const MCVector3d & r) const; //! Vector subtraction - template - MCVector3d operator - (const MCVector3d & r) const; + template + MCVector3d operator-(const MCVector3d & r) const; //! *= - template - MCVector3d & operator *= (S n); - MCVector3d & operator *= (const MCVector3d & n); + template + MCVector3d & operator*=(S n); + MCVector3d & operator*=(const MCVector3d & n); //! /= - template - MCVector3d & operator /= (S n); - MCVector3d & operator /= (const MCVector3d & n); + template + MCVector3d & operator/=(S n); + MCVector3d & operator/=(const MCVector3d & n); //! += - template - MCVector3d & operator += (const MCVector3d & r); + template + MCVector3d & operator+=(const MCVector3d & r); //! -= - template - MCVector3d & operator -= (const MCVector3d & r); + template + MCVector3d & operator-=(const MCVector3d & r); //! Get length. inline T length() const; @@ -197,14 +201,13 @@ inline T k() const; //! Write to stream - friend std::ostream & operator << (std::ostream & out, const MCVector3d & v) + friend std::ostream & operator<<(std::ostream & out, const MCVector3d & v) { out << "[ " << v.i() << ", " << v.j() << ", " << v.k() << " ]"; return out; } private: - //! Components T m_i, m_j, m_k, padding; }; @@ -212,54 +215,67 @@ using MCVector3dF = MCVector3d; using MCVector3dFR = const MCVector3dF &; -template -MCVector3d::MCVector3d() : - m_i(0), - m_j(0), - m_k(0) -{} - -template -MCVector3d::MCVector3d(T newI, T newJ, T newK) : - m_i(newI), - m_j(newJ), - m_k(newK) -{} - -template -template -MCVector3d::MCVector3d(const MCVector3d & r) : - m_i(r.i()), - m_j(r.j()), - m_k(r.k()) -{} - -template -template -MCVector3d::MCVector3d(const MCVector3d && r) : - m_i(r.i()), - m_j(r.j()), - m_k(r.k()) -{} - -template -template -MCVector3d::MCVector3d(const MCVector2d & r, U k) : - m_i(r.i()), - m_j(r.j()), - m_k(k) -{} +template +MCVector3d::MCVector3d() + : m_i(0) + , m_j(0) + , m_k(0) +{ +} + +template +MCVector3d::MCVector3d(T newI, T newJ) + : m_i(newI) + , m_j(newJ) + , m_k(0) +{ +} -template -template +template +MCVector3d::MCVector3d(T newI, T newJ, T newK) + : m_i(newI) + , m_j(newJ) + , m_k(newK) +{ +} + +template +template +MCVector3d::MCVector3d(const MCVector3d & r) + : m_i(r.i()) + , m_j(r.j()) + , m_k(r.k()) +{ +} + +template +template +MCVector3d::MCVector3d(const MCVector3d && r) + : m_i(r.i()) + , m_j(r.j()) + , m_k(r.k()) +{ +} + +template +template +MCVector3d::MCVector3d(const MCVector2d & r, U k) + : m_i(r.i()) + , m_j(r.j()) + , m_k(k) +{ +} + +template +template MCVector3d::operator MCVector2d() const { return MCVector2d(m_i, m_j); } -template -template -MCVector3d & MCVector3d::operator = (const MCVector3d & r) +template +template +MCVector3d & MCVector3d::operator=(const MCVector3d & r) { if (reinterpret_cast(&r) != reinterpret_cast(this)) { @@ -271,9 +287,9 @@ return *this; } -template -template -MCVector3d & MCVector3d::operator = (const MCVector3d && r) +template +template +MCVector3d & MCVector3d::operator=(const MCVector3d && r) { m_i = r.i(); m_j = r.j(); @@ -282,9 +298,9 @@ return *this; } -template -template -MCVector3d MCVector3d::operator % (const MCVector3d & r) const +template +template +MCVector3d MCVector3d::operator%(const MCVector3d & r) const { T _i = m_j * r.k() - r.j() * m_k; T _j = m_i * r.k() - r.i() * m_k; @@ -293,47 +309,47 @@ return MCVector3d(_i, -_j, _k); } -template -template +template +template T MCVector3d::dot(const MCVector3d & r) const { return m_i * r.i() + m_j * r.j() + m_k * r.k(); } -template -template +template +template MCVector3d MCVector3d::comp(const MCVector3d & r) const { return MCVector3d(m_i * r.i(), m_j * r.j(), m_k * r.k()); } -template -template +template +template MCVector3d & MCVector3d::compStore(const MCVector3d & r) { m_i = m_i * r.i(); m_j = m_j * r.j(); m_k = m_k * r.k(); - + return *this; } -template -template -MCVector3d MCVector3d::operator * (S n) const +template +template +MCVector3d MCVector3d::operator*(S n) const { return MCVector3d(m_i * n, m_j * n, m_k * n); } -template -MCVector3d MCVector3d::operator * (const MCVector3d & n) const +template +MCVector3d MCVector3d::operator*(const MCVector3d & n) const { return MCVector3d(m_i * n.m_i, m_j * n.m_j, m_k * n.m_k); } -template -template -MCVector3d & MCVector3d::operator *= (S n) +template +template +MCVector3d & MCVector3d::operator*=(S n) { m_i *= n; m_j *= n; @@ -341,8 +357,8 @@ return *this; } -template -MCVector3d & MCVector3d::operator *= (const MCVector3d & n) +template +MCVector3d & MCVector3d::operator*=(const MCVector3d & n) { m_i *= n.m_i; m_j *= n.m_j; @@ -350,22 +366,22 @@ return *this; } -template -template -MCVector3d MCVector3d::operator / (S n) const +template +template +MCVector3d MCVector3d::operator/(S n) const { return MCVector3d(m_i / n, m_j / n, m_k / n); } -template -MCVector3d MCVector3d::operator / (const MCVector3d & n) const +template +MCVector3d MCVector3d::operator/(const MCVector3d & n) const { return MCVector3d(m_i / n.m_i, m_j / n.m_j, m_k / n.m_k); } -template -template -MCVector3d & MCVector3d::operator /= (S n) +template +template +MCVector3d & MCVector3d::operator/=(S n) { m_i /= n; m_j /= n; @@ -373,8 +389,8 @@ return *this; } -template -MCVector3d & MCVector3d::operator /= (const MCVector3d & n) +template +MCVector3d & MCVector3d::operator/=(const MCVector3d & n) { m_i /= n.m_i; m_j /= n.m_j; @@ -382,16 +398,16 @@ return *this; } -template -template -MCVector3d MCVector3d::operator + (const MCVector3d & r) const +template +template +MCVector3d MCVector3d::operator+(const MCVector3d & r) const { return MCVector3d(m_i + r.i(), m_j + r.j(), m_k + r.k()); } -template -template -MCVector3d & MCVector3d::operator += (const MCVector3d & r) +template +template +MCVector3d & MCVector3d::operator+=(const MCVector3d & r) { m_i += r.i(); m_j += r.j(); @@ -399,16 +415,16 @@ return *this; } -template -template -MCVector3d MCVector3d::operator - (const MCVector3d & r) const +template +template +MCVector3d MCVector3d::operator-(const MCVector3d & r) const { return MCVector3d(m_i - r.i(), m_j - r.j(), m_k - r.k()); } -template -template -MCVector3d & MCVector3d::operator -= (const MCVector3d & r) +template +template +MCVector3d & MCVector3d::operator-=(const MCVector3d & r) { m_i -= r.i(); m_j -= r.j(); @@ -416,13 +432,13 @@ return *this; } -template +template T MCVector3d::length() const { return std::sqrt(m_i * m_i + m_j * m_j + m_k * m_k); } -template +template T MCVector3d::lengthFast() const { const MCVector2d ij(m_i, m_j); @@ -431,13 +447,13 @@ return lk.lengthFast(); } -template +template T MCVector3d::lengthSquared() const { return m_i * m_i + m_j * m_j + m_k * m_k; } -template +template void MCVector3d::normalize() { if (!isZero()) @@ -449,7 +465,7 @@ } } -template +template void MCVector3d::normalizeFast() { if (!isZero()) @@ -461,7 +477,7 @@ } } -template +template MCVector3d MCVector3d::normalized() const { if (!isZero()) @@ -473,7 +489,7 @@ return MCVector3d(); } -template +template MCVector3d MCVector3d::normalizedFast() const { if (!isZero()) @@ -485,7 +501,7 @@ return MCVector3d(); } -template +template void MCVector3d::invert() { m_i = -m_i; @@ -493,19 +509,19 @@ m_k = -m_k; } -template +template MCVector3d MCVector3d::inverted() const { return MCVector3d(-m_i, -m_j, -m_k); } -template +template MCVector3d MCVector3d::projection(const MCVector3d & a, const MCVector3d & b) { return b * a.dot(b) / b.lengthSquared(); } -template +template void MCVector3d::set(T newI, T newJ, T newK) { m_i = newI; @@ -513,43 +529,43 @@ m_k = newK; } -template +template void MCVector3d::setI(T newI) { m_i = newI; } -template +template void MCVector3d::setJ(T newJ) { m_j = newJ; } -template +template void MCVector3d::setK(T newK) { m_k = newK; } -template +template T MCVector3d::i() const { return m_i; } -template +template T MCVector3d::j() const { return m_j; } -template +template T MCVector3d::k() const { return m_k; } -template +template void MCVector3d::setZero() { m_i = 0; @@ -557,7 +573,7 @@ m_k = 0; } -template +template bool MCVector3d::isZero() const { if (std::numeric_limits::is_exact) @@ -566,14 +582,11 @@ } else { - return - std::abs(m_i) <= std::numeric_limits::epsilon() && - std::abs(m_j) <= std::numeric_limits::epsilon() && - std::abs(m_k) <= std::numeric_limits::epsilon(); + return std::abs(m_i) <= std::numeric_limits::epsilon() && std::abs(m_j) <= std::numeric_limits::epsilon() && std::abs(m_k) <= std::numeric_limits::epsilon(); } } -template +template void MCVector3d::clamp(T maxLength) { const T l = length(); @@ -588,7 +601,7 @@ } } -template +template void MCVector3d::clampFast(T maxLength) { const T l = lengthFast(); @@ -604,8 +617,8 @@ } // Unary negation -template -MCVector3d operator - (const MCVector3d & r) +template +MCVector3d operator-(const MCVector3d & r) { return MCVector3d(-r.i(), -r.j(), -r.k()); } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcvectoranimation.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mcvectoranimation.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcvectoranimation.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcvectoranimation.cc 2020-01-06 23:07:24.000000000 +0000 @@ -13,7 +13,7 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, // MA 02110-1301, USA. // @@ -21,23 +21,23 @@ #include MCVectorAnimation::MCVectorAnimation() -: m_vect(nullptr) -, m_steps(0) -, m_step(0) -, m_preDelay(0) -, m_postDelay(0) + : m_vect(nullptr) + , m_steps(0) + , m_step(0) + , m_preDelay(0) + , m_postDelay(0) { } void MCVectorAnimation::init(MCVector3dF & vect, const MCVector3dF & start, const MCVector3dF & end, - unsigned int steps, unsigned int preDelay, unsigned int postDelay) + size_t steps, size_t preDelay, size_t postDelay) { - m_delta = (end - start) / steps; - m_vect = &vect; - m_steps = steps; - m_step = 0; - *m_vect = start; - m_preDelay = preDelay; + m_delta = (end - start) / steps; + m_vect = &vect; + m_steps = steps; + m_step = 0; + *m_vect = start; + m_preDelay = preDelay; m_postDelay = postDelay; } @@ -64,6 +64,4 @@ return true; } -MCVectorAnimation::~MCVectorAnimation() -{ -} +MCVectorAnimation::~MCVectorAnimation() = default; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcvectoranimation.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcvectoranimation.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcvectoranimation.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcvectoranimation.hh 2020-01-06 23:07:24.000000000 +0000 @@ -13,15 +13,13 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, // MA 02110-1301, USA. // #ifndef MCVECTORANIMATION_HH #define MCVECTORANIMATION_HH - - #include "mcmacros.hh" #include "mcvector3d.hh" @@ -37,7 +35,6 @@ class MCVectorAnimation { public: - //! Constructor. MCVectorAnimation(); @@ -46,14 +43,13 @@ //! Initialize the animation. void init( - MCVector3dF & vect, MCVector3dFR start, MCVector3dFR & end, unsigned int steps, - unsigned int preDelay = 0, unsigned int postDelay = 0); + MCVector3dF & vect, MCVector3dFR start, MCVector3dFR & end, size_t steps, + size_t preDelay = 0, size_t postDelay = 0); //! Update the animation. Returns true when done. bool update(); private: - DISABLE_COPY(MCVectorAnimation); DISABLE_ASSI(MCVectorAnimation); @@ -65,14 +61,13 @@ MCVector3dF m_delta; - unsigned int m_steps; + size_t m_steps; - unsigned int m_step; + size_t m_step; - unsigned int m_preDelay; + size_t m_preDelay; - unsigned int m_postDelay; + size_t m_postDelay; }; #endif // MCVECTORANIMATION_HH - diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcworld.cc dustrac-2.0.5/src/game/MiniCore/src/Core/mcworld.cc --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcworld.cc 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcworld.cc 2020-01-06 23:07:24.000000000 +0000 @@ -31,42 +31,40 @@ #include "mcobjectgrid.hh" #include "mcparticle.hh" #include "mcphysicscomponent.hh" +#include "mcrectshape.hh" #include "mcshape.hh" #include "mcshapeview.hh" -#include "mcrectshape.hh" #include "mctrigonom.hh" #include "mcworldrenderer.hh" #include +#include + +MCWorld * MCWorld::m_instance = nullptr; -MCWorld * MCWorld::m_instance = nullptr; -float MCWorld::m_metersPerUnit = 1.0; -float MCWorld::m_metersPerUnitSquared = 1.0; +float MCWorld::m_metersPerUnit = 1.0; + +float MCWorld::m_metersPerUnitSquared = 1.0; namespace { const int REMOVED_INDEX = -1; } MCWorld::MCWorld() -: m_renderer(new MCWorldRenderer) -, m_forceRegistry(new MCForceRegistry) -, m_collisionDetector(new MCCollisionDetector) -, m_impulseGenerator(new MCImpulseGenerator) -, m_objectGrid(nullptr) -, m_minX(0) -, m_maxX(0) -, m_minY(0) -, m_maxY(0) -, m_minZ(0) -, m_maxZ(0) -, m_leftWallObject(nullptr) -, m_rightWallObject(nullptr) -, m_topWallObject(nullptr) -, m_bottomWallObject(nullptr) -, m_numCollisions(0) -, m_resolverLoopCount(5) -, m_resolverStep(1.0 / m_resolverLoopCount) -, m_gravity(MCVector3dF(0, 0, -9.81)) + : m_renderer(new MCWorldRenderer) + , m_forceRegistry(new MCForceRegistry) + , m_collisionDetector(new MCCollisionDetector) + , m_impulseGenerator(new MCImpulseGenerator) + , m_minX(0) + , m_maxX(0) + , m_minY(0) + , m_maxY(0) + , m_minZ(0) + , m_maxZ(0) + , m_numCollisions(0) + , m_resolverLoopCount(5) + , m_resolverStep(1.0f / m_resolverLoopCount) + , m_gravity(MCVector3dF(0, 0, -9.81f)) { if (!MCWorld::m_instance) { @@ -90,21 +88,15 @@ delete m_forceRegistry; delete m_collisionDetector; delete m_impulseGenerator; - delete m_objectGrid; MCWorld::m_instance = nullptr; - - delete m_leftWallObject; - delete m_rightWallObject; - delete m_topWallObject; - delete m_bottomWallObject; } void MCWorld::integrate(int step) { // Integrate and update all registered objects m_forceRegistry->update(); - for (auto && object : m_objs) + for (auto && object : m_objects) { if (object->isPhysicsObject() && !object->physicsComponent().isStationary()) { @@ -115,20 +107,14 @@ } } -void MCWorld::detectCollisions() -{ - // Check collisions for all registered objects - m_numCollisions = m_collisionDetector->detectCollisions(*m_objectGrid); -} - void MCWorld::generateImpulses() { - m_impulseGenerator->generateImpulsesFromDeepestContacts(m_objs); + m_impulseGenerator->generateImpulsesFromDeepestContacts(m_objects); } void MCWorld::resolvePositions(float accuracy) { - m_impulseGenerator->resolvePositions(m_objs, accuracy); + m_impulseGenerator->resolvePositions(m_objects, accuracy); } void MCWorld::prepareRendering(MCCamera * camera) @@ -162,7 +148,7 @@ // This does the same as removeObject(), but the removal // process here is simpler as all data structures will be // cleared and all objects will be removed at once. - for (MCObject * object : m_objs) + for (auto && object : m_objects) { object->deleteContacts(); object->physicsComponent().reset(); @@ -176,13 +162,14 @@ m_renderer->clear(); m_objectGrid->removeAll(); - m_objs.clear(); + m_objects.clear(); m_removeObjs.clear(); + m_collisionDetector->clear(); } void MCWorld::setDimensions( - float minX, float maxX, float minY, float maxY, float minZ, float maxZ, - float metersPerUnit, bool addAreaWalls, int gridSize) + float minX, float maxX, float minY, float maxY, float minZ, float maxZ, + float metersPerUnit, bool addAreaWalls, size_t gridSize) { assert(maxX - minX > 0); assert(maxY - minY > 0); @@ -201,11 +188,8 @@ // Init objectGrid const float leafWidth = (maxX - minX) / gridSize; const float leafHeight = (maxY - minY) / gridSize; - delete m_objectGrid; - m_objectGrid = new MCObjectGrid( - m_minX, m_minY, - m_maxX, m_maxY, - leafWidth, leafHeight); + + m_objectGrid = std::make_unique(m_minX, m_minY, m_maxX, m_maxY, leafWidth, leafHeight); if (addAreaWalls) { @@ -216,13 +200,12 @@ if (m_leftWallObject) { removeObjectNow(*m_leftWallObject); - delete m_leftWallObject; } const float wallRestitution = 0.25f; - m_leftWallObject = new MCObject("LEFT_WALL"); - m_leftWallObject->setShape(MCShapePtr(new MCRectShape(nullptr, w, h))); + m_leftWallObject = std::make_unique("__WORLD_LEFT_WALL"); + m_leftWallObject->setShape(std::make_shared(nullptr, w, h)); m_leftWallObject->physicsComponent().setMass(0, true); m_leftWallObject->physicsComponent().setRestitution(wallRestitution); m_leftWallObject->addToWorld(); @@ -231,11 +214,10 @@ if (m_rightWallObject) { removeObjectNow(*m_rightWallObject); - delete m_rightWallObject; } - m_rightWallObject = new MCObject("RIGHT_WALL"); - m_rightWallObject->setShape(MCShapePtr(new MCRectShape(nullptr, w, h))); + m_rightWallObject = std::make_unique("__WORLD_RIGHT_WALL"); + m_rightWallObject->setShape(std::make_shared(nullptr, w, h)); m_rightWallObject->physicsComponent().setMass(0, true); m_rightWallObject->physicsComponent().setRestitution(wallRestitution); m_rightWallObject->addToWorld(); @@ -244,11 +226,10 @@ if (m_topWallObject) { removeObjectNow(*m_topWallObject); - delete m_topWallObject; } - m_topWallObject = new MCObject("TOP_WALL"); - m_topWallObject->setShape(MCShapePtr(new MCRectShape(nullptr, w, h))); + m_topWallObject = std::make_unique("__WORLD_TOP_WALL"); + m_topWallObject->setShape(std::make_shared(nullptr, w, h)); m_topWallObject->physicsComponent().setMass(0, true); m_topWallObject->physicsComponent().setRestitution(wallRestitution); m_topWallObject->addToWorld(); @@ -257,16 +238,41 @@ if (m_bottomWallObject) { removeObjectNow(*m_bottomWallObject); - delete m_bottomWallObject; } - m_bottomWallObject = new MCObject("BOTTOM_WALL"); - m_bottomWallObject->setShape(MCShapePtr(new MCRectShape(nullptr, w, h))); + m_bottomWallObject = std::make_unique("__WORLD_BOTTOM_WALL"); + m_bottomWallObject->setShape(std::make_shared(nullptr, w, h)); m_bottomWallObject->physicsComponent().setMass(0, true); m_bottomWallObject->physicsComponent().setRestitution(wallRestitution); m_bottomWallObject->addToWorld(); m_bottomWallObject->translate(MCVector3dF(w / 2, -h / 2, 0)); } + else + { + if (m_leftWallObject) + { + removeObjectNow(*m_leftWallObject); + m_leftWallObject.reset(); + } + + if (m_rightWallObject) + { + removeObjectNow(*m_rightWallObject); + m_rightWallObject.reset(); + } + + if (m_topWallObject) + { + removeObjectNow(*m_topWallObject); + m_topWallObject.reset(); + } + + if (m_bottomWallObject) + { + removeObjectNow(*m_bottomWallObject); + m_bottomWallObject.reset(); + } + } } float MCWorld::minX() const @@ -299,9 +305,9 @@ return m_maxZ; } -int MCWorld::objectCount() const +size_t MCWorld::objectCount() const { - return static_cast(m_objs.size()); + return m_objects.size(); } void MCWorld::addObject(MCObject & object) @@ -313,8 +319,8 @@ m_renderer->addObject(object); // Add to object vector (O(1)) - m_objs.push_back(&object); - object.setIndex(static_cast(m_objs.size()) - 1); + m_objects.push_back(&object); + object.setIndex(static_cast(m_objects.size()) - 1); m_objectGrid->insert(object); @@ -323,8 +329,9 @@ if (object.physicsComponent().xyFriction() > FrictionThreshold) { m_forceRegistry->addForceGenerator( - MCForceGeneratorPtr(new MCFrictionGenerator( - object.physicsComponent().xyFriction(), object.physicsComponent().xyFriction())), object); + std::make_shared( + object.physicsComponent().xyFriction(), object.physicsComponent().xyFriction()), + object); } } } @@ -348,14 +355,11 @@ if (object.index() > REMOVED_INDEX || object.physicsComponent().isSleeping()) { object.setRemoving(true); - for (MCObject * obj : m_objs) + for (auto && obj : m_objects) { - if (obj != &object) + if (obj != &object && obj->isPhysicsObject()) { - if (obj->isPhysicsObject()) - { - obj->deleteContacts(object); - } + obj->deleteContacts(object); } } @@ -377,6 +381,7 @@ if (object.isPhysicsObject() && !object.bypassCollisions()) { m_objectGrid->remove(object); + m_collisionDetector->remove(object); } object.setRemoving(false); @@ -385,11 +390,11 @@ void MCWorld::removeObjectFromIntegration(MCObject & object) { // Remove from object vector (O(1)) - if (object.index() > REMOVED_INDEX && object.index() < static_cast(m_objs.size())) + if (object.index() > REMOVED_INDEX && object.index() < static_cast(m_objects.size())) { - m_objs[object.index()] = m_objs.back(); - m_objs[object.index()]->setIndex(object.index()); - m_objs.pop_back(); + m_objects[static_cast(object.index())] = m_objects.back(); + m_objects[static_cast(object.index())]->setIndex(object.index()); + m_objects.pop_back(); object.setIndex(REMOVED_INDEX); } } @@ -399,14 +404,14 @@ if (object.index() == REMOVED_INDEX) { // Add to object vector (O(1)) - m_objs.push_back(&object); - object.setIndex(static_cast(m_objs.size()) - 1); + m_objects.push_back(&object); + object.setIndex(static_cast(m_objects.size()) - 1); } } void MCWorld::processRemovedObjects() { - for (MCObject * obj : m_removeObjs) + for (auto && obj : m_removeObjs) { if (obj->removing()) { @@ -419,20 +424,18 @@ void MCWorld::processCollisions() { - detectCollisions(); - + // Check collisions for all registered objects + m_numCollisions = m_collisionDetector->detectCollisions(*m_objectGrid); if (m_numCollisions) { generateImpulses(); // Process contacts and generate impulses - m_collisionDetector->enablePrimaryCollisionEvents(false); - for (unsigned int i = 0; i < m_resolverLoopCount && m_numCollisions > 0; i++) + for (size_t i = 0; i < m_resolverLoopCount && m_numCollisions > 0; i++) { - detectCollisions(); + m_numCollisions = m_collisionDetector->iterateCurrentCollisions(); resolvePositions(m_resolverStep); } - m_collisionDetector->enablePrimaryCollisionEvents(true); } } @@ -454,9 +457,9 @@ processRemovedObjects(); } -MCWorld::ObjectVector MCWorld::objects() const +const MCWorld::ObjectVector & MCWorld::objects() const { - return m_objs; + return m_objects; } MCObjectGrid & MCWorld::objectGrid() const @@ -483,7 +486,7 @@ void MCWorld::setMetersPerUnit(float value) { - MCWorld::m_metersPerUnit = value; + MCWorld::m_metersPerUnit = value; MCWorld::m_metersPerUnitSquared = value * value; } @@ -508,7 +511,7 @@ units *= MCWorld::m_metersPerUnit; } -void MCWorld::setResolverLoopCount(unsigned int resolverLoopCount) +void MCWorld::setResolverLoopCount(size_t resolverLoopCount) { m_resolverLoopCount = resolverLoopCount; m_resolverStep = 1.0f / resolverLoopCount; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Core/mcworld.hh dustrac-2.0.5/src/game/MiniCore/src/Core/mcworld.hh --- dustrac-2.0.1/src/game/MiniCore/src/Core/mcworld.hh 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Core/mcworld.hh 2020-01-06 23:07:24.000000000 +0000 @@ -21,10 +21,11 @@ #define MCWORLD_HH #include "mcmacros.hh" +#include "mcrendergroup.hh" #include "mcvector2d.hh" #include "mcvector3d.hh" -#include "mcrendergroup.hh" +#include #include class MCCamera; @@ -51,7 +52,6 @@ class MCWorld { public: - typedef std::vector ObjectVector; //! Constructor. @@ -78,15 +78,15 @@ * detection performance. */ void setDimensions( - float minX, - float maxX, - float minY, - float maxY, - float minZ, - float maxZ, - float metersPerUnit = 1.0f, - bool addAreaWalls = true, - int gridSize = 128); + float minX, + float maxX, + float minY, + float maxY, + float minZ, + float maxZ, + float metersPerUnit = 1.0f, + bool addAreaWalls = true, + size_t gridSize = 128); /*! Set gravity vector used by default friction generators (on XY-plane). * The default is [0, 0, -9.81]. Set the gravity (acceleration) for objects @@ -173,22 +173,20 @@ //! Get maximum Z float maxZ() const; - //! \return size of the current integration vector - int objectCount() const; - /*! \brief Set collision resolver loop count. * Lower loop count results in faster collision calculations, but lower accuracy. */ - void setResolverLoopCount(unsigned int resolverLoopCount = 5); + void setResolverLoopCount(size_t resolverLoopCount = 5); -protected: + //! \return size of the current integration vector + size_t objectCount() const; //! Get registered objects - ObjectVector objects() const; + const ObjectVector & objects() const; private: - DISABLE_COPY(MCWorld); DISABLE_ASSI(MCWorld); + DISABLE_MOVE(MCWorld); void integrate(int step); @@ -198,8 +196,6 @@ void doRemoveObject(MCObject & object); - void detectCollisions(); - void generateImpulses(); void resolvePositions(float accuracy); @@ -216,7 +212,7 @@ MCImpulseGenerator * m_impulseGenerator; - MCObjectGrid * m_objectGrid; + std::unique_ptr m_objectGrid; static float m_metersPerUnit; @@ -224,21 +220,21 @@ float m_minX, m_maxX, m_minY, m_maxY, m_minZ, m_maxZ; - MCWorld::ObjectVector m_objs; + MCWorld::ObjectVector m_objects; MCWorld::ObjectVector m_removeObjs; - MCObject * m_leftWallObject; + std::unique_ptr m_leftWallObject; - MCObject * m_rightWallObject; + std::unique_ptr m_rightWallObject; - MCObject * m_topWallObject; + std::unique_ptr m_topWallObject; - MCObject * m_bottomWallObject; + std::unique_ptr m_bottomWallObject; - unsigned int m_numCollisions; + size_t m_numCollisions; - unsigned int m_resolverLoopCount; + size_t m_resolverLoopCount; float m_resolverStep; diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glew/glew.h dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glew/glew.h --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glew/glew.h 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glew/glew.h 2020-01-06 23:07:24.000000000 +0000 @@ -111,29 +111,29 @@ /* */ #ifndef APIENTRY #define GLEW_APIENTRY_DEFINED -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define APIENTRY __stdcall -# elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) -# define APIENTRY __stdcall -# else -# define APIENTRY -# endif +#if defined(__MINGW32__) || defined(__CYGWIN__) +#define APIENTRY __stdcall +#elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) +#define APIENTRY __stdcall +#else +#define APIENTRY +#endif #endif #ifndef GLAPI -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define GLAPI extern -# endif +#if defined(__MINGW32__) || defined(__CYGWIN__) +#define GLAPI extern +#endif #endif /* */ #ifndef CALLBACK #define GLEW_CALLBACK_DEFINED -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define CALLBACK __attribute__ ((__stdcall__)) -# elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) -# define CALLBACK __stdcall -# else -# define CALLBACK -# endif +#if defined(__MINGW32__) || defined(__CYGWIN__) +#define CALLBACK __attribute__((__stdcall__)) +#elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +#define CALLBACK __stdcall +#else +#define CALLBACK +#endif #endif /* and */ #ifndef WINGDIAPI @@ -143,32 +143,32 @@ /* */ #if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED) typedef unsigned short wchar_t; -# define _WCHAR_T_DEFINED +#define _WCHAR_T_DEFINED #endif /* */ #if !defined(_W64) -# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300 -# define _W64 __w64 -# else -# define _W64 -# endif +#if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300 +#define _W64 __w64 +#else +#define _W64 +#endif #endif #if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__) -# ifdef _WIN64 +#ifdef _WIN64 typedef __int64 ptrdiff_t; -# else +#else typedef _W64 int ptrdiff_t; -# endif -# define _PTRDIFF_T_DEFINED -# define _PTRDIFF_T_ +#endif +#define _PTRDIFF_T_DEFINED +#define _PTRDIFF_T_ #endif #ifndef GLAPI -# if defined(__MINGW32__) || defined(__CYGWIN__) -# define GLAPI extern -# else -# define GLAPI WINGDIAPI -# endif +#if defined(__MINGW32__) || defined(__CYGWIN__) +#define GLAPI extern +#else +#define GLAPI WINGDIAPI +#endif #endif #ifndef GLAPIENTRY @@ -185,13 +185,13 @@ */ #ifdef GLEW_STATIC -# define GLEWAPI extern +#define GLEWAPI extern +#else +#ifdef GLEW_BUILD +#define GLEWAPI extern __declspec(dllexport) #else -# ifdef GLEW_BUILD -# define GLEWAPI extern __declspec(dllexport) -# else -# define GLEWAPI extern __declspec(dllimport) -# endif +#define GLEWAPI extern __declspec(dllimport) +#endif #endif #else /* _UNIX */ @@ -224,15 +224,15 @@ */ #ifdef GLEW_STATIC -# define GLEWAPI extern +#define GLEWAPI extern +#else +#if defined(__GNUC__) && __GNUC__ >= 4 +#define GLEWAPI extern __attribute__((visibility("default"))) +#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) +#define GLEWAPI extern __global #else -# if defined(__GNUC__) && __GNUC__>=4 -# define GLEWAPI extern __attribute__ ((visibility("default"))) -# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) -# define GLEWAPI extern __global -# else -# define GLEWAPI extern -# endif +#define GLEWAPI extern +#endif #endif /* */ @@ -282,15 +282,15 @@ typedef signed long long GLint64EXT; typedef unsigned long long GLuint64EXT; #else -# if defined(__MINGW32__) || defined(__CYGWIN__) +#if defined(__MINGW32__) || defined(__CYGWIN__) #include -# endif +#endif typedef int64_t GLint64EXT; typedef uint64_t GLuint64EXT; #endif -typedef GLint64EXT GLint64; +typedef GLint64EXT GLint64; typedef GLuint64EXT GLuint64; -typedef struct __GLsync *GLsync; +typedef struct __GLsync * GLsync; typedef char GLchar; @@ -829,342 +829,342 @@ #define GL_ALL_ATTRIB_BITS 0x000fffff #define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff -GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value); -GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref); -GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); -GLAPI void GLAPIENTRY glArrayElement (GLint i); -GLAPI void GLAPIENTRY glBegin (GLenum mode); -GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture); -GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -GLAPI void GLAPIENTRY glCallList (GLuint list); -GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const GLvoid *lists); -GLAPI void GLAPIENTRY glClear (GLbitfield mask); -GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -GLAPI void GLAPIENTRY glClearDepth (GLclampd depth); -GLAPI void GLAPIENTRY glClearIndex (GLfloat c); -GLAPI void GLAPIENTRY glClearStencil (GLint s); -GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation); -GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v); -GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue); -GLAPI void GLAPIENTRY glColor3iv (const GLint *v); -GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue); -GLAPI void GLAPIENTRY glColor3sv (const GLshort *v); -GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v); -GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue); -GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v); -GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue); -GLAPI void GLAPIENTRY glColor3usv (const GLushort *v); -GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v); -GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha); -GLAPI void GLAPIENTRY glColor4iv (const GLint *v); -GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); -GLAPI void GLAPIENTRY glColor4sv (const GLshort *v); -GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v); -GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); -GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v); -GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); -GLAPI void GLAPIENTRY glColor4usv (const GLushort *v); -GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode); -GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void GLAPIENTRY glCullFace (GLenum mode); -GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range); -GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -GLAPI void GLAPIENTRY glDepthFunc (GLenum func); -GLAPI void GLAPIENTRY glDepthMask (GLboolean flag); -GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar); -GLAPI void GLAPIENTRY glDisable (GLenum cap); -GLAPI void GLAPIENTRY glDisableClientState (GLenum array); -GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode); -GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); -GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag); -GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag); -GLAPI void GLAPIENTRY glEnable (GLenum cap); -GLAPI void GLAPIENTRY glEnableClientState (GLenum array); -GLAPI void GLAPIENTRY glEnd (void); -GLAPI void GLAPIENTRY glEndList (void); -GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u); -GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u); -GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u); -GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u); -GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v); -GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u); -GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v); -GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u); -GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2); -GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -GLAPI void GLAPIENTRY glEvalPoint1 (GLint i); -GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j); -GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); -GLAPI void GLAPIENTRY glFinish (void); -GLAPI void GLAPIENTRY glFlush (void); -GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glFrontFace (GLenum mode); -GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range); -GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures); -GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params); -GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation); -GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params); -GLAPI GLenum GLAPIENTRY glGetError (void); -GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v); -GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v); -GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v); -GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values); -GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values); -GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values); -GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, GLvoid* *params); -GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask); -GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name); -GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); -GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode); -GLAPI void GLAPIENTRY glIndexMask (GLuint mask); -GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glIndexd (GLdouble c); -GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c); -GLAPI void GLAPIENTRY glIndexf (GLfloat c); -GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c); -GLAPI void GLAPIENTRY glIndexi (GLint c); -GLAPI void GLAPIENTRY glIndexiv (const GLint *c); -GLAPI void GLAPIENTRY glIndexs (GLshort c); -GLAPI void GLAPIENTRY glIndexsv (const GLshort *c); -GLAPI void GLAPIENTRY glIndexub (GLubyte c); -GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c); -GLAPI void GLAPIENTRY glInitNames (void); -GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); -GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap); -GLAPI GLboolean GLAPIENTRY glIsList (GLuint list); -GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture); -GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern); -GLAPI void GLAPIENTRY glLineWidth (GLfloat width); -GLAPI void GLAPIENTRY glListBase (GLuint base); -GLAPI void GLAPIENTRY glLoadIdentity (void); -GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m); -GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m); -GLAPI void GLAPIENTRY glLoadName (GLuint name); -GLAPI void GLAPIENTRY glLogicOp (GLenum opcode); -GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); -GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); -GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glMatrixMode (GLenum mode); -GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m); -GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m); -GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode); -GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); -GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v); -GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); -GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); -GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz); -GLAPI void GLAPIENTRY glNormal3iv (const GLint *v); -GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz); -GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v); -GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void GLAPIENTRY glPassThrough (GLfloat token); -GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); -GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); -GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); -GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param); -GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor); -GLAPI void GLAPIENTRY glPointSize (GLfloat size); -GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode); -GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask); -GLAPI void GLAPIENTRY glPopAttrib (void); -GLAPI void GLAPIENTRY glPopClientAttrib (void); -GLAPI void GLAPIENTRY glPopMatrix (void); -GLAPI void GLAPIENTRY glPopName (void); -GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); -GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask); -GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask); -GLAPI void GLAPIENTRY glPushMatrix (void); -GLAPI void GLAPIENTRY glPushName (GLuint name); -GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y); -GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y); -GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y); -GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y); -GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v); -GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z); -GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z); -GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v); -GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w); -GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v); -GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v); -GLAPI void GLAPIENTRY glReadBuffer (GLenum mode); -GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2); -GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2); -GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2); -GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2); -GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); -GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2); -GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode); -GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer); -GLAPI void GLAPIENTRY glShadeModel (GLenum mode); -GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -GLAPI void GLAPIENTRY glStencilMask (GLuint mask); -GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s); -GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s); -GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord1i (GLint s); -GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord1s (GLshort s); -GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t); -GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t); -GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t); -GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t); -GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); -GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); -GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r); -GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r); -GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q); -GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v); -GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v); -GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param); -GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); -GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y); -GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y); -GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y); -GLAPI void GLAPIENTRY glVertex2iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y); -GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z); -GLAPI void GLAPIENTRY glVertex3iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z); -GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v); -GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v); -GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w); -GLAPI void GLAPIENTRY glVertex4iv (const GLint *v); -GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v); -GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void GLAPIENTRY glAccum(GLenum op, GLfloat value); +GLAPI void GLAPIENTRY glAlphaFunc(GLenum func, GLclampf ref); +GLAPI GLboolean GLAPIENTRY glAreTexturesResident(GLsizei n, const GLuint * textures, GLboolean * residences); +GLAPI void GLAPIENTRY glArrayElement(GLint i); +GLAPI void GLAPIENTRY glBegin(GLenum mode); +GLAPI void GLAPIENTRY glBindTexture(GLenum target, GLuint texture); +GLAPI void GLAPIENTRY glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap); +GLAPI void GLAPIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor); +GLAPI void GLAPIENTRY glCallList(GLuint list); +GLAPI void GLAPIENTRY glCallLists(GLsizei n, GLenum type, const GLvoid * lists); +GLAPI void GLAPIENTRY glClear(GLbitfield mask); +GLAPI void GLAPIENTRY glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void GLAPIENTRY glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +GLAPI void GLAPIENTRY glClearDepth(GLclampd depth); +GLAPI void GLAPIENTRY glClearIndex(GLfloat c); +GLAPI void GLAPIENTRY glClearStencil(GLint s); +GLAPI void GLAPIENTRY glClipPlane(GLenum plane, const GLdouble * equation); +GLAPI void GLAPIENTRY glColor3b(GLbyte red, GLbyte green, GLbyte blue); +GLAPI void GLAPIENTRY glColor3bv(const GLbyte * v); +GLAPI void GLAPIENTRY glColor3d(GLdouble red, GLdouble green, GLdouble blue); +GLAPI void GLAPIENTRY glColor3dv(const GLdouble * v); +GLAPI void GLAPIENTRY glColor3f(GLfloat red, GLfloat green, GLfloat blue); +GLAPI void GLAPIENTRY glColor3fv(const GLfloat * v); +GLAPI void GLAPIENTRY glColor3i(GLint red, GLint green, GLint blue); +GLAPI void GLAPIENTRY glColor3iv(const GLint * v); +GLAPI void GLAPIENTRY glColor3s(GLshort red, GLshort green, GLshort blue); +GLAPI void GLAPIENTRY glColor3sv(const GLshort * v); +GLAPI void GLAPIENTRY glColor3ub(GLubyte red, GLubyte green, GLubyte blue); +GLAPI void GLAPIENTRY glColor3ubv(const GLubyte * v); +GLAPI void GLAPIENTRY glColor3ui(GLuint red, GLuint green, GLuint blue); +GLAPI void GLAPIENTRY glColor3uiv(const GLuint * v); +GLAPI void GLAPIENTRY glColor3us(GLushort red, GLushort green, GLushort blue); +GLAPI void GLAPIENTRY glColor3usv(const GLushort * v); +GLAPI void GLAPIENTRY glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +GLAPI void GLAPIENTRY glColor4bv(const GLbyte * v); +GLAPI void GLAPIENTRY glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +GLAPI void GLAPIENTRY glColor4dv(const GLdouble * v); +GLAPI void GLAPIENTRY glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void GLAPIENTRY glColor4fv(const GLfloat * v); +GLAPI void GLAPIENTRY glColor4i(GLint red, GLint green, GLint blue, GLint alpha); +GLAPI void GLAPIENTRY glColor4iv(const GLint * v); +GLAPI void GLAPIENTRY glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha); +GLAPI void GLAPIENTRY glColor4sv(const GLshort * v); +GLAPI void GLAPIENTRY glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +GLAPI void GLAPIENTRY glColor4ubv(const GLubyte * v); +GLAPI void GLAPIENTRY glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha); +GLAPI void GLAPIENTRY glColor4uiv(const GLuint * v); +GLAPI void GLAPIENTRY glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha); +GLAPI void GLAPIENTRY glColor4usv(const GLushort * v); +GLAPI void GLAPIENTRY glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GLAPI void GLAPIENTRY glColorMaterial(GLenum face, GLenum mode); +GLAPI void GLAPIENTRY glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); +GLAPI void GLAPIENTRY glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +GLAPI void GLAPIENTRY glCopyTexImage1D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void GLAPIENTRY glCopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void GLAPIENTRY glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void GLAPIENTRY glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void GLAPIENTRY glCullFace(GLenum mode); +GLAPI void GLAPIENTRY glDeleteLists(GLuint list, GLsizei range); +GLAPI void GLAPIENTRY glDeleteTextures(GLsizei n, const GLuint * textures); +GLAPI void GLAPIENTRY glDepthFunc(GLenum func); +GLAPI void GLAPIENTRY glDepthMask(GLboolean flag); +GLAPI void GLAPIENTRY glDepthRange(GLclampd zNear, GLclampd zFar); +GLAPI void GLAPIENTRY glDisable(GLenum cap); +GLAPI void GLAPIENTRY glDisableClientState(GLenum array); +GLAPI void GLAPIENTRY glDrawArrays(GLenum mode, GLint first, GLsizei count); +GLAPI void GLAPIENTRY glDrawBuffer(GLenum mode); +GLAPI void GLAPIENTRY glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices); +GLAPI void GLAPIENTRY glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); +GLAPI void GLAPIENTRY glEdgeFlag(GLboolean flag); +GLAPI void GLAPIENTRY glEdgeFlagPointer(GLsizei stride, const GLvoid * pointer); +GLAPI void GLAPIENTRY glEdgeFlagv(const GLboolean * flag); +GLAPI void GLAPIENTRY glEnable(GLenum cap); +GLAPI void GLAPIENTRY glEnableClientState(GLenum array); +GLAPI void GLAPIENTRY glEnd(void); +GLAPI void GLAPIENTRY glEndList(void); +GLAPI void GLAPIENTRY glEvalCoord1d(GLdouble u); +GLAPI void GLAPIENTRY glEvalCoord1dv(const GLdouble * u); +GLAPI void GLAPIENTRY glEvalCoord1f(GLfloat u); +GLAPI void GLAPIENTRY glEvalCoord1fv(const GLfloat * u); +GLAPI void GLAPIENTRY glEvalCoord2d(GLdouble u, GLdouble v); +GLAPI void GLAPIENTRY glEvalCoord2dv(const GLdouble * u); +GLAPI void GLAPIENTRY glEvalCoord2f(GLfloat u, GLfloat v); +GLAPI void GLAPIENTRY glEvalCoord2fv(const GLfloat * u); +GLAPI void GLAPIENTRY glEvalMesh1(GLenum mode, GLint i1, GLint i2); +GLAPI void GLAPIENTRY glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +GLAPI void GLAPIENTRY glEvalPoint1(GLint i); +GLAPI void GLAPIENTRY glEvalPoint2(GLint i, GLint j); +GLAPI void GLAPIENTRY glFeedbackBuffer(GLsizei size, GLenum type, GLfloat * buffer); +GLAPI void GLAPIENTRY glFinish(void); +GLAPI void GLAPIENTRY glFlush(void); +GLAPI void GLAPIENTRY glFogf(GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glFogfv(GLenum pname, const GLfloat * params); +GLAPI void GLAPIENTRY glFogi(GLenum pname, GLint param); +GLAPI void GLAPIENTRY glFogiv(GLenum pname, const GLint * params); +GLAPI void GLAPIENTRY glFrontFace(GLenum mode); +GLAPI void GLAPIENTRY glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI GLuint GLAPIENTRY glGenLists(GLsizei range); +GLAPI void GLAPIENTRY glGenTextures(GLsizei n, GLuint * textures); +GLAPI void GLAPIENTRY glGetBooleanv(GLenum pname, GLboolean * params); +GLAPI void GLAPIENTRY glGetClipPlane(GLenum plane, GLdouble * equation); +GLAPI void GLAPIENTRY glGetDoublev(GLenum pname, GLdouble * params); +GLAPI GLenum GLAPIENTRY glGetError(void); +GLAPI void GLAPIENTRY glGetFloatv(GLenum pname, GLfloat * params); +GLAPI void GLAPIENTRY glGetIntegerv(GLenum pname, GLint * params); +GLAPI void GLAPIENTRY glGetLightfv(GLenum light, GLenum pname, GLfloat * params); +GLAPI void GLAPIENTRY glGetLightiv(GLenum light, GLenum pname, GLint * params); +GLAPI void GLAPIENTRY glGetMapdv(GLenum target, GLenum query, GLdouble * v); +GLAPI void GLAPIENTRY glGetMapfv(GLenum target, GLenum query, GLfloat * v); +GLAPI void GLAPIENTRY glGetMapiv(GLenum target, GLenum query, GLint * v); +GLAPI void GLAPIENTRY glGetMaterialfv(GLenum face, GLenum pname, GLfloat * params); +GLAPI void GLAPIENTRY glGetMaterialiv(GLenum face, GLenum pname, GLint * params); +GLAPI void GLAPIENTRY glGetPixelMapfv(GLenum map, GLfloat * values); +GLAPI void GLAPIENTRY glGetPixelMapuiv(GLenum map, GLuint * values); +GLAPI void GLAPIENTRY glGetPixelMapusv(GLenum map, GLushort * values); +GLAPI void GLAPIENTRY glGetPointerv(GLenum pname, GLvoid ** params); +GLAPI void GLAPIENTRY glGetPolygonStipple(GLubyte * mask); +GLAPI const GLubyte * GLAPIENTRY glGetString(GLenum name); +GLAPI void GLAPIENTRY glGetTexEnvfv(GLenum target, GLenum pname, GLfloat * params); +GLAPI void GLAPIENTRY glGetTexEnviv(GLenum target, GLenum pname, GLint * params); +GLAPI void GLAPIENTRY glGetTexGendv(GLenum coord, GLenum pname, GLdouble * params); +GLAPI void GLAPIENTRY glGetTexGenfv(GLenum coord, GLenum pname, GLfloat * params); +GLAPI void GLAPIENTRY glGetTexGeniv(GLenum coord, GLenum pname, GLint * params); +GLAPI void GLAPIENTRY glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels); +GLAPI void GLAPIENTRY glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat * params); +GLAPI void GLAPIENTRY glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint * params); +GLAPI void GLAPIENTRY glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params); +GLAPI void GLAPIENTRY glGetTexParameteriv(GLenum target, GLenum pname, GLint * params); +GLAPI void GLAPIENTRY glHint(GLenum target, GLenum mode); +GLAPI void GLAPIENTRY glIndexMask(GLuint mask); +GLAPI void GLAPIENTRY glIndexPointer(GLenum type, GLsizei stride, const GLvoid * pointer); +GLAPI void GLAPIENTRY glIndexd(GLdouble c); +GLAPI void GLAPIENTRY glIndexdv(const GLdouble * c); +GLAPI void GLAPIENTRY glIndexf(GLfloat c); +GLAPI void GLAPIENTRY glIndexfv(const GLfloat * c); +GLAPI void GLAPIENTRY glIndexi(GLint c); +GLAPI void GLAPIENTRY glIndexiv(const GLint * c); +GLAPI void GLAPIENTRY glIndexs(GLshort c); +GLAPI void GLAPIENTRY glIndexsv(const GLshort * c); +GLAPI void GLAPIENTRY glIndexub(GLubyte c); +GLAPI void GLAPIENTRY glIndexubv(const GLubyte * c); +GLAPI void GLAPIENTRY glInitNames(void); +GLAPI void GLAPIENTRY glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid * pointer); +GLAPI GLboolean GLAPIENTRY glIsEnabled(GLenum cap); +GLAPI GLboolean GLAPIENTRY glIsList(GLuint list); +GLAPI GLboolean GLAPIENTRY glIsTexture(GLuint texture); +GLAPI void GLAPIENTRY glLightModelf(GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glLightModelfv(GLenum pname, const GLfloat * params); +GLAPI void GLAPIENTRY glLightModeli(GLenum pname, GLint param); +GLAPI void GLAPIENTRY glLightModeliv(GLenum pname, const GLint * params); +GLAPI void GLAPIENTRY glLightf(GLenum light, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glLightfv(GLenum light, GLenum pname, const GLfloat * params); +GLAPI void GLAPIENTRY glLighti(GLenum light, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glLightiv(GLenum light, GLenum pname, const GLint * params); +GLAPI void GLAPIENTRY glLineStipple(GLint factor, GLushort pattern); +GLAPI void GLAPIENTRY glLineWidth(GLfloat width); +GLAPI void GLAPIENTRY glListBase(GLuint base); +GLAPI void GLAPIENTRY glLoadIdentity(void); +GLAPI void GLAPIENTRY glLoadMatrixd(const GLdouble * m); +GLAPI void GLAPIENTRY glLoadMatrixf(const GLfloat * m); +GLAPI void GLAPIENTRY glLoadName(GLuint name); +GLAPI void GLAPIENTRY glLogicOp(GLenum opcode); +GLAPI void GLAPIENTRY glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points); +GLAPI void GLAPIENTRY glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points); +GLAPI void GLAPIENTRY glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points); +GLAPI void GLAPIENTRY glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points); +GLAPI void GLAPIENTRY glMapGrid1d(GLint un, GLdouble u1, GLdouble u2); +GLAPI void GLAPIENTRY glMapGrid1f(GLint un, GLfloat u1, GLfloat u2); +GLAPI void GLAPIENTRY glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +GLAPI void GLAPIENTRY glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +GLAPI void GLAPIENTRY glMaterialf(GLenum face, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glMaterialfv(GLenum face, GLenum pname, const GLfloat * params); +GLAPI void GLAPIENTRY glMateriali(GLenum face, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glMaterialiv(GLenum face, GLenum pname, const GLint * params); +GLAPI void GLAPIENTRY glMatrixMode(GLenum mode); +GLAPI void GLAPIENTRY glMultMatrixd(const GLdouble * m); +GLAPI void GLAPIENTRY glMultMatrixf(const GLfloat * m); +GLAPI void GLAPIENTRY glNewList(GLuint list, GLenum mode); +GLAPI void GLAPIENTRY glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz); +GLAPI void GLAPIENTRY glNormal3bv(const GLbyte * v); +GLAPI void GLAPIENTRY glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz); +GLAPI void GLAPIENTRY glNormal3dv(const GLdouble * v); +GLAPI void GLAPIENTRY glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz); +GLAPI void GLAPIENTRY glNormal3fv(const GLfloat * v); +GLAPI void GLAPIENTRY glNormal3i(GLint nx, GLint ny, GLint nz); +GLAPI void GLAPIENTRY glNormal3iv(const GLint * v); +GLAPI void GLAPIENTRY glNormal3s(GLshort nx, GLshort ny, GLshort nz); +GLAPI void GLAPIENTRY glNormal3sv(const GLshort * v); +GLAPI void GLAPIENTRY glNormalPointer(GLenum type, GLsizei stride, const GLvoid * pointer); +GLAPI void GLAPIENTRY glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI void GLAPIENTRY glPassThrough(GLfloat token); +GLAPI void GLAPIENTRY glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat * values); +GLAPI void GLAPIENTRY glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint * values); +GLAPI void GLAPIENTRY glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort * values); +GLAPI void GLAPIENTRY glPixelStoref(GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glPixelStorei(GLenum pname, GLint param); +GLAPI void GLAPIENTRY glPixelTransferf(GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glPixelTransferi(GLenum pname, GLint param); +GLAPI void GLAPIENTRY glPixelZoom(GLfloat xfactor, GLfloat yfactor); +GLAPI void GLAPIENTRY glPointSize(GLfloat size); +GLAPI void GLAPIENTRY glPolygonMode(GLenum face, GLenum mode); +GLAPI void GLAPIENTRY glPolygonOffset(GLfloat factor, GLfloat units); +GLAPI void GLAPIENTRY glPolygonStipple(const GLubyte * mask); +GLAPI void GLAPIENTRY glPopAttrib(void); +GLAPI void GLAPIENTRY glPopClientAttrib(void); +GLAPI void GLAPIENTRY glPopMatrix(void); +GLAPI void GLAPIENTRY glPopName(void); +GLAPI void GLAPIENTRY glPrioritizeTextures(GLsizei n, const GLuint * textures, const GLclampf * priorities); +GLAPI void GLAPIENTRY glPushAttrib(GLbitfield mask); +GLAPI void GLAPIENTRY glPushClientAttrib(GLbitfield mask); +GLAPI void GLAPIENTRY glPushMatrix(void); +GLAPI void GLAPIENTRY glPushName(GLuint name); +GLAPI void GLAPIENTRY glRasterPos2d(GLdouble x, GLdouble y); +GLAPI void GLAPIENTRY glRasterPos2dv(const GLdouble * v); +GLAPI void GLAPIENTRY glRasterPos2f(GLfloat x, GLfloat y); +GLAPI void GLAPIENTRY glRasterPos2fv(const GLfloat * v); +GLAPI void GLAPIENTRY glRasterPos2i(GLint x, GLint y); +GLAPI void GLAPIENTRY glRasterPos2iv(const GLint * v); +GLAPI void GLAPIENTRY glRasterPos2s(GLshort x, GLshort y); +GLAPI void GLAPIENTRY glRasterPos2sv(const GLshort * v); +GLAPI void GLAPIENTRY glRasterPos3d(GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glRasterPos3dv(const GLdouble * v); +GLAPI void GLAPIENTRY glRasterPos3f(GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glRasterPos3fv(const GLfloat * v); +GLAPI void GLAPIENTRY glRasterPos3i(GLint x, GLint y, GLint z); +GLAPI void GLAPIENTRY glRasterPos3iv(const GLint * v); +GLAPI void GLAPIENTRY glRasterPos3s(GLshort x, GLshort y, GLshort z); +GLAPI void GLAPIENTRY glRasterPos3sv(const GLshort * v); +GLAPI void GLAPIENTRY glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void GLAPIENTRY glRasterPos4dv(const GLdouble * v); +GLAPI void GLAPIENTRY glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void GLAPIENTRY glRasterPos4fv(const GLfloat * v); +GLAPI void GLAPIENTRY glRasterPos4i(GLint x, GLint y, GLint z, GLint w); +GLAPI void GLAPIENTRY glRasterPos4iv(const GLint * v); +GLAPI void GLAPIENTRY glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void GLAPIENTRY glRasterPos4sv(const GLshort * v); +GLAPI void GLAPIENTRY glReadBuffer(GLenum mode); +GLAPI void GLAPIENTRY glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels); +GLAPI void GLAPIENTRY glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +GLAPI void GLAPIENTRY glRectdv(const GLdouble * v1, const GLdouble * v2); +GLAPI void GLAPIENTRY glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +GLAPI void GLAPIENTRY glRectfv(const GLfloat * v1, const GLfloat * v2); +GLAPI void GLAPIENTRY glRecti(GLint x1, GLint y1, GLint x2, GLint y2); +GLAPI void GLAPIENTRY glRectiv(const GLint * v1, const GLint * v2); +GLAPI void GLAPIENTRY glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2); +GLAPI void GLAPIENTRY glRectsv(const GLshort * v1, const GLshort * v2); +GLAPI GLint GLAPIENTRY glRenderMode(GLenum mode); +GLAPI void GLAPIENTRY glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glScaled(GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glScalef(GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glScissor(GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void GLAPIENTRY glSelectBuffer(GLsizei size, GLuint * buffer); +GLAPI void GLAPIENTRY glShadeModel(GLenum mode); +GLAPI void GLAPIENTRY glStencilFunc(GLenum func, GLint ref, GLuint mask); +GLAPI void GLAPIENTRY glStencilMask(GLuint mask); +GLAPI void GLAPIENTRY glStencilOp(GLenum fail, GLenum zfail, GLenum zpass); +GLAPI void GLAPIENTRY glTexCoord1d(GLdouble s); +GLAPI void GLAPIENTRY glTexCoord1dv(const GLdouble * v); +GLAPI void GLAPIENTRY glTexCoord1f(GLfloat s); +GLAPI void GLAPIENTRY glTexCoord1fv(const GLfloat * v); +GLAPI void GLAPIENTRY glTexCoord1i(GLint s); +GLAPI void GLAPIENTRY glTexCoord1iv(const GLint * v); +GLAPI void GLAPIENTRY glTexCoord1s(GLshort s); +GLAPI void GLAPIENTRY glTexCoord1sv(const GLshort * v); +GLAPI void GLAPIENTRY glTexCoord2d(GLdouble s, GLdouble t); +GLAPI void GLAPIENTRY glTexCoord2dv(const GLdouble * v); +GLAPI void GLAPIENTRY glTexCoord2f(GLfloat s, GLfloat t); +GLAPI void GLAPIENTRY glTexCoord2fv(const GLfloat * v); +GLAPI void GLAPIENTRY glTexCoord2i(GLint s, GLint t); +GLAPI void GLAPIENTRY glTexCoord2iv(const GLint * v); +GLAPI void GLAPIENTRY glTexCoord2s(GLshort s, GLshort t); +GLAPI void GLAPIENTRY glTexCoord2sv(const GLshort * v); +GLAPI void GLAPIENTRY glTexCoord3d(GLdouble s, GLdouble t, GLdouble r); +GLAPI void GLAPIENTRY glTexCoord3dv(const GLdouble * v); +GLAPI void GLAPIENTRY glTexCoord3f(GLfloat s, GLfloat t, GLfloat r); +GLAPI void GLAPIENTRY glTexCoord3fv(const GLfloat * v); +GLAPI void GLAPIENTRY glTexCoord3i(GLint s, GLint t, GLint r); +GLAPI void GLAPIENTRY glTexCoord3iv(const GLint * v); +GLAPI void GLAPIENTRY glTexCoord3s(GLshort s, GLshort t, GLshort r); +GLAPI void GLAPIENTRY glTexCoord3sv(const GLshort * v); +GLAPI void GLAPIENTRY glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void GLAPIENTRY glTexCoord4dv(const GLdouble * v); +GLAPI void GLAPIENTRY glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void GLAPIENTRY glTexCoord4fv(const GLfloat * v); +GLAPI void GLAPIENTRY glTexCoord4i(GLint s, GLint t, GLint r, GLint q); +GLAPI void GLAPIENTRY glTexCoord4iv(const GLint * v); +GLAPI void GLAPIENTRY glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void GLAPIENTRY glTexCoord4sv(const GLshort * v); +GLAPI void GLAPIENTRY glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); +GLAPI void GLAPIENTRY glTexEnvf(GLenum target, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexEnvfv(GLenum target, GLenum pname, const GLfloat * params); +GLAPI void GLAPIENTRY glTexEnvi(GLenum target, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexEnviv(GLenum target, GLenum pname, const GLint * params); +GLAPI void GLAPIENTRY glTexGend(GLenum coord, GLenum pname, GLdouble param); +GLAPI void GLAPIENTRY glTexGendv(GLenum coord, GLenum pname, const GLdouble * params); +GLAPI void GLAPIENTRY glTexGenf(GLenum coord, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexGenfv(GLenum coord, GLenum pname, const GLfloat * params); +GLAPI void GLAPIENTRY glTexGeni(GLenum coord, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexGeniv(GLenum coord, GLenum pname, const GLint * params); +GLAPI void GLAPIENTRY glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels); +GLAPI void GLAPIENTRY glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels); +GLAPI void GLAPIENTRY glTexParameterf(GLenum target, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params); +GLAPI void GLAPIENTRY glTexParameteri(GLenum target, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexParameteriv(GLenum target, GLenum pname, const GLint * params); +GLAPI void GLAPIENTRY glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels); +GLAPI void GLAPIENTRY glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); +GLAPI void GLAPIENTRY glTranslated(GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glTranslatef(GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glVertex2d(GLdouble x, GLdouble y); +GLAPI void GLAPIENTRY glVertex2dv(const GLdouble * v); +GLAPI void GLAPIENTRY glVertex2f(GLfloat x, GLfloat y); +GLAPI void GLAPIENTRY glVertex2fv(const GLfloat * v); +GLAPI void GLAPIENTRY glVertex2i(GLint x, GLint y); +GLAPI void GLAPIENTRY glVertex2iv(const GLint * v); +GLAPI void GLAPIENTRY glVertex2s(GLshort x, GLshort y); +GLAPI void GLAPIENTRY glVertex2sv(const GLshort * v); +GLAPI void GLAPIENTRY glVertex3d(GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glVertex3dv(const GLdouble * v); +GLAPI void GLAPIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glVertex3fv(const GLfloat * v); +GLAPI void GLAPIENTRY glVertex3i(GLint x, GLint y, GLint z); +GLAPI void GLAPIENTRY glVertex3iv(const GLint * v); +GLAPI void GLAPIENTRY glVertex3s(GLshort x, GLshort y, GLshort z); +GLAPI void GLAPIENTRY glVertex3sv(const GLshort * v); +GLAPI void GLAPIENTRY glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void GLAPIENTRY glVertex4dv(const GLdouble * v); +GLAPI void GLAPIENTRY glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void GLAPIENTRY glVertex4fv(const GLfloat * v); +GLAPI void GLAPIENTRY glVertex4i(GLint x, GLint y, GLint z, GLint w); +GLAPI void GLAPIENTRY glVertex4iv(const GLint * v); +GLAPI void GLAPIENTRY glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void GLAPIENTRY glVertex4sv(const GLshort * v); +GLAPI void GLAPIENTRY glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); +GLAPI void GLAPIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height); #define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1) @@ -1174,11 +1174,11 @@ #ifndef GLEW_NO_GLU /* this is where we can safely include GLU */ -# if defined(__APPLE__) && defined(__MACH__) -# include -# else -# include -# endif +#if defined(__APPLE__) && defined(__MACH__) +#include +#else +#include +#endif #endif /* ----------------------------- GL_VERSION_1_2 ---------------------------- */ @@ -1228,10 +1228,10 @@ #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void(GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices); +typedef void(GLAPIENTRY * PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels); +typedef void(GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels); #define glCopyTexSubImage3D GLEW_GET_FUN(__glewCopyTexSubImage3D) #define glDrawRangeElements GLEW_GET_FUN(__glewDrawRangeElements) @@ -1353,52 +1353,52 @@ #define GL_DOT3_RGBA 0x86AF #define GL_MULTISAMPLE_BIT 0x20000000 -typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLvoid *img); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void(GLAPIENTRY * PFNGLACTIVETEXTUREPROC)(GLenum texture); +typedef void(GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint lod, GLvoid * img); +typedef void(GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC)(const GLdouble m[16]); +typedef void(GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC)(const GLfloat m[16]); +typedef void(GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC)(const GLdouble m[16]); +typedef void(GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC)(const GLfloat m[16]); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC)(GLenum target, GLdouble s); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC)(GLenum target, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC)(GLenum target, GLfloat s); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC)(GLenum target, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC)(GLenum target, GLint s); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC)(GLenum target, const GLint * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC)(GLenum target, GLshort s); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC)(GLenum target, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC)(GLenum target, GLdouble s, GLdouble t); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC)(GLenum target, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC)(GLenum target, GLfloat s, GLfloat t); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC)(GLenum target, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC)(GLenum target, GLint s, GLint t); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC)(GLenum target, const GLint * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC)(GLenum target, GLshort s, GLshort t); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC)(GLenum target, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC)(GLenum target, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC)(GLenum target, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC)(GLenum target, GLint s, GLint t, GLint r); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC)(GLenum target, const GLint * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC)(GLenum target, GLshort s, GLshort t, GLshort r); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC)(GLenum target, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC)(GLenum target, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC)(GLenum target, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC)(GLenum target, const GLint * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC)(GLenum target, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC)(GLclampf value, GLboolean invert); #define glActiveTexture GLEW_GET_FUN(__glewActiveTexture) #define glClientActiveTexture GLEW_GET_FUN(__glewClientActiveTexture) @@ -1496,53 +1496,53 @@ #define GL_TEXTURE_COMPARE_FUNC 0x884D #define GL_COMPARE_R_TO_TEXTURE 0x884E -typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei drawcount); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p); +typedef void(GLAPIENTRY * PFNGLBLENDCOLORPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void(GLAPIENTRY * PFNGLBLENDEQUATIONPROC)(GLenum mode); +typedef void(GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void(GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC)(GLenum type, GLsizei stride, const GLvoid * pointer); +typedef void(GLAPIENTRY * PFNGLFOGCOORDDPROC)(GLdouble coord); +typedef void(GLAPIENTRY * PFNGLFOGCOORDDVPROC)(const GLdouble * coord); +typedef void(GLAPIENTRY * PFNGLFOGCOORDFPROC)(GLfloat coord); +typedef void(GLAPIENTRY * PFNGLFOGCOORDFVPROC)(const GLfloat * coord); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei drawcount); +typedef void(GLAPIENTRY * PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC)(const GLbyte * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC)(const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC)(const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC)(GLint red, GLint green, GLint blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC)(const GLint * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC)(const GLshort * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC)(const GLubyte * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC)(const GLuint * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC)(const GLushort * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2DPROC)(GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2DVPROC)(const GLdouble * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2FPROC)(GLfloat x, GLfloat y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2FVPROC)(const GLfloat * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2IPROC)(GLint x, GLint y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2IVPROC)(const GLint * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2SPROC)(GLshort x, GLshort y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2SVPROC)(const GLshort * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3DVPROC)(const GLdouble * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3FVPROC)(const GLfloat * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3IPROC)(GLint x, GLint y, GLint z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3IVPROC)(const GLint * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3SPROC)(GLshort x, GLshort y, GLshort z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3SVPROC)(const GLshort * p); #define glBlendColor GLEW_GET_FUN(__glewBlendColor) #define glBlendEquation GLEW_GET_FUN(__glewBlendEquation) @@ -1655,25 +1655,25 @@ typedef ptrdiff_t GLintptr; typedef ptrdiff_t GLsizeiptr; -typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer); -typedef GLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id); -typedef GLvoid* (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target); +typedef void(GLAPIENTRY * PFNGLBEGINQUERYPROC)(GLenum target, GLuint id); +typedef void(GLAPIENTRY * PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); +typedef void(GLAPIENTRY * PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage); +typedef void(GLAPIENTRY * PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint * buffers); +typedef void(GLAPIENTRY * PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint * ids); +typedef void(GLAPIENTRY * PFNGLENDQUERYPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLGENBUFFERSPROC)(GLsizei n, GLuint * buffers); +typedef void(GLAPIENTRY * PFNGLGENQUERIESPROC)(GLsizei n, GLuint * ids); +typedef void(GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, GLvoid ** params); +typedef void(GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid * data); +typedef void(GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint * params); +typedef void(GLAPIENTRY * PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISBUFFERPROC)(GLuint buffer); +typedef GLboolean(GLAPIENTRY * PFNGLISQUERYPROC)(GLuint id); +typedef GLvoid *(GLAPIENTRY * PFNGLMAPBUFFERPROC)(GLenum target, GLenum access); +typedef GLboolean(GLAPIENTRY * PFNGLUNMAPBUFFERPROC)(GLenum target); #define glBeginQuery GLEW_GET_FUN(__glewBeginQuery) #define glBindBuffer GLEW_GET_FUN(__glewBindBuffer) @@ -1789,99 +1789,99 @@ #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum, GLenum); -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint); -typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders); -typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source); -typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param); -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint, GLenum, GLvoid**); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint, GLenum, GLdouble*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint, GLenum, GLfloat*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint, GLenum, GLint*); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader); -typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar** strings, const GLint* lengths); -typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* pointer); +typedef void(GLAPIENTRY * PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); +typedef void(GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum, GLenum); +typedef void(GLAPIENTRY * PFNGLCOMPILESHADERPROC)(GLuint shader); +typedef GLuint(GLAPIENTRY * PFNGLCREATEPROGRAMPROC)(void); +typedef GLuint(GLAPIENTRY * PFNGLCREATESHADERPROC)(GLenum type); +typedef void(GLAPIENTRY * PFNGLDELETEPROGRAMPROC)(GLuint program); +typedef void(GLAPIENTRY * PFNGLDELETESHADERPROC)(GLuint shader); +typedef void(GLAPIENTRY * PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); +typedef void(GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint); +typedef void(GLAPIENTRY * PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum * bufs); +typedef void(GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint); +typedef void(GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders); +typedef GLint(GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint * param); +typedef void(GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog); +typedef void(GLAPIENTRY * PFNGLGETSHADERSOURCEPROC)(GLuint obj, GLsizei maxLength, GLsizei * length, GLchar * source); +typedef void(GLAPIENTRY * PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint * param); +typedef GLint(GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint, GLenum, GLvoid **); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC)(GLuint, GLenum, GLdouble *); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC)(GLuint, GLenum, GLfloat *); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC)(GLuint, GLenum, GLint *); +typedef GLboolean(GLAPIENTRY * PFNGLISPROGRAMPROC)(GLuint program); +typedef GLboolean(GLAPIENTRY * PFNGLISSHADERPROC)(GLuint shader); +typedef void(GLAPIENTRY * PFNGLLINKPROGRAMPROC)(GLuint program); +typedef void(GLAPIENTRY * PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar ** strings, const GLint * lengths); +typedef void(GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +typedef void(GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC)(GLenum, GLuint); +typedef void(GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void(GLAPIENTRY * PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0); +typedef void(GLAPIENTRY * PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM1IPROC)(GLint location, GLint v0); +typedef void(GLAPIENTRY * PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1); +typedef void(GLAPIENTRY * PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1); +typedef void(GLAPIENTRY * PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void(GLAPIENTRY * PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2); +typedef void(GLAPIENTRY * PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void(GLAPIENTRY * PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void(GLAPIENTRY * PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUSEPROGRAMPROC)(GLuint program); +typedef void(GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC)(GLuint program); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer); #define glAttachShader GLEW_GET_FUN(__glewAttachShader) #define glBindAttribLocation GLEW_GET_FUN(__glewBindAttribLocation) @@ -2010,12 +2010,12 @@ #define GL_COMPRESSED_SLUMINANCE 0x8C4A #define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); #define glUniformMatrix2x3fv GLEW_GET_FUN(__glewUniformMatrix2x3fv) #define glUniformMatrix2x4fv GLEW_GET_FUN(__glewUniformMatrix2x4fv) @@ -2141,61 +2141,61 @@ #define GL_QUERY_BY_REGION_WAIT 0x8E15 #define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 -typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint, GLenum); -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum); -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint, GLuint, const GLchar*); -typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum, GLenum); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum, GLint, GLfloat, GLint); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum, GLint, const GLfloat*); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum, GLint, const GLint*); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum, GLint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); -typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum, GLuint, GLboolean*); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint, const GLchar*); -typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum, GLenum, GLint*); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum, GLenum, GLuint*); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint, GLint, GLuint*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint, GLenum, GLint*); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint, GLenum, GLuint*); -typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum, GLuint); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum, GLenum, const GLint*); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum, GLenum, const GLuint*); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint, GLsizei, const GLchar **, GLenum); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint, GLuint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint, GLsizei, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint, GLint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint, GLint, GLint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint, const GLbyte*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint, GLint, GLint, GLint, GLint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint, const GLint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint, const GLshort*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint, const GLubyte*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint, GLuint, GLuint, GLuint, GLuint); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint, const GLuint*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint, const GLushort*); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint, GLint, GLenum, GLsizei, const GLvoid*); +typedef void(GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC)(GLuint, GLenum); +typedef void(GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum); +typedef void(GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC)(GLuint, GLuint, const GLchar *); +typedef void(GLAPIENTRY * PFNGLCLAMPCOLORPROC)(GLenum, GLenum); +typedef void(GLAPIENTRY * PFNGLCLEARBUFFERFIPROC)(GLenum, GLint, GLfloat, GLint); +typedef void(GLAPIENTRY * PFNGLCLEARBUFFERFVPROC)(GLenum, GLint, const GLfloat *); +typedef void(GLAPIENTRY * PFNGLCLEARBUFFERIVPROC)(GLenum, GLint, const GLint *); +typedef void(GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC)(GLenum, GLint, const GLuint *); +typedef void(GLAPIENTRY * PFNGLCOLORMASKIPROC)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean); +typedef void(GLAPIENTRY * PFNGLDISABLEIPROC)(GLenum, GLuint); +typedef void(GLAPIENTRY * PFNGLENABLEIPROC)(GLenum, GLuint); +typedef void(GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC)(void); +typedef void(GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC)(void); +typedef void(GLAPIENTRY * PFNGLGETBOOLEANI_VPROC)(GLenum, GLuint, GLboolean *); +typedef GLint(GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC)(GLuint, const GLchar *); +typedef const GLubyte *(GLAPIENTRY * PFNGLGETSTRINGIPROC)(GLenum, GLuint); +typedef void(GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC)(GLenum, GLenum, GLint *); +typedef void(GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC)(GLenum, GLenum, GLuint *); +typedef void(GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMUIVPROC)(GLuint, GLint, GLuint *); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC)(GLuint, GLenum, GLint *); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint, GLenum, GLuint *); +typedef GLboolean(GLAPIENTRY * PFNGLISENABLEDIPROC)(GLenum, GLuint); +typedef void(GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC)(GLenum, GLenum, const GLint *); +typedef void(GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC)(GLenum, GLenum, const GLuint *); +typedef void(GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint, GLsizei, const GLchar **, GLenum); +typedef void(GLAPIENTRY * PFNGLUNIFORM1UIPROC)(GLint, GLuint); +typedef void(GLAPIENTRY * PFNGLUNIFORM1UIVPROC)(GLint, GLsizei, const GLuint *); +typedef void(GLAPIENTRY * PFNGLUNIFORM2UIPROC)(GLint, GLuint, GLuint); +typedef void(GLAPIENTRY * PFNGLUNIFORM2UIVPROC)(GLint, GLsizei, const GLuint *); +typedef void(GLAPIENTRY * PFNGLUNIFORM3UIPROC)(GLint, GLuint, GLuint, GLuint); +typedef void(GLAPIENTRY * PFNGLUNIFORM3UIVPROC)(GLint, GLsizei, const GLuint *); +typedef void(GLAPIENTRY * PFNGLUNIFORM4UIPROC)(GLint, GLuint, GLuint, GLuint, GLuint); +typedef void(GLAPIENTRY * PFNGLUNIFORM4UIVPROC)(GLint, GLsizei, const GLuint *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC)(GLuint, GLint); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC)(GLuint, const GLint *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC)(GLuint, GLuint); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC)(GLuint, const GLuint *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC)(GLuint, GLint, GLint); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC)(GLuint, const GLint *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC)(GLuint, GLuint, GLuint); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC)(GLuint, const GLuint *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC)(GLuint, GLint, GLint, GLint); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC)(GLuint, const GLint *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC)(GLuint, GLuint, GLuint, GLuint); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC)(GLuint, const GLuint *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC)(GLuint, const GLbyte *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC)(GLuint, GLint, GLint, GLint, GLint); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC)(GLuint, const GLint *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC)(GLuint, const GLshort *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC)(GLuint, const GLubyte *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC)(GLuint, GLuint, GLuint, GLuint, GLuint); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC)(GLuint, const GLuint *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC)(GLuint, const GLushort *); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint, GLint, GLenum, GLsizei, const GLvoid *); #define glBeginConditionalRender GLEW_GET_FUN(__glewBeginConditionalRender) #define glBeginTransformFeedback GLEW_GET_FUN(__glewBeginTransformFeedback) @@ -2297,10 +2297,10 @@ #define GL_BUFFER_MAP_LENGTH 0x9120 #define GL_BUFFER_MAP_OFFSET 0x9121 -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum, GLint, GLsizei, GLsizei); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum, GLsizei, GLenum, const GLvoid*, GLsizei); -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint); -typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum, GLenum, GLuint); +typedef void(GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum, GLint, GLsizei, GLsizei); +typedef void(GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); +typedef void(GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint); +typedef void(GLAPIENTRY * PFNGLTEXBUFFERPROC)(GLenum, GLenum, GLuint); #define glDrawArraysInstanced GLEW_GET_FUN(__glewDrawArraysInstanced) #define glDrawElementsInstanced GLEW_GET_FUN(__glewDrawElementsInstanced) @@ -2339,9 +2339,9 @@ #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 #define GL_CONTEXT_PROFILE_MASK 0x9126 -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum, GLenum, GLuint, GLint); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum, GLenum, GLint64 *); -typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum, GLuint, GLint64 *); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum, GLenum, GLuint, GLint); +typedef void(GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum, GLenum, GLint64 *); +typedef void(GLAPIENTRY * PFNGLGETINTEGER64I_VPROC)(GLenum, GLuint, GLint64 *); #define glFramebufferTexture GLEW_GET_FUN(__glewFramebufferTexture) #define glGetBufferParameteri64v GLEW_GET_FUN(__glewGetBufferParameteri64v) @@ -2364,7 +2364,7 @@ #define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 #define GL_RGB10_A2UI 0x906F -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor); #define glVertexAttribDivisor GLEW_GET_FUN(__glewVertexAttribDivisor) @@ -2395,11 +2395,11 @@ #define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value); +typedef void(GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void(GLAPIENTRY * PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode); +typedef void(GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void(GLAPIENTRY * PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst); +typedef void(GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC)(GLclampf value); #define glBlendEquationSeparatei GLEW_GET_FUN(__glewBlendEquationSeparatei) #define glBlendEquationi GLEW_GET_FUN(__glewBlendEquationi) @@ -2465,7 +2465,7 @@ #ifndef GL_3DFX_tbuffer #define GL_3DFX_tbuffer 1 -typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); +typedef void(GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC)(GLuint mask); #define glTbufferMask3DFX GLEW_GET_FUN(__glewTbufferMask3DFX) @@ -2526,12 +2526,12 @@ #define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F #define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 -typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); +typedef void(APIENTRY * GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar * message, GLvoid * userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void* userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar* buf); -typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, GLchar* message); +typedef void(GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC)(GLDEBUGPROCAMD callback, void * userParam); +typedef void(GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC)(GLenum category, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled); +typedef void(GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC)(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar * buf); +typedef GLuint(GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC)(GLuint count, GLsizei bufsize, GLenum * categories, GLuint * severities, GLuint * ids, GLsizei * lengths, GLchar * message); #define glDebugMessageCallbackAMD GLEW_GET_FUN(__glewDebugMessageCallbackAMD) #define glDebugMessageEnableAMD GLEW_GET_FUN(__glewDebugMessageEnableAMD) @@ -2559,10 +2559,10 @@ #ifndef GL_AMD_draw_buffers_blend #define GL_AMD_draw_buffers_blend 1 -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void(GLAPIENTRY * PFNGLBLENDEQUATIONINDEXEDAMDPROC)(GLuint buf, GLenum mode); +typedef void(GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void(GLAPIENTRY * PFNGLBLENDFUNCINDEXEDAMDPROC)(GLuint buf, GLenum src, GLenum dst); +typedef void(GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); #define glBlendEquationIndexedAMD GLEW_GET_FUN(__glewBlendEquationIndexedAMD) #define glBlendEquationSeparateIndexedAMD GLEW_GET_FUN(__glewBlendEquationSeparateIndexedAMD) @@ -2578,8 +2578,8 @@ #ifndef GL_AMD_multi_draw_indirect #define GL_AMD_multi_draw_indirect 1 -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void* indirect, GLsizei primcount, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void* indirect, GLsizei primcount, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC)(GLenum mode, const void * indirect, GLsizei primcount, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC)(GLenum mode, GLenum type, const void * indirect, GLsizei primcount, GLsizei stride); #define glMultiDrawArraysIndirectAMD GLEW_GET_FUN(__glewMultiDrawArraysIndirectAMD) #define glMultiDrawElementsIndirectAMD GLEW_GET_FUN(__glewMultiDrawElementsIndirectAMD) @@ -2599,9 +2599,9 @@ #define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 #define GL_SAMPLER_OBJECT_AMD 0x9155 -typedef void (GLAPIENTRY * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint* names); -typedef void (GLAPIENTRY * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint* names); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); +typedef void(GLAPIENTRY * PFNGLDELETENAMESAMDPROC)(GLenum identifier, GLuint num, const GLuint * names); +typedef void(GLAPIENTRY * PFNGLGENNAMESAMDPROC)(GLenum identifier, GLuint num, GLuint * names); +typedef GLboolean(GLAPIENTRY * PFNGLISNAMEAMDPROC)(GLenum identifier, GLuint name); #define glDeleteNamesAMD GLEW_GET_FUN(__glewDeleteNamesAMD) #define glGenNamesAMD GLEW_GET_FUN(__glewGenNamesAMD) @@ -2624,17 +2624,17 @@ #define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 #define GL_PERFMON_RESULT_AMD 0x8BC6 -typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); -typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void* data); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar *counterString); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, GLchar *groupString); -typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList); +typedef void(GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC)(GLuint monitor); +typedef void(GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC)(GLsizei n, GLuint * monitors); +typedef void(GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC)(GLuint monitor); +typedef void(GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC)(GLsizei n, GLuint * monitors); +typedef void(GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint * data, GLint * bytesWritten); +typedef void(GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)(GLuint group, GLuint counter, GLenum pname, void * data); +typedef void(GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)(GLuint group, GLuint counter, GLsizei bufSize, GLsizei * length, GLchar * counterString); +typedef void(GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC)(GLuint group, GLint * numCounters, GLint * maxActiveCounters, GLsizei countersSize, GLuint * counters); +typedef void(GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)(GLuint group, GLsizei bufSize, GLsizei * length, GLchar * groupString); +typedef void(GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC)(GLint * numGroups, GLsizei groupsSize, GLuint * groups); +typedef void(GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint * counterList); #define glBeginPerfMonitorAMD GLEW_GET_FUN(__glewBeginPerfMonitorAMD) #define glDeletePerfMonitorsAMD GLEW_GET_FUN(__glewDeletePerfMonitorsAMD) @@ -2683,7 +2683,7 @@ #define GL_SUBSAMPLE_DISTANCE_AMD 0x883F -typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat* val); +typedef void(GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC)(GLenum pname, GLuint index, const GLfloat * val); #define glSetMultisamplefvAMD GLEW_GET_FUN(__glewSetMultisamplefvAMD) @@ -2721,7 +2721,7 @@ #define GL_STENCIL_OP_VALUE_AMD 0x874C #define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D -typedef void (GLAPIENTRY * PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value); +typedef void(GLAPIENTRY * PFNGLSTENCILOPVALUEAMDPROC)(GLenum face, GLuint value); #define glStencilOpValueAMD GLEW_GET_FUN(__glewStencilOpValueAMD) @@ -2769,8 +2769,8 @@ #define GL_DISCRETE_AMD 0x9006 #define GL_CONTINUOUS_AMD 0x9007 -typedef void (GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); -typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); +typedef void(GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC)(GLfloat factor); +typedef void(GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC)(GLenum mode); #define glTessellationFactorAMD GLEW_GET_FUN(__glewTessellationFactorAMD) #define glTessellationModeAMD GLEW_GET_FUN(__glewTessellationModeAMD) @@ -2819,11 +2819,11 @@ #define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D #define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void* pointer); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount); +typedef void(GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, GLint first, GLsizei count); +typedef void(GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void(GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC)(GLenum type, const void * pointer); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start, GLuint end, const GLint * first, const GLsizei * count, GLsizei primcount); #define glDrawElementArrayAPPLE GLEW_GET_FUN(__glewDrawElementArrayAPPLE) #define glDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewDrawRangeElementArrayAPPLE) @@ -2843,14 +2843,14 @@ #define GL_DRAW_PIXELS_APPLE 0x8A0A #define GL_FENCE_APPLE 0x8A0B -typedef void (GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences); -typedef void (GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -typedef void (GLAPIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences); -typedef GLboolean (GLAPIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); +typedef void(GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC)(GLsizei n, const GLuint * fences); +typedef void(GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC)(GLuint fence); +typedef void(GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC)(GLenum object, GLint name); +typedef void(GLAPIENTRY * PFNGLGENFENCESAPPLEPROC)(GLsizei n, GLuint * fences); +typedef GLboolean(GLAPIENTRY * PFNGLISFENCEAPPLEPROC)(GLuint fence); +typedef void(GLAPIENTRY * PFNGLSETFENCEAPPLEPROC)(GLuint fence); +typedef GLboolean(GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC)(GLuint fence); +typedef GLboolean(GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC)(GLenum object, GLuint name); #define glDeleteFencesAPPLE GLEW_GET_FUN(__glewDeleteFencesAPPLE) #define glFinishFenceAPPLE GLEW_GET_FUN(__glewFinishFenceAPPLE) @@ -2897,8 +2897,8 @@ #define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 #define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 -typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); +typedef void(GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC)(GLenum target, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC)(GLenum target, GLintptr offset, GLsizeiptr size); #define glBufferParameteriAPPLE GLEW_GET_FUN(__glewBufferParameteriAPPLE) #define glFlushMappedBufferRangeAPPLE GLEW_GET_FUN(__glewFlushMappedBufferRangeAPPLE) @@ -2919,9 +2919,9 @@ #define GL_UNDEFINED_APPLE 0x8A1C #define GL_PURGEABLE_APPLE 0x8A1D -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params); -typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef void(GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC)(GLenum objectType, GLuint name, GLenum pname, GLint * params); +typedef GLenum(GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name, GLenum option); +typedef GLenum(GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name, GLenum option); #define glGetObjectParameterivAPPLE GLEW_GET_FUN(__glewGetObjectParameterivAPPLE) #define glObjectPurgeableAPPLE GLEW_GET_FUN(__glewObjectPurgeableAPPLE) @@ -2990,8 +2990,8 @@ #define GL_STORAGE_CACHED_APPLE 0x85BE #define GL_STORAGE_SHARED_APPLE 0x85BF -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params); -typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, GLvoid *pointer); +typedef void(GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)(GLenum target, GLenum pname, GLvoid ** params); +typedef void(GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC)(GLenum target, GLsizei length, GLvoid * pointer); #define glGetTexParameterPointervAPPLE GLEW_GET_FUN(__glewGetTexParameterPointervAPPLE) #define glTextureRangeAPPLE GLEW_GET_FUN(__glewTextureRangeAPPLE) @@ -3018,10 +3018,10 @@ #define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 -typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); -typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); +typedef void(GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC)(GLuint array); +typedef void(GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC)(GLsizei n, const GLuint * arrays); +typedef void(GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC)(GLsizei n, const GLuint * arrays); +typedef GLboolean(GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC)(GLuint array); #define glBindVertexArrayAPPLE GLEW_GET_FUN(__glewBindVertexArrayAPPLE) #define glDeleteVertexArraysAPPLE GLEW_GET_FUN(__glewDeleteVertexArraysAPPLE) @@ -3046,9 +3046,9 @@ #define GL_STORAGE_CACHED_APPLE 0x85BE #define GL_STORAGE_SHARED_APPLE 0x85BF -typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void* pointer); +typedef void(GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, void * pointer); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC)(GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, void * pointer); #define glFlushVertexArrayRangeAPPLE GLEW_GET_FUN(__glewFlushVertexArrayRangeAPPLE) #define glVertexArrayParameteriAPPLE GLEW_GET_FUN(__glewVertexArrayParameteriAPPLE) @@ -3074,13 +3074,13 @@ #define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 #define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points); -typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points); +typedef void(GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname); +typedef void(GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname); +typedef GLboolean(GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC)(GLuint index, GLenum pname); +typedef void(GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points); +typedef void(GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points); +typedef void(GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points); +typedef void(GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points); #define glDisableVertexAttribAPPLE GLEW_GET_FUN(__glewDisableVertexAttribAPPLE) #define glEnableVertexAttribAPPLE GLEW_GET_FUN(__glewEnableVertexAttribAPPLE) @@ -3127,11 +3127,11 @@ #define GL_MAX_VARYING_VECTORS 0x8DFC #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); -typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision); -typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const GLvoid*binary, GLsizei length); +typedef void(GLAPIENTRY * PFNGLCLEARDEPTHFPROC)(GLclampf d); +typedef void(GLAPIENTRY * PFNGLDEPTHRANGEFPROC)(GLclampf n, GLclampf f); +typedef void(GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision); +typedef void(GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC)(void); +typedef void(GLAPIENTRY * PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length); #define glClearDepthf GLEW_GET_FUN(__glewClearDepthf) #define glDepthRangef GLEW_GET_FUN(__glewDepthRangef) @@ -3180,9 +3180,9 @@ #ifndef GL_ARB_base_instance #define GL_ARB_base_instance 1 -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLuint baseinstance); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); +typedef void(GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); +typedef void(GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount, GLuint baseinstance); +typedef void(GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); #define glDrawArraysInstancedBaseInstance GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstance) #define glDrawElementsInstancedBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstance) @@ -3202,8 +3202,8 @@ #define GL_ONE_MINUS_SRC1_ALPHA 0x88FB #define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name); +typedef GLint(GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar * name); #define glBindFragDataLocationIndexed GLEW_GET_FUN(__glewBindFragDataLocationIndexed) #define glGetFragDataIndex GLEW_GET_FUN(__glewGetFragDataIndex) @@ -3220,10 +3220,10 @@ #define GL_SYNC_CL_EVENT_ARB 0x8240 #define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 -typedef struct _cl_context *cl_context; -typedef struct _cl_event *cl_event; +typedef struct _cl_context * cl_context; +typedef struct _cl_event * cl_event; -typedef GLsync (GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags); +typedef GLsync(GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC)(cl_context context, cl_event event, GLbitfield flags); #define glCreateSyncFromCLeventARB GLEW_GET_FUN(__glewCreateSyncFromCLeventARB) @@ -3236,10 +3236,10 @@ #ifndef GL_ARB_clear_buffer_object #define GL_ARB_clear_buffer_object 1 -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const GLvoid* data); -typedef void (GLAPIENTRY * PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid* data); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const GLvoid* data); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid* data); +typedef void(GLAPIENTRY * PFNGLCLEARBUFFERDATAPROC)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLCLEARBUFFERSUBDATAPROC)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid * data); #define glClearBufferData GLEW_GET_FUN(__glewClearBufferData) #define glClearBufferSubData GLEW_GET_FUN(__glewClearBufferSubData) @@ -3261,7 +3261,7 @@ #define GL_CLAMP_READ_COLOR_ARB 0x891C #define GL_FIXED_ONLY_ARB 0x891D -typedef void (GLAPIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); +typedef void(GLAPIENTRY * PFNGLCLAMPCOLORARBPROC)(GLenum target, GLenum clamp); #define glClampColorARB GLEW_GET_FUN(__glewClampColorARB) @@ -3320,8 +3320,8 @@ #define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE #define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); +typedef void(GLAPIENTRY * PFNGLDISPATCHCOMPUTEPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +typedef void(GLAPIENTRY * PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr indirect); #define glDispatchCompute GLEW_GET_FUN(__glewDispatchCompute) #define glDispatchComputeIndirect GLEW_GET_FUN(__glewDispatchComputeIndirect) @@ -3347,7 +3347,7 @@ #define GL_COPY_READ_BUFFER 0x8F36 #define GL_COPY_WRITE_BUFFER 0x8F37 -typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); +typedef void(GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); #define glCopyBufferSubData GLEW_GET_FUN(__glewCopyBufferSubData) @@ -3360,7 +3360,7 @@ #ifndef GL_ARB_copy_image #define GL_ARB_copy_image 1 -typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +typedef void(GLAPIENTRY * PFNGLCOPYIMAGESUBDATAPROC)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); #define glCopyImageSubData GLEW_GET_FUN(__glewCopyImageSubData) @@ -3396,12 +3396,12 @@ #define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 #define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 -typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); +typedef void(APIENTRY * GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * message, GLvoid * userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, void* userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf); -typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog); +typedef void(GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC)(GLDEBUGPROCARB callback, void * userParam); +typedef void(GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled); +typedef void(GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf); +typedef GLuint(GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC)(GLuint count, GLsizei bufsize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog); #define glDebugMessageCallbackARB GLEW_GET_FUN(__glewDebugMessageCallbackARB) #define glDebugMessageControlARB GLEW_GET_FUN(__glewDebugMessageControlARB) @@ -3474,7 +3474,7 @@ #define GL_DRAW_BUFFER14_ARB 0x8833 #define GL_DRAW_BUFFER15_ARB 0x8834 -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bufs); +typedef void(GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC)(GLsizei n, const GLenum * bufs); #define glDrawBuffersARB GLEW_GET_FUN(__glewDrawBuffersARB) @@ -3487,10 +3487,10 @@ #ifndef GL_ARB_draw_buffers_blend #define GL_ARB_draw_buffers_blend 1 -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void(GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIARBPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void(GLAPIENTRY * PFNGLBLENDEQUATIONIARBPROC)(GLuint buf, GLenum mode); +typedef void(GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIARBPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void(GLAPIENTRY * PFNGLBLENDFUNCIARBPROC)(GLuint buf, GLenum src, GLenum dst); #define glBlendEquationSeparateiARB GLEW_GET_FUN(__glewBlendEquationSeparateiARB) #define glBlendEquationiARB GLEW_GET_FUN(__glewBlendEquationiARB) @@ -3506,10 +3506,10 @@ #ifndef GL_ARB_draw_elements_base_vertex #define GL_ARB_draw_elements_base_vertex 1 -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, void* indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void* indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei* count, GLenum type, GLvoid**indices, GLsizei primcount, GLint *basevertex); +typedef void(GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, void * indices, GLint basevertex); +typedef void(GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount, GLint basevertex); +typedef void(GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void * indices, GLint basevertex); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei * count, GLenum type, GLvoid ** indices, GLsizei primcount, GLint * basevertex); #define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) #define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) @@ -3528,8 +3528,8 @@ #define GL_DRAW_INDIRECT_BUFFER 0x8F3F #define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void* indirect); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void* indirect); +typedef void(GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const void * indirect); +typedef void(GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void * indirect); #define glDrawArraysIndirect GLEW_GET_FUN(__glewDrawArraysIndirect) #define glDrawElementsIndirect GLEW_GET_FUN(__glewDrawElementsIndirect) @@ -3647,10 +3647,10 @@ #define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 #define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC)(GLuint framebuffer, GLenum pname, GLint param); #define glFramebufferParameteri GLEW_GET_FUN(__glewFramebufferParameteri) #define glGetFramebufferParameteriv GLEW_GET_FUN(__glewGetFramebufferParameteriv) @@ -3741,26 +3741,26 @@ #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 #define GL_MAX_SAMPLES 0x8D57 -typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer); -typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer); +typedef void(GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer); +typedef void(GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef GLenum(GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint * framebuffers); +typedef void(GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint * renderbuffers); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void(GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers); +typedef void(GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers); +typedef void(GLAPIENTRY * PFNGLGENERATEMIPMAPPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer); +typedef GLboolean(GLAPIENTRY * PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer); +typedef void(GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #define glBindFramebuffer GLEW_GET_FUN(__glewBindFramebuffer) #define glBindRenderbuffer GLEW_GET_FUN(__glewBindRenderbuffer) @@ -3823,10 +3823,10 @@ #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void(GLAPIENTRY * PFNGLPROGRAMPARAMETERIARBPROC)(GLuint program, GLenum pname, GLint value); #define glFramebufferTextureARB GLEW_GET_FUN(__glewFramebufferTextureARB) #define glFramebufferTextureFaceARB GLEW_GET_FUN(__glewFramebufferTextureFaceARB) @@ -3847,9 +3847,9 @@ #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE #define GL_PROGRAM_BINARY_FORMATS 0x87FF -typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, GLvoid*binary); -typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void* binary, GLsizei length); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, GLvoid * binary); +typedef void(GLAPIENTRY * PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat, const void * binary, GLsizei length); +typedef void(GLAPIENTRY * PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value); #define glGetProgramBinary GLEW_GET_FUN(__glewGetProgramBinary) #define glProgramBinary GLEW_GET_FUN(__glewProgramBinary) @@ -3893,24 +3893,24 @@ #define GL_DOUBLE_VEC3 0x8FFD #define GL_DOUBLE_VEC4 0x8FFE -typedef void (GLAPIENTRY * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLUNIFORM1DPROC)(GLint location, GLdouble x); +typedef void(GLAPIENTRY * PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); #define glGetUniformdv GLEW_GET_FUN(__glewGetUniformdv) #define glUniform1d GLEW_GET_FUN(__glewUniform1d) @@ -4040,38 +4040,38 @@ #define GL_REPLICATE_BORDER 0x8153 #define GL_CONVOLUTION_BORDER_COLOR 0x8154 -typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (GLAPIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLRESETMINMAXPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +typedef void(GLAPIENTRY * PFNGLCOLORSUBTABLEPROC)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLCOLORTABLEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table); +typedef void(GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat params); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC)(GLenum target, GLenum pname, GLint params); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEPROC)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void(GLAPIENTRY * PFNGLCOPYCOLORTABLEPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void(GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void(GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLGETCOLORTABLEPROC)(GLenum target, GLenum format, GLenum type, GLvoid * table); +typedef void(GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETCONVOLUTIONFILTERPROC)(GLenum target, GLenum format, GLenum type, GLvoid * image); +typedef void(GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETHISTOGRAMPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values); +typedef void(GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETMINMAXPROC)(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid * values); +typedef void(GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETSEPARABLEFILTERPROC)(GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span); +typedef void(GLAPIENTRY * PFNGLHISTOGRAMPROC)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void(GLAPIENTRY * PFNGLMINMAXPROC)(GLenum target, GLenum internalformat, GLboolean sink); +typedef void(GLAPIENTRY * PFNGLRESETHISTOGRAMPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLRESETMINMAXPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * row, const GLvoid * column); #define glColorSubTable GLEW_GET_FUN(__glewColorSubTable) #define glColorTable GLEW_GET_FUN(__glewColorTable) @@ -4117,9 +4117,9 @@ #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); +typedef void(GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void(GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC)(GLuint index, GLuint divisor); #define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB) #define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB) @@ -4136,7 +4136,7 @@ #define GL_NUM_SAMPLE_COUNTS 0x9380 -typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); +typedef void(GLAPIENTRY * PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint * params); #define glGetInternalformativ GLEW_GET_FUN(__glewGetInternalformativ) @@ -4262,7 +4262,7 @@ #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 #define GL_NUM_SAMPLE_COUNTS 0x9380 -typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params); +typedef void(GLAPIENTRY * PFNGLGETINTERNALFORMATI64VPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 * params); #define glGetInternalformati64v GLEW_GET_FUN(__glewGetInternalformati64v) @@ -4275,12 +4275,12 @@ #ifndef GL_ARB_invalidate_subdata #define GL_ARB_invalidate_subdata 1 -typedef void (GLAPIENTRY * PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments); -typedef void (GLAPIENTRY * PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); +typedef void(GLAPIENTRY * PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer); +typedef void(GLAPIENTRY * PFNGLINVALIDATEBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void(GLAPIENTRY * PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum * attachments); +typedef void(GLAPIENTRY * PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLINVALIDATETEXIMAGEPROC)(GLuint texture, GLint level); +typedef void(GLAPIENTRY * PFNGLINVALIDATETEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); #define glInvalidateBufferData GLEW_GET_FUN(__glewInvalidateBufferData) #define glInvalidateBufferSubData GLEW_GET_FUN(__glewInvalidateBufferSubData) @@ -4316,8 +4316,8 @@ #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void(GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length); +typedef GLvoid *(GLAPIENTRY * PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); #define glFlushMappedBufferRange GLEW_GET_FUN(__glewFlushMappedBufferRange) #define glMapBufferRange GLEW_GET_FUN(__glewMapBufferRange) @@ -4342,11 +4342,11 @@ #define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 #define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 -typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, GLubyte *indices); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, GLuint *indices); -typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, GLushort *indices); +typedef void(GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC)(GLint index); +typedef void(GLAPIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride, GLvoid * pointer); +typedef void(GLAPIENTRY * PFNGLMATRIXINDEXUBVARBPROC)(GLint size, GLubyte * indices); +typedef void(GLAPIENTRY * PFNGLMATRIXINDEXUIVARBPROC)(GLint size, GLuint * indices); +typedef void(GLAPIENTRY * PFNGLMATRIXINDEXUSVARBPROC)(GLint size, GLushort * indices); #define glCurrentPaletteMatrixARB GLEW_GET_FUN(__glewCurrentPaletteMatrixARB) #define glMatrixIndexPointerARB GLEW_GET_FUN(__glewMatrixIndexPointerARB) @@ -4363,8 +4363,8 @@ #ifndef GL_ARB_multi_draw_indirect #define GL_ARB_multi_draw_indirect 1 -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void* indirect, GLsizei primcount, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void* indirect, GLsizei primcount, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTPROC)(GLenum mode, const void * indirect, GLsizei primcount, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void * indirect, GLsizei primcount, GLsizei stride); #define glMultiDrawArraysIndirect GLEW_GET_FUN(__glewMultiDrawArraysIndirect) #define glMultiDrawElementsIndirect GLEW_GET_FUN(__glewMultiDrawElementsIndirect) @@ -4388,7 +4388,7 @@ #define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB #define GL_MULTISAMPLE_BIT_ARB 0x20000000 -typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); +typedef void(GLAPIENTRY * PFNGLSAMPLECOVERAGEARBPROC)(GLclampf value, GLboolean invert); #define glSampleCoverageARB GLEW_GET_FUN(__glewSampleCoverageARB) @@ -4437,40 +4437,40 @@ #define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 #define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); +typedef void(GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC)(GLenum texture); +typedef void(GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC)(GLenum texture); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC)(GLenum target, GLdouble s); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC)(GLenum target, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC)(GLenum target, GLfloat s); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC)(GLenum target, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC)(GLenum target, GLint s); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC)(GLenum target, const GLint * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC)(GLenum target, GLshort s); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC)(GLenum target, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC)(GLenum target, GLdouble s, GLdouble t); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC)(GLenum target, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC)(GLenum target, GLfloat s, GLfloat t); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC)(GLenum target, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC)(GLenum target, GLint s, GLint t); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC)(GLenum target, const GLint * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC)(GLenum target, GLshort s, GLshort t); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC)(GLenum target, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC)(GLenum target, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC)(GLenum target, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC)(GLenum target, GLint s, GLint t, GLint r); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC)(GLenum target, const GLint * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC)(GLenum target, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC)(GLenum target, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC)(GLenum target, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC)(GLenum target, const GLint * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC)(GLenum target, const GLshort * v); #define glActiveTextureARB GLEW_GET_FUN(__glewActiveTextureARB) #define glClientActiveTextureARB GLEW_GET_FUN(__glewClientActiveTextureARB) @@ -4522,14 +4522,14 @@ #define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 #define GL_SAMPLES_PASSED_ARB 0x8914 -typedef void (GLAPIENTRY * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISQUERYARBPROC) (GLuint id); +typedef void(GLAPIENTRY * PFNGLBEGINQUERYARBPROC)(GLenum target, GLuint id); +typedef void(GLAPIENTRY * PFNGLDELETEQUERIESARBPROC)(GLsizei n, const GLuint * ids); +typedef void(GLAPIENTRY * PFNGLENDQUERYARBPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLGENQUERIESARBPROC)(GLsizei n, GLuint * ids); +typedef void(GLAPIENTRY * PFNGLGETQUERYOBJECTIVARBPROC)(GLuint id, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC)(GLuint id, GLenum pname, GLuint * params); +typedef void(GLAPIENTRY * PFNGLGETQUERYIVARBPROC)(GLenum target, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISQUERYARBPROC)(GLuint id); #define glBeginQueryARB GLEW_GET_FUN(__glewBeginQueryARB) #define glDeleteQueriesARB GLEW_GET_FUN(__glewDeleteQueriesARB) @@ -4579,8 +4579,8 @@ #define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 #define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat* params); +typedef void(GLAPIENTRY * PFNGLPOINTPARAMETERFARBPROC)(GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC)(GLenum pname, const GLfloat * params); #define glPointParameterfARB GLEW_GET_FUN(__glewPointParameterfARB) #define glPointParameterfvARB GLEW_GET_FUN(__glewPointParameterfvARB) @@ -4654,12 +4654,12 @@ #define GL_LOCATION 0x930E #define GL_LOCATION_INDEX 0x930F -typedef void (GLAPIENTRY * PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint* params); -typedef GLuint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar* name); -typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar* name); -typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLint *params); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint program, GLenum programInterface, GLenum pname, GLint * params); +typedef GLuint(GLAPIENTRY * PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint program, GLenum programInterface, const GLchar * name); +typedef GLint(GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint program, GLenum programInterface, const GLchar * name); +typedef GLint(GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint program, GLenum programInterface, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei bufSize, GLsizei * length, GLint * params); #define glGetProgramInterfaceiv GLEW_GET_FUN(__glewGetProgramInterfaceiv) #define glGetProgramResourceIndex GLEW_GET_FUN(__glewGetProgramResourceIndex) @@ -4682,7 +4682,7 @@ #define GL_LAST_VERTEX_CONVENTION 0x8E4E #define GL_PROVOKING_VERTEX 0x8E4F -typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC) (GLenum mode); +typedef void(GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC)(GLenum mode); #define glProvokingVertex GLEW_GET_FUN(__glewProvokingVertex) @@ -4712,26 +4712,26 @@ #define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 #define GL_NO_RESET_NOTIFICATION_ARB 0x8261 -typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table); -typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void* img); -typedef void (GLAPIENTRY * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image); -typedef void (GLAPIENTRY * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); -typedef void (GLAPIENTRY * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v); -typedef void (GLAPIENTRY * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v); -typedef void (GLAPIENTRY * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint* v); -typedef void (GLAPIENTRY * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint* values); -typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort* values); -typedef void (GLAPIENTRY * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte* pattern); -typedef void (GLAPIENTRY * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, GLvoid*column, GLvoid*span); -typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params); -typedef void (GLAPIENTRY * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data); +typedef GLenum(GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSARBPROC)(void); +typedef void(GLAPIENTRY * PFNGLGETNCOLORTABLEARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * table); +typedef void(GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint lod, GLsizei bufSize, void * img); +typedef void(GLAPIENTRY * PFNGLGETNCONVOLUTIONFILTERARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * image); +typedef void(GLAPIENTRY * PFNGLGETNHISTOGRAMARBPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values); +typedef void(GLAPIENTRY * PFNGLGETNMAPDVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLdouble * v); +typedef void(GLAPIENTRY * PFNGLGETNMAPFVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLfloat * v); +typedef void(GLAPIENTRY * PFNGLGETNMAPIVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLint * v); +typedef void(GLAPIENTRY * PFNGLGETNMINMAXARBPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values); +typedef void(GLAPIENTRY * PFNGLGETNPIXELMAPFVARBPROC)(GLenum map, GLsizei bufSize, GLfloat * values); +typedef void(GLAPIENTRY * PFNGLGETNPIXELMAPUIVARBPROC)(GLenum map, GLsizei bufSize, GLuint * values); +typedef void(GLAPIENTRY * PFNGLGETNPIXELMAPUSVARBPROC)(GLenum map, GLsizei bufSize, GLushort * values); +typedef void(GLAPIENTRY * PFNGLGETNPOLYGONSTIPPLEARBPROC)(GLsizei bufSize, GLubyte * pattern); +typedef void(GLAPIENTRY * PFNGLGETNSEPARABLEFILTERARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void * row, GLsizei columnBufSize, GLvoid * column, GLvoid * span); +typedef void(GLAPIENTRY * PFNGLGETNTEXIMAGEARBPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * img); +typedef void(GLAPIENTRY * PFNGLGETNUNIFORMDVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETNUNIFORMFVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETNUNIFORMIVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETNUNIFORMUIVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint * params); +typedef void(GLAPIENTRY * PFNGLREADNPIXELSARBPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data); #define glGetGraphicsResetStatusARB GLEW_GET_FUN(__glewGetGraphicsResetStatusARB) #define glGetnColorTableARB GLEW_GET_FUN(__glewGetnColorTableARB) @@ -4784,7 +4784,7 @@ #define GL_SAMPLE_SHADING_ARB 0x8C36 #define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 -typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); +typedef void(GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC)(GLclampf value); #define glMinSampleShadingARB GLEW_GET_FUN(__glewMinSampleShadingARB) @@ -4799,20 +4799,20 @@ #define GL_SAMPLER_BINDING 0x8919 -typedef void (GLAPIENTRY * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (GLAPIENTRY * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers); -typedef void (GLAPIENTRY * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint* params); +typedef void(GLAPIENTRY * PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler); +typedef void(GLAPIENTRY * PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint * samplers); +typedef void(GLAPIENTRY * PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint * samplers); +typedef void(GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint * params); +typedef void(GLAPIENTRY * PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISSAMPLERPROC)(GLuint sampler); +typedef void(GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint * params); +typedef void(GLAPIENTRY * PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint * params); #define glBindSampler GLEW_GET_FUN(__glewBindSampler) #define glDeleteSamplers GLEW_GET_FUN(__glewDeleteSamplers) @@ -4859,66 +4859,66 @@ #define GL_PROGRAM_PIPELINE_BINDING 0x825A #define GL_ALL_SHADER_BITS 0xFFFFFFFF -typedef void (GLAPIENTRY * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar ** strings); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar *infoLog); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint x, GLuint y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void(GLAPIENTRY * PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program); +typedef void(GLAPIENTRY * PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline); +typedef GLuint(GLAPIENTRY * PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count, const GLchar ** strings); +typedef void(GLAPIENTRY * PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint * pipelines); +typedef void(GLAPIENTRY * PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint * pipelines); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble x); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat x); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint x); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint x); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat x, GLfloat y); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint x, GLint y); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint x, GLuint y); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint x, GLint y, GLint z); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint x, GLuint y, GLuint z); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages, GLuint program); +typedef void(GLAPIENTRY * PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline); #define glActiveShaderProgram GLEW_GET_FUN(__glewActiveShaderProgram) #define glBindProgramPipeline GLEW_GET_FUN(__glewBindProgramPipeline) @@ -5020,7 +5020,7 @@ #define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB #define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -typedef void (GLAPIENTRY * PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint* params); +typedef void(GLAPIENTRY * PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params); #define glGetActiveAtomicCounterBufferiv GLEW_GET_FUN(__glewGetActiveAtomicCounterBufferiv) @@ -5107,8 +5107,8 @@ #define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF #define GL_ALL_BARRIER_BITS 0xFFFFFFFF -typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); +typedef void(GLAPIENTRY * PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +typedef void(GLAPIENTRY * PFNGLMEMORYBARRIERPROC)(GLbitfield barriers); #define glBindImageTexture GLEW_GET_FUN(__glewBindImageTexture) #define glMemoryBarrier GLEW_GET_FUN(__glewMemoryBarrier) @@ -5169,45 +5169,45 @@ typedef char GLcharARB; typedef unsigned int GLhandleARB; -typedef void (GLAPIENTRY * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (GLAPIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef GLhandleARB (GLAPIENTRY * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (GLAPIENTRY * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef void (GLAPIENTRY * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (GLAPIENTRY * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei* count, GLhandleARB *obj); -typedef GLhandleARB (GLAPIENTRY * PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (GLAPIENTRY * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *infoLog); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *source); -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint* params); -typedef void (GLAPIENTRY * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (GLAPIENTRY * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint *length); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); +typedef void(GLAPIENTRY * PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB obj); +typedef void(GLAPIENTRY * PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj); +typedef GLhandleARB(GLAPIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC)(void); +typedef GLhandleARB(GLAPIENTRY * PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType); +typedef void(GLAPIENTRY * PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj); +typedef void(GLAPIENTRY * PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB attachedObj); +typedef void(GLAPIENTRY * PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name); +typedef void(GLAPIENTRY * PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj, GLsizei maxCount, GLsizei * count, GLhandleARB * obj); +typedef GLhandleARB(GLAPIENTRY * PFNGLGETHANDLEARBPROC)(GLenum pname); +typedef void(GLAPIENTRY * PFNGLGETINFOLOGARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog); +typedef void(GLAPIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * source); +typedef GLint(GLAPIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB * name); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, GLint location, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, GLint location, GLint * params); +typedef void(GLAPIENTRY * PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj); +typedef void(GLAPIENTRY * PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint * length); +typedef void(GLAPIENTRY * PFNGLUNIFORM1FARBPROC)(GLint location, GLfloat v0); +typedef void(GLAPIENTRY * PFNGLUNIFORM1FVARBPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM1IARBPROC)(GLint location, GLint v0); +typedef void(GLAPIENTRY * PFNGLUNIFORM1IVARBPROC)(GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM2FARBPROC)(GLint location, GLfloat v0, GLfloat v1); +typedef void(GLAPIENTRY * PFNGLUNIFORM2FVARBPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM2IARBPROC)(GLint location, GLint v0, GLint v1); +typedef void(GLAPIENTRY * PFNGLUNIFORM2IVARBPROC)(GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM3FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void(GLAPIENTRY * PFNGLUNIFORM3FVARBPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM3IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2); +typedef void(GLAPIENTRY * PFNGLUNIFORM3IVARBPROC)(GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM4FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void(GLAPIENTRY * PFNGLUNIFORM4FVARBPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM4IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void(GLAPIENTRY * PFNGLUNIFORM4IVARBPROC)(GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj); +typedef void(GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj); #define glAttachObjectARB GLEW_GET_FUN(__glewAttachObjectARB) #define glCompileShaderARB GLEW_GET_FUN(__glewCompileShaderARB) @@ -5293,7 +5293,7 @@ #define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE #define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -typedef void (GLAPIENTRY * PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); +typedef void(GLAPIENTRY * PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); #define glShaderStorageBlockBinding GLEW_GET_FUN(__glewShaderStorageBlockBinding) @@ -5316,14 +5316,14 @@ #define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A #define GL_COMPATIBLE_SUBROUTINES 0x8E4B -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint* values); -typedef GLuint (GLAPIENTRY * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar* name); -typedef GLint (GLAPIENTRY * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint* params); -typedef void (GLAPIENTRY * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint* indices); +typedef void(GLAPIENTRY * PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shadertype, GLenum pname, GLint * values); +typedef GLuint(GLAPIENTRY * PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shadertype, const GLchar * name); +typedef GLint(GLAPIENTRY * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program, GLenum shadertype, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shadertype, GLint location, GLuint * params); +typedef void(GLAPIENTRY * PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shadertype, GLsizei count, const GLuint * indices); #define glGetActiveSubroutineName GLEW_GET_FUN(__glewGetActiveSubroutineName) #define glGetActiveSubroutineUniformName GLEW_GET_FUN(__glewGetActiveSubroutineUniformName) @@ -5376,12 +5376,12 @@ #define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 #define GL_NAMED_STRING_TYPE_ARB 0x8DEA -typedef void (GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar ** path, const GLint *length); -typedef void (GLAPIENTRY * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name, GLsizei bufSize, GLint *stringlen, GLchar *string); -typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar* name, GLenum pname, GLint *params); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name); -typedef void (GLAPIENTRY * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar* name, GLint stringlen, const GLchar *string); +typedef void(GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC)(GLuint shader, GLsizei count, const GLchar ** path, const GLint * length); +typedef void(GLAPIENTRY * PFNGLDELETENAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETNAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name, GLsizei bufSize, GLint * stringlen, GLchar * string); +typedef void(GLAPIENTRY * PFNGLGETNAMEDSTRINGIVARBPROC)(GLint namelen, const GLchar * name, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISNAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLNAMEDSTRINGARBPROC)(GLenum type, GLint namelen, const GLchar * name, GLint stringlen, const GLchar * string); #define glCompileShaderIncludeARB GLEW_GET_FUN(__glewCompileShaderIncludeARB) #define glDeleteNamedStringARB GLEW_GET_FUN(__glewDeleteNamedStringARB) @@ -5459,13 +5459,13 @@ #define GL_WAIT_FAILED 0x911D #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF -typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); -typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync); -typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags); -typedef void (GLAPIENTRY * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64* params); -typedef void (GLAPIENTRY * PFNGLGETSYNCIVPROC) (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values); -typedef GLboolean (GLAPIENTRY * PFNGLISSYNCPROC) (GLsync GLsync); -typedef void (GLAPIENTRY * PFNGLWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); +typedef GLenum(GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC)(GLsync GLsync, GLbitfield flags, GLuint64 timeout); +typedef void(GLAPIENTRY * PFNGLDELETESYNCPROC)(GLsync GLsync); +typedef GLsync(GLAPIENTRY * PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags); +typedef void(GLAPIENTRY * PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 * params); +typedef void(GLAPIENTRY * PFNGLGETSYNCIVPROC)(GLsync GLsync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values); +typedef GLboolean(GLAPIENTRY * PFNGLISSYNCPROC)(GLsync GLsync); +typedef void(GLAPIENTRY * PFNGLWAITSYNCPROC)(GLsync GLsync, GLbitfield flags, GLuint64 timeout); #define glClientWaitSync GLEW_GET_FUN(__glewClientWaitSync) #define glDeleteSync GLEW_GET_FUN(__glewDeleteSync) @@ -5517,8 +5517,8 @@ #define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 #define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat* values); -typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); +typedef void(GLAPIENTRY * PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat * values); +typedef void(GLAPIENTRY * PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value); #define glPatchParameterfv GLEW_GET_FUN(__glewPatchParameterfv) #define glPatchParameteri GLEW_GET_FUN(__glewPatchParameteri) @@ -5549,7 +5549,7 @@ #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D #define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E -typedef void (GLAPIENTRY * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void(GLAPIENTRY * PFNGLTEXBUFFERARBPROC)(GLenum target, GLenum internalformat, GLuint buffer); #define glTexBufferARB GLEW_GET_FUN(__glewTexBufferARB) @@ -5575,8 +5575,8 @@ #define GL_TEXTURE_BUFFER_SIZE 0x919E #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F -typedef void (GLAPIENTRY * PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void(GLAPIENTRY * PFNGLTEXBUFFERRANGEPROC)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void(GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEEXTPROC)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); #define glTexBufferRange GLEW_GET_FUN(__glewTexBufferRange) #define glTextureBufferRangeEXT GLEW_GET_FUN(__glewTextureBufferRangeEXT) @@ -5602,13 +5602,13 @@ #define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, void* img); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint lod, void * img); #define glCompressedTexImage1DARB GLEW_GET_FUN(__glewCompressedTexImage1DARB) #define glCompressedTexImage2DARB GLEW_GET_FUN(__glewCompressedTexImage2DARB) @@ -5832,10 +5832,10 @@ #define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F #define GL_MAX_INTEGER_SAMPLES 0x9110 -typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val); -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void(GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat * val); +typedef void(GLAPIENTRY * PFNGLSAMPLEMASKIPROC)(GLuint index, GLbitfield mask); +typedef void(GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void(GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); #define glGetMultisamplefv GLEW_GET_FUN(__glewGetMultisamplefv) #define glSampleMaski GLEW_GET_FUN(__glewSampleMaski) @@ -5941,12 +5941,12 @@ #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void(GLAPIENTRY * PFNGLTEXSTORAGE1DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void(GLAPIENTRY * PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void(GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void(GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #define glTexStorage1D GLEW_GET_FUN(__glewTexStorage1D) #define glTexStorage2D GLEW_GET_FUN(__glewTexStorage2D) @@ -5964,10 +5964,10 @@ #ifndef GL_ARB_texture_storage_multisample #define GL_ARB_texture_storage_multisample 1 -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void(GLAPIENTRY * PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void(GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void(GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void(GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); #define glTexStorage2DMultisample GLEW_GET_FUN(__glewTexStorage2DMultisample) #define glTexStorage3DMultisample GLEW_GET_FUN(__glewTexStorage3DMultisample) @@ -6004,7 +6004,7 @@ #define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +typedef void(GLAPIENTRY * PFNGLTEXTUREVIEWPROC)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); #define glTextureView GLEW_GET_FUN(__glewTextureView) @@ -6020,9 +6020,9 @@ #define GL_TIME_ELAPSED 0x88BF #define GL_TIMESTAMP 0x8E28 -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params); -typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); +typedef void(GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 * params); +typedef void(GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 * params); +typedef void(GLAPIENTRY * PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target); #define glGetQueryObjecti64v GLEW_GET_FUN(__glewGetQueryObjecti64v) #define glGetQueryObjectui64v GLEW_GET_FUN(__glewGetQueryObjectui64v) @@ -6042,13 +6042,13 @@ #define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 #define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); -typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids); -typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); +typedef void(GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id); +typedef void(GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint * ids); +typedef void(GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint id); +typedef void(GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint * ids); +typedef GLboolean(GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id); +typedef void(GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKPROC)(void); +typedef void(GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKPROC)(void); #define glBindTransformFeedback GLEW_GET_FUN(__glewBindTransformFeedback) #define glDeleteTransformFeedbacks GLEW_GET_FUN(__glewDeleteTransformFeedbacks) @@ -6070,10 +6070,10 @@ #define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 #define GL_MAX_VERTEX_STREAMS 0x8E71 -typedef void (GLAPIENTRY * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); -typedef void (GLAPIENTRY * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); +typedef void(GLAPIENTRY * PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id); +typedef void(GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id, GLuint stream); +typedef void(GLAPIENTRY * PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index); +typedef void(GLAPIENTRY * PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname, GLint * params); #define glBeginQueryIndexed GLEW_GET_FUN(__glewBeginQueryIndexed) #define glDrawTransformFeedbackStream GLEW_GET_FUN(__glewDrawTransformFeedbackStream) @@ -6089,8 +6089,8 @@ #ifndef GL_ARB_transform_feedback_instanced #define GL_ARB_transform_feedback_instanced 1 -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei primcount); +typedef void(GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum mode, GLuint id, GLsizei primcount); +typedef void(GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum mode, GLuint id, GLuint stream, GLsizei primcount); #define glDrawTransformFeedbackInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackInstanced) #define glDrawTransformFeedbackStreamInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackStreamInstanced) @@ -6109,10 +6109,10 @@ #define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 #define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); -typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); +typedef void(GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC)(GLdouble m[16]); +typedef void(GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC)(GLfloat m[16]); +typedef void(GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC)(GLdouble m[16]); +typedef void(GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC)(GLfloat m[16]); #define glLoadTransposeMatrixdARB GLEW_GET_FUN(__glewLoadTransposeMatrixdARB) #define glLoadTransposeMatrixfARB GLEW_GET_FUN(__glewLoadTransposeMatrixfARB) @@ -6162,16 +6162,16 @@ #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 #define GL_INVALID_INDEX 0xFFFFFFFF -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName); -typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data); -typedef GLuint (GLAPIENTRY * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar* uniformBlockName); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar** uniformNames, GLuint* uniformIndices); -typedef void (GLAPIENTRY * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +typedef void(GLAPIENTRY * PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer); +typedef void(GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void(GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName); +typedef void(GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName); +typedef void(GLAPIENTRY * PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint * data); +typedef GLuint(GLAPIENTRY * PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar * uniformBlockName); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar ** uniformNames, GLuint * uniformIndices); +typedef void(GLAPIENTRY * PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); #define glBindBufferBase GLEW_GET_FUN(__glewBindBufferBase) #define glBindBufferRange GLEW_GET_FUN(__glewBindBufferRange) @@ -6206,10 +6206,10 @@ #define GL_VERTEX_ARRAY_BINDING 0x85B5 -typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays); -typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); -typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array); +typedef void(GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC)(GLuint array); +typedef void(GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint * arrays); +typedef void(GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint * arrays); +typedef GLboolean(GLAPIENTRY * PFNGLISVERTEXARRAYPROC)(GLuint array); #define glBindVertexArray GLEW_GET_FUN(__glewBindVertexArray) #define glDeleteVertexArrays GLEW_GET_FUN(__glewDeleteVertexArrays) @@ -6232,16 +6232,16 @@ #define GL_DOUBLE_VEC3 0x8FFD #define GL_DOUBLE_VEC4 0x8FFE -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer); #define glGetVertexAttribLdv GLEW_GET_FUN(__glewGetVertexAttribLdv) #define glVertexAttribL1d GLEW_GET_FUN(__glewVertexAttribL1d) @@ -6271,12 +6271,12 @@ #define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 #define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void (GLAPIENTRY * PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); +typedef void(GLAPIENTRY * PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void(GLAPIENTRY * PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor); #define glBindVertexBuffer GLEW_GET_FUN(__glewBindVertexBuffer) #define glVertexAttribBinding GLEW_GET_FUN(__glewVertexAttribBinding) @@ -6337,16 +6337,16 @@ #define GL_MODELVIEW30_ARB 0x873E #define GL_MODELVIEW31_ARB 0x873F -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDARBPROC) (GLint count); -typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLWEIGHTBVARBPROC) (GLint size, GLbyte *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTDVARBPROC) (GLint size, GLdouble *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTFVARBPROC) (GLint size, GLfloat *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTIVARBPROC) (GLint size, GLint *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTSVARBPROC) (GLint size, GLshort *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUBVARBPROC) (GLint size, GLubyte *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUIVARBPROC) (GLint size, GLuint *weights); -typedef void (GLAPIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, GLushort *weights); +typedef void(GLAPIENTRY * PFNGLVERTEXBLENDARBPROC)(GLint count); +typedef void(GLAPIENTRY * PFNGLWEIGHTPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride, GLvoid * pointer); +typedef void(GLAPIENTRY * PFNGLWEIGHTBVARBPROC)(GLint size, GLbyte * weights); +typedef void(GLAPIENTRY * PFNGLWEIGHTDVARBPROC)(GLint size, GLdouble * weights); +typedef void(GLAPIENTRY * PFNGLWEIGHTFVARBPROC)(GLint size, GLfloat * weights); +typedef void(GLAPIENTRY * PFNGLWEIGHTIVARBPROC)(GLint size, GLint * weights); +typedef void(GLAPIENTRY * PFNGLWEIGHTSVARBPROC)(GLint size, GLshort * weights); +typedef void(GLAPIENTRY * PFNGLWEIGHTUBVARBPROC)(GLint size, GLubyte * weights); +typedef void(GLAPIENTRY * PFNGLWEIGHTUIVARBPROC)(GLint size, GLuint * weights); +typedef void(GLAPIENTRY * PFNGLWEIGHTUSVARBPROC)(GLint size, GLushort * weights); #define glVertexBlendARB GLEW_GET_FUN(__glewVertexBlendARB) #define glWeightPointerARB GLEW_GET_FUN(__glewWeightPointerARB) @@ -6403,17 +6403,17 @@ typedef ptrdiff_t GLintptrARB; typedef ptrdiff_t GLsizeiptrARB; -typedef void (GLAPIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid* data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid* data); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint* buffers); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid* data); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target); +typedef void(GLAPIENTRY * PFNGLBINDBUFFERARBPROC)(GLenum target, GLuint buffer); +typedef void(GLAPIENTRY * PFNGLBUFFERDATAARBPROC)(GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage); +typedef void(GLAPIENTRY * PFNGLBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data); +typedef void(GLAPIENTRY * PFNGLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint * buffers); +typedef void(GLAPIENTRY * PFNGLGENBUFFERSARBPROC)(GLsizei n, GLuint * buffers); +typedef void(GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETBUFFERPOINTERVARBPROC)(GLenum target, GLenum pname, GLvoid ** params); +typedef void(GLAPIENTRY * PFNGLGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data); +typedef GLboolean(GLAPIENTRY * PFNGLISBUFFERARBPROC)(GLuint buffer); +typedef GLvoid *(GLAPIENTRY * PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum access); +typedef GLboolean(GLAPIENTRY * PFNGLUNMAPBUFFERARBPROC)(GLenum target); #define glBindBufferARB GLEW_GET_FUN(__glewBindBufferARB) #define glBufferDataARB GLEW_GET_FUN(__glewBufferDataARB) @@ -6516,68 +6516,68 @@ #define GL_MATRIX30_ARB 0x88DE #define GL_MATRIX31_ARB 0x88DF -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint* programs); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint* programs); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void* string); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid** pointer); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void* string); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer); +typedef void(GLAPIENTRY * PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program); +typedef void(GLAPIENTRY * PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint * programs); +typedef void(GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index); +typedef void(GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index); +typedef void(GLAPIENTRY * PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint * programs); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, void * string); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname, GLvoid ** pointer); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISPROGRAMARBPROC)(GLuint program); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len, const void * string); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer); #define glBindProgramARB GLEW_GET_FUN(__glewBindProgramARB) #define glDeleteProgramsARB GLEW_GET_FUN(__glewDeleteProgramsARB) @@ -6659,9 +6659,9 @@ #define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 #define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB* name); -typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); +typedef void(GLAPIENTRY * PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index, const GLcharARB * name); +typedef void(GLAPIENTRY * PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name); +typedef GLint(GLAPIENTRY * PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB * name); #define glBindAttribLocationARB GLEW_GET_FUN(__glewBindAttribLocationARB) #define glGetActiveAttribARB GLEW_GET_FUN(__glewGetActiveAttribARB) @@ -6679,44 +6679,44 @@ #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 #define GL_INT_2_10_10_10_REV 0x8D9F -typedef void (GLAPIENTRY * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint* color); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); -typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint* coords); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); -typedef void (GLAPIENTRY * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint* value); +typedef void(GLAPIENTRY * PFNGLCOLORP3UIPROC)(GLenum type, GLuint color); +typedef void(GLAPIENTRY * PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint * color); +typedef void(GLAPIENTRY * PFNGLCOLORP4UIPROC)(GLenum type, GLuint color); +typedef void(GLAPIENTRY * PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint * color); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint * coords); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint * coords); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint * coords); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint * coords); +typedef void(GLAPIENTRY * PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords); +typedef void(GLAPIENTRY * PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint * coords); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint * color); +typedef void(GLAPIENTRY * PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords); +typedef void(GLAPIENTRY * PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint * coords); +typedef void(GLAPIENTRY * PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords); +typedef void(GLAPIENTRY * PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint * coords); +typedef void(GLAPIENTRY * PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords); +typedef void(GLAPIENTRY * PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint * coords); +typedef void(GLAPIENTRY * PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords); +typedef void(GLAPIENTRY * PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value); +typedef void(GLAPIENTRY * PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value); +typedef void(GLAPIENTRY * PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value); +typedef void(GLAPIENTRY * PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint * value); #define glColorP3ui GLEW_GET_FUN(__glewColorP3ui) #define glColorP3uiv GLEW_GET_FUN(__glewColorP3uiv) @@ -6780,16 +6780,16 @@ #define GL_LAST_VERTEX_CONVENTION 0x8E4E #define GL_PROVOKING_VERTEX 0x8E4F -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd * v); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble* data); -typedef void (GLAPIENTRY * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat* data); -typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint * v); -typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint * v); -typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat * v); -typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count, const GLclampd * v); +typedef void(GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLclampd n, GLclampd f); +typedef void(GLAPIENTRY * PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble * data); +typedef void(GLAPIENTRY * PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat * data); +typedef void(GLAPIENTRY * PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint * v); +typedef void(GLAPIENTRY * PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint * v); +typedef void(GLAPIENTRY * PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void(GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat * v); #define glDepthRangeArrayv GLEW_GET_FUN(__glewDepthRangeArrayv) #define glDepthRangeIndexed GLEW_GET_FUN(__glewDepthRangeIndexed) @@ -6811,22 +6811,22 @@ #ifndef GL_ARB_window_pos #define GL_ARB_window_pos 1 -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2DARBPROC)(GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2DVARBPROC)(const GLdouble * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2FARBPROC)(GLfloat x, GLfloat y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2FVARBPROC)(const GLfloat * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2IARBPROC)(GLint x, GLint y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2IVARBPROC)(const GLint * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2SARBPROC)(GLshort x, GLshort y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2SVARBPROC)(const GLshort * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3DARBPROC)(GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3DVARBPROC)(const GLdouble * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3FARBPROC)(GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3FVARBPROC)(const GLfloat * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3IARBPROC)(GLint x, GLint y, GLint z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3IVARBPROC)(const GLint * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3SARBPROC)(GLshort x, GLshort y, GLshort z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC)(const GLshort * p); #define glWindowPos2dARB GLEW_GET_FUN(__glewWindowPos2dARB) #define glWindowPos2dvARB GLEW_GET_FUN(__glewWindowPos2dvARB) @@ -6925,7 +6925,7 @@ #define GL_DRAW_BUFFER14_ATI 0x8833 #define GL_DRAW_BUFFER15_ATI 0x8834 -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum* bufs); +typedef void(GLAPIENTRY * PFNGLDRAWBUFFERSATIPROC)(GLsizei n, const GLenum * bufs); #define glDrawBuffersATI GLEW_GET_FUN(__glewDrawBuffersATI) @@ -6942,9 +6942,9 @@ #define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 #define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void* pointer); +typedef void(GLAPIENTRY * PFNGLDRAWELEMENTARRAYATIPROC)(GLenum mode, GLsizei count); +typedef void(GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count); +typedef void(GLAPIENTRY * PFNGLELEMENTPOINTERATIPROC)(GLenum type, const void * pointer); #define glDrawElementArrayATI GLEW_GET_FUN(__glewDrawElementArrayATI) #define glDrawRangeElementArrayATI GLEW_GET_FUN(__glewDrawRangeElementArrayATI) @@ -6968,10 +6968,10 @@ #define GL_BUMP_ENVMAP_ATI 0x877B #define GL_BUMP_TARGET_ATI 0x877C -typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef void(GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC)(GLenum pname, GLfloat * param); +typedef void(GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC)(GLenum pname, GLint * param); +typedef void(GLAPIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC)(GLenum pname, GLfloat * param); +typedef void(GLAPIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC)(GLenum pname, GLint * param); #define glGetTexBumpParameterfvATI GLEW_GET_FUN(__glewGetTexBumpParameterfvATI) #define glGetTexBumpParameterivATI GLEW_GET_FUN(__glewGetTexBumpParameterivATI) @@ -7042,20 +7042,20 @@ #define GL_SWIZZLE_STRQ_ATI 0x897A #define GL_SWIZZLE_STRQ_DQ_ATI 0x897B -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (GLAPIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (GLAPIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (GLAPIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (GLAPIENTRY * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (GLAPIENTRY * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (GLAPIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat* value); +typedef void(GLAPIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void(GLAPIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void(GLAPIENTRY * PFNGLALPHAFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void(GLAPIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC)(void); +typedef void(GLAPIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id); +typedef void(GLAPIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void(GLAPIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void(GLAPIENTRY * PFNGLCOLORFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void(GLAPIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id); +typedef void(GLAPIENTRY * PFNGLENDFRAGMENTSHADERATIPROC)(void); +typedef GLuint(GLAPIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range); +typedef void(GLAPIENTRY * PFNGLPASSTEXCOORDATIPROC)(GLuint dst, GLuint coord, GLenum swizzle); +typedef void(GLAPIENTRY * PFNGLSAMPLEMAPATIPROC)(GLuint dst, GLuint interp, GLenum swizzle); +typedef void(GLAPIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)(GLuint dst, const GLfloat * value); #define glAlphaFragmentOp1ATI GLEW_GET_FUN(__glewAlphaFragmentOp1ATI) #define glAlphaFragmentOp2ATI GLEW_GET_FUN(__glewAlphaFragmentOp2ATI) @@ -7081,8 +7081,8 @@ #ifndef GL_ATI_map_object_buffer #define GL_ATI_map_object_buffer 1 -typedef GLvoid * (GLAPIENTRY * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); +typedef GLvoid *(GLAPIENTRY * PFNGLMAPOBJECTBUFFERATIPROC)(GLuint buffer); +typedef void(GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC)(GLuint buffer); #define glMapObjectBufferATI GLEW_GET_FUN(__glewMapObjectBufferATI) #define glUnmapObjectBufferATI GLEW_GET_FUN(__glewUnmapObjectBufferATI) @@ -7119,8 +7119,8 @@ #define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 #define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 -typedef void (GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC)(GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC)(GLenum pname, GLint param); #define glPNTrianglesfATI GLEW_GET_FUN(__glewPNTrianglesfATI) #define glPNTrianglesiATI GLEW_GET_FUN(__glewPNTrianglesiATI) @@ -7139,8 +7139,8 @@ #define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 #define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 -typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void(GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEATIPROC)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +typedef void(GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); #define glStencilFuncSeparateATI GLEW_GET_FUN(__glewStencilFuncSeparateATI) #define glStencilOpSeparateATI GLEW_GET_FUN(__glewStencilOpSeparateATI) @@ -7241,18 +7241,18 @@ #define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 #define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -typedef void (GLAPIENTRY * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (GLAPIENTRY * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef GLuint (GLAPIENTRY * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void* pointer, GLenum usage); -typedef void (GLAPIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void* pointer, GLenum preserve); -typedef void (GLAPIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void(GLAPIENTRY * PFNGLARRAYOBJECTATIPROC)(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void(GLAPIENTRY * PFNGLFREEOBJECTBUFFERATIPROC)(GLuint buffer); +typedef void(GLAPIENTRY * PFNGLGETARRAYOBJECTFVATIPROC)(GLenum array, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETARRAYOBJECTIVATIPROC)(GLenum array, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC)(GLuint buffer, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC)(GLuint buffer, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC)(GLuint id, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC)(GLuint id, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISOBJECTBUFFERATIPROC)(GLuint buffer); +typedef GLuint(GLAPIENTRY * PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, const void * pointer, GLenum usage); +typedef void(GLAPIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC)(GLuint buffer, GLuint offset, GLsizei size, const void * pointer, GLenum preserve); +typedef void(GLAPIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC)(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); #define glArrayObjectATI GLEW_GET_FUN(__glewArrayObjectATI) #define glFreeObjectBufferATI GLEW_GET_FUN(__glewFreeObjectBufferATI) @@ -7276,9 +7276,9 @@ #ifndef GL_ATI_vertex_attrib_array_object #define GL_ATI_vertex_attrib_array_object 1 -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)(GLuint index, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)(GLuint index, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); #define glGetVertexAttribArrayObjectfvATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectfvATI) #define glGetVertexAttribArrayObjectivATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectivATI) @@ -7304,51 +7304,51 @@ #define GL_VERTEX_STREAM6_ATI 0x8773 #define GL_VERTEX_STREAM7_ATI 0x8774 -typedef void (GLAPIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void(GLAPIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC)(GLenum stream); +typedef void(GLAPIENTRY * PFNGLNORMALSTREAM3BATIPROC)(GLenum stream, GLbyte x, GLbyte y, GLbyte z); +typedef void(GLAPIENTRY * PFNGLNORMALSTREAM3BVATIPROC)(GLenum stream, const GLbyte * coords); +typedef void(GLAPIENTRY * PFNGLNORMALSTREAM3DATIPROC)(GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLNORMALSTREAM3DVATIPROC)(GLenum stream, const GLdouble * coords); +typedef void(GLAPIENTRY * PFNGLNORMALSTREAM3FATIPROC)(GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLNORMALSTREAM3FVATIPROC)(GLenum stream, const GLfloat * coords); +typedef void(GLAPIENTRY * PFNGLNORMALSTREAM3IATIPROC)(GLenum stream, GLint x, GLint y, GLint z); +typedef void(GLAPIENTRY * PFNGLNORMALSTREAM3IVATIPROC)(GLenum stream, const GLint * coords); +typedef void(GLAPIENTRY * PFNGLNORMALSTREAM3SATIPROC)(GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void(GLAPIENTRY * PFNGLNORMALSTREAM3SVATIPROC)(GLenum stream, const GLshort * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXBLENDENVFATIPROC)(GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLVERTEXBLENDENVIATIPROC)(GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM1DATIPROC)(GLenum stream, GLdouble x); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM1DVATIPROC)(GLenum stream, const GLdouble * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM1FATIPROC)(GLenum stream, GLfloat x); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM1FVATIPROC)(GLenum stream, const GLfloat * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM1IATIPROC)(GLenum stream, GLint x); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM1IVATIPROC)(GLenum stream, const GLint * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM1SATIPROC)(GLenum stream, GLshort x); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM1SVATIPROC)(GLenum stream, const GLshort * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM2DATIPROC)(GLenum stream, GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM2DVATIPROC)(GLenum stream, const GLdouble * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM2FATIPROC)(GLenum stream, GLfloat x, GLfloat y); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM2FVATIPROC)(GLenum stream, const GLfloat * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM2IATIPROC)(GLenum stream, GLint x, GLint y); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM2IVATIPROC)(GLenum stream, const GLint * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM2SATIPROC)(GLenum stream, GLshort x, GLshort y); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM2SVATIPROC)(GLenum stream, const GLshort * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM3DATIPROC)(GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM3DVATIPROC)(GLenum stream, const GLdouble * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM3FATIPROC)(GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM3FVATIPROC)(GLenum stream, const GLfloat * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM3IATIPROC)(GLenum stream, GLint x, GLint y, GLint z); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM3IVATIPROC)(GLenum stream, const GLint * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM3SATIPROC)(GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM3SVATIPROC)(GLenum stream, const GLshort * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM4DATIPROC)(GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM4DVATIPROC)(GLenum stream, const GLdouble * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM4FATIPROC)(GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM4FVATIPROC)(GLenum stream, const GLfloat * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM4IATIPROC)(GLenum stream, GLint x, GLint y, GLint z, GLint w); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM4IVATIPROC)(GLenum stream, const GLint * coords); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM4SATIPROC)(GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void(GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC)(GLenum stream, const GLshort * coords); #define glClientActiveVertexStreamATI GLEW_GET_FUN(__glewClientActiveVertexStreamATI) #define glNormalStream3bATI GLEW_GET_FUN(__glewNormalStream3bATI) @@ -7461,9 +7461,9 @@ #define GL_UNIFORM_BUFFER_EXT 0x8DEE #define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); -typedef GLintptr (GLAPIENTRY * PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); -typedef void (GLAPIENTRY * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); +typedef GLint(GLAPIENTRY * PFNGLGETUNIFORMBUFFERSIZEEXTPROC)(GLuint program, GLint location); +typedef GLintptr(GLAPIENTRY * PFNGLGETUNIFORMOFFSETEXTPROC)(GLuint program, GLint location); +typedef void(GLAPIENTRY * PFNGLUNIFORMBUFFEREXTPROC)(GLuint program, GLint location, GLuint buffer); #define glGetUniformBufferSizeEXT GLEW_GET_FUN(__glewGetUniformBufferSizeEXT) #define glGetUniformOffsetEXT GLEW_GET_FUN(__glewGetUniformOffsetEXT) @@ -7484,7 +7484,7 @@ #define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 #define GL_BLEND_COLOR_EXT 0x8005 -typedef void (GLAPIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void(GLAPIENTRY * PFNGLBLENDCOLOREXTPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); #define glBlendColorEXT GLEW_GET_FUN(__glewBlendColorEXT) @@ -7500,7 +7500,7 @@ #define GL_BLEND_EQUATION_RGB_EXT 0x8009 #define GL_BLEND_EQUATION_ALPHA_EXT 0x883D -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void(GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC)(GLenum modeRGB, GLenum modeAlpha); #define glBlendEquationSeparateEXT GLEW_GET_FUN(__glewBlendEquationSeparateEXT) @@ -7518,7 +7518,7 @@ #define GL_BLEND_DST_ALPHA_EXT 0x80CA #define GL_BLEND_SRC_ALPHA_EXT 0x80CB -typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void(GLAPIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); #define glBlendFuncSeparateEXT GLEW_GET_FUN(__glewBlendFuncSeparateEXT) @@ -7545,7 +7545,7 @@ #define GL_MAX_EXT 0x8008 #define GL_BLEND_EQUATION_EXT 0x8009 -typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); +typedef void(GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC)(GLenum mode); #define glBlendEquationEXT GLEW_GET_FUN(__glewBlendEquationEXT) @@ -7595,8 +7595,8 @@ #ifndef GL_EXT_color_subtable #define GL_EXT_color_subtable 1 -typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void* data); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void(GLAPIENTRY * PFNGLCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void * data); +typedef void(GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); #define glColorSubTableEXT GLEW_GET_FUN(__glewColorSubTableEXT) #define glCopyColorSubTableEXT GLEW_GET_FUN(__glewCopyColorSubTableEXT) @@ -7613,8 +7613,8 @@ #define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 #define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 -typedef void (GLAPIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); +typedef void(GLAPIENTRY * PFNGLLOCKARRAYSEXTPROC)(GLint first, GLsizei count); +typedef void(GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC)(void); #define glLockArraysEXT GLEW_GET_FUN(__glewLockArraysEXT) #define glUnlockArraysEXT GLEW_GET_FUN(__glewUnlockArraysEXT) @@ -7649,19 +7649,19 @@ #define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 #define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* image); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void* image); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void* row, void* column, void* span); -typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* row, const void* column); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void * image); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * image); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC)(GLenum target, GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC)(GLenum target, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void(GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC)(GLenum target, GLenum format, GLenum type, void * image); +typedef void(GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC)(GLenum target, GLenum format, GLenum type, void * row, void * column, void * span); +typedef void(GLAPIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * row, const void * column); #define glConvolutionFilter1DEXT GLEW_GET_FUN(__glewConvolutionFilter1DEXT) #define glConvolutionFilter2DEXT GLEW_GET_FUN(__glewConvolutionFilter2DEXT) @@ -7701,8 +7701,8 @@ #define GL_MAP1_BINORMAL_EXT 0x8446 #define GL_MAP2_BINORMAL_EXT 0x8447 -typedef void (GLAPIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, void* pointer); -typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, void* pointer); +typedef void(GLAPIENTRY * PFNGLBINORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, void * pointer); +typedef void(GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC)(GLenum type, GLsizei stride, void * pointer); #define glBinormalPointerEXT GLEW_GET_FUN(__glewBinormalPointerEXT) #define glTangentPointerEXT GLEW_GET_FUN(__glewTangentPointerEXT) @@ -7716,11 +7716,11 @@ #ifndef GL_EXT_copy_texture #define GL_EXT_copy_texture 1 -typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void(GLAPIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void(GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void(GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); #define glCopyTexImage1DEXT GLEW_GET_FUN(__glewCopyTexImage1DEXT) #define glCopyTexImage2DEXT GLEW_GET_FUN(__glewCopyTexImage2DEXT) @@ -7741,8 +7741,8 @@ #define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB #define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC -typedef void (GLAPIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params); +typedef void(GLAPIENTRY * PFNGLCULLPARAMETERDVEXTPROC)(GLenum pname, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLCULLPARAMETERFVEXTPROC)(GLenum pname, GLfloat * params); #define glCullParameterdvEXT GLEW_GET_FUN(__glewCullParameterdvEXT) #define glCullParameterfvEXT GLEW_GET_FUN(__glewCullParameterfvEXT) @@ -7756,9 +7756,9 @@ #ifndef GL_EXT_debug_marker #define GL_EXT_debug_marker 1 -typedef void (GLAPIENTRY * PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar* marker); -typedef void (GLAPIENTRY * PFNGLPOPGROUPMARKEREXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar* marker); +typedef void(GLAPIENTRY * PFNGLINSERTEVENTMARKEREXTPROC)(GLsizei length, const GLchar * marker); +typedef void(GLAPIENTRY * PFNGLPOPGROUPMARKEREXTPROC)(void); +typedef void(GLAPIENTRY * PFNGLPUSHGROUPMARKEREXTPROC)(GLsizei length, const GLchar * marker); #define glInsertEventMarkerEXT GLEW_GET_FUN(__glewInsertEventMarkerEXT) #define glPopGroupMarkerEXT GLEW_GET_FUN(__glewPopGroupMarkerEXT) @@ -7776,7 +7776,7 @@ #define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 #define GL_DEPTH_BOUNDS_EXT 0x8891 -typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); +typedef void(GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC)(GLclampd zmin, GLclampd zmax); #define glDepthBoundsEXT GLEW_GET_FUN(__glewDepthBoundsEXT) @@ -7793,236 +7793,236 @@ #define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E #define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F -typedef void (GLAPIENTRY * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); -typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); -typedef void (GLAPIENTRY * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); -typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (GLAPIENTRY * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); -typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, void* img); -typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, void* img); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void** params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void* data); -typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void* string); -typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, GLvoid** params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); -typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint* param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLvoid** param); -typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, GLvoid** param); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); -typedef GLvoid * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (GLAPIENTRY * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXLOADFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTDEXTPROC) (GLenum matrixMode, const GLdouble* m); -typedef void (GLAPIENTRY * PFNGLMATRIXMULTFEXTPROC) (GLenum matrixMode, const GLfloat* m); -typedef void (GLAPIENTRY * PFNGLMATRIXORTHOEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); -typedef void (GLAPIENTRY * PFNGLMATRIXPOPEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXPUSHEXTPROC) (GLenum matrixMode); -typedef void (GLAPIENTRY * PFNGLMATRIXROTATEDEXTPROC) (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXROTATEFEXTPROC) (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMATRIXSCALEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXSCALEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void* pointer); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* param); -typedef void (GLAPIENTRY * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void* data, GLenum usage); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void* data); -typedef void (GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void* string); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint* params); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat* param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* param); -typedef void (GLAPIENTRY * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); -typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLBINDMULTITEXTUREEXTPROC)(GLenum texunit, GLenum target, GLuint texture); +typedef GLenum(GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC)(GLuint framebuffer, GLenum target); +typedef void(GLAPIENTRY * PFNGLCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data); +typedef void(GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void(GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void(GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void(GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void(GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void(GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void(GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index); +typedef void(GLAPIENTRY * PFNGLDISABLECLIENTSTATEIEXTPROC)(GLenum array, GLuint index); +typedef void(GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC)(GLuint vaobj, GLuint index); +typedef void(GLAPIENTRY * PFNGLDISABLEVERTEXARRAYEXTPROC)(GLuint vaobj, GLenum array); +typedef void(GLAPIENTRY * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index); +typedef void(GLAPIENTRY * PFNGLENABLECLIENTSTATEIEXTPROC)(GLenum array, GLuint index); +typedef void(GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC)(GLuint vaobj, GLuint index); +typedef void(GLAPIENTRY * PFNGLENABLEVERTEXARRAYEXTPROC)(GLuint vaobj, GLenum array); +typedef void(GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC)(GLuint framebuffer, GLenum mode); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC)(GLuint framebuffer, GLsizei n, const GLenum * bufs); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERREADBUFFEREXTPROC)(GLuint framebuffer, GLenum mode); +typedef void(GLAPIENTRY * PFNGLGENERATEMULTITEXMIPMAPEXTPROC)(GLenum texunit, GLenum target); +typedef void(GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPEXTPROC)(GLuint texture, GLenum target); +typedef void(GLAPIENTRY * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target, GLint level, void * img); +typedef void(GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target, GLint level, void * img); +typedef void(GLAPIENTRY * PFNGLGETDOUBLEINDEXEDVEXTPROC)(GLenum target, GLuint index, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETDOUBLEI_VEXTPROC)(GLenum pname, GLuint index, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETFLOATINDEXEDVEXTPROC)(GLenum target, GLuint index, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETFLOATI_VEXTPROC)(GLenum pname, GLuint index, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum pname, GLint * param); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void * pixels); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLuint * params); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC)(GLuint buffer, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC)(GLuint buffer, GLenum pname, void ** params); +typedef void(GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, void * data); +typedef void(GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLuint * params); +typedef void(GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC)(GLuint program, GLenum target, GLuint index, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC)(GLuint program, GLenum target, GLuint index, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target, GLenum pname, void * string); +typedef void(GLAPIENTRY * PFNGLGETNAMEDPROGRAMIVEXTPROC)(GLuint program, GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC)(GLuint renderbuffer, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETPOINTERINDEXEDVEXTPROC)(GLenum target, GLuint index, GLvoid ** params); +typedef void(GLAPIENTRY * PFNGLGETPOINTERI_VEXTPROC)(GLenum pname, GLuint index, GLvoid ** params); +typedef void(GLAPIENTRY * PFNGLGETTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void * pixels); +typedef void(GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLuint * params); +typedef void(GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint * param); +typedef void(GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERVEXTPROC)(GLuint vaobj, GLenum pname, GLint * param); +typedef void(GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC)(GLuint vaobj, GLuint index, GLenum pname, GLvoid ** param); +typedef void(GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERVEXTPROC)(GLuint vaobj, GLenum pname, GLvoid ** param); +typedef GLvoid *(GLAPIENTRY * PFNGLMAPNAMEDBUFFEREXTPROC)(GLuint buffer, GLenum access); +typedef GLvoid *(GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void(GLAPIENTRY * PFNGLMATRIXFRUSTUMEXTPROC)(GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); +typedef void(GLAPIENTRY * PFNGLMATRIXLOADIDENTITYEXTPROC)(GLenum matrixMode); +typedef void(GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEDEXTPROC)(GLenum matrixMode, const GLdouble * m); +typedef void(GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEFEXTPROC)(GLenum matrixMode, const GLfloat * m); +typedef void(GLAPIENTRY * PFNGLMATRIXLOADDEXTPROC)(GLenum matrixMode, const GLdouble * m); +typedef void(GLAPIENTRY * PFNGLMATRIXLOADFEXTPROC)(GLenum matrixMode, const GLfloat * m); +typedef void(GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEDEXTPROC)(GLenum matrixMode, const GLdouble * m); +typedef void(GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEFEXTPROC)(GLenum matrixMode, const GLfloat * m); +typedef void(GLAPIENTRY * PFNGLMATRIXMULTDEXTPROC)(GLenum matrixMode, const GLdouble * m); +typedef void(GLAPIENTRY * PFNGLMATRIXMULTFEXTPROC)(GLenum matrixMode, const GLfloat * m); +typedef void(GLAPIENTRY * PFNGLMATRIXORTHOEXTPROC)(GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); +typedef void(GLAPIENTRY * PFNGLMATRIXPOPEXTPROC)(GLenum matrixMode); +typedef void(GLAPIENTRY * PFNGLMATRIXPUSHEXTPROC)(GLenum matrixMode); +typedef void(GLAPIENTRY * PFNGLMATRIXROTATEDEXTPROC)(GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLMATRIXROTATEFEXTPROC)(GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLMATRIXSCALEDEXTPROC)(GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLMATRIXSCALEFEXTPROC)(GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLMATRIXTRANSLATEDEXTPROC)(GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLMATRIXTRANSLATEFEXTPROC)(GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLMULTITEXBUFFEREXTPROC)(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORDPOINTEREXTPROC)(GLenum texunit, GLint size, GLenum type, GLsizei stride, const void * pointer); +typedef void(GLAPIENTRY * PFNGLMULTITEXENVFEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLMULTITEXENVIEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLMULTITEXGENDEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +typedef void(GLAPIENTRY * PFNGLMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLdouble * params); +typedef void(GLAPIENTRY * PFNGLMULTITEXGENFEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLMULTITEXGENIEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLMULTITEXIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLuint * params); +typedef void(GLAPIENTRY * PFNGLMULTITEXPARAMETERFEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLfloat * param); +typedef void(GLAPIENTRY * PFNGLMULTITEXPARAMETERIEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint * param); +typedef void(GLAPIENTRY * PFNGLMULTITEXRENDERBUFFEREXTPROC)(GLenum texunit, GLenum target, GLuint renderbuffer); +typedef void(GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLsizeiptr size, const void * data, GLenum usage); +typedef void(GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data); +typedef void(GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void(GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void(GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void(GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void(GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void(GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void(GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void(GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC)(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLdouble * params); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC)(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC)(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLint * params); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC)(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLuint * params); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint * params); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint * params); +typedef void(GLAPIENTRY * PFNGLNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target, GLenum format, GLsizei len, const void * string); +typedef void(GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC)(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1DEXTPROC)(GLuint program, GLint location, GLdouble x); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1FEXTPROC)(GLuint program, GLint location, GLfloat v0); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1IEXTPROC)(GLuint program, GLint location, GLint v0); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIEXTPROC)(GLuint program, GLint location, GLuint v0); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask); +typedef void(GLAPIENTRY * PFNGLTEXTUREBUFFEREXTPROC)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +typedef void(GLAPIENTRY * PFNGLTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLTEXTUREIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLuint * params); +typedef void(GLAPIENTRY * PFNGLTEXTUREPARAMETERFEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLfloat * param); +typedef void(GLAPIENTRY * PFNGLTEXTUREPARAMETERIEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLint * param); +typedef void(GLAPIENTRY * PFNGLTEXTURERENDERBUFFEREXTPROC)(GLuint texture, GLenum target, GLuint renderbuffer); +typedef void(GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels); +typedef GLboolean(GLAPIENTRY * PFNGLUNMAPNAMEDBUFFEREXTPROC)(GLuint buffer); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); #define glBindMultiTextureEXT GLEW_GET_FUN(__glewBindMultiTextureEXT) #define glCheckNamedFramebufferStatusEXT GLEW_GET_FUN(__glewCheckNamedFramebufferStatusEXT) @@ -8264,12 +8264,12 @@ #ifndef GL_EXT_draw_buffers2 #define GL_EXT_draw_buffers2 1 -typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data); -typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data); -typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void(GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC)(GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void(GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC)(GLenum target, GLuint index); +typedef void(GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC)(GLenum target, GLuint index); +typedef void(GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC)(GLenum value, GLuint index, GLboolean * data); +typedef void(GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC)(GLenum value, GLuint index, GLint * data); +typedef GLboolean(GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC)(GLenum target, GLuint index); #define glColorMaskIndexedEXT GLEW_GET_FUN(__glewColorMaskIndexedEXT) #define glDisableIndexedEXT GLEW_GET_FUN(__glewDisableIndexedEXT) @@ -8287,8 +8287,8 @@ #ifndef GL_EXT_draw_instanced #define GL_EXT_draw_instanced 1 -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +typedef void(GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDEXTPROC)(GLenum mode, GLint start, GLsizei count, GLsizei primcount); +typedef void(GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDEXTPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei primcount); #define glDrawArraysInstancedEXT GLEW_GET_FUN(__glewDrawArraysInstancedEXT) #define glDrawElementsInstancedEXT GLEW_GET_FUN(__glewDrawElementsInstancedEXT) @@ -8305,7 +8305,7 @@ #define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 #define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void(GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices); #define glDrawRangeElementsEXT GLEW_GET_FUN(__glewDrawRangeElementsEXT) @@ -8327,11 +8327,11 @@ #define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 #define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); +typedef void(GLAPIENTRY * PFNGLFOGCOORDPOINTEREXTPROC)(GLenum type, GLsizei stride, const GLvoid * pointer); +typedef void(GLAPIENTRY * PFNGLFOGCOORDDEXTPROC)(GLdouble coord); +typedef void(GLAPIENTRY * PFNGLFOGCOORDDVEXTPROC)(const GLdouble * coord); +typedef void(GLAPIENTRY * PFNGLFOGCOORDFEXTPROC)(GLfloat coord); +typedef void(GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC)(const GLfloat * coord); #define glFogCoordPointerEXT GLEW_GET_FUN(__glewFogCoordPointerEXT) #define glFogCoorddEXT GLEW_GET_FUN(__glewFogCoorddEXT) @@ -8363,24 +8363,24 @@ #define GL_FRAGMENT_LIGHT0_EXT 0x840C #define GL_FRAGMENT_LIGHT7_EXT 0x8413 -typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC)(GLenum face, GLenum mode); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC)(GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC)(GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC)(GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC)(GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC)(GLenum light, GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC)(GLenum light, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC)(GLenum light, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC)(GLenum light, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC)(GLenum face, GLenum pname, const GLfloat param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC)(GLenum face, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC)(GLenum face, GLenum pname, const GLint param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC)(GLenum face, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC)(GLenum light, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC)(GLenum light, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC)(GLenum face, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC)(GLenum face, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLLIGHTENVIEXTPROC)(GLenum pname, GLint param); #define glFragmentColorMaterialEXT GLEW_GET_FUN(__glewFragmentColorMaterialEXT) #define glFragmentLightModelfEXT GLEW_GET_FUN(__glewFragmentLightModelfEXT) @@ -8415,7 +8415,7 @@ #define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 #define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA -typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void(GLAPIENTRY * PFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); #define glBlitFramebufferEXT GLEW_GET_FUN(__glewBlitFramebufferEXT) @@ -8432,7 +8432,7 @@ #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 #define GL_MAX_SAMPLES_EXT 0x8D57 -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #define glRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewRenderbufferStorageMultisampleEXT) @@ -8509,23 +8509,23 @@ #define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 -typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint* framebuffers); -typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint* renderbuffers); -typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer); +typedef void(GLAPIENTRY * PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer); +typedef GLenum(GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint * framebuffers); +typedef void(GLAPIENTRY * PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint * renderbuffers); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void(GLAPIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint * framebuffers); +typedef void(GLAPIENTRY * PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint * renderbuffers); +typedef void(GLAPIENTRY * PFNGLGENERATEMIPMAPEXTPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer); +typedef GLboolean(GLAPIENTRY * PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer); +typedef void(GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); #define glBindFramebufferEXT GLEW_GET_FUN(__glewBindFramebufferEXT) #define glBindRenderbufferEXT GLEW_GET_FUN(__glewBindRenderbufferEXT) @@ -8587,9 +8587,9 @@ #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void(GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC)(GLuint program, GLenum pname, GLint value); #define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT) #define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT) @@ -8604,8 +8604,8 @@ #ifndef GL_EXT_gpu_program_parameters #define GL_EXT_gpu_program_parameters 1 -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); #define glProgramEnvParameters4fvEXT GLEW_GET_FUN(__glewProgramEnvParameters4fvEXT) #define glProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewProgramLocalParameters4fvEXT) @@ -8646,40 +8646,40 @@ #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 #define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void(GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONEXTPROC)(GLuint program, GLuint color, const GLchar * name); +typedef GLint(GLAPIENTRY * PFNGLGETFRAGDATALOCATIONEXTPROC)(GLuint program, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMUIVEXTPROC)(GLuint program, GLint location, GLuint * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVEXTPROC)(GLuint index, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVEXTPROC)(GLuint index, GLenum pname, GLuint * params); +typedef void(GLAPIENTRY * PFNGLUNIFORM1UIEXTPROC)(GLint location, GLuint v0); +typedef void(GLAPIENTRY * PFNGLUNIFORM1UIVEXTPROC)(GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM2UIEXTPROC)(GLint location, GLuint v0, GLuint v1); +typedef void(GLAPIENTRY * PFNGLUNIFORM2UIVEXTPROC)(GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM3UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void(GLAPIENTRY * PFNGLUNIFORM3UIVEXTPROC)(GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM4UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void(GLAPIENTRY * PFNGLUNIFORM4UIVEXTPROC)(GLint location, GLsizei count, const GLuint * value); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI1IEXTPROC)(GLuint index, GLint x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI1IVEXTPROC)(GLuint index, const GLint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI1UIEXTPROC)(GLuint index, GLuint x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVEXTPROC)(GLuint index, const GLuint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI2IEXTPROC)(GLuint index, GLint x, GLint y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI2IVEXTPROC)(GLuint index, const GLint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI2UIEXTPROC)(GLuint index, GLuint x, GLuint y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVEXTPROC)(GLuint index, const GLuint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI3IEXTPROC)(GLuint index, GLint x, GLint y, GLint z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI3IVEXTPROC)(GLuint index, const GLint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI3UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVEXTPROC)(GLuint index, const GLuint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4BVEXTPROC)(GLuint index, const GLbyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4IEXTPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4IVEXTPROC)(GLuint index, const GLint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4SVEXTPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVEXTPROC)(GLuint index, const GLubyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVEXTPROC)(GLuint index, const GLuint * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBI4USVEXTPROC)(GLuint index, const GLushort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); #define glBindFragDataLocationEXT GLEW_GET_FUN(__glewBindFragDataLocationEXT) #define glGetFragDataLocationEXT GLEW_GET_FUN(__glewGetFragDataLocationEXT) @@ -8739,16 +8739,16 @@ #define GL_MINMAX_FORMAT_EXT 0x802F #define GL_MINMAX_SINK_EXT 0x8030 -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void* values); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void* values); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target); +typedef void(GLAPIENTRY * PFNGLGETHISTOGRAMEXTPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, void * values); +typedef void(GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETMINMAXEXTPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, void * values); +typedef void(GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLHISTOGRAMEXTPROC)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void(GLAPIENTRY * PFNGLMINMAXEXTPROC)(GLenum target, GLenum internalformat, GLboolean sink); +typedef void(GLAPIENTRY * PFNGLRESETHISTOGRAMEXTPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLRESETMINMAXEXTPROC)(GLenum target); #define glGetHistogramEXT GLEW_GET_FUN(__glewGetHistogramEXT) #define glGetHistogramParameterfvEXT GLEW_GET_FUN(__glewGetHistogramParameterfvEXT) @@ -8779,7 +8779,7 @@ #ifndef GL_EXT_index_func #define GL_EXT_index_func 1 -typedef void (GLAPIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref); +typedef void(GLAPIENTRY * PFNGLINDEXFUNCEXTPROC)(GLenum func, GLfloat ref); #define glIndexFuncEXT GLEW_GET_FUN(__glewIndexFuncEXT) @@ -8792,7 +8792,7 @@ #ifndef GL_EXT_index_material #define GL_EXT_index_material 1 -typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); +typedef void(GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC)(GLenum face, GLenum mode); #define glIndexMaterialEXT GLEW_GET_FUN(__glewIndexMaterialEXT) @@ -8824,9 +8824,9 @@ #define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 #define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -typedef void (GLAPIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (GLAPIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); +typedef void(GLAPIENTRY * PFNGLAPPLYTEXTUREEXTPROC)(GLenum mode); +typedef void(GLAPIENTRY * PFNGLTEXTURELIGHTEXTPROC)(GLenum pname); +typedef void(GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC)(GLenum face, GLenum mode); #define glApplyTextureEXT GLEW_GET_FUN(__glewApplyTextureEXT) #define glTextureLightEXT GLEW_GET_FUN(__glewTextureLightEXT) @@ -8850,8 +8850,8 @@ #ifndef GL_EXT_multi_draw_arrays #define GL_EXT_multi_draw_arrays 1 -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* count, GLenum type, const GLvoid **indices, GLsizei primcount); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount); +typedef void(GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC)(GLenum mode, GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount); #define glMultiDrawArraysEXT GLEW_GET_FUN(__glewMultiDrawArraysEXT) #define glMultiDrawElementsEXT GLEW_GET_FUN(__glewMultiDrawElementsEXT) @@ -8883,8 +8883,8 @@ #define GL_SAMPLE_PATTERN_EXT 0x80AC #define GL_MULTISAMPLE_BIT_EXT 0x20000000 -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); +typedef void(GLAPIENTRY * PFNGLSAMPLEMASKEXTPROC)(GLclampf value, GLboolean invert); +typedef void(GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC)(GLenum pattern); #define glSampleMaskEXT GLEW_GET_FUN(__glewSampleMaskEXT) #define glSamplePatternEXT GLEW_GET_FUN(__glewSamplePatternEXT) @@ -8962,10 +8962,10 @@ #define GL_TEXTURE_CUBE_MAP_ARB 0x8513 #define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -typedef void (GLAPIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void* data); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void* data); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef void(GLAPIENTRY * PFNGLCOLORTABLEEXTPROC)(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void * data); +typedef void(GLAPIENTRY * PFNGLGETCOLORTABLEEXTPROC)(GLenum target, GLenum format, GLenum type, void * data); +typedef void(GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params); #define glColorTableEXT GLEW_GET_FUN(__glewColorTableEXT) #define glGetColorTableEXT GLEW_GET_FUN(__glewGetColorTableEXT) @@ -9005,12 +9005,12 @@ #define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 #define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void(GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC)(GLenum target, GLenum pname, const GLfloat param); +typedef void(GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC)(GLenum target, GLenum pname, const GLint param); +typedef void(GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, const GLint * params); #define glGetPixelTransformParameterfvEXT GLEW_GET_FUN(__glewGetPixelTransformParameterfvEXT) #define glGetPixelTransformParameterivEXT GLEW_GET_FUN(__glewGetPixelTransformParameterivEXT) @@ -9042,8 +9042,8 @@ #define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 #define GL_DISTANCE_ATTENUATION_EXT 0x8129 -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat* params); +typedef void(GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC)(GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC)(GLenum pname, const GLfloat * params); #define glPointParameterfEXT GLEW_GET_FUN(__glewPointParameterfEXT) #define glPointParameterfvEXT GLEW_GET_FUN(__glewPointParameterfvEXT) @@ -9061,7 +9061,7 @@ #define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 #define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); +typedef void(GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC)(GLfloat factor, GLfloat bias); #define glPolygonOffsetEXT GLEW_GET_FUN(__glewPolygonOffsetEXT) @@ -9079,7 +9079,7 @@ #define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E #define GL_PROVOKING_VERTEX_EXT 0x8E4F -typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); +typedef void(GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC)(GLenum mode); #define glProvokingVertexEXT GLEW_GET_FUN(__glewProvokingVertexEXT) @@ -9103,8 +9103,8 @@ #ifndef GL_EXT_scene_marker #define GL_EXT_scene_marker 1 -typedef void (GLAPIENTRY * PFNGLBEGINSCENEEXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLENDSCENEEXTPROC) (void); +typedef void(GLAPIENTRY * PFNGLBEGINSCENEEXTPROC)(void); +typedef void(GLAPIENTRY * PFNGLENDSCENEEXTPROC)(void); #define glBeginSceneEXT GLEW_GET_FUN(__glewBeginSceneEXT) #define glEndSceneEXT GLEW_GET_FUN(__glewEndSceneEXT) @@ -9126,23 +9126,23 @@ #define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D #define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC)(GLbyte red, GLbyte green, GLbyte blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC)(const GLbyte * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC)(GLdouble red, GLdouble green, GLdouble blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC)(const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC)(GLfloat red, GLfloat green, GLfloat blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC)(const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC)(GLint red, GLint green, GLint blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC)(const GLint * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC)(GLshort red, GLshort green, GLshort blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC)(const GLshort * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC)(GLubyte red, GLubyte green, GLubyte blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC)(const GLubyte * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC)(GLuint red, GLuint green, GLuint blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC)(const GLuint * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC)(GLushort red, GLushort green, GLushort blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC)(const GLushort * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); #define glSecondaryColor3bEXT GLEW_GET_FUN(__glewSecondaryColor3bEXT) #define glSecondaryColor3bvEXT GLEW_GET_FUN(__glewSecondaryColor3bvEXT) @@ -9173,9 +9173,9 @@ #define GL_ACTIVE_PROGRAM_EXT 0x8B8D -typedef void (GLAPIENTRY * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); -typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar* string); -typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); +typedef void(GLAPIENTRY * PFNGLACTIVEPROGRAMEXTPROC)(GLuint program); +typedef GLuint(GLAPIENTRY * PFNGLCREATESHADERPROGRAMEXTPROC)(GLenum type, const GLchar * string); +typedef void(GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC)(GLenum type, GLuint program); #define glActiveProgramEXT GLEW_GET_FUN(__glewActiveProgramEXT) #define glCreateShaderProgramEXT GLEW_GET_FUN(__glewCreateShaderProgramEXT) @@ -9259,8 +9259,8 @@ #define GL_IMAGE_BINDING_FORMAT_EXT 0x906E #define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF -typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); +typedef void(GLAPIENTRY * PFNGLBINDIMAGETEXTUREEXTPROC)(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); +typedef void(GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC)(GLbitfield barriers); #define glBindImageTextureEXT GLEW_GET_FUN(__glewBindImageTextureEXT) #define glMemoryBarrierEXT GLEW_GET_FUN(__glewMemoryBarrierEXT) @@ -9309,7 +9309,7 @@ #define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 #define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 -typedef void (GLAPIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); +typedef void(GLAPIENTRY * PFNGLACTIVESTENCILFACEEXTPROC)(GLenum face); #define glActiveStencilFaceEXT GLEW_GET_FUN(__glewActiveStencilFaceEXT) @@ -9334,9 +9334,9 @@ #ifndef GL_EXT_subtexture #define GL_EXT_subtexture 1 -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); +typedef void(GLAPIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels); #define glTexSubImage1DEXT GLEW_GET_FUN(__glewTexSubImage1DEXT) #define glTexSubImage2DEXT GLEW_GET_FUN(__glewTexSubImage2DEXT) @@ -9413,7 +9413,7 @@ #define GL_TEXTURE_WRAP_R_EXT 0x8072 #define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void(GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels); #define glTexImage3DEXT GLEW_GET_FUN(__glewTexImage3DEXT) @@ -9435,7 +9435,7 @@ #define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C #define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); #define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT) @@ -9454,7 +9454,7 @@ #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D #define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E -typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void(GLAPIENTRY * PFNGLTEXBUFFEREXTPROC)(GLenum target, GLenum internalformat, GLuint buffer); #define glTexBufferEXT GLEW_GET_FUN(__glewTexBufferEXT) @@ -9684,12 +9684,12 @@ #define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D #define GL_RGBA_INTEGER_MODE_EXT 0x8D9E -typedef void (GLAPIENTRY * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); -typedef void (GLAPIENTRY * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void(GLAPIENTRY * PFNGLCLEARCOLORIIEXTPROC)(GLint red, GLint green, GLint blue, GLint alpha); +typedef void(GLAPIENTRY * PFNGLCLEARCOLORIUIEXTPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha); +typedef void(GLAPIENTRY * PFNGLGETTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname, GLuint * params); +typedef void(GLAPIENTRY * PFNGLTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname, const GLuint * params); #define glClearColorIiEXT GLEW_GET_FUN(__glewClearColorIiEXT) #define glClearColorIuiEXT GLEW_GET_FUN(__glewClearColorIuiEXT) @@ -9739,12 +9739,12 @@ #define GL_TEXTURE_2D_BINDING_EXT 0x8069 #define GL_TEXTURE_3D_BINDING_EXT 0x806A -typedef GLboolean (GLAPIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint* textures, GLboolean* residences); -typedef void (GLAPIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (GLAPIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint* textures); -typedef void (GLAPIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint* textures); -typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (GLAPIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint* textures, const GLclampf* priorities); +typedef GLboolean(GLAPIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC)(GLsizei n, const GLuint * textures, GLboolean * residences); +typedef void(GLAPIENTRY * PFNGLBINDTEXTUREEXTPROC)(GLenum target, GLuint texture); +typedef void(GLAPIENTRY * PFNGLDELETETEXTURESEXTPROC)(GLsizei n, const GLuint * textures); +typedef void(GLAPIENTRY * PFNGLGENTEXTURESEXTPROC)(GLsizei n, GLuint * textures); +typedef GLboolean(GLAPIENTRY * PFNGLISTEXTUREEXTPROC)(GLuint texture); +typedef void(GLAPIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC)(GLsizei n, const GLuint * textures, const GLclampf * priorities); #define glAreTexturesResidentEXT GLEW_GET_FUN(__glewAreTexturesResidentEXT) #define glBindTextureEXT GLEW_GET_FUN(__glewBindTextureEXT) @@ -9765,7 +9765,7 @@ #define GL_PERTURB_EXT 0x85AE #define GL_TEXTURE_NORMAL_EXT 0x85AF -typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); +typedef void(GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC)(GLenum mode); #define glTextureNormalEXT GLEW_GET_FUN(__glewTextureNormalEXT) @@ -9896,8 +9896,8 @@ #define GL_TIME_ELAPSED_EXT 0x88BF -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); -typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); +typedef void(GLAPIENTRY * PFNGLGETQUERYOBJECTI64VEXTPROC)(GLuint id, GLenum pname, GLint64EXT * params); +typedef void(GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VEXTPROC)(GLuint id, GLenum pname, GLuint64EXT * params); #define glGetQueryObjecti64vEXT GLEW_GET_FUN(__glewGetQueryObjecti64vEXT) #define glGetQueryObjectui64vEXT GLEW_GET_FUN(__glewGetQueryObjectui64vEXT) @@ -9927,13 +9927,13 @@ #define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar ** varyings, GLenum bufferMode); +typedef void(GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC)(GLenum primitiveMode); +typedef void(GLAPIENTRY * PFNGLBINDBUFFERBASEEXTPROC)(GLenum target, GLuint index, GLuint buffer); +typedef void(GLAPIENTRY * PFNGLBINDBUFFEROFFSETEXTPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLBINDBUFFERRANGEEXTPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void(GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKEXTPROC)(void); +typedef void(GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); +typedef void(GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC)(GLuint program, GLsizei count, const GLchar ** varyings, GLenum bufferMode); #define glBeginTransformFeedbackEXT GLEW_GET_FUN(__glewBeginTransformFeedbackEXT) #define glBindBufferBaseEXT GLEW_GET_FUN(__glewBindBufferBaseEXT) @@ -9986,14 +9986,14 @@ #define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 #define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -typedef void (GLAPIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (GLAPIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean* pointer); -typedef void (GLAPIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); +typedef void(GLAPIENTRY * PFNGLARRAYELEMENTEXTPROC)(GLint i); +typedef void(GLAPIENTRY * PFNGLCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void * pointer); +typedef void(GLAPIENTRY * PFNGLDRAWARRAYSEXTPROC)(GLenum mode, GLint first, GLsizei count); +typedef void(GLAPIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC)(GLsizei stride, GLsizei count, const GLboolean * pointer); +typedef void(GLAPIENTRY * PFNGLINDEXPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const void * pointer); +typedef void(GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const void * pointer); +typedef void(GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void * pointer); +typedef void(GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void * pointer); #define glArrayElementEXT GLEW_GET_FUN(__glewArrayElementEXT) #define glColorPointerEXT GLEW_GET_FUN(__glewColorPointerEXT) @@ -10037,17 +10037,17 @@ #define GL_DOUBLE_VEC3_EXT 0x8FFD #define GL_DOUBLE_VEC4_EXT 0x8FFE -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVEXTPROC)(GLuint index, GLenum pname, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL1DEXTPROC)(GLuint index, GLdouble x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL1DVEXTPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL2DEXTPROC)(GLuint index, GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL2DVEXTPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL3DEXTPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL3DVEXTPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL4DEXTPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL4DVEXTPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTEREXTPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer); #define glGetVertexAttribLdvEXT GLEW_GET_FUN(__glewGetVertexAttribLdvEXT) #define glVertexArrayVertexAttribLOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLOffsetEXT) @@ -10181,48 +10181,48 @@ #define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC #define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -typedef void (GLAPIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef GLuint (GLAPIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (GLAPIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef void (GLAPIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (GLAPIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (GLAPIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components); -typedef GLuint (GLAPIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (GLAPIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid **data); -typedef void (GLAPIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLboolean (GLAPIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (GLAPIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr); -typedef void (GLAPIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr); -typedef void (GLAPIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (GLAPIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (GLAPIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (GLAPIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (GLAPIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, GLvoid *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, GLbyte *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, GLdouble *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, GLfloat *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, GLint *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, GLshort *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, GLubyte *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, GLuint *addr); -typedef void (GLAPIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, GLushort *addr); -typedef void (GLAPIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void(GLAPIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC)(void); +typedef GLuint(GLAPIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC)(GLenum light, GLenum value); +typedef GLuint(GLAPIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC)(GLenum face, GLenum value); +typedef GLuint(GLAPIENTRY * PFNGLBINDPARAMETEREXTPROC)(GLenum value); +typedef GLuint(GLAPIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC)(GLenum unit, GLenum coord, GLenum value); +typedef GLuint(GLAPIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)(GLenum unit, GLenum value); +typedef void(GLAPIENTRY * PFNGLBINDVERTEXSHADEREXTPROC)(GLuint id); +typedef void(GLAPIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC)(GLuint id); +typedef void(GLAPIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id); +typedef void(GLAPIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id); +typedef void(GLAPIENTRY * PFNGLENDVERTEXSHADEREXTPROC)(void); +typedef void(GLAPIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num); +typedef GLuint(GLAPIENTRY * PFNGLGENSYMBOLSEXTPROC)(GLenum dataType, GLenum storageType, GLenum range, GLuint components); +typedef GLuint(GLAPIENTRY * PFNGLGENVERTEXSHADERSEXTPROC)(GLuint range); +typedef void(GLAPIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean * data); +typedef void(GLAPIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat * data); +typedef void(GLAPIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint * data); +typedef void(GLAPIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean * data); +typedef void(GLAPIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat * data); +typedef void(GLAPIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint * data); +typedef void(GLAPIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean * data); +typedef void(GLAPIENTRY * PFNGLGETVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat * data); +typedef void(GLAPIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint * data); +typedef void(GLAPIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC)(GLuint id, GLenum value, GLvoid ** data); +typedef void(GLAPIENTRY * PFNGLINSERTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num); +typedef GLboolean(GLAPIENTRY * PFNGLISVARIANTENABLEDEXTPROC)(GLuint id, GLenum cap); +typedef void(GLAPIENTRY * PFNGLSETINVARIANTEXTPROC)(GLuint id, GLenum type, GLvoid * addr); +typedef void(GLAPIENTRY * PFNGLSETLOCALCONSTANTEXTPROC)(GLuint id, GLenum type, GLvoid * addr); +typedef void(GLAPIENTRY * PFNGLSHADEROP1EXTPROC)(GLenum op, GLuint res, GLuint arg1); +typedef void(GLAPIENTRY * PFNGLSHADEROP2EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2); +typedef void(GLAPIENTRY * PFNGLSHADEROP3EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +typedef void(GLAPIENTRY * PFNGLSWIZZLEEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void(GLAPIENTRY * PFNGLVARIANTPOINTEREXTPROC)(GLuint id, GLenum type, GLuint stride, GLvoid * addr); +typedef void(GLAPIENTRY * PFNGLVARIANTBVEXTPROC)(GLuint id, GLbyte * addr); +typedef void(GLAPIENTRY * PFNGLVARIANTDVEXTPROC)(GLuint id, GLdouble * addr); +typedef void(GLAPIENTRY * PFNGLVARIANTFVEXTPROC)(GLuint id, GLfloat * addr); +typedef void(GLAPIENTRY * PFNGLVARIANTIVEXTPROC)(GLuint id, GLint * addr); +typedef void(GLAPIENTRY * PFNGLVARIANTSVEXTPROC)(GLuint id, GLshort * addr); +typedef void(GLAPIENTRY * PFNGLVARIANTUBVEXTPROC)(GLuint id, GLubyte * addr); +typedef void(GLAPIENTRY * PFNGLVARIANTUIVEXTPROC)(GLuint id, GLuint * addr); +typedef void(GLAPIENTRY * PFNGLVARIANTUSVEXTPROC)(GLuint id, GLushort * addr); +typedef void(GLAPIENTRY * PFNGLWRITEMASKEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); #define glBeginVertexShaderEXT GLEW_GET_FUN(__glewBeginVertexShaderEXT) #define glBindLightParameterEXT GLEW_GET_FUN(__glewBindLightParameterEXT) @@ -10290,9 +10290,9 @@ #define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F #define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight); +typedef void(GLAPIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, void * pointer); +typedef void(GLAPIENTRY * PFNGLVERTEXWEIGHTFEXTPROC)(GLfloat weight); +typedef void(GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC)(GLfloat * weight); #define glVertexWeightPointerEXT GLEW_GET_FUN(__glewVertexWeightPointerEXT) #define glVertexWeightfEXT GLEW_GET_FUN(__glewVertexWeightfEXT) @@ -10309,7 +10309,7 @@ #define GL_SYNC_X11_FENCE_EXT 0x90E1 -typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); +typedef GLsync(GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC)(GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); #define glImportSyncEXT GLEW_GET_FUN(__glewImportSyncEXT) @@ -10322,7 +10322,7 @@ #ifndef GL_GREMEDY_frame_terminator #define GL_GREMEDY_frame_terminator 1 -typedef void (GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC) (void); +typedef void(GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC)(void); #define glFrameTerminatorGREMEDY GLEW_GET_FUN(__glewFrameTerminatorGREMEDY) @@ -10335,7 +10335,7 @@ #ifndef GL_GREMEDY_string_marker #define GL_GREMEDY_string_marker 1 -typedef void (GLAPIENTRY * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void* string); +typedef void(GLAPIENTRY * PFNGLSTRINGMARKERGREMEDYPROC)(GLsizei len, const void * string); #define glStringMarkerGREMEDY GLEW_GET_FUN(__glewStringMarkerGREMEDY) @@ -10357,12 +10357,12 @@ #ifndef GL_HP_image_transform #define GL_HP_image_transform 1 -typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void(GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC)(GLenum target, GLenum pname, const GLfloat param); +typedef void(GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC)(GLenum target, GLenum pname, const GLint param); +typedef void(GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname, const GLint * params); #define glGetImageTransformParameterfvHP GLEW_GET_FUN(__glewGetImageTransformParameterfvHP) #define glGetImageTransformParameterivHP GLEW_GET_FUN(__glewGetImageTransformParameterivHP) @@ -10412,8 +10412,8 @@ #ifndef GL_IBM_multimode_draw_arrays #define GL_IBM_multimode_draw_arrays 1 -typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum* mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum* mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, GLint modestride); +typedef void(GLAPIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride); +typedef void(GLAPIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); #define glMultiModeDrawArraysIBM GLEW_GET_FUN(__glewMultiModeDrawArraysIBM) #define glMultiModeDrawElementsIBM GLEW_GET_FUN(__glewMultiModeDrawElementsIBM) @@ -10478,14 +10478,14 @@ #define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 #define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -typedef void (GLAPIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void(GLAPIENTRY * PFNGLCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void(GLAPIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC)(GLint stride, const GLboolean ** pointer, GLint ptrstride); +typedef void(GLAPIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC)(GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void(GLAPIENTRY * PFNGLINDEXPOINTERLISTIBMPROC)(GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void(GLAPIENTRY * PFNGLNORMALPOINTERLISTIBMPROC)(GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void(GLAPIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void(GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); #define glColorPointerListIBM GLEW_GET_FUN(__glewColorPointerListIBM) #define glEdgeFlagPointerListIBM GLEW_GET_FUN(__glewEdgeFlagPointerListIBM) @@ -10540,10 +10540,10 @@ #define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 #define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -typedef void (GLAPIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); +typedef void(GLAPIENTRY * PFNGLCOLORPOINTERVINTELPROC)(GLint size, GLenum type, const void ** pointer); +typedef void(GLAPIENTRY * PFNGLNORMALPOINTERVINTELPROC)(GLenum type, const void ** pointer); +typedef void(GLAPIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC)(GLint size, GLenum type, const void ** pointer); +typedef void(GLAPIENTRY * PFNGLVERTEXPOINTERVINTELPROC)(GLint size, GLenum type, const void ** pointer); #define glColorPointervINTEL GLEW_GET_FUN(__glewColorPointervINTEL) #define glNormalPointervINTEL GLEW_GET_FUN(__glewNormalPointervINTEL) @@ -10559,8 +10559,8 @@ #ifndef GL_INTEL_texture_scissor #define GL_INTEL_texture_scissor 1 -typedef void (GLAPIENTRY * PFNGLTEXSCISSORFUNCINTELPROC) (GLenum target, GLenum lfunc, GLenum hfunc); -typedef void (GLAPIENTRY * PFNGLTEXSCISSORINTELPROC) (GLenum target, GLclampf tlow, GLclampf thigh); +typedef void(GLAPIENTRY * PFNGLTEXSCISSORFUNCINTELPROC)(GLenum target, GLenum lfunc, GLenum hfunc); +typedef void(GLAPIENTRY * PFNGLTEXSCISSORINTELPROC)(GLenum target, GLclampf tlow, GLclampf thigh); #define glTexScissorFuncINTEL GLEW_GET_FUN(__glewTexScissorFuncINTEL) #define glTexScissorINTEL GLEW_GET_FUN(__glewTexScissorINTEL) @@ -10615,18 +10615,18 @@ #define GL_DEBUG_SEVERITY_LOW 0x9148 #define GL_DEBUG_OUTPUT 0x92E0 -typedef void (APIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); +typedef void(APIENTRY * GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * message, GLvoid * userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, void* userParam); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf); -typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog); -typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (void* ptr, GLsizei bufSize, GLsizei* length, GLchar *label); -typedef void (GLAPIENTRY * PFNGLGETPOINTERVPROC) (GLenum pname, void** params); -typedef void (GLAPIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label); -typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (void* ptr, GLsizei length, const GLchar* label); -typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message); +typedef void(GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback, void * userParam); +typedef void(GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled); +typedef void(GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf); +typedef GLuint(GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufsize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog); +typedef void(GLAPIENTRY * PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label); +typedef void(GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC)(void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label); +typedef void(GLAPIENTRY * PFNGLGETPOINTERVPROC)(GLenum pname, void ** params); +typedef void(GLAPIENTRY * PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label); +typedef void(GLAPIENTRY * PFNGLOBJECTPTRLABELPROC)(void * ptr, GLsizei length, const GLchar * label); +typedef void(GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar * message); #define glDebugMessageCallback GLEW_GET_FUN(__glewDebugMessageCallback) #define glDebugMessageControl GLEW_GET_FUN(__glewDebugMessageControl) @@ -10691,11 +10691,11 @@ #define GL_KTX_Z_REGION 0x2 #define GL_KTX_STENCIL_REGION 0x3 -typedef GLuint (GLAPIENTRY * PFNGLBUFFERREGIONENABLEDPROC) (void); -typedef void (GLAPIENTRY * PFNGLDELETEBUFFERREGIONPROC) (GLenum region); -typedef void (GLAPIENTRY * PFNGLDRAWBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest); -typedef GLuint (GLAPIENTRY * PFNGLNEWBUFFERREGIONPROC) (GLenum region); -typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height); +typedef GLuint(GLAPIENTRY * PFNGLBUFFERREGIONENABLEDPROC)(void); +typedef void(GLAPIENTRY * PFNGLDELETEBUFFERREGIONPROC)(GLenum region); +typedef void(GLAPIENTRY * PFNGLDRAWBUFFERREGIONPROC)(GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest); +typedef GLuint(GLAPIENTRY * PFNGLNEWBUFFERREGIONPROC)(GLenum region); +typedef void(GLAPIENTRY * PFNGLREADBUFFERREGIONPROC)(GLuint region, GLint x, GLint y, GLsizei width, GLsizei height); #define glBufferRegionEnabled GLEW_GET_FUN(__glewBufferRegionEnabled) #define glDeleteBufferRegion GLEW_GET_FUN(__glewDeleteBufferRegion) @@ -10739,7 +10739,7 @@ #ifndef GL_MESA_resize_buffers #define GL_MESA_resize_buffers 1 -typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); +typedef void(GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC)(void); #define glResizeBuffersMESA GLEW_GET_FUN(__glewResizeBuffersMESA) @@ -10752,30 +10752,30 @@ #ifndef GL_MESA_window_pos #define GL_MESA_window_pos 1 -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint* p); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2DMESAPROC)(GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2DVMESAPROC)(const GLdouble * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2FMESAPROC)(GLfloat x, GLfloat y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2FVMESAPROC)(const GLfloat * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2IMESAPROC)(GLint x, GLint y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2IVMESAPROC)(const GLint * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2SMESAPROC)(GLshort x, GLshort y); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS2SVMESAPROC)(const GLshort * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3DMESAPROC)(GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3DVMESAPROC)(const GLdouble * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3FMESAPROC)(GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3FVMESAPROC)(const GLfloat * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3IMESAPROC)(GLint x, GLint y, GLint z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3IVMESAPROC)(const GLint * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3SMESAPROC)(GLshort x, GLshort y, GLshort z); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS3SVMESAPROC)(const GLshort * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS4DMESAPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS4DVMESAPROC)(const GLdouble * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS4FMESAPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS4FVMESAPROC)(const GLfloat * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS4IMESAPROC)(GLint x, GLint y, GLint z, GLint w); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS4IVMESAPROC)(const GLint * p); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS4SMESAPROC)(GLshort x, GLshort y, GLshort z, GLshort w); +typedef void(GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC)(const GLshort * p); #define glWindowPos2dMESA GLEW_GET_FUN(__glewWindowPos2dMESA) #define glWindowPos2dvMESA GLEW_GET_FUN(__glewWindowPos2dvMESA) @@ -10839,19 +10839,19 @@ #ifndef GL_NV_bindless_texture #define GL_NV_bindless_texture 1 -typedef GLuint64 (GLAPIENTRY * PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); -typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); -typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); -typedef GLboolean (GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); -typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values); -typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); -typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64* value); +typedef GLuint64(GLAPIENTRY * PFNGLGETIMAGEHANDLENVPROC)(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +typedef GLuint64(GLAPIENTRY * PFNGLGETTEXTUREHANDLENVPROC)(GLuint texture); +typedef GLuint64(GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLENVPROC)(GLuint texture, GLuint sampler); +typedef GLboolean(GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTNVPROC)(GLuint64 handle); +typedef GLboolean(GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTNVPROC)(GLuint64 handle); +typedef void(GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC)(GLuint64 handle); +typedef void(GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTNVPROC)(GLuint64 handle, GLenum access); +typedef void(GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC)(GLuint64 handle); +typedef void(GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTNVPROC)(GLuint64 handle); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC)(GLuint program, GLint location, GLuint64 value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * values); +typedef void(GLAPIENTRY * PFNGLUNIFORMHANDLEUI64NVPROC)(GLint location, GLuint64 value); +typedef void(GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VNVPROC)(GLint location, GLsizei count, const GLuint64 * value); #define glGetImageHandleNV GLEW_GET_FUN(__glewGetImageHandleNV) #define glGetTextureHandleNV GLEW_GET_FUN(__glewGetTextureHandleNV) @@ -10890,8 +10890,8 @@ #define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 #define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVPROC) (void); +typedef void(GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVPROC)(GLuint id, GLenum mode); +typedef void(GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVPROC)(void); #define glBeginConditionalRenderNV GLEW_GET_FUN(__glewBeginConditionalRenderNV) #define glEndConditionalRenderNV GLEW_GET_FUN(__glewEndConditionalRenderNV) @@ -10917,7 +10917,7 @@ #ifndef GL_NV_copy_image #define GL_NV_copy_image 1 -typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +typedef void(GLAPIENTRY * PFNGLCOPYIMAGESUBDATANVPROC)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); #define glCopyImageSubDataNV GLEW_GET_FUN(__glewCopyImageSubDataNV) @@ -10935,9 +10935,9 @@ #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD #define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); -typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); +typedef void(GLAPIENTRY * PFNGLCLEARDEPTHDNVPROC)(GLdouble depth); +typedef void(GLAPIENTRY * PFNGLDEPTHBOUNDSDNVPROC)(GLdouble zmin, GLdouble zmax); +typedef void(GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC)(GLdouble zNear, GLdouble zFar); #define glClearDepthdNV GLEW_GET_FUN(__glewClearDepthdNV) #define glDepthBoundsdNV GLEW_GET_FUN(__glewDepthBoundsdNV) @@ -11003,15 +11003,15 @@ #define GL_MAX_MAP_TESSELLATION_NV 0x86D6 #define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 -typedef void (GLAPIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void* points); -typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void* points); -typedef void (GLAPIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void(GLAPIENTRY * PFNGLEVALMAPSNVPROC)(GLenum target, GLenum mode); +typedef void(GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC)(GLenum target, GLuint index, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC)(GLenum target, GLuint index, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void * points); +typedef void(GLAPIENTRY * PFNGLGETMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void * points); +typedef void(GLAPIENTRY * PFNGLMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname, const GLint * params); #define glEvalMapsNV GLEW_GET_FUN(__glewEvalMapsNV) #define glGetMapAttribParameterfvNV GLEW_GET_FUN(__glewGetMapAttribParameterfvNV) @@ -11043,9 +11043,9 @@ #define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 #define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 -typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat* val); -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); -typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); +typedef void(GLAPIENTRY * PFNGLGETMULTISAMPLEFVNVPROC)(GLenum pname, GLuint index, GLfloat * val); +typedef void(GLAPIENTRY * PFNGLSAMPLEMASKINDEXEDNVPROC)(GLuint index, GLbitfield mask); +typedef void(GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC)(GLenum target, GLuint renderbuffer); #define glGetMultisamplefvNV GLEW_GET_FUN(__glewGetMultisamplefvNV) #define glSampleMaskIndexedNV GLEW_GET_FUN(__glewSampleMaskIndexedNV) @@ -11064,13 +11064,13 @@ #define GL_FENCE_STATUS_NV 0x84F3 #define GL_FENCE_CONDITION_NV 0x84F4 -typedef void (GLAPIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint* fences); -typedef void (GLAPIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint* fences); -typedef void (GLAPIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISFENCENVPROC) (GLuint fence); -typedef void (GLAPIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence); +typedef void(GLAPIENTRY * PFNGLDELETEFENCESNVPROC)(GLsizei n, const GLuint * fences); +typedef void(GLAPIENTRY * PFNGLFINISHFENCENVPROC)(GLuint fence); +typedef void(GLAPIENTRY * PFNGLGENFENCESNVPROC)(GLsizei n, GLuint * fences); +typedef void(GLAPIENTRY * PFNGLGETFENCEIVNVPROC)(GLuint fence, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISFENCENVPROC)(GLuint fence); +typedef void(GLAPIENTRY * PFNGLSETFENCENVPROC)(GLuint fence, GLenum condition); +typedef GLboolean(GLAPIENTRY * PFNGLTESTFENCENVPROC)(GLuint fence); #define glDeleteFencesNV GLEW_GET_FUN(__glewDeleteFencesNV) #define glFinishFenceNV GLEW_GET_FUN(__glewFinishFenceNV) @@ -11134,12 +11134,12 @@ #define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 #define GL_PROGRAM_ERROR_STRING_NV 0x8874 -typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble *params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLdouble v[]); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLfloat v[]); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC)(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC)(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)(GLuint id, GLsizei len, const GLubyte * name, const GLdouble v[]); +typedef void(GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)(GLuint id, GLsizei len, const GLubyte * name, const GLfloat v[]); #define glGetProgramNamedParameterdvNV GLEW_GET_FUN(__glewGetProgramNamedParameterdvNV) #define glGetProgramNamedParameterfvNV GLEW_GET_FUN(__glewGetProgramNamedParameterfvNV) @@ -11195,7 +11195,7 @@ #define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 #define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 -typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); #define glRenderbufferStorageMultisampleCoverageNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleCoverageNV) @@ -11212,7 +11212,7 @@ #define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 #define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 -typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); +typedef void(GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC)(GLenum target, GLint limit); #define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV) @@ -11243,18 +11243,18 @@ #define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 #define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4INVPROC)(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4IVNVPROC)(GLenum target, GLuint index, const GLint * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UINVPROC)(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC)(GLenum target, GLuint index, const GLuint * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLint * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLuint * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4INVPROC)(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC)(GLenum target, GLuint index, const GLint * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC)(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC)(GLenum target, GLuint index, const GLuint * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLint * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLuint * params); #define glProgramEnvParameterI4iNV GLEW_GET_FUN(__glewProgramEnvParameterI4iNV) #define glProgramEnvParameterI4ivNV GLEW_GET_FUN(__glewProgramEnvParameterI4ivNV) @@ -11332,40 +11332,40 @@ #define GL_FLOAT16_VEC3_NV 0x8FFA #define GL_FLOAT16_VEC4_NV 0x8FFB -typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMI64VNVPROC)(GLuint program, GLint location, GLint64EXT * params); +typedef void(GLAPIENTRY * PFNGLGETUNIFORMUI64VNVPROC)(GLuint program, GLint location, GLuint64EXT * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64NVPROC)(GLuint program, GLint location, GLint64EXT x); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM1I64NVPROC)(GLint location, GLint64EXT x); +typedef void(GLAPIENTRY * PFNGLUNIFORM1I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM1UI64NVPROC)(GLint location, GLuint64EXT x); +typedef void(GLAPIENTRY * PFNGLUNIFORM1UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM2I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y); +typedef void(GLAPIENTRY * PFNGLUNIFORM2I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM2UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void(GLAPIENTRY * PFNGLUNIFORM2UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM3I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void(GLAPIENTRY * PFNGLUNIFORM3I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM3UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void(GLAPIENTRY * PFNGLUNIFORM3UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM4I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void(GLAPIENTRY * PFNGLUNIFORM4I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT * value); +typedef void(GLAPIENTRY * PFNGLUNIFORM4UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void(GLAPIENTRY * PFNGLUNIFORM4UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT * value); #define glGetUniformi64vNV GLEW_GET_FUN(__glewGetUniformi64vNV) #define glGetUniformui64vNV GLEW_GET_FUN(__glewGetUniformui64vNV) @@ -11415,52 +11415,52 @@ typedef unsigned short GLhalf; -typedef void (GLAPIENTRY * PFNGLCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); -typedef void (GLAPIENTRY * PFNGLCOLOR3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLCOLOR4HNVPROC) (GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha); -typedef void (GLAPIENTRY * PFNGLCOLOR4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLFOGCOORDHNVPROC) (GLhalf fog); -typedef void (GLAPIENTRY * PFNGLFOGCOORDHVNVPROC) (const GLhalf* fog); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalf s); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalf s, GLhalf t); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q); -typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLNORMAL3HNVPROC) (GLhalf nx, GLhalf ny, GLhalf nz); -typedef void (GLAPIENTRY * PFNGLNORMAL3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD1HNVPROC) (GLhalf s); -typedef void (GLAPIENTRY * PFNGLTEXCOORD1HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2HNVPROC) (GLhalf s, GLhalf t); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD3HNVPROC) (GLhalf s, GLhalf t, GLhalf r); -typedef void (GLAPIENTRY * PFNGLTEXCOORD3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4HNVPROC) (GLhalf s, GLhalf t, GLhalf r, GLhalf q); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX2HNVPROC) (GLhalf x, GLhalf y); -typedef void (GLAPIENTRY * PFNGLVERTEX2HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX3HNVPROC) (GLhalf x, GLhalf y, GLhalf z); -typedef void (GLAPIENTRY * PFNGLVERTEX3HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEX4HNVPROC) (GLhalf x, GLhalf y, GLhalf z, GLhalf w); -typedef void (GLAPIENTRY * PFNGLVERTEX4HVNVPROC) (const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalf x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalf x, GLhalf y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHNVPROC) (GLhalf weight); -typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight); +typedef void(GLAPIENTRY * PFNGLCOLOR3HNVPROC)(GLhalf red, GLhalf green, GLhalf blue); +typedef void(GLAPIENTRY * PFNGLCOLOR3HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLCOLOR4HNVPROC)(GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha); +typedef void(GLAPIENTRY * PFNGLCOLOR4HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLFOGCOORDHNVPROC)(GLhalf fog); +typedef void(GLAPIENTRY * PFNGLFOGCOORDHVNVPROC)(const GLhalf * fog); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1HNVPROC)(GLenum target, GLhalf s); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD1HVNVPROC)(GLenum target, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2HNVPROC)(GLenum target, GLhalf s, GLhalf t); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD2HVNVPROC)(GLenum target, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3HNVPROC)(GLenum target, GLhalf s, GLhalf t, GLhalf r); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD3HVNVPROC)(GLenum target, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4HNVPROC)(GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q); +typedef void(GLAPIENTRY * PFNGLMULTITEXCOORD4HVNVPROC)(GLenum target, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLNORMAL3HNVPROC)(GLhalf nx, GLhalf ny, GLhalf nz); +typedef void(GLAPIENTRY * PFNGLNORMAL3HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3HNVPROC)(GLhalf red, GLhalf green, GLhalf blue); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLOR3HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD1HNVPROC)(GLhalf s); +typedef void(GLAPIENTRY * PFNGLTEXCOORD1HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2HNVPROC)(GLhalf s, GLhalf t); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD3HNVPROC)(GLhalf s, GLhalf t, GLhalf r); +typedef void(GLAPIENTRY * PFNGLTEXCOORD3HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD4HNVPROC)(GLhalf s, GLhalf t, GLhalf r, GLhalf q); +typedef void(GLAPIENTRY * PFNGLTEXCOORD4HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEX2HNVPROC)(GLhalf x, GLhalf y); +typedef void(GLAPIENTRY * PFNGLVERTEX2HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEX3HNVPROC)(GLhalf x, GLhalf y, GLhalf z); +typedef void(GLAPIENTRY * PFNGLVERTEX3HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEX4HNVPROC)(GLhalf x, GLhalf y, GLhalf z, GLhalf w); +typedef void(GLAPIENTRY * PFNGLVERTEX4HVNVPROC)(const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1HNVPROC)(GLuint index, GLhalf x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1HVNVPROC)(GLuint index, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2HNVPROC)(GLuint index, GLhalf x, GLhalf y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2HVNVPROC)(GLuint index, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3HNVPROC)(GLuint index, GLhalf x, GLhalf y, GLhalf z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3HVNVPROC)(GLuint index, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4HNVPROC)(GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4HVNVPROC)(GLuint index, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS1HVNVPROC)(GLuint index, GLsizei n, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS2HVNVPROC)(GLuint index, GLsizei n, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS3HVNVPROC)(GLuint index, GLsizei n, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS4HVNVPROC)(GLuint index, GLsizei n, const GLhalf * v); +typedef void(GLAPIENTRY * PFNGLVERTEXWEIGHTHNVPROC)(GLhalf weight); +typedef void(GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC)(const GLhalf * weight); #define glColor3hNV GLEW_GET_FUN(__glewColor3hNV) #define glColor3hvNV GLEW_GET_FUN(__glewColor3hvNV) @@ -11558,13 +11558,13 @@ #define GL_PIXEL_COUNT_NV 0x8866 #define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 -typedef void (GLAPIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void(GLAPIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC)(GLuint id); +typedef void(GLAPIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC)(GLsizei n, const GLuint * ids); +typedef void(GLAPIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC)(void); +typedef void(GLAPIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC)(GLsizei n, GLuint * ids); +typedef void(GLAPIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC)(GLuint id, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC)(GLuint id, GLenum pname, GLuint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC)(GLuint id); #define glBeginOcclusionQueryNV GLEW_GET_FUN(__glewBeginOcclusionQueryNV) #define glDeleteOcclusionQueriesNV GLEW_GET_FUN(__glewDeleteOcclusionQueriesNV) @@ -11601,9 +11601,9 @@ #define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 #define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); +typedef void(GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC)(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC)(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC)(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat * params); #define glProgramBufferParametersIivNV GLEW_GET_FUN(__glewProgramBufferParametersIivNV) #define glProgramBufferParametersIuivNV GLEW_GET_FUN(__glewProgramBufferParametersIuivNV) @@ -11758,55 +11758,55 @@ #define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 #define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 -typedef void (GLAPIENTRY * PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); -typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); -typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHNVPROC) (GLuint name, GLenum coverMode); -typedef void (GLAPIENTRY * PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); -typedef GLuint (GLAPIENTRY * PFNGLGENPATHSNVPROC) (GLsizei range); -typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint* value); -typedef void (GLAPIENTRY * PFNGLGETPATHCOMMANDSNVPROC) (GLuint name, GLubyte* commands); -typedef void (GLAPIENTRY * PFNGLGETPATHCOORDSNVPROC) (GLuint name, GLfloat* coords); -typedef void (GLAPIENTRY * PFNGLGETPATHDASHARRAYNVPROC) (GLuint name, GLfloat* dashArray); -typedef GLfloat (GLAPIENTRY * PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); -typedef void (GLAPIENTRY * PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint fistPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics); -typedef void (GLAPIENTRY * PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); -typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERFVNVPROC) (GLuint name, GLenum param, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERIVNVPROC) (GLuint name, GLenum param, GLint* value); -typedef void (GLAPIENTRY * PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); -typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat* value); -typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint* value); -typedef void (GLAPIENTRY * PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); -typedef GLboolean (GLAPIENTRY * PFNGLISPATHNVPROC) (GLuint path); -typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); -typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat* coeffs); -typedef void (GLAPIENTRY * PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const GLvoid*coords); -typedef void (GLAPIENTRY * PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void* coords); -typedef void (GLAPIENTRY * PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum zfunc); -typedef void (GLAPIENTRY * PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat* dashArray); -typedef void (GLAPIENTRY * PFNGLPATHFOGGENNVPROC) (GLenum genMode); -typedef void (GLAPIENTRY * PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void* fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GLAPIENTRY * PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void* fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const GLvoid*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat* value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); -typedef void (GLAPIENTRY * PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint* value); -typedef void (GLAPIENTRY * PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); -typedef void (GLAPIENTRY * PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); -typedef void (GLAPIENTRY * PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void* pathString); -typedef void (GLAPIENTRY * PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const GLvoid*coords); -typedef void (GLAPIENTRY * PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void* coords); -typedef void (GLAPIENTRY * PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat* coeffs); -typedef GLboolean (GLAPIENTRY * PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); -typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); -typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); -typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); -typedef void (GLAPIENTRY * PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat* transformValues); -typedef void (GLAPIENTRY * PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint paths[], const GLfloat weights[]); +typedef void(GLAPIENTRY * PFNGLCOPYPATHNVPROC)(GLuint resultPath, GLuint srcPath); +typedef void(GLAPIENTRY * PFNGLCOVERFILLPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues); +typedef void(GLAPIENTRY * PFNGLCOVERFILLPATHNVPROC)(GLuint path, GLenum coverMode); +typedef void(GLAPIENTRY * PFNGLCOVERSTROKEPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues); +typedef void(GLAPIENTRY * PFNGLCOVERSTROKEPATHNVPROC)(GLuint name, GLenum coverMode); +typedef void(GLAPIENTRY * PFNGLDELETEPATHSNVPROC)(GLuint path, GLsizei range); +typedef GLuint(GLAPIENTRY * PFNGLGENPATHSNVPROC)(GLsizei range); +typedef void(GLAPIENTRY * PFNGLGETPATHCOLORGENFVNVPROC)(GLenum color, GLenum pname, GLfloat * value); +typedef void(GLAPIENTRY * PFNGLGETPATHCOLORGENIVNVPROC)(GLenum color, GLenum pname, GLint * value); +typedef void(GLAPIENTRY * PFNGLGETPATHCOMMANDSNVPROC)(GLuint name, GLubyte * commands); +typedef void(GLAPIENTRY * PFNGLGETPATHCOORDSNVPROC)(GLuint name, GLfloat * coords); +typedef void(GLAPIENTRY * PFNGLGETPATHDASHARRAYNVPROC)(GLuint name, GLfloat * dashArray); +typedef GLfloat(GLAPIENTRY * PFNGLGETPATHLENGTHNVPROC)(GLuint path, GLsizei startSegment, GLsizei numSegments); +typedef void(GLAPIENTRY * PFNGLGETPATHMETRICRANGENVPROC)(GLbitfield metricQueryMask, GLuint fistPathName, GLsizei numPaths, GLsizei stride, GLfloat * metrics); +typedef void(GLAPIENTRY * PFNGLGETPATHMETRICSNVPROC)(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLsizei stride, GLfloat * metrics); +typedef void(GLAPIENTRY * PFNGLGETPATHPARAMETERFVNVPROC)(GLuint name, GLenum param, GLfloat * value); +typedef void(GLAPIENTRY * PFNGLGETPATHPARAMETERIVNVPROC)(GLuint name, GLenum param, GLint * value); +typedef void(GLAPIENTRY * PFNGLGETPATHSPACINGNVPROC)(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat * returnedSpacing); +typedef void(GLAPIENTRY * PFNGLGETPATHTEXGENFVNVPROC)(GLenum texCoordSet, GLenum pname, GLfloat * value); +typedef void(GLAPIENTRY * PFNGLGETPATHTEXGENIVNVPROC)(GLenum texCoordSet, GLenum pname, GLint * value); +typedef void(GLAPIENTRY * PFNGLINTERPOLATEPATHSNVPROC)(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); +typedef GLboolean(GLAPIENTRY * PFNGLISPATHNVPROC)(GLuint path); +typedef GLboolean(GLAPIENTRY * PFNGLISPOINTINFILLPATHNVPROC)(GLuint path, GLuint mask, GLfloat x, GLfloat y); +typedef GLboolean(GLAPIENTRY * PFNGLISPOINTINSTROKEPATHNVPROC)(GLuint path, GLfloat x, GLfloat y); +typedef void(GLAPIENTRY * PFNGLPATHCOLORGENNVPROC)(GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat * coeffs); +typedef void(GLAPIENTRY * PFNGLPATHCOMMANDSNVPROC)(GLuint path, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const GLvoid * coords); +typedef void(GLAPIENTRY * PFNGLPATHCOORDSNVPROC)(GLuint path, GLsizei numCoords, GLenum coordType, const void * coords); +typedef void(GLAPIENTRY * PFNGLPATHCOVERDEPTHFUNCNVPROC)(GLenum zfunc); +typedef void(GLAPIENTRY * PFNGLPATHDASHARRAYNVPROC)(GLuint path, GLsizei dashCount, const GLfloat * dashArray); +typedef void(GLAPIENTRY * PFNGLPATHFOGGENNVPROC)(GLenum genMode); +typedef void(GLAPIENTRY * PFNGLPATHGLYPHRANGENVPROC)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void(GLAPIENTRY * PFNGLPATHGLYPHSNVPROC)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const GLvoid * charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void(GLAPIENTRY * PFNGLPATHPARAMETERFNVPROC)(GLuint path, GLenum pname, GLfloat value); +typedef void(GLAPIENTRY * PFNGLPATHPARAMETERFVNVPROC)(GLuint path, GLenum pname, const GLfloat * value); +typedef void(GLAPIENTRY * PFNGLPATHPARAMETERINVPROC)(GLuint path, GLenum pname, GLint value); +typedef void(GLAPIENTRY * PFNGLPATHPARAMETERIVNVPROC)(GLuint path, GLenum pname, const GLint * value); +typedef void(GLAPIENTRY * PFNGLPATHSTENCILDEPTHOFFSETNVPROC)(GLfloat factor, GLfloat units); +typedef void(GLAPIENTRY * PFNGLPATHSTENCILFUNCNVPROC)(GLenum func, GLint ref, GLuint mask); +typedef void(GLAPIENTRY * PFNGLPATHSTRINGNVPROC)(GLuint path, GLenum format, GLsizei length, const void * pathString); +typedef void(GLAPIENTRY * PFNGLPATHSUBCOMMANDSNVPROC)(GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const GLvoid * coords); +typedef void(GLAPIENTRY * PFNGLPATHSUBCOORDSNVPROC)(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void * coords); +typedef void(GLAPIENTRY * PFNGLPATHTEXGENNVPROC)(GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat * coeffs); +typedef GLboolean(GLAPIENTRY * PFNGLPOINTALONGPATHNVPROC)(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat * x, GLfloat * y, GLfloat * tangentX, GLfloat * tangentY); +typedef void(GLAPIENTRY * PFNGLSTENCILFILLPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat * transformValues); +typedef void(GLAPIENTRY * PFNGLSTENCILFILLPATHNVPROC)(GLuint path, GLenum fillMode, GLuint mask); +typedef void(GLAPIENTRY * PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat * transformValues); +typedef void(GLAPIENTRY * PFNGLSTENCILSTROKEPATHNVPROC)(GLuint path, GLint reference, GLuint mask); +typedef void(GLAPIENTRY * PFNGLTRANSFORMPATHNVPROC)(GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat * transformValues); +typedef void(GLAPIENTRY * PFNGLWEIGHTPATHSNVPROC)(GLuint resultPath, GLsizei numPaths, const GLuint paths[], const GLfloat weights[]); #define glCopyPathNV GLEW_GET_FUN(__glewCopyPathNV) #define glCoverFillPathInstancedNV GLEW_GET_FUN(__glewCoverFillPathInstancedNV) @@ -11874,8 +11874,8 @@ #define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C #define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D -typedef void (GLAPIENTRY * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, void* pointer); +typedef void(GLAPIENTRY * PFNGLFLUSHPIXELDATARANGENVPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLPIXELDATARANGENVPROC)(GLenum target, GLsizei length, void * pointer); #define glFlushPixelDataRangeNV GLEW_GET_FUN(__glewFlushPixelDataRangeNV) #define glPixelDataRangeNV GLEW_GET_FUN(__glewPixelDataRangeNV) @@ -11893,8 +11893,8 @@ #define GL_COORD_REPLACE_NV 0x8862 #define GL_POINT_SPRITE_R_MODE_NV 0x8863 -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint* params); +typedef void(GLAPIENTRY * PFNGLPOINTPARAMETERINVPROC)(GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC)(GLenum pname, const GLint * params); #define glPointParameteriNV GLEW_GET_FUN(__glewPointParameteriNV) #define glPointParameterivNV GLEW_GET_FUN(__glewPointParameterivNV) @@ -11915,12 +11915,12 @@ #define GL_PRESENT_TIME_NV 0x8E2A #define GL_PRESENT_DURATION_NV 0x8E2B -typedef void (GLAPIENTRY * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint* params); -typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); +typedef void(GLAPIENTRY * PFNGLGETVIDEOI64VNVPROC)(GLuint video_slot, GLenum pname, GLint64EXT * params); +typedef void(GLAPIENTRY * PFNGLGETVIDEOIVNVPROC)(GLuint video_slot, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETVIDEOUI64VNVPROC)(GLuint video_slot, GLenum pname, GLuint64EXT * params); +typedef void(GLAPIENTRY * PFNGLGETVIDEOUIVNVPROC)(GLuint video_slot, GLenum pname, GLuint * params); +typedef void(GLAPIENTRY * PFNGLPRESENTFRAMEDUALFILLNVPROC)(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); +typedef void(GLAPIENTRY * PFNGLPRESENTFRAMEKEYEDNVPROC)(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); #define glGetVideoi64vNV GLEW_GET_FUN(__glewGetVideoi64vNV) #define glGetVideoivNV GLEW_GET_FUN(__glewGetVideoivNV) @@ -11941,8 +11941,8 @@ #define GL_PRIMITIVE_RESTART_NV 0x8558 #define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void); +typedef void(GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC)(GLuint index); +typedef void(GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC)(void); #define glPrimitiveRestartIndexNV GLEW_GET_FUN(__glewPrimitiveRestartIndexNV) #define glPrimitiveRestartNV GLEW_GET_FUN(__glewPrimitiveRestartNV) @@ -12008,19 +12008,19 @@ #define GL_COMBINER6_NV 0x8556 #define GL_COMBINER7_NV 0x8557 -typedef void (GLAPIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (GLAPIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint* params); +typedef void(GLAPIENTRY * PFNGLCOMBINERINPUTNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void(GLAPIENTRY * PFNGLCOMBINEROUTPUTNVPROC)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +typedef void(GLAPIENTRY * PFNGLCOMBINERPARAMETERFNVPROC)(GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC)(GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLCOMBINERPARAMETERINVPROC)(GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC)(GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLFINALCOMBINERINPUTNVPROC)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void(GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)(GLenum variable, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)(GLenum variable, GLenum pname, GLint * params); #define glCombinerInputNV GLEW_GET_FUN(__glewCombinerInputNV) #define glCombinerOutputNV GLEW_GET_FUN(__glewCombinerOutputNV) @@ -12047,8 +12047,8 @@ #define GL_PER_STAGE_CONSTANTS_NV 0x8535 -typedef void (GLAPIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat* params); +typedef void(GLAPIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname, GLfloat * params); #define glCombinerStageParameterfvNV GLEW_GET_FUN(__glewCombinerStageParameterfvNV) #define glGetCombinerStageParameterfvNV GLEW_GET_FUN(__glewGetCombinerStageParameterfvNV) @@ -12075,19 +12075,19 @@ #define GL_GPU_ADDRESS_NV 0x8F34 #define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 -typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT* result); -typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT* params); -typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); -typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); -typedef void (GLAPIENTRY * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); -typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); -typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); -typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); -typedef void (GLAPIENTRY * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); -typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void(GLAPIENTRY * PFNGLGETBUFFERPARAMETERUI64VNVPROC)(GLenum target, GLenum pname, GLuint64EXT * params); +typedef void(GLAPIENTRY * PFNGLGETINTEGERUI64VNVPROC)(GLenum value, GLuint64EXT * result); +typedef void(GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC)(GLuint buffer, GLenum pname, GLuint64EXT * params); +typedef GLboolean(GLAPIENTRY * PFNGLISBUFFERRESIDENTNVPROC)(GLenum target); +typedef GLboolean(GLAPIENTRY * PFNGLISNAMEDBUFFERRESIDENTNVPROC)(GLuint buffer); +typedef void(GLAPIENTRY * PFNGLMAKEBUFFERNONRESIDENTNVPROC)(GLenum target); +typedef void(GLAPIENTRY * PFNGLMAKEBUFFERRESIDENTNVPROC)(GLenum target, GLenum access); +typedef void(GLAPIENTRY * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC)(GLuint buffer); +typedef void(GLAPIENTRY * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC)(GLuint buffer, GLenum access); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64NVPROC)(GLuint program, GLint location, GLuint64EXT value); +typedef void(GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value); +typedef void(GLAPIENTRY * PFNGLUNIFORMUI64NVPROC)(GLint location, GLuint64EXT value); +typedef void(GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT * value); #define glGetBufferParameterui64vNV GLEW_GET_FUN(__glewGetBufferParameterui64vNV) #define glGetIntegerui64vNV GLEW_GET_FUN(__glewGetIntegerui64vNV) @@ -12152,7 +12152,7 @@ #ifndef GL_NV_texture_barrier #define GL_NV_texture_barrier 1 -typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void); +typedef void(GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC)(void); #define glTextureBarrierNV GLEW_GET_FUN(__glewTextureBarrierNV) @@ -12203,12 +12203,12 @@ #define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 #define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 -typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void(GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void(GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void(GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC)(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void(GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC)(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void(GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC)(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void(GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC)(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); #define glTexImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage2DMultisampleCoverageNV) #define glTexImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage3DMultisampleCoverageNV) @@ -12414,17 +12414,17 @@ #define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F -typedef void (GLAPIENTRY * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); -typedef GLint (GLAPIENTRY * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); -typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +typedef void(GLAPIENTRY * PFNGLACTIVEVARYINGNVPROC)(GLuint program, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKNVPROC)(GLenum primitiveMode); +typedef void(GLAPIENTRY * PFNGLBINDBUFFERBASENVPROC)(GLenum target, GLuint index, GLuint buffer); +typedef void(GLAPIENTRY * PFNGLBINDBUFFEROFFSETNVPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void(GLAPIENTRY * PFNGLBINDBUFFERRANGENVPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void(GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKNVPROC)(void); +typedef void(GLAPIENTRY * PFNGLGETACTIVEVARYINGNVPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); +typedef void(GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC)(GLuint program, GLuint index, GLint * location); +typedef GLint(GLAPIENTRY * PFNGLGETVARYINGLOCATIONNVPROC)(GLuint program, const GLchar * name); +typedef void(GLAPIENTRY * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC)(GLuint count, const GLint * attribs, GLenum bufferMode); +typedef void(GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC)(GLuint program, GLsizei count, const GLint * locations, GLenum bufferMode); #define glActiveVaryingNV GLEW_GET_FUN(__glewActiveVaryingNV) #define glBeginTransformFeedbackNV GLEW_GET_FUN(__glewBeginTransformFeedbackNV) @@ -12452,13 +12452,13 @@ #define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 #define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 -typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); -typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint* ids); -typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); -typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); +typedef void(GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKNVPROC)(GLenum target, GLuint id); +typedef void(GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSNVPROC)(GLsizei n, const GLuint * ids); +typedef void(GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKNVPROC)(GLenum mode, GLuint id); +typedef void(GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSNVPROC)(GLsizei n, GLuint * ids); +typedef GLboolean(GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKNVPROC)(GLuint id); +typedef void(GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKNVPROC)(void); +typedef void(GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKNVPROC)(void); #define glBindTransformFeedbackNV GLEW_GET_FUN(__glewBindTransformFeedbackNV) #define glDeleteTransformFeedbacksNV GLEW_GET_FUN(__glewDeleteTransformFeedbacksNV) @@ -12484,16 +12484,16 @@ typedef GLintptr GLvdpauSurfaceNV; -typedef void (GLAPIENTRY * PFNGLVDPAUFININVPROC) (void); -typedef void (GLAPIENTRY * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); -typedef void (GLAPIENTRY * PFNGLVDPAUINITNVPROC) (const void* vdpDevice, const GLvoid*getProcAddress); -typedef void (GLAPIENTRY * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (GLAPIENTRY * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces); -typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef void (GLAPIENTRY * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); -typedef void (GLAPIENTRY * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces); -typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); +typedef void(GLAPIENTRY * PFNGLVDPAUFININVPROC)(void); +typedef void(GLAPIENTRY * PFNGLVDPAUGETSURFACEIVNVPROC)(GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values); +typedef void(GLAPIENTRY * PFNGLVDPAUINITNVPROC)(const void * vdpDevice, const GLvoid * getProcAddress); +typedef void(GLAPIENTRY * PFNGLVDPAUISSURFACENVPROC)(GLvdpauSurfaceNV surface); +typedef void(GLAPIENTRY * PFNGLVDPAUMAPSURFACESNVPROC)(GLsizei numSurfaces, const GLvdpauSurfaceNV * surfaces); +typedef GLvdpauSurfaceNV(GLAPIENTRY * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC)(const void * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames); +typedef GLvdpauSurfaceNV(GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC)(const void * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames); +typedef void(GLAPIENTRY * PFNGLVDPAUSURFACEACCESSNVPROC)(GLvdpauSurfaceNV surface, GLenum access); +typedef void(GLAPIENTRY * PFNGLVDPAUUNMAPSURFACESNVPROC)(GLsizei numSurface, const GLvdpauSurfaceNV * surfaces); +typedef void(GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC)(GLvdpauSurfaceNV surface); #define glVDPAUFiniNV GLEW_GET_FUN(__glewVDPAUFiniNV) #define glVDPAUGetSurfaceivNV GLEW_GET_FUN(__glewVDPAUGetSurfaceivNV) @@ -12521,8 +12521,8 @@ #define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 #define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, void* pointer); +typedef void(GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC)(void); +typedef void(GLAPIENTRY * PFNGLVERTEXARRAYRANGENVPROC)(GLsizei length, void * pointer); #define glFlushVertexArrayRangeNV GLEW_GET_FUN(__glewFlushVertexArrayRangeNV) #define glVertexArrayRangeNV GLEW_GET_FUN(__glewVertexArrayRangeNV) @@ -12550,25 +12550,25 @@ #define GL_INT64_NV 0x140E #define GL_UNSIGNED_INT64_NV 0x140F -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT* params); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBLI64VNVPROC)(GLuint index, GLenum pname, GLint64EXT * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VNVPROC)(GLuint index, GLenum pname, GLuint64EXT * params); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL1I64NVPROC)(GLuint index, GLint64EXT x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL1I64VNVPROC)(GLuint index, const GLint64EXT * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64NVPROC)(GLuint index, GLuint64EXT x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VNVPROC)(GLuint index, const GLuint64EXT * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL2I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL2I64VNVPROC)(GLuint index, const GLint64EXT * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64VNVPROC)(GLuint index, const GLuint64EXT * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL3I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL3I64VNVPROC)(GLuint index, const GLint64EXT * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64VNVPROC)(GLuint index, const GLuint64EXT * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL4I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL4I64VNVPROC)(GLuint index, const GLint64EXT * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64VNVPROC)(GLuint index, const GLuint64EXT * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLsizei stride); #define glGetVertexAttribLi64vNV GLEW_GET_FUN(__glewGetVertexAttribLi64vNV) #define glGetVertexAttribLui64vNV GLEW_GET_FUN(__glewGetVertexAttribLui64vNV) @@ -12625,18 +12625,18 @@ #define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 #define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 -typedef void (GLAPIENTRY * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -typedef void (GLAPIENTRY * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); -typedef void (GLAPIENTRY * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT result[]); -typedef void (GLAPIENTRY * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -typedef void (GLAPIENTRY * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLBUFFERADDRESSRANGENVPROC)(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); +typedef void(GLAPIENTRY * PFNGLCOLORFORMATNVPROC)(GLint size, GLenum type, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLEDGEFLAGFORMATNVPROC)(GLsizei stride); +typedef void(GLAPIENTRY * PFNGLFOGCOORDFORMATNVPROC)(GLenum type, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLGETINTEGERUI64I_VNVPROC)(GLenum value, GLuint index, GLuint64EXT result[]); +typedef void(GLAPIENTRY * PFNGLINDEXFORMATNVPROC)(GLenum type, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLNORMALFORMATNVPROC)(GLenum type, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLSECONDARYCOLORFORMATNVPROC)(GLint size, GLenum type, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLTEXCOORDFORMATNVPROC)(GLint size, GLenum type, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLsizei stride); +typedef void(GLAPIENTRY * PFNGLVERTEXFORMATNVPROC)(GLint size, GLenum type, GLsizei stride); #define glBufferAddressRangeNV GLEW_GET_FUN(__glewBufferAddressRangeNV) #define glColorFormatNV GLEW_GET_FUN(__glewColorFormatNV) @@ -12744,70 +12744,70 @@ #define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E #define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F -typedef GLboolean (GLAPIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint* ids, GLboolean *residences); -typedef void (GLAPIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint* ids); -typedef void (GLAPIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte* program); -typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid** pointer); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint* params); -typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (GLAPIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte* program); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, GLuint* ids); -typedef void (GLAPIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); -typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei n, const GLubyte* v); +typedef GLboolean(GLAPIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC)(GLsizei n, const GLuint * ids, GLboolean * residences); +typedef void(GLAPIENTRY * PFNGLBINDPROGRAMNVPROC)(GLenum target, GLuint id); +typedef void(GLAPIENTRY * PFNGLDELETEPROGRAMSNVPROC)(GLsizei n, const GLuint * ids); +typedef void(GLAPIENTRY * PFNGLEXECUTEPROGRAMNVPROC)(GLenum target, GLuint id, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGENPROGRAMSNVPROC)(GLsizei n, GLuint * ids); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC)(GLenum target, GLuint index, GLenum pname, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC)(GLenum target, GLuint index, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMSTRINGNVPROC)(GLuint id, GLenum pname, GLubyte * program); +typedef void(GLAPIENTRY * PFNGLGETPROGRAMIVNVPROC)(GLuint id, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETTRACKMATRIXIVNVPROC)(GLenum target, GLuint address, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC)(GLuint index, GLenum pname, GLvoid ** pointer); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC)(GLuint index, GLenum pname, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC)(GLuint index, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC)(GLuint index, GLenum pname, GLint * params); +typedef GLboolean(GLAPIENTRY * PFNGLISPROGRAMNVPROC)(GLuint id); +typedef void(GLAPIENTRY * PFNGLLOADPROGRAMNVPROC)(GLenum target, GLuint id, GLsizei len, const GLubyte * program); +typedef void(GLAPIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC)(GLenum target, GLuint index, const GLdouble * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC)(GLenum target, GLuint index, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC)(GLenum target, GLuint index, GLsizei num, const GLdouble * params); +typedef void(GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC)(GLenum target, GLuint index, GLsizei num, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC)(GLsizei n, GLuint * ids); +typedef void(GLAPIENTRY * PFNGLTRACKMATRIXNVPROC)(GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1DNVPROC)(GLuint index, GLdouble x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1DVNVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1FNVPROC)(GLuint index, GLfloat x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1FVNVPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1SNVPROC)(GLuint index, GLshort x); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB1SVNVPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2DNVPROC)(GLuint index, GLdouble x, GLdouble y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2DVNVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2FNVPROC)(GLuint index, GLfloat x, GLfloat y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2FVNVPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2SNVPROC)(GLuint index, GLshort x, GLshort y); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB2SVNVPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3DNVPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3DVNVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3FNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3FVNVPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3SNVPROC)(GLuint index, GLshort x, GLshort y, GLshort z); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB3SVNVPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4DNVPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4DVNVPROC)(GLuint index, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4FNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4FVNVPROC)(GLuint index, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4SNVPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4SVNVPROC)(GLuint index, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4UBNVPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC)(GLuint index, const GLubyte * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC)(GLuint index, GLsizei n, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC)(GLuint index, GLsizei n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC)(GLuint index, GLsizei n, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC)(GLuint index, GLsizei n, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC)(GLuint index, GLsizei n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC)(GLuint index, GLsizei n, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC)(GLuint index, GLsizei n, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC)(GLuint index, GLsizei n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC)(GLuint index, GLsizei n, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC)(GLuint index, GLsizei n, const GLdouble * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC)(GLuint index, GLsizei n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC)(GLuint index, GLsizei n, const GLshort * v); +typedef void(GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC)(GLuint index, GLsizei n, const GLubyte * v); #define glAreProgramsResidentNV GLEW_GET_FUN(__glewAreProgramsResidentNV) #define glBindProgramNV GLEW_GET_FUN(__glewBindProgramNV) @@ -12965,18 +12965,18 @@ #define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B #define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C -typedef void (GLAPIENTRY * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -typedef void (GLAPIENTRY * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint* params); -typedef GLenum (GLAPIENTRY * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint* sequence_num, GLuint64EXT *capture_time); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params); +typedef void(GLAPIENTRY * PFNGLBEGINVIDEOCAPTURENVPROC)(GLuint video_capture_slot); +typedef void(GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); +typedef void(GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC)(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); +typedef void(GLAPIENTRY * PFNGLENDVIDEOCAPTURENVPROC)(GLuint video_capture_slot); +typedef void(GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble * params); +typedef void(GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETVIDEOCAPTUREIVNVPROC)(GLuint video_capture_slot, GLenum pname, GLint * params); +typedef GLenum(GLAPIENTRY * PFNGLVIDEOCAPTURENVPROC)(GLuint video_capture_slot, GLuint * sequence_num, GLuint64EXT * capture_time); +typedef void(GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble * params); +typedef void(GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint * params); #define glBeginVideoCaptureNV GLEW_GET_FUN(__glewBeginVideoCaptureNV) #define glBindVideoCaptureStreamBufferNV GLEW_GET_FUN(__glewBindVideoCaptureStreamBufferNV) @@ -13043,12 +13043,12 @@ #ifndef GL_OES_single_precision #define GL_OES_single_precision 1 -typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFOESPROC) (GLclampd depth); -typedef void (GLAPIENTRY * PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat* equation); -typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); -typedef void (GLAPIENTRY * PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); -typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat* equation); -typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +typedef void(GLAPIENTRY * PFNGLCLEARDEPTHFOESPROC)(GLclampd depth); +typedef void(GLAPIENTRY * PFNGLCLIPPLANEFOESPROC)(GLenum plane, const GLfloat * equation); +typedef void(GLAPIENTRY * PFNGLDEPTHRANGEFOESPROC)(GLclampf n, GLclampf f); +typedef void(GLAPIENTRY * PFNGLFRUSTUMFOESPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +typedef void(GLAPIENTRY * PFNGLGETCLIPPLANEFOESPROC)(GLenum plane, GLfloat * equation); +typedef void(GLAPIENTRY * PFNGLORTHOFOESPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); #define glClearDepthfOES GLEW_GET_FUN(__glewClearDepthfOES) #define glClipPlanefOES GLEW_GET_FUN(__glewClipPlanefOES) @@ -13168,7 +13168,7 @@ #ifndef GL_REGAL_error_string #define GL_REGAL_error_string 1 -typedef const GLchar* (GLAPIENTRY * PFNGLERRORSTRINGREGALPROC) (GLenum error); +typedef const GLchar *(GLAPIENTRY * PFNGLERRORSTRINGREGALPROC)(GLenum error); #define glErrorStringREGAL GLEW_GET_FUN(__glewErrorStringREGAL) @@ -13181,8 +13181,8 @@ #ifndef GL_REGAL_extension_query #define GL_REGAL_extension_query 1 -typedef GLboolean (GLAPIENTRY * PFNGLGETEXTENSIONREGALPROC) (const GLchar* ext); -typedef GLboolean (GLAPIENTRY * PFNGLISSUPPORTEDREGALPROC) (const GLchar* ext); +typedef GLboolean(GLAPIENTRY * PFNGLGETEXTENSIONREGALPROC)(const GLchar * ext); +typedef GLboolean(GLAPIENTRY * PFNGLISSUPPORTEDREGALPROC)(const GLchar * ext); #define glGetExtensionREGAL GLEW_GET_FUN(__glewGetExtensionREGAL) #define glIsSupportedREGAL GLEW_GET_FUN(__glewIsSupportedREGAL) @@ -13262,8 +13262,8 @@ #ifndef GL_SGIS_detail_texture #define GL_SGIS_detail_texture 1 -typedef void (GLAPIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat* points); +typedef void(GLAPIENTRY * PFNGLDETAILTEXFUNCSGISPROC)(GLenum target, GLsizei n, const GLfloat * points); +typedef void(GLAPIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC)(GLenum target, GLfloat * points); #define glDetailTexFuncSGIS GLEW_GET_FUN(__glewDetailTexFuncSGIS) #define glGetDetailTexFuncSGIS GLEW_GET_FUN(__glewGetDetailTexFuncSGIS) @@ -13277,8 +13277,8 @@ #ifndef GL_SGIS_fog_function #define GL_SGIS_fog_function 1 -typedef void (GLAPIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat* points); -typedef void (GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points); +typedef void(GLAPIENTRY * PFNGLFOGFUNCSGISPROC)(GLsizei n, const GLfloat * points); +typedef void(GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC)(GLfloat * points); #define glFogFuncSGIS GLEW_GET_FUN(__glewFogFuncSGIS) #define glGetFogFuncSGIS GLEW_GET_FUN(__glewGetFogFuncSGIS) @@ -13321,8 +13321,8 @@ #define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB #define GL_SAMPLE_PATTERN_SGIS 0x80AC -typedef void (GLAPIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); +typedef void(GLAPIENTRY * PFNGLSAMPLEMASKSGISPROC)(GLclampf value, GLboolean invert); +typedef void(GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC)(GLenum pattern); #define glSampleMaskSGIS GLEW_GET_FUN(__glewSampleMaskSGIS) #define glSamplePatternSGIS GLEW_GET_FUN(__glewSamplePatternSGIS) @@ -13363,8 +13363,8 @@ #ifndef GL_SGIS_sharpen_texture #define GL_SGIS_sharpen_texture 1 -typedef void (GLAPIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat* points); -typedef void (GLAPIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); +typedef void(GLAPIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC)(GLenum target, GLfloat * points); +typedef void(GLAPIENTRY * PFNGLSHARPENTEXFUNCSGISPROC)(GLenum target, GLsizei n, const GLfloat * points); #define glGetSharpenTexFuncSGIS GLEW_GET_FUN(__glewGetSharpenTexFuncSGIS) #define glSharpenTexFuncSGIS GLEW_GET_FUN(__glewSharpenTexFuncSGIS) @@ -13378,8 +13378,8 @@ #ifndef GL_SGIS_texture4D #define GL_SGIS_texture4D 1 -typedef void (GLAPIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void* pixels); -typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void* pixels); +typedef void(GLAPIENTRY * PFNGLTEXIMAGE4DSGISPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void * pixels); +typedef void(GLAPIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void * pixels); #define glTexImage4DSGIS GLEW_GET_FUN(__glewTexImage4DSGIS) #define glTexSubImage4DSGIS GLEW_GET_FUN(__glewTexSubImage4DSGIS) @@ -13415,8 +13415,8 @@ #ifndef GL_SGIS_texture_filter4 #define GL_SGIS_texture_filter4 1 -typedef void (GLAPIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat* weights); -typedef void (GLAPIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat* weights); +typedef void(GLAPIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter, GLfloat * weights); +typedef void(GLAPIENTRY * PFNGLTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter, GLsizei n, const GLfloat * weights); #define glGetTexFilterFuncSGIS GLEW_GET_FUN(__glewGetTexFilterFuncSGIS) #define glTexFilterFuncSGIS GLEW_GET_FUN(__glewTexFilterFuncSGIS) @@ -13455,12 +13455,12 @@ #define GL_ASYNC_MARKER_SGIX 0x8329 -typedef void (GLAPIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef void (GLAPIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLint (GLAPIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint* markerp); -typedef GLuint (GLAPIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef GLboolean (GLAPIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); +typedef void(GLAPIENTRY * PFNGLASYNCMARKERSGIXPROC)(GLuint marker); +typedef void(GLAPIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC)(GLuint marker, GLsizei range); +typedef GLint(GLAPIENTRY * PFNGLFINISHASYNCSGIXPROC)(GLuint * markerp); +typedef GLuint(GLAPIENTRY * PFNGLGENASYNCMARKERSSGIXPROC)(GLsizei range); +typedef GLboolean(GLAPIENTRY * PFNGLISASYNCMARKERSGIXPROC)(GLuint marker); +typedef GLint(GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC)(GLuint * markerp); #define glAsyncMarkerSGIX GLEW_GET_FUN(__glewAsyncMarkerSGIX) #define glDeleteAsyncMarkersSGIX GLEW_GET_FUN(__glewDeleteAsyncMarkersSGIX) @@ -13551,7 +13551,7 @@ #ifndef GL_SGIX_flush_raster #define GL_SGIX_flush_raster 1 -typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); +typedef void(GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC)(void); #define glFlushRasterSGIX GLEW_GET_FUN(__glewFlushRasterSGIX) @@ -13580,7 +13580,7 @@ #define GL_FOG_PATCHY_FACTOR_SGIX 0 #define GL_FRAGMENT_FOG_SGIX 0 -typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); +typedef void(GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC)(GLenum pname); #define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX) @@ -13593,23 +13593,23 @@ #ifndef GL_SGIX_fragment_specular_lighting #define GL_SGIX_fragment_specular_lighting 1 -typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, const GLfloat param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, const GLint param); -typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data); +typedef void(GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC)(GLenum face, GLenum mode); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC)(GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)(GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC)(GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)(GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC)(GLenum light, GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC)(GLenum light, GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC)(GLenum face, GLenum pname, const GLfloat param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC)(GLenum face, GLenum pname, const GLint param); +typedef void(GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum value, GLfloat * data); +typedef void(GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum value, GLint * data); +typedef void(GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname, const GLfloat * data); +typedef void(GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname, const GLint * data); #define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX) #define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX) @@ -13638,7 +13638,7 @@ #ifndef GL_SGIX_framezoom #define GL_SGIX_framezoom 1 -typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); +typedef void(GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC)(GLint factor); #define glFrameZoomSGIX GLEW_GET_FUN(__glewFrameZoomSGIX) @@ -13680,7 +13680,7 @@ #ifndef GL_SGIX_pixel_texture #define GL_SGIX_pixel_texture 1 -typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); +typedef void(GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC)(GLenum mode); #define glPixelTexGenSGIX GLEW_GET_FUN(__glewPixelTexGenSGIX) @@ -13702,7 +13702,7 @@ #ifndef GL_SGIX_reference_plane #define GL_SGIX_reference_plane 1 -typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equation); +typedef void(GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC)(const GLdouble * equation); #define glReferencePlaneSGIX GLEW_GET_FUN(__glewReferencePlaneSGIX) @@ -13755,10 +13755,10 @@ #ifndef GL_SGIX_sprite #define GL_SGIX_sprite 1 -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* params); +typedef void(GLAPIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC)(GLenum pname, GLfloat param); +typedef void(GLAPIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC)(GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLSPRITEPARAMETERISGIXPROC)(GLenum pname, GLint param); +typedef void(GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC)(GLenum pname, GLint * params); #define glSpriteParameterfSGIX GLEW_GET_FUN(__glewSpriteParameterfSGIX) #define glSpriteParameterfvSGIX GLEW_GET_FUN(__glewSpriteParameterfvSGIX) @@ -13774,7 +13774,7 @@ #ifndef GL_SGIX_tag_sample_buffer #define GL_SGIX_tag_sample_buffer 1 -typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); +typedef void(GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC)(void); #define glTagSampleBufferSGIX GLEW_GET_FUN(__glewTagSampleBufferSGIX) @@ -13952,13 +13952,13 @@ #define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE #define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params); -typedef void (GLAPIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* table); -typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void* table); +typedef void(GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname, const GLfloat * params); +typedef void(GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname, const GLint * params); +typedef void(GLAPIENTRY * PFNGLCOLORTABLESGIPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void * table); +typedef void(GLAPIENTRY * PFNGLCOPYCOLORTABLESGIPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void(GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void(GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname, GLint * params); +typedef void(GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC)(GLenum target, GLenum format, GLenum type, void * table); #define glColorTableParameterfvSGI GLEW_GET_FUN(__glewColorTableParameterfvSGI) #define glColorTableParameterivSGI GLEW_GET_FUN(__glewColorTableParameterivSGI) @@ -13992,7 +13992,7 @@ #define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 #define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -typedef void (GLAPIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void); +typedef void(GLAPIENTRY * PFNGLFINISHTEXTURESUNXPROC)(void); #define glFinishTextureSUNX GLEW_GET_FUN(__glewFinishTextureSUNX) @@ -14019,14 +14019,14 @@ #define GL_GLOBAL_ALPHA_SUN 0x81D9 #define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); +typedef void(GLAPIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC)(GLbyte factor); +typedef void(GLAPIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC)(GLdouble factor); +typedef void(GLAPIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC)(GLfloat factor); +typedef void(GLAPIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC)(GLint factor); +typedef void(GLAPIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC)(GLshort factor); +typedef void(GLAPIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC)(GLubyte factor); +typedef void(GLAPIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC)(GLuint factor); +typedef void(GLAPIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC)(GLushort factor); #define glGlobalAlphaFactorbSUN GLEW_GET_FUN(__glewGlobalAlphaFactorbSUN) #define glGlobalAlphaFactordSUN GLEW_GET_FUN(__glewGlobalAlphaFactordSUN) @@ -14058,7 +14058,7 @@ #ifndef GL_SUN_read_video_pixels #define GL_SUN_read_video_pixels 1 -typedef void (GLAPIENTRY * PFNGLREADVIDEOPIXELSSUNPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); +typedef void(GLAPIENTRY * PFNGLREADVIDEOPIXELSSUNPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels); #define glReadVideoPixelsSUN GLEW_GET_FUN(__glewReadVideoPixelsSUN) @@ -14100,13 +14100,13 @@ #define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA #define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void* pointer); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte* code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint* code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort* code); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC)(GLenum type, GLsizei stride, const void * pointer); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC)(GLubyte code); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC)(const GLubyte * code); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUISUNPROC)(GLuint code); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC)(const GLuint * code); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC)(GLushort code); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC)(const GLushort * code); #define glReplacementCodePointerSUN GLEW_GET_FUN(__glewReplacementCodePointerSUN) #define glReplacementCodeubSUN GLEW_GET_FUN(__glewReplacementCodeubSUN) @@ -14125,46 +14125,46 @@ #ifndef GL_SUN_vertex #define GL_SUN_vertex 1 -typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte* c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint* rc, const GLubyte *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat* tc, const GLubyte *c, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *v); +typedef void(GLAPIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC)(const GLfloat * c, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat * c, const GLfloat * n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +typedef void(GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC)(const GLubyte * c, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC)(const GLubyte * c, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC)(GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC)(const GLfloat * n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC)(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * c, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * c, const GLfloat * n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC)(GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC)(const GLuint * rc, const GLubyte * c, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * tc, const GLfloat * n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * tc, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC)(GLuint rc, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC)(const GLfloat * tc, const GLfloat * c, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC)(const GLfloat * tc, const GLubyte * c, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat * tc, const GLfloat * n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void(GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC)(const GLfloat * tc, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC)(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC)(const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v); +typedef void(GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC)(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void(GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC)(const GLfloat * tc, const GLfloat * v); #define glColor3fVertex3fSUN GLEW_GET_FUN(__glewColor3fVertex3fSUN) #define glColor3fVertex3fvSUN GLEW_GET_FUN(__glewColor3fVertex3fvSUN) @@ -14239,7 +14239,7 @@ #ifndef GL_WIN_swap_hint #define GL_WIN_swap_hint 1 -typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +typedef void(GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC)(GLint x, GLint y, GLsizei width, GLsizei height); #define glAddSwapHintRectWIN GLEW_GET_FUN(__glewAddSwapHintRectWIN) @@ -14266,2794 +14266,2794 @@ { #endif /* GLEW_MX */ -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DPROC __glewTexImage3D; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D; - -GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture; -GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv; -GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage; - -GLEW_FUN_EXPORT PFNGLBLENDCOLORPROC __glewBlendColor; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONPROC __glewBlendEquation; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate; -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer; -GLEW_FUN_EXPORT PFNGLFOGCOORDDPROC __glewFogCoordd; -GLEW_FUN_EXPORT PFNGLFOGCOORDDVPROC __glewFogCoorddv; -GLEW_FUN_EXPORT PFNGLFOGCOORDFPROC __glewFogCoordf; -GLEW_FUN_EXPORT PFNGLFOGCOORDFVPROC __glewFogCoordfv; -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFPROC __glewPointParameterf; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIPROC __glewPointParameteri; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DPROC __glewWindowPos2d; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FPROC __glewWindowPos2f; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IPROC __glewWindowPos2i; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SPROC __glewWindowPos2s; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DPROC __glewWindowPos3d; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FPROC __glewWindowPos3f; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IPROC __glewWindowPos3i; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SPROC __glewWindowPos3s; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYPROC __glewBeginQuery; -GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer; -GLEW_FUN_EXPORT PFNGLBUFFERDATAPROC __glewBufferData; -GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAPROC __glewBufferSubData; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERSPROC __glewDeleteBuffers; -GLEW_FUN_EXPORT PFNGLDELETEQUERIESPROC __glewDeleteQueries; -GLEW_FUN_EXPORT PFNGLENDQUERYPROC __glewEndQuery; -GLEW_FUN_EXPORT PFNGLGENBUFFERSPROC __glewGenBuffers; -GLEW_FUN_EXPORT PFNGLGENQUERIESPROC __glewGenQueries; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv; -GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv; -GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv; -GLEW_FUN_EXPORT PFNGLGETQUERYIVPROC __glewGetQueryiv; -GLEW_FUN_EXPORT PFNGLISBUFFERPROC __glewIsBuffer; -GLEW_FUN_EXPORT PFNGLISQUERYPROC __glewIsQuery; -GLEW_FUN_EXPORT PFNGLMAPBUFFERPROC __glewMapBuffer; -GLEW_FUN_EXPORT PFNGLUNMAPBUFFERPROC __glewUnmapBuffer; - -GLEW_FUN_EXPORT PFNGLATTACHSHADERPROC __glewAttachShader; -GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate; -GLEW_FUN_EXPORT PFNGLCOMPILESHADERPROC __glewCompileShader; -GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPROC __glewCreateProgram; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROC __glewCreateShader; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPROC __glewDeleteProgram; -GLEW_FUN_EXPORT PFNGLDELETESHADERPROC __glewDeleteShader; -GLEW_FUN_EXPORT PFNGLDETACHSHADERPROC __glewDetachShader; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray; -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSPROC __glewDrawBuffers; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray; -GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform; -GLEW_FUN_EXPORT PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders; -GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation; -GLEW_FUN_EXPORT PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVPROC __glewGetProgramiv; -GLEW_FUN_EXPORT PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog; -GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEPROC __glewGetShaderSource; -GLEW_FUN_EXPORT PFNGLGETSHADERIVPROC __glewGetShaderiv; -GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation; -GLEW_FUN_EXPORT PFNGLGETUNIFORMFVPROC __glewGetUniformfv; -GLEW_FUN_EXPORT PFNGLGETUNIFORMIVPROC __glewGetUniformiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv; -GLEW_FUN_EXPORT PFNGLISPROGRAMPROC __glewIsProgram; -GLEW_FUN_EXPORT PFNGLISSHADERPROC __glewIsShader; -GLEW_FUN_EXPORT PFNGLLINKPROGRAMPROC __glewLinkProgram; -GLEW_FUN_EXPORT PFNGLSHADERSOURCEPROC __glewShaderSource; -GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate; -GLEW_FUN_EXPORT PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate; -GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate; -GLEW_FUN_EXPORT PFNGLUNIFORM1FPROC __glewUniform1f; -GLEW_FUN_EXPORT PFNGLUNIFORM1FVPROC __glewUniform1fv; -GLEW_FUN_EXPORT PFNGLUNIFORM1IPROC __glewUniform1i; -GLEW_FUN_EXPORT PFNGLUNIFORM1IVPROC __glewUniform1iv; -GLEW_FUN_EXPORT PFNGLUNIFORM2FPROC __glewUniform2f; -GLEW_FUN_EXPORT PFNGLUNIFORM2FVPROC __glewUniform2fv; -GLEW_FUN_EXPORT PFNGLUNIFORM2IPROC __glewUniform2i; -GLEW_FUN_EXPORT PFNGLUNIFORM2IVPROC __glewUniform2iv; -GLEW_FUN_EXPORT PFNGLUNIFORM3FPROC __glewUniform3f; -GLEW_FUN_EXPORT PFNGLUNIFORM3FVPROC __glewUniform3fv; -GLEW_FUN_EXPORT PFNGLUNIFORM3IPROC __glewUniform3i; -GLEW_FUN_EXPORT PFNGLUNIFORM3IVPROC __glewUniform3iv; -GLEW_FUN_EXPORT PFNGLUNIFORM4FPROC __glewUniform4f; -GLEW_FUN_EXPORT PFNGLUNIFORM4FVPROC __glewUniform4fv; -GLEW_FUN_EXPORT PFNGLUNIFORM4IPROC __glewUniform4i; -GLEW_FUN_EXPORT PFNGLUNIFORM4IVPROC __glewUniform4iv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMPROC __glewUseProgram; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPROC __glewValidateProgram; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer; - -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv; - -GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender; -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback; -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation; -GLEW_FUN_EXPORT PFNGLCLAMPCOLORPROC __glewClampColor; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERFIPROC __glewClearBufferfi; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERFVPROC __glewClearBufferfv; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERIVPROC __glewClearBufferiv; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv; -GLEW_FUN_EXPORT PFNGLCOLORMASKIPROC __glewColorMaski; -GLEW_FUN_EXPORT PFNGLDISABLEIPROC __glewDisablei; -GLEW_FUN_EXPORT PFNGLENABLEIPROC __glewEnablei; -GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback; -GLEW_FUN_EXPORT PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v; -GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation; -GLEW_FUN_EXPORT PFNGLGETSTRINGIPROC __glewGetStringi; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv; -GLEW_FUN_EXPORT PFNGLISENABLEDIPROC __glewIsEnabledi; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIPROC __glewUniform1ui; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIVPROC __glewUniform1uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIPROC __glewUniform2ui; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIVPROC __glewUniform2uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIPROC __glewUniform3ui; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIVPROC __glewUniform3uiv; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIPROC __glewUniform4ui; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIVPROC __glewUniform4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced; -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex; -GLEW_FUN_EXPORT PFNGLTEXBUFFERPROC __glewTexBuffer; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v; -GLEW_FUN_EXPORT PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v; - -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIPROC __glewBlendEquationi; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei; -GLEW_FUN_EXPORT PFNGLBLENDFUNCIPROC __glewBlendFunci; -GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading; - -GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; - -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD; -GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC __glewMultiDrawElementsIndirectAMD; - -GLEW_FUN_EXPORT PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD; -GLEW_FUN_EXPORT PFNGLGENNAMESAMDPROC __glewGenNamesAMD; -GLEW_FUN_EXPORT PFNGLISNAMEAMDPROC __glewIsNameAMD; - -GLEW_FUN_EXPORT PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD; -GLEW_FUN_EXPORT PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD; -GLEW_FUN_EXPORT PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD; -GLEW_FUN_EXPORT PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD; -GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD; -GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD; - -GLEW_FUN_EXPORT PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD; - -GLEW_FUN_EXPORT PFNGLSTENCILOPVALUEAMDPROC __glewStencilOpValueAMD; - -GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD; -GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE; -GLEW_FUN_EXPORT PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE; - -GLEW_FUN_EXPORT PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE; -GLEW_FUN_EXPORT PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE; -GLEW_FUN_EXPORT PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE; -GLEW_FUN_EXPORT PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE; -GLEW_FUN_EXPORT PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE; -GLEW_FUN_EXPORT PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE; -GLEW_FUN_EXPORT PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE; -GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; - -GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; -GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; -GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; - -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; -GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE; -GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE; -GLEW_FUN_EXPORT PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE; - -GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE; - -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE; -GLEW_FUN_EXPORT PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE; -GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHFPROC __glewClearDepthf; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEFPROC __glewDepthRangef; -GLEW_FUN_EXPORT PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat; -GLEW_FUN_EXPORT PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler; -GLEW_FUN_EXPORT PFNGLSHADERBINARYPROC __glewShaderBinary; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC __glewDrawArraysInstancedBaseInstance; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC __glewDrawElementsInstancedBaseInstance; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC __glewDrawElementsInstancedBaseVertexBaseInstance; - -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed; -GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; - -GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; - -GLEW_FUN_EXPORT PFNGLCLEARBUFFERDATAPROC __glewClearBufferData; -GLEW_FUN_EXPORT PFNGLCLEARBUFFERSUBDATAPROC __glewClearBufferSubData; -GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERDATAEXTPROC __glewClearNamedBufferDataEXT; -GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC __glewClearNamedBufferSubDataEXT; - -GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB; - -GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEPROC __glewDispatchCompute; -GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEINDIRECTPROC __glewDispatchComputeIndirect; - -GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData; - -GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAPROC __glewCopyImageSubData; - -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB; -GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB; - -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB; -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB; -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB; -GLEW_FUN_EXPORT PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIPROC __glewFramebufferParameteri; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVPROC __glewGetFramebufferParameteriv; -GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC __glewGetNamedFramebufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC __glewNamedFramebufferParameteriEXT; - -GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer; -GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer; -GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer; -GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus; -GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers; -GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer; -GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers; -GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers; -GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv; -GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv; -GLEW_FUN_EXPORT PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer; -GLEW_FUN_EXPORT PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB; - -GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary; -GLEW_FUN_EXPORT PFNGLPROGRAMBINARYPROC __glewProgramBinary; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv; -GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d; -GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv; -GLEW_FUN_EXPORT PFNGLUNIFORM2DPROC __glewUniform2d; -GLEW_FUN_EXPORT PFNGLUNIFORM2DVPROC __glewUniform2dv; -GLEW_FUN_EXPORT PFNGLUNIFORM3DPROC __glewUniform3d; -GLEW_FUN_EXPORT PFNGLUNIFORM3DVPROC __glewUniform3dv; -GLEW_FUN_EXPORT PFNGLUNIFORM4DPROC __glewUniform4d; -GLEW_FUN_EXPORT PFNGLUNIFORM4DVPROC __glewUniform4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv; - -GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv; -GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable; -GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPROC __glewGetColorTable; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPROC __glewGetHistogram; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv; -GLEW_FUN_EXPORT PFNGLGETMINMAXPROC __glewGetMinmax; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv; -GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter; -GLEW_FUN_EXPORT PFNGLHISTOGRAMPROC __glewHistogram; -GLEW_FUN_EXPORT PFNGLMINMAXPROC __glewMinmax; -GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram; -GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax; -GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB; - -GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATIVPROC __glewGetInternalformativ; - -GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATI64VPROC __glewGetInternalformati64v; - -GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERDATAPROC __glewInvalidateBufferData; -GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERSUBDATAPROC __glewInvalidateBufferSubData; -GLEW_FUN_EXPORT PFNGLINVALIDATEFRAMEBUFFERPROC __glewInvalidateFramebuffer; -GLEW_FUN_EXPORT PFNGLINVALIDATESUBFRAMEBUFFERPROC __glewInvalidateSubFramebuffer; -GLEW_FUN_EXPORT PFNGLINVALIDATETEXIMAGEPROC __glewInvalidateTexImage; -GLEW_FUN_EXPORT PFNGLINVALIDATETEXSUBIMAGEPROC __glewInvalidateTexSubImage; - -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange; -GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange; - -GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB; -GLEW_FUN_EXPORT PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTPROC __glewMultiDrawArraysIndirect; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTPROC __glewMultiDrawElementsIndirect; - -GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB; - -GLEW_FUN_EXPORT PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB; -GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYARBPROC __glewBeginQueryARB; -GLEW_FUN_EXPORT PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB; -GLEW_FUN_EXPORT PFNGLENDQUERYARBPROC __glewEndQueryARB; -GLEW_FUN_EXPORT PFNGLGENQUERIESARBPROC __glewGenQueriesARB; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB; -GLEW_FUN_EXPORT PFNGLGETQUERYIVARBPROC __glewGetQueryivARB; -GLEW_FUN_EXPORT PFNGLISQUERYARBPROC __glewIsQueryARB; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; - -GLEW_FUN_EXPORT PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC __glewGetProgramResourceLocationIndex; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCENAMEPROC __glewGetProgramResourceName; -GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEIVPROC __glewGetProgramResourceiv; - -GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex; - -GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSARBPROC __glewGetGraphicsResetStatusARB; -GLEW_FUN_EXPORT PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB; -GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB; -GLEW_FUN_EXPORT PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB; -GLEW_FUN_EXPORT PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB; -GLEW_FUN_EXPORT PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB; -GLEW_FUN_EXPORT PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB; -GLEW_FUN_EXPORT PFNGLGETNMAPIVARBPROC __glewGetnMapivARB; -GLEW_FUN_EXPORT PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB; -GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB; -GLEW_FUN_EXPORT PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB; -GLEW_FUN_EXPORT PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB; -GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB; -GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB; -GLEW_FUN_EXPORT PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB; - -GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB; - -GLEW_FUN_EXPORT PFNGLBINDSAMPLERPROC __glewBindSampler; -GLEW_FUN_EXPORT PFNGLDELETESAMPLERSPROC __glewDeleteSamplers; -GLEW_FUN_EXPORT PFNGLGENSAMPLERSPROC __glewGenSamplers; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv; -GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv; -GLEW_FUN_EXPORT PFNGLISSAMPLERPROC __glewIsSampler; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri; -GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv; - -GLEW_FUN_EXPORT PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram; -GLEW_FUN_EXPORT PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines; -GLEW_FUN_EXPORT PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv; -GLEW_FUN_EXPORT PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline; - -GLEW_FUN_EXPORT PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC __glewGetActiveAtomicCounterBufferiv; - -GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREPROC __glewBindImageTexture; -GLEW_FUN_EXPORT PFNGLMEMORYBARRIERPROC __glewMemoryBarrier; - -GLEW_FUN_EXPORT PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB; -GLEW_FUN_EXPORT PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB; -GLEW_FUN_EXPORT PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB; -GLEW_FUN_EXPORT PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB; -GLEW_FUN_EXPORT PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB; -GLEW_FUN_EXPORT PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB; -GLEW_FUN_EXPORT PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB; -GLEW_FUN_EXPORT PFNGLGETHANDLEARBPROC __glewGetHandleARB; -GLEW_FUN_EXPORT PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB; -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB; -GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB; -GLEW_FUN_EXPORT PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB; -GLEW_FUN_EXPORT PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB; -GLEW_FUN_EXPORT PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1FARBPROC __glewUniform1fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1IARBPROC __glewUniform1iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2FARBPROC __glewUniform2fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2IARBPROC __glewUniform2iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3FARBPROC __glewUniform3fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3IARBPROC __glewUniform3iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4FARBPROC __glewUniform4fARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4IARBPROC __glewUniform4iARB; -GLEW_FUN_EXPORT PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB; -GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB; -GLEW_FUN_EXPORT PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB; -GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB; - -GLEW_FUN_EXPORT PFNGLSHADERSTORAGEBLOCKBINDINGPROC __glewShaderStorageBlockBinding; - -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName; -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName; -GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv; -GLEW_FUN_EXPORT PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex; -GLEW_FUN_EXPORT PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation; -GLEW_FUN_EXPORT PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv; -GLEW_FUN_EXPORT PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv; - -GLEW_FUN_EXPORT PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB; -GLEW_FUN_EXPORT PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB; -GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB; -GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB; -GLEW_FUN_EXPORT PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB; -GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; - -GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; -GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync; -GLEW_FUN_EXPORT PFNGLFENCESYNCPROC __glewFenceSync; -GLEW_FUN_EXPORT PFNGLGETINTEGER64VPROC __glewGetInteger64v; -GLEW_FUN_EXPORT PFNGLGETSYNCIVPROC __glewGetSynciv; -GLEW_FUN_EXPORT PFNGLISSYNCPROC __glewIsSync; -GLEW_FUN_EXPORT PFNGLWAITSYNCPROC __glewWaitSync; - -GLEW_FUN_EXPORT PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv; -GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIPROC __glewPatchParameteri; - -GLEW_FUN_EXPORT PFNGLTEXBUFFERARBPROC __glewTexBufferARB; - -GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEPROC __glewTexBufferRange; -GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERRANGEEXTPROC __glewTextureBufferRangeEXT; - -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB; - -GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv; -GLEW_FUN_EXPORT PFNGLSAMPLEMASKIPROC __glewSampleMaski; -GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; - -GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DPROC __glewTexStorage1D; -GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DPROC __glewTexStorage2D; -GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DPROC __glewTexStorage3D; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT; - -GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample; -GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC __glewTextureStorage2DMultisampleEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC __glewTextureStorage3DMultisampleEXT; - -GLEW_FUN_EXPORT PFNGLTEXTUREVIEWPROC __glewTextureView; - -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v; -GLEW_FUN_EXPORT PFNGLQUERYCOUNTERPROC __glewQueryCounter; - -GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback; -GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback; -GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks; -GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback; -GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback; -GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback; - -GLEW_FUN_EXPORT PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream; -GLEW_FUN_EXPORT PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed; -GLEW_FUN_EXPORT PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv; - -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC __glewDrawTransformFeedbackInstanced; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC __glewDrawTransformFeedbackStreamInstanced; - -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB; -GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB; -GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB; - -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEPROC __glewBindBufferBase; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName; -GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv; -GLEW_FUN_EXPORT PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v; -GLEW_FUN_EXPORT PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex; -GLEW_FUN_EXPORT PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices; -GLEW_FUN_EXPORT PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding; - -GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays; -GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays; -GLEW_FUN_EXPORT PFNGLISVERTEXARRAYPROC __glewIsVertexArray; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer; - -GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERPROC __glewBindVertexBuffer; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBBINDINGPROC __glewVertexAttribBinding; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATPROC __glewVertexAttribFormat; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATPROC __glewVertexAttribIFormat; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATPROC __glewVertexAttribLFormat; -GLEW_FUN_EXPORT PFNGLVERTEXBINDINGDIVISORPROC __glewVertexBindingDivisor; - -GLEW_FUN_EXPORT PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB; -GLEW_FUN_EXPORT PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB; -GLEW_FUN_EXPORT PFNGLWEIGHTBVARBPROC __glewWeightbvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTDVARBPROC __glewWeightdvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTFVARBPROC __glewWeightfvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTIVARBPROC __glewWeightivARB; -GLEW_FUN_EXPORT PFNGLWEIGHTSVARBPROC __glewWeightsvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUBVARBPROC __glewWeightubvARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUIVARBPROC __glewWeightuivARB; -GLEW_FUN_EXPORT PFNGLWEIGHTUSVARBPROC __glewWeightusvARB; - -GLEW_FUN_EXPORT PFNGLBINDBUFFERARBPROC __glewBindBufferARB; -GLEW_FUN_EXPORT PFNGLBUFFERDATAARBPROC __glewBufferDataARB; -GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB; -GLEW_FUN_EXPORT PFNGLGENBUFFERSARBPROC __glewGenBuffersARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB; -GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB; -GLEW_FUN_EXPORT PFNGLISBUFFERARBPROC __glewIsBufferARB; -GLEW_FUN_EXPORT PFNGLMAPBUFFERARBPROC __glewMapBufferARB; -GLEW_FUN_EXPORT PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB; - -GLEW_FUN_EXPORT PFNGLBINDPROGRAMARBPROC __glewBindProgramARB; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB; -GLEW_FUN_EXPORT PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB; -GLEW_FUN_EXPORT PFNGLISPROGRAMARBPROC __glewIsProgramARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB; -GLEW_FUN_EXPORT PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB; - -GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB; -GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB; -GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB; - -GLEW_FUN_EXPORT PFNGLCOLORP3UIPROC __glewColorP3ui; -GLEW_FUN_EXPORT PFNGLCOLORP3UIVPROC __glewColorP3uiv; -GLEW_FUN_EXPORT PFNGLCOLORP4UIPROC __glewColorP4ui; -GLEW_FUN_EXPORT PFNGLCOLORP4UIVPROC __glewColorP4uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv; -GLEW_FUN_EXPORT PFNGLNORMALP3UIPROC __glewNormalP3ui; -GLEW_FUN_EXPORT PFNGLNORMALP3UIVPROC __glewNormalP3uiv; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv; -GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui; -GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP2UIPROC __glewVertexP2ui; -GLEW_FUN_EXPORT PFNGLVERTEXP2UIVPROC __glewVertexP2uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP3UIPROC __glewVertexP3ui; -GLEW_FUN_EXPORT PFNGLVERTEXP3UIVPROC __glewVertexP3uiv; -GLEW_FUN_EXPORT PFNGLVERTEXP4UIPROC __glewVertexP4ui; -GLEW_FUN_EXPORT PFNGLVERTEXP4UIVPROC __glewVertexP4uiv; - -GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed; -GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v; -GLEW_FUN_EXPORT PFNGLGETFLOATI_VPROC __glewGetFloati_v; -GLEW_FUN_EXPORT PFNGLSCISSORARRAYVPROC __glewScissorArrayv; -GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDPROC __glewScissorIndexed; -GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv; -GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv; -GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf; -GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv; - -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB; - -GLEW_FUN_EXPORT PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI; - -GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI; -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI; -GLEW_FUN_EXPORT PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI; - -GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI; -GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI; -GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI; -GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI; - -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI; -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI; -GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI; -GLEW_FUN_EXPORT PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI; -GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI; -GLEW_FUN_EXPORT PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI; -GLEW_FUN_EXPORT PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI; -GLEW_FUN_EXPORT PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI; -GLEW_FUN_EXPORT PFNGLSAMPLEMAPATIPROC __glewSampleMapATI; -GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI; - -GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI; -GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI; - -GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI; -GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI; - -GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI; -GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI; - -GLEW_FUN_EXPORT PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI; -GLEW_FUN_EXPORT PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI; -GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI; -GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI; -GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI; -GLEW_FUN_EXPORT PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI; -GLEW_FUN_EXPORT PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI; -GLEW_FUN_EXPORT PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI; - -GLEW_FUN_EXPORT PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI; -GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI; -GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI; -GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DATIPROC __glewVertexStream1dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DVATIPROC __glewVertexStream1dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FATIPROC __glewVertexStream1fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FVATIPROC __glewVertexStream1fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IATIPROC __glewVertexStream1iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IVATIPROC __glewVertexStream1ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SATIPROC __glewVertexStream1sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SVATIPROC __glewVertexStream1svATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI; -GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT; -GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT; -GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT; - -GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT; - -GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT; - -GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT; - -GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT; -GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT; - -GLEW_FUN_EXPORT PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT; -GLEW_FUN_EXPORT PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT; - -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT; -GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT; -GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT; - -GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT; -GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT; - -GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT; - -GLEW_FUN_EXPORT PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT; -GLEW_FUN_EXPORT PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT; - -GLEW_FUN_EXPORT PFNGLINSERTEVENTMARKEREXTPROC __glewInsertEventMarkerEXT; -GLEW_FUN_EXPORT PFNGLPOPGROUPMARKEREXTPROC __glewPopGroupMarkerEXT; -GLEW_FUN_EXPORT PFNGLPUSHGROUPMARKEREXTPROC __glewPushGroupMarkerEXT; - -GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT; - -GLEW_FUN_EXPORT PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT; -GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT; -GLEW_FUN_EXPORT PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT; -GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT; -GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT; -GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT; -GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT; -GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT; -GLEW_FUN_EXPORT PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT; -GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT; -GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT; -GLEW_FUN_EXPORT PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT; -GLEW_FUN_EXPORT PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT; -GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT; -GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT; -GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT; -GLEW_FUN_EXPORT PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT; -GLEW_FUN_EXPORT PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT; -GLEW_FUN_EXPORT PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT; -GLEW_FUN_EXPORT PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT; -GLEW_FUN_EXPORT PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT; -GLEW_FUN_EXPORT PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT; -GLEW_FUN_EXPORT PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT; -GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT; -GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT; -GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT; -GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT; -GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DEXTPROC __glewProgramUniform1dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVEXTPROC __glewProgramUniform1dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DEXTPROC __glewProgramUniform2dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVEXTPROC __glewProgramUniform2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DEXTPROC __glewProgramUniform3dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVEXTPROC __glewProgramUniform3dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DEXTPROC __glewProgramUniform4dEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVEXTPROC __glewProgramUniform4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC __glewProgramUniformMatrix2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC __glewProgramUniformMatrix2x3dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC __glewProgramUniformMatrix2x4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC __glewProgramUniformMatrix3dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC __glewProgramUniformMatrix3x2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC __glewProgramUniformMatrix3x4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC __glewProgramUniformMatrix4dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC __glewProgramUniformMatrix4x2dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC __glewProgramUniformMatrix4x3dvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT; -GLEW_FUN_EXPORT PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT; -GLEW_FUN_EXPORT PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT; -GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; - -GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; -GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; -GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; -GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT; -GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT; -GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT; - -GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT; -GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT; - -GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT; - -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT; -GLEW_FUN_EXPORT PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT; - -GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT; -GLEW_FUN_EXPORT PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT; - -GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT; - -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT; - -GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT; -GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT; -GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT; -GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT; -GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT; -GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT; -GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT; -GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT; -GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT; -GLEW_FUN_EXPORT PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT; -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT; - -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT; - -GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT; -GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT; -GLEW_FUN_EXPORT PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT; - -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT; -GLEW_FUN_EXPORT PFNGLHISTOGRAMEXTPROC __glewHistogramEXT; -GLEW_FUN_EXPORT PFNGLMINMAXEXTPROC __glewMinmaxEXT; -GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT; -GLEW_FUN_EXPORT PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT; - -GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT; - -GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT; - -GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT; -GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT; -GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT; - -GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT; -GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT; - -GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT; -GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT; - -GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT; - -GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT; -GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT; -GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT; - -GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; - -GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; - -GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; -GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT; - -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; - -GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; -GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; -GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; - -GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; -GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; - -GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; - -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; - -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; - -GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; - -GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; -GLEW_FUN_EXPORT PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT; -GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT; - -GLEW_FUN_EXPORT PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT; -GLEW_FUN_EXPORT PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT; -GLEW_FUN_EXPORT PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT; -GLEW_FUN_EXPORT PFNGLISTEXTUREEXTPROC __glewIsTextureEXT; -GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT; - -GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; - -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; -GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; - -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT; - -GLEW_FUN_EXPORT PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT; -GLEW_FUN_EXPORT PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT; -GLEW_FUN_EXPORT PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT; -GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT; -GLEW_FUN_EXPORT PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT; -GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT; - -GLEW_FUN_EXPORT PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT; -GLEW_FUN_EXPORT PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT; -GLEW_FUN_EXPORT PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT; -GLEW_FUN_EXPORT PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT; -GLEW_FUN_EXPORT PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT; -GLEW_FUN_EXPORT PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT; -GLEW_FUN_EXPORT PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT; -GLEW_FUN_EXPORT PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT; -GLEW_FUN_EXPORT PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT; -GLEW_FUN_EXPORT PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT; -GLEW_FUN_EXPORT PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT; -GLEW_FUN_EXPORT PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT; -GLEW_FUN_EXPORT PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT; -GLEW_FUN_EXPORT PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT; -GLEW_FUN_EXPORT PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT; -GLEW_FUN_EXPORT PFNGLSWIZZLEEXTPROC __glewSwizzleEXT; -GLEW_FUN_EXPORT PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT; -GLEW_FUN_EXPORT PFNGLVARIANTBVEXTPROC __glewVariantbvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTDVEXTPROC __glewVariantdvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTFVEXTPROC __glewVariantfvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTIVEXTPROC __glewVariantivEXT; -GLEW_FUN_EXPORT PFNGLVARIANTSVEXTPROC __glewVariantsvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT; -GLEW_FUN_EXPORT PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT; -GLEW_FUN_EXPORT PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT; - -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; - -GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT; - -GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; - -GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY; - -GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP; -GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP; -GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP; - -GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM; -GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM; - -GLEW_FUN_EXPORT PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM; -GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM; -GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM; -GLEW_FUN_EXPORT PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM; -GLEW_FUN_EXPORT PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM; - -GLEW_FUN_EXPORT PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL; -GLEW_FUN_EXPORT PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL; -GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL; -GLEW_FUN_EXPORT PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL; - -GLEW_FUN_EXPORT PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL; -GLEW_FUN_EXPORT PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL; - -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKPROC __glewDebugMessageCallback; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLPROC __glewDebugMessageControl; -GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTPROC __glewDebugMessageInsert; -GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGPROC __glewGetDebugMessageLog; -GLEW_FUN_EXPORT PFNGLGETOBJECTLABELPROC __glewGetObjectLabel; -GLEW_FUN_EXPORT PFNGLGETOBJECTPTRLABELPROC __glewGetObjectPtrLabel; -GLEW_FUN_EXPORT PFNGLGETPOINTERVPROC __glewGetPointerv; -GLEW_FUN_EXPORT PFNGLOBJECTLABELPROC __glewObjectLabel; -GLEW_FUN_EXPORT PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel; -GLEW_FUN_EXPORT PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup; - -GLEW_FUN_EXPORT PFNGLBUFFERREGIONENABLEDPROC __glewBufferRegionEnabled; -GLEW_FUN_EXPORT PFNGLDELETEBUFFERREGIONPROC __glewDeleteBufferRegion; -GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion; -GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion; -GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion; - -GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; - -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA; -GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; - -GLEW_FUN_EXPORT PFNGLGETIMAGEHANDLENVPROC __glewGetImageHandleNV; -GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLENVPROC __glewGetTextureHandleNV; -GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLENVPROC __glewGetTextureSamplerHandleNV; -GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTNVPROC __glewIsImageHandleResidentNV; -GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTNVPROC __glewIsTextureHandleResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC __glewMakeImageHandleNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTNVPROC __glewMakeImageHandleResidentNV; -GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC __glewMakeTextureHandleNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTNVPROC __glewMakeTextureHandleResidentNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC __glewProgramUniformHandleui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC __glewProgramUniformHandleui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64NVPROC __glewUniformHandleui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV; - -GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; -GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; - -GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; -GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; - -GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV; -GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV; -GLEW_FUN_EXPORT PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV; -GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV; -GLEW_FUN_EXPORT PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV; -GLEW_FUN_EXPORT PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV; -GLEW_FUN_EXPORT PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV; - -GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV; -GLEW_FUN_EXPORT PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV; -GLEW_FUN_EXPORT PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV; - -GLEW_FUN_EXPORT PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV; -GLEW_FUN_EXPORT PFNGLFINISHFENCENVPROC __glewFinishFenceNV; -GLEW_FUN_EXPORT PFNGLGENFENCESNVPROC __glewGenFencesNV; -GLEW_FUN_EXPORT PFNGLGETFENCEIVNVPROC __glewGetFenceivNV; -GLEW_FUN_EXPORT PFNGLISFENCENVPROC __glewIsFenceNV; -GLEW_FUN_EXPORT PFNGLSETFENCENVPROC __glewSetFenceNV; -GLEW_FUN_EXPORT PFNGLTESTFENCENVPROC __glewTestFenceNV; - -GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV; -GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV; - -GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV; - -GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV; -GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV; - -GLEW_FUN_EXPORT PFNGLCOLOR3HNVPROC __glewColor3hNV; -GLEW_FUN_EXPORT PFNGLCOLOR3HVNVPROC __glewColor3hvNV; -GLEW_FUN_EXPORT PFNGLCOLOR4HNVPROC __glewColor4hNV; -GLEW_FUN_EXPORT PFNGLCOLOR4HVNVPROC __glewColor4hvNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDHNVPROC __glewFogCoordhNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV; -GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV; -GLEW_FUN_EXPORT PFNGLNORMAL3HNVPROC __glewNormal3hNV; -GLEW_FUN_EXPORT PFNGLNORMAL3HVNVPROC __glewNormal3hvNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV; -GLEW_FUN_EXPORT PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX2HNVPROC __glewVertex2hNV; -GLEW_FUN_EXPORT PFNGLVERTEX2HVNVPROC __glewVertex2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX3HNVPROC __glewVertex3hNV; -GLEW_FUN_EXPORT PFNGLVERTEX3HVNVPROC __glewVertex3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEX4HNVPROC __glewVertex4hNV; -GLEW_FUN_EXPORT PFNGLVERTEX4HVNVPROC __glewVertex4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV; -GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV; - -GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV; -GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV; -GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV; -GLEW_FUN_EXPORT PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV; -GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV; -GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV; -GLEW_FUN_EXPORT PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV; - -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV; - -GLEW_FUN_EXPORT PFNGLCOPYPATHNVPROC __glewCopyPathNV; -GLEW_FUN_EXPORT PFNGLCOVERFILLPATHINSTANCEDNVPROC __glewCoverFillPathInstancedNV; -GLEW_FUN_EXPORT PFNGLCOVERFILLPATHNVPROC __glewCoverFillPathNV; -GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHINSTANCEDNVPROC __glewCoverStrokePathInstancedNV; -GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHNVPROC __glewCoverStrokePathNV; -GLEW_FUN_EXPORT PFNGLDELETEPATHSNVPROC __glewDeletePathsNV; -GLEW_FUN_EXPORT PFNGLGENPATHSNVPROC __glewGenPathsNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENFVNVPROC __glewGetPathColorGenfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENIVNVPROC __glewGetPathColorGenivNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOMMANDSNVPROC __glewGetPathCommandsNV; -GLEW_FUN_EXPORT PFNGLGETPATHCOORDSNVPROC __glewGetPathCoordsNV; -GLEW_FUN_EXPORT PFNGLGETPATHDASHARRAYNVPROC __glewGetPathDashArrayNV; -GLEW_FUN_EXPORT PFNGLGETPATHLENGTHNVPROC __glewGetPathLengthNV; -GLEW_FUN_EXPORT PFNGLGETPATHMETRICRANGENVPROC __glewGetPathMetricRangeNV; -GLEW_FUN_EXPORT PFNGLGETPATHMETRICSNVPROC __glewGetPathMetricsNV; -GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERFVNVPROC __glewGetPathParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERIVNVPROC __glewGetPathParameterivNV; -GLEW_FUN_EXPORT PFNGLGETPATHSPACINGNVPROC __glewGetPathSpacingNV; -GLEW_FUN_EXPORT PFNGLGETPATHTEXGENFVNVPROC __glewGetPathTexGenfvNV; -GLEW_FUN_EXPORT PFNGLGETPATHTEXGENIVNVPROC __glewGetPathTexGenivNV; -GLEW_FUN_EXPORT PFNGLINTERPOLATEPATHSNVPROC __glewInterpolatePathsNV; -GLEW_FUN_EXPORT PFNGLISPATHNVPROC __glewIsPathNV; -GLEW_FUN_EXPORT PFNGLISPOINTINFILLPATHNVPROC __glewIsPointInFillPathNV; -GLEW_FUN_EXPORT PFNGLISPOINTINSTROKEPATHNVPROC __glewIsPointInStrokePathNV; -GLEW_FUN_EXPORT PFNGLPATHCOLORGENNVPROC __glewPathColorGenNV; -GLEW_FUN_EXPORT PFNGLPATHCOMMANDSNVPROC __glewPathCommandsNV; -GLEW_FUN_EXPORT PFNGLPATHCOORDSNVPROC __glewPathCoordsNV; -GLEW_FUN_EXPORT PFNGLPATHCOVERDEPTHFUNCNVPROC __glewPathCoverDepthFuncNV; -GLEW_FUN_EXPORT PFNGLPATHDASHARRAYNVPROC __glewPathDashArrayNV; -GLEW_FUN_EXPORT PFNGLPATHFOGGENNVPROC __glewPathFogGenNV; -GLEW_FUN_EXPORT PFNGLPATHGLYPHRANGENVPROC __glewPathGlyphRangeNV; -GLEW_FUN_EXPORT PFNGLPATHGLYPHSNVPROC __glewPathGlyphsNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERFNVPROC __glewPathParameterfNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERFVNVPROC __glewPathParameterfvNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERINVPROC __glewPathParameteriNV; -GLEW_FUN_EXPORT PFNGLPATHPARAMETERIVNVPROC __glewPathParameterivNV; -GLEW_FUN_EXPORT PFNGLPATHSTENCILDEPTHOFFSETNVPROC __glewPathStencilDepthOffsetNV; -GLEW_FUN_EXPORT PFNGLPATHSTENCILFUNCNVPROC __glewPathStencilFuncNV; -GLEW_FUN_EXPORT PFNGLPATHSTRINGNVPROC __glewPathStringNV; -GLEW_FUN_EXPORT PFNGLPATHSUBCOMMANDSNVPROC __glewPathSubCommandsNV; -GLEW_FUN_EXPORT PFNGLPATHSUBCOORDSNVPROC __glewPathSubCoordsNV; -GLEW_FUN_EXPORT PFNGLPATHTEXGENNVPROC __glewPathTexGenNV; -GLEW_FUN_EXPORT PFNGLPOINTALONGPATHNVPROC __glewPointAlongPathNV; -GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHINSTANCEDNVPROC __glewStencilFillPathInstancedNV; -GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHNVPROC __glewStencilFillPathNV; -GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC __glewStencilStrokePathInstancedNV; -GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHNVPROC __glewStencilStrokePathNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMPATHNVPROC __glewTransformPathNV; -GLEW_FUN_EXPORT PFNGLWEIGHTPATHSNVPROC __glewWeightPathsNV; - -GLEW_FUN_EXPORT PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV; -GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; - -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; -GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; - -GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV; -GLEW_FUN_EXPORT PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV; -GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; - -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; -GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; - -GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV; -GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV; -GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV; -GLEW_FUN_EXPORT PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV; -GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV; - -GLEW_FUN_EXPORT PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV; - -GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; -GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; -GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV; -GLEW_FUN_EXPORT PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV; -GLEW_FUN_EXPORT PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV; -GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV; -GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV; -GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; -GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; -GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; - -GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV; -GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV; - -GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV; -GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV; -GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV; -GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV; -GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV; -GLEW_FUN_EXPORT PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV; -GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV; - -GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV; -GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV; -GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV; -GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV; - -GLEW_FUN_EXPORT PFNGLVDPAUFININVPROC __glewVDPAUFiniNV; -GLEW_FUN_EXPORT PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV; -GLEW_FUN_EXPORT PFNGLVDPAUINITNVPROC __glewVDPAUInitNV; -GLEW_FUN_EXPORT PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV; -GLEW_FUN_EXPORT PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV; -GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; -GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; -GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; - -GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; -GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; - -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV; - -GLEW_FUN_EXPORT PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV; -GLEW_FUN_EXPORT PFNGLCOLORFORMATNVPROC __glewColorFormatNV; -GLEW_FUN_EXPORT PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV; -GLEW_FUN_EXPORT PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV; -GLEW_FUN_EXPORT PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV; -GLEW_FUN_EXPORT PFNGLINDEXFORMATNVPROC __glewIndexFormatNV; -GLEW_FUN_EXPORT PFNGLNORMALFORMATNVPROC __glewNormalFormatNV; -GLEW_FUN_EXPORT PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV; -GLEW_FUN_EXPORT PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV; -GLEW_FUN_EXPORT PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV; - -GLEW_FUN_EXPORT PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV; -GLEW_FUN_EXPORT PFNGLBINDPROGRAMNVPROC __glewBindProgramNV; -GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV; -GLEW_FUN_EXPORT PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV; -GLEW_FUN_EXPORT PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV; -GLEW_FUN_EXPORT PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV; -GLEW_FUN_EXPORT PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV; -GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV; -GLEW_FUN_EXPORT PFNGLISPROGRAMNVPROC __glewIsProgramNV; -GLEW_FUN_EXPORT PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV; -GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV; -GLEW_FUN_EXPORT PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV; -GLEW_FUN_EXPORT PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV; -GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV; - -GLEW_FUN_EXPORT PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV; -GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV; -GLEW_FUN_EXPORT PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV; -GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV; -GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV; - -GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; -GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; -GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; -GLEW_FUN_EXPORT PFNGLFRUSTUMFOESPROC __glewFrustumfOES; -GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES; -GLEW_FUN_EXPORT PFNGLORTHOFOESPROC __glewOrthofOES; - -GLEW_FUN_EXPORT PFNGLERRORSTRINGREGALPROC __glewErrorStringREGAL; - -GLEW_FUN_EXPORT PFNGLGETEXTENSIONREGALPROC __glewGetExtensionREGAL; -GLEW_FUN_EXPORT PFNGLISSUPPORTEDREGALPROC __glewIsSupportedREGAL; - -GLEW_FUN_EXPORT PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS; -GLEW_FUN_EXPORT PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS; - -GLEW_FUN_EXPORT PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS; -GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS; - -GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS; -GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS; - -GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS; -GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS; - -GLEW_FUN_EXPORT PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS; -GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS; - -GLEW_FUN_EXPORT PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS; -GLEW_FUN_EXPORT PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS; - -GLEW_FUN_EXPORT PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX; -GLEW_FUN_EXPORT PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX; -GLEW_FUN_EXPORT PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX; -GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX; -GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX; -GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX; - -GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX; - -GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX; - -GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX; -GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX; -GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX; - -GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX; - -GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX; - -GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX; - -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX; -GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX; - -GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX; - -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI; -GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI; -GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI; -GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI; -GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI; - -GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX; - -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN; -GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN; - -GLEW_FUN_EXPORT PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN; - -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN; - -GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN; -GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN; -GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN; + GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D; + GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements; + GLEW_FUN_EXPORT PFNGLTEXIMAGE3DPROC __glewTexImage3D; + GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D; + + GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture; + GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D; + GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage; + GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd; + GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf; + GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd; + GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv; + GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage; + + GLEW_FUN_EXPORT PFNGLBLENDCOLORPROC __glewBlendColor; + GLEW_FUN_EXPORT PFNGLBLENDEQUATIONPROC __glewBlendEquation; + GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate; + GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer; + GLEW_FUN_EXPORT PFNGLFOGCOORDDPROC __glewFogCoordd; + GLEW_FUN_EXPORT PFNGLFOGCOORDDVPROC __glewFogCoorddv; + GLEW_FUN_EXPORT PFNGLFOGCOORDFPROC __glewFogCoordf; + GLEW_FUN_EXPORT PFNGLFOGCOORDFVPROC __glewFogCoordfv; + GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays; + GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements; + GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFPROC __glewPointParameterf; + GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv; + GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIPROC __glewPointParameteri; + GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2DPROC __glewWindowPos2d; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2FPROC __glewWindowPos2f; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2IPROC __glewWindowPos2i; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2SPROC __glewWindowPos2s; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3DPROC __glewWindowPos3d; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3FPROC __glewWindowPos3f; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3IPROC __glewWindowPos3i; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3SPROC __glewWindowPos3s; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv; + + GLEW_FUN_EXPORT PFNGLBEGINQUERYPROC __glewBeginQuery; + GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer; + GLEW_FUN_EXPORT PFNGLBUFFERDATAPROC __glewBufferData; + GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAPROC __glewBufferSubData; + GLEW_FUN_EXPORT PFNGLDELETEBUFFERSPROC __glewDeleteBuffers; + GLEW_FUN_EXPORT PFNGLDELETEQUERIESPROC __glewDeleteQueries; + GLEW_FUN_EXPORT PFNGLENDQUERYPROC __glewEndQuery; + GLEW_FUN_EXPORT PFNGLGENBUFFERSPROC __glewGenBuffers; + GLEW_FUN_EXPORT PFNGLGENQUERIESPROC __glewGenQueries; + GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv; + GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv; + GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData; + GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv; + GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv; + GLEW_FUN_EXPORT PFNGLGETQUERYIVPROC __glewGetQueryiv; + GLEW_FUN_EXPORT PFNGLISBUFFERPROC __glewIsBuffer; + GLEW_FUN_EXPORT PFNGLISQUERYPROC __glewIsQuery; + GLEW_FUN_EXPORT PFNGLMAPBUFFERPROC __glewMapBuffer; + GLEW_FUN_EXPORT PFNGLUNMAPBUFFERPROC __glewUnmapBuffer; + + GLEW_FUN_EXPORT PFNGLATTACHSHADERPROC __glewAttachShader; + GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation; + GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate; + GLEW_FUN_EXPORT PFNGLCOMPILESHADERPROC __glewCompileShader; + GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPROC __glewCreateProgram; + GLEW_FUN_EXPORT PFNGLCREATESHADERPROC __glewCreateShader; + GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPROC __glewDeleteProgram; + GLEW_FUN_EXPORT PFNGLDELETESHADERPROC __glewDeleteShader; + GLEW_FUN_EXPORT PFNGLDETACHSHADERPROC __glewDetachShader; + GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray; + GLEW_FUN_EXPORT PFNGLDRAWBUFFERSPROC __glewDrawBuffers; + GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray; + GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib; + GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform; + GLEW_FUN_EXPORT PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders; + GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation; + GLEW_FUN_EXPORT PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog; + GLEW_FUN_EXPORT PFNGLGETPROGRAMIVPROC __glewGetProgramiv; + GLEW_FUN_EXPORT PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog; + GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEPROC __glewGetShaderSource; + GLEW_FUN_EXPORT PFNGLGETSHADERIVPROC __glewGetShaderiv; + GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation; + GLEW_FUN_EXPORT PFNGLGETUNIFORMFVPROC __glewGetUniformfv; + GLEW_FUN_EXPORT PFNGLGETUNIFORMIVPROC __glewGetUniformiv; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv; + GLEW_FUN_EXPORT PFNGLISPROGRAMPROC __glewIsProgram; + GLEW_FUN_EXPORT PFNGLISSHADERPROC __glewIsShader; + GLEW_FUN_EXPORT PFNGLLINKPROGRAMPROC __glewLinkProgram; + GLEW_FUN_EXPORT PFNGLSHADERSOURCEPROC __glewShaderSource; + GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate; + GLEW_FUN_EXPORT PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate; + GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate; + GLEW_FUN_EXPORT PFNGLUNIFORM1FPROC __glewUniform1f; + GLEW_FUN_EXPORT PFNGLUNIFORM1FVPROC __glewUniform1fv; + GLEW_FUN_EXPORT PFNGLUNIFORM1IPROC __glewUniform1i; + GLEW_FUN_EXPORT PFNGLUNIFORM1IVPROC __glewUniform1iv; + GLEW_FUN_EXPORT PFNGLUNIFORM2FPROC __glewUniform2f; + GLEW_FUN_EXPORT PFNGLUNIFORM2FVPROC __glewUniform2fv; + GLEW_FUN_EXPORT PFNGLUNIFORM2IPROC __glewUniform2i; + GLEW_FUN_EXPORT PFNGLUNIFORM2IVPROC __glewUniform2iv; + GLEW_FUN_EXPORT PFNGLUNIFORM3FPROC __glewUniform3f; + GLEW_FUN_EXPORT PFNGLUNIFORM3FVPROC __glewUniform3fv; + GLEW_FUN_EXPORT PFNGLUNIFORM3IPROC __glewUniform3i; + GLEW_FUN_EXPORT PFNGLUNIFORM3IVPROC __glewUniform3iv; + GLEW_FUN_EXPORT PFNGLUNIFORM4FPROC __glewUniform4f; + GLEW_FUN_EXPORT PFNGLUNIFORM4FVPROC __glewUniform4fv; + GLEW_FUN_EXPORT PFNGLUNIFORM4IPROC __glewUniform4i; + GLEW_FUN_EXPORT PFNGLUNIFORM4IVPROC __glewUniform4iv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv; + GLEW_FUN_EXPORT PFNGLUSEPROGRAMPROC __glewUseProgram; + GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPROC __glewValidateProgram; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer; + + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv; + + GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender; + GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback; + GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation; + GLEW_FUN_EXPORT PFNGLCLAMPCOLORPROC __glewClampColor; + GLEW_FUN_EXPORT PFNGLCLEARBUFFERFIPROC __glewClearBufferfi; + GLEW_FUN_EXPORT PFNGLCLEARBUFFERFVPROC __glewClearBufferfv; + GLEW_FUN_EXPORT PFNGLCLEARBUFFERIVPROC __glewClearBufferiv; + GLEW_FUN_EXPORT PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv; + GLEW_FUN_EXPORT PFNGLCOLORMASKIPROC __glewColorMaski; + GLEW_FUN_EXPORT PFNGLDISABLEIPROC __glewDisablei; + GLEW_FUN_EXPORT PFNGLENABLEIPROC __glewEnablei; + GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender; + GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback; + GLEW_FUN_EXPORT PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v; + GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation; + GLEW_FUN_EXPORT PFNGLGETSTRINGIPROC __glewGetStringi; + GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv; + GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv; + GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying; + GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv; + GLEW_FUN_EXPORT PFNGLISENABLEDIPROC __glewIsEnabledi; + GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv; + GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv; + GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings; + GLEW_FUN_EXPORT PFNGLUNIFORM1UIPROC __glewUniform1ui; + GLEW_FUN_EXPORT PFNGLUNIFORM1UIVPROC __glewUniform1uiv; + GLEW_FUN_EXPORT PFNGLUNIFORM2UIPROC __glewUniform2ui; + GLEW_FUN_EXPORT PFNGLUNIFORM2UIVPROC __glewUniform2uiv; + GLEW_FUN_EXPORT PFNGLUNIFORM3UIPROC __glewUniform3ui; + GLEW_FUN_EXPORT PFNGLUNIFORM3UIVPROC __glewUniform3uiv; + GLEW_FUN_EXPORT PFNGLUNIFORM4UIPROC __glewUniform4ui; + GLEW_FUN_EXPORT PFNGLUNIFORM4UIVPROC __glewUniform4uiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer; + + GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced; + GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced; + GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex; + GLEW_FUN_EXPORT PFNGLTEXBUFFERPROC __glewTexBuffer; + + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture; + GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v; + GLEW_FUN_EXPORT PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v; + + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor; + + GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei; + GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIPROC __glewBlendEquationi; + GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei; + GLEW_FUN_EXPORT PFNGLBLENDFUNCIPROC __glewBlendFunci; + GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading; + + GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; + + GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; + GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD; + GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD; + GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD; + + GLEW_FUN_EXPORT PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD; + GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD; + GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; + GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; + + GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD; + GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC __glewMultiDrawElementsIndirectAMD; + + GLEW_FUN_EXPORT PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD; + GLEW_FUN_EXPORT PFNGLGENNAMESAMDPROC __glewGenNamesAMD; + GLEW_FUN_EXPORT PFNGLISNAMEAMDPROC __glewIsNameAMD; + + GLEW_FUN_EXPORT PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD; + GLEW_FUN_EXPORT PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD; + GLEW_FUN_EXPORT PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD; + GLEW_FUN_EXPORT PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD; + GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD; + GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD; + GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD; + GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD; + GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD; + GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD; + GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD; + + GLEW_FUN_EXPORT PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD; + + GLEW_FUN_EXPORT PFNGLSTENCILOPVALUEAMDPROC __glewStencilOpValueAMD; + + GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD; + GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD; + + GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; + GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; + GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; + GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE; + GLEW_FUN_EXPORT PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE; + + GLEW_FUN_EXPORT PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE; + GLEW_FUN_EXPORT PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE; + GLEW_FUN_EXPORT PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE; + GLEW_FUN_EXPORT PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE; + GLEW_FUN_EXPORT PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE; + GLEW_FUN_EXPORT PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE; + GLEW_FUN_EXPORT PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE; + GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; + + GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; + GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; + + GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; + GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; + GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; + + GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; + GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; + + GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE; + GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE; + GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE; + GLEW_FUN_EXPORT PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE; + + GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE; + + GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE; + GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE; + GLEW_FUN_EXPORT PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE; + GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE; + GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE; + GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE; + GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE; + + GLEW_FUN_EXPORT PFNGLCLEARDEPTHFPROC __glewClearDepthf; + GLEW_FUN_EXPORT PFNGLDEPTHRANGEFPROC __glewDepthRangef; + GLEW_FUN_EXPORT PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat; + GLEW_FUN_EXPORT PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler; + GLEW_FUN_EXPORT PFNGLSHADERBINARYPROC __glewShaderBinary; + + GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC __glewDrawArraysInstancedBaseInstance; + GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC __glewDrawElementsInstancedBaseInstance; + GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC __glewDrawElementsInstancedBaseVertexBaseInstance; + + GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed; + GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; + + GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; + + GLEW_FUN_EXPORT PFNGLCLEARBUFFERDATAPROC __glewClearBufferData; + GLEW_FUN_EXPORT PFNGLCLEARBUFFERSUBDATAPROC __glewClearBufferSubData; + GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERDATAEXTPROC __glewClearNamedBufferDataEXT; + GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC __glewClearNamedBufferSubDataEXT; + + GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB; + + GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEPROC __glewDispatchCompute; + GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEINDIRECTPROC __glewDispatchComputeIndirect; + + GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData; + + GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAPROC __glewCopyImageSubData; + + GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB; + GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB; + GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB; + GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB; + + GLEW_FUN_EXPORT PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB; + + GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB; + GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB; + GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB; + GLEW_FUN_EXPORT PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB; + + GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex; + GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex; + GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex; + GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex; + + GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect; + GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect; + + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIPROC __glewFramebufferParameteri; + GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVPROC __glewGetFramebufferParameteriv; + GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC __glewGetNamedFramebufferParameterivEXT; + GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC __glewNamedFramebufferParameteriEXT; + + GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer; + GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer; + GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer; + GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus; + GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers; + GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer; + GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers; + GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers; + GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap; + GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv; + GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv; + GLEW_FUN_EXPORT PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer; + GLEW_FUN_EXPORT PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer; + GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage; + GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample; + + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB; + GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB; + + GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary; + GLEW_FUN_EXPORT PFNGLPROGRAMBINARYPROC __glewProgramBinary; + GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; + + GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv; + GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d; + GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv; + GLEW_FUN_EXPORT PFNGLUNIFORM2DPROC __glewUniform2d; + GLEW_FUN_EXPORT PFNGLUNIFORM2DVPROC __glewUniform2dv; + GLEW_FUN_EXPORT PFNGLUNIFORM3DPROC __glewUniform3d; + GLEW_FUN_EXPORT PFNGLUNIFORM3DVPROC __glewUniform3dv; + GLEW_FUN_EXPORT PFNGLUNIFORM4DPROC __glewUniform4d; + GLEW_FUN_EXPORT PFNGLUNIFORM4DVPROC __glewUniform4dv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv; + + GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable; + GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable; + GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv; + GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv; + GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable; + GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable; + GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D; + GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D; + GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPROC __glewGetColorTable; + GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv; + GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv; + GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter; + GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv; + GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv; + GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPROC __glewGetHistogram; + GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv; + GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv; + GLEW_FUN_EXPORT PFNGLGETMINMAXPROC __glewGetMinmax; + GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv; + GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv; + GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter; + GLEW_FUN_EXPORT PFNGLHISTOGRAMPROC __glewHistogram; + GLEW_FUN_EXPORT PFNGLMINMAXPROC __glewMinmax; + GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram; + GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax; + GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D; + + GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB; + GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB; + + GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATIVPROC __glewGetInternalformativ; + + GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATI64VPROC __glewGetInternalformati64v; + + GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERDATAPROC __glewInvalidateBufferData; + GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERSUBDATAPROC __glewInvalidateBufferSubData; + GLEW_FUN_EXPORT PFNGLINVALIDATEFRAMEBUFFERPROC __glewInvalidateFramebuffer; + GLEW_FUN_EXPORT PFNGLINVALIDATESUBFRAMEBUFFERPROC __glewInvalidateSubFramebuffer; + GLEW_FUN_EXPORT PFNGLINVALIDATETEXIMAGEPROC __glewInvalidateTexImage; + GLEW_FUN_EXPORT PFNGLINVALIDATETEXSUBIMAGEPROC __glewInvalidateTexSubImage; + + GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange; + GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange; + + GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB; + GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB; + GLEW_FUN_EXPORT PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB; + GLEW_FUN_EXPORT PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB; + GLEW_FUN_EXPORT PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB; + + GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTPROC __glewMultiDrawArraysIndirect; + GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTPROC __glewMultiDrawElementsIndirect; + + GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB; + + GLEW_FUN_EXPORT PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB; + GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB; + + GLEW_FUN_EXPORT PFNGLBEGINQUERYARBPROC __glewBeginQueryARB; + GLEW_FUN_EXPORT PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB; + GLEW_FUN_EXPORT PFNGLENDQUERYARBPROC __glewEndQueryARB; + GLEW_FUN_EXPORT PFNGLGENQUERIESARBPROC __glewGenQueriesARB; + GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB; + GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB; + GLEW_FUN_EXPORT PFNGLGETQUERYIVARBPROC __glewGetQueryivARB; + GLEW_FUN_EXPORT PFNGLISQUERYARBPROC __glewIsQueryARB; + + GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; + GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; + + GLEW_FUN_EXPORT PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv; + GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex; + GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation; + GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC __glewGetProgramResourceLocationIndex; + GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCENAMEPROC __glewGetProgramResourceName; + GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEIVPROC __glewGetProgramResourceiv; + + GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex; + + GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSARBPROC __glewGetGraphicsResetStatusARB; + GLEW_FUN_EXPORT PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB; + GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB; + GLEW_FUN_EXPORT PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB; + GLEW_FUN_EXPORT PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB; + GLEW_FUN_EXPORT PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB; + GLEW_FUN_EXPORT PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB; + GLEW_FUN_EXPORT PFNGLGETNMAPIVARBPROC __glewGetnMapivARB; + GLEW_FUN_EXPORT PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB; + GLEW_FUN_EXPORT PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB; + GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB; + GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB; + GLEW_FUN_EXPORT PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB; + GLEW_FUN_EXPORT PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB; + GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB; + GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB; + GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB; + GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB; + GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB; + GLEW_FUN_EXPORT PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB; + + GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB; + + GLEW_FUN_EXPORT PFNGLBINDSAMPLERPROC __glewBindSampler; + GLEW_FUN_EXPORT PFNGLDELETESAMPLERSPROC __glewDeleteSamplers; + GLEW_FUN_EXPORT PFNGLGENSAMPLERSPROC __glewGenSamplers; + GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv; + GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv; + GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv; + GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv; + GLEW_FUN_EXPORT PFNGLISSAMPLERPROC __glewIsSampler; + GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv; + GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv; + GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf; + GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv; + GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri; + GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv; + + GLEW_FUN_EXPORT PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram; + GLEW_FUN_EXPORT PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline; + GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv; + GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines; + GLEW_FUN_EXPORT PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines; + GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog; + GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv; + GLEW_FUN_EXPORT PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv; + GLEW_FUN_EXPORT PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages; + GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline; + + GLEW_FUN_EXPORT PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC __glewGetActiveAtomicCounterBufferiv; + + GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREPROC __glewBindImageTexture; + GLEW_FUN_EXPORT PFNGLMEMORYBARRIERPROC __glewMemoryBarrier; + + GLEW_FUN_EXPORT PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB; + GLEW_FUN_EXPORT PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB; + GLEW_FUN_EXPORT PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB; + GLEW_FUN_EXPORT PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB; + GLEW_FUN_EXPORT PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB; + GLEW_FUN_EXPORT PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB; + GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB; + GLEW_FUN_EXPORT PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB; + GLEW_FUN_EXPORT PFNGLGETHANDLEARBPROC __glewGetHandleARB; + GLEW_FUN_EXPORT PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB; + GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB; + GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB; + GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB; + GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB; + GLEW_FUN_EXPORT PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB; + GLEW_FUN_EXPORT PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB; + GLEW_FUN_EXPORT PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB; + GLEW_FUN_EXPORT PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB; + GLEW_FUN_EXPORT PFNGLUNIFORM1FARBPROC __glewUniform1fARB; + GLEW_FUN_EXPORT PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB; + GLEW_FUN_EXPORT PFNGLUNIFORM1IARBPROC __glewUniform1iARB; + GLEW_FUN_EXPORT PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB; + GLEW_FUN_EXPORT PFNGLUNIFORM2FARBPROC __glewUniform2fARB; + GLEW_FUN_EXPORT PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB; + GLEW_FUN_EXPORT PFNGLUNIFORM2IARBPROC __glewUniform2iARB; + GLEW_FUN_EXPORT PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB; + GLEW_FUN_EXPORT PFNGLUNIFORM3FARBPROC __glewUniform3fARB; + GLEW_FUN_EXPORT PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB; + GLEW_FUN_EXPORT PFNGLUNIFORM3IARBPROC __glewUniform3iARB; + GLEW_FUN_EXPORT PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB; + GLEW_FUN_EXPORT PFNGLUNIFORM4FARBPROC __glewUniform4fARB; + GLEW_FUN_EXPORT PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB; + GLEW_FUN_EXPORT PFNGLUNIFORM4IARBPROC __glewUniform4iARB; + GLEW_FUN_EXPORT PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB; + GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB; + GLEW_FUN_EXPORT PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB; + GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB; + + GLEW_FUN_EXPORT PFNGLSHADERSTORAGEBLOCKBINDINGPROC __glewShaderStorageBlockBinding; + + GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName; + GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName; + GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv; + GLEW_FUN_EXPORT PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv; + GLEW_FUN_EXPORT PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex; + GLEW_FUN_EXPORT PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation; + GLEW_FUN_EXPORT PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv; + GLEW_FUN_EXPORT PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv; + + GLEW_FUN_EXPORT PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB; + GLEW_FUN_EXPORT PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB; + GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB; + GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB; + GLEW_FUN_EXPORT PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB; + GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; + + GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; + GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync; + GLEW_FUN_EXPORT PFNGLFENCESYNCPROC __glewFenceSync; + GLEW_FUN_EXPORT PFNGLGETINTEGER64VPROC __glewGetInteger64v; + GLEW_FUN_EXPORT PFNGLGETSYNCIVPROC __glewGetSynciv; + GLEW_FUN_EXPORT PFNGLISSYNCPROC __glewIsSync; + GLEW_FUN_EXPORT PFNGLWAITSYNCPROC __glewWaitSync; + + GLEW_FUN_EXPORT PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv; + GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIPROC __glewPatchParameteri; + + GLEW_FUN_EXPORT PFNGLTEXBUFFERARBPROC __glewTexBufferARB; + + GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEPROC __glewTexBufferRange; + GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERRANGEEXTPROC __glewTextureBufferRangeEXT; + + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB; + GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB; + + GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv; + GLEW_FUN_EXPORT PFNGLSAMPLEMASKIPROC __glewSampleMaski; + GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample; + GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; + + GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DPROC __glewTexStorage1D; + GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DPROC __glewTexStorage2D; + GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DPROC __glewTexStorage3D; + GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT; + GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT; + GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT; + + GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample; + GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample; + GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC __glewTextureStorage2DMultisampleEXT; + GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC __glewTextureStorage3DMultisampleEXT; + + GLEW_FUN_EXPORT PFNGLTEXTUREVIEWPROC __glewTextureView; + + GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v; + GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v; + GLEW_FUN_EXPORT PFNGLQUERYCOUNTERPROC __glewQueryCounter; + + GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback; + GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks; + GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback; + GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks; + GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback; + GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback; + GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback; + + GLEW_FUN_EXPORT PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed; + GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream; + GLEW_FUN_EXPORT PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed; + GLEW_FUN_EXPORT PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv; + + GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC __glewDrawTransformFeedbackInstanced; + GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC __glewDrawTransformFeedbackStreamInstanced; + + GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB; + GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB; + GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB; + GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB; + + GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEPROC __glewBindBufferBase; + GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange; + GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName; + GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv; + GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName; + GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv; + GLEW_FUN_EXPORT PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v; + GLEW_FUN_EXPORT PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex; + GLEW_FUN_EXPORT PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices; + GLEW_FUN_EXPORT PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding; + + GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray; + GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays; + GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays; + GLEW_FUN_EXPORT PFNGLISVERTEXARRAYPROC __glewIsVertexArray; + + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer; + + GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERPROC __glewBindVertexBuffer; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBBINDINGPROC __glewVertexAttribBinding; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATPROC __glewVertexAttribFormat; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATPROC __glewVertexAttribIFormat; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATPROC __glewVertexAttribLFormat; + GLEW_FUN_EXPORT PFNGLVERTEXBINDINGDIVISORPROC __glewVertexBindingDivisor; + + GLEW_FUN_EXPORT PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB; + GLEW_FUN_EXPORT PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB; + GLEW_FUN_EXPORT PFNGLWEIGHTBVARBPROC __glewWeightbvARB; + GLEW_FUN_EXPORT PFNGLWEIGHTDVARBPROC __glewWeightdvARB; + GLEW_FUN_EXPORT PFNGLWEIGHTFVARBPROC __glewWeightfvARB; + GLEW_FUN_EXPORT PFNGLWEIGHTIVARBPROC __glewWeightivARB; + GLEW_FUN_EXPORT PFNGLWEIGHTSVARBPROC __glewWeightsvARB; + GLEW_FUN_EXPORT PFNGLWEIGHTUBVARBPROC __glewWeightubvARB; + GLEW_FUN_EXPORT PFNGLWEIGHTUIVARBPROC __glewWeightuivARB; + GLEW_FUN_EXPORT PFNGLWEIGHTUSVARBPROC __glewWeightusvARB; + + GLEW_FUN_EXPORT PFNGLBINDBUFFERARBPROC __glewBindBufferARB; + GLEW_FUN_EXPORT PFNGLBUFFERDATAARBPROC __glewBufferDataARB; + GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB; + GLEW_FUN_EXPORT PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB; + GLEW_FUN_EXPORT PFNGLGENBUFFERSARBPROC __glewGenBuffersARB; + GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB; + GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB; + GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB; + GLEW_FUN_EXPORT PFNGLISBUFFERARBPROC __glewIsBufferARB; + GLEW_FUN_EXPORT PFNGLMAPBUFFERARBPROC __glewMapBufferARB; + GLEW_FUN_EXPORT PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB; + + GLEW_FUN_EXPORT PFNGLBINDPROGRAMARBPROC __glewBindProgramARB; + GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB; + GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB; + GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB; + GLEW_FUN_EXPORT PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB; + GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB; + GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB; + GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB; + GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB; + GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB; + GLEW_FUN_EXPORT PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB; + GLEW_FUN_EXPORT PFNGLISPROGRAMARBPROC __glewIsProgramARB; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB; + GLEW_FUN_EXPORT PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB; + + GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB; + GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB; + GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB; + + GLEW_FUN_EXPORT PFNGLCOLORP3UIPROC __glewColorP3ui; + GLEW_FUN_EXPORT PFNGLCOLORP3UIVPROC __glewColorP3uiv; + GLEW_FUN_EXPORT PFNGLCOLORP4UIPROC __glewColorP4ui; + GLEW_FUN_EXPORT PFNGLCOLORP4UIVPROC __glewColorP4uiv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv; + GLEW_FUN_EXPORT PFNGLNORMALP3UIPROC __glewNormalP3ui; + GLEW_FUN_EXPORT PFNGLNORMALP3UIVPROC __glewNormalP3uiv; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv; + GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui; + GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv; + GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui; + GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv; + GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui; + GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv; + GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui; + GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv; + GLEW_FUN_EXPORT PFNGLVERTEXP2UIPROC __glewVertexP2ui; + GLEW_FUN_EXPORT PFNGLVERTEXP2UIVPROC __glewVertexP2uiv; + GLEW_FUN_EXPORT PFNGLVERTEXP3UIPROC __glewVertexP3ui; + GLEW_FUN_EXPORT PFNGLVERTEXP3UIVPROC __glewVertexP3uiv; + GLEW_FUN_EXPORT PFNGLVERTEXP4UIPROC __glewVertexP4ui; + GLEW_FUN_EXPORT PFNGLVERTEXP4UIVPROC __glewVertexP4uiv; + + GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv; + GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed; + GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v; + GLEW_FUN_EXPORT PFNGLGETFLOATI_VPROC __glewGetFloati_v; + GLEW_FUN_EXPORT PFNGLSCISSORARRAYVPROC __glewScissorArrayv; + GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDPROC __glewScissorIndexed; + GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv; + GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv; + GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf; + GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv; + + GLEW_FUN_EXPORT PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB; + + GLEW_FUN_EXPORT PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI; + + GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI; + GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI; + GLEW_FUN_EXPORT PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI; + + GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI; + GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI; + GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI; + GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI; + + GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI; + GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI; + GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI; + GLEW_FUN_EXPORT PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI; + GLEW_FUN_EXPORT PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI; + GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI; + GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI; + GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI; + GLEW_FUN_EXPORT PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI; + GLEW_FUN_EXPORT PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI; + GLEW_FUN_EXPORT PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI; + GLEW_FUN_EXPORT PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI; + GLEW_FUN_EXPORT PFNGLSAMPLEMAPATIPROC __glewSampleMapATI; + GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI; + + GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI; + GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI; + + GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI; + GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI; + + GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI; + GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI; + + GLEW_FUN_EXPORT PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI; + GLEW_FUN_EXPORT PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI; + GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI; + GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI; + GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI; + GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI; + GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI; + GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI; + GLEW_FUN_EXPORT PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI; + GLEW_FUN_EXPORT PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI; + GLEW_FUN_EXPORT PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI; + GLEW_FUN_EXPORT PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI; + + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI; + + GLEW_FUN_EXPORT PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI; + GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI; + GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI; + GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI; + GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI; + GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI; + GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI; + GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI; + GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI; + GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI; + GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI; + GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI; + GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DATIPROC __glewVertexStream1dATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DVATIPROC __glewVertexStream1dvATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FATIPROC __glewVertexStream1fATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FVATIPROC __glewVertexStream1fvATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IATIPROC __glewVertexStream1iATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IVATIPROC __glewVertexStream1ivATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SATIPROC __glewVertexStream1sATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SVATIPROC __glewVertexStream1svATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI; + GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI; + + GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT; + GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT; + GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT; + + GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT; + + GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT; + + GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT; + + GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT; + + GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT; + GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT; + + GLEW_FUN_EXPORT PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT; + GLEW_FUN_EXPORT PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT; + + GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT; + GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT; + GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT; + GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT; + GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT; + GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT; + GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT; + GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT; + + GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT; + GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT; + + GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT; + + GLEW_FUN_EXPORT PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT; + GLEW_FUN_EXPORT PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT; + + GLEW_FUN_EXPORT PFNGLINSERTEVENTMARKEREXTPROC __glewInsertEventMarkerEXT; + GLEW_FUN_EXPORT PFNGLPOPGROUPMARKEREXTPROC __glewPopGroupMarkerEXT; + GLEW_FUN_EXPORT PFNGLPUSHGROUPMARKEREXTPROC __glewPushGroupMarkerEXT; + + GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT; + + GLEW_FUN_EXPORT PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT; + GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT; + GLEW_FUN_EXPORT PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT; + GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT; + GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT; + GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT; + GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT; + GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT; + GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT; + GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT; + GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT; + GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT; + GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT; + GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT; + GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT; + GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT; + GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT; + GLEW_FUN_EXPORT PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT; + GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT; + GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT; + GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT; + GLEW_FUN_EXPORT PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT; + GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT; + GLEW_FUN_EXPORT PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT; + GLEW_FUN_EXPORT PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT; + GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT; + GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT; + GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT; + GLEW_FUN_EXPORT PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT; + GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT; + GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT; + GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT; + GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT; + GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT; + GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT; + GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT; + GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT; + GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT; + GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT; + GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT; + GLEW_FUN_EXPORT PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT; + GLEW_FUN_EXPORT PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT; + GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT; + GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT; + GLEW_FUN_EXPORT PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT; + GLEW_FUN_EXPORT PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT; + GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT; + GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT; + GLEW_FUN_EXPORT PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT; + GLEW_FUN_EXPORT PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT; + GLEW_FUN_EXPORT PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT; + GLEW_FUN_EXPORT PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT; + GLEW_FUN_EXPORT PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT; + GLEW_FUN_EXPORT PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT; + GLEW_FUN_EXPORT PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT; + GLEW_FUN_EXPORT PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT; + GLEW_FUN_EXPORT PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT; + GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT; + GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT; + GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT; + GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT; + GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT; + GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT; + GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT; + GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT; + GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT; + GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT; + GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT; + GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT; + GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT; + GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT; + GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT; + GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT; + GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DEXTPROC __glewProgramUniform1dEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVEXTPROC __glewProgramUniform1dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DEXTPROC __glewProgramUniform2dEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVEXTPROC __glewProgramUniform2dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DEXTPROC __glewProgramUniform3dEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVEXTPROC __glewProgramUniform3dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DEXTPROC __glewProgramUniform4dEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVEXTPROC __glewProgramUniform4dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC __glewProgramUniformMatrix2dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC __glewProgramUniformMatrix2x3dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC __glewProgramUniformMatrix2x4dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC __glewProgramUniformMatrix3dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC __glewProgramUniformMatrix3x2dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC __glewProgramUniformMatrix3x4dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC __glewProgramUniformMatrix4dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC __glewProgramUniformMatrix4x2dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC __glewProgramUniformMatrix4x3dvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT; + GLEW_FUN_EXPORT PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT; + GLEW_FUN_EXPORT PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT; + GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT; + GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT; + GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT; + GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; + + GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; + GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; + GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; + GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT; + GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT; + GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT; + + GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT; + GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT; + + GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT; + + GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT; + GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT; + GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT; + GLEW_FUN_EXPORT PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT; + GLEW_FUN_EXPORT PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT; + + GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT; + GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT; + GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT; + GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT; + GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT; + GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT; + GLEW_FUN_EXPORT PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT; + + GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT; + + GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT; + + GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT; + GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT; + GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT; + GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT; + GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT; + GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT; + GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT; + GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT; + GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT; + GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT; + GLEW_FUN_EXPORT PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT; + GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT; + + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT; + + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT; + + GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT; + GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT; + GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT; + GLEW_FUN_EXPORT PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT; + GLEW_FUN_EXPORT PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT; + GLEW_FUN_EXPORT PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT; + GLEW_FUN_EXPORT PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT; + GLEW_FUN_EXPORT PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT; + GLEW_FUN_EXPORT PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT; + GLEW_FUN_EXPORT PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT; + GLEW_FUN_EXPORT PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT; + + GLEW_FUN_EXPORT PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT; + GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT; + GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT; + GLEW_FUN_EXPORT PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT; + GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT; + GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT; + GLEW_FUN_EXPORT PFNGLHISTOGRAMEXTPROC __glewHistogramEXT; + GLEW_FUN_EXPORT PFNGLMINMAXEXTPROC __glewMinmaxEXT; + GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT; + GLEW_FUN_EXPORT PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT; + + GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT; + + GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT; + + GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT; + GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT; + GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT; + + GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT; + GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT; + + GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT; + GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT; + + GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT; + GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT; + GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT; + GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT; + + GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT; + GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT; + GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT; + GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT; + GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT; + GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT; + + GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT; + GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT; + + GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; + + GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; + + GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; + GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT; + + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; + + GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; + GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; + GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; + + GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; + GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; + + GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; + + GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; + GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT; + GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; + + GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; + + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; + + GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; + + GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; + GLEW_FUN_EXPORT PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT; + GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT; + GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT; + GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT; + GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT; + + GLEW_FUN_EXPORT PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT; + GLEW_FUN_EXPORT PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT; + GLEW_FUN_EXPORT PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT; + GLEW_FUN_EXPORT PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT; + GLEW_FUN_EXPORT PFNGLISTEXTUREEXTPROC __glewIsTextureEXT; + GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT; + + GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; + + GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; + GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; + + GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT; + GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT; + GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT; + GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT; + GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT; + GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT; + GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT; + + GLEW_FUN_EXPORT PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT; + GLEW_FUN_EXPORT PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT; + GLEW_FUN_EXPORT PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT; + GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT; + GLEW_FUN_EXPORT PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT; + GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; + GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; + GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; + + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT; + + GLEW_FUN_EXPORT PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT; + GLEW_FUN_EXPORT PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT; + GLEW_FUN_EXPORT PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT; + GLEW_FUN_EXPORT PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT; + GLEW_FUN_EXPORT PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT; + GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT; + GLEW_FUN_EXPORT PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT; + GLEW_FUN_EXPORT PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT; + GLEW_FUN_EXPORT PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT; + GLEW_FUN_EXPORT PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT; + GLEW_FUN_EXPORT PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT; + GLEW_FUN_EXPORT PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT; + GLEW_FUN_EXPORT PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT; + GLEW_FUN_EXPORT PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT; + GLEW_FUN_EXPORT PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT; + GLEW_FUN_EXPORT PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT; + GLEW_FUN_EXPORT PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT; + GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT; + GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT; + GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT; + GLEW_FUN_EXPORT PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT; + GLEW_FUN_EXPORT PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT; + GLEW_FUN_EXPORT PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT; + GLEW_FUN_EXPORT PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT; + GLEW_FUN_EXPORT PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT; + GLEW_FUN_EXPORT PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT; + GLEW_FUN_EXPORT PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT; + GLEW_FUN_EXPORT PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT; + GLEW_FUN_EXPORT PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT; + GLEW_FUN_EXPORT PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT; + GLEW_FUN_EXPORT PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT; + GLEW_FUN_EXPORT PFNGLSWIZZLEEXTPROC __glewSwizzleEXT; + GLEW_FUN_EXPORT PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT; + GLEW_FUN_EXPORT PFNGLVARIANTBVEXTPROC __glewVariantbvEXT; + GLEW_FUN_EXPORT PFNGLVARIANTDVEXTPROC __glewVariantdvEXT; + GLEW_FUN_EXPORT PFNGLVARIANTFVEXTPROC __glewVariantfvEXT; + GLEW_FUN_EXPORT PFNGLVARIANTIVEXTPROC __glewVariantivEXT; + GLEW_FUN_EXPORT PFNGLVARIANTSVEXTPROC __glewVariantsvEXT; + GLEW_FUN_EXPORT PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT; + GLEW_FUN_EXPORT PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT; + GLEW_FUN_EXPORT PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT; + GLEW_FUN_EXPORT PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT; + + GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; + GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; + GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; + + GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT; + + GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; + + GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY; + + GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP; + GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP; + GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP; + GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP; + GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP; + GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP; + + GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM; + GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM; + + GLEW_FUN_EXPORT PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM; + GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM; + GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM; + GLEW_FUN_EXPORT PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM; + GLEW_FUN_EXPORT PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM; + GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM; + GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM; + + GLEW_FUN_EXPORT PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL; + GLEW_FUN_EXPORT PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL; + GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL; + GLEW_FUN_EXPORT PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL; + + GLEW_FUN_EXPORT PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL; + GLEW_FUN_EXPORT PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL; + + GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKPROC __glewDebugMessageCallback; + GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLPROC __glewDebugMessageControl; + GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTPROC __glewDebugMessageInsert; + GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGPROC __glewGetDebugMessageLog; + GLEW_FUN_EXPORT PFNGLGETOBJECTLABELPROC __glewGetObjectLabel; + GLEW_FUN_EXPORT PFNGLGETOBJECTPTRLABELPROC __glewGetObjectPtrLabel; + GLEW_FUN_EXPORT PFNGLGETPOINTERVPROC __glewGetPointerv; + GLEW_FUN_EXPORT PFNGLOBJECTLABELPROC __glewObjectLabel; + GLEW_FUN_EXPORT PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel; + GLEW_FUN_EXPORT PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup; + + GLEW_FUN_EXPORT PFNGLBUFFERREGIONENABLEDPROC __glewBufferRegionEnabled; + GLEW_FUN_EXPORT PFNGLDELETEBUFFERREGIONPROC __glewDeleteBufferRegion; + GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion; + GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion; + GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion; + + GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; + + GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA; + GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; + + GLEW_FUN_EXPORT PFNGLGETIMAGEHANDLENVPROC __glewGetImageHandleNV; + GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLENVPROC __glewGetTextureHandleNV; + GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLENVPROC __glewGetTextureSamplerHandleNV; + GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTNVPROC __glewIsImageHandleResidentNV; + GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTNVPROC __glewIsTextureHandleResidentNV; + GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC __glewMakeImageHandleNonResidentNV; + GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTNVPROC __glewMakeImageHandleResidentNV; + GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC __glewMakeTextureHandleNonResidentNV; + GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTNVPROC __glewMakeTextureHandleResidentNV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC __glewProgramUniformHandleui64NV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC __glewProgramUniformHandleui64vNV; + GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64NVPROC __glewUniformHandleui64NV; + GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV; + + GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; + GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; + + GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; + + GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; + GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; + GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; + + GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV; + GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV; + GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV; + GLEW_FUN_EXPORT PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV; + GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV; + GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV; + GLEW_FUN_EXPORT PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV; + GLEW_FUN_EXPORT PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV; + GLEW_FUN_EXPORT PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV; + + GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV; + GLEW_FUN_EXPORT PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV; + GLEW_FUN_EXPORT PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV; + + GLEW_FUN_EXPORT PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV; + GLEW_FUN_EXPORT PFNGLFINISHFENCENVPROC __glewFinishFenceNV; + GLEW_FUN_EXPORT PFNGLGENFENCESNVPROC __glewGenFencesNV; + GLEW_FUN_EXPORT PFNGLGETFENCEIVNVPROC __glewGetFenceivNV; + GLEW_FUN_EXPORT PFNGLISFENCENVPROC __glewIsFenceNV; + GLEW_FUN_EXPORT PFNGLSETFENCENVPROC __glewSetFenceNV; + GLEW_FUN_EXPORT PFNGLTESTFENCENVPROC __glewTestFenceNV; + + GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV; + GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV; + GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV; + GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV; + GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV; + GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV; + + GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; + + GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; + + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV; + GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV; + + GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV; + GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV; + GLEW_FUN_EXPORT PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV; + GLEW_FUN_EXPORT PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV; + GLEW_FUN_EXPORT PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV; + GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV; + GLEW_FUN_EXPORT PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV; + GLEW_FUN_EXPORT PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV; + GLEW_FUN_EXPORT PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV; + GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV; + GLEW_FUN_EXPORT PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV; + GLEW_FUN_EXPORT PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV; + GLEW_FUN_EXPORT PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV; + GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV; + GLEW_FUN_EXPORT PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV; + GLEW_FUN_EXPORT PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV; + GLEW_FUN_EXPORT PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV; + GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV; + + GLEW_FUN_EXPORT PFNGLCOLOR3HNVPROC __glewColor3hNV; + GLEW_FUN_EXPORT PFNGLCOLOR3HVNVPROC __glewColor3hvNV; + GLEW_FUN_EXPORT PFNGLCOLOR4HNVPROC __glewColor4hNV; + GLEW_FUN_EXPORT PFNGLCOLOR4HVNVPROC __glewColor4hvNV; + GLEW_FUN_EXPORT PFNGLFOGCOORDHNVPROC __glewFogCoordhNV; + GLEW_FUN_EXPORT PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV; + GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV; + GLEW_FUN_EXPORT PFNGLNORMAL3HNVPROC __glewNormal3hNV; + GLEW_FUN_EXPORT PFNGLNORMAL3HVNVPROC __glewNormal3hvNV; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV; + GLEW_FUN_EXPORT PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV; + GLEW_FUN_EXPORT PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV; + GLEW_FUN_EXPORT PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV; + GLEW_FUN_EXPORT PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV; + GLEW_FUN_EXPORT PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV; + GLEW_FUN_EXPORT PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV; + GLEW_FUN_EXPORT PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV; + GLEW_FUN_EXPORT PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV; + GLEW_FUN_EXPORT PFNGLVERTEX2HNVPROC __glewVertex2hNV; + GLEW_FUN_EXPORT PFNGLVERTEX2HVNVPROC __glewVertex2hvNV; + GLEW_FUN_EXPORT PFNGLVERTEX3HNVPROC __glewVertex3hNV; + GLEW_FUN_EXPORT PFNGLVERTEX3HVNVPROC __glewVertex3hvNV; + GLEW_FUN_EXPORT PFNGLVERTEX4HNVPROC __glewVertex4hNV; + GLEW_FUN_EXPORT PFNGLVERTEX4HVNVPROC __glewVertex4hvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV; + GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV; + GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV; + + GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV; + GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV; + GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV; + GLEW_FUN_EXPORT PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV; + GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV; + GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV; + GLEW_FUN_EXPORT PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV; + + GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV; + GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV; + GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV; + + GLEW_FUN_EXPORT PFNGLCOPYPATHNVPROC __glewCopyPathNV; + GLEW_FUN_EXPORT PFNGLCOVERFILLPATHINSTANCEDNVPROC __glewCoverFillPathInstancedNV; + GLEW_FUN_EXPORT PFNGLCOVERFILLPATHNVPROC __glewCoverFillPathNV; + GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHINSTANCEDNVPROC __glewCoverStrokePathInstancedNV; + GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHNVPROC __glewCoverStrokePathNV; + GLEW_FUN_EXPORT PFNGLDELETEPATHSNVPROC __glewDeletePathsNV; + GLEW_FUN_EXPORT PFNGLGENPATHSNVPROC __glewGenPathsNV; + GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENFVNVPROC __glewGetPathColorGenfvNV; + GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENIVNVPROC __glewGetPathColorGenivNV; + GLEW_FUN_EXPORT PFNGLGETPATHCOMMANDSNVPROC __glewGetPathCommandsNV; + GLEW_FUN_EXPORT PFNGLGETPATHCOORDSNVPROC __glewGetPathCoordsNV; + GLEW_FUN_EXPORT PFNGLGETPATHDASHARRAYNVPROC __glewGetPathDashArrayNV; + GLEW_FUN_EXPORT PFNGLGETPATHLENGTHNVPROC __glewGetPathLengthNV; + GLEW_FUN_EXPORT PFNGLGETPATHMETRICRANGENVPROC __glewGetPathMetricRangeNV; + GLEW_FUN_EXPORT PFNGLGETPATHMETRICSNVPROC __glewGetPathMetricsNV; + GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERFVNVPROC __glewGetPathParameterfvNV; + GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERIVNVPROC __glewGetPathParameterivNV; + GLEW_FUN_EXPORT PFNGLGETPATHSPACINGNVPROC __glewGetPathSpacingNV; + GLEW_FUN_EXPORT PFNGLGETPATHTEXGENFVNVPROC __glewGetPathTexGenfvNV; + GLEW_FUN_EXPORT PFNGLGETPATHTEXGENIVNVPROC __glewGetPathTexGenivNV; + GLEW_FUN_EXPORT PFNGLINTERPOLATEPATHSNVPROC __glewInterpolatePathsNV; + GLEW_FUN_EXPORT PFNGLISPATHNVPROC __glewIsPathNV; + GLEW_FUN_EXPORT PFNGLISPOINTINFILLPATHNVPROC __glewIsPointInFillPathNV; + GLEW_FUN_EXPORT PFNGLISPOINTINSTROKEPATHNVPROC __glewIsPointInStrokePathNV; + GLEW_FUN_EXPORT PFNGLPATHCOLORGENNVPROC __glewPathColorGenNV; + GLEW_FUN_EXPORT PFNGLPATHCOMMANDSNVPROC __glewPathCommandsNV; + GLEW_FUN_EXPORT PFNGLPATHCOORDSNVPROC __glewPathCoordsNV; + GLEW_FUN_EXPORT PFNGLPATHCOVERDEPTHFUNCNVPROC __glewPathCoverDepthFuncNV; + GLEW_FUN_EXPORT PFNGLPATHDASHARRAYNVPROC __glewPathDashArrayNV; + GLEW_FUN_EXPORT PFNGLPATHFOGGENNVPROC __glewPathFogGenNV; + GLEW_FUN_EXPORT PFNGLPATHGLYPHRANGENVPROC __glewPathGlyphRangeNV; + GLEW_FUN_EXPORT PFNGLPATHGLYPHSNVPROC __glewPathGlyphsNV; + GLEW_FUN_EXPORT PFNGLPATHPARAMETERFNVPROC __glewPathParameterfNV; + GLEW_FUN_EXPORT PFNGLPATHPARAMETERFVNVPROC __glewPathParameterfvNV; + GLEW_FUN_EXPORT PFNGLPATHPARAMETERINVPROC __glewPathParameteriNV; + GLEW_FUN_EXPORT PFNGLPATHPARAMETERIVNVPROC __glewPathParameterivNV; + GLEW_FUN_EXPORT PFNGLPATHSTENCILDEPTHOFFSETNVPROC __glewPathStencilDepthOffsetNV; + GLEW_FUN_EXPORT PFNGLPATHSTENCILFUNCNVPROC __glewPathStencilFuncNV; + GLEW_FUN_EXPORT PFNGLPATHSTRINGNVPROC __glewPathStringNV; + GLEW_FUN_EXPORT PFNGLPATHSUBCOMMANDSNVPROC __glewPathSubCommandsNV; + GLEW_FUN_EXPORT PFNGLPATHSUBCOORDSNVPROC __glewPathSubCoordsNV; + GLEW_FUN_EXPORT PFNGLPATHTEXGENNVPROC __glewPathTexGenNV; + GLEW_FUN_EXPORT PFNGLPOINTALONGPATHNVPROC __glewPointAlongPathNV; + GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHINSTANCEDNVPROC __glewStencilFillPathInstancedNV; + GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHNVPROC __glewStencilFillPathNV; + GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC __glewStencilStrokePathInstancedNV; + GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHNVPROC __glewStencilStrokePathNV; + GLEW_FUN_EXPORT PFNGLTRANSFORMPATHNVPROC __glewTransformPathNV; + GLEW_FUN_EXPORT PFNGLWEIGHTPATHSNVPROC __glewWeightPathsNV; + + GLEW_FUN_EXPORT PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV; + GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; + + GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; + GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; + + GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; + GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; + GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; + GLEW_FUN_EXPORT PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV; + GLEW_FUN_EXPORT PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV; + GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; + + GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; + GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; + + GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV; + GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV; + GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV; + GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV; + GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV; + GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV; + GLEW_FUN_EXPORT PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV; + GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV; + GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV; + GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV; + GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV; + GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV; + GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV; + + GLEW_FUN_EXPORT PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV; + GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV; + + GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; + GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; + GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV; + GLEW_FUN_EXPORT PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV; + GLEW_FUN_EXPORT PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV; + GLEW_FUN_EXPORT PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV; + GLEW_FUN_EXPORT PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV; + GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV; + GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV; + GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; + GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; + GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; + + GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; + + GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV; + GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV; + GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV; + GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV; + GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV; + GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV; + + GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV; + GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV; + GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV; + GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV; + GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV; + GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV; + GLEW_FUN_EXPORT PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV; + GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV; + GLEW_FUN_EXPORT PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV; + GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV; + GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV; + + GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV; + GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV; + GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV; + GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV; + GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV; + GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV; + GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV; + + GLEW_FUN_EXPORT PFNGLVDPAUFININVPROC __glewVDPAUFiniNV; + GLEW_FUN_EXPORT PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV; + GLEW_FUN_EXPORT PFNGLVDPAUINITNVPROC __glewVDPAUInitNV; + GLEW_FUN_EXPORT PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV; + GLEW_FUN_EXPORT PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV; + GLEW_FUN_EXPORT PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV; + GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV; + GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; + GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; + GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; + + GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; + GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; + + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV; + + GLEW_FUN_EXPORT PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV; + GLEW_FUN_EXPORT PFNGLCOLORFORMATNVPROC __glewColorFormatNV; + GLEW_FUN_EXPORT PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV; + GLEW_FUN_EXPORT PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV; + GLEW_FUN_EXPORT PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV; + GLEW_FUN_EXPORT PFNGLINDEXFORMATNVPROC __glewIndexFormatNV; + GLEW_FUN_EXPORT PFNGLNORMALFORMATNVPROC __glewNormalFormatNV; + GLEW_FUN_EXPORT PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV; + GLEW_FUN_EXPORT PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV; + GLEW_FUN_EXPORT PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV; + + GLEW_FUN_EXPORT PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV; + GLEW_FUN_EXPORT PFNGLBINDPROGRAMNVPROC __glewBindProgramNV; + GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV; + GLEW_FUN_EXPORT PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV; + GLEW_FUN_EXPORT PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV; + GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV; + GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV; + GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV; + GLEW_FUN_EXPORT PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV; + GLEW_FUN_EXPORT PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV; + GLEW_FUN_EXPORT PFNGLISPROGRAMNVPROC __glewIsProgramNV; + GLEW_FUN_EXPORT PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV; + GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV; + GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV; + GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV; + GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV; + GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV; + GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV; + GLEW_FUN_EXPORT PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV; + GLEW_FUN_EXPORT PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV; + + GLEW_FUN_EXPORT PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV; + GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV; + GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV; + GLEW_FUN_EXPORT PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV; + GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV; + GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV; + GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV; + GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV; + GLEW_FUN_EXPORT PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV; + GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV; + GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV; + GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV; + + GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; + GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; + GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; + GLEW_FUN_EXPORT PFNGLFRUSTUMFOESPROC __glewFrustumfOES; + GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES; + GLEW_FUN_EXPORT PFNGLORTHOFOESPROC __glewOrthofOES; + + GLEW_FUN_EXPORT PFNGLERRORSTRINGREGALPROC __glewErrorStringREGAL; + + GLEW_FUN_EXPORT PFNGLGETEXTENSIONREGALPROC __glewGetExtensionREGAL; + GLEW_FUN_EXPORT PFNGLISSUPPORTEDREGALPROC __glewIsSupportedREGAL; + + GLEW_FUN_EXPORT PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS; + GLEW_FUN_EXPORT PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS; + + GLEW_FUN_EXPORT PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS; + GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS; + + GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS; + GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS; + + GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS; + GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS; + + GLEW_FUN_EXPORT PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS; + GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS; + + GLEW_FUN_EXPORT PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS; + GLEW_FUN_EXPORT PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS; + + GLEW_FUN_EXPORT PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX; + GLEW_FUN_EXPORT PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX; + GLEW_FUN_EXPORT PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX; + GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX; + GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX; + GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX; + + GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX; + + GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX; + + GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX; + GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX; + GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX; + GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX; + GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX; + GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX; + + GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX; + + GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX; + + GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX; + + GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX; + GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX; + GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX; + GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX; + + GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX; + + GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI; + GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI; + GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI; + GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI; + GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI; + GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI; + GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI; + + GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX; + + GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN; + GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN; + GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN; + GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN; + GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN; + GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN; + GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN; + GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN; + + GLEW_FUN_EXPORT PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN; + + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN; + + GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN; + GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN; + GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN; + GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN; + GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN; + GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN; -GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN; + GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN; #if defined(GLEW_MX) && !defined(_WIN32) -struct GLEWContextStruct -{ + struct GLEWContextStruct + { #endif /* GLEW_MX */ -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_3; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_4; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_5; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_2; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_3; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_0; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_2; -GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_3; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer; -GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_multi_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_pinned_memory; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_query_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_stencil_operation_extended; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_layer; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator; -GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_viewport_index; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_range; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_program_evaluators; -GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_ycbcr_422; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES2_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_arrays_of_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_base_instance; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_color_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compatibility; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compressed_texture_pixel_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compute_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conservative_depth; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_image; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_debug_output; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_elements_base_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_attrib_location; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_uniform_location; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_coord_conventions; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_layer_viewport; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_no_attachments; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_pixel; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_imaging; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_instanced_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query2; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_invalidate_subdata; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_alignment; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_range; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_matrix_palette; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multi_draw_indirect; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multitexture; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query2; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_program_interface_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robust_buffer_access_behavior; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_application_isolation; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_share_group_isolation; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_shading; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sampler_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_separate_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counters; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_bit_encoding; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_load_store; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_size; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_precision; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_stencil_export; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_storage_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_subroutine; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_100; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_420pack; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_include; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_packing; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow_ambient; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_stencil_texturing; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_border_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object_rgb32; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_range; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_bptc; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_rgtc; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirrored_repeat; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_non_power_of_two; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_levels; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rg; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rgb10_a2ui; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_swizzle; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_view; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_timer_query; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback2; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback3; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transpose_matrix; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_uniform_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_binding; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_blend; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_program; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route; -GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_vertex_shader_output_point_size; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_draw_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_element_array; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_envmap_bumpmap; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_map_object_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_meminfo; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_pn_triangles; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_separate_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_shader_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_text_fragment_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_compression_3dc; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_env_combine3; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_float; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object; -GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_marker; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_paletted_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting; -GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object; -GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator; -GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_image_transform; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_occlusion_test; -GLEW_VAR_EXPORT GLboolean __GLEW_HP_texture_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_cull_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_multimode_draw_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat; -GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists; -GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays; -GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor; -GLEW_VAR_EXPORT GLboolean __GLEW_KHR_debug; -GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_ldr; -GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region; -GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos; -GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fog_distance; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_buffer_unified_memory; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program1_1; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4; -GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format; -GLEW_VAR_EXPORT GLboolean __GLEW_OES_single_precision; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample; -GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample; -GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints; -GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints; -GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_error_string; -GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_extension_query; -GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_log; -GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates; -GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_edge_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_filter4; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_lod; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint; -GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table; -GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_global_alpha; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_mesh_array; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list; -GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog; -GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_3; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_4; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_5; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_0; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_1; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_0; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_1; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_2; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_3; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_0; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_2; + GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_3; + GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample; + GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer; + GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_multi_draw_indirect; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_pinned_memory; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_query_buffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_stencil_operation_extended; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_layer; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator; + GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_viewport_index; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_range; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_program_evaluators; + GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_ycbcr_422; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES2_compatibility; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_compatibility; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_arrays_of_arrays; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_base_instance; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_buffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_color_buffer_float; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compatibility; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compressed_texture_pixel_storage; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compute_shader; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conservative_depth; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_buffer; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_image; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_debug_output; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_buffer_float; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_clamp; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers_blend; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_elements_base_vertex; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_indirect; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_instanced; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_attrib_location; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_uniform_location; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_coord_conventions; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_layer_viewport; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program_shadow; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_no_attachments; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_pixel; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_vertex; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_imaging; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_instanced_arrays; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query2; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_invalidate_subdata; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_alignment; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_range; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_matrix_palette; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multi_draw_indirect; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multisample; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multitexture; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query2; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_program_interface_query; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robust_buffer_access_behavior; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_application_isolation; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_share_group_isolation; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_shading; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sampler_objects; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cube_map; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_separate_shader_objects; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counters; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_bit_encoding; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_load_store; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_size; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_objects; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_precision; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_stencil_export; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_storage_buffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_subroutine; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_lod; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_100; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_420pack; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_include; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_packing; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow_ambient; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_stencil_texturing; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_border_clamp; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object_rgb32; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_range; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_bptc; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_rgtc; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map_array; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirrored_repeat; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_multisample; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_non_power_of_two; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_levels; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_lod; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rectangle; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rg; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rgb10_a2ui; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage_multisample; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_swizzle; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_view; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_timer_query; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback2; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback3; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_instanced; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transpose_matrix; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_uniform_buffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_bgra; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_object; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_64bit; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_binding; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_blend; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_buffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_program; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_shader; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array; + GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos; + GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites; + GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3; + GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route; + GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_vertex_shader_output_point_size; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_draw_buffers; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_element_array; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_envmap_bumpmap; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_fragment_shader; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_map_object_buffer; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_meminfo; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_pn_triangles; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_separate_stencil; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_shader_texture_lod; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_text_fragment_shader; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_compression_3dc; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_env_combine3; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_float; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object; + GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_marker; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_paletted_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_buffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform_color_table; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting; + GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object; + GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator; + GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker; + GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes; + GLEW_VAR_EXPORT GLboolean __GLEW_HP_image_transform; + GLEW_VAR_EXPORT GLboolean __GLEW_HP_occlusion_test; + GLEW_VAR_EXPORT GLboolean __GLEW_HP_texture_lighting; + GLEW_VAR_EXPORT GLboolean __GLEW_IBM_cull_vertex; + GLEW_VAR_EXPORT GLboolean __GLEW_IBM_multimode_draw_arrays; + GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip; + GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data; + GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat; + GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists; + GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp; + GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read; + GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays; + GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor; + GLEW_VAR_EXPORT GLboolean __GLEW_KHR_debug; + GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_ldr; + GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region; + GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack; + GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert; + GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers; + GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos; + GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_fog_distance; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_buffer_unified_memory; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program1_1; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4; + GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture; + GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates; + GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format; + GLEW_VAR_EXPORT GLboolean __GLEW_OES_single_precision; + GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace; + GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample; + GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample; + GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints; + GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints; + GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_error_string; + GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_extension_query; + GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_log; + GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates; + GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_edge_clamp; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_filter4; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_lod; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint; + GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb; + GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix; + GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table; + GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table; + GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data; + GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes; + GLEW_VAR_EXPORT GLboolean __GLEW_SUN_global_alpha; + GLEW_VAR_EXPORT GLboolean __GLEW_SUN_mesh_array; + GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels; + GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum; + GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list; + GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex; + GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading; + GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog; + GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; #ifdef GLEW_MX -}; /* GLEWContextStruct */ + }; /* GLEWContextStruct */ #endif /* GLEW_MX */ /* ------------------------------------------------------------------------- */ @@ -17061,9 +17061,9 @@ /* error codes */ #define GLEW_OK 0 #define GLEW_NO_ERROR 0 -#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ -#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ -#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ +#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ +#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ +#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ /* string codes */ #define GLEW_VERSION 1 @@ -17074,36 +17074,36 @@ /* API */ #ifdef GLEW_MX -typedef struct GLEWContextStruct GLEWContext; -GLEWAPI GLenum GLEWAPIENTRY glewContextInit (GLEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY glewContextIsSupported (const GLEWContext *ctx, const char *name); + typedef struct GLEWContextStruct GLEWContext; + GLEWAPI GLenum GLEWAPIENTRY glewContextInit(GLEWContext * ctx); + GLEWAPI GLboolean GLEWAPIENTRY glewContextIsSupported(const GLEWContext * ctx, const char * name); #define glewInit() glewContextInit(glewGetContext()) #define glewIsSupported(x) glewContextIsSupported(glewGetContext(), x) #define glewIsExtensionSupported(x) glewIsSupported(x) -#define GLEW_GET_VAR(x) (*(const GLboolean*)&(glewGetContext()->x)) +#define GLEW_GET_VAR(x) (*(const GLboolean *)&(glewGetContext()->x)) #ifdef _WIN32 -# define GLEW_GET_FUN(x) glewGetContext()->x +#define GLEW_GET_FUN(x) glewGetContext()->x #else -# define GLEW_GET_FUN(x) x +#define GLEW_GET_FUN(x) x #endif #else /* GLEW_MX */ -GLEWAPI GLenum GLEWAPIENTRY glewInit (void); -GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name); +GLEWAPI GLenum GLEWAPIENTRY glewInit(void); +GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported(const char * name); #define glewIsExtensionSupported(x) glewIsSupported(x) -#define GLEW_GET_VAR(x) (*(const GLboolean*)&x) +#define GLEW_GET_VAR(x) (*(const GLboolean *)&x) #define GLEW_GET_FUN(x) x #endif /* GLEW_MX */ -GLEWAPI GLboolean glewExperimental; -GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name); -GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error); -GLEWAPI const GLubyte * GLEWAPIENTRY glewGetString (GLenum name); + GLEWAPI GLboolean glewExperimental; + GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension(const char * name); + GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString(GLenum error); + GLEWAPI const GLubyte * GLEWAPIENTRY glewGetString(GLenum name); #ifdef __cplusplus } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glew/glxew.h dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glew/glxew.h --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glew/glxew.h 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glew/glxew.h 2020-01-06 23:07:24.000000000 +0000 @@ -94,10 +94,10 @@ #define __GLX_glx_h__ #define __glx_h__ +#include "glew.h" #include -#include #include -#include "glew.h" +#include #ifdef __cplusplus extern "C" { @@ -136,30 +136,30 @@ typedef XID GLXDrawable; typedef XID GLXPixmap; #ifdef __sun -typedef struct __glXContextRec *GLXContext; +typedef struct __glXContextRec * GLXContext; #else -typedef struct __GLXcontextRec *GLXContext; +typedef struct __GLXcontextRec * GLXContext; #endif -typedef unsigned int GLXVideoDeviceNV; +typedef unsigned int GLXVideoDeviceNV; -extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase); -extern Bool glXQueryVersion (Display *dpy, int *major, int *minor); -extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value); -extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList); -extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap); -extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix); -extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); -extern void glXDestroyContext (Display *dpy, GLXContext ctx); -extern Bool glXIsDirect (Display *dpy, GLXContext ctx); -extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask); -extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx); -extern GLXContext glXGetCurrentContext (void); -extern GLXDrawable glXGetCurrentDrawable (void); -extern void glXWaitGL (void); -extern void glXWaitX (void); -extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable); -extern void glXUseXFont (Font font, int first, int count, int listBase); +extern Bool glXQueryExtension(Display * dpy, int * errorBase, int * eventBase); +extern Bool glXQueryVersion(Display * dpy, int * major, int * minor); +extern int glXGetConfig(Display * dpy, XVisualInfo * vis, int attrib, int * value); +extern XVisualInfo * glXChooseVisual(Display * dpy, int screen, int * attribList); +extern GLXPixmap glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap); +extern void glXDestroyGLXPixmap(Display * dpy, GLXPixmap pix); +extern GLXContext glXCreateContext(Display * dpy, XVisualInfo * vis, GLXContext shareList, Bool direct); +extern void glXDestroyContext(Display * dpy, GLXContext ctx); +extern Bool glXIsDirect(Display * dpy, GLXContext ctx); +extern void glXCopyContext(Display * dpy, GLXContext src, GLXContext dst, GLulong mask); +extern Bool glXMakeCurrent(Display * dpy, GLXDrawable drawable, GLXContext ctx); +extern GLXContext glXGetCurrentContext(void); +extern GLXDrawable glXGetCurrentDrawable(void); +extern void glXWaitGL(void); +extern void glXWaitX(void); +extern void glXSwapBuffers(Display * dpy, GLXDrawable drawable); +extern void glXUseXFont(Font font, int first, int count, int listBase); #define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0) @@ -174,9 +174,9 @@ #define GLX_VERSION 0x2 #define GLX_EXTENSIONS 0x3 -extern const char* glXQueryExtensionsString (Display *dpy, int screen); -extern const char* glXGetClientString (Display *dpy, int name); -extern const char* glXQueryServerString (Display *dpy, int screen, int name); +extern const char * glXQueryExtensionsString(Display * dpy, int screen); +extern const char * glXGetClientString(Display * dpy, int name); +extern const char * glXQueryServerString(Display * dpy, int screen, int name); #define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1) @@ -187,7 +187,7 @@ #ifndef GLX_VERSION_1_2 #define GLX_VERSION_1_2 1 -typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void); +typedef Display * (*PFNGLXGETCURRENTDISPLAYPROC)(void); #define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay) @@ -260,43 +260,44 @@ typedef XID GLXFBConfigID; typedef XID GLXPbuffer; typedef XID GLXWindow; -typedef struct __GLXFBConfigRec *GLXFBConfig; +typedef struct __GLXFBConfigRec * GLXFBConfig; -typedef struct { - int event_type; - int draw_type; - unsigned long serial; - Bool send_event; - Display *display; - GLXDrawable drawable; - unsigned int buffer_mask; - unsigned int aux_buffer; - int x, y; - int width, height; - int count; +typedef struct +{ + int event_type; + int draw_type; + unsigned long serial; + Bool send_event; + Display * display; + GLXDrawable drawable; + unsigned int buffer_mask; + unsigned int aux_buffer; + int x, y; + int width, height; + int count; } GLXPbufferClobberEvent; typedef union __GLXEvent { - GLXPbufferClobberEvent glxpbufferclobber; - long pad[24]; + GLXPbufferClobberEvent glxpbufferclobber; + long pad[24]; } GLXEvent; -typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); -typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); -typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); -typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); -typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); -typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); -typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); -typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); -typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); -typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx); -typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); -typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); -typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); +typedef GLXFBConfig * (*PFNGLXCHOOSEFBCONFIGPROC)(Display * dpy, int screen, const int * attrib_list, int * nelements); +typedef GLXContext (*PFNGLXCREATENEWCONTEXTPROC)(Display * dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +typedef GLXPbuffer (*PFNGLXCREATEPBUFFERPROC)(Display * dpy, GLXFBConfig config, const int * attrib_list); +typedef GLXPixmap (*PFNGLXCREATEPIXMAPPROC)(Display * dpy, GLXFBConfig config, Pixmap pixmap, const int * attrib_list); +typedef GLXWindow (*PFNGLXCREATEWINDOWPROC)(Display * dpy, GLXFBConfig config, Window win, const int * attrib_list); +typedef void (*PFNGLXDESTROYPBUFFERPROC)(Display * dpy, GLXPbuffer pbuf); +typedef void (*PFNGLXDESTROYPIXMAPPROC)(Display * dpy, GLXPixmap pixmap); +typedef void (*PFNGLXDESTROYWINDOWPROC)(Display * dpy, GLXWindow win); +typedef GLXDrawable (*PFNGLXGETCURRENTREADDRAWABLEPROC)(void); +typedef int (*PFNGLXGETFBCONFIGATTRIBPROC)(Display * dpy, GLXFBConfig config, int attribute, int * value); +typedef GLXFBConfig * (*PFNGLXGETFBCONFIGSPROC)(Display * dpy, int screen, int * nelements); +typedef void (*PFNGLXGETSELECTEDEVENTPROC)(Display * dpy, GLXDrawable draw, unsigned long * event_mask); +typedef XVisualInfo * (*PFNGLXGETVISUALFROMFBCONFIGPROC)(Display * dpy, GLXFBConfig config); +typedef Bool (*PFNGLXMAKECONTEXTCURRENTPROC)(Display * display, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +typedef int (*PFNGLXQUERYCONTEXTPROC)(Display * dpy, GLXContext ctx, int attribute, int * value); +typedef void (*PFNGLXQUERYDRAWABLEPROC)(Display * dpy, GLXDrawable draw, int attribute, unsigned int * value); +typedef void (*PFNGLXSELECTEVENTPROC)(Display * dpy, GLXDrawable draw, unsigned long event_mask); #define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig) #define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext) @@ -328,7 +329,7 @@ #define GLX_SAMPLE_BUFFERS 100000 #define GLX_SAMPLES 100001 -extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); +extern void (*glXGetProcAddress(const GLubyte * procName))(void); #define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4) @@ -377,7 +378,7 @@ #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 #define GLX_CONTEXT_FLAGS_ARB 0x2094 -typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); +typedef GLXContext (*PFNGLXCREATECONTEXTATTRIBSARBPROC)(Display * dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int * attrib_list); #define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) @@ -440,7 +441,7 @@ #ifndef GLX_ARB_get_proc_address #define GLX_ARB_get_proc_address 1 -extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void); +extern void (*glXGetProcAddressARB(const GLubyte * procName))(void); #define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address) @@ -543,9 +544,9 @@ #define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821 #define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822 -typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); -typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); +typedef void (*PFNGLXBINDTEXIMAGEATIPROC)(Display * dpy, GLXPbuffer pbuf, int buffer); +typedef void (*PFNGLXDRAWABLEATTRIBATIPROC)(Display * dpy, GLXDrawable draw, const int * attrib_list); +typedef void (*PFNGLXRELEASETEXIMAGEATIPROC)(Display * dpy, GLXPbuffer pbuf, int buffer); #define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI) #define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI) @@ -611,10 +612,10 @@ typedef XID GLXContextID; -typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context); -typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); -typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID); -typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value); +typedef void (*PFNGLXFREECONTEXTEXTPROC)(Display * dpy, GLXContext context); +typedef GLXContextID (*PFNGLXGETCONTEXTIDEXTPROC)(const GLXContext context); +typedef GLXContext (*PFNGLXIMPORTCONTEXTEXTPROC)(Display * dpy, GLXContextID contextID); +typedef int (*PFNGLXQUERYCONTEXTINFOEXTPROC)(Display * dpy, GLXContext context, int attribute, int * value); #define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT) #define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT) @@ -642,7 +643,7 @@ #define GLX_SWAP_INTERVAL_EXT 0x20F1 #define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 -typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval); +typedef void (*PFNGLXSWAPINTERVALEXTPROC)(Display * dpy, GLXDrawable drawable, int interval); #define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT) @@ -698,8 +699,8 @@ #define GLX_AUX8_EXT 0x20EA #define GLX_AUX9_EXT 0x20EB -typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer); +typedef void (*PFNGLXBINDTEXIMAGEEXTPROC)(Display * display, GLXDrawable drawable, int buffer, const int * attrib_list); +typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC)(Display * display, GLXDrawable drawable, int buffer); #define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) #define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) @@ -766,7 +767,7 @@ #ifndef GLX_MESA_agp_offset #define GLX_MESA_agp_offset 1 -typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer); +typedef unsigned int (*PFNGLXGETAGPOFFSETMESAPROC)(const void * pointer); #define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA) @@ -779,7 +780,7 @@ #ifndef GLX_MESA_copy_sub_buffer #define GLX_MESA_copy_sub_buffer 1 -typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height); +typedef void (*PFNGLXCOPYSUBBUFFERMESAPROC)(Display * dpy, GLXDrawable drawable, int x, int y, int width, int height); #define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA) @@ -792,7 +793,7 @@ #ifndef GLX_MESA_pixmap_colormap #define GLX_MESA_pixmap_colormap 1 -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); +typedef GLXPixmap (*PFNGLXCREATEGLXPIXMAPMESAPROC)(Display * dpy, XVisualInfo * visual, Pixmap pixmap, Colormap cmap); #define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA) @@ -805,7 +806,7 @@ #ifndef GLX_MESA_release_buffers #define GLX_MESA_release_buffers 1 -typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d); +typedef Bool (*PFNGLXRELEASEBUFFERSMESAPROC)(Display * dpy, GLXDrawable d); #define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA) @@ -821,7 +822,7 @@ #define GLX_3DFX_WINDOW_MODE_MESA 0x1 #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 -typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode); +typedef GLboolean (*PFNGLXSET3DFXMODEMESAPROC)(GLint mode); #define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA) @@ -834,8 +835,8 @@ #ifndef GLX_MESA_swap_control #define GLX_MESA_swap_control 1 -typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC) (void); -typedef int ( * PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval); +typedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void); +typedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval); #define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA) #define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA) @@ -849,7 +850,7 @@ #ifndef GLX_NV_copy_image #define GLX_NV_copy_image 1 -typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +typedef void (*PFNGLXCOPYIMAGESUBDATANVPROC)(Display * dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); #define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV) @@ -887,8 +888,8 @@ #define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 -typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); -typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); +typedef int (*PFNGLXBINDVIDEODEVICENVPROC)(Display * dpy, unsigned int video_slot, unsigned int video_device, const int * attrib_list); +typedef unsigned int * (*PFNGLXENUMERATEVIDEODEVICESNVPROC)(Display * dpy, int screen, int * nelements); #define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) #define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) @@ -902,12 +903,12 @@ #ifndef GLX_NV_swap_group #define GLX_NV_swap_group 1 -typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier); -typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group); -typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count); -typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); -typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); -typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen); +typedef Bool (*PFNGLXBINDSWAPBARRIERNVPROC)(Display * dpy, GLuint group, GLuint barrier); +typedef Bool (*PFNGLXJOINSWAPGROUPNVPROC)(Display * dpy, GLXDrawable drawable, GLuint group); +typedef Bool (*PFNGLXQUERYFRAMECOUNTNVPROC)(Display * dpy, int screen, GLuint * count); +typedef Bool (*PFNGLXQUERYMAXSWAPGROUPSNVPROC)(Display * dpy, int screen, GLuint * maxGroups, GLuint * maxBarriers); +typedef Bool (*PFNGLXQUERYSWAPGROUPNVPROC)(Display * dpy, GLXDrawable drawable, GLuint * group, GLuint * barrier); +typedef Bool (*PFNGLXRESETFRAMECOUNTNVPROC)(Display * dpy, int screen); #define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) #define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV) @@ -925,8 +926,8 @@ #ifndef GLX_NV_vertex_array_range #define GLX_NV_vertex_array_range 1 -typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); -typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); +typedef void * (*PFNGLXALLOCATEMEMORYNVPROC)(GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); +typedef void (*PFNGLXFREEMEMORYNVPROC)(void * pointer); #define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV) #define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV) @@ -946,11 +947,11 @@ typedef XID GLXVideoCaptureDeviceNV; -typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); -typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int *nelements); -typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); -typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); -typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); +typedef int (*PFNGLXBINDVIDEOCAPTUREDEVICENVPROC)(Display * dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); +typedef GLXVideoCaptureDeviceNV * (*PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC)(Display * dpy, int screen, int * nelements); +typedef void (*PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC)(Display * dpy, GLXVideoCaptureDeviceNV device); +typedef int (*PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC)(Display * dpy, GLXVideoCaptureDeviceNV device, int attribute, int * value); +typedef void (*PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC)(Display * dpy, GLXVideoCaptureDeviceNV device); #define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV) #define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV) @@ -978,12 +979,12 @@ #define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB #define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC -typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); -typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); -typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice); -typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf); -typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); +typedef int (*PFNGLXBINDVIDEOIMAGENVPROC)(Display * dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); +typedef int (*PFNGLXGETVIDEODEVICENVPROC)(Display * dpy, int screen, int numVideoDevices, GLXVideoDeviceNV * pVideoDevice); +typedef int (*PFNGLXGETVIDEOINFONVPROC)(Display * dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long * pulCounterOutputPbuffer, unsigned long * pulCounterOutputVideo); +typedef int (*PFNGLXRELEASEVIDEODEVICENVPROC)(Display * dpy, int screen, GLXVideoDeviceNV VideoDevice); +typedef int (*PFNGLXRELEASEVIDEOIMAGENVPROC)(Display * dpy, GLXPbuffer pbuf); +typedef int (*PFNGLXSENDPBUFFERTOVIDEONVPROC)(Display * dpy, GLXPbuffer pbuf, int iBufferType, unsigned long * pulCounterPbuffer, GLboolean bBlock); #define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) #define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) @@ -1015,11 +1016,11 @@ #ifndef GLX_OML_sync_control #define GLX_OML_sync_control 1 -typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator); -typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc); -typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); -typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc); -typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc); +typedef Bool (*PFNGLXGETMSCRATEOMLPROC)(Display * dpy, GLXDrawable drawable, int32_t * numerator, int32_t * denominator); +typedef Bool (*PFNGLXGETSYNCVALUESOMLPROC)(Display * dpy, GLXDrawable drawable, int64_t * ust, int64_t * msc, int64_t * sbc); +typedef int64_t (*PFNGLXSWAPBUFFERSMSCOMLPROC)(Display * dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); +typedef Bool (*PFNGLXWAITFORMSCOMLPROC)(Display * dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t * ust, int64_t * msc, int64_t * sbc); +typedef Bool (*PFNGLXWAITFORSBCOMLPROC)(Display * dpy, GLXDrawable drawable, int64_t target_sbc, int64_t * ust, int64_t * msc, int64_t * sbc); #define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML) #define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML) @@ -1103,14 +1104,14 @@ #define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 typedef XID GLXFBConfigIDSGIX; -typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; +typedef struct __GLXFBConfigRec * GLXFBConfigSGIX; -typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap); -typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value); -typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis); -typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config); +typedef GLXFBConfigSGIX * (*PFNGLXCHOOSEFBCONFIGSGIXPROC)(Display * dpy, int screen, const int * attrib_list, int * nelements); +typedef GLXContext (*PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC)(Display * dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +typedef GLXPixmap (*PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC)(Display * dpy, GLXFBConfig config, Pixmap pixmap); +typedef int (*PFNGLXGETFBCONFIGATTRIBSGIXPROC)(Display * dpy, GLXFBConfigSGIX config, int attribute, int * value); +typedef GLXFBConfigSGIX (*PFNGLXGETFBCONFIGFROMVISUALSGIXPROC)(Display * dpy, XVisualInfo * vis); +typedef XVisualInfo * (*PFNGLXGETVISUALFROMFBCONFIGSGIXPROC)(Display * dpy, GLXFBConfig config); #define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX) #define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX) @@ -1139,43 +1140,47 @@ #define GLX_BAD_HYPERPIPE_SGIX 92 #define GLX_HYPERPIPE_ID_SGIX 0x8030 -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int networkId; +typedef struct +{ + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int networkId; } GLXHyperpipeNetworkSGIX; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int XOrigin; - int YOrigin; - int maxHeight; - int maxWidth; +typedef struct +{ + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int XOrigin; + int YOrigin; + int maxHeight; + int maxWidth; } GLXPipeRectLimits; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int channel; - unsigned int participationType; - int timeSlice; +typedef struct +{ + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int channel; + unsigned int participationType; + int timeSlice; } GLXHyperpipeConfigSGIX; -typedef struct { - char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; - int srcXOrigin; - int srcYOrigin; - int srcWidth; - int srcHeight; - int destXOrigin; - int destYOrigin; - int destWidth; - int destHeight; +typedef struct +{ + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int srcXOrigin; + int srcYOrigin; + int srcWidth; + int srcHeight; + int destXOrigin; + int destYOrigin; + int destWidth; + int destHeight; } GLXPipeRect; -typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); -typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); -typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); -typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); -typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); -typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); -typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); +typedef int (*PFNGLXBINDHYPERPIPESGIXPROC)(Display * dpy, int hpId); +typedef int (*PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC)(Display * dpy, int hpId); +typedef int (*PFNGLXHYPERPIPEATTRIBSGIXPROC)(Display * dpy, int timeSlice, int attrib, int size, void * attribList); +typedef int (*PFNGLXHYPERPIPECONFIGSGIXPROC)(Display * dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX * cfg, int * hpId); +typedef int (*PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC)(Display * dpy, int timeSlice, int attrib, int size, void * returnAttribList); +typedef int (*PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC)(Display * dpy, int timeSlice, int attrib, int size, void * attribList, void * returnAttribList); +typedef GLXHyperpipeConfigSGIX * (*PFNGLXQUERYHYPERPIPECONFIGSGIXPROC)(Display * dpy, int hpId, int * npipes); +typedef GLXHyperpipeNetworkSGIX * (*PFNGLXQUERYHYPERPIPENETWORKSGIXPROC)(Display * dpy, int * npipes); #define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX) #define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX) @@ -1222,13 +1227,26 @@ #define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 typedef XID GLXPbufferSGIX; -typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX; - -typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list); -typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask); -typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value); -typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask); +typedef struct +{ + int type; + unsigned long serial; + Bool send_event; + Display * display; + GLXDrawable drawable; + int event_type; + int draw_type; + unsigned int mask; + int x, y; + int width, height; + int count; +} GLXBufferClobberEventSGIX; + +typedef GLXPbuffer (*PFNGLXCREATEGLXPBUFFERSGIXPROC)(Display * dpy, GLXFBConfig config, unsigned int width, unsigned int height, int * attrib_list); +typedef void (*PFNGLXDESTROYGLXPBUFFERSGIXPROC)(Display * dpy, GLXPbuffer pbuf); +typedef void (*PFNGLXGETSELECTEDEVENTSGIXPROC)(Display * dpy, GLXDrawable drawable, unsigned long * mask); +typedef void (*PFNGLXQUERYGLXPBUFFERSGIXPROC)(Display * dpy, GLXPbuffer pbuf, int attribute, unsigned int * value); +typedef void (*PFNGLXSELECTEVENTSGIXPROC)(Display * dpy, GLXDrawable drawable, unsigned long mask); #define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX) #define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX) @@ -1245,8 +1263,8 @@ #ifndef GLX_SGIX_swap_barrier #define GLX_SGIX_swap_barrier 1 -typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); -typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); +typedef void (*PFNGLXBINDSWAPBARRIERSGIXPROC)(Display * dpy, GLXDrawable drawable, int barrier); +typedef Bool (*PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC)(Display * dpy, int screen, int * max); #define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX) #define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX) @@ -1260,7 +1278,7 @@ #ifndef GLX_SGIX_swap_group #define GLX_SGIX_swap_group 1 -typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); +typedef void (*PFNGLXJOINSWAPGROUPSGIXPROC)(Display * dpy, GLXDrawable drawable, GLXDrawable member); #define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX) @@ -1276,11 +1294,11 @@ #define GLX_SYNC_FRAME_SGIX 0x00000000 #define GLX_SYNC_SWAP_SGIX 0x00000001 -typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window); -typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h); -typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype); -typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h); -typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); +typedef int (*PFNGLXBINDCHANNELTOWINDOWSGIXPROC)(Display * display, int screen, int channel, Window window); +typedef int (*PFNGLXCHANNELRECTSGIXPROC)(Display * display, int screen, int channel, int x, int y, int w, int h); +typedef int (*PFNGLXCHANNELRECTSYNCSGIXPROC)(Display * display, int screen, int channel, GLenum synctype); +typedef int (*PFNGLXQUERYCHANNELDELTASSGIXPROC)(Display * display, int screen, int channel, int * x, int * y, int * w, int * h); +typedef int (*PFNGLXQUERYCHANNELRECTSGIXPROC)(Display * display, int screen, int channel, int * dx, int * dy, int * dw, int * dh); #define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX) #define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX) @@ -1308,7 +1326,7 @@ #ifndef GLX_SGI_cushion #define GLX_SGI_cushion 1 -typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion); +typedef void (*PFNGLXCUSHIONSGIPROC)(Display * dpy, Window window, float cushion); #define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI) @@ -1321,8 +1339,8 @@ #ifndef GLX_SGI_make_current_read #define GLX_SGI_make_current_read 1 -typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); -typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +typedef GLXDrawable (*PFNGLXGETCURRENTREADDRAWABLESGIPROC)(void); +typedef Bool (*PFNGLXMAKECURRENTREADSGIPROC)(Display * dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); #define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI) #define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI) @@ -1336,7 +1354,7 @@ #ifndef GLX_SGI_swap_control #define GLX_SGI_swap_control 1 -typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); +typedef int (*PFNGLXSWAPINTERVALSGIPROC)(int interval); #define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI) @@ -1349,8 +1367,8 @@ #ifndef GLX_SGI_video_sync #define GLX_SGI_video_sync 1 -typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int* count); -typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count); +typedef int (*PFNGLXGETVIDEOSYNCSGIPROC)(unsigned int * count); +typedef int (*PFNGLXWAITVIDEOSYNCSGIPROC)(int divisor, int remainder, unsigned int * count); #define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI) #define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI) @@ -1364,7 +1382,7 @@ #ifndef GLX_SUN_get_transparent_index #define GLX_SUN_get_transparent_index 1 -typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex); +typedef Status (*PFNGLXGETTRANSPARENTINDEXSUNPROC)(Display * dpy, Window overlay, Window underlay, unsigned long * pTransparentIndex); #define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN) @@ -1380,8 +1398,8 @@ #define GLX_VIDEO_RESIZE_SUN 0x8171 #define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD -typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor); -typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor); +typedef int (*PFNGLXGETVIDEORESIZESUNPROC)(Display * display, GLXDrawable window, float * factor); +typedef int (*PFNGLXVIDEORESIZESUNPROC)(Display * display, GLXDrawable window, float factor); #define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN) #define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN) @@ -1536,70 +1554,70 @@ { #endif /* GLEW_MX */ -GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0; -GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1; -GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2; -GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_3; -GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_4; -GLXEW_VAR_EXPORT GLboolean __GLXEW_3DFX_multisample; -GLXEW_VAR_EXPORT GLboolean __GLXEW_AMD_gpu_association; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_profile; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_get_proc_address; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_multisample; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_application_isolation; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_share_group_isolation; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; -GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_render_texture; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es_profile; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_import_context; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_scene_marker; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control_tear; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_info; -GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_rating; -GLXEW_VAR_EXPORT GLboolean __GLXEW_INTEL_swap_event; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_agp_offset; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_release_buffers; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode; -GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_swap_control; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_image; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_float_buffer; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multisample_coverage; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_present_video; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_swap_group; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_vertex_array_range; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_capture; -GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_out; -GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_swap_method; -GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_sync_control; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_blended_overlay; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_color_range; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_multisample; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_shared_multisample; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_fbconfig; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_hyperpipe; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_pbuffer; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_barrier; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_group; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_video_resize; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_visual_select_group; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_cushion; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_make_current_read; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_swap_control; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_video_sync; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_get_transparent_index; -GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_video_resize; + GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0; + GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1; + GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2; + GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_3; + GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_4; + GLXEW_VAR_EXPORT GLboolean __GLXEW_3DFX_multisample; + GLXEW_VAR_EXPORT GLboolean __GLXEW_AMD_gpu_association; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_profile; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_get_proc_address; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_multisample; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_application_isolation; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_share_group_isolation; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; + GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_render_texture; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es_profile; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_import_context; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_scene_marker; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control_tear; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_info; + GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_rating; + GLXEW_VAR_EXPORT GLboolean __GLXEW_INTEL_swap_event; + GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_agp_offset; + GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer; + GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap; + GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_release_buffers; + GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode; + GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_swap_control; + GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_image; + GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_float_buffer; + GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multisample_coverage; + GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_present_video; + GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_swap_group; + GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_vertex_array_range; + GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_capture; + GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_out; + GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_swap_method; + GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_sync_control; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_blended_overlay; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_color_range; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_multisample; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_shared_multisample; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_fbconfig; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_hyperpipe; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_pbuffer; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_barrier; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_group; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_video_resize; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_visual_select_group; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_cushion; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_make_current_read; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_swap_control; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_video_sync; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_get_transparent_index; + GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_video_resize; #ifdef GLEW_MX }; /* GLXEWContextStruct */ @@ -1610,25 +1628,25 @@ #ifdef GLEW_MX typedef struct GLXEWContextStruct GLXEWContext; -GLEWAPI GLenum GLEWAPIENTRY glxewContextInit (GLXEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const GLXEWContext *ctx, const char *name); +GLEWAPI GLenum GLEWAPIENTRY glxewContextInit(GLXEWContext * ctx); +GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported(const GLXEWContext * ctx, const char * name); #define glxewInit() glxewContextInit(glxewGetContext()) #define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x) -#define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x)) +#define GLXEW_GET_VAR(x) (*(const GLboolean *)&(glxewGetContext()->x)) #define GLXEW_GET_FUN(x) x #else /* GLEW_MX */ -#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) +#define GLXEW_GET_VAR(x) (*(const GLboolean *)&x) #define GLXEW_GET_FUN(x) x -GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name); +GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported(const char * name); #endif /* GLEW_MX */ -GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name); +GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension(const char * name); #ifdef __cplusplus } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glew/wglew.h dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glew/wglew.h --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glew/wglew.h 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glew/wglew.h 2020-01-06 23:07:24.000000000 +0000 @@ -63,11 +63,11 @@ #define __wglext_h_ #if !defined(WINAPI) -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN 1 -# endif +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif #include -# undef WIN32_LEAN_AND_MEAN +#undef WIN32_LEAN_AND_MEAN #endif /* @@ -75,13 +75,13 @@ * GLEW_BUILD is set when building the DLL version. */ #ifdef GLEW_STATIC -# define GLEWAPI extern +#define GLEWAPI extern +#else +#ifdef GLEW_BUILD +#define GLEWAPI extern __declspec(dllexport) #else -# ifdef GLEW_BUILD -# define GLEWAPI extern __declspec(dllexport) -# else -# define GLEWAPI extern __declspec(dllimport) -# endif +#define GLEWAPI extern __declspec(dllimport) +#endif #endif #ifdef __cplusplus @@ -110,7 +110,7 @@ #define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 #define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 -typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); +typedef BOOL(WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC)(HDC hDC, UINT uState); #define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL) @@ -134,15 +134,15 @@ #define WGL_GPU_NUM_RB_AMD 0x21A7 #define WGL_GPU_NUM_SPI_AMD 0x21A8 -typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); -typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int* attribList); -typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); -typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); -typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); -typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids); -typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data); -typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); +typedef VOID(WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC)(HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef HGLRC(WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC)(UINT id); +typedef HGLRC(WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)(UINT id, HGLRC hShareContext, const int * attribList); +typedef BOOL(WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC)(HGLRC hglrc); +typedef UINT(WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC)(HGLRC hglrc); +typedef HGLRC(WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void); +typedef UINT(WINAPI * PFNWGLGETGPUIDSAMDPROC)(UINT maxCount, UINT * ids); +typedef INT(WINAPI * PFNWGLGETGPUINFOAMDPROC)(UINT id, INT property, GLenum dataType, UINT size, void * data); +typedef BOOL(WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(HGLRC hglrc); #define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD) #define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD) @@ -168,10 +168,10 @@ #define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 #define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 -typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); -typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); -typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); -typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); +typedef HANDLE(WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC)(HDC hDC, int iLayerPlane, UINT uType); +typedef VOID(WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC)(HANDLE hRegion); +typedef BOOL(WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC)(HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); +typedef BOOL(WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC)(HANDLE hRegion, int x, int y, int width, int height); #define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB) #define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB) @@ -196,7 +196,7 @@ #define ERROR_INVALID_VERSION_ARB 0x2095 #define ERROR_INVALID_PROFILE_ARB 0x2096 -typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); +typedef HGLRC(WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC hDC, HGLRC hShareContext, const int * attribList); #define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB) @@ -236,7 +236,7 @@ #ifndef WGL_ARB_extensions_string #define WGL_ARB_extensions_string 1 -typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); +typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc); #define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB) @@ -263,8 +263,8 @@ #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); +typedef HDC(WINAPI * PFNWGLGETCURRENTREADDCARBPROC)(VOID); +typedef BOOL(WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc); #define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB) #define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB) @@ -301,11 +301,11 @@ DECLARE_HANDLE(HPBUFFERARB); -typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); +typedef HPBUFFERARB(WINAPI * PFNWGLCREATEPBUFFERARBPROC)(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int * piAttribList); +typedef BOOL(WINAPI * PFNWGLDESTROYPBUFFERARBPROC)(HPBUFFERARB hPbuffer); +typedef HDC(WINAPI * PFNWGLGETPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer); +typedef BOOL(WINAPI * PFNWGLQUERYPBUFFERARBPROC)(HPBUFFERARB hPbuffer, int iAttribute, int * piValue); +typedef int(WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer, HDC hDC); #define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB) #define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB) @@ -372,9 +372,9 @@ #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues); +typedef BOOL(WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC hdc, const int * piAttribIList, const FLOAT * pfAttribFList, UINT nMaxFormats, int * piFormats, UINT * nNumFormats); +typedef BOOL(WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC)(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int * piAttributes, FLOAT * pfValues); +typedef BOOL(WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC)(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int * piAttributes, int * piValues); #define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB) #define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB) @@ -434,9 +434,9 @@ #define WGL_AUX8_ARB 0x208F #define WGL_AUX9_ARB 0x2090 -typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList); +typedef BOOL(WINAPI * PFNWGLBINDTEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer); +typedef BOOL(WINAPI * PFNWGLRELEASETEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer); +typedef BOOL(WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC)(HPBUFFERARB hPbuffer, const int * piAttribList); #define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB) #define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB) @@ -508,10 +508,10 @@ #ifndef WGL_EXT_display_color_table #define WGL_EXT_display_color_table 1 -typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length); +typedef GLboolean(WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC)(GLushort id); +typedef GLboolean(WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC)(GLushort id); +typedef void(WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC)(GLushort id); +typedef GLboolean(WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC)(GLushort * table, GLuint length); #define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT) #define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT) @@ -527,7 +527,7 @@ #ifndef WGL_EXT_extensions_string #define WGL_EXT_extensions_string 1 -typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); +typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC)(void); #define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT) @@ -553,8 +553,8 @@ #define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); +typedef HDC(WINAPI * PFNWGLGETCURRENTREADDCEXTPROC)(VOID); +typedef BOOL(WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc); #define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT) #define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT) @@ -592,11 +592,11 @@ DECLARE_HANDLE(HPBUFFEREXT); -typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); +typedef HPBUFFEREXT(WINAPI * PFNWGLCREATEPBUFFEREXTPROC)(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int * piAttribList); +typedef BOOL(WINAPI * PFNWGLDESTROYPBUFFEREXTPROC)(HPBUFFEREXT hPbuffer); +typedef HDC(WINAPI * PFNWGLGETPBUFFERDCEXTPROC)(HPBUFFEREXT hPbuffer); +typedef BOOL(WINAPI * PFNWGLQUERYPBUFFEREXTPROC)(HPBUFFEREXT hPbuffer, int iAttribute, int * piValue); +typedef int(WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC)(HPBUFFEREXT hPbuffer, HDC hDC); #define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT) #define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT) @@ -659,9 +659,9 @@ #define WGL_TYPE_RGBA_EXT 0x202B #define WGL_TYPE_COLORINDEX_EXT 0x202C -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues); +typedef BOOL(WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC)(HDC hdc, const int * piAttribIList, const FLOAT * pfAttribFList, UINT nMaxFormats, int * piFormats, UINT * nNumFormats); +typedef BOOL(WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC)(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int * piAttributes, FLOAT * pfValues); +typedef BOOL(WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC)(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int * piAttributes, int * piValues); #define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT) #define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT) @@ -687,8 +687,8 @@ #ifndef WGL_EXT_swap_control #define WGL_EXT_swap_control 1 -typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); -typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); +typedef int(WINAPI * PFNWGLGETSWAPINTERVALEXTPROC)(void); +typedef BOOL(WINAPI * PFNWGLSWAPINTERVALEXTPROC)(int interval); #define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT) #define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT) @@ -716,8 +716,8 @@ #define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 #define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 -typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); +typedef BOOL(WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, int iAttribute, int * piValue); +typedef BOOL(WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, int iAttribute, const int * piValue); #define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D) #define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D) @@ -734,10 +734,10 @@ #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue); -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); +typedef BOOL(WINAPI * PFNWGLGETGAMMATABLEI3DPROC)(HDC hDC, int iEntries, USHORT * puRed, USHORT * puGreen, USHORT * puBlue); +typedef BOOL(WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int iAttribute, int * piValue); +typedef BOOL(WINAPI * PFNWGLSETGAMMATABLEI3DPROC)(HDC hDC, int iEntries, const USHORT * puRed, const USHORT * puGreen, const USHORT * puBlue); +typedef BOOL(WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int iAttribute, const int * piValue); #define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D) #define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D) @@ -763,18 +763,18 @@ #define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B #define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C -typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource); -typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay); +typedef BOOL(WINAPI * PFNWGLDISABLEGENLOCKI3DPROC)(HDC hDC); +typedef BOOL(WINAPI * PFNWGLENABLEGENLOCKI3DPROC)(HDC hDC); +typedef BOOL(WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT uRate); +typedef BOOL(WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT uDelay); +typedef BOOL(WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT uEdge); +typedef BOOL(WINAPI * PFNWGLGENLOCKSOURCEI3DPROC)(HDC hDC, UINT uSource); +typedef BOOL(WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT * uRate); +typedef BOOL(WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT * uDelay); +typedef BOOL(WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT * uEdge); +typedef BOOL(WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC)(HDC hDC, UINT * uSource); +typedef BOOL(WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC)(HDC hDC, BOOL * pFlag); +typedef BOOL(WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC)(HDC hDC, UINT * uMaxLineDelay, UINT * uMaxPixelDelay); #define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D) #define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D) @@ -801,10 +801,10 @@ #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 #define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 -typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count); -typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); -typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); -typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count); +typedef BOOL(WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC)(HDC hdc, HANDLE * pEvent, LPVOID * pAddress, DWORD * pSize, UINT count); +typedef LPVOID(WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC)(HDC hDC, DWORD dwSize, UINT uFlags); +typedef BOOL(WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC)(HDC hDC, LPVOID pAddress); +typedef BOOL(WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC)(HDC hdc, LPVOID * pAddress, UINT count); #define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D) #define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D) @@ -820,10 +820,10 @@ #ifndef WGL_I3D_swap_frame_lock #define WGL_I3D_swap_frame_lock 1 -typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); +typedef BOOL(WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC)(VOID); +typedef BOOL(WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC)(VOID); +typedef BOOL(WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC)(BOOL * pFlag); +typedef BOOL(WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC)(BOOL * pFlag); #define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D) #define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D) @@ -839,10 +839,10 @@ #ifndef WGL_I3D_swap_frame_usage #define WGL_I3D_swap_frame_usage 1 -typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); +typedef BOOL(WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC)(void); +typedef BOOL(WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC)(void); +typedef BOOL(WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC)(float * pUsage); +typedef BOOL(WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC)(DWORD * pFrameCount, DWORD * pMissedFrames, float * pLastMissedUsage); #define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D) #define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D) @@ -862,14 +862,14 @@ #define WGL_ACCESS_READ_WRITE_NV 0x0001 #define WGL_ACCESS_WRITE_DISCARD_NV 0x0002 -typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); -typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); -typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access); -typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice); -typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access); -typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle); -typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); -typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject); +typedef BOOL(WINAPI * PFNWGLDXCLOSEDEVICENVPROC)(HANDLE hDevice); +typedef BOOL(WINAPI * PFNWGLDXLOCKOBJECTSNVPROC)(HANDLE hDevice, GLint count, HANDLE * hObjects); +typedef BOOL(WINAPI * PFNWGLDXOBJECTACCESSNVPROC)(HANDLE hObject, GLenum access); +typedef HANDLE(WINAPI * PFNWGLDXOPENDEVICENVPROC)(void * dxDevice); +typedef HANDLE(WINAPI * PFNWGLDXREGISTEROBJECTNVPROC)(HANDLE hDevice, void * dxObject, GLuint name, GLenum type, GLenum access); +typedef BOOL(WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC)(void * dxObject, HANDLE shareHandle); +typedef BOOL(WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC)(HANDLE hDevice, GLint count, HANDLE * hObjects); +typedef BOOL(WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC)(HANDLE hDevice, HANDLE hObject); #define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV) #define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV) @@ -898,7 +898,7 @@ #ifndef WGL_NV_copy_image #define WGL_NV_copy_image 1 -typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +typedef BOOL(WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC)(HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); #define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV) @@ -934,19 +934,20 @@ #define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 DECLARE_HANDLE(HGPUNV); -typedef struct _GPU_DEVICE { - DWORD cb; - CHAR DeviceName[32]; - CHAR DeviceString[128]; - DWORD Flags; - RECT rcVirtualScreen; +typedef struct _GPU_DEVICE +{ + DWORD cb; + CHAR DeviceName[32]; + CHAR DeviceString[128]; + DWORD Flags; + RECT rcVirtualScreen; } GPU_DEVICE, *PGPU_DEVICE; -typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); -typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); -typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); -typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); -typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); +typedef HDC(WINAPI * PFNWGLCREATEAFFINITYDCNVPROC)(const HGPUNV * phGpuList); +typedef BOOL(WINAPI * PFNWGLDELETEDCNVPROC)(HDC hdc); +typedef BOOL(WINAPI * PFNWGLENUMGPUDEVICESNVPROC)(HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); +typedef BOOL(WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC)(HDC hAffinityDC, UINT iGpuIndex, HGPUNV * hGpu); +typedef BOOL(WINAPI * PFNWGLENUMGPUSNVPROC)(UINT iGpuIndex, HGPUNV * phGpu); #define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV) #define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV) @@ -979,9 +980,9 @@ DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); -typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList); -typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList); -typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue); +typedef BOOL(WINAPI * PFNWGLBINDVIDEODEVICENVPROC)(HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int * piAttribList); +typedef int(WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC)(HDC hDc, HVIDEOOUTPUTDEVICENV * phDeviceList); +typedef BOOL(WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC)(int iAttribute, int * piValue); #define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV) #define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV) @@ -1025,12 +1026,12 @@ #ifndef WGL_NV_swap_group #define WGL_NV_swap_group 1 -typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); -typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count); -typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers); -typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint *barrier); -typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); +typedef BOOL(WINAPI * PFNWGLBINDSWAPBARRIERNVPROC)(GLuint group, GLuint barrier); +typedef BOOL(WINAPI * PFNWGLJOINSWAPGROUPNVPROC)(HDC hDC, GLuint group); +typedef BOOL(WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC)(HDC hDC, GLuint * count); +typedef BOOL(WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC)(HDC hDC, GLuint * maxGroups, GLuint * maxBarriers); +typedef BOOL(WINAPI * PFNWGLQUERYSWAPGROUPNVPROC)(HDC hDC, GLuint * group, GLuint * barrier); +typedef BOOL(WINAPI * PFNWGLRESETFRAMECOUNTNVPROC)(HDC hDC); #define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) #define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV) @@ -1048,8 +1049,8 @@ #ifndef WGL_NV_vertex_array_range #define WGL_NV_vertex_array_range 1 -typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); -typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); +typedef void *(WINAPI * PFNWGLALLOCATEMEMORYNVPROC)(GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); +typedef void(WINAPI * PFNWGLFREEMEMORYNVPROC)(void * pointer); #define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV) #define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV) @@ -1068,11 +1069,11 @@ DECLARE_HANDLE(HVIDEOINPUTDEVICENV); -typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); -typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList); -typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); -typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); +typedef BOOL(WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC)(UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); +typedef UINT(WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC)(HDC hDc, HVIDEOINPUTDEVICENV * phDeviceList); +typedef BOOL(WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC)(HDC hDc, HVIDEOINPUTDEVICENV hDevice); +typedef BOOL(WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC)(HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int * piValue); +typedef BOOL(WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC)(HDC hDc, HVIDEOINPUTDEVICENV hDevice); #define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV) #define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV) @@ -1105,12 +1106,12 @@ DECLARE_HANDLE(HPVIDEODEV); -typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice); -typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); -typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock); +typedef BOOL(WINAPI * PFNWGLBINDVIDEOIMAGENVPROC)(HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); +typedef BOOL(WINAPI * PFNWGLGETVIDEODEVICENVPROC)(HDC hDC, int numDevices, HPVIDEODEV * hVideoDevice); +typedef BOOL(WINAPI * PFNWGLGETVIDEOINFONVPROC)(HPVIDEODEV hpVideoDevice, unsigned long * pulCounterOutputPbuffer, unsigned long * pulCounterOutputVideo); +typedef BOOL(WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC)(HPVIDEODEV hVideoDevice); +typedef BOOL(WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC)(HPBUFFERARB hPbuffer, int iVideoBuffer); +typedef BOOL(WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC)(HPBUFFERARB hPbuffer, int iBufferType, unsigned long * pulCounterPbuffer, BOOL bBlock); #define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV) #define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV) @@ -1128,12 +1129,12 @@ #ifndef WGL_OML_sync_control #define WGL_OML_sync_control 1 -typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator); -typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc); -typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc); -typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc); +typedef BOOL(WINAPI * PFNWGLGETMSCRATEOMLPROC)(HDC hdc, INT32 * numerator, INT32 * denominator); +typedef BOOL(WINAPI * PFNWGLGETSYNCVALUESOMLPROC)(HDC hdc, INT64 * ust, INT64 * msc, INT64 * sbc); +typedef INT64(WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); +typedef INT64(WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC)(HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); +typedef BOOL(WINAPI * PFNWGLWAITFORMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 * ust, INT64 * msc, INT64 * sbc); +typedef BOOL(WINAPI * PFNWGLWAITFORSBCOMLPROC)(HDC hdc, INT64 target_sbc, INT64 * ust, INT64 * msc, INT64 * sbc); #define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML) #define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML) @@ -1161,203 +1162,203 @@ { #endif /* GLEW_MX */ -WGLEW_FUN_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; + WGLEW_FUN_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; -WGLEW_FUN_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD; -WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD; -WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD; -WGLEW_FUN_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD; -WGLEW_FUN_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD; -WGLEW_FUN_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD; -WGLEW_FUN_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD; -WGLEW_FUN_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD; -WGLEW_FUN_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD; - -WGLEW_FUN_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB; -WGLEW_FUN_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB; -WGLEW_FUN_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB; -WGLEW_FUN_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB; - -WGLEW_FUN_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB; - -WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB; - -WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB; -WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB; - -WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB; -WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB; -WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB; -WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB; -WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB; - -WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB; -WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB; -WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB; - -WGLEW_FUN_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB; -WGLEW_FUN_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB; -WGLEW_FUN_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB; - -WGLEW_FUN_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT; -WGLEW_FUN_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT; -WGLEW_FUN_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT; -WGLEW_FUN_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT; - -WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT; - -WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT; -WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT; - -WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT; -WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT; -WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT; -WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT; -WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT; - -WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT; -WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT; -WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT; - -WGLEW_FUN_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT; -WGLEW_FUN_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT; - -WGLEW_FUN_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D; -WGLEW_FUN_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D; - -WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D; -WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D; -WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D; -WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D; - -WGLEW_FUN_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D; -WGLEW_FUN_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D; -WGLEW_FUN_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D; -WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D; -WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D; -WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D; -WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D; -WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D; -WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D; -WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D; -WGLEW_FUN_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D; -WGLEW_FUN_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D; - -WGLEW_FUN_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D; -WGLEW_FUN_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D; -WGLEW_FUN_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D; -WGLEW_FUN_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D; - -WGLEW_FUN_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D; -WGLEW_FUN_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D; -WGLEW_FUN_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D; -WGLEW_FUN_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D; - -WGLEW_FUN_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D; -WGLEW_FUN_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D; -WGLEW_FUN_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D; -WGLEW_FUN_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D; - -WGLEW_FUN_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV; -WGLEW_FUN_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV; -WGLEW_FUN_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV; -WGLEW_FUN_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV; -WGLEW_FUN_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV; -WGLEW_FUN_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV; -WGLEW_FUN_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV; -WGLEW_FUN_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV; - -WGLEW_FUN_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV; - -WGLEW_FUN_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV; -WGLEW_FUN_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV; -WGLEW_FUN_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV; -WGLEW_FUN_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV; -WGLEW_FUN_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV; - -WGLEW_FUN_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV; -WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV; -WGLEW_FUN_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV; - -WGLEW_FUN_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV; -WGLEW_FUN_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV; -WGLEW_FUN_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV; -WGLEW_FUN_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV; -WGLEW_FUN_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV; -WGLEW_FUN_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV; - -WGLEW_FUN_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV; -WGLEW_FUN_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV; - -WGLEW_FUN_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV; -WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV; -WGLEW_FUN_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV; -WGLEW_FUN_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV; -WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV; - -WGLEW_FUN_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV; -WGLEW_FUN_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV; -WGLEW_FUN_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV; -WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV; -WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV; -WGLEW_FUN_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV; - -WGLEW_FUN_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML; -WGLEW_FUN_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML; -WGLEW_FUN_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML; -WGLEW_FUN_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML; -WGLEW_FUN_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML; -WGLEW_FUN_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML; -WGLEW_VAR_EXPORT GLboolean __WGLEW_3DFX_multisample; -WGLEW_VAR_EXPORT GLboolean __WGLEW_3DL_stereo_control; -WGLEW_VAR_EXPORT GLboolean __WGLEW_AMD_gpu_association; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_buffer_region; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_profile; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_extensions_string; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_make_current_read; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_multisample; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pbuffer; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format_float; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_render_texture; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; -WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es_profile; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_depth_float; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_display_color_table; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_extensions_string; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_make_current_read; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_multisample; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pbuffer; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control; -WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control_tear; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_digital_video_control; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_gamma; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_genlock; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_image_buffer; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock; -WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop2; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_copy_image; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_float_buffer; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_gpu_affinity; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multisample_coverage; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_present_video; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_depth_texture; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_swap_group; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_vertex_array_range; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_capture; -WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_output; -WGLEW_VAR_EXPORT GLboolean __WGLEW_OML_sync_control; + WGLEW_FUN_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD; + WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD; + WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD; + WGLEW_FUN_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD; + WGLEW_FUN_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD; + WGLEW_FUN_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD; + WGLEW_FUN_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD; + WGLEW_FUN_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD; + WGLEW_FUN_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD; + + WGLEW_FUN_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB; + WGLEW_FUN_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB; + WGLEW_FUN_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB; + WGLEW_FUN_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB; + + WGLEW_FUN_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB; + + WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB; + + WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB; + WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB; + + WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB; + WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB; + WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB; + WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB; + WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB; + + WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB; + WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB; + WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB; + + WGLEW_FUN_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB; + WGLEW_FUN_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB; + WGLEW_FUN_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB; + + WGLEW_FUN_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT; + WGLEW_FUN_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT; + WGLEW_FUN_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT; + WGLEW_FUN_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT; + + WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT; + + WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT; + WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT; + + WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT; + WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT; + WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT; + WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT; + WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT; + + WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT; + WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT; + WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT; + + WGLEW_FUN_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT; + WGLEW_FUN_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT; + + WGLEW_FUN_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D; + WGLEW_FUN_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D; + + WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D; + WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D; + WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D; + WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D; + + WGLEW_FUN_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D; + WGLEW_FUN_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D; + WGLEW_FUN_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D; + WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D; + WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D; + WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D; + WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D; + WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D; + WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D; + WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D; + WGLEW_FUN_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D; + WGLEW_FUN_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D; + + WGLEW_FUN_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D; + WGLEW_FUN_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D; + WGLEW_FUN_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D; + WGLEW_FUN_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D; + + WGLEW_FUN_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D; + WGLEW_FUN_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D; + WGLEW_FUN_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D; + WGLEW_FUN_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D; + + WGLEW_FUN_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D; + WGLEW_FUN_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D; + WGLEW_FUN_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D; + WGLEW_FUN_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D; + + WGLEW_FUN_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV; + WGLEW_FUN_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV; + WGLEW_FUN_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV; + WGLEW_FUN_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV; + WGLEW_FUN_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV; + WGLEW_FUN_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV; + WGLEW_FUN_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV; + WGLEW_FUN_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV; + + WGLEW_FUN_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV; + + WGLEW_FUN_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV; + WGLEW_FUN_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV; + WGLEW_FUN_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV; + WGLEW_FUN_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV; + WGLEW_FUN_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV; + + WGLEW_FUN_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV; + WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV; + WGLEW_FUN_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV; + + WGLEW_FUN_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV; + WGLEW_FUN_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV; + WGLEW_FUN_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV; + WGLEW_FUN_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV; + WGLEW_FUN_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV; + WGLEW_FUN_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV; + + WGLEW_FUN_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV; + WGLEW_FUN_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV; + + WGLEW_FUN_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV; + WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV; + WGLEW_FUN_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV; + WGLEW_FUN_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV; + WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV; + + WGLEW_FUN_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV; + WGLEW_FUN_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV; + WGLEW_FUN_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV; + WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV; + WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV; + WGLEW_FUN_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV; + + WGLEW_FUN_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML; + WGLEW_FUN_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML; + WGLEW_FUN_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML; + WGLEW_FUN_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML; + WGLEW_FUN_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML; + WGLEW_FUN_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML; + WGLEW_VAR_EXPORT GLboolean __WGLEW_3DFX_multisample; + WGLEW_VAR_EXPORT GLboolean __WGLEW_3DL_stereo_control; + WGLEW_VAR_EXPORT GLboolean __WGLEW_AMD_gpu_association; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_buffer_region; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_profile; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_extensions_string; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_make_current_read; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_multisample; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pbuffer; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format_float; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_render_texture; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; + WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es_profile; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_depth_float; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_display_color_table; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_extensions_string; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_make_current_read; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_multisample; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pbuffer; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control; + WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control_tear; + WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_digital_video_control; + WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_gamma; + WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_genlock; + WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_image_buffer; + WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock; + WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop2; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_copy_image; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_float_buffer; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_gpu_affinity; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multisample_coverage; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_present_video; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_depth_texture; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_swap_group; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_vertex_array_range; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_capture; + WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_output; + WGLEW_VAR_EXPORT GLboolean __WGLEW_OML_sync_control; #ifdef GLEW_MX }; /* WGLEWContextStruct */ @@ -1368,25 +1369,25 @@ #ifdef GLEW_MX typedef struct WGLEWContextStruct WGLEWContext; -GLEWAPI GLenum GLEWAPIENTRY wglewContextInit (WGLEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext *ctx, const char *name); +GLEWAPI GLenum GLEWAPIENTRY wglewContextInit(WGLEWContext * ctx); +GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported(const WGLEWContext * ctx, const char * name); #define wglewInit() wglewContextInit(wglewGetContext()) #define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x) -#define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x)) +#define WGLEW_GET_VAR(x) (*(const GLboolean *)&(wglewGetContext()->x)) #define WGLEW_GET_FUN(x) wglewGetContext()->x #else /* GLEW_MX */ -#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) +#define WGLEW_GET_VAR(x) (*(const GLboolean *)&x) #define WGLEW_GET_FUN(x) x -GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name); +GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported(const char * name); #endif /* GLEW_MX */ -GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name); +GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension(const char * name); #ifdef __cplusplus } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/_detail.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/_detail.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/_detail.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/_detail.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -31,438 +31,477 @@ #include "setup.hpp" #include -#if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) +#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) #include #endif -namespace glm{ -namespace detail +namespace glm { +namespace detail { +class half; + +#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available +typedef int64_t sint64; +typedef uint64_t uint64; +#elif (GLM_COMPILER & GLM_COMPILER_VC) +typedef signed __int64 sint64; +typedef unsigned __int64 uint64; +#elif (GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG)) +__extension__ typedef signed long long sint64; +__extension__ typedef unsigned long long uint64; +#elif (GLM_COMPILER & GLM_COMPILER_BC) +typedef Int64 sint64; +typedef Uint64 uint64; +#else //unknown compiler +typedef signed long long sint64; +typedef unsigned long long uint64; +#endif //GLM_COMPILER + +template +struct If +{ + template + static GLM_FUNC_QUALIFIER T apply(F functor, const T & val) + { + return functor(val); + } +}; + +template<> +struct If +{ + template + static GLM_FUNC_QUALIFIER T apply(F, const T & val) + { + return val; + } +}; + +//template +//struct traits +//{ +// static const bool is_signed = false; +// static const bool is_float = false; +// static const bool is_vector = false; +// static const bool is_matrix = false; +// static const bool is_genType = false; +// static const bool is_genIType = false; +// static const bool is_genUType = false; +//}; + +//template <> +//struct traits +//{ +// static const bool is_float = true; +// static const bool is_genType = true; +//}; + +//template <> +//struct traits +//{ +// static const bool is_float = true; +// static const bool is_genType = true; +//}; + +//template <> +//struct traits +//{ +// static const bool is_float = true; +// static const bool is_genType = true; +//}; + +//template +//struct desc +//{ +// typedef genType type; +// typedef genType * pointer; +// typedef genType const* const_pointer; +// typedef genType const *const const_pointer_const; +// typedef genType *const pointer_const; +// typedef genType & reference; +// typedef genType const& const_reference; +// typedef genType const& param_type; + +// typedef typename genType::value_type value_type; +// typedef typename genType::size_type size_type; +// static const typename size_type value_size; +//}; + +//template +//const typename desc::size_type desc::value_size = genType::value_size(); + +union uif32 { + GLM_FUNC_QUALIFIER uif32() + : i(0) + { + } + + GLM_FUNC_QUALIFIER uif32(float f) + : f(f) + { + } + + GLM_FUNC_QUALIFIER uif32(unsigned int i) + : i(i) + { + } + + float f; + unsigned int i; +}; + +union uif64 { + GLM_FUNC_QUALIFIER uif64() + : i(0) + { + } + + GLM_FUNC_QUALIFIER uif64(double f) + : f(f) + { + } + + GLM_FUNC_QUALIFIER uif64(uint64 i) + : i(i) + { + } + + double f; + uint64 i; +}; + +typedef uif32 uif; + +////////////////// +// int + +template +struct is_int +{ + enum is_int_enum + { + _YES = 0, + _NO = 1 + }; +}; + +#define GLM_DETAIL_IS_INT(T) \ + template<> \ + struct is_int \ + { \ + enum is_int_enum \ + { \ + _YES = 1, \ + _NO = 0 \ + }; \ + } + +////////////////// +// uint + +template +struct is_uint +{ + enum is_uint_enum + { + _YES = 0, + _NO = 1 + }; +}; + +#define GLM_DETAIL_IS_UINT(T) \ + template<> \ + struct is_uint \ + { \ + enum is_uint_enum \ + { \ + _YES = 1, \ + _NO = 0 \ + }; \ + } + +//GLM_DETAIL_IS_UINT(unsigned long long) + +////////////////// +// float + +template +struct is_float +{ + enum is_float_enum + { + _YES = 0, + _NO = 1 + }; +}; + +#define GLM_DETAIL_IS_FLOAT(T) \ + template<> \ + struct is_float \ + { \ + enum is_float_enum \ + { \ + _YES = 1, \ + _NO = 0 \ + }; \ + } + +GLM_DETAIL_IS_FLOAT(detail::half); +GLM_DETAIL_IS_FLOAT(float); +GLM_DETAIL_IS_FLOAT(double); +GLM_DETAIL_IS_FLOAT(long double); + +////////////////// +// bool + +template +struct is_bool +{ + enum is_bool_enum + { + _YES = 0, + _NO = 1 + }; +}; + +template<> +struct is_bool +{ + enum is_bool_enum + { + _YES = 1, + _NO = 0 + }; +}; + +////////////////// +// vector + +template +struct is_vector +{ + enum is_vector_enum + { + _YES = 0, + _NO = 1 + }; +}; + +#define GLM_DETAIL_IS_VECTOR(TYPE) \ + template \ + struct is_vector> \ + { \ + enum is_vector_enum \ + { \ + _YES = 1, \ + _NO = 0 \ + }; \ + } + +////////////////// +// matrix + +template +struct is_matrix +{ + enum is_matrix_enum + { + _YES = 0, + _NO = 1 + }; +}; + +#define GLM_DETAIL_IS_MATRIX(T) \ + template<> \ + struct is_matrix \ + { \ + enum is_matrix_enum \ + { \ + _YES = 1, \ + _NO = 0 \ + }; \ + } + +////////////////// +// type + +template +struct type +{ + enum type_enum + { + is_float = is_float::_YES, + is_int = is_int::_YES, + is_uint = is_uint::_YES, + is_bool = is_bool::_YES + }; +}; + +////////////////// +// type + +typedef signed char int8; +typedef signed short int16; +typedef signed int int32; +typedef detail::sint64 int64; + +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint32; +typedef detail::uint64 uint64; + +typedef detail::half float16; +typedef float float32; +typedef double float64; + +////////////////// +// float_or_int_trait + +struct float_or_int_value +{ + enum + { + GLM_ERROR, + GLM_FLOAT, + GLM_INT + }; +}; + +template +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_ERROR + }; +}; + +template<> +struct float_or_int_trait { - class half; + enum + { + ID = float_or_int_value::GLM_INT + }; +}; -#if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available - typedef int64_t sint64; - typedef uint64_t uint64; -#elif(GLM_COMPILER & GLM_COMPILER_VC) - typedef signed __int64 sint64; - typedef unsigned __int64 uint64; -#elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG)) - __extension__ typedef signed long long sint64; - __extension__ typedef unsigned long long uint64; -#elif(GLM_COMPILER & GLM_COMPILER_BC) - typedef Int64 sint64; - typedef Uint64 uint64; -#else//unknown compiler - typedef signed long long sint64; - typedef unsigned long long uint64; -#endif//GLM_COMPILER - - template - struct If - { - template - static GLM_FUNC_QUALIFIER T apply(F functor, const T& val) - { - return functor(val); - } - }; - - template<> - struct If - { - template - static GLM_FUNC_QUALIFIER T apply(F, const T& val) - { - return val; - } - }; - - //template - //struct traits - //{ - // static const bool is_signed = false; - // static const bool is_float = false; - // static const bool is_vector = false; - // static const bool is_matrix = false; - // static const bool is_genType = false; - // static const bool is_genIType = false; - // static const bool is_genUType = false; - //}; - - //template <> - //struct traits - //{ - // static const bool is_float = true; - // static const bool is_genType = true; - //}; - - //template <> - //struct traits - //{ - // static const bool is_float = true; - // static const bool is_genType = true; - //}; - - //template <> - //struct traits - //{ - // static const bool is_float = true; - // static const bool is_genType = true; - //}; - - //template - //struct desc - //{ - // typedef genType type; - // typedef genType * pointer; - // typedef genType const* const_pointer; - // typedef genType const *const const_pointer_const; - // typedef genType *const pointer_const; - // typedef genType & reference; - // typedef genType const& const_reference; - // typedef genType const& param_type; - - // typedef typename genType::value_type value_type; - // typedef typename genType::size_type size_type; - // static const typename size_type value_size; - //}; - - //template - //const typename desc::size_type desc::value_size = genType::value_size(); - - union uif32 - { - GLM_FUNC_QUALIFIER uif32() : - i(0) - {} - - GLM_FUNC_QUALIFIER uif32(float f) : - f(f) - {} - - GLM_FUNC_QUALIFIER uif32(unsigned int i) : - i(i) - {} - - float f; - unsigned int i; - }; - - union uif64 - { - GLM_FUNC_QUALIFIER uif64() : - i(0) - {} - - GLM_FUNC_QUALIFIER uif64(double f) : - f(f) - {} - - GLM_FUNC_QUALIFIER uif64(uint64 i) : - i(i) - {} - - double f; - uint64 i; - }; - - typedef uif32 uif; - - ////////////////// - // int - - template - struct is_int - { - enum is_int_enum - { - _YES = 0, - _NO = 1 - }; - }; - -#define GLM_DETAIL_IS_INT(T) \ - template <> \ - struct is_int \ - { \ - enum is_int_enum \ - { \ - _YES = 1, \ - _NO = 0 \ - }; \ - } - - ////////////////// - // uint - - template - struct is_uint - { - enum is_uint_enum - { - _YES = 0, - _NO = 1 - }; - }; - -#define GLM_DETAIL_IS_UINT(T) \ - template <> \ - struct is_uint \ - { \ - enum is_uint_enum \ - { \ - _YES = 1, \ - _NO = 0 \ - }; \ - } - - //GLM_DETAIL_IS_UINT(unsigned long long) - - ////////////////// - // float - - template - struct is_float - { - enum is_float_enum - { - _YES = 0, - _NO = 1 - }; - }; - -#define GLM_DETAIL_IS_FLOAT(T) \ - template <> \ - struct is_float \ - { \ - enum is_float_enum \ - { \ - _YES = 1, \ - _NO = 0 \ - }; \ - } - - GLM_DETAIL_IS_FLOAT(detail::half); - GLM_DETAIL_IS_FLOAT(float); - GLM_DETAIL_IS_FLOAT(double); - GLM_DETAIL_IS_FLOAT(long double); - - ////////////////// - // bool - - template - struct is_bool - { - enum is_bool_enum - { - _YES = 0, - _NO = 1 - }; - }; - - template <> - struct is_bool - { - enum is_bool_enum - { - _YES = 1, - _NO = 0 - }; - }; - - ////////////////// - // vector - - template - struct is_vector - { - enum is_vector_enum - { - _YES = 0, - _NO = 1 - }; - }; - -# define GLM_DETAIL_IS_VECTOR(TYPE) \ - template \ - struct is_vector > \ - { \ - enum is_vector_enum \ - { \ - _YES = 1, \ - _NO = 0 \ - }; \ - } - - ////////////////// - // matrix - - template - struct is_matrix - { - enum is_matrix_enum - { - _YES = 0, - _NO = 1 - }; - }; - -#define GLM_DETAIL_IS_MATRIX(T) \ - template <> \ - struct is_matrix \ - { \ - enum is_matrix_enum \ - { \ - _YES = 1, \ - _NO = 0 \ - }; \ - } - - ////////////////// - // type - - template - struct type - { - enum type_enum - { - is_float = is_float::_YES, - is_int = is_int::_YES, - is_uint = is_uint::_YES, - is_bool = is_bool::_YES - }; - }; - - ////////////////// - // type - - typedef signed char int8; - typedef signed short int16; - typedef signed int int32; - typedef detail::sint64 int64; - - typedef unsigned char uint8; - typedef unsigned short uint16; - typedef unsigned int uint32; - typedef detail::uint64 uint64; - - typedef detail::half float16; - typedef float float32; - typedef double float64; - - ////////////////// - // float_or_int_trait - - struct float_or_int_value - { - enum - { - GLM_ERROR, - GLM_FLOAT, - GLM_INT - }; - }; - - template - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_ERROR}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_INT}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_INT}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_INT}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_INT}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_INT}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_INT}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_INT}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_INT}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_FLOAT}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_FLOAT}; - }; - - template <> - struct float_or_int_trait - { - enum{ID = float_or_int_value::GLM_FLOAT}; - }; - -}//namespace detail -}//namespace glm - -#if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005)) -# define GLM_DEPRECATED __declspec(deprecated) -# define GLM_ALIGN(x) __declspec(align(x)) -# define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct -# define GLM_RESTRICT __declspec(restrict) -# define GLM_RESTRICT_VAR __restrict -#elif((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31)) -# define GLM_DEPRECATED __attribute__((__deprecated__)) -# define GLM_ALIGN(x) __attribute__((aligned(x))) -# define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x))) -# if(GLM_COMPILER >= GLM_COMPILER_GCC33) -# define GLM_RESTRICT __restrict__ -# define GLM_RESTRICT_VAR __restrict__ -# else -# define GLM_RESTRICT -# define GLM_RESTRICT_VAR -# endif -# define GLM_RESTRICT __restrict__ -# define GLM_RESTRICT_VAR __restrict__ +template<> +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_INT + }; +}; + +template<> +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_INT + }; +}; + +template<> +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_INT + }; +}; + +template<> +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_INT + }; +}; + +template<> +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_INT + }; +}; + +template<> +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_INT + }; +}; + +template<> +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_INT + }; +}; + +template<> +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_FLOAT + }; +}; + +template<> +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_FLOAT + }; +}; + +template<> +struct float_or_int_trait +{ + enum + { + ID = float_or_int_value::GLM_FLOAT + }; +}; + +} //namespace detail +} //namespace glm + +#if ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005)) +#define GLM_DEPRECATED __declspec(deprecated) +#define GLM_ALIGN(x) __declspec(align(x)) +#define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct +#define GLM_RESTRICT __declspec(restrict) +#define GLM_RESTRICT_VAR __restrict +#elif ((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31)) +#define GLM_DEPRECATED __attribute__((__deprecated__)) +#define GLM_ALIGN(x) __attribute__((aligned(x))) +#define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x))) +#if (GLM_COMPILER >= GLM_COMPILER_GCC33) +#define GLM_RESTRICT __restrict__ +#define GLM_RESTRICT_VAR __restrict__ +#else +#define GLM_RESTRICT +#define GLM_RESTRICT_VAR +#endif +#define GLM_RESTRICT __restrict__ +#define GLM_RESTRICT_VAR __restrict__ #else -# define GLM_DEPRECATED -# define GLM_ALIGN -# define GLM_ALIGNED_STRUCT(x) -# define GLM_RESTRICT -# define GLM_RESTRICT_VAR -#endif//GLM_COMPILER +#define GLM_DEPRECATED +#define GLM_ALIGN +#define GLM_ALIGNED_STRUCT(x) +#define GLM_RESTRICT +#define GLM_RESTRICT_VAR +#endif //GLM_COMPILER -#endif//glm_core_detail +#endif //glm_core_detail diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/dummy.cpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/dummy.cpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/dummy.cpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/dummy.cpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -25,17 +25,16 @@ /// @date 2011-01-19 / 2011-06-15 /// @author Christophe Riccio /// -/// GLM is a header only library. There is nothing to compile. +/// GLM is a header only library. There is nothing to compile. /// dummy.cpp exist only a wordaround for CMake file. /////////////////////////////////////////////////////////////////////////////////// #define GLM_MESSAGES -#include "../glm.hpp" #include "../ext.hpp" +#include "../glm.hpp" //#error "GLM is a header only library" int main() { - } diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/_fixes.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/_fixes.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/_fixes.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/_fixes.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -52,4 +52,3 @@ #ifdef log2 #undef log2 #endif - diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_common.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_common.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_common.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_common.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -24,12 +24,12 @@ /// @file glm/core/func_common.hpp /// @date 2008-03-08 / 2010-01-26 /// @author Christophe Riccio -/// +/// /// @see GLSL 4.20.8 specification, section 8.3 Common Functions /// /// @defgroup core_func_common Common functions /// @ingroup core -/// +/// /// These all operate component-wise. The description is per component. /////////////////////////////////////////////////////////////////////////////////// @@ -38,391 +38,390 @@ #include "_fixes.hpp" -namespace glm -{ - /// @addtogroup core_func_common - /// @{ - - /// Returns x if x >= 0; otherwise, it returns -x. - /// - /// @tparam genType floating-point or signed integer; scalar or vector types. - /// - /// @see GLSL abs man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType abs(genType const & x); - - /// Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. - /// - /// @tparam genType Floating-point or signed integer; scalar or vector types. - /// - /// @see GLSL sign man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType sign(genType const & x); - - /// Returns a value equal to the nearest integer that is less then or equal to x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL floor man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType floor(genType const & x); - - /// Returns a value equal to the nearest integer to x - /// whose absolute value is not larger than the absolute value of x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL trunc man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType trunc(genType const & x); - - /// Returns a value equal to the nearest integer to x. - /// The fraction 0.5 will round in a direction chosen by the - /// implementation, presumably the direction that is fastest. - /// This includes the possibility that round(x) returns the - /// same value as roundEven(x) for all values of x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL round man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType round(genType const & x); - - /// Returns a value equal to the nearest integer to x. - /// A fractional part of 0.5 will round toward the nearest even - /// integer. (Both 3.5 and 4.5 for x will return 4.0.) - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL roundEven man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - /// @see New round to even technique - template - genType roundEven(genType const & x); - - /// Returns a value equal to the nearest integer - /// that is greater than or equal to x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL ceil man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType ceil(genType const & x); - - /// Return x - floor(x). - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL fract man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType fract(genType const & x); - - /// Modulus. Returns x - y * floor(x / y) - /// for each component in x using the floating point value y. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL mod man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType mod( - genType const & x, - genType const & y); - - /// Modulus. Returns x - y * floor(x / y) - /// for each component in x using the floating point value y. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL mod man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType mod( - genType const & x, - typename genType::value_type const & y); - - /// Returns the fractional part of x and sets i to the integer - /// part (as a whole number floating point value). Both the - /// return value and the output parameter will have the same - /// sign as x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL modf man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType modf( - genType const & x, - genType & i); - - /// Returns y if y < x; otherwise, it returns x. - /// - /// @tparam genType Floating-point or integer; scalar or vector types. - /// - /// @see GLSL min man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType min( - genType const & x, - genType const & y); - - template - genType min( - genType const & x, - typename genType::value_type const & y); - - /// Returns y if x < y; otherwise, it returns x. - /// - /// @tparam genType Floating-point or integer; scalar or vector types. - /// - /// @see GLSL max man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType max( - genType const & x, - genType const & y); - - template - genType max( - genType const & x, - typename genType::value_type const & y); - - /// Returns min(max(x, minVal), maxVal) for each component in x - /// using the floating-point values minVal and maxVal. - /// - /// @tparam genType Floating-point or integer; scalar or vector types. - /// - /// @see GLSL clamp man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType clamp( - genType const & x, - genType const & minVal, - genType const & maxVal); - - template - genType clamp( - genType const & x, - typename genType::value_type const & minVal, - typename genType::value_type const & maxVal); - - //! @return If genTypeU is a floating scalar or vector: - //! Returns x * (1.0 - a) + y * a, i.e., the linear blend of - //! x and y using the floating-point value a. - //! The value for a is not restricted to the range [0, 1]. - //! - //! @return If genTypeU is a boolean scalar or vector: - //! Selects which vector each returned component comes - //! from. For a component of a that is false, the - //! corresponding component of x is returned. For a - //! component of a that is true, the corresponding - //! component of y is returned. Components of x and y that - //! are not selected are allowed to be invalid floating point - //! values and will have no effect on the results. Thus, this - //! provides different functionality than - //! genType mix(genType x, genType y, genType(a)) - //! where a is a Boolean vector. - /// - /// @see GLSL mix man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - /// - /// @param[in] x Value to interpolate. - /// @param[in] y Value to interpolate. - /// @param[in] a Interpolant. - /// - /// @tparam genTypeT Floating point scalar or vector. - /// @tparam genTypeU Floating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT. - /// - /// @code - /// #include - /// ... - /// float a; - /// bool b; - /// glm::dvec3 e; - /// glm::dvec3 f; - /// glm::vec4 g; - /// glm::vec4 h; - /// ... - /// glm::vec4 r = glm::mix(g, h, a); // Interpolate with a floating-point scalar two vectors. - /// glm::vec4 s = glm::mix(g, h, b); // Teturns g or h; - /// glm::dvec3 t = glm::mix(e, f, a); // Types of the third parameter is not required to match with the first and the second. - /// glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter. - /// @endcode - template - genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a); - - //! Returns 0.0 if x < edge, otherwise it returns 1.0. - //! - /// @see GLSL step man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType step( - genType const & edge, - genType const & x); - - template - genType step( - typename genType::value_type const & edge, - genType const & x); - - /// Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and - /// performs smooth Hermite interpolation between 0 and 1 - /// when edge0 < x < edge1. This is useful in cases where - /// you would want a threshold function with a smooth - /// transition. This is equivalent to: - /// genType t; - /// t = clamp ((x edge0) / (edge1 edge0), 0, 1); - /// return t * t * (3 2 * t); - /// Results are undefined if edge0 >= edge1. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL smoothstep man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType smoothstep( - genType const & edge0, - genType const & edge1, - genType const & x); - - template - genType smoothstep( - typename genType::value_type const & edge0, - typename genType::value_type const & edge1, - genType const & x); - - /// Returns true if x holds a NaN (not a number) - /// representation in the underlying implementation's set of - /// floating point representations. Returns false otherwise, - /// including for implementations with no NaN - /// representations. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL isnan man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - typename genType::bool_type isnan(genType const & x); - - /// Returns true if x holds a positive infinity or negative - /// infinity representation in the underlying implementation's - /// set of floating point representations. Returns false - /// otherwise, including for implementations with no infinity - /// representations. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL isinf man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - typename genType::bool_type isinf(genType const & x); - - /// Returns a signed integer value representing - /// the encoding of a floating-point value. The floatingpoint - /// value's bit-level representation is preserved. - /// - /// @tparam genType Single-precision floating-point scalar or vector types. - /// @tparam genIType Signed integer scalar or vector types. - /// - /// @see GLSL floatBitsToInt man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genIType floatBitsToInt(genType const & value); - - /// Returns a unsigned integer value representing - /// the encoding of a floating-point value. The floatingpoint - /// value's bit-level representation is preserved. - /// - /// @tparam genType Single-precision floating-point scalar or vector types. - /// @tparam genUType Unsigned integer scalar or vector types. - /// - /// @see GLSL floatBitsToUint man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genUType floatBitsToUint(genType const & value); - - /// Returns a floating-point value corresponding to a signed - /// integer encoding of a floating-point value. - /// If an inf or NaN is passed in, it will not signal, and the - /// resulting floating point value is unspecified. Otherwise, - /// the bit-level representation is preserved. - /// - /// @tparam genType Single-precision floating-point scalar or vector types. - /// @tparam genIType Signed integer scalar or vector types. - /// - /// @see GLSL intBitsToFloat man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - /// - /// @todo Clarify this declaration, we don't need to actually specify the return type - template - genType intBitsToFloat(genIType const & value); - - /// Returns a floating-point value corresponding to a - /// unsigned integer encoding of a floating-point value. - /// If an inf or NaN is passed in, it will not signal, and the - /// resulting floating point value is unspecified. Otherwise, - /// the bit-level representation is preserved. - /// - /// @tparam genType Single-precision floating-point scalar or vector types. - /// @tparam genUType Unsigned integer scalar or vector types. - /// - /// @see GLSL uintBitsToFloat man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - /// - /// @todo Clarify this declaration, we don't need to actually specify the return type - template - genType uintBitsToFloat(genUType const & value); - - /// Computes and returns a * b + c. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL fma man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType fma(genType const & a, genType const & b, genType const & c); - - /// Splits x into a floating-point significand in the range - /// [0.5, 1.0) and an integral exponent of two, such that: - /// x = significand * exp(2, exponent) - /// - /// The significand is returned by the function and the - /// exponent is returned in the parameter exp. For a - /// floating-point value of zero, the significant and exponent - /// are both zero. For a floating-point value that is an - /// infinity or is not a number, the results are undefined. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL frexp man page - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType frexp(genType const & x, genIType & exp); - - /// Builds a floating-point number from x and the - /// corresponding integral exponent of two in exp, returning: - /// significand * exp(2, exponent) - /// - /// If this product is too large to be represented in the - /// floating-point type, the result is undefined. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL ldexp man page; - /// @see GLSL 4.20.8 specification, section 8.3 Common Functions - template - genType ldexp(genType const & x, genIType const & exp); +namespace glm { +/// @addtogroup core_func_common +/// @{ + +/// Returns x if x >= 0; otherwise, it returns -x. +/// +/// @tparam genType floating-point or signed integer; scalar or vector types. +/// +/// @see GLSL abs man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType abs(genType const & x); + +/// Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. +/// +/// @tparam genType Floating-point or signed integer; scalar or vector types. +/// +/// @see GLSL sign man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType sign(genType const & x); + +/// Returns a value equal to the nearest integer that is less then or equal to x. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL floor man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType floor(genType const & x); + +/// Returns a value equal to the nearest integer to x +/// whose absolute value is not larger than the absolute value of x. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL trunc man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType trunc(genType const & x); + +/// Returns a value equal to the nearest integer to x. +/// The fraction 0.5 will round in a direction chosen by the +/// implementation, presumably the direction that is fastest. +/// This includes the possibility that round(x) returns the +/// same value as roundEven(x) for all values of x. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL round man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType round(genType const & x); + +/// Returns a value equal to the nearest integer to x. +/// A fractional part of 0.5 will round toward the nearest even +/// integer. (Both 3.5 and 4.5 for x will return 4.0.) +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL roundEven man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +/// @see New round to even technique +template +genType roundEven(genType const & x); + +/// Returns a value equal to the nearest integer +/// that is greater than or equal to x. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL ceil man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType ceil(genType const & x); + +/// Return x - floor(x). +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL fract man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType fract(genType const & x); + +/// Modulus. Returns x - y * floor(x / y) +/// for each component in x using the floating point value y. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL mod man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType mod( + genType const & x, + genType const & y); + +/// Modulus. Returns x - y * floor(x / y) +/// for each component in x using the floating point value y. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL mod man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType mod( + genType const & x, + typename genType::value_type const & y); + +/// Returns the fractional part of x and sets i to the integer +/// part (as a whole number floating point value). Both the +/// return value and the output parameter will have the same +/// sign as x. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL modf man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType modf( + genType const & x, + genType & i); + +/// Returns y if y < x; otherwise, it returns x. +/// +/// @tparam genType Floating-point or integer; scalar or vector types. +/// +/// @see GLSL min man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType min( + genType const & x, + genType const & y); + +template +genType min( + genType const & x, + typename genType::value_type const & y); + +/// Returns y if x < y; otherwise, it returns x. +/// +/// @tparam genType Floating-point or integer; scalar or vector types. +/// +/// @see GLSL max man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType max( + genType const & x, + genType const & y); + +template +genType max( + genType const & x, + typename genType::value_type const & y); + +/// Returns min(max(x, minVal), maxVal) for each component in x +/// using the floating-point values minVal and maxVal. +/// +/// @tparam genType Floating-point or integer; scalar or vector types. +/// +/// @see GLSL clamp man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType clamp( + genType const & x, + genType const & minVal, + genType const & maxVal); + +template +genType clamp( + genType const & x, + typename genType::value_type const & minVal, + typename genType::value_type const & maxVal); + +//! @return If genTypeU is a floating scalar or vector: +//! Returns x * (1.0 - a) + y * a, i.e., the linear blend of +//! x and y using the floating-point value a. +//! The value for a is not restricted to the range [0, 1]. +//! +//! @return If genTypeU is a boolean scalar or vector: +//! Selects which vector each returned component comes +//! from. For a component of a that is false, the +//! corresponding component of x is returned. For a +//! component of a that is true, the corresponding +//! component of y is returned. Components of x and y that +//! are not selected are allowed to be invalid floating point +//! values and will have no effect on the results. Thus, this +//! provides different functionality than +//! genType mix(genType x, genType y, genType(a)) +//! where a is a Boolean vector. +/// +/// @see GLSL mix man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +/// +/// @param[in] x Value to interpolate. +/// @param[in] y Value to interpolate. +/// @param[in] a Interpolant. +/// +/// @tparam genTypeT Floating point scalar or vector. +/// @tparam genTypeU Floating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT. +/// +/// @code +/// #include +/// ... +/// float a; +/// bool b; +/// glm::dvec3 e; +/// glm::dvec3 f; +/// glm::vec4 g; +/// glm::vec4 h; +/// ... +/// glm::vec4 r = glm::mix(g, h, a); // Interpolate with a floating-point scalar two vectors. +/// glm::vec4 s = glm::mix(g, h, b); // Teturns g or h; +/// glm::dvec3 t = glm::mix(e, f, a); // Types of the third parameter is not required to match with the first and the second. +/// glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter. +/// @endcode +template +genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a); + +//! Returns 0.0 if x < edge, otherwise it returns 1.0. +//! +/// @see GLSL step man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType step( + genType const & edge, + genType const & x); + +template +genType step( + typename genType::value_type const & edge, + genType const & x); + +/// Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and +/// performs smooth Hermite interpolation between 0 and 1 +/// when edge0 < x < edge1. This is useful in cases where +/// you would want a threshold function with a smooth +/// transition. This is equivalent to: +/// genType t; +/// t = clamp ((x edge0) / (edge1 edge0), 0, 1); +/// return t * t * (3 2 * t); +/// Results are undefined if edge0 >= edge1. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL smoothstep man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType smoothstep( + genType const & edge0, + genType const & edge1, + genType const & x); + +template +genType smoothstep( + typename genType::value_type const & edge0, + typename genType::value_type const & edge1, + genType const & x); + +/// Returns true if x holds a NaN (not a number) +/// representation in the underlying implementation's set of +/// floating point representations. Returns false otherwise, +/// including for implementations with no NaN +/// representations. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL isnan man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +typename genType::bool_type isnan(genType const & x); + +/// Returns true if x holds a positive infinity or negative +/// infinity representation in the underlying implementation's +/// set of floating point representations. Returns false +/// otherwise, including for implementations with no infinity +/// representations. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL isinf man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +typename genType::bool_type isinf(genType const & x); + +/// Returns a signed integer value representing +/// the encoding of a floating-point value. The floatingpoint +/// value's bit-level representation is preserved. +/// +/// @tparam genType Single-precision floating-point scalar or vector types. +/// @tparam genIType Signed integer scalar or vector types. +/// +/// @see GLSL floatBitsToInt man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genIType floatBitsToInt(genType const & value); + +/// Returns a unsigned integer value representing +/// the encoding of a floating-point value. The floatingpoint +/// value's bit-level representation is preserved. +/// +/// @tparam genType Single-precision floating-point scalar or vector types. +/// @tparam genUType Unsigned integer scalar or vector types. +/// +/// @see GLSL floatBitsToUint man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genUType floatBitsToUint(genType const & value); + +/// Returns a floating-point value corresponding to a signed +/// integer encoding of a floating-point value. +/// If an inf or NaN is passed in, it will not signal, and the +/// resulting floating point value is unspecified. Otherwise, +/// the bit-level representation is preserved. +/// +/// @tparam genType Single-precision floating-point scalar or vector types. +/// @tparam genIType Signed integer scalar or vector types. +/// +/// @see GLSL intBitsToFloat man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +/// +/// @todo Clarify this declaration, we don't need to actually specify the return type +template +genType intBitsToFloat(genIType const & value); + +/// Returns a floating-point value corresponding to a +/// unsigned integer encoding of a floating-point value. +/// If an inf or NaN is passed in, it will not signal, and the +/// resulting floating point value is unspecified. Otherwise, +/// the bit-level representation is preserved. +/// +/// @tparam genType Single-precision floating-point scalar or vector types. +/// @tparam genUType Unsigned integer scalar or vector types. +/// +/// @see GLSL uintBitsToFloat man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +/// +/// @todo Clarify this declaration, we don't need to actually specify the return type +template +genType uintBitsToFloat(genUType const & value); + +/// Computes and returns a * b + c. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL fma man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType fma(genType const & a, genType const & b, genType const & c); + +/// Splits x into a floating-point significand in the range +/// [0.5, 1.0) and an integral exponent of two, such that: +/// x = significand * exp(2, exponent) +/// +/// The significand is returned by the function and the +/// exponent is returned in the parameter exp. For a +/// floating-point value of zero, the significant and exponent +/// are both zero. For a floating-point value that is an +/// infinity or is not a number, the results are undefined. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL frexp man page +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType frexp(genType const & x, genIType & exp); + +/// Builds a floating-point number from x and the +/// corresponding integral exponent of two in exp, returning: +/// significand * exp(2, exponent) +/// +/// If this product is too large to be represented in the +/// floating-point type, the result is undefined. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL ldexp man page; +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +template +genType ldexp(genType const & x, genIType const & exp); - /// @} -}//namespace glm +/// @} +} //namespace glm #include "func_common.inl" -#endif//GLM_CORE_func_common +#endif //GLM_CORE_func_common diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_exponential.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_exponential.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_exponential.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_exponential.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -24,100 +24,99 @@ /// @file glm/core/func_exponential.hpp /// @date 2008-08-08 / 2011-06-14 /// @author Christophe Riccio -/// +/// /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions /// /// @defgroup core_func_exponential Exponential functions /// @ingroup core -/// +/// /// These all operate component-wise. The description is per component. /////////////////////////////////////////////////////////////////////////////////// #ifndef glm_core_func_exponential #define glm_core_func_exponential GLM_VERSION -namespace glm -{ - /// @addtogroup core_func_exponential - /// @{ - - /// Returns x raised to the y power. - /// - /// @param x pow function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. - /// @param y - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL pow man page - /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions - template - genType pow(genType const & x, genType const & y); - - /// Returns the natural exponentiation of x, i.e., e^x. - /// - /// @param x exp function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL exp man page - /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions - template - genType exp(genType const & x); - - /// Returns the natural logarithm of x, i.e., - /// returns the value y which satisfies the equation x = e^y. - /// Results are undefined if x <= 0. - /// - /// @param x log function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision. - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL log man page - /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions - template - genType log(genType const & x); - - /// Returns 2 raised to the x power. - /// - /// @param x exp2 function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL exp2 man page - /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions - template - genType exp2(genType const & x); - - /// Returns the base 2 log of x, i.e., returns the value y, - /// which satisfies the equation x = 2 ^ y. - /// - /// @param x log2 function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision. - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL log2 man page - /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions - template - genType log2(genType const & x); - - /// Returns the positive square root of x. - /// - /// @param x sqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision. - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL sqrt man page - /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions - template - genType sqrt(genType const & x); - - /// Returns the reciprocal of the positive square root of x. - /// - /// @param x inversesqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision. - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL inversesqrt man page - /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions - template - genType inversesqrt(genType const & x); +namespace glm { +/// @addtogroup core_func_exponential +/// @{ + +/// Returns x raised to the y power. +/// +/// @param x pow function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. +/// @param y +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL pow man page +/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions +template +genType pow(genType const & x, genType const & y); + +/// Returns the natural exponentiation of x, i.e., e^x. +/// +/// @param x exp function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL exp man page +/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions +template +genType exp(genType const & x); + +/// Returns the natural logarithm of x, i.e., +/// returns the value y which satisfies the equation x = e^y. +/// Results are undefined if x <= 0. +/// +/// @param x log function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision. +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL log man page +/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions +template +genType log(genType const & x); + +/// Returns 2 raised to the x power. +/// +/// @param x exp2 function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL exp2 man page +/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions +template +genType exp2(genType const & x); + +/// Returns the base 2 log of x, i.e., returns the value y, +/// which satisfies the equation x = 2 ^ y. +/// +/// @param x log2 function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision. +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL log2 man page +/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions +template +genType log2(genType const & x); + +/// Returns the positive square root of x. +/// +/// @param x sqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision. +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL sqrt man page +/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions +template +genType sqrt(genType const & x); + +/// Returns the reciprocal of the positive square root of x. +/// +/// @param x inversesqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision. +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL inversesqrt man page +/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions +template +genType inversesqrt(genType const & x); - /// @} -}//namespace glm +/// @} +} //namespace glm #include "func_exponential.inl" -#endif//glm_core_func_exponential +#endif //glm_core_func_exponential diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_geometric.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_geometric.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_geometric.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_geometric.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26,113 +26,112 @@ /// @author Christophe Riccio /// /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions -/// +/// /// @defgroup core_func_geometric Geometric functions /// @ingroup core -/// +/// /// These operate on vectors as vectors, not component-wise. /////////////////////////////////////////////////////////////////////////////////// #ifndef glm_core_func_geometric #define glm_core_func_geometric GLM_VERSION -namespace glm -{ - /// @addtogroup core_func_geometric - /// @{ - - /// Returns the length of x, i.e., sqrt(x * x). - /// - /// @tparam genType Floating-point vector types. - /// - /// @see GLSL length man page - /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions - template - typename genType::value_type length( - genType const & x); - - /// Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). - /// - /// @tparam genType Floating-point vector types. - /// - /// @see GLSL distance man page - /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions - template - typename genType::value_type distance( - genType const & p0, - genType const & p1); - - /// Returns the dot product of x and y, i.e., result = x * y. - /// - /// @tparam genType Floating-point vector types. - /// - /// @see GLSL dot man page - /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions - template - typename genType::value_type dot( - genType const & x, - genType const & y); - - /// Returns the cross product of x and y. - /// - /// @tparam valType Floating-point scalar types. - /// - /// @see GLSL cross man page - /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions - template - detail::tvec3 cross( - detail::tvec3 const & x, - detail::tvec3 const & y); - - /// Returns a vector in the same direction as x but with length of 1. - /// - /// @see GLSL normalize man page - /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions - template - genType normalize( - genType const & x); - - /// If dot(Nref, I) < 0.0, return N, otherwise, return -N. - /// - /// @tparam genType Floating-point vector types. - /// - /// @see GLSL faceforward man page - /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions - template - genType faceforward( - genType const & N, - genType const & I, - genType const & Nref); - - /// For the incident vector I and surface orientation N, - /// returns the reflection direction : result = I - 2.0 * dot(N, I) * N. - /// - /// @tparam genType Floating-point vector types. - /// - /// @see GLSL reflect man page - /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions - template - genType reflect( - genType const & I, - genType const & N); - - /// For the incident vector I and surface normal N, - /// and the ratio of indices of refraction eta, - /// return the refraction vector. - /// - /// @tparam genType Floating-point vector types. - /// - /// @see GLSL refract man page - /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions - template - genType refract( - genType const & I, - genType const & N, - typename genType::value_type const & eta); +namespace glm { +/// @addtogroup core_func_geometric +/// @{ + +/// Returns the length of x, i.e., sqrt(x * x). +/// +/// @tparam genType Floating-point vector types. +/// +/// @see GLSL length man page +/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions +template +typename genType::value_type length( + genType const & x); + +/// Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). +/// +/// @tparam genType Floating-point vector types. +/// +/// @see GLSL distance man page +/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions +template +typename genType::value_type distance( + genType const & p0, + genType const & p1); + +/// Returns the dot product of x and y, i.e., result = x * y. +/// +/// @tparam genType Floating-point vector types. +/// +/// @see GLSL dot man page +/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions +template +typename genType::value_type dot( + genType const & x, + genType const & y); + +/// Returns the cross product of x and y. +/// +/// @tparam valType Floating-point scalar types. +/// +/// @see GLSL cross man page +/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions +template +detail::tvec3 cross( + detail::tvec3 const & x, + detail::tvec3 const & y); + +/// Returns a vector in the same direction as x but with length of 1. +/// +/// @see GLSL normalize man page +/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions +template +genType normalize( + genType const & x); + +/// If dot(Nref, I) < 0.0, return N, otherwise, return -N. +/// +/// @tparam genType Floating-point vector types. +/// +/// @see GLSL faceforward man page +/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions +template +genType faceforward( + genType const & N, + genType const & I, + genType const & Nref); + +/// For the incident vector I and surface orientation N, +/// returns the reflection direction : result = I - 2.0 * dot(N, I) * N. +/// +/// @tparam genType Floating-point vector types. +/// +/// @see GLSL reflect man page +/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions +template +genType reflect( + genType const & I, + genType const & N); + +/// For the incident vector I and surface normal N, +/// and the ratio of indices of refraction eta, +/// return the refraction vector. +/// +/// @tparam genType Floating-point vector types. +/// +/// @see GLSL refract man page +/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions +template +genType refract( + genType const & I, + genType const & N, + typename genType::value_type const & eta); - /// @} -}//namespace glm +/// @} +} //namespace glm #include "func_geometric.inl" -#endif//glm_core_func_geometric +#endif //glm_core_func_geometric diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_integer.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_integer.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_integer.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_integer.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26,176 +26,174 @@ /// @author Christophe Riccio /// /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions -/// +/// /// @defgroup core_func_integer Integer functions /// @ingroup core -/// -/// These all operate component-wise. The description is per component. -/// The notation [a, b] means the set of bits from bit-number a through bit-number +/// +/// These all operate component-wise. The description is per component. +/// The notation [a, b] means the set of bits from bit-number a through bit-number /// b, inclusive. The lowest-order bit is bit 0. /////////////////////////////////////////////////////////////////////////////////// #ifndef glm_core_func_integer #define glm_core_func_integer GLM_VERSION -namespace glm -{ - /// @addtogroup core_func_integer - /// @{ - - /// Adds 32-bit unsigned integer x and y, returning the sum - /// modulo pow(2, 32). The value carry is set to 0 if the sum was - /// less than pow(2, 32), or to 1 otherwise. - /// - /// @tparam genUType Unsigned integer scalar or vector types. - /// - /// @see GLSL uaddCarry man page - /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - template - genUType uaddCarry( - genUType const & x, - genUType const & y, - genUType & carry); - - /// Subtracts the 32-bit unsigned integer y from x, returning - /// the difference if non-negative, or pow(2, 32) plus the difference - /// otherwise. The value borrow is set to 0 if x >= y, or to 1 otherwise. - /// - /// @tparam genUType Unsigned integer scalar or vector types. - /// - /// @see GLSL usubBorrow man page - /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - template - genUType usubBorrow( - genUType const & x, - genUType const & y, - genUType & borrow); - - /// Multiplies 32-bit integers x and y, producing a 64-bit - /// result. The 32 least-significant bits are returned in lsb. - /// The 32 most-significant bits are returned in msb. - /// - /// @tparam genUType Unsigned integer scalar or vector types. - /// - /// @see GLSL umulExtended man page - /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - template - void umulExtended( - genUType const & x, - genUType const & y, - genUType & msb, - genUType & lsb); - - /// Multiplies 32-bit integers x and y, producing a 64-bit - /// result. The 32 least-significant bits are returned in lsb. - /// The 32 most-significant bits are returned in msb. - /// - /// @tparam genIType Signed integer scalar or vector types. - /// - /// @see GLSL imulExtended man page - /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - template - void imulExtended( - genIType const & x, - genIType const & y, - genIType & msb, - genIType & lsb); - - /// Extracts bits [offset, offset + bits - 1] from value, - /// returning them in the least significant bits of the result. - /// For unsigned data types, the most significant bits of the - /// result will be set to zero. For signed data types, the - /// most significant bits will be set to the value of bit offset + base 1. - /// - /// If bits is zero, the result will be zero. The result will be - /// undefined if offset or bits is negative, or if the sum of - /// offset and bits is greater than the number of bits used - /// to store the operand. - /// - /// @tparam genIUType Signed or unsigned integer scalar or vector types. - /// - /// @see GLSL bitfieldExtract man page - /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - template - genIUType bitfieldExtract( - genIUType const & Value, - int const & Offset, - int const & Bits); - - /// Returns the insertion the bits least-significant bits of insert into base. - /// - /// The result will have bits [offset, offset + bits - 1] taken - /// from bits [0, bits 1] of insert, and all other bits taken - /// directly from the corresponding bits of base. If bits is - /// zero, the result will simply be base. The result will be - /// undefined if offset or bits is negative, or if the sum of - /// offset and bits is greater than the number of bits used to - /// store the operand. - /// - /// @tparam genIUType Signed or unsigned integer scalar or vector types. - /// - /// @see GLSL bitfieldInsert man page - /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - template - genIUType bitfieldInsert( - genIUType const & Base, - genIUType const & Insert, - int const & Offset, - int const & Bits); - - /// Returns the reversal of the bits of value. - /// The bit numbered n of the result will be taken from bit (bits - 1) - n of value, - /// where bits is the total number of bits used to represent value. - /// - /// @tparam genIUType Signed or unsigned integer scalar or vector types. - /// - /// @see GLSL bitfieldReverse man page - /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - template - genIUType bitfieldReverse(genIUType const & value); - - /// Returns the number of bits set to 1 in the binary representation of value. - /// - /// @tparam genIUType Signed or unsigned integer scalar or vector types. - /// - /// @see GLSL bitCount man page - /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - /// - /// @todo Clarify the declaration to specify that scalars are suported. - template class genIUType> - typename genIUType::signed_type bitCount(genIUType const & Value); - - /// Returns the bit number of the least significant bit set to - /// 1 in the binary representation of value. - /// If value is zero, -1 will be returned. - /// - /// @tparam genIUType Signed or unsigned integer scalar or vector types. - /// - /// @see GLSL findLSB man page - /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - /// - /// @todo Clarify the declaration to specify that scalars are suported. - template class genIUType> - typename genIUType::signed_type findLSB(genIUType const & Value); - - /// Returns the bit number of the most significant bit in the binary representation of value. - /// For positive integers, the result will be the bit number of the most significant bit set to 1. - /// For negative integers, the result will be the bit number of the most significant - /// bit set to 0. For a value of zero or negative one, -1 will be returned. - /// - /// @tparam genIUType Signed or unsigned integer scalar or vector types. - /// - /// @see GLSL findMSB man page - /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions - /// - /// @todo Clarify the declaration to specify that scalars are suported. - template class genIUType> - typename genIUType::signed_type findMSB(genIUType const & Value); +namespace glm { +/// @addtogroup core_func_integer +/// @{ + +/// Adds 32-bit unsigned integer x and y, returning the sum +/// modulo pow(2, 32). The value carry is set to 0 if the sum was +/// less than pow(2, 32), or to 1 otherwise. +/// +/// @tparam genUType Unsigned integer scalar or vector types. +/// +/// @see GLSL uaddCarry man page +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +template +genUType uaddCarry( + genUType const & x, + genUType const & y, + genUType & carry); + +/// Subtracts the 32-bit unsigned integer y from x, returning +/// the difference if non-negative, or pow(2, 32) plus the difference +/// otherwise. The value borrow is set to 0 if x >= y, or to 1 otherwise. +/// +/// @tparam genUType Unsigned integer scalar or vector types. +/// +/// @see GLSL usubBorrow man page +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +template +genUType usubBorrow( + genUType const & x, + genUType const & y, + genUType & borrow); + +/// Multiplies 32-bit integers x and y, producing a 64-bit +/// result. The 32 least-significant bits are returned in lsb. +/// The 32 most-significant bits are returned in msb. +/// +/// @tparam genUType Unsigned integer scalar or vector types. +/// +/// @see GLSL umulExtended man page +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +template +void umulExtended( + genUType const & x, + genUType const & y, + genUType & msb, + genUType & lsb); + +/// Multiplies 32-bit integers x and y, producing a 64-bit +/// result. The 32 least-significant bits are returned in lsb. +/// The 32 most-significant bits are returned in msb. +/// +/// @tparam genIType Signed integer scalar or vector types. +/// +/// @see GLSL imulExtended man page +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +template +void imulExtended( + genIType const & x, + genIType const & y, + genIType & msb, + genIType & lsb); + +/// Extracts bits [offset, offset + bits - 1] from value, +/// returning them in the least significant bits of the result. +/// For unsigned data types, the most significant bits of the +/// result will be set to zero. For signed data types, the +/// most significant bits will be set to the value of bit offset + base 1. +/// +/// If bits is zero, the result will be zero. The result will be +/// undefined if offset or bits is negative, or if the sum of +/// offset and bits is greater than the number of bits used +/// to store the operand. +/// +/// @tparam genIUType Signed or unsigned integer scalar or vector types. +/// +/// @see GLSL bitfieldExtract man page +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +template +genIUType bitfieldExtract( + genIUType const & Value, + int const & Offset, + int const & Bits); + +/// Returns the insertion the bits least-significant bits of insert into base. +/// +/// The result will have bits [offset, offset + bits - 1] taken +/// from bits [0, bits 1] of insert, and all other bits taken +/// directly from the corresponding bits of base. If bits is +/// zero, the result will simply be base. The result will be +/// undefined if offset or bits is negative, or if the sum of +/// offset and bits is greater than the number of bits used to +/// store the operand. +/// +/// @tparam genIUType Signed or unsigned integer scalar or vector types. +/// +/// @see GLSL bitfieldInsert man page +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +template +genIUType bitfieldInsert( + genIUType const & Base, + genIUType const & Insert, + int const & Offset, + int const & Bits); + +/// Returns the reversal of the bits of value. +/// The bit numbered n of the result will be taken from bit (bits - 1) - n of value, +/// where bits is the total number of bits used to represent value. +/// +/// @tparam genIUType Signed or unsigned integer scalar or vector types. +/// +/// @see GLSL bitfieldReverse man page +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +template +genIUType bitfieldReverse(genIUType const & value); - /// @} -}//namespace glm +/// Returns the number of bits set to 1 in the binary representation of value. +/// +/// @tparam genIUType Signed or unsigned integer scalar or vector types. +/// +/// @see GLSL bitCount man page +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +/// +/// @todo Clarify the declaration to specify that scalars are suported. +template class genIUType> +typename genIUType::signed_type bitCount(genIUType const & Value); + +/// Returns the bit number of the least significant bit set to +/// 1 in the binary representation of value. +/// If value is zero, -1 will be returned. +/// +/// @tparam genIUType Signed or unsigned integer scalar or vector types. +/// +/// @see GLSL findLSB man page +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +/// +/// @todo Clarify the declaration to specify that scalars are suported. +template class genIUType> +typename genIUType::signed_type findLSB(genIUType const & Value); + +/// Returns the bit number of the most significant bit in the binary representation of value. +/// For positive integers, the result will be the bit number of the most significant bit set to 1. +/// For negative integers, the result will be the bit number of the most significant +/// bit set to 0. For a value of zero or negative one, -1 will be returned. +/// +/// @tparam genIUType Signed or unsigned integer scalar or vector types. +/// +/// @see GLSL findMSB man page +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +/// +/// @todo Clarify the declaration to specify that scalars are suported. +template class genIUType> +typename genIUType::signed_type findMSB(genIUType const & Value); -#include "func_integer.inl" +/// @} +} //namespace glm -#endif//glm_core_func_integer +#include "func_integer.inl" +#endif //glm_core_func_integer diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_matrix.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_matrix.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_matrix.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_matrix.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26,125 +26,124 @@ /// @author Christophe Riccio /// /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions -/// +/// /// @defgroup core_func_matrix Matrix functions /// @ingroup core -/// -/// For each of the following built-in matrix functions, there is both a -/// single-precision floating point version, where all arguments and return values -/// are single precision, and a double-precision floating version, where all -/// arguments and return values are double precision. Only the single-precision +/// +/// For each of the following built-in matrix functions, there is both a +/// single-precision floating point version, where all arguments and return values +/// are single precision, and a double-precision floating version, where all +/// arguments and return values are double precision. Only the single-precision /// floating point version is shown. /////////////////////////////////////////////////////////////////////////////////// #ifndef GLM_CORE_func_matrix #define GLM_CORE_func_matrix GLM_VERSION -namespace glm -{ - /// @addtogroup core_func_matrix - /// @{ - - /// Multiply matrix x by matrix y component-wise, i.e., - /// result[i][j] is the scalar product of x[i][j] and y[i][j]. - /// - /// @tparam matType Floating-point matrix types. - /// - /// @see GLSL matrixCompMult man page - /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions - template - matType matrixCompMult( - matType const & x, - matType const & y); - - /// Treats the first parameter c as a column vector - /// and the second parameter r as a row vector - /// and does a linear algebraic matrix multiply c * r. - /// - /// @tparam matType Floating-point matrix types. - /// - /// @see GLSL outerProduct man page - /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions - /// - /// @todo Clarify the declaration to specify that matType doesn't have to be provided when used. - template - matType outerProduct( - vecType const & c, - vecType const & r); - - /// Returns the transposed matrix of x - /// - /// @tparam matType Floating-point matrix types. - /// - /// @see GLSL transpose man page - /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions - template - typename matType::transpose_type transpose( - matType const & x); - - /// Return the determinant of a mat2 matrix. - /// - /// @tparam valType Floating-point scalar types. - /// - /// @see GLSL determinant man page - /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions - template - typename detail::tmat2x2::value_type determinant( - detail::tmat2x2 const & m); - - /// Return the determinant of a mat3 matrix. - /// - /// @tparam valType Floating-point scalar types. - /// - /// @see GLSL determinant man page - /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions - template - typename detail::tmat3x3::value_type determinant( - detail::tmat3x3 const & m); - - /// Return the determinant of a mat4 matrix. - /// - /// @tparam valType Floating-point scalar types. - /// - /// @see GLSL determinant man page - /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions - template - typename detail::tmat4x4::value_type determinant( - detail::tmat4x4 const & m); - - /// Return the inverse of a mat2 matrix. - /// - /// @tparam valType Floating-point scalar types. - /// - /// @see GLSL inverse man page - /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions - template - detail::tmat2x2 inverse( - detail::tmat2x2 const & m); - - /// Return the inverse of a mat3 matrix. - /// - /// @tparam valType Floating-point scalar types. - /// - /// @see GLSL inverse man page - /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions - template - detail::tmat3x3 inverse( - detail::tmat3x3 const & m); - - /// Return the inverse of a mat4 matrix. - /// - /// @tparam valType Floating-point scalar types. - /// - /// @see GLSL inverse man page - /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions - template - detail::tmat4x4 inverse( - detail::tmat4x4 const & m); +namespace glm { +/// @addtogroup core_func_matrix +/// @{ + +/// Multiply matrix x by matrix y component-wise, i.e., +/// result[i][j] is the scalar product of x[i][j] and y[i][j]. +/// +/// @tparam matType Floating-point matrix types. +/// +/// @see GLSL matrixCompMult man page +/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions +template +matType matrixCompMult( + matType const & x, + matType const & y); + +/// Treats the first parameter c as a column vector +/// and the second parameter r as a row vector +/// and does a linear algebraic matrix multiply c * r. +/// +/// @tparam matType Floating-point matrix types. +/// +/// @see GLSL outerProduct man page +/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions +/// +/// @todo Clarify the declaration to specify that matType doesn't have to be provided when used. +template +matType outerProduct( + vecType const & c, + vecType const & r); + +/// Returns the transposed matrix of x +/// +/// @tparam matType Floating-point matrix types. +/// +/// @see GLSL transpose man page +/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions +template +typename matType::transpose_type transpose( + matType const & x); + +/// Return the determinant of a mat2 matrix. +/// +/// @tparam valType Floating-point scalar types. +/// +/// @see GLSL determinant man page +/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions +template +typename detail::tmat2x2::value_type determinant( + detail::tmat2x2 const & m); + +/// Return the determinant of a mat3 matrix. +/// +/// @tparam valType Floating-point scalar types. +/// +/// @see GLSL determinant man page +/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions +template +typename detail::tmat3x3::value_type determinant( + detail::tmat3x3 const & m); + +/// Return the determinant of a mat4 matrix. +/// +/// @tparam valType Floating-point scalar types. +/// +/// @see GLSL determinant man page +/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions +template +typename detail::tmat4x4::value_type determinant( + detail::tmat4x4 const & m); + +/// Return the inverse of a mat2 matrix. +/// +/// @tparam valType Floating-point scalar types. +/// +/// @see GLSL inverse man page +/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions +template +detail::tmat2x2 inverse( + detail::tmat2x2 const & m); + +/// Return the inverse of a mat3 matrix. +/// +/// @tparam valType Floating-point scalar types. +/// +/// @see GLSL inverse man page +/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions +template +detail::tmat3x3 inverse( + detail::tmat3x3 const & m); + +/// Return the inverse of a mat4 matrix. +/// +/// @tparam valType Floating-point scalar types. +/// +/// @see GLSL inverse man page +/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions +template +detail::tmat4x4 inverse( + detail::tmat4x4 const & m); - /// @} -}//namespace glm +/// @} +} //namespace glm #include "func_matrix.inl" -#endif//GLM_CORE_func_matrix +#endif //GLM_CORE_func_matrix diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_noise.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_noise.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_noise.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_noise.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26,62 +26,61 @@ /// @author Christophe Riccio /// /// @see GLSL 4.20.8 specification, section 8.13 Noise Functions -/// +/// /// @defgroup core_func_noise Noise functions /// @ingroup core -/// -/// Noise functions are stochastic functions that can be used to increase visual -/// complexity. Values returned by the following noise functions give the +/// +/// Noise functions are stochastic functions that can be used to increase visual +/// complexity. Values returned by the following noise functions give the /// appearance of randomness, but are not truly random. /////////////////////////////////////////////////////////////////////////////////// #ifndef glm_core_func_noise #define glm_core_func_noise GLM_VERSION -namespace glm -{ - /// @addtogroup core_func_noise - /// @{ - - /// Returns a 1D noise value based on the input value x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL noise1 man page - /// @see GLSL 4.20.8 specification, section 8.13 Noise Functions - template - typename genType::value_type noise1(genType const & x); - - /// Returns a 2D noise value based on the input value x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL noise2 man page - /// @see GLSL 4.20.8 specification, section 8.13 Noise Functions - template - detail::tvec2 noise2(genType const & x); - - /// Returns a 3D noise value based on the input value x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL noise3 man page - /// @see GLSL 4.20.8 specification, section 8.13 Noise Functions - template - detail::tvec3 noise3(genType const & x); - - /// Returns a 4D noise value based on the input value x. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL noise4 man page - /// @see GLSL 4.20.8 specification, section 8.13 Noise Functions - template - detail::tvec4 noise4(genType const & x); +namespace glm { +/// @addtogroup core_func_noise +/// @{ + +/// Returns a 1D noise value based on the input value x. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL noise1 man page +/// @see GLSL 4.20.8 specification, section 8.13 Noise Functions +template +typename genType::value_type noise1(genType const & x); + +/// Returns a 2D noise value based on the input value x. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL noise2 man page +/// @see GLSL 4.20.8 specification, section 8.13 Noise Functions +template +detail::tvec2 noise2(genType const & x); + +/// Returns a 3D noise value based on the input value x. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL noise3 man page +/// @see GLSL 4.20.8 specification, section 8.13 Noise Functions +template +detail::tvec3 noise3(genType const & x); + +/// Returns a 4D noise value based on the input value x. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL noise4 man page +/// @see GLSL 4.20.8 specification, section 8.13 Noise Functions +template +detail::tvec4 noise4(genType const & x); - /// @} -}//namespace glm +/// @} +} //namespace glm #include "func_noise.inl" -#endif//glm_core_func_noise +#endif //glm_core_func_noise diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_packing.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_packing.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_packing.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_packing.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26,169 +26,166 @@ /// @author Christophe Riccio /// /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions -/// +/// /// @defgroup core_func_packing Floating-Point Pack and Unpack Functions /// @ingroup core -/// +/// /// These functions do not operate component-wise, rather as described in each case. /////////////////////////////////////////////////////////////////////////////////// #ifndef GLM_CORE_func_packing #define GLM_CORE_func_packing GLM_VERSION -namespace glm -{ - /// @addtogroup core_func_packing - /// @{ - - //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. - //! Then, the results are packed into the returned 32-bit unsigned integer. - //! - //! The conversion for component c of v to fixed point is done as follows: - //! packUnorm2x16: round(clamp(c, 0, +1) * 65535.0) - //! - //! The first component of the vector will be written to the least significant bits of the output; - //! the last component will be written to the most significant bits. - //! - /// @see GLSL packUnorm2x16 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - detail::uint32 packUnorm2x16(detail::tvec2 const & v); - - //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. - //! Then, the results are packed into the returned 32-bit unsigned integer. - //! - //! The conversion for component c of v to fixed point is done as follows: - //! packSnorm2x16: round(clamp(v, -1, +1) * 32767.0) - //! - //! The first component of the vector will be written to the least significant bits of the output; - //! the last component will be written to the most significant bits. - //! - /// @see GLSL packSnorm2x16 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - detail::uint32 packSnorm2x16(detail::tvec2 const & v); - - //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. - //! Then, the results are packed into the returned 32-bit unsigned integer. - //! - //! The conversion for component c of v to fixed point is done as follows: - //! packUnorm4x8: round(clamp(c, 0, +1) * 255.0) - //! - //! The first component of the vector will be written to the least significant bits of the output; - //! the last component will be written to the most significant bits. - //! - /// @see GLSL packUnorm4x8 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - detail::uint32 packUnorm4x8(detail::tvec4 const & v); - - //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. - //! Then, the results are packed into the returned 32-bit unsigned integer. - //! - //! The conversion for component c of v to fixed point is done as follows: - //! packSnorm4x8: round(clamp(c, -1, +1) * 127.0) - //! - //! The first component of the vector will be written to the least significant bits of the output; - //! the last component will be written to the most significant bits. - //! - /// @see GLSL packSnorm4x8 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - detail::uint32 packSnorm4x8(detail::tvec4 const & v); - - //! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. - //! Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. - //! - //! The conversion for unpacked fixed-point value f to floating point is done as follows: - //! unpackUnorm2x16: f / 65535.0 - //! - //! The first component of the returned vector will be extracted from the least significant bits of the input; - //! the last component will be extracted from the most significant bits. - //! - /// @see GLSL unpackUnorm2x16 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - detail::tvec2 unpackUnorm2x16(detail::uint32 const & p); - - //! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. - //! Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. - //! - //! The conversion for unpacked fixed-point value f to floating point is done as follows: - //! unpackSnorm2x16: clamp(f / 32767.0, -1, +1) - //! - //! The first component of the returned vector will be extracted from the least significant bits of the input; - //! the last component will be extracted from the most significant bits. - //! - /// @see GLSL unpackSnorm2x16 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - detail::tvec2 unpackSnorm2x16(detail::uint32 const & p); - - /// First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. - /// Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. - /// - /// The conversion for unpacked fixed-point value f to floating point is done as follows: - /// unpackUnorm4x8: f / 255.0 - /// - /// The first component of the returned vector will be extracted from the least significant bits of the input; - /// the last component will be extracted from the most significant bits. - /// - /// @see GLSL unpackUnorm4x8 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - detail::tvec4 unpackUnorm4x8(detail::uint32 const & p); - - /// First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. - /// Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. - /// - /// The conversion for unpacked fixed-point value f to floating point is done as follows: - /// unpackSnorm4x8: clamp(f / 127.0, -1, +1) - /// - /// The first component of the returned vector will be extracted from the least significant bits of the input; - /// the last component will be extracted from the most significant bits. - /// - /// @see GLSL unpackSnorm4x8 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - detail::tvec4 unpackSnorm4x8(detail::uint32 const & p); - - /// Returns a double-precision value obtained by packing the components of v into a 64-bit value. - /// If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. - /// Otherwise, the bit- level representation of v is preserved. - /// The first vector component specifies the 32 least significant bits; - /// the second component specifies the 32 most significant bits. - /// - /// @see GLSL packDouble2x32 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - double packDouble2x32(detail::tvec2 const & v); - - /// Returns a two-component unsigned integer vector representation of v. - /// The bit-level representation of v is preserved. - /// The first component of the vector contains the 32 least significant bits of the double; - /// the second component consists the 32 most significant bits. - /// - /// @see GLSL unpackDouble2x32 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - detail::tvec2 unpackDouble2x32(double const & v); - - - /// Returns an unsigned integer obtained by converting the components of a two-component floating-point vector - /// to the 16-bit floating-point representation found in the OpenGL Specification, - /// and then packing these two 16- bit integers into a 32-bit unsigned integer. - /// The first vector component specifies the 16 least-significant bits of the result; - /// the second component specifies the 16 most-significant bits. - /// - /// @see GLSL packHalf2x16 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - uint packHalf2x16(vec2 const & v); - - /// Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, - /// interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, - /// and converting them to 32-bit floating-point values. - /// The first component of the vector is obtained from the 16 least-significant bits of v; - /// the second component is obtained from the 16 most-significant bits of v. - /// - /// @see GLSL unpackHalf2x16 man page - /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions - vec2 unpackHalf2x16(uint const & v); - - /// @} -}//namespace glm +namespace glm { +/// @addtogroup core_func_packing +/// @{ + +//! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. +//! Then, the results are packed into the returned 32-bit unsigned integer. +//! +//! The conversion for component c of v to fixed point is done as follows: +//! packUnorm2x16: round(clamp(c, 0, +1) * 65535.0) +//! +//! The first component of the vector will be written to the least significant bits of the output; +//! the last component will be written to the most significant bits. +//! +/// @see GLSL packUnorm2x16 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +detail::uint32 packUnorm2x16(detail::tvec2 const & v); + +//! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. +//! Then, the results are packed into the returned 32-bit unsigned integer. +//! +//! The conversion for component c of v to fixed point is done as follows: +//! packSnorm2x16: round(clamp(v, -1, +1) * 32767.0) +//! +//! The first component of the vector will be written to the least significant bits of the output; +//! the last component will be written to the most significant bits. +//! +/// @see GLSL packSnorm2x16 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +detail::uint32 packSnorm2x16(detail::tvec2 const & v); -#include "func_packing.inl" +//! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. +//! Then, the results are packed into the returned 32-bit unsigned integer. +//! +//! The conversion for component c of v to fixed point is done as follows: +//! packUnorm4x8: round(clamp(c, 0, +1) * 255.0) +//! +//! The first component of the vector will be written to the least significant bits of the output; +//! the last component will be written to the most significant bits. +//! +/// @see GLSL packUnorm4x8 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +detail::uint32 packUnorm4x8(detail::tvec4 const & v); + +//! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. +//! Then, the results are packed into the returned 32-bit unsigned integer. +//! +//! The conversion for component c of v to fixed point is done as follows: +//! packSnorm4x8: round(clamp(c, -1, +1) * 127.0) +//! +//! The first component of the vector will be written to the least significant bits of the output; +//! the last component will be written to the most significant bits. +//! +/// @see GLSL packSnorm4x8 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +detail::uint32 packSnorm4x8(detail::tvec4 const & v); + +//! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. +//! Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. +//! +//! The conversion for unpacked fixed-point value f to floating point is done as follows: +//! unpackUnorm2x16: f / 65535.0 +//! +//! The first component of the returned vector will be extracted from the least significant bits of the input; +//! the last component will be extracted from the most significant bits. +//! +/// @see GLSL unpackUnorm2x16 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +detail::tvec2 unpackUnorm2x16(detail::uint32 const & p); + +//! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. +//! Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. +//! +//! The conversion for unpacked fixed-point value f to floating point is done as follows: +//! unpackSnorm2x16: clamp(f / 32767.0, -1, +1) +//! +//! The first component of the returned vector will be extracted from the least significant bits of the input; +//! the last component will be extracted from the most significant bits. +//! +/// @see GLSL unpackSnorm2x16 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +detail::tvec2 unpackSnorm2x16(detail::uint32 const & p); + +/// First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. +/// Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. +/// +/// The conversion for unpacked fixed-point value f to floating point is done as follows: +/// unpackUnorm4x8: f / 255.0 +/// +/// The first component of the returned vector will be extracted from the least significant bits of the input; +/// the last component will be extracted from the most significant bits. +/// +/// @see GLSL unpackUnorm4x8 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +detail::tvec4 unpackUnorm4x8(detail::uint32 const & p); -#endif//GLM_CORE_func_packing +/// First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. +/// Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. +/// +/// The conversion for unpacked fixed-point value f to floating point is done as follows: +/// unpackSnorm4x8: clamp(f / 127.0, -1, +1) +/// +/// The first component of the returned vector will be extracted from the least significant bits of the input; +/// the last component will be extracted from the most significant bits. +/// +/// @see GLSL unpackSnorm4x8 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +detail::tvec4 unpackSnorm4x8(detail::uint32 const & p); + +/// Returns a double-precision value obtained by packing the components of v into a 64-bit value. +/// If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. +/// Otherwise, the bit- level representation of v is preserved. +/// The first vector component specifies the 32 least significant bits; +/// the second component specifies the 32 most significant bits. +/// +/// @see GLSL packDouble2x32 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +double packDouble2x32(detail::tvec2 const & v); + +/// Returns a two-component unsigned integer vector representation of v. +/// The bit-level representation of v is preserved. +/// The first component of the vector contains the 32 least significant bits of the double; +/// the second component consists the 32 most significant bits. +/// +/// @see GLSL unpackDouble2x32 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +detail::tvec2 unpackDouble2x32(double const & v); + +/// Returns an unsigned integer obtained by converting the components of a two-component floating-point vector +/// to the 16-bit floating-point representation found in the OpenGL Specification, +/// and then packing these two 16- bit integers into a 32-bit unsigned integer. +/// The first vector component specifies the 16 least-significant bits of the result; +/// the second component specifies the 16 most-significant bits. +/// +/// @see GLSL packHalf2x16 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +uint packHalf2x16(vec2 const & v); + +/// Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, +/// interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, +/// and converting them to 32-bit floating-point values. +/// The first component of the vector is obtained from the 16 least-significant bits of v; +/// the second component is obtained from the 16 most-significant bits of v. +/// +/// @see GLSL unpackHalf2x16 man page +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +vec2 unpackHalf2x16(uint const & v); + +/// @} +} //namespace glm + +#include "func_packing.inl" +#endif //GLM_CORE_func_packing diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_trigonometric.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_trigonometric.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_trigonometric.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_trigonometric.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26,178 +26,175 @@ /// @author Christophe Riccio /// /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions -/// +/// /// @defgroup core_func_trigonometric Angle and Trigonometry Functions /// @ingroup core -/// -/// Function parameters specified as angle are assumed to be in units of radians. -/// In no case will any of these functions result in a divide by zero error. If +/// +/// Function parameters specified as angle are assumed to be in units of radians. +/// In no case will any of these functions result in a divide by zero error. If /// the divisor of a ratio is 0, then results will be undefined. -/// +/// /// These all operate component-wise. The description is per component. /////////////////////////////////////////////////////////////////////////////////// #ifndef GLM_CORE_func_trigonometric #define GLM_CORE_func_trigonometric GLM_VERSION -namespace glm -{ - /// @addtogroup core_func_trigonometric - /// @{ - - /// Converts degrees to radians and returns the result. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL radians man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType radians(genType const & degrees); - - /// Converts radians to degrees and returns the result. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL degrees man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType degrees(genType const & radians); - - /// The standard trigonometric sine function. - /// The values returned by this function will range from [-1, 1]. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL sin man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType sin(genType const & angle); - - /// The standard trigonometric cosine function. - /// The values returned by this function will range from [-1, 1]. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL cos man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType cos(genType const & angle); - - /// The standard trigonometric tangent function. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL tan man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType tan(genType const & angle); - - /// Arc sine. Returns an angle whose sine is x. - /// The range of values returned by this function is [-PI/2, PI/2]. - /// Results are undefined if |x| > 1. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL asin man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType asin(genType const & x); - - /// Arc cosine. Returns an angle whose sine is x. - /// The range of values returned by this function is [0, PI]. - /// Results are undefined if |x| > 1. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL acos man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType acos(genType const & x); - - /// Arc tangent. Returns an angle whose tangent is y/x. - /// The signs of x and y are used to determine what - /// quadrant the angle is in. The range of values returned - /// by this function is [-PI, PI]. Results are undefined - /// if x and y are both 0. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL atan man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType atan(genType const & y, genType const & x); - - /// Arc tangent. Returns an angle whose tangent is y_over_x. - /// The range of values returned by this function is [-PI/2, PI/2]. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL atan man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType atan(genType const & y_over_x); - - /// Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2 - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL sinh man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType sinh(genType const & angle); - - /// Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2 - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL cosh man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType cosh(genType const & angle); - - /// Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL tanh man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType tanh(genType const & angle); - - /// Arc hyperbolic sine; returns the inverse of sinh. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL asinh man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType asinh(genType const & x); - - /// Arc hyperbolic cosine; returns the non-negative inverse - /// of cosh. Results are undefined if x < 1. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL acosh man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType acosh(genType const & x); - - /// Arc hyperbolic tangent; returns the inverse of tanh. - /// Results are undefined if abs(x) >= 1. - /// - /// @tparam genType Floating-point scalar or vector types. - /// - /// @see GLSL atanh man page - /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions - template - genType atanh(genType const & x); +namespace glm { +/// @addtogroup core_func_trigonometric +/// @{ - /// @} -}//namespace glm +/// Converts degrees to radians and returns the result. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL radians man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType radians(genType const & degrees); -#include "func_trigonometric.inl" +/// Converts radians to degrees and returns the result. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL degrees man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType degrees(genType const & radians); -#endif//GLM_CORE_func_trigonometric +/// The standard trigonometric sine function. +/// The values returned by this function will range from [-1, 1]. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL sin man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType sin(genType const & angle); +/// The standard trigonometric cosine function. +/// The values returned by this function will range from [-1, 1]. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL cos man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType cos(genType const & angle); + +/// The standard trigonometric tangent function. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL tan man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType tan(genType const & angle); + +/// Arc sine. Returns an angle whose sine is x. +/// The range of values returned by this function is [-PI/2, PI/2]. +/// Results are undefined if |x| > 1. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL asin man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType asin(genType const & x); + +/// Arc cosine. Returns an angle whose sine is x. +/// The range of values returned by this function is [0, PI]. +/// Results are undefined if |x| > 1. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL acos man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType acos(genType const & x); + +/// Arc tangent. Returns an angle whose tangent is y/x. +/// The signs of x and y are used to determine what +/// quadrant the angle is in. The range of values returned +/// by this function is [-PI, PI]. Results are undefined +/// if x and y are both 0. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL atan man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType atan(genType const & y, genType const & x); + +/// Arc tangent. Returns an angle whose tangent is y_over_x. +/// The range of values returned by this function is [-PI/2, PI/2]. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL atan man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType atan(genType const & y_over_x); + +/// Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2 +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL sinh man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType sinh(genType const & angle); + +/// Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2 +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL cosh man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType cosh(genType const & angle); + +/// Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL tanh man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType tanh(genType const & angle); + +/// Arc hyperbolic sine; returns the inverse of sinh. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL asinh man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType asinh(genType const & x); + +/// Arc hyperbolic cosine; returns the non-negative inverse +/// of cosh. Results are undefined if x < 1. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL acosh man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType acosh(genType const & x); + +/// Arc hyperbolic tangent; returns the inverse of tanh. +/// Results are undefined if abs(x) >= 1. +/// +/// @tparam genType Floating-point scalar or vector types. +/// +/// @see GLSL atanh man page +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +template +genType atanh(genType const & x); + +/// @} +} //namespace glm + +#include "func_trigonometric.inl" +#endif //GLM_CORE_func_trigonometric diff -Nru dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_vector_relational.hpp dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_vector_relational.hpp --- dustrac-2.0.1/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_vector_relational.hpp 2017-12-30 13:09:21.000000000 +0000 +++ dustrac-2.0.5/src/game/MiniCore/src/Graphics/contrib/glm/ogl-math/glm/core/func_vector_relational.hpp 2020-01-06 23:07:24.000000000 +0000 @@ -8,10 +8,10 @@ /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: -/// +/// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. -/// +/// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26,15 +26,15 @@ /// @author Christophe Riccio /// /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions -/// +/// /// @defgroup core_func_vector_relational Vector Relational Functions /// @ingroup core -/// -/// Relational and equality operators (<, <=, >, >=, ==, !=) are defined to -/// operate on scalars and produce scalar Boolean results. For vector results, -/// use the following built-in functions. -/// -/// In all cases, the sizes of all the input and return vectors for any particular +/// +/// Relational and equality operators (<, <=, >, >=, ==, !=) are defined to +/// operate on scalars and produce scalar Boolean results. For vector results, +/// use the following built-in functions. +/// +/// In all cases, the sizes of all the input and return vectors for any particular /// call must match. /////////////////////////////////////////////////////////////////////////////////// @@ -43,96 +43,95 @@ #include "_detail.hpp" -namespace glm -{ - /// @addtogroup core_func_vector_relational - /// @{ - - /// Returns the component-wise comparison result of x < y. - /// - /// @tparam vecType Floating-point or integer vector types. - /// - /// @see GLSL lessThan man page - /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions - template - typename vecType::bool_type lessThan(vecType const & x, vecType const & y); - - /// Returns the component-wise comparison of result x <= y. - /// - /// @tparam vecType Floating-point or integer vector types. - /// - /// @see GLSL lessThanEqual man page - /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions - template - typename vecType::bool_type lessThanEqual(vecType const & x, vecType const & y); - - /// Returns the component-wise comparison of result x > y. - /// - /// @tparam vecType Floating-point or integer vector types. - /// - /// @see GLSL greaterThan man page - /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions - template - typename vecType::bool_type greaterThan(vecType const & x, vecType const & y); - - /// Returns the component-wise comparison of result x >= y. - /// - /// @tparam vecType Floating-point or integer vector types. - /// - /// @see GLSL greaterThanEqual man page - /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions - template - typename vecType::bool_type greaterThanEqual(vecType const & x, vecType const & y); - - /// Returns the component-wise comparison of result x == y. - /// - /// @tparam vecType Floating-point, integer or boolean vector types. - /// - /// @see GLSL equal man page - /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions - template - typename vecType::bool_type equal(vecType const & x, vecType const & y); - - /// Returns the component-wise comparison of result x != y. - /// - /// @tparam vecType Floating-point, integer or boolean vector types. - /// - /// @see GLSL notEqual man page - /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions - template - typename vecType::bool_type notEqual(vecType const & x, vecType const & y); - - /// Returns true if any component of x is true. - /// - /// @tparam vecType Boolean vector types. - /// - /// @see GLSL any man page - /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions - template