From 15b30fe20b401d079c2b3c6a8e77eee827813de3 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Tue, 17 Mar 2015 22:54:19 +0000 Subject: Gem 096ed6ef786b7a9d6e11a437ff8526619c89a1fd osx/x86_64 built 'master:096ed6ef786b7a9d6e11a437ff8526619c89a1fd' for osx/x86_64 --- Gem/COPYING.txt | 48 + Gem/ChangeLog | 12942 +++++++++++++ Gem/GEMglBegin-help.pd | 14 + Gem/GLdefine-help.pd | 65 + Gem/Gem-meta.pd | 10 + Gem/Gem.la | 41 + Gem/Gem.pd_darwin | Bin 0 -> 5071996 bytes Gem/GemPrimer.pdf | Bin 0 -> 575621 bytes Gem/GnuGPL.LICENSE.txt | 290 + Gem/LICENSE.txt | 27 + Gem/README.txt | 184 + Gem/accumrotate-help.pd | 75 + Gem/all.trees | 90 + Gem/alpha-help.pd | 109 + Gem/ambient-help.pd | 68 + Gem/ambientRGB-help.pd | 77 + Gem/cMatrix.html | 270 + Gem/camera-help.pd | 81 + Gem/circle-help.pd | 65 + Gem/color-help.pd | 62 + Gem/colorRGB-help.pd | 71 + Gem/colorSquare-help.pd | 82 + Gem/cone-help.pd | 69 + Gem/cube-help.pd | 64 + Gem/cuboid-help.pd | 73 + Gem/curve-help.pd | 112 + Gem/curve3d-help.pd | 1659 ++ Gem/cylinder-help.pd | 70 + Gem/depth-help.pd | 85 + Gem/develop/include/Gem/Base/CPPExtern.h | 371 + Gem/develop/include/Gem/Base/GemBase.h | 133 + Gem/develop/include/Gem/Base/GemCache.h | 4 + Gem/develop/include/Gem/Base/GemContext.h | 59 + Gem/develop/include/Gem/Base/GemContextData.h | 4 + Gem/develop/include/Gem/Base/GemEvent.h | 4 + Gem/develop/include/Gem/Base/GemExportDef.h | 4 + Gem/develop/include/Gem/Base/GemFuncUtil.h | 4 + Gem/develop/include/Gem/Base/GemGL.h | 4 + Gem/develop/include/Gem/Base/GemGLBase.h | 23 + Gem/develop/include/Gem/Base/GemGLUtil.h | 4 + Gem/develop/include/Gem/Base/GemGluObj.h | 92 + Gem/develop/include/Gem/Base/GemLoaders.h | 4 + Gem/develop/include/Gem/Base/GemMan.h | 4 + Gem/develop/include/Gem/Base/GemMath.h | 4 + Gem/develop/include/Gem/Base/GemPBuffer.h | 4 + Gem/develop/include/Gem/Base/GemPathBase.h | 71 + Gem/develop/include/Gem/Base/GemPixConvert.h | 4 + Gem/develop/include/Gem/Base/GemPixDualObj.h | 190 + Gem/develop/include/Gem/Base/GemPixImageLoad.h | 4 + Gem/develop/include/Gem/Base/GemPixImageSave.h | 4 + Gem/develop/include/Gem/Base/GemPixObj.h | 149 + Gem/develop/include/Gem/Base/GemPixPete.h | 4 + Gem/develop/include/Gem/Base/GemPixUtil.h | 4 + Gem/develop/include/Gem/Base/GemSIMD.h | 4 + Gem/develop/include/Gem/Base/GemShape.h | 141 + Gem/develop/include/Gem/Base/GemState.h | 4 + Gem/develop/include/Gem/Base/GemVector.h | 4 + Gem/develop/include/Gem/Base/GemVersion.h | 4 + Gem/develop/include/Gem/Base/GemWindow.h | 211 + Gem/develop/include/Gem/Base/Matrix.h | 4 + Gem/develop/include/Gem/Base/TextBase.h | 245 + Gem/develop/include/Gem/Gem/Cache.h | 74 + Gem/develop/include/Gem/Gem/ContextData.h | 149 + Gem/develop/include/Gem/Gem/Dylib.h | 68 + Gem/develop/include/Gem/Gem/Event.h | 104 + Gem/develop/include/Gem/Gem/Exception.h | 58 + Gem/develop/include/Gem/Gem/ExportDef.h | 71 + Gem/develop/include/Gem/Gem/Files.h | 39 + Gem/develop/include/Gem/Gem/GLStack.h | 74 + Gem/develop/include/Gem/Gem/GemGL.h | 87 + Gem/develop/include/Gem/Gem/Image.h | 284 + Gem/develop/include/Gem/Gem/ImageIO.h | 153 + Gem/develop/include/Gem/Gem/Loaders.h | 25 + Gem/develop/include/Gem/Gem/Manager.h | 254 + Gem/develop/include/Gem/Gem/PBuffer.h | 54 + Gem/develop/include/Gem/Gem/PixConvert.h | 173 + Gem/develop/include/Gem/Gem/Properties.h | 110 + Gem/develop/include/Gem/Gem/RTE.h | 29 + Gem/develop/include/Gem/Gem/Rectangle.h | 44 + Gem/develop/include/Gem/Gem/Settings.h | 35 + Gem/develop/include/Gem/Gem/State.h | 231 + Gem/develop/include/Gem/Gem/SynchedWorkerThread.h | 4 + Gem/develop/include/Gem/Gem/ThreadMutex.h | 4 + Gem/develop/include/Gem/Gem/ThreadSemaphore.h | 4 + Gem/develop/include/Gem/Gem/Version.h | 19 + Gem/develop/include/Gem/Gem/WorkerThread.h | 4 + Gem/develop/include/Gem/Gem/glew.h | 18062 +++++++++++++++++++ Gem/develop/include/Gem/Gem/glxew.h | 1669 ++ Gem/develop/include/Gem/Gem/wglew.h | 1421 ++ Gem/develop/include/Gem/RTE/Array.h | 51 + Gem/develop/include/Gem/RTE/MessageCallbacks.h | 151 + Gem/develop/include/Gem/RTE/RTE.h | 56 + Gem/develop/include/Gem/Utils/Functions.h | 357 + Gem/develop/include/Gem/Utils/GLUtil.h | 100 + Gem/develop/include/Gem/Utils/GemMath.h | 85 + Gem/develop/include/Gem/Utils/GemString.h | 35 + Gem/develop/include/Gem/Utils/Matrix.h | 78 + Gem/develop/include/Gem/Utils/PixPete.h | 227 + Gem/develop/include/Gem/Utils/SIMD.h | 118 + .../include/Gem/Utils/SynchedWorkerThread.h | 65 + Gem/develop/include/Gem/Utils/Thread.h | 66 + Gem/develop/include/Gem/Utils/ThreadMutex.h | 38 + Gem/develop/include/Gem/Utils/ThreadSemaphore.h | 39 + Gem/develop/include/Gem/Utils/Vector.h | 77 + Gem/develop/include/Gem/Utils/WorkerThread.h | 81 + Gem/develop/include/Gem/Utils/any.h | 318 + Gem/develop/include/Gem/plugins/PluginFactory.h | 106 + .../include/Gem/plugins/PluginFactoryTimple.h | 157 + Gem/develop/include/Gem/plugins/film.h | 173 + Gem/develop/include/Gem/plugins/imageloader.h | 75 + Gem/develop/include/Gem/plugins/imagesaver.h | 126 + Gem/develop/include/Gem/plugins/record.h | 108 + Gem/develop/include/Gem/plugins/video.h | 221 + Gem/develop/pkgconfig/Gem.pc | 14 + Gem/diffuse-help.pd | 68 + Gem/diffuseRGB-help.pd | 75 + Gem/disk-help.pd | 72 + Gem/emission-help.pd | 66 + Gem/emissionRGB-help.pd | 70 + Gem/examples/01.basic/01.redSquare.pd | 63 + Gem/examples/01.basic/02.blueRectangle.pd | 65 + Gem/examples/01.basic/03.disk.pd | 59 + Gem/examples/01.basic/04.PrimTri.pd | 65 + Gem/examples/01.basic/05.cube.pd | 44 + Gem/examples/01.basic/06.sphere.pd | 55 + Gem/examples/01.basic/07.cylinder.pd | 62 + Gem/examples/01.basic/08.model.pd | 61 + Gem/examples/01.basic/09.yelloTeapot.pd | 65 + Gem/examples/02.advanced/00.gemwin-subpatch.pd | 61 + Gem/examples/02.advanced/01.Separator.pd | 143 + Gem/examples/02.advanced/02.Ortho.pd | 87 + Gem/examples/02.advanced/03.View.pd | 85 + Gem/examples/02.advanced/03.View_OSD.pd | 317 + Gem/examples/02.advanced/04.Fog.pd | 99 + Gem/examples/02.advanced/05.Stereo.pd | 97 + Gem/examples/02.advanced/06.StereoParticle.pd | 88 + Gem/examples/02.advanced/07.Snapshot1.pd | 87 + Gem/examples/02.advanced/08.Snapshot2.pd | 138 + Gem/examples/02.advanced/09.SnapshotSave.pd | 145 + Gem/examples/02.advanced/09.SnapshotSaveHD.pd | 44 + Gem/examples/02.advanced/10.LinearPath.pd | 87 + Gem/examples/02.advanced/11.SplinePath.pd | 87 + Gem/examples/02.advanced/12.Hsv.pd | 105 + Gem/examples/02.advanced/13.ModelRescale.pd | 107 + Gem/examples/02.advanced/14.RenderOrder.pd | 149 + Gem/examples/02.advanced/15.GemWin.pd | 73 + Gem/examples/02.advanced/16.vertex_program.pd | 189 + Gem/examples/02.advanced/17.fragment_program.pd | 126 + Gem/examples/02.advanced/18.gl_shading_language.pd | 182 + Gem/examples/02.advanced/19.pointer.pd | 217 + .../02.advanced/20.double-gemhead_vs_repeat.pd | 184 + Gem/examples/02.advanced/21.basic_LSystem.pd | 138 + Gem/examples/02.advanced/22.double-iterative.pd | 118 + Gem/examples/02.advanced/23.SplitScreen.pd | 342 + Gem/examples/02.advanced/snapshotHD.pd | 114 + Gem/examples/03.lighting/01.world_light.pd | 84 + Gem/examples/03.lighting/02.light.pd | 96 + Gem/examples/03.lighting/03.controlLights.pd | 97 + Gem/examples/03.lighting/04.moveSpheres.pd | 128 + Gem/examples/03.lighting/05.materials.pd | 86 + Gem/examples/04.pix/01.image.pd | 60 + Gem/examples/04.pix/02.multiimage.pd | 49 + Gem/examples/04.pix/04.ImageInPlace.pd | 64 + Gem/examples/04.pix/05.film.pd | 121 + Gem/examples/04.pix/05.movie.pd | 89 + Gem/examples/04.pix/06.PixRect.pd | 88 + Gem/examples/04.pix/07.PixSet.pd | 69 + Gem/examples/04.pix/08.PixDump.pd | 64 + Gem/examples/04.pix/09.Histogram.pd | 89 + Gem/examples/04.pix/10.PixDataSimple.pd | 90 + Gem/examples/04.pix/11.PixDataComplex.pd | 117 + Gem/examples/04.pix/12.add.pd | 52 + Gem/examples/04.pix/12.blending.pd | 173 + Gem/examples/04.pix/12.composite.pd | 54 + Gem/examples/04.pix/12.pix_multiply.pd | 55 + Gem/examples/04.pix/13.maskDancer.pd | 55 + Gem/examples/04.pix/14.takeAlpha.pd | 64 + Gem/examples/04.pix/15.pix_alpha.pd | 82 + Gem/examples/04.pix/16.alphaGrey.pd | 78 + Gem/examples/04.pix/16.pix_2grey.pd | 45 + Gem/examples/04.pix/17.pix_gain.pd | 72 + Gem/examples/04.pix/18.Curves.pd | 180 + Gem/examples/04.pix/19.colorMatrix.pd | 60 + Gem/examples/04.pix/20.convolve.pd | 106 + Gem/examples/04.pix/22.biquad.pd | 108 + Gem/examples/04.pix/23.gravity.pd | 108 + Gem/examples/04.pix/24.time-filtering.pd | 102 + Gem/examples/04.pix/25.buffer.pd | 137 + Gem/examples/04.pix/26.framebuffer_readback.pd | 88 + Gem/examples/04.pix/27.bitmap_font.pd | 152 + Gem/examples/04.video/00.SimpleVideo.pd | 87 + Gem/examples/04.video/01.VideoPaint.pd | 123 + Gem/examples/04.video/02.VideoSphere.pd | 99 + Gem/examples/04.video/03.movement_detection.pd | 87 + Gem/examples/04.video/04.videoRTX.pd | 101 + Gem/examples/04.video/05.buffer_rtx.pd | 109 + Gem/examples/04.video/06.frame_diff_tracking.pd | 184 + Gem/examples/04.video/07.bg_subtract_tracking.pd | 184 + Gem/examples/04.video/08.color_classification.pd | 109 + Gem/examples/05.text/01.Text.pd | 120 + Gem/examples/05.text/01.TextNoLoadBang.pd | 112 + Gem/examples/05.text/03.ChangeText.pd | 102 + Gem/examples/05.text/03.ChangeTextNoLoadBang.pd | 92 + Gem/examples/05.text/vera.ttf | Bin 0 -> 65932 bytes Gem/examples/06.particle/01.simple.pd | 69 + Gem/examples/06.particle/02.fountain.pd | 86 + Gem/examples/06.particle/03.orbit.pd | 88 + Gem/examples/06.particle/04.combo.pd | 104 + Gem/examples/06.particle/05.twoSrc.pd | 173 + Gem/examples/06.particle/06.target.pd | 74 + Gem/examples/06.particle/07.render.pd | 86 + Gem/examples/06.particle/08.info.pd | 117 + Gem/examples/06.particle/09.sink.pd | 100 + Gem/examples/07.texture/01.texture.pd | 60 + Gem/examples/07.texture/02.TexCoord.pd | 70 + Gem/examples/07.texture/04.moveImages.pd | 153 + Gem/examples/07.texture/05.newWave.pd | 201 + Gem/examples/07.texture/06.ripple.pd | 114 + Gem/examples/07.texture/07.feedback.pd | 92 + Gem/examples/07.texture/08.MotionBlur.pd | 130 + Gem/examples/07.texture/09.sharedTextures.pd | 79 + Gem/examples/07.texture/10.framebuffer.pd | 195 + .../11.multiples_gemhead_in_a_framebuffer.pd | 116 + Gem/examples/08.io/01.Mouse.pd | 84 + Gem/examples/08.io/02.Tablet.pd | 124 + Gem/examples/08.io/03.Orb.pd | 51 + Gem/examples/08.io/04.UseOrb.pd | 86 + Gem/examples/09.openGL/01.primQuad.pd | 107 + Gem/examples/09.openGL/02.displayList.pd | 185 + Gem/examples/09.openGL/03.stencilBuffer.pd | 251 + Gem/examples/09.openGL/04.clearZ.pd | 27 + Gem/examples/09.openGL/05.load_identity_matrix.pd | 74 + Gem/examples/10.glsl/01.simple_texture.pd | 124 + Gem/examples/10.glsl/02.primitive_distortion.pd | 125 + Gem/examples/10.glsl/03.texture_distortion.pd | 144 + Gem/examples/10.glsl/04.game_of_life.pd | 138 + Gem/examples/10.glsl/05.multitexture.pd | 201 + Gem/examples/10.glsl/05.multitexture_bis.pd | 200 + Gem/examples/10.glsl/06.rectangle_multitexture.pd | 199 + Gem/examples/10.glsl/07.framebuffer_and_shader.pd | 418 + Gem/examples/10.glsl/08.multi_pass_rendering.pd | 341 + Gem/examples/10.glsl/09.vertex_texture_fetching.pd | 142 + Gem/examples/10.glsl/10.GPGPU_Physical_model.pd | 1246 ++ Gem/examples/10.glsl/11.geometry.pd | 123 + Gem/examples/10.glsl/12.tri2fan.pd | 157 + Gem/examples/10.glsl/13.panoramique.pd | 525 + Gem/examples/10.glsl/14.blur.pd | 177 + .../10.glsl/15.bicubic_image_interpolation.pd | 63 + Gem/examples/10.glsl/GLSL_mix.frag | 35 + Gem/examples/10.glsl/GLSL_mix.vert | 9 + Gem/examples/10.glsl/P_distord.frag | 19 + Gem/examples/10.glsl/P_distord.vert | 21 + Gem/examples/10.glsl/T_distord.frag | 31 + Gem/examples/10.glsl/T_distord.vert | 9 + Gem/examples/10.glsl/_glsl.pd | 73 + Gem/examples/10.glsl/bicubic_interpolation.frag | 90 + Gem/examples/10.glsl/bicubic_interpolation.vert | 8 + Gem/examples/10.glsl/blur.frag | 18 + Gem/examples/10.glsl/blur.vert | 9 + Gem/examples/10.glsl/cam1.jpg | Bin 0 -> 311441 bytes Gem/examples/10.glsl/cam2.jpg | Bin 0 -> 395309 bytes Gem/examples/10.glsl/cam3.jpg | Bin 0 -> 323041 bytes Gem/examples/10.glsl/cam4.jpg | Bin 0 -> 326880 bytes Gem/examples/10.glsl/fetching.frag | 8 + Gem/examples/10.glsl/fetching.vert | 15 + Gem/examples/10.glsl/fetching2.frag | 56 + Gem/examples/10.glsl/fetching2.vert | 21 + Gem/examples/10.glsl/game.frag | 30 + Gem/examples/10.glsl/game.vert | 14 + Gem/examples/10.glsl/geo.frag | 8 + Gem/examples/10.glsl/geo.geom | 28 + Gem/examples/10.glsl/geo.vert | 7 + Gem/examples/10.glsl/img1.jpg | Bin 0 -> 156747 bytes Gem/examples/10.glsl/img2.jpg | Bin 0 -> 152179 bytes Gem/examples/10.glsl/img3.jpg | Bin 0 -> 193808 bytes Gem/examples/10.glsl/interpol.frag | 13 + Gem/examples/10.glsl/link.frag | 164 + Gem/examples/10.glsl/link.vert | 10 + Gem/examples/10.glsl/mass.frag | 34 + Gem/examples/10.glsl/mass.vert | 10 + Gem/examples/10.glsl/multitexture.frag | 13 + Gem/examples/10.glsl/multitexture.vert | 11 + Gem/examples/10.glsl/multitexture_rect.frag | 15 + Gem/examples/10.glsl/multitexture_rect.vert | 11 + Gem/examples/10.glsl/normal.frag | 37 + Gem/examples/10.glsl/normal.vert | 10 + Gem/examples/10.glsl/panoramique.frag | 28 + Gem/examples/10.glsl/panoramique.vert | 5 + Gem/examples/10.glsl/single_blur.pd | 55 + Gem/examples/10.glsl/texture.frag | 16 + Gem/examples/10.glsl/texture.vert | 8 + Gem/examples/10.glsl/texture_rect.frag | 16 + Gem/examples/10.glsl/tri2fan.frag | 6 + Gem/examples/10.glsl/tri2fan.geom | 51 + Gem/examples/10.glsl/tri2fan.vert | 6 + Gem/examples/10.glsl/vague.frag | 23 + Gem/examples/10.glsl/wave.frag | 40 + Gem/examples/11.obj-exporter/obj_cube.pd | 152 + Gem/examples/11.obj-exporter/obj_exporter-help.pd | 87 + Gem/examples/11.obj-exporter/obj_exporter.pd | 96 + Gem/examples/11.obj-exporter/obj_primTri.pd | 87 + Gem/examples/11.obj-exporter/obj_rectangle.pd | 123 + Gem/examples/11.obj-exporter/obj_square.pd | 108 + .../01.flat_projection-help.pd | 30 + .../12.multi_screen_projection/02.nfp-help.pd | 46 + Gem/examples/12.multi_screen_projection/config.txt | 70 + .../12.multi_screen_projection/flat_projection.pd | 454 + Gem/examples/12.multi_screen_projection/grid.jpg | Bin 0 -> 211659 bytes .../12.multi_screen_projection/load_save.pd | 40 + .../12.multi_screen_projection/nfp_22.frag | 18 + .../12.multi_screen_projection/nfp_22.vert | 26 + .../12.multi_screen_projection/nfp_33.frag | 18 + .../12.multi_screen_projection/nfp_33.vert | 37 + .../12.multi_screen_projection/nfp_curved_wall.pd | 413 + .../12.multi_screen_projection/nfp_flat_wall.pd | 313 + .../12.multi_screen_projection/save_system-help.pd | 20 + Gem/examples/12.multi_screen_projection/saved.pd | 24 + .../12.multi_screen_projection/soft_edge.frag | 62 + .../13.recursion/01.repetition_is_futile.pd | 61 + .../13.recursion/02.iteration_is_insufficient.pd | 33 + Gem/examples/13.recursion/03.recursive_spiral.pd | 71 + Gem/examples/13.recursion/04.binary_tree.pd | 98 + Gem/examples/13.recursion/05.n-ary_tree.pd | 81 + Gem/examples/13.recursion/06.breaking_symmetry.pd | 384 + Gem/examples/13.recursion/README | 23 + Gem/examples/13.recursion/nnrepeat-help.pd | 28 + Gem/examples/13.recursion/nnrepeat-test.pd | 55 + Gem/examples/13.recursion/nnrepeat.pd | 27 + Gem/examples/13.recursion/nrepeat-help.pd | 25 + Gem/examples/13.recursion/nrepeat-test.pd | 46 + Gem/examples/13.recursion/nrepeat.pd | 49 + Gem/examples/13.recursion/stack-help.pd | 20 + Gem/examples/13.recursion/stack.pd | 38 + Gem/examples/13.recursion/xform-gui.pd | 120 + .../14.multiple_windows/01.basic_example.pd | 29 + .../14.multiple_windows/02.switch_context.pd | 28 + .../14.multiple_windows/03.texture_sharing.pd | 38 + Gem/examples/99.games/puzzle.pd | 158 + Gem/examples/data/64shade.tif | Bin 0 -> 472 bytes Gem/examples/data/COPYING.txt | 89 + Gem/examples/data/Toon.frag | 61 + Gem/examples/data/Toon.vert | 54 + Gem/examples/data/alea.mpg | Bin 0 -> 239214 bytes Gem/examples/data/anim-1.mov | Bin 0 -> 572406 bytes Gem/examples/data/bitmap_font_6x8.bmp | Bin 0 -> 3798 bytes Gem/examples/data/blob0.tif | Bin 0 -> 516 bytes Gem/examples/data/blob1.tif | Bin 0 -> 516 bytes Gem/examples/data/blob2.tif | Bin 0 -> 516 bytes Gem/examples/data/dancer.JPG | Bin 0 -> 10054 bytes Gem/examples/data/ducks.png | Bin 0 -> 161330 bytes Gem/examples/data/fractal.JPG | Bin 0 -> 54817 bytes Gem/examples/data/fractalAlpha.TIF | Bin 0 -> 271676 bytes Gem/examples/data/homer.avi | Bin 0 -> 197178 bytes Gem/examples/data/random.fp | 111 + Gem/examples/data/temp0.JPG | Bin 0 -> 10054 bytes Gem/examples/data/temp1.JPG | Bin 0 -> 54817 bytes Gem/examples/data/temp2.JPG | Bin 0 -> 18421 bytes Gem/examples/data/toon.vp | 36 + Gem/examples/data/valcolor.tab | 6 + Gem/examples/data/valmotion.tab | 8 + Gem/examples/data/venus.mtl | 9 + Gem/examples/data/venus.obj | 2147 +++ Gem/examples/data/vera.ttf | Bin 0 -> 65932 bytes Gem/fragment_program-help.pd | 86 + Gem/gem.known_bugs.txt | 298 + Gem/gem.release_notes.txt | 1018 ++ Gem/gem.todo.txt | 65 + Gem/gem_filmAVFoundation.la | 41 + Gem/gem_filmAVFoundation.so | Bin 0 -> 71568 bytes Gem/gem_imageJPEG.la | 41 + Gem/gem_imageJPEG.so | Bin 0 -> 52404 bytes Gem/gem_imageMAGICK.la | 41 + Gem/gem_imageMAGICK.so | Bin 0 -> 55740 bytes Gem/gem_imageSGI.la | 41 + Gem/gem_imageSGI.so | Bin 0 -> 59652 bytes Gem/gem_imageTIFF.la | 41 + Gem/gem_imageTIFF.so | Bin 0 -> 68628 bytes Gem/gem_modelOBJ.la | 41 + Gem/gem_modelOBJ.so | Bin 0 -> 86308 bytes Gem/gemcocoawindow.la | 41 + Gem/gemcocoawindow.pd_darwin | Bin 0 -> 36772 bytes Gem/gemdefaultwindow.pd | 17 + Gem/gemframebuffer-help.pd | 237 + Gem/gemglfw2window.la | 41 + Gem/gemglfw2window.pd_darwin | Bin 0 -> 28732 bytes Gem/gemglfw3window.la | 41 + Gem/gemglfw3window.pd_darwin | Bin 0 -> 38512 bytes Gem/gemglutwindow.la | 41 + Gem/gemglutwindow.pd_darwin | Bin 0 -> 44660 bytes Gem/gemhead-help.pd | 118 + Gem/gemhead.pd | 90 + Gem/gemkeyboard-help.pd | 62 + Gem/gemkeyboard.pd | 17 + Gem/gemkeyname-help.pd | 68 + Gem/gemkeyname.pd | 20 + Gem/gemlist-help.pd | 73 + Gem/gemlist_info-help.pd | 297 + Gem/gemlist_matrix-help.pd | 120 + Gem/gemmouse-help.pd | 115 + Gem/gemmouse.pd | 155 + Gem/gemorb-help.pd | 32 + Gem/gemorb.pd | 22 + Gem/gemreceive-help.pd | 62 + Gem/gemsdlwindow.la | 41 + Gem/gemsdlwindow.pd_darwin | Bin 0 -> 41608 bytes Gem/gemtablet-help.pd | 25 + Gem/gemtablet.pd | 21 + Gem/gemvertexbuffer-help.pd | 931 + Gem/gemwin-help.pd | 802 + Gem/gemwin.pd | 3035 ++++ Gem/glsl_fragment-help.pd | 91 + Gem/glsl_geometry-help.pd | 91 + Gem/glsl_program-help.pd | 112 + Gem/glsl_vertex-help.pd | 90 + Gem/hsv2rgb-help.pd | 65 + Gem/hsv2rgb.pd | 143 + Gem/imageVert-help.pd | 88 + Gem/light-help.pd | 98 + Gem/linear_path-help.pd | 69 + Gem/manual/Advanced.html | 27 + Gem/manual/BasicObj.html | 115 + Gem/manual/GemFaq.html | 667 + Gem/manual/GemWPd.html | 140 + Gem/manual/Gloss.html | 41 + Gem/manual/Images.html | 112 + Gem/manual/Input.html | 19 + Gem/manual/Intro.html | 62 + Gem/manual/Lighting.html | 107 + Gem/manual/ListObjects.html | 231 + Gem/manual/Particles.html | 19 + Gem/manual/Pixes.html | 105 + Gem/manual/Texture.html | 126 + Gem/manual/Utility.html | 149 + Gem/manual/WriteCode.html | 41 + Gem/manual/add.jpg | Bin 0 -> 12456 bytes Gem/manual/addResult.jpg | Bin 0 -> 61048 bytes Gem/manual/basicCube.jpg | Bin 0 -> 8515 bytes Gem/manual/counter.jpg | Bin 0 -> 7938 bytes Gem/manual/gemwin.jpg | Bin 0 -> 9038 bytes Gem/manual/index.html | 67 + Gem/manual/invert.jpg | Bin 0 -> 10353 bytes Gem/manual/invertFrac.jpg | Bin 0 -> 69822 bytes Gem/manual/light.jpg | Bin 0 -> 17667 bytes Gem/manual/mask.jpg | Bin 0 -> 18895 bytes Gem/manual/maskResult.jpg | Bin 0 -> 13512 bytes Gem/manual/normalFrac.jpg | Bin 0 -> 68889 bytes Gem/manual/pixImage.jpg | Bin 0 -> 12672 bytes Gem/manual/redSquare.jpg | Bin 0 -> 3550 bytes Gem/manual/sphere15.jpg | Bin 0 -> 4323 bytes Gem/manual/sphere5.jpg | Bin 0 -> 4155 bytes Gem/manual/texture.jpg | Bin 0 -> 11685 bytes Gem/manual/transXYZ.jpg | Bin 0 -> 8769 bytes Gem/manual/tribar.gif | Bin 0 -> 882 bytes Gem/manual/tripleLine.jpg | Bin 0 -> 9835 bytes Gem/manual/tripleRand.jpg | Bin 0 -> 8384 bytes Gem/manual/world_light.jpg | Bin 0 -> 12992 bytes Gem/mesh_line-help.pd | 76 + Gem/mesh_square-help.pd | 87 + Gem/model-help.pd | 121 + Gem/multimodel-help.pd | 69 + Gem/newWave-help.pd | 158 + Gem/ortho-help.pd | 83 + Gem/part_color-help.pd | 55 + Gem/part_damp-help.pd | 53 + Gem/part_draw-help.pd | 54 + Gem/part_follow-help.pd | 49 + Gem/part_gravity-help.pd | 12 + Gem/part_head-help.pd | 22 + Gem/part_info-help.pd | 25 + Gem/part_killold-help.pd | 13 + Gem/part_killslow-help.pd | 10 + Gem/part_orbitpoint-help.pd | 13 + Gem/part_render-help.pd | 19 + Gem/part_sink-help.pd | 29 + Gem/part_size-help.pd | 16 + Gem/part_source-help.pd | 28 + Gem/part_targetcolor-help.pd | 13 + Gem/part_targetsize-help.pd | 14 + Gem/part_velcone-help.pd | 21 + Gem/part_velocity-help.pd | 24 + Gem/part_velsphere-help.pd | 21 + Gem/part_vertex-help.pd | 15 + Gem/pix_2grey-help.pd | 77 + Gem/pix_a_2grey-help.pd | 90 + Gem/pix_add-help.pd | 97 + Gem/pix_aging-help.pd | 115 + Gem/pix_alpha-help.pd | 107 + Gem/pix_background-help.pd | 107 + Gem/pix_backlight-help.pd | 92 + Gem/pix_biquad-help.pd | 172 + Gem/pix_bitmask-help.pd | 92 + Gem/pix_blob-help.pd | 38 + Gem/pix_blobtracker-help.pd | 420 + Gem/pix_blobtracker.pd | 132 + Gem/pix_blur-help.pd | 16 + Gem/pix_buf-help.pd | 94 + Gem/pix_buffer-help.pd | 76 + Gem/pix_buffer_filmopen-help.pd | 86 + Gem/pix_buffer_filmopen.pd | 78 + Gem/pix_buffer_read-help.pd | 73 + Gem/pix_buffer_write-help.pd | 98 + Gem/pix_chroma_key-help.pd | 144 + Gem/pix_clearblock-help.pd | 11 + Gem/pix_color-help.pd | 83 + Gem/pix_coloralpha-help.pd | 89 + Gem/pix_colorclassify-help.pd | 89 + Gem/pix_colormatrix-help.pd | 158 + Gem/pix_colorreduce-help.pd | 86 + Gem/pix_compare-help.pd | 109 + Gem/pix_composite-help.pd | 98 + Gem/pix_contrast-help.pd | 83 + Gem/pix_convert-help.pd | 103 + Gem/pix_convolve-help.pd | 243 + Gem/pix_coordinate-help.pd | 98 + Gem/pix_crop-help.pd | 88 + Gem/pix_curve-help.pd | 156 + Gem/pix_data-help.pd | 89 + Gem/pix_deinterlace-help.pd | 93 + Gem/pix_delay-help.pd | 90 + Gem/pix_diff-help.pd | 99 + Gem/pix_dot-help.pd | 79 + Gem/pix_draw-help.pd | 88 + Gem/pix_drum-help.pd | 238 + Gem/pix_drum.la | 41 + Gem/pix_drum.pd_darwin | Bin 0 -> 26232 bytes Gem/pix_dump-help.pd | 91 + Gem/pix_duotone-help.pd | 90 + Gem/pix_equal-help.pd | 99 + Gem/pix_fiducialtrack-help.pd | 100 + Gem/pix_fiducialtrack.la | 41 + Gem/pix_fiducialtrack.pd_darwin | Bin 0 -> 76140 bytes Gem/pix_film-help.pd | 184 + Gem/pix_flip-help.pd | 85 + Gem/pix_freeframe-help.pd | 133 + Gem/pix_frei0r-help.pd | 131 + Gem/pix_gain-help.pd | 88 + Gem/pix_grey-help.pd | 90 + Gem/pix_halftone-help.pd | 98 + Gem/pix_histo-help.pd | 104 + Gem/pix_hit-help.pd | 136 + Gem/pix_hit.la | 41 + Gem/pix_hit.pd_darwin | Bin 0 -> 24408 bytes Gem/pix_hsv2rgb-help.pd | 82 + Gem/pix_image-help.pd | 96 + Gem/pix_imageInPlace-help.pd | 83 + Gem/pix_indycam-help.pd | 21 + Gem/pix_info-help.pd | 97 + Gem/pix_invert-help.pd | 77 + Gem/pix_kaleidoscope-help.pd | 138 + Gem/pix_levels-help.pd | 125 + Gem/pix_lumaoffset-help.pd | 98 + Gem/pix_mano-help.pd | 425 + Gem/pix_mano.la | 41 + Gem/pix_mano.pd_darwin | Bin 0 -> 40472 bytes Gem/pix_mask-help.pd | 104 + Gem/pix_mean_color-help.pd | 104 + Gem/pix_metaimage-help.pd | 101 + Gem/pix_mix-help.pd | 116 + Gem/pix_motionblur-help.pd | 95 + Gem/pix_movement-help.pd | 104 + Gem/pix_movement2-help.pd | 108 + Gem/pix_movie-help.pd | 132 + Gem/pix_multiblob-help.pd | 214 + Gem/pix_multiimage-help.pd | 75 + Gem/pix_multiply-help.pd | 97 + Gem/pix_multitexture-help.pd | 158 + Gem/pix_noise-help.pd | 101 + Gem/pix_normalize-help.pd | 85 + Gem/pix_offset-help.pd | 84 + Gem/pix_pix2sig~-help.pd | 103 + Gem/pix_posterize-help.pd | 88 + Gem/pix_puzzle-help.pd | 125 + Gem/pix_rds-help.pd | 91 + Gem/pix_record-help.pd | 480 + Gem/pix_rectangle-help.pd | 83 + Gem/pix_refraction-help.pd | 111 + Gem/pix_resize-help.pd | 81 + Gem/pix_rgb2hsv-help.pd | 83 + Gem/pix_rgba-help.pd | 88 + Gem/pix_roi-help.pd | 64 + Gem/pix_roll-help.pd | 88 + Gem/pix_rtx-help.pd | 102 + Gem/pix_scanline-help.pd | 87 + Gem/pix_set-help.pd | 149 + Gem/pix_share_read-help.pd | 89 + Gem/pix_share_write-help.pd | 107 + Gem/pix_sig2pix~-help.pd | 99 + Gem/pix_snap-help.pd | 123 + Gem/pix_snap2tex-help.pd | 122 + Gem/pix_subtract-help.pd | 100 + Gem/pix_tIIR-help.pd | 157 + Gem/pix_takealpha-help.pd | 105 + Gem/pix_texture-help.pd | 176 + Gem/pix_threshold-help.pd | 81 + Gem/pix_threshold_bernsen-help.pd | 89 + Gem/pix_video-help.pd | 591 + Gem/pix_videoDS-help.pd | 64 + Gem/pix_write-help.pd | 107 + Gem/pix_write.pd | 197 + Gem/pix_writer-help.pd | 94 + Gem/pix_yuv-help.pd | 88 + Gem/pix_zoom-help.pd | 13 + Gem/polygon-help.pd | 97 + Gem/polygon_smooth-help.pd | 70 + Gem/pqtorusknots-help.pd | 95 + Gem/primTri-help.pd | 92 + Gem/rectangle-help.pd | 70 + Gem/render_trigger-help.pd | 75 + Gem/rgb2hsv-help.pd | 21 + Gem/rgb2hsv.pd | 301 + Gem/rgb2yuv-help.pd | 36 + Gem/rgb2yuv.pd | 105 + Gem/ripple-help.pd | 87 + Gem/rotate-help.pd | 68 + Gem/rotateXYZ-help.pd | 73 + Gem/rubber-help.pd | 93 + Gem/scale-help.pd | 78 + Gem/scaleXYZ-help.pd | 71 + Gem/scopeXYZ~-help.pd | 125 + Gem/separator-help.pd | 131 + Gem/shearXY-help.pd | 59 + Gem/shearXZ-help.pd | 59 + Gem/shearYX-help.pd | 59 + Gem/shearYZ-help.pd | 61 + Gem/shearZX-help.pd | 59 + Gem/shearZY-help.pd | 59 + Gem/shininess-help.pd | 68 + Gem/slideSquares-help.pd | 64 + Gem/specular-help.pd | 68 + Gem/specularRGB-help.pd | 75 + Gem/sphere-help.pd | 72 + Gem/sphere3d-help.pd | 96 + Gem/spline_path-help.pd | 69 + Gem/spot_light-help.pd | 169 + Gem/square-help.pd | 64 + Gem/surface3d-help.pd | 1654 ++ Gem/teapot-help.pd | 69 + Gem/text2d-help.pd | 106 + Gem/text3d-help.pd | 104 + Gem/textextruded-help.pd | 108 + Gem/textoutline-help.pd | 100 + Gem/torus-help.pd | 73 + Gem/translate-help.pd | 66 + Gem/translateXYZ-help.pd | 66 + Gem/trapezoid-help.pd | 70 + Gem/triangle-help.pd | 65 + Gem/tube-help.pd | 111 + Gem/vertex_program-help.pd | 178 + Gem/world_light-help.pd | 95 + Gem/yuv2rgb-help.pd | 35 + Gem/yuv2rgb.pd | 84 + 651 files changed, 99831 insertions(+) create mode 100644 Gem/COPYING.txt create mode 100644 Gem/ChangeLog create mode 100644 Gem/GEMglBegin-help.pd create mode 100644 Gem/GLdefine-help.pd create mode 100644 Gem/Gem-meta.pd create mode 100755 Gem/Gem.la create mode 100755 Gem/Gem.pd_darwin create mode 100644 Gem/GemPrimer.pdf create mode 100644 Gem/GnuGPL.LICENSE.txt create mode 100644 Gem/LICENSE.txt create mode 100644 Gem/README.txt create mode 100644 Gem/accumrotate-help.pd create mode 100644 Gem/all.trees create mode 100644 Gem/alpha-help.pd create mode 100644 Gem/ambient-help.pd create mode 100644 Gem/ambientRGB-help.pd create mode 100644 Gem/cMatrix.html create mode 100644 Gem/camera-help.pd create mode 100644 Gem/circle-help.pd create mode 100644 Gem/color-help.pd create mode 100644 Gem/colorRGB-help.pd create mode 100644 Gem/colorSquare-help.pd create mode 100644 Gem/cone-help.pd create mode 100644 Gem/cube-help.pd create mode 100644 Gem/cuboid-help.pd create mode 100644 Gem/curve-help.pd create mode 100644 Gem/curve3d-help.pd create mode 100644 Gem/cylinder-help.pd create mode 100644 Gem/depth-help.pd create mode 100644 Gem/develop/include/Gem/Base/CPPExtern.h create mode 100644 Gem/develop/include/Gem/Base/GemBase.h create mode 100644 Gem/develop/include/Gem/Base/GemCache.h create mode 100644 Gem/develop/include/Gem/Base/GemContext.h create mode 100644 Gem/develop/include/Gem/Base/GemContextData.h create mode 100644 Gem/develop/include/Gem/Base/GemEvent.h create mode 100644 Gem/develop/include/Gem/Base/GemExportDef.h create mode 100644 Gem/develop/include/Gem/Base/GemFuncUtil.h create mode 100644 Gem/develop/include/Gem/Base/GemGL.h create mode 100644 Gem/develop/include/Gem/Base/GemGLBase.h create mode 100644 Gem/develop/include/Gem/Base/GemGLUtil.h create mode 100644 Gem/develop/include/Gem/Base/GemGluObj.h create mode 100644 Gem/develop/include/Gem/Base/GemLoaders.h create mode 100644 Gem/develop/include/Gem/Base/GemMan.h create mode 100644 Gem/develop/include/Gem/Base/GemMath.h create mode 100644 Gem/develop/include/Gem/Base/GemPBuffer.h create mode 100644 Gem/develop/include/Gem/Base/GemPathBase.h create mode 100644 Gem/develop/include/Gem/Base/GemPixConvert.h create mode 100644 Gem/develop/include/Gem/Base/GemPixDualObj.h create mode 100644 Gem/develop/include/Gem/Base/GemPixImageLoad.h create mode 100644 Gem/develop/include/Gem/Base/GemPixImageSave.h create mode 100644 Gem/develop/include/Gem/Base/GemPixObj.h create mode 100644 Gem/develop/include/Gem/Base/GemPixPete.h create mode 100644 Gem/develop/include/Gem/Base/GemPixUtil.h create mode 100644 Gem/develop/include/Gem/Base/GemSIMD.h create mode 100644 Gem/develop/include/Gem/Base/GemShape.h create mode 100644 Gem/develop/include/Gem/Base/GemState.h create mode 100644 Gem/develop/include/Gem/Base/GemVector.h create mode 100644 Gem/develop/include/Gem/Base/GemVersion.h create mode 100644 Gem/develop/include/Gem/Base/GemWindow.h create mode 100644 Gem/develop/include/Gem/Base/Matrix.h create mode 100644 Gem/develop/include/Gem/Base/TextBase.h create mode 100644 Gem/develop/include/Gem/Gem/Cache.h create mode 100644 Gem/develop/include/Gem/Gem/ContextData.h create mode 100644 Gem/develop/include/Gem/Gem/Dylib.h create mode 100644 Gem/develop/include/Gem/Gem/Event.h create mode 100644 Gem/develop/include/Gem/Gem/Exception.h create mode 100644 Gem/develop/include/Gem/Gem/ExportDef.h create mode 100644 Gem/develop/include/Gem/Gem/Files.h create mode 100644 Gem/develop/include/Gem/Gem/GLStack.h create mode 100644 Gem/develop/include/Gem/Gem/GemGL.h create mode 100644 Gem/develop/include/Gem/Gem/Image.h create mode 100644 Gem/develop/include/Gem/Gem/ImageIO.h create mode 100644 Gem/develop/include/Gem/Gem/Loaders.h create mode 100644 Gem/develop/include/Gem/Gem/Manager.h create mode 100644 Gem/develop/include/Gem/Gem/PBuffer.h create mode 100644 Gem/develop/include/Gem/Gem/PixConvert.h create mode 100644 Gem/develop/include/Gem/Gem/Properties.h create mode 100644 Gem/develop/include/Gem/Gem/RTE.h create mode 100644 Gem/develop/include/Gem/Gem/Rectangle.h create mode 100644 Gem/develop/include/Gem/Gem/Settings.h create mode 100644 Gem/develop/include/Gem/Gem/State.h create mode 100644 Gem/develop/include/Gem/Gem/SynchedWorkerThread.h create mode 100644 Gem/develop/include/Gem/Gem/ThreadMutex.h create mode 100644 Gem/develop/include/Gem/Gem/ThreadSemaphore.h create mode 100644 Gem/develop/include/Gem/Gem/Version.h create mode 100644 Gem/develop/include/Gem/Gem/WorkerThread.h create mode 100644 Gem/develop/include/Gem/Gem/glew.h create mode 100644 Gem/develop/include/Gem/Gem/glxew.h create mode 100644 Gem/develop/include/Gem/Gem/wglew.h create mode 100644 Gem/develop/include/Gem/RTE/Array.h create mode 100644 Gem/develop/include/Gem/RTE/MessageCallbacks.h create mode 100644 Gem/develop/include/Gem/RTE/RTE.h create mode 100644 Gem/develop/include/Gem/Utils/Functions.h create mode 100644 Gem/develop/include/Gem/Utils/GLUtil.h create mode 100644 Gem/develop/include/Gem/Utils/GemMath.h create mode 100644 Gem/develop/include/Gem/Utils/GemString.h create mode 100644 Gem/develop/include/Gem/Utils/Matrix.h create mode 100644 Gem/develop/include/Gem/Utils/PixPete.h create mode 100644 Gem/develop/include/Gem/Utils/SIMD.h create mode 100644 Gem/develop/include/Gem/Utils/SynchedWorkerThread.h create mode 100644 Gem/develop/include/Gem/Utils/Thread.h create mode 100644 Gem/develop/include/Gem/Utils/ThreadMutex.h create mode 100644 Gem/develop/include/Gem/Utils/ThreadSemaphore.h create mode 100644 Gem/develop/include/Gem/Utils/Vector.h create mode 100644 Gem/develop/include/Gem/Utils/WorkerThread.h create mode 100644 Gem/develop/include/Gem/Utils/any.h create mode 100644 Gem/develop/include/Gem/plugins/PluginFactory.h create mode 100644 Gem/develop/include/Gem/plugins/PluginFactoryTimple.h create mode 100644 Gem/develop/include/Gem/plugins/film.h create mode 100644 Gem/develop/include/Gem/plugins/imageloader.h create mode 100644 Gem/develop/include/Gem/plugins/imagesaver.h create mode 100644 Gem/develop/include/Gem/plugins/record.h create mode 100644 Gem/develop/include/Gem/plugins/video.h create mode 100644 Gem/develop/pkgconfig/Gem.pc create mode 100644 Gem/diffuse-help.pd create mode 100644 Gem/diffuseRGB-help.pd create mode 100644 Gem/disk-help.pd create mode 100644 Gem/emission-help.pd create mode 100644 Gem/emissionRGB-help.pd create mode 100644 Gem/examples/01.basic/01.redSquare.pd create mode 100644 Gem/examples/01.basic/02.blueRectangle.pd create mode 100644 Gem/examples/01.basic/03.disk.pd create mode 100644 Gem/examples/01.basic/04.PrimTri.pd create mode 100644 Gem/examples/01.basic/05.cube.pd create mode 100644 Gem/examples/01.basic/06.sphere.pd create mode 100644 Gem/examples/01.basic/07.cylinder.pd create mode 100644 Gem/examples/01.basic/08.model.pd create mode 100644 Gem/examples/01.basic/09.yelloTeapot.pd create mode 100644 Gem/examples/02.advanced/00.gemwin-subpatch.pd create mode 100644 Gem/examples/02.advanced/01.Separator.pd create mode 100644 Gem/examples/02.advanced/02.Ortho.pd create mode 100644 Gem/examples/02.advanced/03.View.pd create mode 100644 Gem/examples/02.advanced/03.View_OSD.pd create mode 100644 Gem/examples/02.advanced/04.Fog.pd create mode 100644 Gem/examples/02.advanced/05.Stereo.pd create mode 100644 Gem/examples/02.advanced/06.StereoParticle.pd create mode 100644 Gem/examples/02.advanced/07.Snapshot1.pd create mode 100644 Gem/examples/02.advanced/08.Snapshot2.pd create mode 100644 Gem/examples/02.advanced/09.SnapshotSave.pd create mode 100644 Gem/examples/02.advanced/09.SnapshotSaveHD.pd create mode 100644 Gem/examples/02.advanced/10.LinearPath.pd create mode 100644 Gem/examples/02.advanced/11.SplinePath.pd create mode 100644 Gem/examples/02.advanced/12.Hsv.pd create mode 100644 Gem/examples/02.advanced/13.ModelRescale.pd create mode 100644 Gem/examples/02.advanced/14.RenderOrder.pd create mode 100644 Gem/examples/02.advanced/15.GemWin.pd create mode 100644 Gem/examples/02.advanced/16.vertex_program.pd create mode 100644 Gem/examples/02.advanced/17.fragment_program.pd create mode 100644 Gem/examples/02.advanced/18.gl_shading_language.pd create mode 100644 Gem/examples/02.advanced/19.pointer.pd create mode 100644 Gem/examples/02.advanced/20.double-gemhead_vs_repeat.pd create mode 100644 Gem/examples/02.advanced/21.basic_LSystem.pd create mode 100644 Gem/examples/02.advanced/22.double-iterative.pd create mode 100644 Gem/examples/02.advanced/23.SplitScreen.pd create mode 100644 Gem/examples/02.advanced/snapshotHD.pd create mode 100644 Gem/examples/03.lighting/01.world_light.pd create mode 100644 Gem/examples/03.lighting/02.light.pd create mode 100644 Gem/examples/03.lighting/03.controlLights.pd create mode 100644 Gem/examples/03.lighting/04.moveSpheres.pd create mode 100644 Gem/examples/03.lighting/05.materials.pd create mode 100644 Gem/examples/04.pix/01.image.pd create mode 100644 Gem/examples/04.pix/02.multiimage.pd create mode 100644 Gem/examples/04.pix/04.ImageInPlace.pd create mode 100644 Gem/examples/04.pix/05.film.pd create mode 100644 Gem/examples/04.pix/05.movie.pd create mode 100644 Gem/examples/04.pix/06.PixRect.pd create mode 100644 Gem/examples/04.pix/07.PixSet.pd create mode 100644 Gem/examples/04.pix/08.PixDump.pd create mode 100644 Gem/examples/04.pix/09.Histogram.pd create mode 100644 Gem/examples/04.pix/10.PixDataSimple.pd create mode 100644 Gem/examples/04.pix/11.PixDataComplex.pd create mode 100644 Gem/examples/04.pix/12.add.pd create mode 100644 Gem/examples/04.pix/12.blending.pd create mode 100644 Gem/examples/04.pix/12.composite.pd create mode 100644 Gem/examples/04.pix/12.pix_multiply.pd create mode 100644 Gem/examples/04.pix/13.maskDancer.pd create mode 100644 Gem/examples/04.pix/14.takeAlpha.pd create mode 100644 Gem/examples/04.pix/15.pix_alpha.pd create mode 100644 Gem/examples/04.pix/16.alphaGrey.pd create mode 100644 Gem/examples/04.pix/16.pix_2grey.pd create mode 100644 Gem/examples/04.pix/17.pix_gain.pd create mode 100644 Gem/examples/04.pix/18.Curves.pd create mode 100644 Gem/examples/04.pix/19.colorMatrix.pd create mode 100644 Gem/examples/04.pix/20.convolve.pd create mode 100644 Gem/examples/04.pix/22.biquad.pd create mode 100644 Gem/examples/04.pix/23.gravity.pd create mode 100644 Gem/examples/04.pix/24.time-filtering.pd create mode 100644 Gem/examples/04.pix/25.buffer.pd create mode 100644 Gem/examples/04.pix/26.framebuffer_readback.pd create mode 100644 Gem/examples/04.pix/27.bitmap_font.pd create mode 100644 Gem/examples/04.video/00.SimpleVideo.pd create mode 100644 Gem/examples/04.video/01.VideoPaint.pd create mode 100644 Gem/examples/04.video/02.VideoSphere.pd create mode 100644 Gem/examples/04.video/03.movement_detection.pd create mode 100644 Gem/examples/04.video/04.videoRTX.pd create mode 100644 Gem/examples/04.video/05.buffer_rtx.pd create mode 100644 Gem/examples/04.video/06.frame_diff_tracking.pd create mode 100644 Gem/examples/04.video/07.bg_subtract_tracking.pd create mode 100644 Gem/examples/04.video/08.color_classification.pd create mode 100644 Gem/examples/05.text/01.Text.pd create mode 100644 Gem/examples/05.text/01.TextNoLoadBang.pd create mode 100644 Gem/examples/05.text/03.ChangeText.pd create mode 100644 Gem/examples/05.text/03.ChangeTextNoLoadBang.pd create mode 100644 Gem/examples/05.text/vera.ttf create mode 100644 Gem/examples/06.particle/01.simple.pd create mode 100644 Gem/examples/06.particle/02.fountain.pd create mode 100644 Gem/examples/06.particle/03.orbit.pd create mode 100644 Gem/examples/06.particle/04.combo.pd create mode 100644 Gem/examples/06.particle/05.twoSrc.pd create mode 100644 Gem/examples/06.particle/06.target.pd create mode 100644 Gem/examples/06.particle/07.render.pd create mode 100644 Gem/examples/06.particle/08.info.pd create mode 100644 Gem/examples/06.particle/09.sink.pd create mode 100644 Gem/examples/07.texture/01.texture.pd create mode 100644 Gem/examples/07.texture/02.TexCoord.pd create mode 100644 Gem/examples/07.texture/04.moveImages.pd create mode 100644 Gem/examples/07.texture/05.newWave.pd create mode 100644 Gem/examples/07.texture/06.ripple.pd create mode 100644 Gem/examples/07.texture/07.feedback.pd create mode 100644 Gem/examples/07.texture/08.MotionBlur.pd create mode 100644 Gem/examples/07.texture/09.sharedTextures.pd create mode 100644 Gem/examples/07.texture/10.framebuffer.pd create mode 100644 Gem/examples/07.texture/11.multiples_gemhead_in_a_framebuffer.pd create mode 100644 Gem/examples/08.io/01.Mouse.pd create mode 100644 Gem/examples/08.io/02.Tablet.pd create mode 100644 Gem/examples/08.io/03.Orb.pd create mode 100644 Gem/examples/08.io/04.UseOrb.pd create mode 100644 Gem/examples/09.openGL/01.primQuad.pd create mode 100644 Gem/examples/09.openGL/02.displayList.pd create mode 100644 Gem/examples/09.openGL/03.stencilBuffer.pd create mode 100644 Gem/examples/09.openGL/04.clearZ.pd create mode 100644 Gem/examples/09.openGL/05.load_identity_matrix.pd create mode 100644 Gem/examples/10.glsl/01.simple_texture.pd create mode 100644 Gem/examples/10.glsl/02.primitive_distortion.pd create mode 100644 Gem/examples/10.glsl/03.texture_distortion.pd create mode 100644 Gem/examples/10.glsl/04.game_of_life.pd create mode 100644 Gem/examples/10.glsl/05.multitexture.pd create mode 100644 Gem/examples/10.glsl/05.multitexture_bis.pd create mode 100644 Gem/examples/10.glsl/06.rectangle_multitexture.pd create mode 100644 Gem/examples/10.glsl/07.framebuffer_and_shader.pd create mode 100644 Gem/examples/10.glsl/08.multi_pass_rendering.pd create mode 100644 Gem/examples/10.glsl/09.vertex_texture_fetching.pd create mode 100644 Gem/examples/10.glsl/10.GPGPU_Physical_model.pd create mode 100644 Gem/examples/10.glsl/11.geometry.pd create mode 100644 Gem/examples/10.glsl/12.tri2fan.pd create mode 100644 Gem/examples/10.glsl/13.panoramique.pd create mode 100644 Gem/examples/10.glsl/14.blur.pd create mode 100644 Gem/examples/10.glsl/15.bicubic_image_interpolation.pd create mode 100644 Gem/examples/10.glsl/GLSL_mix.frag create mode 100644 Gem/examples/10.glsl/GLSL_mix.vert create mode 100644 Gem/examples/10.glsl/P_distord.frag create mode 100644 Gem/examples/10.glsl/P_distord.vert create mode 100644 Gem/examples/10.glsl/T_distord.frag create mode 100644 Gem/examples/10.glsl/T_distord.vert create mode 100644 Gem/examples/10.glsl/_glsl.pd create mode 100644 Gem/examples/10.glsl/bicubic_interpolation.frag create mode 100644 Gem/examples/10.glsl/bicubic_interpolation.vert create mode 100644 Gem/examples/10.glsl/blur.frag create mode 100644 Gem/examples/10.glsl/blur.vert create mode 100644 Gem/examples/10.glsl/cam1.jpg create mode 100644 Gem/examples/10.glsl/cam2.jpg create mode 100644 Gem/examples/10.glsl/cam3.jpg create mode 100644 Gem/examples/10.glsl/cam4.jpg create mode 100644 Gem/examples/10.glsl/fetching.frag create mode 100644 Gem/examples/10.glsl/fetching.vert create mode 100644 Gem/examples/10.glsl/fetching2.frag create mode 100644 Gem/examples/10.glsl/fetching2.vert create mode 100644 Gem/examples/10.glsl/game.frag create mode 100644 Gem/examples/10.glsl/game.vert create mode 100644 Gem/examples/10.glsl/geo.frag create mode 100644 Gem/examples/10.glsl/geo.geom create mode 100644 Gem/examples/10.glsl/geo.vert create mode 100644 Gem/examples/10.glsl/img1.jpg create mode 100644 Gem/examples/10.glsl/img2.jpg create mode 100644 Gem/examples/10.glsl/img3.jpg create mode 100644 Gem/examples/10.glsl/interpol.frag create mode 100644 Gem/examples/10.glsl/link.frag create mode 100644 Gem/examples/10.glsl/link.vert create mode 100644 Gem/examples/10.glsl/mass.frag create mode 100644 Gem/examples/10.glsl/mass.vert create mode 100644 Gem/examples/10.glsl/multitexture.frag create mode 100644 Gem/examples/10.glsl/multitexture.vert create mode 100644 Gem/examples/10.glsl/multitexture_rect.frag create mode 100644 Gem/examples/10.glsl/multitexture_rect.vert create mode 100644 Gem/examples/10.glsl/normal.frag create mode 100644 Gem/examples/10.glsl/normal.vert create mode 100644 Gem/examples/10.glsl/panoramique.frag create mode 100644 Gem/examples/10.glsl/panoramique.vert create mode 100644 Gem/examples/10.glsl/single_blur.pd create mode 100644 Gem/examples/10.glsl/texture.frag create mode 100644 Gem/examples/10.glsl/texture.vert create mode 100644 Gem/examples/10.glsl/texture_rect.frag create mode 100644 Gem/examples/10.glsl/tri2fan.frag create mode 100644 Gem/examples/10.glsl/tri2fan.geom create mode 100644 Gem/examples/10.glsl/tri2fan.vert create mode 100644 Gem/examples/10.glsl/vague.frag create mode 100644 Gem/examples/10.glsl/wave.frag create mode 100644 Gem/examples/11.obj-exporter/obj_cube.pd create mode 100644 Gem/examples/11.obj-exporter/obj_exporter-help.pd create mode 100644 Gem/examples/11.obj-exporter/obj_exporter.pd create mode 100644 Gem/examples/11.obj-exporter/obj_primTri.pd create mode 100644 Gem/examples/11.obj-exporter/obj_rectangle.pd create mode 100644 Gem/examples/11.obj-exporter/obj_square.pd create mode 100644 Gem/examples/12.multi_screen_projection/01.flat_projection-help.pd create mode 100644 Gem/examples/12.multi_screen_projection/02.nfp-help.pd create mode 100644 Gem/examples/12.multi_screen_projection/config.txt create mode 100644 Gem/examples/12.multi_screen_projection/flat_projection.pd create mode 100644 Gem/examples/12.multi_screen_projection/grid.jpg create mode 100644 Gem/examples/12.multi_screen_projection/load_save.pd create mode 100644 Gem/examples/12.multi_screen_projection/nfp_22.frag create mode 100644 Gem/examples/12.multi_screen_projection/nfp_22.vert create mode 100644 Gem/examples/12.multi_screen_projection/nfp_33.frag create mode 100644 Gem/examples/12.multi_screen_projection/nfp_33.vert create mode 100644 Gem/examples/12.multi_screen_projection/nfp_curved_wall.pd create mode 100644 Gem/examples/12.multi_screen_projection/nfp_flat_wall.pd create mode 100644 Gem/examples/12.multi_screen_projection/save_system-help.pd create mode 100644 Gem/examples/12.multi_screen_projection/saved.pd create mode 100644 Gem/examples/12.multi_screen_projection/soft_edge.frag create mode 100644 Gem/examples/13.recursion/01.repetition_is_futile.pd create mode 100644 Gem/examples/13.recursion/02.iteration_is_insufficient.pd create mode 100644 Gem/examples/13.recursion/03.recursive_spiral.pd create mode 100644 Gem/examples/13.recursion/04.binary_tree.pd create mode 100644 Gem/examples/13.recursion/05.n-ary_tree.pd create mode 100644 Gem/examples/13.recursion/06.breaking_symmetry.pd create mode 100644 Gem/examples/13.recursion/README create mode 100644 Gem/examples/13.recursion/nnrepeat-help.pd create mode 100644 Gem/examples/13.recursion/nnrepeat-test.pd create mode 100644 Gem/examples/13.recursion/nnrepeat.pd create mode 100644 Gem/examples/13.recursion/nrepeat-help.pd create mode 100644 Gem/examples/13.recursion/nrepeat-test.pd create mode 100644 Gem/examples/13.recursion/nrepeat.pd create mode 100644 Gem/examples/13.recursion/stack-help.pd create mode 100644 Gem/examples/13.recursion/stack.pd create mode 100644 Gem/examples/13.recursion/xform-gui.pd create mode 100644 Gem/examples/14.multiple_windows/01.basic_example.pd create mode 100644 Gem/examples/14.multiple_windows/02.switch_context.pd create mode 100644 Gem/examples/14.multiple_windows/03.texture_sharing.pd create mode 100644 Gem/examples/99.games/puzzle.pd create mode 100644 Gem/examples/data/64shade.tif create mode 100644 Gem/examples/data/COPYING.txt create mode 100644 Gem/examples/data/Toon.frag create mode 100644 Gem/examples/data/Toon.vert create mode 100644 Gem/examples/data/alea.mpg create mode 100644 Gem/examples/data/anim-1.mov create mode 100644 Gem/examples/data/bitmap_font_6x8.bmp create mode 100644 Gem/examples/data/blob0.tif create mode 100644 Gem/examples/data/blob1.tif create mode 100644 Gem/examples/data/blob2.tif create mode 100644 Gem/examples/data/dancer.JPG create mode 100644 Gem/examples/data/ducks.png create mode 100644 Gem/examples/data/fractal.JPG create mode 100644 Gem/examples/data/fractalAlpha.TIF create mode 100644 Gem/examples/data/homer.avi create mode 100644 Gem/examples/data/random.fp create mode 100644 Gem/examples/data/temp0.JPG create mode 100644 Gem/examples/data/temp1.JPG create mode 100644 Gem/examples/data/temp2.JPG create mode 100644 Gem/examples/data/toon.vp create mode 100644 Gem/examples/data/valcolor.tab create mode 100644 Gem/examples/data/valmotion.tab create mode 100644 Gem/examples/data/venus.mtl create mode 100644 Gem/examples/data/venus.obj create mode 100644 Gem/examples/data/vera.ttf create mode 100644 Gem/fragment_program-help.pd create mode 100644 Gem/gem.known_bugs.txt create mode 100644 Gem/gem.release_notes.txt create mode 100644 Gem/gem.todo.txt create mode 100755 Gem/gem_filmAVFoundation.la create mode 100755 Gem/gem_filmAVFoundation.so create mode 100755 Gem/gem_imageJPEG.la create mode 100755 Gem/gem_imageJPEG.so create mode 100755 Gem/gem_imageMAGICK.la create mode 100755 Gem/gem_imageMAGICK.so create mode 100755 Gem/gem_imageSGI.la create mode 100755 Gem/gem_imageSGI.so create mode 100755 Gem/gem_imageTIFF.la create mode 100755 Gem/gem_imageTIFF.so create mode 100755 Gem/gem_modelOBJ.la create mode 100755 Gem/gem_modelOBJ.so create mode 100755 Gem/gemcocoawindow.la create mode 100755 Gem/gemcocoawindow.pd_darwin create mode 100644 Gem/gemdefaultwindow.pd create mode 100644 Gem/gemframebuffer-help.pd create mode 100755 Gem/gemglfw2window.la create mode 100755 Gem/gemglfw2window.pd_darwin create mode 100755 Gem/gemglfw3window.la create mode 100755 Gem/gemglfw3window.pd_darwin create mode 100755 Gem/gemglutwindow.la create mode 100755 Gem/gemglutwindow.pd_darwin create mode 100644 Gem/gemhead-help.pd create mode 100644 Gem/gemhead.pd create mode 100644 Gem/gemkeyboard-help.pd create mode 100644 Gem/gemkeyboard.pd create mode 100644 Gem/gemkeyname-help.pd create mode 100644 Gem/gemkeyname.pd create mode 100644 Gem/gemlist-help.pd create mode 100644 Gem/gemlist_info-help.pd create mode 100644 Gem/gemlist_matrix-help.pd create mode 100644 Gem/gemmouse-help.pd create mode 100644 Gem/gemmouse.pd create mode 100644 Gem/gemorb-help.pd create mode 100644 Gem/gemorb.pd create mode 100644 Gem/gemreceive-help.pd create mode 100755 Gem/gemsdlwindow.la create mode 100755 Gem/gemsdlwindow.pd_darwin create mode 100644 Gem/gemtablet-help.pd create mode 100644 Gem/gemtablet.pd create mode 100644 Gem/gemvertexbuffer-help.pd create mode 100644 Gem/gemwin-help.pd create mode 100644 Gem/gemwin.pd create mode 100644 Gem/glsl_fragment-help.pd create mode 100644 Gem/glsl_geometry-help.pd create mode 100644 Gem/glsl_program-help.pd create mode 100644 Gem/glsl_vertex-help.pd create mode 100644 Gem/hsv2rgb-help.pd create mode 100644 Gem/hsv2rgb.pd create mode 100644 Gem/imageVert-help.pd create mode 100644 Gem/light-help.pd create mode 100644 Gem/linear_path-help.pd create mode 100644 Gem/manual/Advanced.html create mode 100644 Gem/manual/BasicObj.html create mode 100644 Gem/manual/GemFaq.html create mode 100644 Gem/manual/GemWPd.html create mode 100644 Gem/manual/Gloss.html create mode 100644 Gem/manual/Images.html create mode 100644 Gem/manual/Input.html create mode 100644 Gem/manual/Intro.html create mode 100644 Gem/manual/Lighting.html create mode 100644 Gem/manual/ListObjects.html create mode 100644 Gem/manual/Particles.html create mode 100644 Gem/manual/Pixes.html create mode 100644 Gem/manual/Texture.html create mode 100644 Gem/manual/Utility.html create mode 100644 Gem/manual/WriteCode.html create mode 100644 Gem/manual/add.jpg create mode 100644 Gem/manual/addResult.jpg create mode 100644 Gem/manual/basicCube.jpg create mode 100644 Gem/manual/counter.jpg create mode 100644 Gem/manual/gemwin.jpg create mode 100644 Gem/manual/index.html create mode 100644 Gem/manual/invert.jpg create mode 100644 Gem/manual/invertFrac.jpg create mode 100644 Gem/manual/light.jpg create mode 100644 Gem/manual/mask.jpg create mode 100644 Gem/manual/maskResult.jpg create mode 100644 Gem/manual/normalFrac.jpg create mode 100644 Gem/manual/pixImage.jpg create mode 100644 Gem/manual/redSquare.jpg create mode 100644 Gem/manual/sphere15.jpg create mode 100644 Gem/manual/sphere5.jpg create mode 100644 Gem/manual/texture.jpg create mode 100644 Gem/manual/transXYZ.jpg create mode 100644 Gem/manual/tribar.gif create mode 100644 Gem/manual/tripleLine.jpg create mode 100644 Gem/manual/tripleRand.jpg create mode 100644 Gem/manual/world_light.jpg create mode 100644 Gem/mesh_line-help.pd create mode 100644 Gem/mesh_square-help.pd create mode 100644 Gem/model-help.pd create mode 100644 Gem/multimodel-help.pd create mode 100644 Gem/newWave-help.pd create mode 100644 Gem/ortho-help.pd create mode 100644 Gem/part_color-help.pd create mode 100644 Gem/part_damp-help.pd create mode 100644 Gem/part_draw-help.pd create mode 100644 Gem/part_follow-help.pd create mode 100644 Gem/part_gravity-help.pd create mode 100644 Gem/part_head-help.pd create mode 100644 Gem/part_info-help.pd create mode 100644 Gem/part_killold-help.pd create mode 100644 Gem/part_killslow-help.pd create mode 100644 Gem/part_orbitpoint-help.pd create mode 100644 Gem/part_render-help.pd create mode 100644 Gem/part_sink-help.pd create mode 100644 Gem/part_size-help.pd create mode 100644 Gem/part_source-help.pd create mode 100644 Gem/part_targetcolor-help.pd create mode 100644 Gem/part_targetsize-help.pd create mode 100644 Gem/part_velcone-help.pd create mode 100644 Gem/part_velocity-help.pd create mode 100644 Gem/part_velsphere-help.pd create mode 100644 Gem/part_vertex-help.pd create mode 100644 Gem/pix_2grey-help.pd create mode 100644 Gem/pix_a_2grey-help.pd create mode 100644 Gem/pix_add-help.pd create mode 100644 Gem/pix_aging-help.pd create mode 100644 Gem/pix_alpha-help.pd create mode 100644 Gem/pix_background-help.pd create mode 100644 Gem/pix_backlight-help.pd create mode 100644 Gem/pix_biquad-help.pd create mode 100644 Gem/pix_bitmask-help.pd create mode 100644 Gem/pix_blob-help.pd create mode 100644 Gem/pix_blobtracker-help.pd create mode 100644 Gem/pix_blobtracker.pd create mode 100644 Gem/pix_blur-help.pd create mode 100644 Gem/pix_buf-help.pd create mode 100644 Gem/pix_buffer-help.pd create mode 100644 Gem/pix_buffer_filmopen-help.pd create mode 100644 Gem/pix_buffer_filmopen.pd create mode 100644 Gem/pix_buffer_read-help.pd create mode 100644 Gem/pix_buffer_write-help.pd create mode 100644 Gem/pix_chroma_key-help.pd create mode 100644 Gem/pix_clearblock-help.pd create mode 100644 Gem/pix_color-help.pd create mode 100644 Gem/pix_coloralpha-help.pd create mode 100644 Gem/pix_colorclassify-help.pd create mode 100644 Gem/pix_colormatrix-help.pd create mode 100644 Gem/pix_colorreduce-help.pd create mode 100644 Gem/pix_compare-help.pd create mode 100644 Gem/pix_composite-help.pd create mode 100644 Gem/pix_contrast-help.pd create mode 100644 Gem/pix_convert-help.pd create mode 100644 Gem/pix_convolve-help.pd create mode 100644 Gem/pix_coordinate-help.pd create mode 100644 Gem/pix_crop-help.pd create mode 100644 Gem/pix_curve-help.pd create mode 100644 Gem/pix_data-help.pd create mode 100644 Gem/pix_deinterlace-help.pd create mode 100644 Gem/pix_delay-help.pd create mode 100644 Gem/pix_diff-help.pd create mode 100644 Gem/pix_dot-help.pd create mode 100644 Gem/pix_draw-help.pd create mode 100644 Gem/pix_drum-help.pd create mode 100755 Gem/pix_drum.la create mode 100755 Gem/pix_drum.pd_darwin create mode 100644 Gem/pix_dump-help.pd create mode 100644 Gem/pix_duotone-help.pd create mode 100644 Gem/pix_equal-help.pd create mode 100644 Gem/pix_fiducialtrack-help.pd create mode 100755 Gem/pix_fiducialtrack.la create mode 100755 Gem/pix_fiducialtrack.pd_darwin create mode 100644 Gem/pix_film-help.pd create mode 100644 Gem/pix_flip-help.pd create mode 100644 Gem/pix_freeframe-help.pd create mode 100644 Gem/pix_frei0r-help.pd create mode 100644 Gem/pix_gain-help.pd create mode 100644 Gem/pix_grey-help.pd create mode 100644 Gem/pix_halftone-help.pd create mode 100644 Gem/pix_histo-help.pd create mode 100644 Gem/pix_hit-help.pd create mode 100755 Gem/pix_hit.la create mode 100755 Gem/pix_hit.pd_darwin create mode 100644 Gem/pix_hsv2rgb-help.pd create mode 100644 Gem/pix_image-help.pd create mode 100644 Gem/pix_imageInPlace-help.pd create mode 100644 Gem/pix_indycam-help.pd create mode 100644 Gem/pix_info-help.pd create mode 100644 Gem/pix_invert-help.pd create mode 100644 Gem/pix_kaleidoscope-help.pd create mode 100644 Gem/pix_levels-help.pd create mode 100644 Gem/pix_lumaoffset-help.pd create mode 100644 Gem/pix_mano-help.pd create mode 100755 Gem/pix_mano.la create mode 100755 Gem/pix_mano.pd_darwin create mode 100644 Gem/pix_mask-help.pd create mode 100644 Gem/pix_mean_color-help.pd create mode 100644 Gem/pix_metaimage-help.pd create mode 100644 Gem/pix_mix-help.pd create mode 100644 Gem/pix_motionblur-help.pd create mode 100644 Gem/pix_movement-help.pd create mode 100644 Gem/pix_movement2-help.pd create mode 100644 Gem/pix_movie-help.pd create mode 100644 Gem/pix_multiblob-help.pd create mode 100644 Gem/pix_multiimage-help.pd create mode 100644 Gem/pix_multiply-help.pd create mode 100644 Gem/pix_multitexture-help.pd create mode 100644 Gem/pix_noise-help.pd create mode 100644 Gem/pix_normalize-help.pd create mode 100644 Gem/pix_offset-help.pd create mode 100644 Gem/pix_pix2sig~-help.pd create mode 100644 Gem/pix_posterize-help.pd create mode 100644 Gem/pix_puzzle-help.pd create mode 100644 Gem/pix_rds-help.pd create mode 100644 Gem/pix_record-help.pd create mode 100644 Gem/pix_rectangle-help.pd create mode 100644 Gem/pix_refraction-help.pd create mode 100644 Gem/pix_resize-help.pd create mode 100644 Gem/pix_rgb2hsv-help.pd create mode 100644 Gem/pix_rgba-help.pd create mode 100644 Gem/pix_roi-help.pd create mode 100644 Gem/pix_roll-help.pd create mode 100644 Gem/pix_rtx-help.pd create mode 100644 Gem/pix_scanline-help.pd create mode 100644 Gem/pix_set-help.pd create mode 100644 Gem/pix_share_read-help.pd create mode 100644 Gem/pix_share_write-help.pd create mode 100644 Gem/pix_sig2pix~-help.pd create mode 100644 Gem/pix_snap-help.pd create mode 100644 Gem/pix_snap2tex-help.pd create mode 100644 Gem/pix_subtract-help.pd create mode 100644 Gem/pix_tIIR-help.pd create mode 100644 Gem/pix_takealpha-help.pd create mode 100644 Gem/pix_texture-help.pd create mode 100644 Gem/pix_threshold-help.pd create mode 100644 Gem/pix_threshold_bernsen-help.pd create mode 100644 Gem/pix_video-help.pd create mode 100644 Gem/pix_videoDS-help.pd create mode 100644 Gem/pix_write-help.pd create mode 100644 Gem/pix_write.pd create mode 100644 Gem/pix_writer-help.pd create mode 100644 Gem/pix_yuv-help.pd create mode 100644 Gem/pix_zoom-help.pd create mode 100644 Gem/polygon-help.pd create mode 100644 Gem/polygon_smooth-help.pd create mode 100644 Gem/pqtorusknots-help.pd create mode 100644 Gem/primTri-help.pd create mode 100644 Gem/rectangle-help.pd create mode 100644 Gem/render_trigger-help.pd create mode 100644 Gem/rgb2hsv-help.pd create mode 100644 Gem/rgb2hsv.pd create mode 100644 Gem/rgb2yuv-help.pd create mode 100644 Gem/rgb2yuv.pd create mode 100644 Gem/ripple-help.pd create mode 100644 Gem/rotate-help.pd create mode 100644 Gem/rotateXYZ-help.pd create mode 100644 Gem/rubber-help.pd create mode 100644 Gem/scale-help.pd create mode 100644 Gem/scaleXYZ-help.pd create mode 100644 Gem/scopeXYZ~-help.pd create mode 100644 Gem/separator-help.pd create mode 100644 Gem/shearXY-help.pd create mode 100644 Gem/shearXZ-help.pd create mode 100644 Gem/shearYX-help.pd create mode 100644 Gem/shearYZ-help.pd create mode 100644 Gem/shearZX-help.pd create mode 100644 Gem/shearZY-help.pd create mode 100644 Gem/shininess-help.pd create mode 100644 Gem/slideSquares-help.pd create mode 100644 Gem/specular-help.pd create mode 100644 Gem/specularRGB-help.pd create mode 100644 Gem/sphere-help.pd create mode 100644 Gem/sphere3d-help.pd create mode 100644 Gem/spline_path-help.pd create mode 100644 Gem/spot_light-help.pd create mode 100644 Gem/square-help.pd create mode 100644 Gem/surface3d-help.pd create mode 100644 Gem/teapot-help.pd create mode 100644 Gem/text2d-help.pd create mode 100644 Gem/text3d-help.pd create mode 100644 Gem/textextruded-help.pd create mode 100644 Gem/textoutline-help.pd create mode 100644 Gem/torus-help.pd create mode 100644 Gem/translate-help.pd create mode 100644 Gem/translateXYZ-help.pd create mode 100644 Gem/trapezoid-help.pd create mode 100644 Gem/triangle-help.pd create mode 100644 Gem/tube-help.pd create mode 100644 Gem/vertex_program-help.pd create mode 100644 Gem/world_light-help.pd create mode 100644 Gem/yuv2rgb-help.pd create mode 100644 Gem/yuv2rgb.pd diff --git a/Gem/COPYING.txt b/Gem/COPYING.txt new file mode 100644 index 0000000..e54306d --- /dev/null +++ b/Gem/COPYING.txt @@ -0,0 +1,48 @@ +GEM - Graphics Environment for Multimedia +Copyright © 1997-2000 Mark Danks +Copyright © Günter Geiger +Copyright © 2001-2011 IOhannes m zmölnig, +Copyright © 2003-2007 James Tittle II, +Copyright © 2003-2008 Chris Clepper + +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 2 +of the License, or (at your option) any later version. + +This program 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 . + +In the official GEM distribution, the GNU General Public License is +in the file GnuGPL.LICENSE + +--------------------------------------------------------- + + ACKNOWLEDGMENTS + +--------------------------------------------------------- +Not all of the source code provided here has entirely been written by me. +I would like to point at the great openGL-tutorials at http://nehe.gamedev.net +Since these are tutorials, there is no copyright notice here. +Some of the pix_fx code is borrowed from effecTV by Kentarou Fukuchi et al. +at http://effectv.sourceforge.net released under the Gnu GPL, some other pix_fx +code has been ported from Pete Warden's fine collection of FreeFrame plugins at +http://petewarden.com released under the Gnu GPL. + +--------------------------------------------------------- + + OTHER COPYRIGHT NOTICES + +--------------------------------------------------------- + +particle: + Author: David McAllister + davemc[AT]cs.unc.edu + http://www.cs.unc.edu/~davemc/Particle/ + Copyright (c) 1998 David K. McAllister + diff --git a/Gem/ChangeLog b/Gem/ChangeLog new file mode 100644 index 0000000..e65fc91 --- /dev/null +++ b/Gem/ChangeLog @@ -0,0 +1,12942 @@ +2007-06-05 23:44 cclepper + + * src/Pixes/recordQT.cpp: fixed looooong first frame bug. added + detection for colorspace and image flipping. + +2007-05-31 19:52 zmoelnig + + * src/Pixes/pix_buffer.cpp: make old-images tiny (almost free them) + when resizing the array: important when you resize large arrays; + TODO: do not resize buffers that already have the correct size + +2007-05-31 17:18 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h: added "resize" message + +2007-05-30 16:49 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h: added "resize" message + +2007-04-02 17:27 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, videoV4L2.cpp: fixed v4l2-code as + to set the "m_capturing"-flag whenever we exit the capturing + thread (not just when we power it down); + + in pix_videoNEW do not startTransfer() in the constructor phase + +2007-04-02 12:24 zmoelnig + + * src/Base/TextBase.h: incidentially deleted the "using + std::string;" line...now it is back + +2007-04-02 12:18 zmoelnig + + * src/README.linux: updated documentation a bit + +2007-04-02 09:36 zmoelnig + + * src/: Base/TextBase.cpp, Base/TextBase.h, Base/config.h, + Base/configGeneric.h.in, Base/configLinux.h.in, Base/configNT.h, + Geos/text2d.cpp, Geos/text2d.h, Geos/text3d.cpp, Geos/text3d.h, + Geos/textextruded.cpp, Geos/textoutline.cpp, Geos/textoutline.h: + removed GLTT support; added wide-character support for FTGL (at + least in "string" mode) + +2007-04-02 09:34 zmoelnig + + * src/configure.ac: removed GLTT support; added wide character + support for FTGL-font rendering (at least in "string" mode) + +2007-03-14 11:57 zmoelnig + + * src/Pixes/videoDV4L.cpp: minor issue with using fprintf() without + carriage return; this solution uses verbose(), though i am not + sure whether this is really thread safe... have i really + forgotten to check this in...? + +2007-03-12 10:15 zmoelnig + + * src/Pixes/: pix_offset.cpp, pix_offset.h: added saturated logic + and made it default (is the LATTER a good idea?) + +2007-02-20 11:13 zmoelnig + + * src/Base/GemGL.h: fixed typos in comment + +2007-02-20 11:11 zmoelnig + + * src/Base/GemGL.h: fixed comment + +2007-02-20 10:58 zmoelnig + + * src/: configure.ac, Base/GemGL.h, Base/configDarwin.h.in, + Base/configLinux.h.in: added a configure-flag to specify the + maximum openGL-version to use. use this information in GemGL.h + to exclude certain parts of the openGL-headers thanks ico for the + suggestion + +2007-02-20 10:56 zmoelnig + + * src/openGL/GEMglBlendEquation.cpp: glBlendEquation() needs + openGL-1.2 + +2007-02-20 10:43 zmoelnig + + * src/Pixes/pix_texture.cpp: glActiveTexture() is not always + defined + +2007-02-20 10:42 zmoelnig + + * src/Pixes/video.h: indentation + +2007-02-19 12:29 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, videoDV4L.cpp, videoV4L.cpp: + applied ico's patches in order to stabilize dv4l (note: use + delete[] on ~pix_videoNEW) + +2007-02-13 14:10 zmoelnig + + * src/: Pixes/filmQT.h, Pixes/pix_filmDarwin.h, Pixes/pix_filmQT.h, + Pixes/pix_videoDarwin.h, Base/GemMan.cpp, + Base/GemPixImageLoad.cpp: fixed cases for os-x includes (fixes + bug#1613373) + +2007-02-12 23:33 tigital + + * src/Base/GemPixUtil.cpp: small changes to get correct colors on + intel macs + +2007-02-12 22:43 tigital + + * src/Pixes/pix_write.cpp: small change to get correct colors on + intel macs + +2007-01-07 23:32 tigital + + * src/Manips/: glsl_fragment.cpp, glsl_program.cpp, glsl_program.h, + glsl_vertex.cpp, glsl_vertex.h: added GL_VERSION_2_0 compile path + for non-ARB glsl functions + +2007-01-07 20:52 zmoelnig + + * src/Vertex/: vertex_add.cpp, vertex_combine.cpp: proper calling + of CPPExtern::error() in the static member functions + +2006-12-07 19:19 cclepper + + * src/Pixes/pix_convolve.cpp: quick fix for YUV 3x3 on x86. for + now it just does the generic loop. + +2006-12-06 21:08 cclepper + + * src/Pixes/pix_filmNEW.cpp: added an ifdef to make sure this is + not compiled on OSX. pix_filmDarwin is used instead + +2006-12-06 20:56 cclepper + + * src/Pixes/pix_movieNEW.cpp: added an ifdef to make sure this is + not compiled on OSX. pix_movieDarwin is used instead + +2006-12-06 20:44 cclepper + + * src/Pixes/pix_movie.cpp: added another ifdef to make sure this is + not compiled on OSX + +2006-12-04 16:35 zmoelnig + + * src/Geos/scopeXYZ.cpp: sped things up a bit; cleaned up post() + +2006-12-04 10:11 zmoelnig + + * help/depth.pd: added comment about initial state and a note, that + you now can set this initial state via arguments + +2006-12-04 10:09 zmoelnig + + * src/Manips/: depth.cpp, depth.h: add an optional argument to the + object, so the initial state can be given at object creation + (thanks cyrille for the request) + +2006-11-25 21:04 zmoelnig + + * src/Pixes/: pix_gain.cpp, pix_gain.h: added "saturate" message to + turn saturation on/off; fixed bug in MMX code with gains>1; added + initial arguments + +2006-11-21 13:10 zmoelnig + + * src/Base/GemPixConvert.h: less warnings when compiling + +2006-11-21 13:00 zmoelnig + + * GEM_RELUNIX.sh: nobody uses this and if they do, it wouldn't work + anyhow + +2006-11-21 12:58 zmoelnig + + * GEM.README: updated documentation a tiny bit... + +2006-11-21 12:57 zmoelnig + + * src/: Base/GemPixDualObj.cpp, Base/GemPixObj.cpp, + Controls/gemframebuffer.cpp, Manips/glsl_program.cpp, + Manips/glsl_vertex.cpp, Manips/vertex_program.cpp, + Pixes/pix_buffer_read.cpp, Pixes/pix_buffer_write.cpp, + Pixes/pix_fiducialtrack.cpp, Pixes/pix_multitexture.cpp, + Pixes/pix_rgba.cpp, Pixes/pix_texture.cpp, + openGL/GEMglBlendEquation.cpp: minor code cleanup + +2006-11-21 11:10 zmoelnig + + * src/Pixes/pix_artoolkit.cpp: bail out when using wrong messages + +2006-11-15 12:12 zmoelnig + + * src/Base/GemPixConvert.h: fixed typo (it is __GNUC__ and not + __GNUC___) + +2006-11-15 12:08 zmoelnig + + * src/Base/GemPixConvert.h: more verbosity when disabling the + culprit altivec stuff (since the code does not seem to work and i + don't know why...watch out for the autobuild logs tomorrow...) + +2006-11-14 11:58 zmoelnig + + * src/Base/: GemPixConvert.h, GemPixConvertAltivec.cpp: disable + YUV422_to_YV12_altivec() for gcc<4.0 via the + NO_VECTORINT_TO_VECTORUNSIGNEDINT define (the fix yesterday + coukdn't have worked); btw YUV422_to_YV12_altivec() is really + _unused_ in the current sources!! + +2006-11-14 11:34 zmoelnig + + * src/Pixes/: pix_artoolkit.cpp, pix_artoolkit.h: can't use methods + with "float, symbol" type; have to use A_GIMME instead + +2006-11-13 16:49 zmoelnig + + * src/Base/GemPixConvertAltivec.cpp: disabling __VEC__ for older + gcc's (<4); LATER fix the code + +2006-11-12 16:20 zmoelnig + + * src/Pixes/pix_artoolkit.cpp: print credits on first object + creation + +2006-11-12 16:14 zmoelnig + + * src/Pixes/pix_artoolkit.cpp: removed the default + "HAVE_ARTOOLKIT"; this is checked by configure + +2006-11-12 16:05 zmoelnig + + * src/Pixes/: pix_artoolkit.cpp, pix_artoolkit.h: added shigeyuki's + [pix_artoolkit] + +2006-11-12 16:04 zmoelnig + + * src/: configure.ac, Base/configLinux.h.in: checks for artoolkit + +2006-11-08 21:30 zmoelnig + + * examples/07.texture/10.framebuffer.pd: added example file for the + use of [gemframebuffer]; note that i use [pix_texture] instead of + [pix_multitexture] + +2006-11-08 20:24 zmoelnig + + * examples/07.texture/09.sharedTextures.pd: removed the + [pix_coordinate] stuff, since it is now unneccessary (i thought i + removed this already...) + +2006-11-06 18:39 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: fail to load movie when fps get's + weird... (LATER fix the ffmpeg code) + +2006-11-06 17:48 zmoelnig + + * src/Pixes/: film.cpp, film.h, pix_filmNEW.cpp: made film::m_auto + protected; from outside it can now only be set via setAuto(); + this should make it easier to make optimized decoding paths for + sequential reading (e.g. non-random-access) + +2006-11-06 17:40 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: better handling of decoding errors... + +2006-11-03 17:50 zmoelnig + + * src/Pixes/pix_videoDarwin.cpp: fixed calls to post() + +2006-11-03 09:37 zmoelnig + + * src/Pixes/pix_freeframe.cpp: fixed calls to ::error() and + ::post() + +2006-11-03 09:32 zmoelnig + + * src/: Base/CPPExtern.cpp, Base/CPPExtern.h, Base/GemBase.cpp, + Base/GemGluObj.cpp, Base/GemPixDualObj.cpp, Base/GemPixUtil.cpp, + Base/GemPixUtil.h, Base/TextBase.cpp, + Controls/gemframebuffer.cpp, Controls/gemwin.cpp, + Nongeos/world_light.cpp, Particles/part_color.cpp, + Pixes/pix_background.cpp, Pixes/pix_buffer.cpp, + Pixes/pix_color.cpp, Pixes/pix_film.cpp, Pixes/pix_filmNEW.cpp, + Pixes/pix_halftone.cpp, Pixes/pix_multitexture.cpp, + Pixes/pix_rds.cpp, Pixes/pix_record.cpp, Pixes/pix_record.h, + Pixes/pix_share_write.cpp, Pixes/pix_sig2pix.cpp, + Pixes/pix_videoNEW.cpp: added post() method to CPPExtern.cpp + which automatically prepends the object's name (if available); + accordingly had to change a lot of uses uses of post() where + either the object's name was hard- or softcoded or ::post() was + used (in the callback functions) + +2006-11-03 09:26 zmoelnig + + * src/Pixes/: pix_texture.cpp, pix_texture.h: extended the + texture-sharing message to: textureID, texCoords, type, flags + +2006-11-03 09:25 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L2.cpp, videoV4L2.h: fixed v4l-1 + to work with my usb-2u-cam; v4l-2 starts to work too... + +2006-11-03 09:24 zmoelnig + + * src/: BUGS, README.linux, TODO.091: updated info-files + +2006-11-01 23:33 tigital + + * src/: Pixes/pix_multitexture.cpp, Pixes/pix_multitexture.h, + Base/GemShape.cpp, Base/GemState.cpp, Base/GemState.h: + [pix_multitexture] now works as expected! - new [dimen x y< + message needed so that it can determine texcoords - GemShape's + SetVertex() has been modified to loop thru glMultiTexCoord2f, + when needed - GemState has new variable: state->multiTexCoords, + which is 0 by default, but set in pix_multitexture based on the # + of texUnits requested + +2006-10-30 21:57 tigital + + * src/Base/GemPixConvertAltivec.cpp: more attempts at fixes for bad + type-ing of vec's on 10.3 + +2006-10-30 19:51 zmoelnig + + * src/configure.ac: added option to disable "-fPIC" + +2006-10-30 19:45 zmoelnig + + * src/configure.ac: make "-Os" the default on Darwin + +2006-10-30 19:37 zmoelnig + + * src/configure.ac: added more tests for compiler-flags as + suggested by tigital (-mpowerpc-gfxopt is turned OFF by default; + LATER think about the "-Os" flag on os-x) + +2006-10-30 19:24 zmoelnig + + * src/Base/GemPixConvertAltivec.cpp: reverted the type changes + (while this still breaks compilation with older gcc's, at least + it is functional) + +2006-10-30 09:47 zmoelnig + + * src/configure.ac: oops, fixed typo + +2006-10-30 09:46 zmoelnig + + * src/configure.ac: added check for "-fpascal-strings" which allows + us to use pascal-strings (containing '\p') on os-x + +2006-10-30 09:26 zmoelnig + + * src/Base/GemPixConvertAltivec.cpp: tried to fix another error + with types; NEEDS TESTING + +2006-10-26 22:04 tigital + + * src/Base/GemPixConvertAltivec.cpp: fixes for bad type comparisons + in some vec_sl()/vec_add and loop comparisons + +2006-10-26 22:00 tigital + + * src/Base/CPPExtern.h: fix for gcc4 warning "'GemException' has + virtual functions but non-virtual destructor" + +2006-10-22 21:51 zmoelnig + + * src/configure: finally removed "configure" since it really should + be generated (and therefore happens to get out of sync with + configure.ac too often) + +2006-10-20 19:48 zmoelnig + + * src/Manips/glsl_program.cpp: only call glUseProgramObjectARB() in + postrender() when we have a linked module (less crashy on systems + that don't really support shaders...) + +2006-10-20 19:40 zmoelnig + + * src/Base/TextBase.cpp: changed type of for-loop variable from + (size_t) to (singed long long), since unsigned numbers never get + negative! + +2006-10-18 15:49 zmoelnig + + * src/: Make.config.in, Makefile, configure.ac: store the + CONFIGUREFLAGS in Make.config, so that automatic calls to + "configure" produce the same results; additionally this should + make it possible to just call: + 'CONFIGUREFLAGS="--with-pd=/bi/ba/bo" make" in a distclean + environment and it will build everything; LATER remove + configure/aclocal.m4 + +2006-10-18 13:06 zmoelnig + + * src/Pixes/videoV4L.cpp: setNorm() now has an effect even if + capturing is currently not running; LATER think about making the + "mode " message work again (it seems like this is + some threading problem) + +2006-10-18 13:05 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: fixed if/else at the "mode" message + +2006-10-18 12:53 zmoelnig + + * src/Pixes/videoV4L2.cpp: hmm... + +2006-10-18 12:52 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: made it a tiny bit more readable; + added accumbuffer-bits to window-creation + +2006-10-18 12:50 zmoelnig + + * examples/07.texture/09.sharedTextures.pd: example for + texture-sharing + +2006-10-18 12:46 zmoelnig + + * examples/08.io/04.UseOrb.pd: dont use markEx-objects anymore; + LATER remove this example altogether + +2006-10-18 12:44 zmoelnig + + * examples/06.particle/: 04.combo.pd, 05.twoSrc.pd, 08.info.pd: + dont use markEx-objects anymore + +2006-10-18 12:43 zmoelnig + + * examples/05.text/: 01.Text.pd, 01.TextNoLoadBang.pd, + 03.ChangeText.pd, 03.ChangeTextNoLoadBang.pd, arial.ttf, + vera.ttf: updated to use vera.ttf instead of arial.ttf and to not + use markEx-objects anymore + +2006-10-18 12:40 zmoelnig + + * examples/04.pix/: 05.movie.pd, 18.Curves.pd: dont use + markEx-objects anymore + +2006-10-18 12:39 zmoelnig + + * examples/02.advanced/: 03.View_OSD.pd, 08.Snapshot2.pd: updated + to use vera.ttf instead of arial.ttf and to not use + markEx-objects anymore + +2006-10-06 16:53 cclepper + + * src/Pixes/pix_filmDarwin.cpp: updated RGBA pixel packings for Mac + Intel + +2006-10-06 16:50 cclepper + + * src/Base/GemPixImageLoad.cpp: update for proper Mac Intel pixel + packing + +2006-10-04 13:38 zmoelnig + + * src/Pixes/pix_fiducialtrack.cpp: proper initialization + (memset(0)) for fidtrackerx (used to crash on my x64_64) + +2006-10-03 17:13 zmoelnig + + * src/configure.ac: hopefully fixed the check whether + OpenGL-framework is used + +2006-10-03 17:08 zmoelnig + + * src/configure.ac: disable checks for libGL and libGLU if we use + the OpenGL-framework + +2006-10-03 13:51 zmoelnig + + * src/configure.ac: disable checks for lqt and libquicktime if + QuickTime-framework is being used + +2006-09-27 14:55 zmoelnig + + * tests/all/objects.txt: deleted obsoleted objects from this list + +2006-09-27 14:53 zmoelnig + + * tests/all/existence.sh: make pd-binary settable via the PD + variable + +2006-09-27 12:11 zmoelnig + + * src/: configure, configure.ac: removed the test for + AC_PROG_GCC_TRADITIONAL since we use c++ instead of cc + +2006-09-27 11:53 zmoelnig + + * src/: configure, configure.ac: hopefully fixed the FFMPEG-thing + (the AVCodecContext-check was broken since i changed the language + from "C" to "C++") + +2006-09-27 11:04 zmoelnig + + * src/: configure, configure.ac: added some magic for FTGL and + ffmpeg + +2006-09-26 11:56 zmoelnig + + * src/Base/GemGL.h: use our own glew.h (if so) + +2006-09-26 11:55 zmoelnig + + * src/Manips/vertex_program.cpp: glProgramEnvParameter4fvARB() can + only be used if GL_ARB_vertex_program is defined + (GL_NV_vertex_program doesn't matter) + +2006-09-26 11:27 zmoelnig + + * src/configure.ac: removed check for "-no-builtin" gcc-flags, + since this prevents us from building with older gcc-version + +2006-09-25 15:28 zmoelnig + + * src/: README.glew, importGLEW.sh, Base/glew.cpp, Base/glew.h, + Base/glxew.h, Base/wglew.h: regenerated glew from 1.3.4 sources; + fixed importGLEW.sh so that it automatically adds the "#ifdef + USE_GLEW" clauses around the code + +2006-09-21 21:36 zmoelnig + + * src/: configure, configure.ac: added checks for the + not-deprecated linking flags on OSX; disabled altivec on x86_64 + machines + +2006-09-21 16:38 zmoelnig + + * src/Pixes/pix_deinterlace.cpp: added newline at end of file + +2006-09-21 16:32 zmoelnig + + * src/Pixes/: pix_multitexture.cpp, pix_multitexture.h: add generic + inlets for each textureunit + +2006-09-21 16:31 zmoelnig + + * src/Base/: CPPExtern.cpp, CPPExtern.h: added PDerror() which + calls pd_error() without having to worry about the object + ("ourselves") + +2006-09-20 17:57 zmoelnig + + * src/: Make.config.in, acinclude.m4, configure, configure.ac: + disabled Vertex by default (since it is very experimental) + disabled SSE2 by default (since most processors do not yet + support it) + +2006-09-20 17:56 cclepper + + * src/Controls/gemframebuffer.cpp: added glfrustum call with GEM + default setting. Uncommented some of the matirx calls which get + closer to correct rendering. + +2006-09-20 17:51 zmoelnig + + * src/Base/GemGL.h: indentation of preprocessor-directives, so i + can read them + +2006-09-20 09:55 zmoelnig + + * src/Vertex/vertex_model.cpp: removed the legacy + HaveValidContext() function call (since it does no longer exist) + +2006-09-19 22:48 cclepper + + * src/Controls/gemframebuffer.cpp: init m_FBOcolor not m_color + +2006-09-19 22:42 cclepper + + * src/Controls/: gemframebuffer.h, gemframebuffer.cpp: added a + color message to set the background color. + +2006-09-18 13:09 zmoelnig + + * src/Manips/glsl_vertex.cpp: another check for illegal filenames + +2006-09-18 12:39 zmoelnig + + * help/: alternate.pd, average.pd, counter.pd, hsv2rgb.pd, + invert.pd, oneshot.pd, randomF.pd, rgb2hsv.pd, tripleLine.pd, + tripleRand.pd, v+.pd, v-.pd, vector+.pd, vector-.pd: removed + MarkEx from Gem + +2006-09-18 12:39 zmoelnig + + * help/: pix_kaleidoscope.pd, pix_multiblob.pd: removed dependency + on [v+] and friends (which are no longer part of Gem) + +2006-09-17 17:41 zmoelnig + + * src/Pixes/recordQT.h: put "float seconds;" in the + platform-independent section, since it is used by both __APPLE__ + and __WIN32__ + +2006-09-15 20:15 tigital + + * src/Pixes/pix_image.cpp: [OSX] small fix for close() definition + +2006-09-14 11:44 zmoelnig + + * src/Vertex/vertex_draw.cpp: hopefully made this work with older + openGL-headers + +2006-09-14 11:20 zmoelnig + + * src/Base/: GemMan.cpp, GemVersion.h: put the authors into + GemVersion.h and removed the OS-information (since this is + blurry) + +2006-09-14 11:00 zmoelnig + + * tests/all/existence.bat: w32 batch file for testing; LATER make + this via make + +2006-09-13 00:38 cclepper + + * src/Pixes/: recordQT.cpp, recordQT.h: updated to include timers + and matrix flipping on windows + +2006-09-12 21:58 cclepper + + * src/Pixes/pix_recordQT.h: adds a timer for the movie framerate on + windows. also flips the image around when a directshow source is + used. + +2006-09-12 21:54 cclepper + + * src/Pixes/pix_recordQT.cpp: adds a timer for the movie framerate + on windows. also flips the image around when a directshow source + is used. + +2006-09-12 21:44 cclepper + + * src/Base/GemGL.h: added header for GLEW + +2006-09-12 21:42 cclepper + + * src/Base/: GemMan.cpp, GemMan.h: Quicktime init on first launch + for Windows. This could possibly go in GemWinCreateNT, but it + works fine here. + +2006-09-12 21:40 cclepper + + * src/Base/GemWinCreateNT.cpp: GLEW init code for Windows + +2006-09-12 21:37 cclepper + + * src/Base/GemSIMD.cpp: added a working SIMD feature check for + Windows. + +2006-09-11 23:56 cclepper + + * src/Pixes/pix_filmNEW.cpp: m_auto is passed to the handle. + useful for DirectShow and Quicktime which are more efficient + handling auto play than just incrementing a frame counter. + +2006-09-11 23:55 cclepper + + * src/Pixes/film.h: moved m_auto to public member variable + +2006-09-11 23:53 cclepper + + * src/Pixes/filmDS.cpp: added right inlet frame handling and auto + now sets rate + +2006-09-07 23:28 cclepper + + * src/Geos/rectangle.cpp: fixed error in SetVertex that made + everything square + +2006-09-05 17:27 tigital + + * src/Pixes/pix_texture.cpp: added more informative output when + changing mode + +2006-09-03 18:50 zmoelnig + + * src/Base/CPPExtern.h: removed inheritance of GemException from + std::exception to not set up M$VC; hope this works + +2006-09-02 20:37 zmoelnig + + * src/Pixes/: pix_image.cpp, pix_movieDS.cpp: use "-path" for + searching images + +2006-09-02 20:37 zmoelnig + + * src/Makefile: added installabs target for installing + abstractions; install Gem.${EXT} into pd/extra/Gem/ + +2006-08-31 21:45 cclepper + + * src/Pixes/: pix_deinterlace.cpp, pix_deinterlace.h: added a + message apative to set the threshold for deinterlacing. also + attempted to make the deinterlacing a little nicer looking for + RGBA. + +2006-08-31 21:36 cclepper + + * src/Geos/rectangle.cpp: changed drawing to use SetVertex() which + allows for texturing from texture units other than 0 + +2006-08-31 20:47 cclepper + + * src/Pixes/: pix_texture.cpp, pix_texture.h: added texunit message + and handling of multiple texture units + +2006-08-29 17:34 zmoelnig + + * src/Base/GemVersion.h: added "cvs" to the version string + +2006-08-29 16:46 zmoelnig + + * src/Makefile: removed the tailing slash from BUILDDIR (avoid + double-slashes in paths) + +2006-08-29 09:35 zmoelnig + + * src/Pixes/: filmDS.cpp, filmDS.h: fixed compilation issue on + systems without HAVE_DIRECTSHOW + +2006-08-24 23:20 cclepper + + * src/Pixes/pix_filmNEW.cpp: added HAVE_DIRECTSHOW define to select + filmDS or filmAVI + +2006-08-24 23:15 cclepper + + * src/Pixes/: filmDS.h, filmDS.cpp: changed defines to add + HAVE_DIRECTSHOW + +2006-08-24 22:54 cclepper + + * src/Pixes/: filmDS.cpp, filmDS.h: DirectShow class for pix_film + on Windows. + +2006-08-22 14:05 zmoelnig + + * abstractions/pix_blobtracker-help.pd: replaced [v+] and friends + with pd-objects + +2006-08-22 14:03 zmoelnig + + * abstractions/: gemorb.pd, gemtablet.pd: dummy objects that print + an error when being instantiated, telling the user that the real + objects ceased to exist + +2006-08-22 13:52 zmoelnig + + * examples/09.openGL/03.stencilBuffer.pd: cyrille's stencil buffer + patch + +2006-08-22 09:52 zmoelnig + + * src/Controls/gemframebuffer.cpp: newline at end of file (after + all, C++ MUST have a newline at the EOF) + +2006-08-22 09:40 zmoelnig + + * src/Pixes/: pix_movieDS.cpp, pix_movieDS.h, pix_videoDS.cpp, + pix_videoDS.h: put the DirectShow code into #ifdef's to prevent + it from bulding on other platforms; dos2unix + +2006-08-21 23:21 cclepper + + * src/Pixes/: pix_videoDS.cpp, pix_videoDS.h: Changed callback to + GetCurrentBuffer. Added method to record video to disk in native + format (useful for DV capture). + +2006-08-21 23:16 cclepper + + * src/Pixes/: pix_movieDS.cpp, pix_movieDS.h: Object for loading + DirectShow files on Windows + +2006-08-21 20:48 cclepper + + * src/openGL/: GEMglClearDepth.cpp, GEMglClearDepth.h: fixed cast + to GLclampd for depth flag + +2006-08-17 13:08 zmoelnig + + * src/Pixes/pix_movieNEW.cpp: remove the 2nd inlet inherited from + [pix_texture] since this object always has its own texture + +2006-08-17 13:07 zmoelnig + + * src/Pixes/: pix_texture.cpp, pix_texture.h: added a second inlet + for setting a "remote" texture, which is used optionally if no + image is present + +2006-08-17 11:13 zmoelnig + + * src/Pixes/pix_snap2tex.cpp: deleted commented out leftovers; use + window-dimensions when given dimensions <=0 (instead of <0) + +2006-08-17 10:22 zmoelnig + + * examples/07.texture/08.MotionBlur.pd: an example on how to use + full-screen motion-bluring with feedback-textures + +2006-08-16 14:40 zmoelnig + + * src/TODO.091: autoconf working on OSX + +2006-08-16 14:39 zmoelnig + + * src/Controls/: orb.h, orbserial.cpp, orbserial.h, gemorb.cpp, + gemorb.h, gemtablet.cpp, gemtablet.h, orb.cpp: deleted [gemorb] + and [gemtablet] + +2006-08-16 14:31 zmoelnig + + * src/: configure, configure.ac: removed MarkEx from Gem; added + Vertex-branch to configure + +2006-08-16 14:27 zmoelnig + + * src/MarkEx/: MarkExSetup.cpp, README.txt, abs.cpp, average.cpp, + counter.cpp, hsvrgb.cpp, m_control.cpp, multiselect.cpp, + randomF.cpp, reson.cpp, strcat.cpp, tripleLine.cpp, vector.cpp: + removed MarkEx from Gem + +2006-08-16 12:03 zmoelnig + + * src/Base/: CPPExtern.cpp, CPPExtern.h: better(?) declarations of + exceptions... + +2006-08-14 17:32 zmoelnig + + * src/Pixes/pix_fiducialtrack.cpp: removed debugging printout + +2006-08-14 17:31 zmoelnig + + * src/Pixes/pix_fiducialtrack.cpp: initialization of treeidmap + +2006-08-14 17:07 zmoelnig + + * tests/all/objects.txt: more arguments to objects that need it + +2006-08-14 16:58 zmoelnig + + * tests/all/: existence.pd, objects.txt: allow arguments to objects + +2006-08-14 16:37 zmoelnig + + * src/openGL/: GEMglProgramStringARB.cpp, GEMglProgramStringARB.h: + changed this object to A_GIMME, since default args do not like + symbols to come after floats... LATER: this object should refuse + from being created, if the arguments do not match what we expect + LATER: there are other objects who also suffer from this... + +2006-08-09 19:15 zmoelnig + + * src/: configure, configure.ac: rearranged a bit, so that it is + possible to find the "--with-pd" flag in the help... + +2006-08-09 19:08 zmoelnig + + * src/: configure, configure.ac: this might work on os-x! changed + the behaviour of "--with-pd" so that it's argument should direct + to the base-path of pd, where we can find both headers + (/src) and libraries (/bin) + +2006-08-09 18:44 zmoelnig + + * src/Pixes/recordQT.cpp: use "0" instead of NULL for setting + characters + +2006-08-09 18:40 zmoelnig + + * src/Pixes/filmQT4L.cpp: protect the inclusion of + with HAVE_QUICKTIME4LINUX + +2006-07-27 18:00 zmoelnig + + * src/Base/TextBase.cpp: use "vera.ttf" as default font (whoa, this + could break things!) + +2006-07-27 17:59 zmoelnig + + * src/Controls/gemhead.cpp: use GemState->reset() instead of + resetting things manually + +2006-07-27 17:58 zmoelnig + + * src/Base/: GemState.cpp, GemState.h: removed the "stereo" + membervariable: this is handled by "tickTime"; added a "reset()" + method (to be used in [gemhead] instead of resetting things + manually) + +2006-07-27 17:56 zmoelnig + + * src/Base/GemMan.cpp: replaced setting GemState->stereo by setting + GemState->tickTime; + +2006-07-27 14:12 zmoelnig + + * src/Pixes/pix_freeframe.cpp: removed an unconditional exception + thrown in the constructor + +2006-07-25 18:37 zmoelnig + + * src/Particles/: part_color.cpp, part_damp.cpp, part_draw.cpp, + part_follow.cpp, part_gravity.cpp, part_info.cpp, + part_killold.cpp, part_killslow.cpp, part_orbitpoint.cpp, + part_render.cpp, part_sink.cpp, part_size.cpp, part_source.cpp, + part_targetcolor.cpp, part_targetsize.cpp, part_velcone.cpp, + part_velocity.cpp, part_velsphere.cpp, part_vertex.cpp: use + "state->tickTime" instead of "state->stereo" for (not) updating + movements + +2006-07-25 16:47 zmoelnig + + * examples/09.openGL/02.displayList.pd: made the warning go away. a + bit more text... + +2006-07-20 20:45 tigital + + * src/Controls/gemframebuffer.cpp: removed + "GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT" from fbo + status checking because it has been removed from the spec + +2006-07-20 19:09 tigital + + * help/ortho.pd: add info about compat message + +2006-07-12 06:47 tigital + + * src/Controls/: gemframebuffer.cpp, gemframebuffer.h: replaced + "colorspace" with separate "type" and "format" messages (also can + affect creation args): default type=GL_UNSIGNED_BYTE and + format=GL_RGB; more informative (and more gem-like) error + reporting; better setup of fbo's; switchable textureType + (default=GL_TEXTURE_2D); better cleanup + +2006-07-12 06:26 tigital + + * src/Base/GemPixUtil.cpp: [osx] "type = ..._REV" or not: + compile-time check for __BIG_ENDIAN__, to help support intel-macs + +2006-07-12 06:22 tigital + + * src/Base/GemSIMD.cpp: [osx] start of code to detect altivec at + runtime + +2006-07-12 06:21 tigital + + * src/Base/GemWinCreateMac.cpp: [osx] possibility of using generic + float (software) renderer: should come up with a way to switch + between renderer's at runtime + +2006-07-12 06:19 tigital + + * src/Pixes/pix_freeframe.cpp: [osx] check for resource's existence + before releasing them + +2006-07-12 06:17 tigital + + * src/Pixes/pix_multitexture.cpp: added glTexParameteri()'s; + removed auto texcoord generation (for now...); better support for + older GL's; seems to work (atm) with geo's + +2006-07-12 06:04 tigital + + * src/Vertex/: vertex_tabread.cpp, vertex_tabread.h: starting to + merge in vertex_array stuff (finally) - accepts tables in this + order atm: vertex, color, normal, texcoord + +2006-07-12 06:00 tigital + + * src/: Vertex/vertex_draw.cpp, Vertex/vertex_draw.h, + Base/GemVertex.cpp, Base/GemVertex.h: starting to merge in + vertex_array stuff (finally) + +2006-07-12 04:58 tigital + + * src/: Controls/gemhead.cpp, Base/GemCache.cpp, Base/GemCache.h, + Base/GemState.cpp, Base/GemState.h: starting to merge in + vertex_array stuff (finally) + +2006-07-04 16:48 zmoelnig + + * src/Pixes/: filmAVIPLAY.cpp, filmQT4L.cpp: use setCSizeByFormat() + +2006-07-04 16:47 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: use a define for the debug-printout at + decoder-instantiation: makes code much more readable + +2006-07-04 16:46 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: the convert(To|From) + routines now also work without an explicit colorspace; if none is + given, the already set cs of the destination is taken; if this is + unset, the default cs is used + +2006-07-03 11:06 zmoelnig + + * src/Pixes/: pix_fiducialtrack.cpp, pix_freeframe.cpp, + recordQT.cpp, videoV4L.cpp: replaced sprintf() by snprintf(); + replaced printf() by post()/error() + +2006-07-03 10:45 zmoelnig + + * src/Pixes/filmAVIPLAY.cpp: lowered the threshold of insecurity by + replacing usleep() with select() + +2006-07-03 10:44 zmoelnig + + * src/Pixes/videoDV4L.cpp: lowered the threshold of insecurity with + snprintf(), select(),... + +2006-06-26 04:28 tigital + + * GEM_darwin.xcodeproj/project.pbxproj: xcode 2.3 project file, + makes dynamiclib + +2006-06-20 11:03 zmoelnig + + * src/: configure, configure.ac: forgot to remove the debugging + "read"s... + +2006-06-14 12:20 zmoelnig + + * src/configure: generated from configure.ac + +2006-06-14 12:20 zmoelnig + + * src/configure.ac: the SIMD-tests are only done if required + explicitely by the user (e.g. --enable-mmx) or the compiling + hardware seems to support it (naive test: if ARCH="i686" we want + "sse2" and "mmx" but not "altivec" and the like); LATER make + better tests (query processor capabilities) + +2006-06-14 12:17 zmoelnig + + * src/aclocal.m4: generated from acinclude.m4 (with automake-1.9) + +2006-06-14 12:16 zmoelnig + + * src/acinclude.m4: the GEM_ARG_WITH macro family now doesn't + explicitely set the default value, unless a 3rd argument is given + and a non-empty string (like "force") + +2006-06-14 11:25 zmoelnig + + * src/Pixes/: pix_filmDarwinYUV.cpp, pix_filmDarwinYUV.h, + pix_filmYUV.cpp, pix_filmYUV.h, pix_movieYUV.cpp, pix_movieYUV.h: + why...these files should have been deleted a long time ago... + +2006-06-14 11:02 zmoelnig + + * examples/data/: COPYING.txt, arial.ttf, cour.ttf, times.ttf, + vera.ttf: removed non-free fonts and added one free replacement; + added a COPYING.txt which discusses licensing. LATER think about + changing the default font to "vera.ttf" + +2006-06-14 10:56 zmoelnig + + * src/: configure, configure.ac: oops, forgot to check in the + changes for fain-grained control over SIMD-optimization + +2006-06-14 00:45 cclepper + + * src/Base/GemMan.cpp: commented out the fps post() on the Mac + since that goes out the outlet + +2006-06-14 00:41 cclepper + + * src/Pixes/pix_recordQT.cpp: used #if 0 to remove the object from + the build process. need to use some proper defines until the new + version works as well as the old + +2006-06-14 00:31 cclepper + + * src/Pixes/recordQT.cpp: should work for Mac/Win now + +2006-06-14 00:30 cclepper + + * src/Pixes/recordQT.h: moved m_recordStart and m_recordStop to the + base class. commented out the not implemented getCodecName and + getCodecDescription + +2006-06-14 00:28 cclepper + + * src/Pixes/record.h: moved m_recordStart and m_recordStop to the + base class + +2006-06-14 00:25 cclepper + + * src/Pixes/pix_record.cpp: Used one #ifdef to keep from crashing + on Mac/Win. m_automatic is now true by default. + +2006-06-13 23:31 cclepper + + * src/Pixes/pix_filmDarwinYUV.cpp: Added a very clever #if 0 to + remove this file from compilation. + +2006-06-13 23:29 cclepper + + * src/Pixes/pix_movieDarwin.h: updated header file for volume + function + +2006-06-13 23:26 cclepper + + * src/Pixes/: pix_movieYUV.cpp, pix_filmYUV.cpp: Added a very + clever #if 0 to remove this file from compilation. + +2006-06-09 21:07 cclepper + + * src/Base/GemMan.cpp: changed maxStackDepth declarations to match. + both are GLint + +2006-06-09 21:05 cclepper + + * src/Pixes/pix_videoDarwin.h: updated header file for quality + function + +2006-06-09 21:04 cclepper + + * src/Pixes/pix_filmDarwin.h: updated header file for volume + function + +2006-06-09 15:06 zmoelnig + + * src/Base/GemPixUtil.cpp: cleaned up setCSizeByFormat() to only + one big (#ifdef __APPLE__ #else) instead of 6 of them: should be + more readable + +2006-06-08 17:36 zmoelnig + + * src/Pixes/pix_share_write.cpp: clean up shared memory needed when + the segment already exists but is smaller than what we requested + +2006-06-08 13:55 zmoelnig + + * src/Pixes/pix_share_read.cpp: removed freeShm() from the + destructor since the parent's destructor already handles this: + the joys of inheritance + +2006-06-01 15:58 zmoelnig + + * src/Pixes/: videoV4L2.cpp, videoV4L2.h: prefixed V4L2-specific + defines with V42L_; added loads of debugging stuff but still + couldn't make it work... + +2006-06-01 15:55 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L.h: prefixed V4L-specific + defines with V4L_; better checks on stopTransfer() + +2006-06-01 15:52 zmoelnig + + * src/Pixes/FreeFrame.h: added some more tests for defines when we + are on w32 + +2006-05-31 16:05 zmoelnig + + * src/Base/GemMan.cpp: reschedule a rendering-cycle when changing + the framerate from 0.0 to something valid (normally the framerate + change only takes effect at the next render-cycle; with + framerate==0.0 this can take a long time) + +2006-05-31 16:05 zmoelnig + + * src/Controls/gemwin.cpp: cancel pending destroy-requests on + "create" + +2006-05-31 15:54 zmoelnig + + * src/Controls/gemwin.cpp: reschedule a rendering-cycle when + changing the framerate from 0.0 to something valid (normally the + framerate change only takes effect at the next render-cycle; with + framerate==0.0 this can take a long time) + +2006-05-24 19:18 cclepper + + * src/Pixes/: pix_movieDarwin.cpp, pix_videoDarwin.cpp: added + defines for Intel. + +2006-05-24 19:17 cclepper + + * src/Pixes/pix_filmDarwin.cpp: added defines for Intel. fixed + stupid looping bug. + +2006-05-16 14:00 zmoelnig + + * src/Base/TextBase.cpp: changed the return type of string.find() + from (size_t) to (unsigned long) in order to make a valid test + for (pos<0): this prevents hanging... + +2006-05-07 12:04 zmoelnig + + * src/Base/TextBase.cpp: use (size_t) where appropriate + +2006-05-07 12:03 zmoelnig + + * src/Pixes/pix_share_write.h: made m_size of type (size_t) instead + of just (int) + +2006-05-07 12:03 zmoelnig + + * src/Pixes/recordQT.cpp: include + +2006-05-07 12:00 zmoelnig + + * src/Pixes/libfidtrack_fidtrackX.cpp: explicit casts to (float) to + shut up warnings + +2006-05-07 11:58 zmoelnig + + * src/Manips/vertex_program.h: made m_size of type (size_t) instead + of just (int) + +2006-05-04 21:04 zmoelnig + + * src/Geos/sphere3d.cpp: respect m_size (via glScale() and + glPush/glPop) + +2006-05-04 20:54 zmoelnig + + * src/Controls/gemwin.cpp: use GemMan::destroyWindowSoon() for + window destruction: this allows to directly connect [gemmouse] to + [destroy( without crashing (previously a [del 0] was needed to + decouple the window-event-grabbing from the window-destruction) + +2006-05-04 20:52 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h: added a destroyWindowSoon() + function that issues a delayed windows destruction (destruction + is done at the beginning of the next render cycle which is + rescheduled to be within 0.0 ms); this is useful when the + destruction is initiated via window-events which would otherwise + crash pd + +2006-05-04 19:53 zmoelnig + + * src/Base/: GemGluObj.cpp, GemGluObj.h: the slice-input now also + accepts a pair of numbers for different numSlices and numStacks; + currently only used by [sphere3d] + +2006-05-04 19:43 zmoelnig + + * src/Geos/: sphere3d.cpp, sphere3d.h: added a spherical object for + deformation (similar to [curve3d], but only control-points for + now + +2006-05-03 15:34 zmoelnig + + * src/Geos/sphere.cpp: fixed memory-leak + +2006-05-03 06:24 tigital + + * src/Manips/: glsl_program.cpp, glsl_program.h: now we correctly + get the location of uniform variables: how it worked before, I + have no idea... + +2006-04-28 16:34 zmoelnig + + * src/Base/sgiimage.cpp: use memset() instead of bzero(); use + __WIN32__ instead of WIN32; include config.h for this to work + +2006-04-28 16:33 zmoelnig + + * src/Base/GemMath.h: inlcude config.h for __WIN32__ + +2006-04-28 16:18 zmoelnig + + * src/Manips/glsl_vertex.cpp: include instead of + on w32 + +2006-04-28 16:16 zmoelnig + + * src/Controls/gemwin.h: just include CPPExtern.h: this will + include m_pd.h, so we don't need to do it here + +2006-04-28 16:13 zmoelnig + + * src/Base/CPPExtern.h: include GemExportDef before m_pd.h: this + way we only have to pragma-disable the vc-warnings once: less + code cluttering! + +2006-04-28 16:12 zmoelnig + + * src/Base/GemExportDef.h: use _MSC_VER instead of __WIN32__ for + w32-specific things (the used pragmas are vc-only; i am not that + sure about the declspec()-things) + +2006-04-28 15:57 zmoelnig + + * src/Base/GemPBuffer.cpp: moved all includes to top of the file; + use GemGL.h to include the gl-headers + +2006-04-28 15:51 zmoelnig + + * src/Base/GemGL.h: added wglext.h for w32; shouldn't the + agl-headers be included here too? + +2006-04-28 15:35 zmoelnig + + * src/Base/config.h: automatically define __WIN32__ if _MSC_VER is + defined + +2006-04-28 15:33 zmoelnig + + * src/Base/GemGLUtil.cpp: removed test for GL_WIN32_MEAN_AND_LEAN + (there is no such thing) + +2006-04-28 15:32 zmoelnig + + * src/Base/: GemMan.cpp, GemWinCreate.h: use "#ifdef __WIN32__" + instead of "#if __WIN32__" + +2006-04-28 15:30 zmoelnig + + * src/Pixes/pix_vpaint.cpp: protected the use of defines via + #ifdef; better bracketing; + +2006-04-28 15:29 zmoelnig + + * src/Pixes/pix_share_write.cpp: don't use freeShm() on __WIN32__ + +2006-04-28 15:29 zmoelnig + + * src/Pixes/pix_texture.cpp: protected the use of defines via + #ifdef + +2006-04-28 15:27 zmoelnig + + * src/Pixes/pix_recordQT.cpp: use HAVE_QUICKTIME (and added a not + about where it should be defined properly) + +2006-04-28 15:26 zmoelnig + + * src/Pixes/: pix_colorreduce.cpp, pix_kaleidoscope.cpp, + pix_sig2pix.cpp: use double for sqrt() + +2006-04-28 15:24 zmoelnig + + * src/Manips/: glsl_vertex.cpp, vertex_program.cpp: on w32 include + instead of + +2006-04-28 15:22 zmoelnig + + * src/Geos/pqtorusknots.cpp: check if GL_TEXTURE0_ARB is defined + before using it + +2006-04-27 14:35 zmoelnig + + * src/Pixes/videoV4L2.cpp: it has been a long time since i compiled + that...fixed some minor typos... + +2006-04-27 14:07 zmoelnig + + * src/: configure, configure.ac, Base/configLinux.h.in: added + checks for video4linux-2; this is disabled by default (enable it + with "--with-v4l2") + +2006-04-27 13:21 zmoelnig + + * src/TODO.091: added the bug reported by cyrille regarding + pix_video and philips webcams + +2006-04-26 17:37 zmoelnig + + * src/TODO.091: fixed the [vertex_program]-bug; opened the + freeframe-64bit issue + +2006-04-26 17:34 zmoelnig + + * src/Manips/vertex_program.cpp: made "param" an alias for + "parameter", since this is the keyword most objects use... + +2006-04-26 17:33 zmoelnig + + * src/Manips/: fragment_program.cpp, fragment_program.h, + vertex_program.cpp, vertex_program.h: fixed a bug where m_envNum + was not properly initialized when [vertex_program] was called + with an argument; moved "parameter" to vertex_program.cpp, so + both objects can set the parameter; LATER think about multiple + parameters... + +2006-04-26 14:22 zmoelnig + + * src/Pixes/pix_dot.cpp: proper initialization prevents crashes in + destructor... + +2006-04-26 11:35 zmoelnig + + * src/openGL/: GEMglDeleteTextures.cpp, GEMglGenProgramsARB.cpp, + GEMglProgramStringARB.cpp, GEMglTexSubImage2D.cpp: did some + proper initializing of pointers to prevent crashes (why has + nobody thought about that in the generation process!??) + +2006-04-26 10:30 zmoelnig + + * tests/all/: existence.pd, existence.sh: trigger the quitting from + outside (that is: the script) + +2006-04-26 10:20 zmoelnig + + * tests/all/: existence.pd, existence.sh, objects.txt: a simple + test that tests for all Gem objects (as listed in objects.txt); + no tests are performed on vertex/-objects and on markEx/-objects + +2006-04-26 09:47 zmoelnig + + * src/: BUGS, TODO, TODO.091: fixed the [separator] bug; found + other ways to trigger the [vertex_program] bug + +2006-04-26 09:41 zmoelnig + + * src/Manips/separator.cpp: before pushing to the stacks, check + whether the stacks are already full; this leads to less errors + when chaining more than 1 [separator] + +2006-04-26 09:40 zmoelnig + + * src/Base/: GemState.cpp, GemState.h: added a variable for the + current depth of the matrix-stacks + +2006-04-26 09:39 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h: query the number of supported + stacks for the various matrix-modes (important for [separator]; + text whether GL_NV_multisample_texture_hint is supported before + setting the hint; + +2006-04-25 19:18 zmoelnig + + * abstractions/: rgb2yuv.pd, yuv2rgb.pd: normalized input and + output values; still no clamping + +2006-04-25 18:58 zmoelnig + + * abstractions/: rgb2yuv-help.pd, rgb2yuv.pd, yuv2rgb-help.pd, + yuv2rgb.pd: yuv2rgb and vice versa conversion abstractions + +2006-04-24 21:16 zmoelnig + + * src/Base/GemPixUtil.cpp: use "size_t" for alignment-magic, since + sizeof(int)!=sizeof(unsigned char*) on x86_64; btw, this should + be used in pd's m_simd.h and in the freeframe specs too... + +2006-04-11 11:33 zmoelnig + + * src/Base/GemMan.cpp: moved the window-destruction in render() + before the m_windowState check: this fixes issues with lights + when destroying the windows from "outside" + +2006-04-07 17:12 tigital + + * src/TODO.091: [osx] uyvy/bgra/yv12 conversions altivec'd (DONE) + +2006-04-07 05:49 tigital + + * src/Base/: GemPixConvertAltivec.cpp, GemPixUtil.cpp, + GemPixUtil.h: yuv422_to_bgra_altivec() now works; fixed some + typos; re-corrected #include's + +2006-04-05 13:29 zmoelnig + + * configure: removed this pseudo-configure script since it is + totally outdated; the (pseudo) Makefile in here should call + configure in src/ if needed + +2006-04-05 13:27 zmoelnig + + * src/Base/GemMan.cpp: removed the call to glClearColor() in the + reset()-routine since it might crash pd/Gem when no valid context + is available (LATER: think what will happen when someone clicks + on "reset" while rendering) + +2006-03-28 11:40 zmoelnig + + * src/Pixes/recordQT4L.h: reverted the include-change by jamie. + this should really be handled by configure and NOT in here since + we don't know whether the quicktime-headers are in lqt/ or + quicktime/ or... + +2006-03-28 05:20 tigital + + * src/Pixes/: pix_chroma_key.h, recordQT4L.cpp, recordQT4L.h: fixed + header inclusion + +2006-03-27 18:46 tigital + + * src/Pixes/: pix_chroma_key.cpp, pix_chroma_key.h: CLAMP() is + inlined from GemFuncUtil.h + +2006-03-27 16:48 zmoelnig + + * src/Pixes/: pix_chroma_key.cpp, pix_composite.cpp, pix_mix.cpp, + pix_motionblur.cpp, pix_multiply.cpp, pix_subtract.cpp: replaced + "nil" by "null64" in MMX routines, since this makes problems with + QuickTime-framework (on macintel) + +2006-03-27 16:47 zmoelnig + + * src/Pixes/: pix_2grey.cpp, pix_2grey.h: added SSE2 processing for + YUV (but most of the time is spent in memory-fetching anyhow, so + not much of a speed gain) + +2006-03-27 09:52 zmoelnig + + * src/TODO.091: updated TODO-list: opened new bugs for [separator], + missing objects on w32, and the shader-objects + +2006-03-24 16:16 zmoelnig + + * src/Base/: GemPixObj.cpp, GemPixUtil.cpp: initialize (and modify) + m_simd via GemSIMD and select optimized algorithms at runtime. + +2006-03-24 16:12 zmoelnig + + * src/Base/GemMan.cpp: instantiate a GemSIMD class in order to + query the CPU only once. + +2006-03-24 16:10 zmoelnig + + * src/Base/: GemSIMD.cpp, GemSIMD.h: implemented a small static + class GemSIMD which is used to query the SIMD-capabilities of the + current CPUs: this should bring us away from (not) using SIMD via + preprocessors. + +2006-03-24 00:08 zmoelnig + + * src/Pixes/pix_dot.cpp: weird: compiling with SSE2 (on a system + that doesn't support it!), yields to crashes when casting + "double" to "int"; using "float" works fine, so i enforced floats + here... + +2006-03-23 23:51 zmoelnig + + * src/Pixes/pix_convolve.cpp: removed "done..." printout in + destructor + +2006-03-23 18:07 zmoelnig + + * src/: configure, configure.ac: added check for sse2 + +2006-03-23 18:05 zmoelnig + + * src/Base/: GemPixConvert.h, GemPixConvertSSE2.cpp, + GemPixUtil.cpp: added YUV->RGB24 routine (its not really faster + than YUV->RGB32) + +2006-03-23 18:03 zmoelnig + + * src/Base/GemSIMD.h: put GEM_VECTORALIGNMENT in here + +2006-03-23 15:25 zmoelnig + + * src/Base/GemPixConvertSSE2.cpp: further improved the SSE2-code: + less shuffling done (in YUV2RGBA) and cache optimization on + writing + +2006-03-23 15:07 zmoelnig + + * src/Base/GemPixUtil.cpp: use macros for the timing code: this + makes things much more readable (no more ifdef's within the + actual code to time) + +2006-03-23 00:07 tigital + + * src/Controls/gemwin.cpp: typo with no effect + +2006-03-23 00:06 tigital + + * src/Base/GemPixObj.cpp: var initializing re-ordering + +2006-03-22 23:50 tigital + + * src/Manips/glsl_program.cpp: added "#ifdef GL_ARB_shader_objects" + to linkCallback() + +2006-03-22 23:47 tigital + + * src/Base/: GemPixConvert.h, GemPixConvertAltivec.cpp: added + YUV422_to_YV12_altivec(); changed function var's to + YV12_to_YUV422_altivec() so it works in the new file; started + YUV422_to_BGRA_altivec(), but non-functioning atm + +2006-03-22 23:43 tigital + + * src/Base/GemPixObj.h: re-ordering + +2006-03-22 23:40 tigital + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: GemPixConvert.h + switcheroo + +2006-03-22 18:41 zmoelnig + + * src/Base/GemPixUtil.cpp: use the YUV2RGBA routines; on + reallocate() make sure that a pointer to the aligned memory is + returned + +2006-03-22 18:35 zmoelnig + + * src/Base/: GemPixConvert.h, GemPixConvertSSE2.cpp: initial + SSE2-optimized YUV2RGBA conversion: there is still a lot to be + done here (e.g. get a real grip on SIMD-programming!) + +2006-03-22 13:59 zmoelnig + + * src/Base/: GemPixConvert.h, GemPixConvertAltivec.cpp, + GemPixConvertSSE2.cpp, GemPixUtil.cpp, GemPixUtil.h: added + SSE2-optimized RGBA2YUV conversion; since GemPixUtil.cpp has + grownso huge, i have outsourced the optimized color conversion + routines into separate files GemPixConvertAltivec.cpp, + GemPixConvertSSE2.cpp; obviously this has only been tested on + linux and mightwork (or not) on osx + +2006-03-20 22:32 zmoelnig + + * examples/02.advanced/18.gl_shading_language.pd: did i check this + in already? + +2006-03-20 21:53 zmoelnig + + * examples/: 02.advanced/18.gl_shading_language.pd, data/Toon.frag, + data/Toon.vert: a toon-shader done with glsl + +2006-03-20 16:02 tigital + + * src/Manips/glsl_program.cpp: "#ifdef GL_ARB_shader_objects" added + to createArrays() + +2006-03-19 19:25 zmoelnig + + * src/TODO.091: i think the separator-issue is almost fixed + +2006-03-19 19:25 tigital + + * src/Geos/: rubber.cpp, rubber.h: remembered to member variables + (masses, springs), so now we have actual object autonomy + +2006-03-18 21:36 tigital + + * src/Pixes/pix_movieDarwin.h: fixed typo, now compiles + +2006-03-18 15:21 zmoelnig + + * src/Pixes/: pix_coordinate.cpp, pix_coordinate.h, pix_film.cpp, + pix_film.h, pix_filmYUV.cpp, pix_filmYUV.h, pix_movie.cpp, + pix_movie.h, pix_movieDarwin.cpp, pix_movieDarwin.h, + pix_movieYUV.cpp, pix_movieYUV.h, pix_multitexture.cpp, + pix_multitexture.h, pix_snap2tex.cpp, pix_snap2tex.h, + pix_texture.cpp, pix_texture.h: in theory these changes should + fix the memleak problem with the [separator]: while i was extra + careful, i hope that my changes will be compiling and (what's + more) be functional on other platforms! + +2006-03-16 10:34 zmoelnig + + * help/: light.pd, linear_path.pd, primTri.pd, scale.pd, + scaleXYZ.pd, separator.pd, shearYZ.pd, shearZX.pd, + spline_path.pd, spot_light.pd: updated help-patches (mostly + xchanged the [destroy( message with [create() + +2006-03-16 09:55 zmoelnig + + * src/Pixes/pix_texture.cpp: FIXED: not using client-storage on + machines that do not support it led to a "invalid enumerant" + GL-error (due to setting GL_UNPACK_CLIENT_STORAGE_APPLE via + glPixelStore to _some_ value); + +2006-03-15 20:49 tigital + + * src/TODO.091: updated based on what was committed yesterday, plus + some other things + +2006-03-15 18:09 zmoelnig + + * src/TODO.091: updated since a help-patch for [pix_record] is now + available + +2006-03-15 17:51 zmoelnig + + * src/Pixes/: pix_share.h, pix_share_read.cpp, pix_share_read.h, + pix_share_write.cpp, pix_share_write.h: new implementation that + allows switching of the attached shm-segment via a "set" message. + +2006-03-15 16:42 zmoelnig + + * src/Controls/gemframebuffer.cpp: things removed for osX needed to + be removed on linux too + +2006-03-15 11:37 zmoelnig + + * help/pix_record.pd: a help-patch + +2006-03-15 11:35 zmoelnig + + * src/Pixes/pix_record.cpp: cleaned up a bit (less verbosity; local + variables should not be called m_...; ...) + +2006-03-14 21:04 tigital + + * src/Pixes/: pix_multitexture.cpp, pix_multitexture.h: [osx]: + removed HaveValidContext() checks, because we now have a master + context created via GemMan::initGem()...also initial code (not + fully working) intended to allow auto-texcoord generation and + setTexCoords() + +2006-03-14 20:59 tigital + + * src/Controls/: gemframebuffer.cpp, gemframebuffer.h: [osx]: + removed HaveValidContext() checks, because we now have a master + context created via GemMan::initGem()...also changed to + GL_NEAREST filtering to prevent fallback to software + renderer...and initial (not fully working) code to allow + colorspace request (ie. FLOAT, RGB, RGBA) + +2006-03-14 20:53 tigital + + * src/Manips/fragment_program.cpp: [osx]: removed + HaveValidContext() checks, because we now have a master context + created via GemMan::initGem() + +2006-03-14 20:49 tigital + + * src/Manips/: glsl_fragment.cpp, glsl_program.cpp, + glsl_vertex.cpp, vertex_program.cpp: [osx]: removed + HaveValidContext() checks, because we now have a master context + created via GemMan::initGem() + +2006-03-14 20:25 tigital + + * src/Geos/: imageVert.cpp, text2d.cpp, text3d.cpp, + textoutline.cpp, model.cpp: [osx]: removed HaveValidContext() + checks, because we now have a master context created via + GemMan::initGem() + +2006-03-14 20:17 tigital + + * src/: Base/GemGL.h, Base/GemMan.cpp, Base/GemWinCreateMac.cpp, + Base/TextBase.h, Nongeos/world_light.cpp: [osx]: removed + HaveValidContext() checks, because we now have a master context + created via GemMan::initGem() + +2006-03-14 19:23 tigital + + * help/imageVert.pd: corrected path to initial image + +2006-03-14 16:35 zmoelnig + + * src/: TODO.091, Manips/glsl_vertex.cpp: glsl_vertex and + glsl_fragment now respect pd's search path; updated TODO since + some help-patches are now done + +2006-03-14 16:32 zmoelnig + + * help/: fragment_program.pd, glsl_fragment.pd, glsl_program.pd, + glsl_vertex.pd, vertex_program.pd: updated and new help-patches + for shaders + +2006-03-14 15:25 tigital + + * src/Geos/: rubber.cpp, rubber.h: [size $1< works, and it's + centered; removed CLIP_* limitations, so now it's like a normal + gem object; some cleanup + +2006-03-14 15:20 tigital + + * src/Pixes/pix_freeframe.cpp: added setModified() to parmMess: + where is this really necessary (and not)? + +2006-03-14 15:19 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: link now + optionally takes a list of module-id's: [link 3 2( is the same as + [shader 3 2, link( + +2006-03-14 15:17 zmoelnig + + * src/Manips/: fragment_program.cpp, vertex_program.cpp: repsect + pd's search path when opening shaders; fewer openGL errors; + +2006-03-14 15:17 tigital + + * src/Base/: GemPBuffer.cpp, GemPBuffer.h: cleanup: removed unused + function bindTexture() + +2006-03-14 14:20 zmoelnig + + * src/Pixes/pix_freeframe.cpp: removed printout of plugin address; + made param# larger and end the param-string with \0 + +2006-03-14 14:18 zmoelnig + + * help/: fragment_program.pd, pix_freeframe.pd, vertex_program.pd: + added help-files for ARB shaders; made the [pix_freeframe] object + theoretically functional + +2006-03-14 13:33 zmoelnig + + * src/Geos/: GemSplash.cpp, GemSplash.h: empty(!still!) class for a + splash screen; this object is aliased "Gem", so that when people + create a [Gem] object, it doesn't fail + +2006-03-14 11:40 zmoelnig + + * src/: TODO.091, Pixes/pix_share_read.cpp: mark shm-segment for + deletion when object is destroyed; [TODO]: marked pix_share_* as + done + +2006-03-14 11:38 zmoelnig + + * help/: pix_share_read.pd, pix_share_write.pd: added help patches + +2006-03-14 11:14 zmoelnig + + * src/Pixes/: pix_share_read.cpp, pix_share_read.h, + pix_share_write.cpp, pix_share_write.h: made it work on linux + (even without crashes!); now you can also specify the 4th + argument (color) as symbolic name like "RGBA" or "YUV": + +2006-03-14 09:58 zmoelnig + + * src/TODO.091: updated status + +2006-03-14 09:53 zmoelnig + + * src/TODO.091: what we still have to-do to make the gem-0.91 + release + +2006-03-13 21:27 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h, GemWinCreate.h, + GemWinCreateXWin.cpp: added a handle for Destroy-Event on linux; + whenever the window is closed (by clicking on the "x") the + gem-context will be destroyed; this needs to be done outside of + the event-loop to avoid crashes + +2006-03-13 20:38 zmoelnig + + * src/Pixes/pix_convert.cpp: convert from cs other than RGBA + +2006-03-13 18:47 zmoelnig + + * src/Base/: GemWinCreate.h, GemWinCreateXWin.cpp: registered the + WM_DELETE_WINDOW protocol in order to disable the user-closing of + the Window: LATER think about closing the window, when the user + requests it. + +2006-03-13 18:20 zmoelnig + + * src/Base/GemPixImageSave.cpp: respect the upside-down flag when + in mem2jpegImage(): however on my machine the images written seem + to be correct anyhow... + +2006-03-13 17:56 zmoelnig + + * src/Pixes/pix_record.cpp: do not instantiate recordQT4L when + HAVE_LQT_ADD_VIDEO_TRACK is not defined + +2006-03-12 21:37 zmoelnig + + * abstractions/: hsv2rgb-help.pd, rgb2hsv-help.pd: added + help-patches for the hsv2rgb (and vice versa) abstraction: these + are just copies from Gem/help/ + +2006-03-12 21:34 zmoelnig + + * abstractions/: hsv2rgb.pd, rgb2hsv.pd: new abstractions in case + we get rid of MarkEx + +2006-03-12 20:33 zmoelnig + + * help/pqtorusknots.pd: added new help-file + +2006-03-12 20:07 zmoelnig + + * help/: pix_contrast.pd, pix_convert.pd, pix_deinterlace.pd, + pix_freeframe.pd, pix_mean_color.pd: new help-files + +2006-03-06 12:23 zmoelnig + + * src/Base/: GemWinCreateXWin.cpp, GemWinCreateNT.cpp: added + stencil-buffer for glx (tested) and wgl (NOT tested) + +2006-03-04 01:52 tigital + + * src/Base/GemWinCreateMac.cpp: added stencil buffer on creation + +2006-03-03 21:42 tigital + + * help/pix_texture.pd, src/Pixes/pix_texture.cpp, + src/Pixes/pix_texture.h: added env message; cleanups in + setUpTextureState() + +2006-03-02 15:55 zmoelnig + + * src/Pixes/pix_snap.cpp: set "upsidedown" to false: while this is + the default on most systems, it is not on OSX (where quicktime + makes flipped images); however pix_snap will always make + "upright" images, so we have to make sure this is set here; this + should close #1096651 at the sf-tracker (but i haven't tested it + on OSX) additionally use setCsizeByFormat(); additionally enable + the __APPLE__'ed code for all platforms (its nothing + apple-specific in there) + +2006-02-28 18:40 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: who need m_name + and m_length ? not me... + +2006-02-28 18:39 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: whoa! finally + found the bug that made Gem crash on re-loading a shader (or + loading another one...); lots of cleanups, like using C++ "new" + instead of "malloc" and more terse output and and ... + +2006-02-27 17:00 tigital + + * src/Manips/glsl_program.cpp: free arrays in getVariables() before + getting the new m_uniformCount + +2006-02-27 16:09 zmoelnig + + * src/Geos/: pqtorusknots.cpp, pqtorusknots.h: finally found the + type that made a) the object crash and b) it look weird; only + regenerate the vertices,... when needed (e.g. something has + changed) + +2006-02-27 15:25 zmoelnig + + * src/: configure, configure.ac: added better (probably working) + tests for ARB and NV extensions + +2006-02-27 15:09 zmoelnig + + * src/: configure, configure.ac: added a better (probably working) + test for "lqt_add_video_track" + +2006-02-27 14:36 zmoelnig + + * src/Geos/rubber.cpp: added missing curly bracket + +2006-02-27 14:35 zmoelnig + + * src/Geos/: pqtorusknots.cpp, pqtorusknots.h: initialized the + index-array to "0": this keeps us from crashing! + +2006-02-24 16:14 tigital + + * src/Geos/: rubber.cpp, rubber.h: added messages: "drag"(default + 0.5) and "spring" (default 0.3); some cleanup + +2006-02-23 18:34 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h: added support for + writing specified slots to disk (not very well tested) + +2006-02-23 18:33 zmoelnig + + * src/Base/GemPixImageSave.cpp: support for other colorspaces than + RGB when writing with imagemagick (YUV not yet supported; libtiff + and libjpeg not tested at all!) + +2006-02-23 16:33 zmoelnig + + * src/Pixes/: pix_snap2tex.cpp, recordQT4L.cpp, recordQT4L.h: only + compile if HAVE_LQT_ADD_VIDEO_TRACKS is defined (which should be + defined by configure) + +2006-02-23 16:29 zmoelnig + + * src/Controls/gemmouse.cpp: removed the inlet + +2006-02-23 16:29 zmoelnig + + * src/Base/CPPExtern.h: allow to set the class-flags by defining + GEM_CLASSFLAGS + +2006-02-21 15:01 zmoelnig + + * src/configure.ac: define HAVE_CONFIG_GENERIC_H if we don't have + another config*.h.in file + +2006-02-21 15:00 zmoelnig + + * src/Base/config.h: include configGeneric.h instead of os-specific + config-file if HAVE_CONFIG_GENERIC_H is defined (at the command + line) + +2006-02-21 14:27 zmoelnig + + * src/Base/configGeneric.h.in: a generic fallback (a la long we can + replace all the os-specific config.h.in files) + +2006-02-21 14:25 zmoelnig + + * src/: configure, configure.ac: added a test for + lqt_add_video_track() + +2006-02-21 14:01 zmoelnig + + * src/Base/configLinux.h.in: added HAVE_LQT_ADD_VIDEO_TRACK, since + older versions of libquicktime don't have this... + +2006-02-21 12:05 zmoelnig + + * src/Geos/: pqtorusknots.cpp, pqtorusknots.h: tried to make it + more stable; it is till crashing when: a) switching from + non-texture to texture (it works when the texture is present when + rendering is started); b) switching the lighting-state + +2006-02-21 12:02 zmoelnig + + * src/Base/glew.cpp: #ifdef'ed everything with USE_GLEW (currently + glew is not used, so try to avoid any interference) + +2006-02-17 06:22 tigital + + * src/Manips/glsl_fragment.cpp: removed an unused outlet + +2006-02-16 20:53 tigital + + * src/openGL/: GEMglTexGenfv.cpp, GEMglTexGenfv.h: useful for + automatic texture-coordinate generation + +2006-02-16 00:05 tigital + + * src/Pixes/pix_freeframe.cpp: [osx] one last hack to make it work + like the other platforms + +2006-02-15 21:54 zmoelnig + + * src/Pixes/pix_freeframe.cpp: oops! for testing i used __linux__ + instead of __APPLE__ and forgot to revert it... + +2006-02-15 21:34 zmoelnig + + * src/Pixes/pix_freeframe.cpp: some string magic to get the correct + name of the plugin within an osX-bundle + +2006-02-15 19:32 zmoelnig + + * src/openGL/GEMglBlendEquation.cpp: fixed use of + DONT_HAVE_GLBLENDEQUATION (it was used as HAVE_GLBLENDEQUATION) + +2006-02-13 22:49 zmoelnig + + * src/Pixes/pix_fiducialtrack.cpp: removed the 2nd inlet (why was + it there at all?) + +2006-02-13 17:58 tigital + + * help/pix_fiducialtrack.pd: corrected all.trees path to work from + help + +2006-02-10 16:20 zmoelnig + + * Makefile: use MAKECMDGOALS when calling the Makefile in src/ + +2006-02-10 14:32 zmoelnig + + * src/Pixes/: pix_contrast.cpp, pix_contrast.h: added inlets for + contrast and saturation + +2006-02-10 14:26 zmoelnig + + * src/Pixes/: pix_contrast.cpp, pix_deinterlace.cpp, + pix_deinterlace.h: added Grayscale processing avoid processing in + [pix_contrast] if both m_contrast and m_saturate are 1.f (in + greyscale ignore m_saturate) + +2006-02-09 01:32 tigital + + * src/Pixes/pix_freeframe.cpp: [osx] new loader code that works + with freeframe 1.0 SDK; note that the plugin will be looked for + in the same directory as the patch, and currently you must append + ".frf" to the end of the plugin's name + +2006-02-08 23:39 tigital + + * src/Base/GemPixUtil.cpp: cleaned up + imageStruct::setCsizeByFormat() so that it no longer does + "default" switch before hitting the various case's + +2006-02-08 23:27 cclepper + + * src/Pixes/: pix_deinterlace.h, pix_deinterlace.cpp: Added RGBA + version and tested on Windows. + +2006-02-08 23:26 cclepper + + * src/Pixes/: pix_contrast.cpp, pix_contrast.h: Added RGBA version + and tested on Windows. Works except for negative contrasrt and + saturarion values. + +2006-02-07 17:16 zmoelnig + + * src/Pixes/: pix_contrast.cpp, pix_contrast.h, + pix_deinterlace.cpp: renamed processYUV_Altivec() to + processYUVAltivec() so it gets automatically called by + GemPixObj's render(); put initializing of class-variables into + the constructor-header + +2006-02-07 04:34 cclepper + + * src/Pixes/pix_contrast.h: added #ifdef __VEC__ + +2006-02-07 04:30 cclepper + + * src/Pixes/pix_deinterlace.cpp: added #ifdef __VEC__ + +2006-02-06 22:46 cclepper + + * src/Pixes/: pix_contrast.h, pix_contrast.cpp, pix_deinterlace.h, + pix_deinterlace.cpp: initial YUV version with Altivec + +2006-02-06 18:20 cclepper + + * src/Pixes/: pix_recordQT.h, pix_recordQT.cpp: brings the old + pix_record up to date + +2006-02-06 15:14 zmoelnig + + * src/Pixes/recordQT.cpp: implemented the setCodec(int) as a no-op + +2006-02-06 14:41 zmoelnig + + * src/Base/TextBase.h: better indentation to see what is included + when + +2006-02-06 11:15 zmoelnig + + * src/Pixes/: pix_recordQT.cpp, pix_recordQT.h: this is the + original pix_record, now renamed to pix_recordQT while we have + the two concurrent objects, how should we make this compatible? + create an abstraction?? make hacks like in [pix_filmNT]??? + +2006-02-06 10:58 zmoelnig + + * src/Pixes/: recordQT.cpp, recordQT.h: at least made it compile on + os-x + +2006-02-05 20:23 zmoelnig + + * src/Pixes/pix_record.cpp: made "record"-message work again + +2006-02-05 20:22 zmoelnig + + * src/Pixes/recordQT4L.cpp: now it produces something... + +2006-02-05 19:51 zmoelnig + + * src/Pixes/: recordQT4L.cpp, recordQT4L.h: updated to use lqt-api + instead of old quicktime4linux api. although it somehow produces + just noise right now (but hey - it did work 10 minutes ago) + +2006-02-05 19:49 zmoelnig + + * src/Pixes/recordQT.h: removed the dummy implementation of + putFrame(): it is pure virtual in record.cpp and should not be + filled with dummies + +2006-02-04 19:16 tigital + + * ChangeLog: update + +2006-02-04 13:47 zmoelnig + + * src/Base/config.h: define HAVE_QUICKTIME for __APPLE__ (later + think about using autoconf for this) + +2006-02-04 13:44 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added convertTo() and + convertFrom() functions to the imageStruct-class for generic + cs-conversion. + +2006-02-03 22:53 zmoelnig + + * src/Pixes/: pix_record.cpp, pix_record.h: pix_record which is + independent of the used API (like pix_filmNEW,...) + +2006-02-03 22:52 zmoelnig + + * src/Pixes/recordQT.cpp: blind fixes to match record.h + +2006-02-03 22:40 zmoelnig + + * src/Pixes/: record.cpp, record.h, recordQT.cpp, recordQT.h, + recordQT4L.cpp, recordQT4L.h: implementation classes for + pix-record APIs. so far the recordQT4L (quicktime-for-linux) is + tested, but not totally stable the recordQT (Apple's QuickTime + API) has been copy'n'pasted from the original pix_record.cpp code + - i am pretty sure i introduced some problems: at least the + codec-querying and (more important) setting has certainly been + broken. + +2006-02-03 16:33 tigital + + * src/Base/GemMan.cpp: [osx]: shutup gcc warning in initGem() + +2006-02-01 19:38 zmoelnig + + * src/Pixes/: pix_vpaint.cpp, pix_vpaint.h: replaced printf() by + error() (it's more pdish and doesn't throw an error) + +2006-02-01 19:37 zmoelnig + + * src/Base/GemPBuffer.cpp: at least it compiles here on linux... + +2006-02-01 19:21 zmoelnig + + * src/Controls/gemframebuffer.cpp: probably a new-line at EOF + +2006-02-01 19:21 zmoelnig + + * src/Geos/: pqtorusknots.cpp, pqtorusknots.h: cleaned up code a + bit (so i can read it :-)) should perform a bit faster as well + fixed a crash on my machine added type message + + still very crashy i _think_ there is a bug (most likely: a memory + leak) in here + +2006-02-01 17:53 tigital + + * src/Base/GemPBuffer.cpp: forgot header change to other platforms: + this'll be cleaned and put in the correct spot (ie. the top of + the file) sometime + +2006-02-01 16:43 tigital + + * src/Geos/: pqtorusknots.cpp, pqtorusknots.h: initial commit: + novel mathematical structure + +2006-02-01 16:42 tigital + + * src/Pixes/: pix_vpaint.cpp, pix_vpaint.h: initial commit: takes + an image and creates a "voronoi region" painting out of + it...works on OSX, but relies on GemPBuffer code, so other + platforms can use this to test that code... + +2006-02-01 16:39 tigital + + * src/Base/: GemPBuffer.cpp, GemPBuffer.h: initial commit: works + on OSX (still needs some serious cleanup!), but untested on other + platforms: code is there, but is it really equivalently + functional? + +2006-02-01 16:37 tigital + + * src/Manips/glsl_program.cpp: added check for a loaded program to + the paramMess code; prevents crashing when sending parameters to + the object but no program is actually loaded! + +2006-02-01 16:36 tigital + + * src/Manips/glsl_fragment.cpp: error code reporting cleanup + +2006-02-01 16:34 tigital + + * src/Controls/gemwin.cpp: [OSX] changed NULL to 0 to shutup gcc + +2006-02-01 16:33 tigital + + * src/Base/GemMan.h: added header for glReportError(); [OSX] added + "masterContext" + +2006-02-01 16:31 tigital + + * src/Controls/gemframebuffer.cpp: cleanup; added setModified(); + +2006-02-01 16:04 zmoelnig + + * src/Pixes/pix_image.cpp: changed "#define unix" to "#define + __unix__" + +2006-02-01 16:03 zmoelnig + + * src/Pixes/pix_sig2pix.h: changed "#define unix" to "#define + __unix__" removed unneccessary headers from inclusion + +2006-02-01 15:59 zmoelnig + + * src/Base/: GemMan.cpp, GemWinCreate.h, GemWinCreateXWin.cpp: + changed "#define unix" to "#define __unix__" moved the check for + glx-support to GemWinCreateXWin.h + +2006-02-01 15:58 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX] added "masterContext", which + gets rid of need for HaveValidContext()...needs non-jamie testing + ;-) + +2006-02-01 15:53 tigital + + * src/Base/GemMan.cpp: cleanups; added TODO questions; [OSX] added + "masterContext", which gets rid of need for + HaveValidContext()...needs non-jamie testing ;-) + +2006-02-01 14:24 zmoelnig + + * src/Base/GemMan.cpp: only create constContext when its not + already created + +2006-02-01 14:23 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: applied patch from cesare to avoid + crashes on closing the window + +2006-01-30 14:12 zmoelnig + + * src/Base/: GemPixUtil.h, GemPixUtil.cpp: added constructor for + pixBlock-class (which properly initalizes newfilm and newimage to + "false") moved constructor/destructor of imageStruct and pixBlock + from header into the cpp-files to avoid unneccessary + recompilation on changes) + +2006-01-26 15:47 zmoelnig + + * src/: README.glew, importGLEW.sh: made a script (which will + hopefully hardly ever be needed) to import glew mention it in the + README.glew + +2006-01-26 15:07 zmoelnig + + * src/: README.glew, Base/glew.cpp, Base/glew.h, Base/glxew.h, + Base/wglew.h: added glew-files (+ a readme how i got them) + +2006-01-23 12:08 zmoelnig + + * examples/06.particle/: 01.simple.pd, 02.fountain.pd, 03.orbit.pd, + 04.combo.pd, 05.twoSrc.pd, 06.target.pd, 07.render.pd, + 08.info.pd: changed [part_velsphere] to [part_velocity sphere] + +2006-01-23 12:07 zmoelnig + + * src/Base/configNT.h: define DONT_HAVE_GLBLENDQUATION + + i think, this file should be used only for M$VC; LATER we can put + #pragma's in here to enable linking with special libraries based + on the configuration (or should we rather do it in the files that + need these libraries??) + +2006-01-23 12:05 zmoelnig + + * src/openGL/GEMglBlendEquation.cpp: use a DONT_HAVE_GLBLENDQUATION + rather than __WIN32__ to determine whether this objects needs to + be disabled + +2006-01-22 22:43 zmoelnig + + * debian/control: added alternative dependencies for magick++6 and + avifile-0.7 + +2006-01-22 22:41 zmoelnig + + * src/gem.dsp: added newly added files + +2006-01-22 22:40 zmoelnig + + * src/: Controls/gemwin.h, Pixes/pix_share_read.cpp, + Pixes/pix_share_read.h, Pixes/pix_share_write.cpp, + Pixes/pix_share_write.h: minor changes (line.breaks) + +2006-01-22 22:37 zmoelnig + + * src/Pixes/pix_fiducialtrack.cpp: on w32 we have to include + to be able to use "close(int)" + +2006-01-22 22:32 zmoelnig + + * src/Pixes/libfidtrack_treeidmap.cpp: fixed string-template issues + with vc6 + +2006-01-22 22:29 zmoelnig + + * src/Pixes/libfidtrack_fidtrackX.cpp: changed 0.5 to 0.5f to make + floats instead of doubles (amd thus reduce warnings about + conversion) + +2006-01-22 22:27 zmoelnig + + * src/Pixes/pix_multitexture.cpp: disabled if GL_TEXTURE0_ARB is + undefined (another candidate for GLEW) + +2006-01-22 22:26 zmoelnig + + * src/Pixes/pix_hit.h: removed definition of DEBUG=0 since it is + not needed anyhow + +2006-01-22 22:25 zmoelnig + + * src/openGL/GEMglBlendEquation.cpp: turn glBlendEquation OFF on + w32 (stupid restriction, but faster than finding anything more + sophisticated) + +2006-01-22 22:23 zmoelnig + + * src/Manips/vertex_program.cpp: only set glParameterEnvArg if + vertexprograms are supported by the headers + +2006-01-22 22:17 zmoelnig + + * src/Base/GemExportDef.h: disable more warnings (here: + switch-statement without case (only default); this is possible is + all cases are turned off by #ifdefs) + + NOTE: these pragmas should be within __MSC_VER_ instead of + __WIN32__ + +2006-01-18 13:10 zmoelnig + + * src/Particles/part_sink.cpp, src/Particles/part_sink.h, + examples/06.particle/09.sink.pd, help/part_sink.pd: found this + lying around on my harddisk + +2006-01-18 12:22 zmoelnig + + * src/Geos/circle.h: made circle::NUM_PTS a define rather than a + const static variable + +2006-01-18 12:13 zmoelnig + + * src/Geos/: circle.cpp, tube.h: removed unused variables made + circle::NUM_PTS a define rather than a const static variable + +2006-01-18 11:54 zmoelnig + + * src/: configure, configure.ac: set a variable when an + apple-framework is found use it in the status-report (so + apple-users don't get confused about no QuickTime even if the + framework is installed) in "configure" the removal of + "local"/"locale" is also applied + +2006-01-18 11:52 zmoelnig + + * src/: acinclude.m4, aclocal.m4: fixed typo "locale" should read + "local"; however, since the tests are not expanded into + functions, this does not work so i removed the "locale" entirely + and replaced it by a pseudo-localized variable (appending stuff + derived from the arguments) + +2006-01-18 11:24 zmoelnig + + * src/Pixes/pix_filmDarwin.cpp: properly ifdef the usage of + "kDVCPROHD720pCodecType" + +2006-01-18 11:18 zmoelnig + + * src/Pixes/filmQT.h: declare getFPS() (inherited from film.h) + +2006-01-18 11:15 zmoelnig + + * src/Pixes/pix_videoDarwin.cpp: include for open() + +2006-01-18 11:02 zmoelnig + + * src/Manips/glsl_fragment.cpp: disable more code, if + GL_ARB_shader_objects is not defined (mostly cosmetic) + +2006-01-18 11:00 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h, glsl_vertex.cpp, + glsl_vertex.h: disable most of the code if + "GL_ARB_shader_objects" is not defined + +2006-01-18 10:13 zmoelnig + + * src/openGL/: GEMglUseProgramObjectARB.cpp, + GEMglUseProgramObjectARB.h: avoid using m_program if + "GL_ARB_shader_objects" is not defined + +2006-01-17 12:01 zmoelnig + + * src/Base/GemGL.h: prevent ARB-GLSL + +2005-12-27 20:03 tigital + + * help/spot_light.pd: initial helpfile + +2005-12-15 18:45 zmoelnig + + * src/Pixes/: pix_hit.cpp, pix_hit.h: removed loading/saving + removed "point" area-type changed (float) to (unsigned char) + where possible (at least where it was obvious to do) + +2005-12-15 14:09 zmoelnig + + * debian/: changelog, control, copyright, files, rules: updated a + bit so we can build a debian-package + +2005-12-15 13:17 zmoelnig + + * src/Pixes/: pix_hit.cpp, pix_hit.h: added davide's hit-object + +2005-12-15 11:54 zmoelnig + + * src/Pixes/: video.cpp, videoV4L.cpp: initialized more variables + moved initialization (from body of constructor) into + initialization-block of constructor + +2005-12-15 01:43 tigital + + * src/Manips/glsl_program.cpp: clean up in render loop + +2005-12-15 00:19 cclepper + + * src/Pixes/pix_record.h: works on windows. sorta. only a few + changes needed from the mac code. + +2005-12-15 00:15 cclepper + + * src/Pixes/pix_record.cpp: works on windows. sorta. only a few + changes needed from the mac code. + +2005-12-14 16:53 tigital + + * src/Manips/: vertex_program.cpp, vertex_program.h: string buffer + is now member variable; more detailed reporting when program is + outside hardware limits + +2005-12-14 14:34 zmoelnig + + * examples/data/all.trees: TreeIdMap for reacTable*'s fiducials + +2005-12-14 14:29 zmoelnig + + * src/Makefile.subdir: dont build depend-files when doing "make + clean" or "make distclean" + +2005-12-14 14:29 zmoelnig + + * src/Makefile: don't try to generate configure, Make.config and + the like when doing a "make clean" or "make distclean" + +2005-12-14 14:28 zmoelnig + + * src/Make.include: newline at end of file... + +2005-12-14 14:26 zmoelnig + + * src/Particles/part_orbitpoint.h: fixed + header-inclusion-prevention-defines (ye, my mother-tongue is + German) + +2005-12-14 14:24 zmoelnig + + * GEM.LICENSE.TERMS: included Ross and Martin for the reacTIVision + system replaced "@" by "[AT]" + +2005-12-14 14:15 zmoelnig + + * help/: pix_fiducialtrack.pd, pix_threshold_bernsen.pd: + help-patches for the fiducial-tracker (and the binarizing + thresholder) + +2005-12-14 14:14 zmoelnig + + * src/Pixes/: libfidtrack_fidtrackX.cpp, libfidtrack_fidtrackX.h, + libfidtrack_segment.cpp, libfidtrack_segment.h, + libfidtrack_treeidmap.cpp, libfidtrack_treeidmap.h, + pix_fiducialtrack.cpp, pix_fiducialtrack.h: fiducial-tracking as + used in reacTIVision thanks to martin kaltenbrunner and ross + bencina (and the mtg@upf) for releasing their code under (L)GPL + +2005-12-14 14:13 zmoelnig + + * src/Pixes/: pix_threshold_bernsen.cpp, pix_threshold_bernsen.h: + binarizing adaptive tiled thresholder + +2005-12-14 14:07 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: better check + whether switching to another driver succeeds + +2005-12-10 20:45 tigital + + * src/Base/: GemGLUtil.cpp, GemGLUtil.h: added glReportError() for + helping debug + +2005-12-10 19:40 zmoelnig + + * src/Base/: GemGL.h, GemPixUtil.h: moved GLdefine's from + GemPixUtil to GemGL + +2005-12-10 17:01 tigital + + * src/Nongeos/spot_light.cpp: corrected spotlight direction + initialization; placed limits on light parameters (as supported + by GL) + +2005-12-10 01:20 tigital + + * src/Geos/sphere.cpp: removed spurious glEnd() called in + createSphere: it was causing a glError... + +2005-12-09 23:52 cclepper + + * src/Manips/: vertex_program.h, vertex_program.cpp: added + parameter message + +2005-12-09 23:49 cclepper + + * src/Manips/: fragment_program.cpp, fragment_program.h: added + parameter message + +2005-12-07 17:40 cclepper + + * src/Pixes/filmQT.cpp: fixed QT crashing on Windows, but the fix + introduces a small memory leak when loading new movies. Also, + removed a redundant memcpy() in getFrame. + +2005-12-07 17:17 tigital + + * src/Pixes/: pix_snap2tex.cpp, pix_snap2tex.h: - added mode & + repeat messages (like [pix_texture], same defaults) - added + outlet for texture info: ID, width, height, type + +2005-12-06 07:40 tigital + + * src/Controls/: gemframebuffer.cpp, gemframebuffer.h: initial + commit: - allows offscreen rendering on a per [gemhead] basis - + defaults to 256x256, but can be set with [dimen x y< - float RGB + only, atm - right outlet outputs list: texID, width, height, type + - type can be switched with [mode 0/1< (ie. TEXTURE_2D or + TEXTURE_RECTANGLE) + +2005-12-06 06:56 tigital + + * src/openGL/: GEMglUseProgramObjectARB.h, + GEMglUseProgramObjectARB.cpp: renamed inlet for some unknown + reason + +2005-12-06 05:01 tigital + + * src/Manips/glsl_vertex.cpp: don't need to enable/disable + shader_arb; added check and better clean up for re-loaded shaders + +2005-12-04 23:45 tigital + + * src/Manips/: glsl_program.cpp, glsl_program.h: added outlet for + programID + +2005-12-04 17:15 tigital + + * src/openGL/: GEMglUseProgramObjectARB.cpp, + GEMglUseProgramObjectARB.h: useful glWrapper which allows one to + use a glsl_program that was linked in an earlier chain in a later + chain; but don't forget to frame it's usage with an ending call + with value zero, or the program affects all later chains + +2005-12-04 02:17 tigital + + * src/Manips/glsl_program.cpp: individual shader objects are now + responsible for cleaning up after themselves; also, made + initialized length=0 + +2005-12-04 02:13 tigital + + * src/Manips/glsl_vertex.cpp: object is now responsible for + cleaning up after itself; also discovered that we don't need to + glEnable the *_SHADER_ARB's + +2005-11-30 07:55 tigital + + * src/Manips/: glsl_program.cpp, glsl_program.h: auto-magic uniform + variable discovery working; shaderMess() fixes; lotsa cleanup in + general (& stuff) + +2005-11-30 01:12 tigital + + * src/Manips/: glsl_vertex.cpp, glsl_vertex.h: clean-up, & better + initialization + +2005-11-30 00:55 tigital + + * src/Manips/glsl_program.cpp: corrected shaderMess behavior; added + OSX check for hardware/software execution + +2005-11-29 05:52 tigital + + * src/Pixes/pix_videoDarwin.cpp: miscellaneous fixes of warnings, + misspellings, and debug messages + +2005-11-29 00:29 cclepper + + * src/Pixes/: pix_videoDarwin.h, pix_videoDarwin.cpp: added + SequenceGrabber recording + +2005-11-27 15:30 zmoelnig + + * src/Pixes/pix_image.cpp: thread fixes: + better initializing + + more freeing + filenames given as argument are now opened via + thread too + +2005-11-27 11:24 zmoelnig + + * src/Base/GemPixImageLoad.cpp: reduced verbosity a bit made rest + of error messages a bit more findable ("error: GemImageLoad" + instead of just "erro: GEM") + +2005-11-26 22:17 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: added dynamic + methods for uniform parameters + +2005-11-26 20:13 cclepper + + * src/Pixes/pix_filmDarwin.h: Added the first check for HD format + clips to deal with their trickster frame sizes. Also, a fix for + sound continuing after rendering stops. + +2005-11-26 17:19 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: use a #define for + defining the max number of shaders fixed some typos and minor + bugs + +2005-11-26 16:36 zmoelnig + + * src/Pixes/pix_image.cpp: on creating the child-thread wait until + it has set the m_thread_running (so we can use that in + openMess()) + +2005-11-26 14:12 zmoelnig + + * src/Pixes/pix_image.cpp: reduced verbosity + +2005-11-26 13:48 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: hmm: define + "t_GLshaderObj" to whatever type the shaderobj should be; made it + compile on linux (and not crash) + +2005-11-26 13:45 zmoelnig + + * src/Manips/glsl_vertex.cpp: include stdlib (for malloc, free) + replace printf() by post() + +2005-11-26 06:08 cclepper + + * src/Pixes/pix_filmDarwin.cpp: Added the first check for HD format + clips to deal with their trickster frame sizes. Also, a fix for + sound continuing after rendering stops. + +2005-11-26 01:50 tigital + + * src/openGL/: GEMglUniform1fARB.cpp, GEMglUniform1fARB.h: initial + wrapper support for GLSL support (ARB based): - there should be a + whole host of these, but right now I'm only up to writing the + one, for input of one indexed float ;-) + +2005-11-25 23:56 tigital + + * src/Manips/: glsl_fragment.cpp, glsl_fragment.h, + glsl_program.cpp, glsl_program.h, glsl_vertex.cpp, glsl_vertex.h: + initial GLSL support (ARB based): - load individual shaders via + glsl_vertex or glsl_fragment - combine multiple shader's right + output into a [shader $1 $2...< and send into [glsl_program] - + send [link< to [glsl_program] to actually link the objects: this + was done because we don't want to re-link objects every + render-timeslice... - each object accepts a [print< to give + info, , and [glsl_program] will also report linked program's + uniform variables, names, indices... - uniform variable indices + can be used with [GEMglUniform...] to change variables (but maybe + there should be more auto-discovery in [glsl_program]?) - + object's will also report a shader's compile-time error log (if + any) to console (not pd's tk console): need to figure out how to + parse infolog into post()-friendly format... + +2005-11-23 14:08 zmoelnig + + * src/Base/: configDarwin.h.in, configLinux.h.in: added check for + GLsizeiptrARB + +2005-11-23 14:07 zmoelnig + + * src/: configure, configure.ac: die at the end of configure if no + openGL has been found check for typedef of GLsizeiptrARB + +2005-11-21 15:31 zmoelnig + + * src/Pixes/: pix_image.cpp, pix_image.h: threaded image loading + +2005-11-15 15:24 zmoelnig + + * help/: curve3d.pd, pix_buffer.pd: updated help-files + +2005-11-15 15:22 zmoelnig + + * examples/04.pix/25.buffer.pd: show how to load an image into the + buffer + +2005-11-15 15:21 zmoelnig + + * src/openGL/: GEMglBlendEquation.cpp, GEMglBlendEquation.h, + GEMglClipPlane.cpp, GEMglClipPlane.h: added some more wrappers + (thanks to cyrille) + +2005-11-10 15:50 zmoelnig + + * src/Pixes/: video.cpp, videoV4L.cpp: initialize m_devicename to + NULL in order to not produce random crashes. fixed printf() + security-hole + +2005-11-09 04:08 tigital + + * src/Pixes/pix_filmDarwin.cpp: cleaned up headers, initialization; + also added code to pad rowbytes for dimensions not multitples of + 16 or 32 (helps GL_STORAGE_SHARED_APPLE) + +2005-11-09 00:01 cclepper + + * src/Pixes/pix_filmDarwin.cpp: added a little hack to bang when + film reaches the end in auto mode + +2005-10-31 17:04 tigital + + * ChangeLog: update + +2005-10-28 10:59 zmoelnig + + * src/Pixes/: pix_threshold.cpp, pix_threshold.h: use proper + inheritance for the altivec function + +2005-10-28 00:13 tigital + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added + imageStruct.fromGray( short*) version, so now we can import + luminance images from pdp2gem... + +2005-10-27 23:30 cclepper + + * src/Pixes/: pix_threshold.cpp, pix_threshold.h: added Altivec YUV + function + +2005-10-26 15:54 zmoelnig + + * examples/04.pix/23.gravity.pd: fixed path and case of images to + load + +2005-10-25 22:37 cclepper + + * src/Pixes/pix_coordinate.cpp: commented out lines in postrender + which removes memory leak in [separator] + +2005-10-25 12:01 zmoelnig + + * src/Pixes/pix_multitexture.cpp: throw an exception when no + texture-units are defined at startup time (prevents + object-creation) enforce 2 arguments in the texUnit-message + +2005-10-25 11:54 zmoelnig + + * src/Pixes/pix_multitexture.cpp: bugfix: added A_NULL as + terminating argument to the texUnit-callback + +2005-10-22 22:50 tigital + + * src/openGL/GEMglIsEnabled.cpp: GL_VERSION_1_1 check only (there's + no GL_VERSION_1_0_ on osx!) + +2005-10-21 14:49 zmoelnig + + * src/Pixes/: pix_filmNEW.cpp, pix_movieNEW.cpp: improved threaded + movie-player: use select() instead of usleep() (should be more + portable) when the grabThread returns no frame (NULL), a "bang" + is emitted at render-time. the user gets a chance to immediately + react on that and reset the frame# to something valid. when + threaded, this will force the changed frame to be read in the + main-thread (luckily the grabthread is locked by the mutex) + +2005-10-21 10:55 zmoelnig + + * src/configure: changes in configure.ac + +2005-10-21 10:55 zmoelnig + + * src/: configure.ac, Base/configLinux.h.in, Pixes/filmFFMPEG.cpp: + check whether ffmpeg's (AVStream)->codec is of type + "AVCodecContext" or "*AVCodecContext" + +2005-10-21 10:03 zmoelnig + + * src/Gnu/: Makefile.clean, Makefile.in, Makefile.subdir, + README.build, README.txt, WHATSNEW, acinclude.m4, aclocal.m4, + config.guess, config.sub, configure.in, install-sh, makeauxlibs, + makesource, missing, mkinstalldirs, undocumented_objects: removed + contents of src/Gnu (since people keep building Gem from there) + +2005-10-20 18:03 zmoelnig + + * src/Base/configLinux.h.in: check for posix-threads removed + HAVE_SIMD things (as we should rather use the __MMX__,... that + are autodefined by the compiler) + +2005-10-20 18:02 zmoelnig + + * src/: configure, configure.ac: check for posixthreads (as in pd) + +2005-10-20 15:41 zmoelnig + + * src/Pixes/: pix_filmNEW.cpp, pix_filmNEW.h, pix_movieNEW.cpp: + (optional) threaded reading of movies + +2005-10-20 15:38 zmoelnig + + * src/Pixes/: pix_multitexture.cpp, pix_share_write.cpp, + pix_share_write.h: shut up compiler warnings; explicit casts from + t_float to GLint + +2005-10-20 12:03 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: added method for + "device" with symbolic device-names + +2005-10-20 11:59 zmoelnig + + * src/Pixes/pix_movieNEW.cpp: 2 lines of comment... + +2005-10-20 11:53 zmoelnig + + * GEM.README: fixed docu-bug that led people to try to compile Gem + from src/Gnu instead of src/ + +2005-10-19 14:48 tigital + + * src/Pixes/pix_multitexture.h: initial commit: - accepts a + creation arg to set # of texture units to deal with, or it + defaults to the maximum # on the card - [texUnit 1 $2< assigns to + texture Unit 1 the texID input via $2 - [mode 0/1< switches + between TEXTURE_RECTANGLE and TEXTURE_2D + +2005-10-19 06:17 tigital + + * src/Pixes/pix_multitexture.cpp: initial commit: - accepts a + creation arg to set # of texture units to deal with, or it + defaults to the maximum # on the card - [texUnit 1 $2< assigns to + texture Unit 1 the texID input via $2 - [mode 0/1< switches + between TEXTURE_RECTANGLE and TEXTURE_2D + +2005-10-19 01:59 tigital + + * src/Base/GemGLUtil.cpp: more GLdefine's for multitexture and + combiners... + +2005-10-14 09:54 zmoelnig + + * src/Controls/gemwin.h: disabled warnings on __WIN32__ + +2005-10-08 18:24 zmoelnig + + * src/Particles/part_vector.h: wow! this file has been unused for + quite a long time now; since i cannot find any reference to it + anywhere (except in the 1.1.1.1 or so revision of papi.h) i + delete it. + +2005-10-07 19:03 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_film.h: removed the disabling of + the entire code when FILM_NEW is defined (oh this is really ugly) + +2005-10-07 19:02 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: enabled the weird hack i made for a + current CVS snapshot of ffmpeg, since the debian/sid package now + uses the new API + +2005-10-07 18:53 zmoelnig + + * src/: Makefile, Makefile.subdir: remove "-f" (less errors if + files are already removed) + +2005-10-07 18:52 zmoelnig + + * src/gem.dsp: updated w32 compile environment + +2005-10-07 18:51 zmoelnig + + * src/Pixes/filmAVI.cpp: fixed typo + +2005-10-07 18:50 zmoelnig + + * src/Pixes/: pix_filmNT.cpp, pix_filmNT.h: only cimpileif we don't + want FILM_NEW (i got an error when compiling in the vfw.h file + and i didn't want to fix it in a deprecated file); LATER remove + these files + +2005-10-07 18:49 zmoelnig + + * src/Pixes/: pix_share_read.cpp, pix_share_read.h, + pix_share_write.cpp, pix_share_write.h: no shared memory (via + shm) on w32; disabled on that platform + +2005-10-07 18:47 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h, GemWinCreate.h, + TextBase.h: defined pragmas to make compiler a bit less verbose + +2005-10-07 18:47 zmoelnig + + * src/Base/GemMath.h: hacked together a version of drand48(); how + comes drand48() does not exist on w32 even though these files are + in here for years ? (LATER) + +2005-10-07 18:44 zmoelnig + + * src/Base/: CPPExtern.h, GemGLUtil.cpp: defined pragmas (on w32) + to shut up compiler warnings (e.g. because of unknown pragmas) + +2005-10-07 18:43 zmoelnig + + * src/Manips/fragment_program.cpp: on w32 GL_ARB_fragment_program + mightbe defined even if there is no ARB-program support...(we + really should switch to glew) + +2005-10-07 18:42 zmoelnig + + * src/Particles/: partlib_actions.cpp, partlib_system.cpp: include + instead of even on w32 (to use the "new" + stdlib) + +2005-10-06 11:25 zmoelnig + + * src/Base/GemPixUtil.cpp: merged with SIMD: don't copy the + "datasize" with copy2imageStruct - as it should only be used + internally for pdata; (there is a captialized warning about + breaking things in the SIMD-branch log about this; however, i + don't believe that it is that dangerous) + +2005-10-05 18:35 zmoelnig + + * src/Pixes/: pix_2grey.h, pix_gain.cpp: fixed typo + +2005-10-05 18:22 zmoelnig + + * src/Pixes/: pix_gain.cpp, pix_gain.h, pix_invert.cpp, + pix_invert.h, pix_mask.cpp, pix_mask.h, pix_mix.cpp, pix_mix.h, + pix_motionblur.cpp, pix_motionblur.h, pix_movement.cpp, + pix_movement.h, pix_multiply.cpp, pix_multiply.h, pix_offset.cpp, + pix_offset.h, pix_rds.cpp, pix_subtract.cpp, pix_subtract.h, + pix_tIIR.cpp, pix_tIIR.h, pix_takealpha.h, pix_2grey.cpp, + pix_2grey.h, pix_add.cpp, pix_add.h, pix_background.cpp, + pix_background.h, pix_biquad.cpp, pix_biquad.h, pix_bitmask.cpp, + pix_bitmask.h, pix_chroma_key.cpp, pix_chroma_key.h, + pix_compare.cpp, pix_compare.h, pix_composite.cpp, + pix_composite.h, pix_diff.cpp, pix_diff.h: merged with + SIMD-branch + +2005-10-05 18:14 zmoelnig + + * src/Base/: GemFuncUtil.h, GemPixDualObj.cpp, GemPixDualObj.h, + GemPixObj.cpp, GemPixObj.h, GemSIMD.h: merged with SIMD + +2005-10-05 18:02 zmoelnig + + * src/Pixes/pix_halftone.cpp: merged in changes from SIMD-branch + +2005-10-05 17:42 zmoelnig + + * src/Base/configDarwin.h.in: updated + +2005-10-05 17:35 zmoelnig + + * src/configure: changes from configure.ac + +2005-10-05 17:22 zmoelnig + + * src/Makefile.subdir: remove depend-files when "clean" + +2005-10-05 17:14 zmoelnig + + * src/configure.ac: propery escaped test-string + +2005-10-05 16:45 zmoelnig + + * src/Make.config.in: use the CXX provided by configure + +2005-10-05 16:38 zmoelnig + + * src/configure.ac: use AC_CHECK_FUNC rather than AC_CHECK_LIB to + check for glBindProgram{NV,ARB} since on osX we don't have a + library libGL but rather use the OpenGL-framework + + NOTE: the test for glBindProgramNV fails to detect the + nvidia-extensions on osX why ? because you have to explicitely + request them by defining GL_NV_vertex_program before including + the glext.h file on osX on linux (mesaGL,...) it is different: + the extensions are only included, if GL_NV_vertex_program is NOT + already defined + +2005-10-05 16:14 zmoelnig + + * src/Base/GemFuncUtil.h: a compile on osX revealed that somewhere + MIN and MAX are defined as preprocessor directives; this stopped + compiling the inline functions with the same name; FIXED + +2005-10-03 22:19 cclepper + + * src/Pixes/: pix_share_read.cpp, pix_share_read.h: initial commit. + object for reading shared pixel memory between processes. + +2005-10-03 22:18 cclepper + + * src/Pixes/: pix_share_write.h, pix_share_write.cpp: initial + commit. object for creating shared pixel memory between + processes. + +2005-10-03 14:17 zmoelnig + + * src/Pixes/: video.cpp, video.h, videoDV4L.cpp, videoDV4L.h, + videoV4L.cpp, videoV4L.h, videoV4L2.cpp, videoV4L2.h: added + support for devicenames given as strings (like "/dev/video") + +2005-10-03 12:38 zmoelnig + + * src/Pixes/: pix_image.cpp, pix_image.h: removed the caching + mechanism; if you want to load a set of images and access from + RAM, use [pix_buffer] instead + +2005-10-02 18:41 zmoelnig + + * src/: Make.config.in, Makefile: made checking for changes in + Base/config`uname -s`.h.in a bit better + +2005-10-02 15:52 zmoelnig + + * src/Base/: GemMan.h, GemPixImageLoad.cpp, GemPixUtil.h, + GemState.cpp: moved inclusion of openGL-headers to Base/GemGL.h + +2005-10-02 15:49 zmoelnig + + * src/: Controls/gemwin.cpp, Geos/TexFont.h, Geos/model_loader.h, + Particles/partlib_opengl.cpp: moved inclusion of openGL-headers + to Base/GemGL.h + +2005-10-02 15:48 zmoelnig + + * src/Base/GemGL.h: removed boolean-hack for buggy nvidia-headers + (should get fixed upstream) + +2005-10-01 21:31 zmoelnig + + * src/Base/configLinux.h.in: checking for nvidia-extensions (can be + disabled with "--disable-NV") + +2005-10-01 21:30 zmoelnig + + * src/: Make.config.in, Makefile, configure, configure.ac: checking + for nvidia-extensions (can be disabled with "--disable-NV") added + the system-specific config-file to the dependencies to do a + ./configure + +2005-10-01 21:15 zmoelnig + + * src/Manips/: fragment_program.cpp, vertex_program.cpp: test for + definition of GL_{ARB,NV}_{vertex,fragment}_program before using + extensions. + +2005-10-01 21:14 zmoelnig + + * src/Manips/fragment_program.h: moved the openGL-magic into + Base/GemGL.h + +2005-10-01 21:13 zmoelnig + + * src/Base/: GemBase.h, GemGL.h: moved the inclusion of + openGL-headers and the openGL-magic into a separate file GemGL.h + (this should be included instead of the system-specific + openGL-header files) + +2005-09-30 21:25 zmoelnig + + * src/Manips/: fragment_program.cpp, fragment_program.h, + vertex_program.cpp, vertex_program.h: now we can give the + filename as argument and it gets loaded on startRendering() + reordered everything a bit (and made fragment_program a child of + vertex_program: there's loads of similar code) + +2005-09-28 06:29 cclepper + + * src/Pixes/pix_snap2tex.cpp: made sure glTexSubImage2D is called + instead of the power of two texturing + +2005-09-27 19:56 zmoelnig + + * examples/02.advanced/17.fragment_program.pd: a fragment-shader + demo that adds some b/w-noise... + +2005-09-27 19:55 zmoelnig + + * examples/data/random.fp: a fragment shader that produces noise... + +2005-09-27 19:04 zmoelnig + + * examples/02.advanced/16.vertex_program.pd: added vertex_program + demo + +2005-09-27 19:04 zmoelnig + + * examples/data/toon.vp: added toon-shader for the vertex_program + demo + +2005-09-27 19:02 zmoelnig + + * examples/data/64shade.tif: added texture for the vertex_program + demo + +2005-09-27 18:34 zmoelnig + + * examples/04.video/: 03.movement_detection.pd, 04.videoRTX.pd: + removed the "64 64" arguments to [pix_video] as this makes the + patches under windows unusable (pix_videoDS thinks the first + argument is the deviceID, not the dimension) + +2005-09-27 17:44 zmoelnig + + * src/Pixes/: pix_filmLinux.cpp, pix_filmLinux.h: leftovers from + pre pix_filmNEW aera. deleted because i don't (want to) maintain + this code any more + +2005-09-27 17:42 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_film.h, pix_filmYUV.cpp, + pix_filmYUV.h, pix_movie.cpp, pix_movie.h, pix_movieYUV.cpp, + pix_movieYUV.h: disable if FILM_NEW is defined in Base/config.h + (then pix_filmNEW and friends are used) + +2005-09-27 07:17 tigital + + * src/openGL/GEMglIsEnabled.cpp: added check for GL_VERSION_1_1, + which is the lowest GL_VERSION osx defines + +2005-09-27 07:12 tigital + + * src/Base/GemGLUtil.cpp: added define for + GL_TEXTURE_RECTANGLE_EXT, duh + +2005-09-26 19:47 zmoelnig + + * src/Pixes/: pix_filmFFMPEG.cpp, pix_filmFFMPEG.h: + [pix_filmFFMPEG] is covered by [pix_filmNEW]+filmFFMPEG + +2005-09-26 19:43 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: made it _compile_ against the current + CVS-version of ffmpeg (not really tested whether it works though) + you have to actually change an ifdef at the beginning of + filmFFMPEG.cpp in order to make it compatible with the CVS-ffmpeg + (haven't found out yet, how to do this in a more generic way + (apart from hacking configure again) btw, configure would need a + lot of tweaking to recognize a current ffmpeg (and link against + all the needed libraries) ffmpeg sucks + +2005-09-22 19:41 zmoelnig + + * src/Base/TextBase.cpp: added fix to be able to display floats as + numbers again (instead of "float") + +2005-09-22 10:32 zmoelnig + + * src/Base/: TextBase.cpp, TextBase.h: added moocows changes (+ + linebreaking) fixed the bug that prevented TextBase.cpp to build + if you were not using FTGL (gltt or no-font) + +2005-09-21 20:41 tigital + + * src/Base/GemPixImageSave.cpp: cleanup apple headers + +2005-09-21 20:37 tigital + + * src/Geos/scopeXYZ.h: reordering to shut up gcc4 warnings + +2005-09-21 19:45 tigital + + * src/Geos/text2d.h: #ifdef'ed GLTTPixmapFont *m_afont like in + text2d.cpp + +2005-09-21 16:56 zmoelnig + + * src/Base/TextBase.cpp: committed tim's fix to prevent escaping of + pd-special characters (like ",") + +2005-09-15 12:25 zmoelnig + + * src/Geos/: curve3d.cpp, curve3d.h: removed the pre-defined + maximum of control/grid-points: now we can have curve3d's of any + preecision + +2005-09-11 18:06 zmoelnig + + * src/Pixes/: film.cpp, film.h, filmAVIPLAY.cpp, filmFFMPEG.cpp, + filmMPEG3.cpp, filmQT4L.cpp, videoDV4L.cpp, pix_blur.cpp, + pix_buffer_read.cpp, pix_filmFFMPEG.cpp, pix_filmNEW.cpp, + pix_freeframe.cpp, pix_halftone.cpp, pix_mean_color.cpp, + pix_movement2.cpp, pix_multiblob.cpp: shut up compiler warnings: + the changes are mostly removal of unused variables, re-ordering + of initialization of member-variables, (un)signedness and proper + bracketing when doing comparisions + +2005-09-11 18:02 zmoelnig + + * src/: Base/GemGLUtil.cpp, Base/GemMan.cpp, Base/GemPixUtil.cpp, + Base/GemShape.cpp, Base/TextBase.cpp, openGL/GEMglNewList.cpp, + Geos/scopeXYZ.cpp, Geos/text2d.cpp, Geos/torus.cpp, + Geos/tube.cpp, Geos/tube.h: shut up compiler warnings: the + changes are mostly removal of unused variables, re-ordering of + initialization of member-variables and (un)signedness + +2005-09-11 12:29 zmoelnig + + * src/Base/: GemWinCreate.h, GemWinCreateXWin.cpp, + configLinux.h.in: enable fullscreen on X only if libXxf86vm is + present + +2005-09-11 12:25 zmoelnig + + * src/Controls/gemwin.cpp: removed a bit of verbosity + +2005-09-07 17:42 tigital + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: finally fixed + sequence grabber dialog, so now OSX users can select input + devices! + +2005-09-04 21:35 zmoelnig + + * src/: Base/TextBase.cpp, Base/TextBase.h, Geos/text2d.cpp, + Geos/text3d.cpp, Geos/text2d.h, Geos/text3d.h, + Geos/textextruded.cpp, Geos/textextruded.h, Geos/textoutline.cpp, + Geos/textoutline.h: added multiline-support (for FTGL) based on + georg holzmann's code however, multilines have to be broken into + lines outside of the [text]-objects; linebreaks are denoted with + "\n" (10) + +2005-09-04 20:27 zmoelnig + + * src/Pixes/: videoV4L2.cpp, videoV4L2.h: initial video4linux-2 + support; right now, it seems to be rather slow! a lot of + functionality is not implemented yet (like setting the channel) + + not yet for use! + +2005-09-04 20:21 zmoelnig + + * src/Makefile: GEM_OBJECTS are now a general {GEM_TARGETS}/*.o + rather than each object listed separately (some systems don't + support such a long list of arguments) + +2005-09-02 23:58 cclepper + + * src/Pixes/pix_record.cpp: added loop to match codecType and codec + value. makes pjpeg default work on any machine. + +2005-08-31 23:25 cclepper + + * src/Pixes/pix_movieDarwin.cpp: added check for m_haveMovie in + setRate to prevent crashing + +2005-08-30 18:27 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: a bit more verbosity on startup, so + people will no what to send to "driver" + +2005-08-29 04:26 tigital + + * src/Pixes/: pix_texture.cpp, pix_texture.h: added outlet to + output texture ID, which is useful for multitexturing and + ARB_programs... + +2005-08-27 22:35 zmoelnig + + * src/Pixes/pix_image.cpp: maybe a hack to fix the tiny memory leak + that i suspect to be in the cache LATER: really fix the cache (or + remove it entirely) + +2005-08-27 15:12 zmoelnig + + * src/Pixes/pix_buffer.cpp: free image-data when loading (after the + image has been copied into the buffer) + +2005-08-26 18:40 zmoelnig + + * src/: aclocal.m4, configure: "binaries" for the latest changes to + acinclude.m4 and configure.ac + +2005-08-26 18:39 zmoelnig + + * src/configure.ac: also make a check for package "lqt" (which is + libquicktime), since there might be an "lqt"-config installed. + +2005-08-26 18:37 zmoelnig + + * src/acinclude.m4: (hopefully) even better library checking: if + pkg-config cannot find , we try -config to get + the cflags and libs. + +2005-08-26 15:54 zmoelnig + + * src/configure.ac: test for libquicktime instead of quicktime + (there exits a pkg-config for libquicktime on debian) do not + automatically add "-lavcodec" when successfully testing for + avformat: either the pkg-config test succeeds or the user should + really provide PKG_FFMPEG_LIBS to get it right + +2005-08-26 15:51 zmoelnig + + * src/acinclude.m4: a bit better: if PKG__LIBS is defined + from outside but pkg-config fails, we do not test with + AC_CHECK_PKG but trust the user + +2005-08-26 15:50 zmoelnig + + * src/Pixes/: filmQT4L.h, pix_filmLinux.h: include + rather than the path may change and + should be reported by autoconf + +2005-08-26 14:31 zmoelnig + + * src/Pixes/: pix_freeframe.cpp, pix_freeframe.h: no freeframe + support if sizeof(void*)!=sizeof(unsigned int) + +2005-08-26 14:25 zmoelnig + + * src/: configure.ac, Base/configLinux.h.in: added checks for the + size of (void*) and (unsigned int) (on x86_64 they are not the + same (8 vs 4) and so casts won't work (needed for pix_freeframe) + +2005-08-26 14:22 zmoelnig + + * src/README.linux: some information on how to workaround to get + PIC-versions of certain libraries (ffmpeg, ftgl) + +2005-08-26 13:23 zmoelnig + + * src/Pixes/pix_buffer_read.h: forgot to remove update_pix_buffer() + remove m_buffer (since this is only used locally) + +2005-08-26 00:37 cclepper + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: added regular + and IIDC controls for video adjustment. tinkering with vdig + settings for capture rects. + +2005-08-26 00:35 cclepper + + * src/Pixes/: pix_record.cpp, pix_record.h: more cleaning. fixed + possible memory leak + +2005-08-26 00:34 cclepper + + * src/Manips/separator.cpp: fixed memory leak + +2005-08-25 18:55 zmoelnig + + * src/Pixes/pix_buffer_read.cpp: further performance improvements + (without crashes) + +2005-08-25 17:59 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: another attempt to get the fps from + ffmpeg (the different versions of this library with the same + version-number are driving me...) + +2005-08-25 11:18 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: there seem to be different versions of + ffmpeg-4.0.9 around: one (from CVS!) which takes an extra + flags-argument for av_seek_frame() and one that does not. so i + did an extra ifdef, whether the AV_SEEK_FLAGS are defined + +2005-08-24 15:20 zmoelnig + + * src/Pixes/: pix_buffer_read.cpp, pix_buffer_read.h: implemented + (similar to) georg's implementation (but made it less crash + prone) should be faster, but if the content of the pix_buffer + changes, this is not automatically reflected on pix_buffer_read's + outlet (you must retrigger the index) + +2005-08-24 14:34 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h: added "open"-message to + read images (no movies yet) + +2005-08-24 13:47 zmoelnig + + * src/Pixes/videoDV4L.cpp: verbosity now also states something + about where it comes from ("DV4L: closed" instead of "closed") + +2005-08-24 13:45 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: removed ifdef's; they should be + handled by inheritance + +2005-08-24 13:34 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: query the FPS and report it to the + info-outlet (now we have: "list + "; should we split it into separate messages with prepends + like "fps " ??) + +2005-08-24 13:29 zmoelnig + + * src/Pixes/: film.cpp, film.h, filmAVI.cpp, filmAVIPLAY.cpp, + filmFFMPEG.cpp, filmMPEG1.cpp, filmMPEG3.cpp, filmQT4L.cpp: added + a getFPS()-message to query the frames-per-second (as reported by + the decoding unit) + +2005-08-23 17:01 zmoelnig + + * src/Pixes/filmQT4L.cpp: compiler shutups + +2005-08-23 14:28 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: started to crash again and then stopped + (??); anyhow did some more initialization + +2005-08-22 19:06 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: added some comments on why which + decoding-library is placed where moved FFMPEG backwards (as it + fails more often than not and is not really stable) + +2005-08-22 18:43 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: even more bug-fixes + +2005-08-22 16:05 zmoelnig + + * src/Pixes/: filmFFMPEG.cpp, filmFFMPEG.h: bug-fix: now it is + possible to decode some movies (i don't think the code worked at + all before) more bug-fix: doesn't crash so easily anymore even + more bug-fix: allow seeking of frames when possible (but this is + rather seldom) + +2005-08-22 16:03 zmoelnig + + * src/Pixes/film.cpp: use initialization outside of constructor + +2005-08-19 21:17 zmoelnig + + * src/Vertex/: fragment_program.cpp, fragment_program.h, + vertex_program.cpp, vertex_program.h: these have moved to + src/Manips in HEAD + +2005-08-19 19:26 zmoelnig + + * src/Manips/fragment_program.cpp: fixed small type + +2005-08-19 17:52 zmoelnig + + * src/Base/GemBase.h: added [{fragment,vertex}_program] from the + vertex_array-branch. (if DONT_USE_ARB is set, neither fragment- + nor vertex-programs should be build) a bit of re-ordering of the + include-files taken from the vertex_array-branch: just in case we + ever need to include GL/gl.h in GemState.h, this would break all + the weird glext-stuff, because GL/gl.h would be included _before_ + we do our magic; now it should work + +2005-08-19 17:49 zmoelnig + + * src/Manips/: fragment_program.cpp, fragment_program.h, + vertex_program.cpp, vertex_program.h: added + [{fragmen,vertex}_program] from the vertex_array-branch. + +2005-08-19 16:18 zmoelnig + + * src/: Make.config.in, Make.include, Makefile, Makefile.subdir, + README.linux, TODO, acinclude.m4, aclocal.m4, config.guess, + config.sub, configure, configure.ac, gem.dsp, install-sh, + Base/GemMath.h, Base/GemSIMD.h, Base/GemVector.cpp, + Base/GemVector.h: added files from MAIN (20050819) + +2005-08-19 16:12 zmoelnig + + * src/Base/: GemBase.h, GemCache.cpp, GemMan.cpp, GemState.cpp, + GemState.h: merged with MAIN (20050819) + +2005-08-19 14:52 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h, GemShape.cpp, + configNT.h: updated to MAIN (20050819) + +2005-08-19 14:46 zmoelnig + + * src/Base/: CPPExtern.cpp, CPPExtern.h, GemExportDef.h, + GemFuncUtil.h, GemGLUtil.cpp, GemGLUtil.h, GemGluObj.cpp, + GemGluObj.h, GemMan.h, GemPathBase.cpp, GemPixImageLoad.cpp, + GemPixImageSave.cpp, GemWinCreate.h, GemWinCreateMac.cpp, + GemWinCreateNT.cpp, GemWinCreateXWin.cpp, Matrix.cpp, + TextBase.cpp, config.h, sgiimage.cpp: updated to MAIN (20050819) + +2005-08-19 14:32 zmoelnig + + * src/: Geos/circle.cpp, Geos/colorSquare.cpp, Geos/cube.cpp, + Geos/cuboid.cpp, Geos/cuboid.h, Geos/curve.cpp, Geos/curve3d.cpp, + Geos/cylinder.cpp, Geos/disk.cpp, Geos/model_loader.cpp, + Geos/model_loader.h, Geos/newWave.cpp, Geos/newWave.h, + Geos/polygon.cpp, Geos/primTri.cpp, Geos/rectangle.cpp, + Geos/ripple.cpp, Geos/ripple.h, Geos/rubber.cpp, Geos/rubber.h, + Geos/slideSquares.cpp, Geos/sphere.cpp, Geos/square.cpp, + Geos/teapot.cpp, Geos/text2d.cpp, Geos/textoutline.cpp, + Geos/triangle.cpp, Geos/tube.cpp, Geos/tube.h, Manips/camera.cpp, + Manips/camera.h, Manips/ortho.cpp, MarkEx/MarkExSetup.cpp, + MarkEx/abs.cpp, MarkEx/average.cpp, MarkEx/counter.cpp, + MarkEx/hsvrgb.cpp, MarkEx/m_control.cpp, MarkEx/multiselect.cpp, + MarkEx/randomF.cpp, MarkEx/reson.cpp, MarkEx/strcat.cpp, + MarkEx/tripleLine.cpp, MarkEx/vector.cpp, Nongeos/light.cpp, + Nongeos/light.h, Nongeos/world_light.cpp, Nongeos/world_light.h, + Particles/papi.h, Particles/part_vector.h, + Particles/partlib_actions.cpp, Particles/partlib_opengl.cpp, + Particles/partlib_system.cpp, Particles/partlib_vector.h, + Pixes/dv1394.h, Pixes/filmAVI.cpp, Pixes/filmAVI.h, + Pixes/filmAVIPLAY.cpp, Pixes/filmAVIPLAY.h, Pixes/filmFFMPEG.cpp, + Pixes/filmFFMPEG.h, Pixes/filmMPEG1.cpp, Pixes/filmMPEG3.cpp, + Pixes/filmQT.cpp, Pixes/filmQT.h, Pixes/filmQT4L.cpp, + Pixes/pix_buffer.cpp, Pixes/pix_buffer.h, + Pixes/pix_buffer_read.h, Pixes/pix_colorreduce.cpp, + Pixes/pix_colorreduce.h, Pixes/pix_convert.h, + Pixes/pix_coordinate.cpp, Pixes/pix_coordinate.h, + Pixes/pix_crop.cpp, Pixes/pix_film.cpp, Pixes/pix_film.h, + Pixes/pix_filmDarwin.cpp, Pixes/pix_filmFFMPEG.h, + Pixes/pix_filmNEW.cpp, Pixes/pix_filmNEW.h, Pixes/pix_filmNT.cpp, + Pixes/pix_filmQT.cpp, Pixes/pix_filmQT.h, Pixes/pix_halftone.cpp, + Pixes/pix_halftone.h, Pixes/pix_imageInPlace.cpp, + Pixes/pix_kaleidoscope.cpp, Pixes/pix_kaleidoscope.h, + Pixes/pix_movie.cpp, Pixes/pix_movie.h, + Pixes/pix_movieDarwin.cpp, Pixes/pix_movieDarwin.h, + Pixes/pix_movieYUV.cpp, Pixes/pix_movieYUV.h, + Pixes/pix_resize.cpp, Pixes/pix_resize.h, Pixes/pix_rgba.h, + Pixes/pix_rtx.cpp, Pixes/pix_sig2pix.cpp, Pixes/pix_sig2pix.h, + Pixes/pix_texture.cpp, Pixes/pix_video.cpp, Pixes/pix_video.h, + Pixes/pix_videoDS.cpp, Pixes/pix_videoDarwin.cpp, + Pixes/pix_videoDarwin.h, Pixes/pix_videoNEW.cpp, + Pixes/pix_videoNEW.h, Pixes/pix_videoNT.cpp, Pixes/pix_yuv.h, + Pixes/videoDV4L.cpp, Pixes/videoDV4L.h, Pixes/videoV4L.cpp, + Pixes/videoV4L.h: updated to MAIN (20050819) + +2005-08-19 14:28 zmoelnig + + * src/: openGL/GEMglAreTexturesResident.cpp, + openGL/GEMglAreTexturesResident.h, openGL/GEMglCallList.h, + openGL/GEMglGetString.cpp, + openGL/GEMglProgramEnvParameter4fvARB.cpp, openGL/GLdefine.cpp, + openGL/GLdefine.h, openGL/GEMglActiveTextureARB.cpp, + openGL/GEMglActiveTextureARB.h, openGL/GEMglBindProgramARB.cpp, + openGL/GEMglBindProgramARB.h, openGL/GEMglEndList.cpp, + openGL/GEMglEndList.h, openGL/GEMglGenProgramsARB.cpp, + openGL/GEMglGenProgramsARB.h, openGL/GEMglGetFloatv.cpp, + openGL/GEMglGetFloatv.h, openGL/GEMglLoadMatrixd.cpp, + openGL/GEMglLoadMatrixd.h, openGL/GEMglLoadMatrixf.cpp, + openGL/GEMglLoadMatrixf.h, openGL/GEMglLoadTransposeMatrixd.cpp, + openGL/GEMglLoadTransposeMatrixd.h, + openGL/GEMglLoadTransposeMatrixf.cpp, + openGL/GEMglLoadTransposeMatrixf.h, openGL/GEMglMultMatrixd.cpp, + openGL/GEMglMultMatrixd.h, openGL/GEMglMultMatrixf.cpp, + openGL/GEMglMultMatrixf.h, openGL/GEMglMultTransposeMatrixd.cpp, + openGL/GEMglMultTransposeMatrixd.h, + openGL/GEMglMultTransposeMatrixf.cpp, + openGL/GEMglMultTransposeMatrixf.h, + openGL/GEMglMultiTexCoord2fARB.cpp, + openGL/GEMglMultiTexCoord2fARB.h, openGL/GEMglNewList.cpp, + openGL/GEMglNewList.h, openGL/GEMglProgramEnvParameter4dARB.cpp, + openGL/GEMglProgramEnvParameter4dARB.h, + openGL/GEMglProgramLocalParameter4fvARB.cpp, + openGL/GEMglProgramLocalParameter4fvARB.h, + openGL/GEMglProgramStringARB.cpp, openGL/GEMglProgramStringARB.h, + openGL/GEMgluPerspective.cpp, openGL/GEMgluPerspective.h, + Controls/gemhead.cpp, Controls/gemwin.cpp, Controls/gemwin.h, + Controls/orbserial.cpp: updated to MAIN (20050819) + +2005-08-17 16:51 cclepper + + * src/Pixes/pix_filmDarwin.cpp: changed some of the file loading + code. should be faster to load a movie now. + +2005-08-17 16:49 cclepper + + * src/Pixes/pix_record.cpp: removed some debug lines + +2005-08-17 10:12 zmoelnig + + * Makefile: call the Makefile in src/ rather than src/Gnu + +2005-08-16 06:39 tigital + + * src/: Controls/gemwin.cpp, Controls/gemwin.h, Base/GemMan.cpp, + Base/GemMan.h: [OSX] added menubar message to [gemwin]: 1 = show + 0 = hide everything (full "kiosk" mode) -1 = hide menubar, but + autoShow with mouse at screen top - this is only effective when + gemwindow has "focus" + +2005-08-01 21:13 cclepper + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: device + selection works. started VDIG functions + +2005-08-01 21:12 cclepper + + * src/Pixes/: pix_record.cpp, pix_record.h: new frame count outlet + +2005-07-22 00:34 cclepper + + * src/Pixes/: pix_record.h, pix_record.cpp: added the basics for + message based compression settings. Fixed quite a few things + +2005-07-21 19:59 zmoelnig + + * src/Makefile: file Makefile was added on branch vertex_array on + 2005-08-19 14:18:07 +0000 + +2005-07-21 19:59 zmoelnig + + * src/Makefile: fixed the "clean" target + +2005-07-20 00:55 cclepper + + * src/Pixes/: pix_record.h, pix_record.cpp: added ifdef for + _APPLE__ + +2005-07-20 00:35 cclepper + + * src/Pixes/: pix_record.cpp, pix_record.h: initial commit + +2005-07-16 19:36 zmoelnig + + * src/: configure, configure.ac: do checking for ARB even if + specified explicitely (this also turns on the check if you don't + specify whether you want ARB or not) + +2005-07-16 19:36 zmoelnig + + * src/configure: file configure was added on branch vertex_array on + 2005-08-19 14:18:07 +0000 + +2005-07-16 19:36 zmoelnig + + * src/configure.ac: file configure.ac was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-15 15:29 zmoelnig + + * src/: acinclude.m4, aclocal.m4, configure, configure.ac: (changed + 2 files, committed 4...) a mechanism for finding files from + optional libraries (those that can be turned off with + "--without-BLA") "--with-BLA-includes=/bi/ba/bo" will add + "-I/bi/ba/bo" to the CXXFLAGS "--with-BLA-libs=/foo/bar" will add + "-L/foo/bar" to the LIBS if the support for this library is + turned OFF (--without-BLA), then these flags will do nothing. + the arguments need be paths (a check is performed whether the + given directory exists) however, they can also be relative paths! + +2005-07-15 15:29 zmoelnig + + * src/acinclude.m4: file acinclude.m4 was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-15 15:29 zmoelnig + + * src/aclocal.m4: file aclocal.m4 was added on branch vertex_array + on 2005-08-19 14:18:07 +0000 + +2005-07-15 12:11 zmoelnig + + * src/: acinclude.m4, aclocal.m4, configure, configure.ac: checking + for X-infrastructure on OS-X only if explicitely desired by the + user (with "--with-x"); by default it is turned off added alias + "--with-imagemagick" for "--with-ImageMagick" fixed BUG, that + prevented configure from checking for optional libraries: if the + checking for 1 library was turned off, all consectuive libraries + were automatically turned off too (i guess it was the same with + truning ON, but haven't tested) + +2005-07-14 22:45 zmoelnig + + * src/: configure, configure.ac: more quoting in configure.ac + checked in configure, so people don't have to go through the + hazzle of autoconf + +2005-07-14 22:38 zmoelnig + + * src/configure.ac: made the strip-test less verbose + +2005-07-07 15:03 zmoelnig + + * src/Pixes/pix_filmNT.cpp: use std::max() instead of max() as + suggested by T.Schulze to make it compile on windows with gcc; + hope this doesn't break M$VC-compilation btw: pix_filmNT should + NOT be used; use pix_filmNEW instead + +2005-07-07 13:37 zmoelnig + + * src/configure.ac: added "--with-pd" flag for the bundle-loader; + if neither this flag is given nor PD_BINARY is set, $(which pd) + is used (so the path pd should be in $PATH) + +2005-07-07 13:30 zmoelnig + + * src/: acinclude.m4, aclocal.m4: fixed GEM_CHECK_LDFLAGS: better + detection whether sucess or not fixed GEM_CHECK_FRAMEWORK: + "-framwork" is a linker flag instead of a compiler flag. adapted + changes to GEM_CHECK_LDFLAGS + + also included acinclude.m4, since this is really just a copy of + aclocal.m4 (with my automake) and adding this files removes a + dependency on automake + +2005-07-07 13:25 zmoelnig + + * src/Makefile.subdir: delete depen-files + +2005-07-07 13:25 zmoelnig + + * src/Makefile.subdir: file Makefile.subdir was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-07 13:24 zmoelnig + + * src/Makefile: use "-C"-flag to make instead of "cd" when + (dist)cleaning subdirectories + +2005-07-07 13:22 zmoelnig + + * src/Base/GemMath.h: file GemMath.h was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-07 13:22 zmoelnig + + * src/: Particles/partlib_actions.cpp, Controls/gemwin.cpp, + Particles/partlib_vector.h, Pixes/pix_halftone.h, + Base/GemFuncUtil.h, Base/GemMath.h: moved stuff from + GemLibs/darwinStuff/ into GemMath.h reflect this in the files + that included the old files + +2005-07-07 09:34 zmoelnig + + * src/Pixes/filmQT.cpp: moved variable declarations to the + beginning of the open()-function, so they are not crossed by + goto-jumps + +2005-07-07 09:28 zmoelnig + + * src/Pixes/pix_freeframe.cpp: removed call to + class_set_extern_dir() in __APPLE__ + +2005-07-04 20:05 zmoelnig + + * src/README.linux: copied from Gnu/README.build and added more + information + +2005-07-04 20:05 zmoelnig + + * src/README.linux: file README.linux was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-04 14:11 zmoelnig + + * src/Base/TextBase.cpp: set glNormal3f() before rendering, so + [text3d] becomes robust against changing the normal from outside + (e.g. like [textextruded]) is this is a bug in ftgl ? + +2005-07-04 14:10 zmoelnig + + * src/Pixes/FreeFrame.h: changed __apple__ to __APPLE__ + +2005-07-04 13:54 zmoelnig + + * src/Pixes/: filmAVI.cpp, filmAVIPLAY.cpp, filmFFMPEG.cpp, + filmMPEG1.cpp, filmMPEG3.cpp, filmQT.cpp, filmQT4L.cpp, + pix_filmNEW.cpp: more beautiful (?) output on failure... + +2005-07-04 13:17 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: use HAVE_VIDEO4LINUX rather than + __linux__ + +2005-07-04 13:16 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L.h: use HAVE_VIDEO4LINUX rather + than __linux__ commented out some verbosity + +2005-07-04 13:05 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: turn of debug mode + +2005-07-04 11:22 zmoelnig + + * src/Pixes/: pix_filmNEW.cpp, pix_filmNEW.h: you can now specify a + preferred library for decoding a file. if one is specified, it + is tried as the first lib. if it fails, all libs are tried in the + default order (read: the specified lib is tried twice: once as + the preferred lib, and once as part of all libs) + +2005-07-04 11:20 zmoelnig + + * src/Pixes/: filmAVI.cpp, filmAVIPLAY.cpp, filmMPEG1.cpp, + filmMPEG3.cpp, filmQT.cpp, filmQT4L.cpp: print " failed" + when not being able to open instead of " unsupported" + +2005-07-04 11:18 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: fixed codec initialization + +2005-07-04 10:43 zmoelnig + + * src/acinclude.m4: renamed GEM_WITH_TARGET to GEM_TARGET (and use + AC_ARG_ENABLE instead of AC_ARG_WITH) + +2005-07-04 10:42 zmoelnig + + * src/Makefile: Gem.${EXT} depends on subdirs + +2005-07-04 10:40 zmoelnig + + * src/configure.ac: added flag for videofilm-new removed "Base" + from the selectable modules + +2005-07-04 10:36 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added a function for + swapping Red and Blue that works in-place + +2005-07-04 10:35 zmoelnig + + * src/Base/configLinux.h.in: added comments added NEW_VIDEOFILM + +2005-07-03 21:03 zmoelnig + + * src/: Make.config.in, Makefile.subdir, configure.ac: added check + for "dos2unix" + +2005-07-03 21:03 zmoelnig + + * src/Make.config.in: file Make.config.in was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-03 20:53 zmoelnig + + * src/: Make.config.in, Makefile.subdir, configure.ac: use "-MM" + for "make depend" with gnu-preprocessors + +2005-07-03 20:42 zmoelnig + + * src/Make.include: file Make.include was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-03 20:42 zmoelnig + + * src/: Make.config.in, Make.include, Makefile, Makefile.subdir, + configure.ac: updated build-system after having a look at the + Gnu-make documentation what's better: SOURCES are generated on + the fly .cpp-files containing whitespaces are ignored + (rather than crashing the build.process) dependencies are + calculated on a per-file basis (rather than via Make.depend) + better subdirectory handling (not for "clean"ing though) + better check for "strip" (partly taken from wine) + +2005-06-29 17:44 zmoelnig + + * src/Pixes/pix_rtx.cpp: use size_t for datasize + +2005-06-29 16:45 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: use "size_t" for + dataSize instead of "int" or "long" or "unsigned char" ... + +2005-06-27 18:11 zmoelnig + + * src/configure.ac: fixed typo + +2005-06-26 20:03 zmoelnig + + * src/configure.ac: prettier results better handling of "strip" + +2005-06-26 19:38 zmoelnig + + * src/: Make.config.in, Makefile, configure.ac: use configure to + set the extension -"- to set reference-path -"- to set STRIP (on + real check though) + +2005-06-26 17:33 zmoelnig + + * src/: acinclude.m4, configure.ac: added checks for LDFLAGS + +2005-06-26 17:11 zmoelnig + + * src/Base/configLinux.h.in: HAVE_LIBAV{format,codec} is now + convered by HAVE_FFMPEG additionally we now have a + HAVE_VIDEO4LINUX + +2005-06-26 17:07 zmoelnig + + * src/: acinclude.m4, configure.ac: framework-checks and + cxxflags-checks + +2005-06-26 14:46 zmoelnig + + * src/Makefile: "configure"-target + +2005-06-26 14:39 zmoelnig + + * src/install-sh: file install-sh was added on branch vertex_array + on 2005-08-19 14:18:07 +0000 + +2005-06-26 14:39 zmoelnig + + * src/: acinclude.m4, configure.ac, install-sh: works better (still + not yet where we want to be) + +2005-06-25 18:49 zmoelnig + + * src/config.guess: file config.guess was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-06-25 18:49 zmoelnig + + * src/config.sub: file config.sub was added on branch vertex_array + on 2005-08-19 14:18:07 +0000 + +2005-06-25 18:49 zmoelnig + + * src/: Make.config.in, Makefile, Makefile.subdir, config.guess, + config.sub, configure.ac: first try of a new build-system based + on günters code, autoconf>2.57 and that gets rid of the + Gnu-directory + +2005-06-20 16:47 zmoelnig + + * help/scopeXYZ~.pd: updated documentation + +2005-06-20 16:47 zmoelnig + + * help/: pix_resize.pd, pix_video.pd: updated documentation (thanks + to georg holzmann) + +2005-06-20 16:41 zmoelnig + + * src/Base/GemPixUtil.cpp: fixed documentation + +2005-06-20 16:41 zmoelnig + + * src/openGL/GEMglMultiTexCoord2fARB.h: added newline to end of + file + +2005-06-20 16:41 zmoelnig + + * src/openGL/GEMglMultiTexCoord2fARB.h: file + GEMglMultiTexCoord2fARB.h was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-06-19 20:45 zmoelnig + + * src/: Base/CPPExtern.h, Base/GemBase.h, Base/GemExportDef.h, + Base/GemGluObj.h, Base/GemMan.cpp, Base/GemMan.h, + Base/GemPathBase.cpp, Base/GemPixImageLoad.cpp, + Base/GemPixImageSave.cpp, Base/GemPixUtil.cpp, Base/GemPixUtil.h, + Base/GemState.cpp, Base/GemWinCreate.h, Base/GemWinCreateMac.cpp, + Base/GemWinCreateNT.cpp, Base/TextBase.cpp, Base/config.h, + Base/sgiimage.cpp, Controls/gemwin.cpp, Controls/gemwin.h, + Controls/orbserial.cpp, Geos/model_loader.h, Manips/camera.h, + Manips/shearXY.cpp, Manips/shearXY.h, Manips/shearXZ.cpp, + Manips/shearXZ.h, Manips/shearYX.cpp, Manips/shearYX.h, + Manips/shearYZ.cpp, Manips/shearYZ.h, Manips/shearZX.cpp, + Manips/shearZX.h, Manips/shearZY.cpp, Manips/shearZY.h, + MarkEx/abs.cpp, MarkEx/average.cpp, MarkEx/counter.cpp, + MarkEx/hsvrgb.cpp, MarkEx/m_control.cpp, MarkEx/multiselect.cpp, + MarkEx/randomF.cpp, MarkEx/reson.cpp, MarkEx/strcat.cpp, + MarkEx/tripleLine.cpp, MarkEx/vector.cpp: replaced WIN32 (or NT) + (or _WINDOWS) (or...) by __WIN32__ + +2005-06-19 20:41 zmoelnig + + * src/Particles/: papi.h, part_vector.h, partlib_actions.cpp, + partlib_opengl.cpp, partlib_system.cpp, partlib_vector.h: + replaced WIN32 with __WIN32__ + +2005-06-19 20:38 zmoelnig + + * src/gem.dsp: unix2dos (m$vc does _not_ like unix-linebreaks in + the dsp-file) added newer files use __WIN32__ instead of other + windows-defines + +2005-06-19 20:36 zmoelnig + + * src/Base/configNT.h: added DONT_INCLUDE_GLEXT (i think this is + the default on most windows-compile-machines, and currently it + fails to work on my setting, when i have time to fix it, i will + re-enable glext on w32) + +2005-06-19 20:34 zmoelnig + + * src/Pixes/: filmAVI.cpp, filmAVI.h, filmAVIPLAY.h, filmQT.cpp, + filmQT.h, pix_buffer.h, pix_film.cpp, pix_filmNT.cpp, + pix_filmQT.h, pix_freeframe.cpp, pix_freeframe.h, + pix_kaleidoscope.h, pix_movie.cpp, pix_movie.h, + pix_movieDarwin.h, pix_movieYUV.cpp, pix_movieYUV.h, + pix_video.cpp, pix_videoDS.cpp, pix_videoNT.cpp: renamed defines + "NT", "WIN32" and "_WINDOWS" by "__WIN32__" + +2005-06-19 20:32 zmoelnig + + * src/openGL/GEMgluPerspective.cpp: file GEMgluPerspective.cpp was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-06-19 20:32 zmoelnig + + * src/openGL/GEMgluPerspective.h: file GEMgluPerspective.h was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-06-19 20:32 zmoelnig + + * src/openGL/: GEMgluPerspective.cpp, GEMgluPerspective.h: suddenly + m$vc didn't like variables "near" and "far", so i renamed them to + "m_near" and "m_far" + +2005-06-19 19:11 zmoelnig + + * src/Pixes/FreeFrame.h: ifdef'ed (re)definition of + WIN32_LEAN_AND_MEAN + +2005-06-19 19:10 zmoelnig + + * src/Pixes/pix_multiblob.cpp: fixed recursion-bug with distance() + +2005-06-19 18:58 zmoelnig + + * src/Base/GemGluObj.h: added re-definition of GLU_SILHOUETTE + _after_ including the openGL-headers + +2005-06-14 08:57 zmoelnig + + * src/Base/sgiimage.cpp: fixed a bug discovered (and fixed) by + matju, where image-files that opened but turned out to be a + non-sgi-image, where not closed again. + +2005-06-09 18:09 ggeiger + + * src/gem.dsp: Replaced "Programme" with PROGRAMFILES environment + variable for finding m_pd.h + +2005-06-09 17:35 ggeiger + + * GEM_INSTALL.bat: use ProgramFiles variable to detect path to pd + +2005-06-03 11:29 zmoelnig + + * src/Pixes/: pix_videoLinux.cpp, pix_videoLinux.h: on linux, we + are using pix_videoNEW instead of pix_videoLinux for ages, it's + time to remove it. hopefully we can do this for other platforms + sometime as well + +2005-06-03 11:20 zmoelnig + + * src/Base/: GemDag.cpp, GemDag.h: GemDAG has been obsoleted for + years, it's time to remove it. (probably something similar will + reappear once we have threaded rendering to multiple windows) + +2005-06-03 11:10 zmoelnig + + * src/Gnu/configure: removed: people should (well, now they "must") + run autoconf in order to generate their own configure-script + +2005-06-03 11:09 zmoelnig + + * src/Gnu/README.build: added a note that tells people to run + "autoconf" before "./configure" + +2005-06-03 10:57 zmoelnig + + * src/Controls/: gemwin.cpp, gemwin.h: colors can now be RGB or + (new:) RGBA + +2005-06-03 08:55 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: commented out XCloseDisplay() + which keeps Gem from freezing but is only a direty workaround + (memory-leak + X-server hates too many open displays) added a big + warning to not forget it.... + +2005-06-03 08:54 zmoelnig + + * src/Base/GemBase.h: HELPSYMBOL_BASE must be defined _before_ + including CPPExtern.h to have any effect + +2005-06-02 13:25 zmoelnig + + * src/Pixes/: pix_mean_color.cpp, pix_mean_color.h: added + YUV-support normalized output to 0..1 (instead of 0..255) always + output RGBA-values (even for grayscale and YUV; alpha defaults to + 1.0) + +2005-06-01 18:42 tigital + + * src/Pixes/: pix_convert.h, pix_resize.cpp, pix_rgba.h: [OSX] + OpenGL headers are now centrally located in Base/GemMan.h + +2005-06-01 18:40 tigital + + * src/Pixes/pix_yuv.h: corrected description + +2005-06-01 18:35 tigital + + * src/Pixes/: pix_movie.cpp, pix_movieDarwin.cpp, pix_movieYUV.cpp: + [OSX] OpenGL headers are in Base/GemMan.h + +2005-06-01 18:34 tigital + + * src/Pixes/pix_videoDarwin.cpp: [OSX] correct call to + dialogCallback, not dialogMess (shuts up gcc4.0 warning); small + header change + +2005-06-01 18:28 tigital + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: [NEW] added scale + variable for scale of halftone [OSX] compile-time check (via + AvailabilityMacros.h) for support of sinf() & friends in math.h + (now defined in >10.4.x) + +2005-06-01 17:57 tigital + + * src/Pixes/: pix_filmQT.cpp, pix_filmQT.h: [OSX] converted the + last of the MACOSX to __APPLE__ ifdef's? + +2005-06-01 17:48 tigital + + * src/Pixes/FreeFrame.h: coalesced #ifdef between linux & apple + (since they are the same typedefs) + +2005-06-01 17:46 tigital + + * src/Pixes/FreeFrame.h: [OSX] corrected #ifdef and added LPVOID + define + +2005-06-01 17:43 tigital + + * src/Particles/: partlib_actions.cpp, partlib_vector.h: [OSX] + compile-time check (via AvailabilityMacros.h) for support of + sinf() & friends in math.h (now defined in >10.4.x) + +2005-06-01 17:40 tigital + + * src/Manips/ortho.cpp: header includes now centralized in + Base/GemMan.h + +2005-06-01 17:38 tigital + + * src/Geos/: text2d.cpp, textoutline.cpp: [OSX] converted the last + of the MACOSX to __APPLE__ ifdef's? + +2005-06-01 17:36 tigital + + * src/Geos/sphere.cpp: more readable formatting + +2005-06-01 17:32 tigital + + * src/Controls/gemwin.cpp: [OSX] compile-time check (via + AvailabilityMacros.h) for support of sinf() & friends in math.h + (now defined in >10.4.x) + +2005-06-01 17:26 tigital + + * src/: Geos/square.cpp, Base/GemShape.cpp, Base/GemShape.h: + corrected spelling of SetVertex() + +2005-06-01 17:20 tigital + + * src/Base/GemMan.h: now includes all OpenGL/ headers for OSX + +2005-06-01 17:16 tigital + + * src/Base/GemPixUtil.cpp: switched from vec_unpack2sh() (which + apparently never existed, yet worked prior to 10.4.x!) to + vec_mergeh(); new #ifdef __TIMING__ for timing frame process of + altivec vs. scalar color conversions + +2005-06-01 17:08 tigital + + * src/Base/GemWinCreateXWin.cpp: added "#ifdef unix" so osx doesn't + try compiling it (at least until the future?) + +2005-06-01 17:06 tigital + + * src/Base/GemWinCreateMac.cpp: gcc4.0 fixes and miscellaneous + cleanups: AGL's swapinterval now set in BuildGLContext() + +2005-06-01 16:59 tigital + + * src/Base/configDarwin.h.in: needed for proper Darwin + configure-ing + +2005-06-01 16:56 tigital + + * src/Gnu/configure.in: added Darwin configure stuff + +2005-06-01 16:54 tigital + + * src/Gnu/Makefile.in: replaced ".pd_linux" with $(TARGET) so that + we can use this on more than one platform + +2005-05-30 21:54 zmoelnig + + * src/Gnu/configure.in: use "ffmpeg-config --plugin-libs" instead + of "ffmpeg-config --libs" this allows us to link on x86_64 + without problems + +2005-05-25 20:44 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_film.h, pix_video.cpp: looked at + the ugly #define-hacks and got some things right note: these + classes should vanish altogether on all platforms and be replaced + by the NEW-thingie. + +2005-05-23 17:03 zmoelnig + + * src/Gnu/: configure, configure.in: made libjpeg and libtiff + OPTIONAL libraries (which are used by default if available) so + platforms that dont have these libs (like OSX) don't fail to + configure any more + +2005-05-23 17:01 zmoelnig + + * src/Base/configNT.h: added HAVE_LIBJPEG and HAVE_LIBTIFF in order + to compile with image reading/writing support + +2005-05-23 16:58 zmoelnig + + * src/Base/: GemPixImageLoad.cpp, GemPixImageSave.cpp, + configLinux.h.in: made JPEG and TIFF reading/writing a + compile-option this removes the _hard_ dependency on libjpeg and + libtiff, which should make the configure easier on platforms that + don't need libjpeg/libtiff + +2005-05-23 14:11 zmoelnig + + * src/Gnu/: configure.in, configure: enforcing of the presence of + libtiff, libjpeg and libpng is only need on linux (btw, it + shouldn't be enforced here too!) + +2005-05-23 13:59 zmoelnig + + * src/: Base/config.h, Base/configLinux.h.in, Gnu/configure.in, + Pixes/filmFFMPEG.cpp, Pixes/filmFFMPEG.h, Pixes/pix_filmFFMPEG.h: + better detection for FFMPEG (now we also have autodetection; i + hope ffmpeg has stabilized the API enough, so this won't break + for some months) + +2005-05-23 13:56 zmoelnig + + * src/Gnu/Makefile.subdir: added preprocessor-flags CPPFLAGS to the + compiler-flags + +2005-05-23 11:29 zmoelnig + + * src/Gnu/configure.in: enforce X only on Linux (Darwin can do + without) + +2005-05-23 11:02 zmoelnig + + * src/Gnu/Makefile.subdir: on "distclean" remove ALL .o (and .obj) + files, even those that are not in Make.source + +2005-05-21 04:34 tigital + + * src/Gnu/makesource: corrected spelling + +2005-05-19 13:41 zmoelnig + + * src/Gnu/: acinclude.m4, aclocal.m4, configure: did better + quoting, this should fix the issues with autoconf>2.53 + +2005-05-17 16:00 zmoelnig + + * src/Gnu/configure.in: changed uname-flags "--machine" and + "--kernel-name" to "-m" and "-s" (which should work on osX too + +2005-05-17 02:24 tigital + + * src/Gnu/: config.guess, config.sub: updates for config system + that identify darwin 10.4 + +2005-05-13 21:48 zmoelnig + + * src/Pixes/pix_crop.cpp: [pix_crop] now straights images that are + upside down (this is: if you have the same pix-material as both + "normal" and "upsidedown", the same parameters to [pix_crop] will + now produce the same results this change has the same performance + as the old one, it just makes life easier + +2005-05-10 18:51 zmoelnig + + * src/Nongeos/: light.cpp, light.h, spot_light.cpp, spot_light.h, + world_light.cpp, world_light.h: added [spot_light] by + Pierre-Oliver Charlebois; did some changes to make it use the + world_light parent-class instead of reinventing the wheel. hope + this doesn't break anything with the original version + +2005-05-04 20:31 zmoelnig + + * src/Pixes/: pix_buffer.h, pix_buffer_read.cpp, + pix_buffer_write.cpp: fixed the "external" pix_buffer_class + +2005-05-04 15:22 zmoelnig + + * src/Base/CPPExtern.h: added a flag to declare the + pdclass-definition non-static (so we can findbyclass() from other + objects) + +2005-05-04 15:21 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h, pix_buffer_read.cpp, + pix_buffer_read.h, pix_buffer_write.cpp: finally made + [pix_buffer_read] and [pix_buffer_write] to be in their own + source-files added automatic playback and cyclic reading of + [pix_buffer_read] (based on an idea of Florian Grond & Lasse + Scherffig) + +2005-05-03 19:32 zmoelnig + + * src/Base/configLinux.h.in: entry for DONT_USE_ARB + +2005-05-03 19:31 zmoelnig + + * src/Gnu/configure.in: added runtime-checking for glBindProgramARB + the results are displayed in Base/configLinux.h rather than via + command-line args to the compiler + +2005-05-03 17:47 zmoelnig + + * src/Gnu/configure.in: added some verbose output at the end of + configuration, so the user will know what is going on + +2005-05-03 13:35 zmoelnig + + * src/Pixes/: pix_freeframe.cpp, pix_freeframe.h: on windows (and + maybe osX too?) the host-side interface looks a bit different + than on linux a couple of #define's should fix that. + + fixed an error on windows+osX that came from stupid copy'n'paste + from the pd-sources for dynamic loading + + the FreeFrame-specs said something about a "maximum" of 8 + parameters, which is exceeded by some plugins as i just noticed; + removed the clamping of numparams to 8 (don't know why it was + there in the first place) + + i hope this includes the changes needed to make it compile on osX + haven't tested these changes on windows yet, but after my + experiences i made yesterday when i booted into windows, it + _should_ work + +2005-04-27 11:26 zmoelnig + + * src/Pixes/: pix_coordinate.cpp, pix_coordinate.h: changed + behaviour for rectangle textures to be conformant to the + behaviour with non-rectangle textures:: "1,1" always denotes the + upper-right corner of the pixel-buffer, so the user need not care + what kind of texture they are using + +2005-04-27 11:24 zmoelnig + + * src/Pixes/pix_texture.cpp: set "state->texture" to "2", when + using rectangle textures don't overwrite "m_repeat" with + "GL_CLAMP" when doing rectangle-textures, as they will ignore + that flag anyhow + +2005-04-27 11:21 zmoelnig + + * src/Base/GemState.h: more advanced usage of the "texture": + 2==rectangle (so we can react on the specifics of + rectangle-textures in downstream objects) + +2005-04-26 05:34 tigital + + * src/Base/GemPixUtil.cpp: corrected yv12 to rgb on osx, yv12 to + rgba/bgra, and error reporting for copy2ImageStruct + +2005-04-26 03:58 tigital + + * src/Pixes/pix_movement2.h: changed boolean to bool, which is + osx-compilable and more in line with the rest of gem's codebase + +2005-04-25 19:01 zmoelnig + + * help/pix_movement2.pd: help-patch for [pix_movement2] + +2005-04-25 19:00 zmoelnig + + * src/Pixes/: pix_movement2.cpp, pix_movement2.h: another object + that tries to get the movement within an image-stream + +2005-04-24 23:59 cclepper + + * src/Pixes/pix_coordinate.cpp: added check for state->texture and + that actual coordinates exist in the render method + +2005-04-21 16:58 zmoelnig + + * src/Pixes/pix_freeframe.cpp: initial support for loading plugins + un windows and osX (still not tested) + +2005-04-21 14:05 zmoelnig + + * src/Gnu/configure.in: fixed... + +2005-04-21 13:46 zmoelnig + + * src/Gnu/configure.in: added an enable-flag for + --freg-struct-return (for FreeFrame-plugins) since i am not sure + what this will break it is disabled by default; if you want to + use the FreeFrame-plugins, the option is either to compile Gem + with this flag or to recompile the plugins without... + +2005-04-21 11:42 zmoelnig + + * src/Pixes/pix_freeframe.cpp: fixed bug that crashed pd/Gem when + an exception was thrown (wrong type...) fixed bug with a + parameter-offset of 1 + +2005-04-20 19:31 zmoelnig + + * src/Pixes/: FreeFrame.h, pix_freeframe.cpp, pix_freeframe.h, + pix_imageInPlace.cpp: initial support for FreeFrame-plugins + currently i have only tested this on linux + +2005-04-18 19:06 zmoelnig + + * src/Base/GemBase.h: usage of the "--disable-ARB" to disable + ARB-vertex-shaders + +2005-04-18 19:02 zmoelnig + + * src/Gnu/: configure, configure.in: adding a "--disable-ARB" flag + for disabling the build of ARB-vertex-programs + +2005-04-18 17:59 zmoelnig + + * src/Gnu/: configure, configure.in: added feed-back when checking + for avifile (before, there was nothing indicating that libavifile + will be used if (and only if) it was found) + +2005-04-18 17:52 zmoelnig + + * src/Base/: GemPixImageLoad.cpp, GemPixImageSave.cpp, + configLinux.h.in: added support for ImageMagick++ (used here for + loading and saving images) + +2005-04-18 17:51 zmoelnig + + * src/Gnu/: acinclude.m4, aclocal.m4, configure, configure.in: + added support for ImageMagick (currently used for loading/writing + images) + +2005-04-18 16:08 zmoelnig + + * src/Geos/: circle.cpp, curve.cpp, curve3d.cpp, cylinder.cpp, + disk.cpp, newWave.cpp, ripple.cpp, rubber.cpp, sphere.cpp, + teapot.cpp, torus.cpp, tube.cpp: fixed a bug that crashed Gem + when using this object with [pix_imageInPlace]: the + texcoord-array was accessed without checking the size of it + first!! + +2005-04-18 15:17 zmoelnig + + * src/Gnu/: configure, configure.in: regrouped things even more + (put type-checks before library-checks) + +2005-04-18 14:52 zmoelnig + + * src/Gnu/: Makefile.in, Makefile.subdir, acinclude.m4, aclocal.m4, + configure, configure.in: cleaned up autoconf a bit + prelaminary + support for icc + grouped header/library search together + + FIRST search whether headers are present, THEN look for matching + libraries + hopefully fixed bug, where compile stopped when no + font-rendering-libs where installed + +2005-04-13 19:33 zmoelnig + + * src/Pixes/: filmQT.cpp, videoDV4L.cpp: a function that claims to + return an integer should return an integer + +2005-04-11 18:14 tigital + + * src/openGL/GEMglBindProgramARB.cpp: [stupid]correct name in + header + +2005-04-11 18:14 zmoelnig + + * src/openGL/GEMglBindProgramARB.cpp: file GEMglBindProgramARB.cpp + was added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-07 14:52 zmoelnig + + * examples/09.openGL/02.displayList.pd: an example for using + display-lists + +2005-04-07 13:06 zmoelnig + + * help/scopeXYZ~.pd: help for [scopeXYZ~] + +2005-04-06 21:02 zmoelnig + + * src/Geos/scopeXYZ.cpp: made [scopeXYZ~] work (although there is + still one single point left that sometimes occurs at 0/0/0) + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglGetFloatv.cpp: file GEMglGetFloatv.cpp was added + on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglGetFloatv.h: file GEMglGetFloatv.h was added on + branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglNewList.cpp: file GEMglNewList.cpp was added on + branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglNewList.h: file GEMglNewList.h was added on + branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-05 12:52 zmoelnig + + * src/openGL/: GEMglEndList.cpp, GEMglEndList.h, + GEMglGetFloatv.cpp, GEMglGetFloatv.h, GEMglNewList.cpp, + GEMglNewList.h: added wrapper for glEndList() and glNewList(): + this is cool as it allows to makeuser defined display-lists + (performance boost) + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglEndList.cpp: file GEMglEndList.cpp was added on + branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglEndList.h: file GEMglEndList.h was added on + branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-04 18:50 zmoelnig + + * help/pix_multiblob.pd: a help-patch + +2005-04-04 18:27 zmoelnig + + * abstractions/: pix_blobtracker-help.pd, pix_blobtracker.pd: + adapted to the longer feature-vectors of [pix_multiblob]; a first + help-patch + +2005-04-04 18:24 zmoelnig + + * src/Pixes/: pix_multiblob.cpp, pix_multiblob.h: output more + information (like minX/Y, weighted position,...) weighted + position produces more stable tracking + +2005-04-01 09:45 zmoelnig + + * src/Base/GemPixUtil.cpp: #ifdef'ed the altivec code properly, so + it will compile on other systems as well + +2005-04-01 03:26 tigital + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: initial altivec speedups + to: bgra to yuv; yv12 to yuv + +2005-03-31 18:25 zmoelnig + + * help/: colorSquare.pd, torus.pd, teapot.pd: updated documentation + a bit + +2005-03-31 18:07 zmoelnig + + * src/Base/GemGluObj.cpp: missed a "break" in a case-loop. + +2005-03-31 17:58 zmoelnig + + * src/Base/GemGluObj.cpp: use "GL_DEFAULT_GEM" instead of "-1" as + the default drawType (negative values are a bad idea for GLenum) + + (and fix the parsing of the drawstyle a big) + +2005-03-31 17:55 zmoelnig + + * src/Base/GemShape.cpp: use "GL_DEFAULT_GEM" instead of "-1" as + the default drawType (negative values are a bad idea for GLenum) + +2005-03-31 17:47 zmoelnig + + * abstractions/pix_blobtracker.pd: a blobtracker based on + [pix_multiblob] and some objects from "iemmatrix" + +2005-03-31 17:00 zmoelnig + + * src/Geos/: circle.cpp, colorSquare.cpp, cube.cpp, cuboid.cpp, + curve.cpp, curve3d.cpp, cylinder.cpp, disk.cpp, newWave.cpp, + polygon.cpp, primTri.cpp, rectangle.cpp, scopeXYZ.cpp, + slideSquares.cpp, sphere.cpp, square.cpp, teapot.cpp, torus.cpp, + triangle.cpp, tube.cpp: use "GL_DEFAULT_GEM" instead of "-1" as + the default drawType (negative values are a bad idea for GLenum) + +2005-03-31 16:58 zmoelnig + + * src/Base/GemBase.h: added a new drawType "GL_DEFAULT_GEM" (since + using "-1" was a bad idea for GLenum) + +2005-03-31 16:40 zmoelnig + + * src/Gnu/: configure, configure.in: changed LIBS="-Wl,-shared + -Wl,-export-dynamic $LIBS" to LIBS="-shared -Wl,-export-dynamic + $LIBS" this should fix the problem with FC3 + +2005-03-31 08:42 zmoelnig + + * src/Base/GemPixUtil.cpp: there are even better conversions (at + least you can control all YUV<->RGB conversion on a central + point) + +2005-03-30 22:02 zmoelnig + + * src/Pixes/: pix_multiblob.cpp, pix_multiblob.h: a detector for + multiple blobs (no tracking! as this should be done externally); + the output-data is in zexy/iemmatrix's "matrix" format; i am not + sure whether this is really good (as it makes libraries + interdependent and of course i favour my own libs) but it is much + more elegant than anything else i could think of + +2005-03-30 21:48 zmoelnig + + * src/Geos/: scopeXYZ.cpp, scopeXYZ.h, torus.cpp, torus.h: new + Geos: [scopeXYZ~] and [torus] + +2005-03-30 20:58 zmoelnig + + * src/: Base/GemPixUtil.h, Base/GemShape.cpp, Geos/circle.cpp, + Geos/colorSquare.cpp, Geos/cube.cpp, Geos/cuboid.cpp, + Geos/curve.cpp, Geos/curve3d.cpp, Geos/cylinder.cpp, + Geos/disk.cpp, Geos/newWave.cpp, Geos/polygon.cpp, + Geos/primTri.cpp, Geos/rectangle.cpp, Geos/ripple.cpp, + Geos/rubber.cpp, Geos/slideSquares.cpp, Geos/sphere.cpp, + Geos/square.cpp, Geos/teapot.cpp, Geos/triangle.cpp, + Geos/tube.cpp: added "default"-drawtype + +2005-03-22 21:41 zmoelnig + + * src/Base/GemPixUtil.cpp: changed RGB<->YUV conversion to be more + standards-compliant; clamped the results + +2005-03-22 03:48 tigital + + * src/openGL/: GEMglActiveTextureARB.cpp, GEMglActiveTextureARB.h, + GEMglMultiTexCoord2fARB.cpp, GEMglMultiTexCoord2fARB.h, + GEMgluPerspective.cpp, GEMgluPerspective.h: more OpenGL wrappers + I've had sitting on my drive + +2005-03-22 03:48 zmoelnig + + * src/openGL/GEMglActiveTextureARB.cpp: file + GEMglActiveTextureARB.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-03-22 03:48 zmoelnig + + * src/openGL/GEMglActiveTextureARB.h: file GEMglActiveTextureARB.h + was added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-03-22 03:48 zmoelnig + + * src/openGL/GEMglMultiTexCoord2fARB.cpp: file + GEMglMultiTexCoord2fARB.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-03-09 01:24 tigital + + * src/Base/GemMan.cpp: IOhannes: the gl headers and such are in + GemMan.h: why would you want to put them in GemMan.cpp? I'm a + big fan of including headers in, um, the header :-) Btw, the + "GL/ vs. OpenGL/" thing is due to apple's use of framework's... + +2005-03-07 16:33 zmoelnig + + * src/Base/GemPixUtil.h: use DONT_INCLUDE_GLEXT rather than the + INCLUDE_GLEXT (which is nowhere defined) + +2005-03-07 16:31 zmoelnig + + * src/Base/GemMan.cpp: properly include GL/glext.h (btw, wtfh are + apple's openGL-headers in openGL/ instead of GL/ ... nevermind) + +2005-03-07 10:19 zmoelnig + + * src/Base/CPPExtern.h: include to enable the use of real C++ + constructors + +2005-03-06 12:21 zmoelnig + + * src/MarkEx/: MarkExSetup.cpp, m_control.cpp: removed [change] (is + in pd for some times) + +2005-02-28 02:15 tigital + + * src/Base/GemPixUtil.h: - added support for YV12(short*) for + pdp2gem - added support for RGB/BGR to setCsizeByFormat - began + altivec support (non-functional atm) + +2005-02-28 01:05 tigital + + * src/Base/GemPixUtil.cpp: - added support for YV12(short*) for + pdp2gem - added support for RGB/BGR to setCsizeByFormat - began + altivec support (non-functional atm) + +2005-02-07 19:18 zmoelnig + + * src/openGL/: GEMglAreTexturesResident.cpp, + GEMglAreTexturesResident.h, GEMglCallList.h: cleaned up, and + removed crashes + +2005-02-07 16:56 zmoelnig + + * src/openGL/GEMglGetString.cpp: fixed bug that crashed pd when + NULL was returned by glGetString() + +2005-02-07 16:31 zmoelnig + + * src/Controls/: gemlist_info.cpp, gemlist_info.h: cleaned up a bit + +2005-02-07 16:07 zmoelnig + + * src/Pixes/: dv1394.h, videoDV4L.h: using own "dv1394.h", since + libdv4-dev has skipped this file + +2005-02-07 16:05 zmoelnig + + * src/Geos/: tube.cpp, tube.h: windoze does not like array-sizes + that are determined at runtime + +2005-02-07 14:59 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: catching errors that might get + thrown by glx + +2005-02-07 14:42 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: catching errors that might get + thrown by glx + +2005-02-07 14:21 zmoelnig + + * src/Manips/: camera.cpp, camera.h: use Base/GemVector instead of + own CVector3 + +2005-02-07 14:20 zmoelnig + + * src/Base/GemVector.h: file GemVector.h was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-02-07 14:20 zmoelnig + + * src/Base/: GemVector.cpp, GemVector.h: a class for 3D-vectors + (formerly found in Manips/camera) + +2005-02-07 14:20 zmoelnig + + * src/Base/GemVector.cpp: file GemVector.cpp was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-02-07 13:46 zmoelnig + + * src/Nongeos/setup.h: oh, it's here again... + +2005-02-07 13:45 zmoelnig + + * src/Pixes/: pix_dv.cpp, pix_dv.h, pix_dvLinux.cpp, pix_dvLinux.h: + [pix_dv] is covered by [pix_video] + +2005-02-07 13:43 zmoelnig + + * src/Gnu/README.build: updated a bit + +2005-02-07 13:04 zmoelnig + + * src/Base/GemBase.h: hopefully really fixed the including of + GL/glext.h: use DONT_INCLUDE_GLEXT instead of INCLUDE_GLEXT + additionally use GL_GLEXT_LEGACY, as this auto-includes glext.h + on some sytems (mesa) + +2005-02-07 13:02 zmoelnig + + * src/Base/configNT.h: use FILM__NEW instead of __FILM__NEW use + DONT_INCLUDE_GLEXT instead of INCLUDE_GLEXT + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglLoadTransposeMatrixf.cpp: file + GEMglLoadTransposeMatrixf.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglMultTransposeMatrixd.cpp: file + GEMglMultTransposeMatrixd.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglMultTransposeMatrixf.cpp: file + GEMglMultTransposeMatrixf.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglProgramEnvParameter4dARB.cpp: file + GEMglProgramEnvParameter4dARB.cpp was added on branch + vertex_array on 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglProgramLocalParameter4fvARB.cpp: file + GEMglProgramLocalParameter4fvARB.cpp was added on branch + vertex_array on 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglProgramStringARB.cpp: file + GEMglProgramStringARB.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglLoadTransposeMatrixd.cpp: file + GEMglLoadTransposeMatrixd.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/: GEMglLoadTransposeMatrixd.cpp, + GEMglLoadTransposeMatrixf.cpp, GEMglMultTransposeMatrixd.cpp, + GEMglMultTransposeMatrixf.cpp, GEMglProgramEnvParameter4dARB.cpp, + GEMglProgramEnvParameter4fvARB.cpp, + GEMglProgramLocalParameter4fvARB.cpp, GEMglProgramStringARB.cpp: + fixed defines: gl*TransposeMatrix() are available onle on + openGL>=1.3 (not >=1.1 as it was) gl*ARB() were used only, if + GL_ARB_vertex_program was un(!)defined... + +2005-01-31 21:26 tigital + + * src/Base/GemWinCreateMac.cpp: now functional on osx + +2005-01-31 18:50 tigital + + * GEM_darwin.pbproj/project.pbxproj: updated to my setup + +2005-01-14 09:54 zmoelnig + + * src/Gnu/configure.in: added the missing " to the NEW_VIDEOFILM + definition + +2005-01-14 09:53 zmoelnig + + * src/Gnu/makesource: ./configure does not call "makesource" but + includes it; thus the "$@" is not as expected an (empty) list of + directories for which we should generate Make.source but rather + "dummy sh"; now we check, whether the running script ($0) is + "*configure", and if so, we assume that the "passed" list is 0. + +2005-01-12 20:20 zmoelnig + + * src/Gnu/configure: oops again; forgot a " + +2005-01-12 19:12 zmoelnig + + * src/Gnu/configure: oops; should run again (note: this is just + rev1.27 with __NEW__ replaced by NEW_VIDEOFILM) + +2005-01-11 12:44 zmoelnig + + * src/: Gnu/configure, Gnu/configure.in, Pixes/pix_film.h, + Pixes/pix_filmNEW.h, Pixes/pix_video.h, Pixes/pix_videoNEW.h, + Base/config.h: who the f**k used "__NEW__" to enable/disable + different film/movie-objects ??? preprocessor-defines starting + with "__" are system only!! i have renamed __NEW__ to + NEW_VIDEOFILM __FILM __NEW to FILM_NEW and __VIDEO__NEW to + VIDEO_NEW + +2005-01-11 11:22 zmoelnig + + * src/Base/: CPPExtern.cpp, CPPExtern.h: added Exceptions: whenever + we don't want an object to be created because of + boundary-conditions (e.g. wrong arguments) we can now throw a + GemException("errorstring") which is caught by the setup-routine + and prevents the object from being created; + + fixed the m_objectname thing: now even the constructor of a + GemObject will now the name that was used to create it (as far as + we can tell) + +2004-12-26 18:43 tigital + + * src/Geos/model_loader.h: oops! shouldn't include + "Base/GemFuncUtil.h" after #ifdef __cplusplus extern "C" {...} + +2004-12-24 10:54 timblech + + * src/Pixes/pix_mean_color.cpp: fixed bug + +2004-12-22 19:03 tigital + + * src/Nongeos/world_light.h: - header consolidation: #includes + should go in headers (or in this case, already are)! + +2004-12-22 18:49 tigital + + * src/Pixes/: pix_colorreduce.cpp, pix_colorreduce.h: ppc only: + sqrt speed up via assembly instruction (at least 2x) - header + consolidation: #includes should go in headers! - correctly + converts YUV to RGBA and back, if needed + +2004-12-22 18:48 tigital + + * src/Manips/: camera.cpp, camera.h: ppc only: sqrt speed up via + assembly instruction (at least 2x) - header consolidation: + #includes should go in headers! - now fills/uses Gem's + gluLookAt() + +2004-12-22 18:44 tigital + + * src/: Particles/part_vector.h, Particles/partlib_actions.cpp, + Particles/partlib_vector.h, Base/GemFuncUtil.h, Base/Matrix.cpp, + Geos/model_loader.cpp, Geos/model_loader.h, Geos/newWave.cpp, + Geos/newWave.h, Geos/ripple.cpp, Geos/ripple.h, Geos/rubber.cpp, + Geos/rubber.h, Pixes/pix_kaleidoscope.cpp, + Pixes/pix_kaleidoscope.h, Pixes/pix_sig2pix.cpp, + Pixes/pix_sig2pix.h, Controls/gemlist_info.cpp, + Controls/gemlist_info.h: ppc only: sqrt speed up via assembly + instruction (at least 2x) - header consolidation: #includes + should go in headers! + +2004-12-22 18:00 tigital + + * src/Base/GemBase.h: rearrange/coalesce headers, added glu.h + +2004-12-22 17:58 tigital + + * src/Base/CPPExtern.h: add functions for 5 arguments + +2004-12-15 15:02 zmoelnig + + * src/Pixes/pix_gain.cpp: fixed to compile under win/lin again + +2004-12-15 07:21 tigital + + * src/Pixes/pix_videoDarwin.h: cleanup dialogMess + +2004-12-15 07:17 tigital + + * src/Pixes/pix_videoDarwin.cpp: fixed crash bug when changing + dimen or colorspace while rendering: some header cleanup, too + +2004-12-14 01:49 tigital + + * src/Controls/gemwindow.cpp: minimal OSX-only changes for + multiple_window branch, now it compiles :-) + +2004-12-14 01:40 tigital + + * src/Base/GemWinCreateMac.cpp: OSX-only changes for + multiple_window branch: added topmostGemWindow() (but don't know + what it's really supposed to do: this is just a copy of the + XWindows function), and added window bounds output to mouse + messages + +2004-12-14 01:30 tigital + + * src/Base/GemOutput.cpp: OSX-only changes: now it compiles + +2004-12-14 01:02 tigital + + * GEM_darwin.pbproj/project.pbxproj: update to my setup + +2004-12-14 00:41 tigital + + * src/Pixes/pix_gain.cpp: typo correction in altivec function name + +2004-12-14 00:25 tigital + + * src/Pixes/pix_2grey.h: type correction in altivec function name + +2004-12-13 18:51 zmoelnig + + * src/Output/gemextwin.cpp: added check whether there is a valid + display before destroying it... + +2004-12-13 14:22 zmoelnig + + * examples/04.video/01.VideoPaint.pd: fixed the patch; how comes it + is broken at all ? a check ensured, that even the example-patch + from gem-0.70 has the same weirdnesses - so the problem seems to + be a change in the pd-fileformat rather than the patch itself; + this should work now (although i am not sure, whether it really + does what it is supposed to do...) wow, what a long changelog.... + +2004-12-07 16:05 timblech + + * src/Pixes/pix_mean_color.cpp: simplified outlet + +2004-12-07 14:24 timblech + + * src/Pixes/: pix_mean_color.cpp, pix_mean_color.h: initial checkin + pix_mean_color + +2004-12-07 12:52 zmoelnig + + * src/Controls/gemwindow.cpp: output events through the outlet + instead of dedicated objects ([gemmouse]) + +2004-12-07 12:50 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: changed the EventMask to get + focus-events + +2004-12-07 12:48 zmoelnig + + * src/Controls/gemwindow.h: added infoMess() to output information + +2004-12-07 12:47 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: added an outlet for events + (and some comments) + +2004-12-06 14:58 zmoelnig + + * src/Vertex/vertex_draw.cpp: oops, last checkin had VBO + disabled... + +2004-12-06 14:43 zmoelnig + + * src/Vertex/: vertex_VBR.cpp, vertex_VBR.h: vector-based rotation + on a per-vertex basis; hard to handle though... + +2004-12-06 14:41 zmoelnig + + * src/Vertex/: vertex_tabread.cpp, vertex_tabread.h, + vertex_tabwrite.cpp, vertex_tabwrite.h: objects to read/write + data from/to tables; data is interleaved (e.g. vertex-data is + stored in the table as [x1 y1 z1 w1 x2 y2 z2 w2 ...]; probably + there is a need for [vertex_tabread4] that uses 4 tables for + non-interleaved data (x, y, z and w) + +2004-12-06 14:39 zmoelnig + + * src/Vertex/: vertex_draw.cpp, vertex_model.cpp: made all arrays + have 4 components; this enables us to use the color-array as + vertex-array and so on; thus is make any sense ? + +2004-12-06 10:38 zmoelnig + + * src/Gnu/makesource: merged in the changes from HEAD that allows + to give the subdirectories for which we want Make.source to be + created + +2004-12-06 10:34 zmoelnig + + * src/Pixes/: dv1394.h, videoDV4L.cpp: use the provided dv1394.h + instead of an external one + +2004-12-06 10:29 zmoelnig + + * src/Pixes/videoDV4L.h: use the local dv1394.h file + +2004-12-06 10:02 zmoelnig + + * src/openGL/setup.h: now it's gone in this galaxis; where will it + re-appear like undead ? + +2004-12-03 13:15 zmoelnig + + * src/Geos/cuboid.cpp: added newline at end of file + +2004-11-28 01:00 tigital + + * src/openGL/: GEMglBindProgramARB.cpp, GEMglBindProgramARB.h, + GEMglGenProgramsARB.cpp, GEMglGenProgramsARB.h, + GEMglProgramEnvParameter4dARB.cpp, + GEMglProgramEnvParameter4dARB.h, + GEMglProgramEnvParameter4fvARB.cpp, + GEMglProgramEnvParameter4fvARB.h, + GEMglProgramLocalParameter4fvARB.cpp, + GEMglProgramLocalParameter4fvARB.h, GEMglProgramStringARB.cpp, + GEMglProgramStringARB.h: some wrappers for gl "program" stuff: + should be ok for any GL with ARB_vertex_program and/or + ARB_fragment_program defined + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglBindProgramARB.h: file GEMglBindProgramARB.h was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglGenProgramsARB.cpp: file GEMglGenProgramsARB.cpp + was added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglGenProgramsARB.h: file GEMglGenProgramsARB.h was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglProgramEnvParameter4dARB.h: file + GEMglProgramEnvParameter4dARB.h was added on branch vertex_array + on 2005-08-19 12:29:56 +0000 + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglProgramLocalParameter4fvARB.h: file + GEMglProgramLocalParameter4fvARB.h was added on branch + vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglProgramStringARB.h: file GEMglProgramStringARB.h + was added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 tigital + + * src/openGL/: GEMglLoadMatrixd.cpp, GEMglLoadMatrixd.h, + GEMglLoadMatrixf.cpp, GEMglLoadMatrixf.h, + GEMglLoadTransposeMatrixd.cpp, GEMglLoadTransposeMatrixd.h, + GEMglLoadTransposeMatrixf.cpp, GEMglLoadTransposeMatrixf.h, + GEMglMultMatrixd.cpp, GEMglMultMatrixd.h, GEMglMultMatrixf.cpp, + GEMglMultMatrixf.h, GEMglMultTransposeMatrixd.cpp, + GEMglMultTransposeMatrixd.h, GEMglMultTransposeMatrixf.cpp, + GEMglMultTransposeMatrixf.h: wrappers for gl matrix stuff: + should be ok for all opengl versions since 1.1? + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadMatrixd.cpp: file GEMglLoadMatrixd.cpp was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadMatrixd.h: file GEMglLoadMatrixd.h was added + on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadMatrixf.cpp: file GEMglLoadMatrixf.cpp was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadMatrixf.h: file GEMglLoadMatrixf.h was added + on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadTransposeMatrixd.h: file + GEMglLoadTransposeMatrixd.h was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadTransposeMatrixf.h: file + GEMglLoadTransposeMatrixf.h was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultMatrixd.cpp: file GEMglMultMatrixd.cpp was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultMatrixd.h: file GEMglMultMatrixd.h was added + on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultMatrixf.cpp: file GEMglMultMatrixf.cpp was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultMatrixf.h: file GEMglMultMatrixf.h was added + on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultTransposeMatrixd.h: file + GEMglMultTransposeMatrixd.h was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultTransposeMatrixf.h: file + GEMglMultTransposeMatrixf.h was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2004-11-28 00:47 tigital + + * src/openGL/: GLdefine.cpp, GLdefine.h: pedantic changes to header + & descriptions :-) + +2004-11-28 00:46 tigital + + * src/Base/: GemGLUtil.cpp, GemGLUtil.h: added defines for + multitexture, vertex/fragment programs, and matrix stuff...plus + pragma's to more easily find the numerical seperations + +2004-11-25 11:08 zmoelnig + + * src/Base/GemWinCreateNT.cpp: when we receive a + window-resize-event, we need not get the new dimensions + explicitly, as they are already given in the arguments... + +2004-11-24 16:53 zmoelnig + + * src/Controls/: gemlist_info.cpp, gemlist_info.h: Cyrille's + [gemlist_info] that gets the current transformation-matrix (why + have i not added this long before ???) + +2004-11-24 16:46 zmoelnig + + * src/Pixes/: pix_resize.cpp, pix_resize.h: made the new size + settable; LATER think about using a *faster* algorithm... + +2004-11-24 16:43 zmoelnig + + * src/Geos/square.cpp: fixed to match jamies spelling-correction in + Base/GemShape + +2004-11-24 16:37 zmoelnig + + * src/Controls/: gem_pdpin.cpp, gem_pdpin.h, gem_pdpout.cpp, + gem_pdpout.h: added templates for the gem2pdp-bridge + +2004-11-05 15:33 tigital + + * help/alpha.pd: added comments about auto message + +2004-11-05 15:30 tigital + + * src/Geos/: cuboid.cpp, cuboid.h: added blend message + +2004-10-27 12:53 zmoelnig + + * src/Base/GemBase.h: hacked a bit to get the glext-prototypes + loaded correctly with nvidia's headers... + +2004-10-27 12:43 zmoelnig + + * src/Vertex/fragment_program.cpp: added a lot of defines to + prevent from compiling on machines that don't support it... + +2004-10-26 02:58 tigital + + * src/Base/: GemShape.cpp, GemShape.h: spelling correction! + +2004-10-26 02:52 tigital + + * src/Base/GemState.h: updated to correct GemState for vbo's + +2004-10-26 02:42 tigital + + * GEM_darwin.pbproj/project.pbxproj: update to relative paths for + files; added new files (vertex_ & fragment_program & such) to + compile + +2004-10-26 02:40 tigital + + * src/Controls/gemhead.cpp: __APPLE__ instead of MACOSX + +2004-10-26 02:37 tigital + + * src/Vertex/vertex_draw.cpp: update to VBO version + +2004-10-26 02:35 tigital + + * src/Vertex/: fragment_program.cpp, vertex_program.cpp: fixed bad + header, added some debug info beyond just the "MAX_PROGRAM_*" + returns + +2004-10-22 15:44 tigital + + * examples/: data/64shade.bmp, data/toon.vp, + 02.advanced/16.vertex_program.pd: [no log message] + +2004-10-22 15:39 tigital + + * src/: Vertex/fragment_program.cpp, Vertex/fragment_program.h, + Vertex/vertex_program.cpp, Vertex/vertex_program.h, + openGL/GEMglProgramEnvParameter4fvARB.cpp, + openGL/GEMglProgramEnvParameter4fvARB.h: [no log message] + +2004-10-20 16:10 tigital + + * src/Base/GemFuncUtil.h: // powerOfTwo() optimization from + "Hacker's Delight": much faster! + +2004-10-12 20:34 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: use the provided dv1394.h + instead of an external one + +2004-10-12 20:34 zmoelnig + + * src/Pixes/dv1394.h: added dv1394.h from "dvgrab"-sources + +2004-10-12 13:49 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: use the dv1394.h from the + kernel and not the deprecated-one from libdv-dev + +2004-10-11 11:11 zmoelnig + + * src/Base/GemMan.cpp: [gemkeyname] under linux now behaves more + like pd's [keyname] (e.g. uniform keynames); thanks to gerard van + dongen + +2004-10-08 16:47 zmoelnig + + * src/: openGL/setup.h, Particles/setup.h, Pixes/setup.h: we don't + want this anymore: all objects are autoregistering + +2004-10-08 16:44 zmoelnig + + * src/: Manips/setup.h, Nongeos/setup.h: don't want this anymore: + objects are auto-registering themselves! + +2004-10-08 16:29 zmoelnig + + * src/Geos/setup.h: don't want this anymore: objects are + auto-registering themselves! + +2004-10-08 16:26 zmoelnig + + * src/Controls/setup.h: don't want this anymore: objects are + auto-registering themselves! + +2004-10-08 16:08 zmoelnig + + * src/Geos/curve.cpp: as cyrille requested: doing one more point... + (hope this doesn't break anything, but i guess cyrille is the + only one who really cares about such features) + +2004-10-08 15:35 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: fixed argument handling: 1 + argument: gridX=gridY 2 arguments: gridX, gridY 3 arguments: + gridX, gridY, height + +2004-09-15 17:41 zmoelnig + + * help/: gemlist_info.pd, newWave.pd, shearXY.pd, shearXZ.pd, + shearYX.pd, shearYZ.pd, shearZX.pd, shearZY.pd, tube.pd: new and + updated help-patches (thanks cyrille) + +2004-09-15 17:18 zmoelnig + + * src/Manips/: shearXY.cpp, shearXY.h, shearXZ.cpp, shearXZ.h, + shearYX.cpp, shearYX.h, shearYZ.cpp, shearYZ.h, shearZX.cpp, + shearZX.h, shearZY.cpp, shearZY.h: initial addition (thanks + cyrille) + +2004-09-15 17:06 zmoelnig + + * src/openGL/: GEMglGetFloatv.cpp, GEMglGetFloatv.h: initial + addition (thanks cyrille) + +2004-09-15 16:50 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: merged the newWave_texture in; + incorporated cyrilles changes: added dither-noise against + denormalization phenomenons: wouldn't it be better clamp + denormals to 0 like with PD_BADLFOAT ?? + +2004-09-15 15:15 zmoelnig + + * src/Geos/: tube.cpp, tube.h: cyrilles changes: made the number of + faces settable via a message#9 + +2004-09-06 14:13 zmoelnig + + * src/Vertex/: vertex_sub.cpp, vertex_sub.h: subtract to + vertex-arrays + +2004-09-06 14:12 zmoelnig + + * src/Vertex/: vertex_resize.cpp, vertex_resize.h: resize a + vertex-array: the resampling is rather poor (no interpolation) + +2004-09-06 14:12 zmoelnig + + * src/Vertex/: vertex_matrix.cpp, vertex_matrix.h: multiply a + vertex-array by a constant matrix + +2004-08-30 16:47 zmoelnig + + * src/Vertex/: vertex_draw.cpp, vertex_draw.h: rebuild the VBO if + the arrays are dirty (is this necessary on osX ?) removed a lot + of variables lingering around and doing nothing; inherit from + GemVertex instead of GemBase + +2004-08-30 16:44 zmoelnig + + * src/Vertex/: vertex_add.cpp, vertex_add.h: use of setModified(); + inherit from GemVertex instead of GemBase + +2004-08-30 16:44 zmoelnig + + * src/Vertex/vertex_grid.cpp: use of setModified(); allow 0x0-grids + +2004-08-30 16:42 zmoelnig + + * src/Vertex/: vertex_grid.h, vertex_info.h: inherit from GemVertex + instead of GemBase; + +2004-08-30 16:40 zmoelnig + + * src/Vertex/: vertex_model.cpp, vertex_model.h: inherit from + GemVertex instead of GemBase; use of setModified() + +2004-08-30 16:40 zmoelnig + + * src/Vertex/: vertex_combine.h, vertex_quad.h: inherit from + GemVertex instead of GemBase + +2004-08-30 16:39 zmoelnig + + * src/Vertex/: vertex_offset.cpp, vertex_set.cpp: use of + setModified() + +2004-08-30 16:39 zmoelnig + + * src/Vertex/: vertex_scale.cpp, vertex_scale.h: inherit from + GemVertex instead of GemBase; use of setModified(); renamed the + "mode"-message to "type" (now it is the same as for + DualVertex-manipulators) + +2004-08-30 16:36 zmoelnig + + * src/Geos/: color_set.cpp, color_set.h, vertex_combine.cpp, + vertex_combine.h, vertex_draw.cpp, vertex_draw.h, + vertex_grid.cpp, vertex_grid.h, vertex_info.cpp, vertex_info.h, + vertex_model.cpp, vertex_model.h, vertex_offset.cpp, + vertex_offset.h, vertex_quad.cpp, vertex_quad.h: moved to + src/Vertex + +2004-08-30 16:34 zmoelnig + + * src/Controls/gemhead.cpp: handle the "dirtyVertex" of GemState + and GemCache + +2004-08-30 16:33 zmoelnig + + * src/Base/: GemVertex.cpp, GemVertex.h: GemVertex is now the + parent-class of all the vertex-stuff; the main thing that is done + here is re-defining setModified() to tell the cache, that the + vertex-arrays have changed + +2004-08-30 15:22 zmoelnig + + * src/Base/: GemCache.cpp, GemCache.h, GemState.cpp, GemState.h: + added VertexDirty to indicate whether one of the vertex-arrays + has changed LATER: think about a flag for each vertex-array to + avoid uploading of unchanged arrays + +2004-08-27 17:31 tigital + + * src/Vertex/vertex_draw.cpp: forgot a coupla GL_DYNAMIC_DRAW_ARB's + +2004-08-27 16:34 tigital + + * src/Vertex/vertex_draw.cpp: cached VBO buffers better + +2004-08-27 08:51 zmoelnig + + * src/Manips/: vertex_scale.cpp, vertex_scale.h: this is now in + src/Vertex/ + +2004-08-27 08:49 zmoelnig + + * src/Vertex/: vertex_draw.cpp, vertex_draw.h: moved jamies changes + from src/Geos to src/Vertex; made it compile on linux (and i + guess on windows too) disabled VBO for non-macs as it slows down + the system by numbers... + +2004-08-27 08:47 zmoelnig + + * src/Vertex/glVBO_ext.h: moved from src/Geos to src/Vertex; + include instead of on non-apples + +2004-08-27 05:54 tigital + + * src/Geos/glVBO_ext.h: VBO support + +2004-08-27 05:50 tigital + + * src/Geos/: vertex_draw.h, vertex_draw.cpp: VBO support + +2004-08-26 14:21 zmoelnig + + * src/Vertex/: vertex_add.cpp, vertex_add.h, vertex_combine.cpp, + vertex_combine.h, vertex_draw.cpp, vertex_draw.h, + vertex_grid.cpp, vertex_grid.h, vertex_info.cpp, vertex_info.h, + vertex_model.cpp, vertex_model.h, vertex_mul.cpp, vertex_mul.h, + vertex_offset.cpp, vertex_offset.h, vertex_quad.cpp, + vertex_quad.h, vertex_scale.cpp, vertex_scale.h, vertex_set.cpp, + vertex_set.h: moved all the vertex_-objects from src/Geos to + src/Vertex; added vertex_mul, vertex_add vertex_offset,... now + work on all arrays + +2004-08-17 18:44 zmoelnig + + * src/Manips/: vertex_scale.cpp, vertex_scale.h: initial + [vertex_scale]: supports scaling of texcoords, normals, vertices, + color + +2004-08-17 17:27 zmoelnig + + * src/Base/: configNT.h, GemBase.h, GemMan.cpp, GemPixUtil.cpp, + GemPixUtil.h, GemVersion.h: merged with HEAD + +2004-08-17 17:13 zmoelnig + + * src/Pixes/: filmQT.cpp, pix_dot.cpp, pix_halftone.cpp, + pix_halftone.h, pix_texture.cpp, pix_texture.h, pix_texture2.cpp, + pix_texture2.h, videoV4L.cpp: merged with HEAD + +2004-08-17 16:45 zmoelnig + + * src/yuv/yuv_mask.cpp: src/yuv is deprecated + +2004-08-17 16:11 zmoelnig + + * src/Output/: gemextwin.cpp, gemextwin.h: this shouldn't have been + in the SIMD branch + +2004-08-17 15:27 zmoelnig + + * abstractions/gemwin.pd: a wrapper around [gemcontrol] and + [gemwindow] to provide compatibility with older patches + +2004-08-17 15:04 zmoelnig + + * src/Gnu/: configure, configure.in: updated version + +2004-08-17 14:59 zmoelnig + + * src/Controls/: gemwin.cpp, gemwin.h: [gemwin] is replaced by + [gemcontrol]+[gemwindow] + +2004-08-17 14:55 zmoelnig + + * src/Gnu/makesource: fixed a bug when no directory-list is given + at command-line (merged from HEAD) + +2004-08-17 14:53 zmoelnig + + * src/Gnu/makesource: fixed a bug when no directory-list is given + at command-line + +2004-08-17 14:45 zmoelnig + + * src/Base/GemFuncUtil.h: include GemSIMD (yes i know, that this is + branch multiple_window, but i have somehow cranked up the Pixes/ + when branching : Pixes/ were branched to "multiple_window" when + already in "SIMD"; so this allows at least to compile again + +2004-08-17 14:27 zmoelnig + + * src/Base/GemOutput.h: made all the non-static message-handlers + "virtual" so they can be overridden (e.g. if we don't want them) + +2004-08-17 14:10 zmoelnig + + * src/Base/GemMan.cpp: try to share display_lists (however, this + needs a LOT of re-thinking) + +2004-08-17 14:04 zmoelnig + + * src/Output/Makefile: hopefully this is now in BRANCH instead of + TAGged + +2004-08-17 14:01 zmoelnig + + * src/Output/GemExtContext.h: this has vanished entirely (i just + don't know how to check files into a branch) + +2004-08-17 13:40 zmoelnig + + * src/Output/GemExtContext.h: removed because the idea behind this + file was really nonsense (cannot share pointers across + applications) + +2004-08-14 21:59 zmoelnig + + * src/Output/: gemextwin.cpp, gemextwin.h: made it compile under + windows (though not really functional yet...) + +2004-08-14 15:36 zmoelnig + + * src/Base/GemState.h: merged in the vertex_array -branch (why: + because i have f**ed up the multiple_window-branch by mixing with + vertices and there is not much harm in changing this file) + +2004-08-14 15:14 zmoelnig + + * src/Output/: gemextwin.cpp, gemextwin.h: prelaminary windoze + support (not tested at all, just from guessing) + +2004-08-10 14:42 zmoelnig + + * src/Output/GemExtContext.h: do not use GEM_EXPORT (as it needs + other GemExportDef.h to be included + +2004-08-10 11:43 zmoelnig + + * src/Output/: GemExtContext.h, gemextwin.cpp, gemextwin.h: an + object to render into external displays (this is: the context is + *not* handled by Gem but by an external application) + +2004-08-10 11:40 zmoelnig + + * src/Output/: Makefile, gemwindow_qtExt.cpp, gemwindow_qtExt.h: + oje: "tagged" instead of "branched" (anyhow gemwindow_qtExt is + already deprecated) + +2004-08-09 19:36 zmoelnig + + * src/Output/Makefile: initial makefile for [gemwindow_qtExt] + +2004-08-09 19:36 zmoelnig + + * src/Output/: gemwindow_qtExt.cpp, gemwindow_qtExt.h: initial + output-module: [gemwindow_qtExt] (what an ugly name!) to render + to external qt-contexts + +2004-08-09 13:23 zmoelnig + + * src/Controls/gemwindow.cpp: re-enabled checking, whether we + already have a const context + +2004-08-09 11:19 zmoelnig + + * src/Base/GemOutput.cpp: oops: bufferMess() was doubled + +2004-08-09 10:34 zmoelnig + + * src/Base/GemOutput.cpp: implementation of bufferMess + +2004-08-09 10:33 zmoelnig + + * src/Controls/gemwindow.cpp: enabled use of shared contexts on + platforms other than osX (which had it already) + +2004-08-08 19:49 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: removed unneeded + variables (like m_windowRun and m_windowNumber) + +2004-08-08 19:24 zmoelnig + + * src/Pixes/: pix_snap2tex.cpp, pix_snap2tex.h, pix_write.cpp, + pix_write.h: use GemState->screenWidth instead of GemMan::m_width + (and vice versa for m_height) + +2004-08-08 14:38 zmoelnig + + * src/: Particles/part_color.cpp, Particles/part_damp.cpp, + Particles/part_draw.cpp, Particles/part_follow.cpp, + Particles/part_gravity.cpp, Particles/part_info.cpp, + Particles/part_killold.cpp, Particles/part_killslow.cpp, + Particles/part_orbitpoint.cpp, Particles/part_render.cpp, + Particles/part_size.cpp, Particles/part_source.cpp, + Particles/part_targetcolor.cpp, Particles/part_targetsize.cpp, + Particles/part_velcone.cpp, Particles/part_velocity.cpp, + Particles/part_velsphere.cpp, Particles/part_vertex.cpp, + Base/GemMan.cpp, Base/GemState.cpp, Base/GemState.h: changed + GemState->stereo to GemState->doUpdate + +2004-08-08 14:01 zmoelnig + + * src/Geos/: ripple.cpp, rubber.cpp: removed traces of GemMan + +2004-08-08 13:51 zmoelnig + + * src/Manips/ortho.cpp: set the viewpoint use + GemState->windowWidth/Height instead of GemMan::width/height + +2004-08-08 13:45 zmoelnig + + * src/Manips/camera.cpp: set the viewpoint immediately (do *not* + use GemMan::m_view) + +2004-08-08 13:39 zmoelnig + + * src/Base/GemState.h: add field for window-dimensions to the + GemState + +2004-08-08 13:37 zmoelnig + + * src/Base/GemOutput.cpp: add the window-dimensions to the GemState + +2004-08-07 19:29 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: made it run under NT + +2004-08-07 18:18 zmoelnig + + * src/Base/GemWinCreateNT.cpp: made the mousemotion-callback work + under nt + +2004-08-07 10:25 zmoelnig + + * src/: Base/GemEvent.cpp, Base/GemEvent.h, Controls/gemmouse.cpp, + Controls/gemmouse.h: the motionCallback for mouse) now reports + the window-dimensions too (for scaling/normalization) + +2004-08-07 10:24 zmoelnig + + * src/: Controls/gemwindow.cpp, Controls/gemwindow.h, + Base/GemOutput.cpp, Base/GemOutput.h: changed (renamed) the + render-functions a bit + +2004-08-07 09:16 zmoelnig + + * src/Controls/: gemcontrol.cpp, gemcontrol.h: forgot to add + [gemcontrol] (?) + +2004-08-06 18:51 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: trying to save the + constContext (LATER think about "sharing" contexts) + +2004-08-06 18:07 zmoelnig + + * src/Base/GemMan.cpp: stop rendering when the last [gemcontrol] + has vanished + +2004-08-06 17:18 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: "lighting" now works + individually for each GemOutput + +2004-08-06 17:17 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: added "fsaa" + +2004-08-06 16:08 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h: [gemcontrol] now registers to + GemMan to get the render-clock + +2004-08-06 16:07 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: "reset"-message + +2004-08-06 16:03 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: callbacks working + under linux + +2004-08-06 12:20 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h: stripped down and moved a lot of + code into GemOutput and [gemwindow] + +2004-08-06 12:20 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: loads of functionality + from [gemwin] and GemBase moved into this one: + color,fog,viewpoint,.... + +2004-08-06 12:18 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: first output... + +2004-08-05 19:57 zmoelnig + + * src/Controls/gemhead.cpp: drawType reset to 0 instead of NULL + +2004-08-05 14:33 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: put the actual + render-callback into doRender() + +2004-08-05 14:32 zmoelnig + + * src/Geos/: vertex_grid.cpp, vertex_grid.h: added object-arguments + for initial xsize/ysize + +2004-08-05 14:19 zmoelnig + + * src/Geos/vertex_draw.cpp: add a check whether we have a + NormalsArray (prevents crashes with [vertex_quad] and + [vertex_grid]) + +2004-08-04 09:19 zmoelnig + + * src/Geos/: vertex_offset.cpp, vertex_offset.h: made the + "offset"-message understand 2(X,Y,0,0), 3(X,Y,Z,0) or 4(X,Y,Z,W) + arguments + +2004-08-04 09:18 zmoelnig + + * src/Geos/: vertex_info.cpp, vertex_info.h: removed code that came + apparently from [vertex_offset] (and was not used anyhow) + +2004-08-04 09:17 zmoelnig + + * src/Geos/: color_set.cpp, color_set.h: now color_set inherits + from GemBase instead of GemShape; "color" can now have 1 + (greyscale), 3(RGB) or 4(rgba) values + +2004-08-04 08:35 zmoelnig + + * src/Geos/: vertex_info.h, vertex_offset.h: fixed typos which + prevented vc6 to succeed + +2004-08-04 08:32 zmoelnig + + * src/Gnu/makesource: now you can give a list of directories on the + command-line to override the default directories where we want + the Make.source,... to be built + +2004-08-04 08:29 zmoelnig + + * src/Base/GemState.h: on windows we have to include + before ,... + +2004-08-04 07:52 zmoelnig + + * src/Pixes/filmQT.cpp: fixed broken merge + +2004-08-03 21:56 zmoelnig + + * src/Geos/: vertex_combine.cpp, vertex_combine.h, vertex_draw.cpp, + vertex_draw.h, vertex_grid.cpp, vertex_grid.h, vertex_info.cpp, + vertex_info.h, vertex_model.cpp, vertex_model.h, + vertex_offset.cpp, vertex_offset.h, vertex_quad.cpp, + vertex_quad.h: removed dependency on GemShape (replaced by + GemBase) + +2004-08-03 21:35 zmoelnig + + * src/Geos/vertex_draw.cpp: made it compile under linux + +2004-08-03 21:35 zmoelnig + + * src/Geos/: vertex_combine.h, vertex_draw.h, vertex_grid.h, + vertex_info.h, vertex_model.h, vertex_offset.h, vertex_quad.h: + included Base/GemVertex.h instead of GemShape.h; btw. i don't + think that GemShape is a good parent-class + +2004-08-03 21:33 zmoelnig + + * src/Base/GemVertex.h: removed some stupidities + +2004-08-03 21:25 zmoelnig + + * src/Base/GemState.h: fixed apple-specific code + +2004-08-03 21:24 zmoelnig + + * src/Base/GemVertex.h: GemVertex.h to be included by all + vertex_-geos + +2004-08-03 19:03 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: don't render if + m_outputState is false; made inheritance work + +2004-08-03 19:02 zmoelnig + + * src/Controls/gemwindow.cpp: moved m_windowState to GemOutput; + moved static variables into class + +2004-08-03 19:01 zmoelnig + + * src/Controls/gemwindow.h: moved m_windowState to GemOutput + +2004-08-03 18:52 zmoelnig + + * src/Controls/gemwindow.h: really inherit from GemOutput + +2004-08-03 18:40 cclepper + + * src/: Base/GemState.h, Controls/gemhead.cpp: update to include + vertex_array data + +2004-08-03 18:38 cclepper + + * src/Geos/: color_set.cpp, color_set.h, vertex_combine.cpp, + vertex_combine.h, vertex_draw.cpp, vertex_draw.h, + vertex_grid.cpp, vertex_grid.h, vertex_info.cpp, vertex_info.h, + vertex_model.cpp, vertex_model.h, vertex_offset.cpp, + vertex_offset.h, vertex_quad.cpp, vertex_quad.h: Initial commit + of basic vertex_array geos + +2004-08-03 17:51 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: initial functionality: + create/destroy window (no rendering yet) + +2004-08-03 16:07 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: an output-object to + replace [gemwin] on the long-run; no functionality yet!! + +2004-08-03 15:52 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: the parent-class for + different output-objects + +2004-08-03 09:17 zmoelnig + + * src/Pixes/: DSgrabber.cpp, pix_videoDS.cpp: the Release-binary + under windoze used to crash when a pix_video was created; + defining "DEBUG" on the correct place gets rid of this. (indeed + an ugly workaround) + +2004-08-03 09:15 zmoelnig + + * src/Pixes/pix_rds.cpp: type-cast 0xFF to shut up vc6 + +2004-08-03 09:11 zmoelnig + + * src/Pixes/: pix_2grey.cpp, pix_background.cpp, pix_compare.cpp, + pix_composite.cpp, pix_halftone.cpp, pix_multiply.cpp: type-cast + 0xFF to shut up vc6 + +2004-08-03 08:22 zmoelnig + + * src/Pixes/pix_chroma_key.cpp: type-cast 0xFF to shut up vc6 + +2004-07-29 20:21 zmoelnig + + * src/Pixes/: pix_composite.cpp, pix_composite.h: initial MMX + (faster when alpha is set to anything; BUT slower if alpha is + 0x00 or 0xFF) + +2004-07-29 13:28 zmoelnig + + * src/Pixes/: pix_mask.cpp, pix_mask.h: a bit faster and YUV + support + +2004-07-29 13:04 zmoelnig + + * src/Pixes/: pix_diff.cpp, pix_multiply.cpp, pix_multiply.h, + pix_subtract.cpp, pix_takealpha.h: more MMX + +2004-07-29 11:06 zmoelnig + + * src/Pixes/pix_add.cpp: made YUV behave better + +2004-07-29 10:28 zmoelnig + + * src/gem.dsp: added __MMX__ + +2004-07-29 10:16 zmoelnig + + * src/Pixes/pix_tIIR.cpp: round() is not available on vc6; using + (short)-casts instead + +2004-07-28 14:24 zmoelnig + + * src/Base/GemSIMD.h: added some hints for compilers + +2004-07-28 11:19 zmoelnig + + * src/Pixes/: pix_chroma_key.cpp, pix_chroma_key.h: MMX for YUV + +2004-07-28 11:18 zmoelnig + + * src/Base/GemPixDualObj.h: if ne SSE2 is defined, it defaults to + MMX + +2004-07-27 22:16 zmoelnig + + * src/Pixes/pix_movement.cpp: a bit of a comment + +2004-07-27 22:06 zmoelnig + + * src/Pixes/: pix_chroma_key.cpp, pix_chroma_key.h: initial + MMX-support (RGBA only; seems to be slower than generic code !!!) + +2004-07-27 21:00 zmoelnig + + * src/Pixes/: pix_compare.cpp, pix_compare.h, pix_mix.cpp, + pix_mix.h, pix_subtract.cpp, pix_subtract.h: initial MMX-support + +2004-07-27 15:58 zmoelnig + + * src/Pixes/: pix_add.cpp, pix_add.h: initial MMX-support (not very + fast though) + +2004-07-27 11:51 zmoelnig + + * src/Base/: GemPixDualObj.cpp, GemPixDualObj.h: initial + MMX-support for DualPix + +2004-07-27 11:50 zmoelnig + + * src/Pixes/: pix_diff.cpp, pix_diff.h: initial MMX-support + +2004-07-27 10:02 zmoelnig + + * src/Pixes/: pix_background.cpp, pix_background.h: more + MMX-support (RGBA, YUV) + +2004-07-27 08:52 zmoelnig + + * src/Pixes/: pix_background.cpp, pix_background.h: initial + MMX-support (Grayscale only for now) + +2004-07-26 19:17 zmoelnig + + * src/Pixes/: pix_background.cpp, pix_background.h: using an + imageStruct instead of allocating by hand + +2004-07-26 18:37 zmoelnig + + * src/Pixes/: pix_movement.cpp, pix_movement.h: initial MMX-support + (grayscale only) + +2004-07-26 18:36 zmoelnig + + * src/Pixes/pix_2grey.cpp: made it YUV-MMX faster (???) + +2004-07-24 20:08 zmoelnig + + * src/Pixes/: pix_tIIR.cpp, pix_tIIR.h: initial MMX-support; note + however, that it is slower than i expected; furthermore negative + coefficients are not handled correctly + +2004-07-24 18:42 zmoelnig + + * src/Base/GemPixUtil.cpp: don't copy the "datasize" with + copy2imageStruct - as it should only be used internally for + pdata; (THIS MIGHT BREAK THINGS!!) + +2004-07-23 18:36 zmoelnig + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h: fixed MMX code for + RGBA/YUV/Gray + +2004-07-23 17:26 zmoelnig + + * src/Pixes/: pix_motionblur.cpp, pix_motionblur.h: added MMX code + for RGBA/YUV/Gray + +2004-07-23 11:51 zmoelnig + + * src/Pixes/pix_2grey.cpp: fixed RGBA-MMX code + +2004-07-23 10:25 zmoelnig + + * src/Gnu/aclocal.m4, src/Pixes/pix_2grey.cpp, + src/Pixes/pix_2grey.h, src/Pixes/pix_biquad.cpp, + src/Pixes/pix_biquad.h, Makefile, configure: added top-level + makefile and configure-script (since src/Gnu is hard to find) + +2004-07-09 15:22 zmoelnig + + * src/Pixes/: pix_offset.cpp, pix_offset.h: MMX for YUV and Gray + +2004-07-08 18:15 zmoelnig + + * src/Pixes/: pix_gain.cpp, pix_gain.h, pix_offset.cpp, + pix_offset.h: first MMX-support (RGBA only right now) + +2004-07-06 15:09 zmoelnig + + * src/Base/GemPixUtil.cpp: fixed typo in comment + +2004-07-02 18:17 zmoelnig + + * src/TODO: new things to do + +2004-07-02 18:15 zmoelnig + + * src/Base/GemSIMD.h: fixed #ifdef's + +2004-07-02 18:02 zmoelnig + + * src/Pixes/: pix_bitmask.cpp, pix_bitmask.h: initial MMX support + +2004-07-01 21:00 zmoelnig + + * src/Base/GemSIMD.h: file GemSIMD.h was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2004-07-01 21:00 zmoelnig + + * src/Base/GemSIMD.h: initial MMX-code; includes for the various + platforms/SIMD-optimization should be handled in here + +2004-07-01 20:58 zmoelnig + + * src/Base/: GemFuncUtil.h, GemPixObj.cpp, GemPixObj.h: initial + MMX-code; SIMD-optimized functions are called directly from + GemPixObj; if they are not overridden by the child, the default + function for this colourspace is called + +2004-07-01 20:57 zmoelnig + + * src/Pixes/: pix_invert.cpp, pix_invert.h: initial MMX-code + +2004-07-01 15:59 zmoelnig + + * src/Geos/newWave.cpp: replace GL_LINE_LOOP with GL_LINE_STRIP + (thanks to cyrille) made the "draw"-message-handling a bit more + flexible + +2004-06-30 16:34 zmoelnig + + * src/Geos/newWave.cpp: when reset()ing, use the current action + instead of HILLFOUR + +2004-06-30 16:32 zmoelnig + + * src/Pixes/pix_texture.cpp: rebuild the texture when switching + between rectangle and normalized textures + +2004-06-30 14:18 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: hopefully fixed the texturing + for rectangle textures; added a "texture"-message to choose + between normal and spheric texturing + +2004-06-30 14:13 zmoelnig + + * src/Pixes/pix_texture.cpp: used debug() instead of post() for the + "client-storage"-message + +2004-06-30 14:11 zmoelnig + + * src/Pixes/videoV4L.cpp: using RGB24 instead of RGB32, because the + alpha-channel is set to 0 by RGB32(!!) + +2004-06-25 19:38 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: fixed a bug that did not + texture rectangle images correctly texture mode can now be set + via a "texture"-mess (spherical or not) texturing of line/point + enabled (buggy output ?) + +2004-06-25 19:31 zmoelnig + + * src/Pixes/pix_texture.cpp: "not using client-texture" is now a + debug-message (instead of post()) + +2004-05-28 13:50 zmoelnig + + * GEM.README: updated for 0.90 + +2004-05-26 12:59 zmoelnig + + * src/gem.dsp: now the "release" compiles + +2004-05-26 12:35 zmoelnig + + * doc/gem.release_notes.txt: changed version from 0.888 to 0.90 + +2004-05-26 12:34 zmoelnig + + * GEM_INSTALL.bat: fixed "installation" for on windows + +2004-05-26 12:34 zmoelnig + + * src/Base/GemVersion.h: changed from 0.888pre2 to 0.90 + +2004-05-19 17:57 zmoelnig + + * src/Pixes/pix_halftone.cpp: changed the shifts to SHIFT_* to make + it cross-platform + +2004-05-19 17:25 tigital + + * ChangeLog: [no log message] + +2004-05-19 17:17 tigital + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: here's what I came + up with: luma seems more sensitive, and makes a better image, + tho different than the rgba version + +2004-05-16 21:22 zmoelnig + + * src/Base/: GemBase.h, GemMan.cpp, GemPixUtil.h, configNT.h: fixed + some issues with compiling Gem on windows with nvidia's + openGL-headers (have to include glext.h) + +2004-05-15 19:59 zmoelnig + + * doc/gem.known_bugs.txt, help/pix_lumaoffset.pd: noted that + pix_lumaoffset might crash with high offset-factors + +2004-05-14 19:20 zmoelnig + + * src/Pixes/: pix_texture.cpp, pix_texture.h: added a "yuv"-message + to turn off direct YUV-texturing even if it is available (because + our G4 with a geforce4MX says that it can do GL_ycbcr but + actually the images look weird + +2004-05-14 19:05 zmoelnig + + * src/Pixes/pix_lumaoffset.cpp: added range-checking for the offset + when doing smoothed & filled processing; this should fix the + crashes at very high offsets on all colorspaces + +2004-05-14 17:42 zmoelnig + + * src/Pixes/pix_dot.cpp: fixed YUV on big-endians + +2004-05-13 19:25 zmoelnig + + * src/Base/GemPixUtil.cpp: don't copy "pdata" with + copyImage2Struct; pdata should always(!) be a pointer to some + data that is owned by the image itself! this fixes the abiding + crashes when deleting pix_-objects + +2004-05-10 10:08 zmoelnig + + * src/Pixes/filmQT.cpp: added additional error-checks and a + sanity-check on close(); should run now on QT-6.5 (as (un)stable + as with QT-6.4) + +2004-05-10 07:03 cclepper + + * src/Pixes/: pix_levels.cpp, pix_levels.h: First step at + separating the color-space functions in order to have them work + properly. RGBA is still ok, and now YUV works on 'uniform' + adjustments. + +2004-05-10 05:54 cclepper + + * src/Pixes/pix_colorreduce.cpp: #ifdef to remove YUV code on OSX. + maybe someone will write a version that doesn't crash? + +2004-05-09 09:03 cclepper + + * src/Pixes/pix_halftone.cpp: changed the shifts for YUV output. + now 100% less green. + +2004-05-08 06:19 cclepper + + * src/Pixes/pix_kaleidoscope.cpp: fixed the 'it's oh so green' YUV + problem on OSX + +2004-05-07 19:51 zmoelnig + + * src/Base/GemPixPete.h: made defines for shifts on mac/non-mac + (although they don't do much now) + +2004-05-07 19:48 zmoelnig + + * src/Base/GemPixPete.h: added U8 as another type + +2004-05-07 19:41 zmoelnig + + * src/Base/GemPixUtil.cpp: using ch*-constants rather than + hardcoded positions of channel-data (e.g: chRed instead of 0) + +2004-05-07 19:37 zmoelnig + + * src/Pixes/: pix_backlight.cpp, pix_buf.cpp, pix_dot.cpp, + pix_texture.cpp, pix_halftone.cpp, pix_lumaoffset.cpp: shut up + macOS-gcc compiler warnings + +2004-05-07 17:42 zmoelnig + + * src/Base/GemWinCreateMac.cpp: type fixing to shut down the + compiler + +2004-05-07 15:52 zmoelnig + + * src/Pixes/: pix_lumaoffset.cpp, pix_lumaoffset.h, + pix_metaimage.cpp, pix_metaimage.h: made Grey work + +2004-05-07 14:02 zmoelnig + + * src/Pixes/: pix_dot.cpp, pix_dot.h: made YUV and Grey work + +2004-05-07 10:41 zmoelnig + + * src/Pixes/: pix_refraction.cpp, pix_kaleidoscope.cpp: use + setCsizeByFormat use reallocate() instead of clear() and + allocate() and complicated checks + +2004-05-07 10:40 zmoelnig + + * src/Pixes/pix_halftone.cpp: fixed stupid typo + +2004-05-07 10:40 zmoelnig + + * src/Pixes/pix_lumaoffset.cpp: replaced hardcoded shift-amount by + SHIFT_Y. use setCsizeByFormat use reallocate() instead of + clear() and allocate() + +2004-05-07 10:30 zmoelnig + + * src/Pixes/: pix_dot.cpp, pix_dot.h: use setCsizeByFormat use + reallocate() instead of clear() and allocate() removed unused + variable + +2004-05-07 10:29 zmoelnig + + * src/Pixes/pix_delay.cpp: use setCsizeByFormat use reallocate() + instead of clear() and allocate() + +2004-05-07 10:28 zmoelnig + + * src/Pixes/: pix_backlight.cpp, pix_backlight.h: removed the + commented out the processGray-function (and not only it's body); + use setCsizeByFormat + +2004-05-07 10:14 zmoelnig + + * src/Pixes/: pix_grey.cpp, pix_rgba.cpp, pix_yuv.cpp: don't + initialize to small images (64x64) any more as this is only for + memory fragmentation + +2004-05-07 10:12 zmoelnig + + * src/Pixes/pix_halftone.cpp: using setCsizeByFormat rather than + setting csize/format/type directly + +2004-05-07 10:11 zmoelnig + + * src/Pixes/pix_metaimage.cpp: made YUV work on PCs (and used + better namings (like "U" instead of "Red") + +2004-05-06 12:01 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: setting the + csize/format/type of the image more intelligently + +2004-05-06 11:36 zmoelnig + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: another step + towards a working version. now yuv/rgba/grey almost(!) behave + the same + +2004-05-06 11:35 zmoelnig + + * src/Base/GemPixPete.h: the RGBA2LUMA conversion was wrong + +2004-05-05 16:56 zmoelnig + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: made YUV work + correctly + +2004-05-05 16:56 zmoelnig + + * src/Pixes/pix_texture.cpp: use run-time checks for YUV-texturing + +2004-05-05 16:55 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h: added run-time checks for + GL_APPLE_ycbcr_422 (YUV-texturing) + +2004-05-05 16:54 zmoelnig + + * src/Base/GemPixUtil.cpp: use normal memory-allocation (no + alignment tricks as these produces weird output) LATER make sure + that memory is aligned correctly + +2004-05-04 22:20 zmoelnig + + * src/Pixes/: pix_colorreduce.cpp, pix_colorreduce.h: quick hack to + make Grey/YUV work + +2004-05-04 17:30 zmoelnig + + * src/Pixes/pix_buf.cpp: initialized orgPixBlock to NULL (should + fix crashes when no upstream image is present) + +2004-05-04 14:46 zmoelnig + + * src/Pixes/: pix_levels.cpp, pix_levels.h: seems to work now with + RGBA/YUV/Grayscale + +2004-05-04 10:15 zmoelnig + + * doc/gem.known_bugs.txt: added bugs concerning win32-movie-loading + +2004-05-03 18:27 zmoelnig + + * src/Pixes/pix_halftone.cpp: used SHIFT_Y1,... (from GemPixPete.h) + as my images were green ;-) + +2004-05-03 18:26 zmoelnig + + * src/Base/GemPixPete.h: defined SHIFT_Y1,... for YUV-shifting + +2004-05-03 08:15 cclepper + + * src/Pixes/pix_backlight.cpp: fixed up the YUV code - rolled a new + black function and tests for proper pixel values + +2004-05-03 08:14 tigital + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: YUV works better: + but it's about half the width resolution as it should be...at + least it's not green ;-) + +2004-05-03 04:08 tigital + + * src/Pixes/pix_videoDarwin.cpp: removed void to shut up gcc + +2004-05-03 03:42 tigital + + * src/Pixes/: pix_metaimage.cpp, pix_metaimage.h: YUV processing + functions correctly now + +2004-04-29 07:55 cclepper + + * src/Pixes/pix_lumaoffset.cpp: YUV smoothing now works + +2004-04-27 07:07 tigital + + * src/Pixes/: pix_lumaoffset.cpp, pix_lumaoffset.h: YUV works + better, except for "smooth" line filling + +2004-04-24 17:02 zmoelnig + + * src/Pixes/filmQT4L.cpp: removed some more verbosity... + +2004-04-23 16:41 zmoelnig + + * src/Base/GemMan.cpp: moved some fsaa-code from apple-only to + openGL-dependent code (read: changed ifdefs) + +2004-04-21 06:32 tigital + + * src/Pixes/pix_lumaoffset.cpp: YUV is almost fixed: at least + we're dealing with true luma...but there still seems to be a + pixel skipping problem + +2004-04-21 05:52 cclepper + + * src/Base/GemPixPete.h: changed GetLuminance() coefficients to + correct vaules + +2004-04-20 19:55 zmoelnig + + * help/gemwin.pd: fixed the default viewpoint-values to the correct + ones "0 0 4" instead of "0 0 -4" + +2004-04-10 02:13 tigital + + * src/Base/GemFuncUtil.h: [OSX] added header for definition of + UInt32 after the mass movement of functions + +2004-04-09 11:38 zmoelnig + + * src/Pixes/pix_texture.cpp: added the [pix_texture2]-alias again. + why has it vanished ? + +2004-04-08 14:20 zmoelnig + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwinYUV.cpp, + pix_filmQT.cpp, pix_movieDarwin.cpp, pix_videoDarwin.cpp: moved + utility functions (namely: powerOfTwo()) into Base/GemFuncUtil + +2004-04-08 13:57 zmoelnig + + * src/Geos/newWave.cpp: moved utility functions (namely: + powerOfTwo()) into Base/GemFuncUtil + +2004-04-08 13:54 zmoelnig + + * src/Base/: GemFuncUtil.h, GemPixObj.h, GemPixPete.h, + GemPixUtil.h: structured the location of functions a bit: + GemPixObj does not hold any utility functions GemFuncUtil holds + general untilities (like powerOfTwo()) GemPixUtil holds utility + functions for image manipulation (only!) GemPixPete (NEW) holds + functions from pete's_plugins (specialzied PixUtil-functions) + +2004-04-08 13:51 zmoelnig + + * src/Pixes/pix_rgba.cpp: added some comments + +2004-04-08 13:51 zmoelnig + + * src/Pixes/: pix_hsv2rgb.cpp, pix_image.cpp, pix_movie.cpp, + pix_movieYUV.cpp, pix_rgb2hsv.cpp, pix_sig2pix.cpp, + pix_snap2tex.cpp, pix_texture.cpp: moved utility functions + (namely: powerOfTwo()) into Base/GemFuncUtil + +2004-04-08 13:46 zmoelnig + + * src/Pixes/: pix_a_2grey.cpp, pix_aging.cpp, pix_backlight.cpp, + pix_colorreduce.cpp, pix_compare.cpp, pix_convert.cpp, + pix_curve.cpp, pix_dot.cpp, pix_duotone.cpp, pix_halftone.cpp, + pix_histo.cpp, pix_kaleidoscope.cpp, pix_levels.cpp, + pix_lumaoffset.cpp, pix_metaimage.cpp, pix_mix.cpp, + pix_posterize.cpp, pix_puzzle.cpp, pix_rds.cpp, + pix_refraction.cpp, pix_roll.cpp, pix_scanline.cpp, pix_tIIR.cpp: + added setPixModified() where apropriate so that the + pull-mechanism works + +2004-04-08 13:43 zmoelnig + + * help/: pix_2grey.pd, pix_a_2grey.pd, pix_alpha.pd, + pix_backlight.pd, pix_bitmask.pd, pix_chroma_key.pd, + pix_color.pd, pix_coloralpha.pd, pix_colormatrix.pd, + pix_colorreduce.pd, pix_compare.pd, pix_convolve.pd, pix_crop.pd, + pix_curve.pd, pix_dot.pd, pix_duotone.pd, pix_flip.pd, + pix_gain.pd, pix_grey.pd, pix_halftone.pd, pix_histo.pd, + pix_hsv2rgb.pd, pix_imageInPlace.pd, pix_invert.pd, + pix_kaleidoscope.pd, pix_levels.pd, pix_lumaoffset.pd, + pix_metaimage.pd, pix_mix.pd, pix_movement.pd, pix_normalize.pd, + pix_offset.pd, pix_posterize.pd, pix_puzzle.pd, pix_rds.pd, + pix_rectangle.pd, pix_refraction.pd, pix_rgb2hsv.pd, pix_rgba.pd, + pix_roll.pd, pix_scanline.pd, pix_sig2pix~.pd, pix_takealpha.pd, + pix_threshold.pd, pix_yuv.pd: removed the [pix_buf] entirely from + the example-patches. i must have been somewhere else when i + added them + +2004-04-07 19:35 zmoelnig + + * src/Base/GemWinCreateMac.cpp: removed unused variables + +2004-04-07 19:33 zmoelnig + + * help/pix_rds.pd: fixed documentation + +2004-04-07 19:20 zmoelnig + + * src/Pixes/: filmMPEG3.cpp, pix_halftone.cpp, pix_metaimage.cpp, + pix_rds.cpp: fixed the alpha-channel + +2004-04-07 19:20 zmoelnig + + * src/Pixes/pix_rgba.cpp: added some more verbosity on errors (so + we know, where the error occured) + +2004-04-07 18:09 tigital + + * help/camera.pd: quick n'dirty camera help patch...will flesh out + tonight? + +2004-04-07 18:08 zmoelnig + + * src/Pixes/pix_rgba.cpp: fixed the bug that kept cs-converters + from working on apple + +2004-04-07 18:07 zmoelnig + + * src/Pixes/pix_rds.cpp: removed unused variable G + +2004-04-07 18:04 tigital + + * src/Pixes/: pix_backlight.h, pix_halftone.cpp, pix_levels.cpp, + pix_lumaoffset.cpp, pix_lumaoffset.h, pix_metaimage.cpp, + pix_backlight.cpp, pix_halftone.h, pix_levels.h, pix_metaimage.h: + added YUV support (kinda): it works, but isn't precisely correct + yet (especially in pix_objects that are color based; displacement + objects are less-obviously incorrect) + +2004-04-07 18:02 tigital + + * src/Pixes/: pix_refraction.cpp, pix_refraction.h: added YUV + support (kinda): it works, but isn't precisely correct yet + +2004-04-07 16:47 zmoelnig + + * src/Base/: GemMan.cpp, GemWinCreateXWin.cpp: added switchable + support for FSAA under linux with nvidia-cards + +2004-04-07 16:03 zmoelnig + + * src/Geos/imageVert.cpp: removed the genList from the + new()-function and put it into render() (this was default on + macOS already) + +2004-04-07 16:01 zmoelnig + + * src/Geos/newWave.cpp: removed verbose output + +2004-04-07 16:00 zmoelnig + + * src/Pixes/: pix_2grey.cpp, pix_a_2grey.cpp, pix_grey.cpp: added + US-english alias-name ("gray") + +2004-04-07 15:58 zmoelnig + + * src/: Manips/color.cpp, Manips/colorRGB.cpp, Pixes/pix_color.cpp, + Pixes/pix_coloralpha.cpp, Pixes/pix_colormatrix.cpp, + Pixes/pix_colorreduce.cpp: added british alias-name + +2004-04-07 13:19 zmoelnig + + * examples/07.texture/07.feedback.pd: an example for + texture-feedbacking + +2004-04-07 13:09 zmoelnig + + * src/Geos/: teapot.cpp, teapot.h: added 2nd argument for number of + slices fixed the draw-type + +2004-04-07 13:08 zmoelnig + + * src/Geos/: sphere.cpp, sphere.h: added second argument (number of + slices) the re-creation of the sphere is now triggered by a + change in state->texture too + +2004-04-07 12:28 zmoelnig + + * src/Pixes/: pix_alpha.cpp, pix_alpha.h: the processGray tried to + convert the image from RGB to RGBA in-place. i have no idea, how + this code made it into the [pix_alpha] + +2004-04-07 11:12 zmoelnig + + * src/Controls/gemwin.cpp: removed the non-mac specific part in the + fullscreen-message (no one really cares if the fullscreen-flag is + bool or int) + +2004-04-07 11:03 zmoelnig + + * src/Base/: CPPExtern.cpp, CPPExtern.h, GemBase.cpp, + GemPixDualObj.cpp, GemPixObj.cpp: all the CPPExtern-objects now + no their own class-name, which is stored in m_objectname + error-messages report this name + +2004-04-06 04:43 tigital + + * src/Base/GemPixImageSave.cpp: [OSX] cleaned up warnings and + consolidated a previously used function + +2004-04-05 05:06 cclepper + + * src/Pixes/pix_videoDarwin.h: removed commenting out of + m_colorspace + +2004-04-04 19:45 cclepper + + * src/Pixes/pix_texture.cpp: client_storage is now off by default + to avoid texture corruption problems when using pix_film in 'auto + 1' mode on OSX. setting individual frames still works fine with + client_storage however. + +2004-04-04 19:43 cclepper + + * src/Controls/gemwin.cpp: added OSX specific handling of the + 'fullscreen' message to accommodate multiple displays + +2004-04-03 20:34 zmoelnig + + * help/: pix_2grey.pd, pix_a_2grey.pd, pix_add.pd, pix_alpha.pd, + pix_background.pd, pix_backlight.pd, pix_bitmask.pd, pix_buf.pd, + pix_chroma_key.pd, pix_color.pd, pix_coloralpha.pd, + pix_colormatrix.pd, pix_colorreduce.pd, pix_compare.pd, + pix_composite.pd, pix_convolve.pd, pix_coordinate.pd, + pix_crop.pd, pix_curve.pd, pix_diff.pd, pix_dot.pd, pix_draw.pd, + pix_dump.pd, pix_duotone.pd, pix_flip.pd, pix_gain.pd, + pix_grey.pd, pix_halftone.pd, pix_histo.pd, pix_hsv2rgb.pd, + pix_info.pd, pix_invert.pd, pix_kaleidoscope.pd, pix_levels.pd, + pix_lumaoffset.pd, pix_mask.pd, pix_metaimage.pd, pix_mix.pd, + pix_multiply.pd, pix_normalize.pd, pix_offset.pd, + pix_pix2sig~.pd, pix_posterize.pd, pix_puzzle.pd, + pix_rectangle.pd, pix_refraction.pd, pix_rgb2hsv.pd, pix_rgba.pd, + pix_roll.pd, pix_scanline.pd, pix_subtract.pd, pix_takealpha.pd, + pix_threshold.pd, pix_videoDS.pd, pix_yuv.pd: fixed the + help-patches (mainly removed the "auto 1" message from [pix_buf] + as it was absolutely non-sense + +2004-04-03 02:06 cclepper + + * src/Pixes/: pix_videoDarwin.h, pix_videoDarwin.cpp: removed most + of the debug messages. + +2004-04-03 01:27 cclepper + + * src/: Base/GemPixImageSave.cpp, Base/GemPixImageSave.h, + Pixes/pix_write.cpp: now has functioning code on OSX + +2004-04-02 11:11 zmoelnig + + * src/Pixes/: DSgrabber.cpp, filmAVI.cpp, filmQT.cpp, filmQT4L.cpp, + pix_filmNEW.cpp, pix_videoDS.cpp: removed some verbosity + +2004-04-02 11:05 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: moved implementation + code from header-file to cpp-file + +2004-04-02 11:04 zmoelnig + + * src/Base/TextBase.cpp: fixed some includes (?) + +2004-04-02 08:43 zmoelnig + + * src/Pixes/: DSgrabber.cpp, pix_videoDS.cpp: included the + Base/config.h so we get the HAVE_DIRECTSHOW define when + appropriate set the help-symbol of the directshow-version of + pix_video to [pix_videoDS] (since the api is so different) + +2004-04-02 00:00 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX] now the mouse can be + hidden/shown via the cursor 0/1 message + +2004-04-01 20:52 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX] finally figure out how to get + mouse coords to be the same whether or not there is a title bar, + and no matter where the window is on the desktop...also solves + the "go to {0,0} when mouse leaves window" problem! + +2004-03-31 07:33 tigital + + * src/Pixes/pix_motionblur.cpp: shut up a warning: can't have /* + inside a comment + +2004-03-31 07:25 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX] shut up some warnings + +2004-03-29 20:57 zmoelnig + + * src/TODO: i guess we should release rather sooner than later + +2004-03-29 20:48 zmoelnig + + * src/yuv/: setup.h, yuv_add.cpp, yuv_add.h, yuv_adjust.cpp, + yuv_adjust.h, yuv_average.cpp, yuv_average.h, yuv_bandw.cpp, + yuv_bandw.h, yuv_bitshift.cpp, yuv_bitshift.h, yuv_bitwise.cpp, + yuv_bitwise.h, yuv_blank.cpp, yuv_blank.h, yuv_blur.cpp, + yuv_blur.h, yuv_chroma_key.cpp, yuv_chroma_key.h, yuv_clamp.cpp, + yuv_clamp.h, yuv_compare.cpp, yuv_compare.h, yuv_difference.cpp, + yuv_difference.h, yuv_dual.cpp, yuv_dual.h, yuv_emboss.cpp, + yuv_emboss.h, yuv_film.cpp, yuv_film.h, yuv_filmDarwin.cpp, + yuv_filmDarwin.h, yuv_gain.cpp, yuv_gain.h, yuv_invert.cpp, + yuv_invert.h, yuv_luma_key.cpp, yuv_luma_key.h, yuv_mask.cpp, + yuv_mask.h, yuv_mix.cpp, yuv_mix.h, yuv_movie.cpp, yuv_movie.h, + yuv_mult.cpp, yuv_mult.h, yuv_pixel_average.cpp, + yuv_pixel_average.h, yuv_pixel_data.cpp, yuv_pixel_data.h, + yuv_pixel_isolate.cpp, yuv_pixel_isolate.h, + yuv_pixel_replace.cpp, yuv_pixel_replace.h, yuv_posterize.cpp, + yuv_posterize.h, yuv_set.cpp, yuv_set.h, yuv_split.cpp, + yuv_split.h, yuv_subtract.cpp, yuv_subtract.h, yuv_swap.cpp, + yuv_swap.h, yuv_video.cpp, yuv_video.h, yuv_videoDarwin.cpp, + yuv_videoDarwin.h: finally removed the YUV-stuff (should have + been done for ages) + +2004-03-29 20:45 zmoelnig + + * doc/gem.release_notes.txt: fixed line-breaks + +2004-03-29 20:32 zmoelnig + + * examples/99.games/puzzle.pd: re-added as binary (pd-files + shouldn't be text) + +2004-03-29 20:32 zmoelnig + + * examples/99.games/puzzle.pd: removed "text"-pd files (should be + binary) + +2004-03-29 20:29 zmoelnig + + * examples/: 07.texture/01.texture.pd, 07.texture/02.TexCoord.pd, + 07.texture/04.moveImages.pd, 07.texture/05.newWave.pd, + 07.texture/06.ripple.pd, 08.io/01.Mouse.pd, 08.io/02.Tablet.pd, + 08.io/03.Orb.pd, 08.io/04.UseOrb.pd, 09.openGL/01.primQuad.pd: + re-added as binary (pd-files shouldn't be text) + +2004-03-29 20:29 zmoelnig + + * examples/: 07.texture/01.texture.pd, 07.texture/02.TexCoord.pd, + 07.texture/04.moveImages.pd, 07.texture/05.newWave.pd, + 07.texture/06.ripple.pd, 08.io/01.Mouse.pd, 08.io/02.Tablet.pd, + 08.io/03.Orb.pd, 08.io/04.UseOrb.pd, 09.openGL/01.primQuad.pd: + removed "text"-pd files (should be binary) + +2004-03-29 20:25 zmoelnig + + * examples/: 05.text/01.Text.pd, 05.text/01.TextNoLoadBang.pd, + 05.text/03.ChangeText.pd, 05.text/03.ChangeTextNoLoadBang.pd, + 05.text/arial.ttf, 06.particle/01.simple.pd, + 06.particle/02.fountain.pd, 06.particle/03.orbit.pd, + 06.particle/04.combo.pd, 06.particle/05.twoSrc.pd, + 06.particle/06.target.pd, 06.particle/07.render.pd, + 06.particle/08.info.pd: re-added as binary (pd-files shouldn't be + text) + +2004-03-29 20:25 zmoelnig + + * examples/: 05.text/01.Text.pd, 05.text/01.TextNoLoadBang.pd, + 05.text/03.ChangeText.pd, 05.text/03.ChangeTextNoLoadBang.pd, + 05.text/arial.ttf, 06.particle/01.simple.pd, + 06.particle/02.fountain.pd, 06.particle/03.orbit.pd, + 06.particle/04.combo.pd, 06.particle/05.twoSrc.pd, + 06.particle/06.target.pd, 06.particle/07.render.pd, + 06.particle/08.info.pd: removed "text"-pd files (should be + binary) + +2004-03-29 20:22 zmoelnig + + * examples/: 03.lighting/01.world_light.pd, + 03.lighting/02.light.pd, 03.lighting/03.controlLights.pd, + 03.lighting/04.moveSpheres.pd, 03.lighting/05.materials.pd, + 04.pix/01.image.pd, 04.pix/02.multiimage.pd, + 04.pix/04.ImageInPlace.pd, 04.pix/05.film.pd, 04.pix/05.movie.pd, + 04.pix/06.PixRect.pd, 04.pix/07.PixSet.pd, 04.pix/08.PixDump.pd, + 04.pix/09.Histogram.pd, 04.pix/10.PixDataSimple.pd, + 04.pix/11.PixDataComplex.pd, 04.pix/12.add.pd, + 04.pix/12.blending.pd, 04.pix/12.composite.pd, + 04.pix/12.pix_multiply.pd, 04.pix/13.maskDancer.pd, + 04.pix/14.takeAlpha.pd, 04.pix/15.pix_alpha.pd, + 04.pix/16.alphaGrey.pd, 04.pix/16.pix_2grey.pd, + 04.pix/17.pix_gain.pd, 04.pix/18.Curves.pd, + 04.pix/19.colorMatrix.pd, 04.pix/20.convolve.pd, + 04.pix/22.biquad.pd, 04.pix/23.gravity.pd, + 04.pix/24.time-filtering.pd, 04.pix/25.buffer.pd, + 04.video/00.SimpleVideo.pd, 04.video/01.VideoPaint.pd, + 04.video/02.VideoSphere.pd, 04.video/03.movement_detection.pd, + 04.video/04.videoRTX.pd: re-added as binary (pd-files shouldn't + be text) + +2004-03-29 20:21 zmoelnig + + * examples/: 03.lighting/01.world_light.pd, + 03.lighting/02.light.pd, 03.lighting/03.controlLights.pd, + 03.lighting/04.moveSpheres.pd, 03.lighting/05.materials.pd, + 04.pix/01.image.pd, 04.pix/02.multiimage.pd, + 04.pix/04.ImageInPlace.pd, 04.pix/05.film.pd, 04.pix/05.movie.pd, + 04.pix/06.PixRect.pd, 04.pix/07.PixSet.pd, 04.pix/08.PixDump.pd, + 04.pix/09.Histogram.pd, 04.pix/10.PixDataSimple.pd, + 04.pix/11.PixDataComplex.pd, 04.pix/12.add.pd, + 04.pix/12.blending.pd, 04.pix/12.composite.pd, + 04.pix/12.pix_multiply.pd, 04.pix/13.maskDancer.pd, + 04.pix/14.takeAlpha.pd, 04.pix/15.pix_alpha.pd, + 04.pix/16.alphaGrey.pd, 04.pix/16.pix_2grey.pd, + 04.pix/17.pix_gain.pd, 04.pix/18.Curves.pd, + 04.pix/19.colorMatrix.pd, 04.pix/20.convolve.pd, + 04.pix/22.biquad.pd, 04.pix/23.gravity.pd, + 04.pix/24.time-filtering.pd, 04.pix/25.buffer.pd, + 04.video/00.SimpleVideo.pd, 04.video/01.VideoPaint.pd, + 04.video/02.VideoSphere.pd, 04.video/03.movement_detection.pd, + 04.video/04.videoRTX.pd: removed "text"-pd files (should be + binary) + +2004-03-29 20:19 zmoelnig + + * examples/: 01.basic/01.redSquare.pd, + 01.basic/02.blueRectangle.pd, 01.basic/03.disk.pd, + 01.basic/04.PrimTri.pd, 01.basic/05.cube.pd, + 01.basic/06.sphere.pd, 01.basic/07.cylinder.pd, + 01.basic/08.model.pd, 01.basic/09.yelloTeapot.pd, + 02.advanced/01.Separator.pd, 02.advanced/02.Ortho.pd, + 02.advanced/03.View.pd, 02.advanced/03.View_OSD.pd, + 02.advanced/04.Fog.pd, 02.advanced/05.Stereo.pd, + 02.advanced/06.StereoParticle.pd, 02.advanced/07.Snapshot1.pd, + 02.advanced/08.Snapshot2.pd, 02.advanced/09.SnapshotSave.pd, + 02.advanced/10.LinearPath.pd, 02.advanced/11.SplinePath.pd, + 02.advanced/12.Hsv.pd, 02.advanced/13.ModelRescale.pd, + 02.advanced/14.RenderOrder.pd, 02.advanced/15.GemWin.pd: re-added + as binary (pd-files shouldn't be text) + +2004-03-29 20:17 zmoelnig + + * examples/: 01.basic/01.redSquare.pd, + 01.basic/02.blueRectangle.pd, 01.basic/03.disk.pd, + 01.basic/04.PrimTri.pd, 01.basic/05.cube.pd, + 01.basic/06.sphere.pd, 01.basic/07.cylinder.pd, + 01.basic/08.model.pd, 01.basic/09.yelloTeapot.pd, + 02.advanced/01.Separator.pd, 02.advanced/02.Ortho.pd, + 02.advanced/03.View.pd, 02.advanced/03.View_OSD.pd, + 02.advanced/04.Fog.pd, 02.advanced/05.Stereo.pd, + 02.advanced/06.StereoParticle.pd, 02.advanced/07.Snapshot1.pd, + 02.advanced/08.Snapshot2.pd, 02.advanced/09.SnapshotSave.pd, + 02.advanced/10.LinearPath.pd, 02.advanced/11.SplinePath.pd, + 02.advanced/12.Hsv.pd, 02.advanced/13.ModelRescale.pd, + 02.advanced/14.RenderOrder.pd, 02.advanced/15.GemWin.pd: removed + "text"-pd files (should be binary) + +2004-03-29 20:15 zmoelnig + + * help/: accumrotate.pd, alpha.pd, alternate.pd, ambient.pd, + ambientRGB.pd, average.pd, circle.pd, color.pd, colorRGB.pd, + colorSquare.pd, cone.pd, counter.pd, cube.pd, cylinder.pd, + depth.pd, diffuse.pd, diffuseRGB.pd, disk.pd, emission.pd, + emissionRGB.pd, gemhead.pd, gemkeyboard.pd, gemkeyname.pd, + gemmouse.pd, gemorb.pd, gemtablet.pd, gemwin.pd, hsv2rgb.pd, + imageVert.pd, light.pd, linear_path.pd, model.pd, multimodel.pd, + oneshot.pd, ortho.pd, part_color.pd, part_damp.pd, part_draw.pd, + part_follow.pd, part_gravity.pd, part_head.pd, part_killold.pd, + part_killslow.pd, part_orbitpoint.pd, part_size.pd, + part_source.pd, part_targetcolor.pd, part_targetsize.pd, + part_velcone.pd, part_velocity.pd, part_velsphere.pd, + part_vertex.pd, pix_background.pd, pix_blob.pd, + pix_clearblock.pd, pix_compare.pd, pix_data.pd, pix_film.pd, + pix_halftone.pd, pix_indycam.pd, pix_kaleidoscope.pd, pix_mix.pd, + pix_motionblur.pd, pix_movement.pd, pix_resize.pd, pix_roll.pd, + pix_scanline.pd, pix_sig2pix~.pd, pix_snap.pd, pix_texture.pd, + pix_video.pd, pix_videoDS.pd, pix_write.pd, pix_zoom.pd, + polygon.pd, primTri.pd, randomF.pd, rectangle.pd, + render_trigger.pd, rgb2hsv.pd, rotate.pd, rotateXYZ.pd, scale.pd, + scaleXYZ.pd, separator.pd, specular.pd, specularRGB.pd, + sphere.pd, spline_path.pd, square.pd, text2d.pd, text3d.pd, + textextruded.pd, textoutline.pd, translate.pd, translateXYZ.pd, + triangle.pd, tripleLine.pd, tripleRand.pd, v+.pd, v-.pd, + vector+.pd, vector-.pd, world_light.pd: readded as binary + +2004-03-29 20:14 zmoelnig + + * help/: pix_add.pd, pix_biquad.pd, pix_buf.pd, pix_chroma_key.pd, + pix_composite.pd, pix_diff.pd, pix_imageInPlace.pd, pix_mask.pd, + pix_multiimage.pd, pix_multiply.pd, pix_subtract.pd, + pix_takealpha.pd, shininess.pd: added as binary + +2004-03-29 20:12 zmoelnig + + * help/: pix_add.pd, pix_biquad.pd, pix_buf.pd, pix_chroma_key.pd, + pix_composite.pd, pix_diff.pd, pix_imageInPlace.pd, pix_mask.pd, + pix_multiimage.pd, pix_multiply.pd, pix_subtract.pd, + pix_takealpha.pd, shininess.pd, accumrotate.pd, alpha.pd, + alternate.pd, ambient.pd, ambientRGB.pd, average.pd, circle.pd, + color.pd, colorRGB.pd, colorSquare.pd, cone.pd, counter.pd, + cube.pd, cylinder.pd, depth.pd, diffuse.pd, diffuseRGB.pd, + disk.pd, emission.pd, emissionRGB.pd, gemhead.pd, gemkeyboard.pd, + gemkeyname.pd, gemmouse.pd, gemorb.pd, gemtablet.pd, gemwin.pd, + hsv2rgb.pd, imageVert.pd, light.pd, linear_path.pd, model.pd, + multimodel.pd, oneshot.pd, ortho.pd, part_color.pd, part_damp.pd, + part_draw.pd, part_follow.pd, part_gravity.pd, part_head.pd, + part_killold.pd, part_killslow.pd, part_orbitpoint.pd, + part_size.pd, part_source.pd, part_targetcolor.pd, + part_targetsize.pd, part_velcone.pd, part_velocity.pd, + part_velsphere.pd, part_vertex.pd, pix_background.pd, + pix_blob.pd, pix_clearblock.pd, pix_compare.pd, pix_data.pd, + pix_film.pd, pix_halftone.pd, pix_indycam.pd, + pix_kaleidoscope.pd, pix_mix.pd, pix_motionblur.pd, + pix_movement.pd, pix_resize.pd, pix_roll.pd, pix_scanline.pd, + pix_sig2pix~.pd, pix_snap.pd, pix_texture.pd, pix_video.pd, + pix_videoDS.pd, pix_write.pd, pix_zoom.pd, polygon.pd, + primTri.pd, randomF.pd, rectangle.pd, render_trigger.pd, + rgb2hsv.pd, rotate.pd, rotateXYZ.pd, scale.pd, scaleXYZ.pd, + separator.pd, specular.pd, specularRGB.pd, sphere.pd, + spline_path.pd, square.pd, text2d.pd, text3d.pd, textextruded.pd, + textoutline.pd, translate.pd, translateXYZ.pd, triangle.pd, + tripleLine.pd, tripleRand.pd, v+.pd, v-.pd, vector+.pd, + vector-.pd, world_light.pd: removed "text"-pd files (should be + binary) + +2004-03-29 20:11 zmoelnig + + * help/pix_image.pd: new help-patch + +2004-03-29 18:10 zmoelnig + + * help/gemhead.pd: updated documentation + +2004-03-29 18:09 zmoelnig + + * src/gem.dsp: compiled under windoze and thus updated my + project-file + +2004-03-29 18:08 zmoelnig + + * src/Base/GemVersion.h: version is now ReleaseCandidate-1 + +2004-03-29 18:05 zmoelnig + + * src/Pixes/: pix_backlight.cpp, pix_blur.cpp, pix_dot.cpp: removed + unneeded variables to silence macOS-gcc + +2004-03-29 18:03 zmoelnig + + * src/Geos/: curve.cpp, disk.cpp, newWave.cpp, slideSquares.cpp: + removed unneeded variables to shut down macOS-gcc + +2004-03-29 18:02 zmoelnig + + * src/Base/GemWinCreateMac.cpp: accidentially the button-state was + reported to be "1" when released (like on press); fixed + +2004-03-29 18:01 zmoelnig + + * src/Base/GemPixImageSave.cpp: type change to get rid of + compiler-warning under macOS + +2004-03-29 18:00 zmoelnig + + * GEM_darwin.pbproj/: project.pbxproj, zmoelnig.pbxuser: compiled + it and therefore updated my project files + +2004-03-29 08:43 zmoelnig + + * src/Base/TextBase.cpp: added includes for NT + +2004-03-29 08:12 cclepper + + * src/Geos/: sphere.cpp, sphere.h: changed the render function to + only calculate the geometry when the geometry changes. results + in at least a 3X speedup. + +2004-03-26 07:40 cclepper + + * src/Pixes/pix_offset.cpp: initialized the Y,U,V variables to 0. + no more random color fields on loading a patch with pix_offset. + +2004-03-25 20:57 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX]-only: standardized mouse + location to "window relative": however, remember that (0,0) is + always the top left corner, whether or not there is a title + bar/border + +2004-03-25 18:22 zmoelnig + + * src/: Base/GemBase.cpp, Base/GemCache.cpp, Base/GemCache.h, + Base/GemPixDualObj.cpp, Base/GemPixObj.cpp, + Pixes/pix_clearblock.cpp, Pixes/pix_image.cpp, + Pixes/pix_multiimage.cpp, Pixes/pix_snap.cpp: added a + magic-number to the GemCache to ensure that the cache is valid + +2004-03-25 13:12 zmoelnig + + * src/Controls/gemhead.cpp: initialize GemCache on creation, so we + can dynamically create [gemhead]s and they will start rendering + without having to restart the engine + +2004-03-25 11:03 zmoelnig + + * src/Geos/model.cpp: removed another post() + +2004-03-24 22:11 zmoelnig + + * src/Geos/model.cpp: removed the "drawing all groups" messages + +2004-03-24 22:10 zmoelnig + + * src/Base/: GemCache.cpp, GemCache.h: added a reset()-method to + re-set an instance without having to destroy and re-create it + (see [gemhead]) + +2004-03-24 22:08 zmoelnig + + * src/Controls/gemhead.cpp: each gemhead now has an instance of the + GemCache that is only reset when rendering is started (instead of + being destroyed and re-created) hopefully this fixes some memory + bug. + +2004-03-24 18:27 zmoelnig + + * src/openGL/: GEMglCallList.cpp, GEMglCallList.h: added, since + needed for debugging + +2004-03-24 14:20 zmoelnig + + * src/Controls/gemhead.cpp: fixed initial materials (ambient, + specular, diffuse, shininess, emission) + +2004-03-24 12:47 zmoelnig + + * src/Base/: TextBase.cpp, TextBase.h: added auto-(re)loading of + fonts when rendering is started fixed some cleanup-issues + +2004-03-24 12:41 zmoelnig + + * src/Geos/text2d.cpp: removed "done" message + +2004-03-22 23:31 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX]-only: [gemwin] now correctly + responds to the following messages: border & title; also fixed + keyboard character input for [gemkeyname] + +2004-03-21 20:58 zmoelnig + + * help/: curve.pd, invert.pd, pix_2grey.pd, pix_a_2grey.pd, + pix_aging.pd, pix_alpha.pd, pix_bitmask.pd, pix_coloralpha.pd, + pix_colormatrix.pd, pix_convolve.pd, pix_coordinate.pd, + pix_curve.pd, pix_draw.pd, pix_dump.pd, pix_flip.pd, pix_gain.pd, + pix_histo.pd, pix_hsv2rgb.pd, pix_image.pd, pix_invert.pd, + pix_metaimage.pd, pix_movie.pd, pix_normalize.pd, pix_offset.pd, + pix_pix2sig~.pd, pix_puzzle.pd, pix_rectangle.pd, + pix_refraction.pd, pix_rgb2hsv.pd, pix_rgba.pd, pix_rtx.pd, + pix_set.pd, pix_threshold.pd, teapot.pd: readded help-patches + +2004-03-21 20:53 zmoelnig + + * help/: curve.pd, invert.pd, pix_2grey.pd, pix_a_2grey.pd, + pix_aging.pd, pix_alpha.pd, pix_bitmask.pd, pix_coloralpha.pd, + pix_colormatrix.pd, pix_convolve.pd, pix_coordinate.pd, + pix_curve.pd, pix_draw.pd, pix_dump.pd, pix_flip.pd, pix_gain.pd, + pix_histo.pd, pix_hsv2rgb.pd, pix_image.pd, pix_invert.pd, + pix_metaimage.pd, pix_movie.pd, pix_normalize.pd, pix_offset.pd, + pix_pix2sig~.pd, pix_puzzle.pd, pix_rectangle.pd, + pix_refraction.pd, pix_rgb2hsv.pd, pix_rgba.pd, pix_rtx.pd, + pix_set.pd, pix_threshold.pd, teapot.pd: removed to check in as + "binary" again + +2004-03-21 20:52 zmoelnig + + * help/: pix_grey.pd, pix_yuv.pd: updated help-patches + +2004-03-21 14:39 zmoelnig + + * src/Geos/: curve.cpp, curve.h: fixed rectangle textureing + +2004-03-20 21:42 zmoelnig + + * doc/gem.known_bugs.txt: fixed bugs + +2004-03-20 21:36 zmoelnig + + * src/: Base/GemGluObj.cpp, Base/GemGluObj.h, Geos/cone.cpp, + Geos/cone.h, Geos/cylinder.cpp, Geos/cylinder.h, Geos/disk.cpp, + Geos/sphere.cpp, Geos/sphere.h: rolled the GLU code directly into + the objects to enable rectangle textures + +2004-03-20 17:42 zmoelnig + + * src/: Geos/teapot.cpp, Geos/teapot.h, Gnu/configure: cleaned + GLUT-removal code a bit + +2004-03-20 17:06 zmoelnig + + * src/: Geos/teapot.cpp, Geos/teapot.h, Gnu/configure.in, + Base/GemGlutObj.cpp, Base/GemGlutObj.h, Base/configLinux.h.in: + removed dependencies on GLUT [teapot] is now "built-in" + +2004-03-19 20:52 zmoelnig + + * help/: pix_texture.pd, pix_texture2.pd, pix_videoDS.pd: updated + help-patches removed all traces of [pix_texture2] + +2004-03-19 20:12 zmoelnig + + * help/: curve.pd, polygon.pd: updated help-patches + +2004-03-19 20:09 zmoelnig + + * src/Pixes/: pix_compare.cpp, pix_compare.h, pix_diff.cpp, + pix_diff.h: added grayscale support + +2004-03-19 18:00 zmoelnig + + * src/Geos/: polygon.cpp, polygon.h: removed the "maximum number of + control points" restriction (so now, we can have 1000s of control + points in polygon/curve) + +2004-03-19 16:01 zmoelnig + + * help/: alternate.pd, colorSquare.pd, curve.pd, gemhead.pd, + gemkeyboard.pd, gemkeyname.pd, gemmouse.pd, gemtablet.pd, + hsv2rgb.pd, imageVert.pd, invert.pd, light.pd, linear_path.pd, + model.pd, multimodel.pd, oneshot.pd, ortho.pd, polygon.pd, + primTri.pd, rectangle.pd, render_trigger.pd, rotate.pd, + rotateXYZ.pd, scale.pd, scaleXYZ.pd, separator.pd, specular.pd, + specularRGB.pd, square.pd, text2d.pd, text3d.pd, textextruded.pd, + textoutline.pd, translate.pd, translateXYZ.pd, triangle.pd, + tripleLine.pd, v+.pd, world_light.pd: new help-patches (e.g: + working examples) + +2004-03-19 16:00 zmoelnig + + * src/Geos/polygon.cpp: added a method "width" for the linewidth + (compatibility with other geos) + +2004-03-19 15:58 zmoelnig + + * src/MarkEx/hsvrgb.cpp: changed the helpsymbol + +2004-03-19 15:54 zmoelnig + + * src/Base/GemWinCreateMac.cpp: got the mapping from mac-buttons to + gem-buttons right (hopefully) + +2004-03-19 12:47 zmoelnig + + * help/randF.pd: randF is only an alias for randomF; there + shouldn't be a separate help-file + +2004-03-18 17:51 zmoelnig + + * src/: Base/GemWinCreateMac.cpp, Controls/gemmouse.cpp: the + mac-spefific button-offset has been moved to GemWinCreateMac + +2004-03-17 21:04 zmoelnig + + * src/Pixes/: pix_filmNEW.h, pix_videoNEW.h: force auto-registering + when appropriate + +2004-03-17 21:02 zmoelnig + + * src/Pixes/: film.cpp, film.h, filmAVIPLAY.cpp, filmMPEG1.cpp, + filmMPEG3.cpp, filmQT4L.cpp: set the "newfilm"-flag when a new + film is loaded + +2004-03-17 20:58 zmoelnig + + * src/Geos/curve3d.cpp: tried to fix rectangle textures + +2004-03-16 20:41 zmoelnig + + * src/Geos/: circle.cpp, newWave.cpp, newWave.h, ripple.cpp, + ripple.h, rubber.cpp, rubber.h, slideSquares.cpp, tube.cpp: tried + to fix rectangle textures + +2004-03-16 02:16 tigital + + * src/Base/GemMan.cpp: OSX only: forgot to "return noErr" in event + loop! + +2004-03-15 14:35 zmoelnig + + * src/Pixes/pix_tIIR.cpp: small bug-fix: a unity gain of "1" was + translated to 255>>8 (which is less than 1 and led to fading + feed-backs) + +2004-03-13 10:10 cclepper + + * src/Pixes/pix_movement.cpp: fixed #ifdefs + +2004-03-10 18:32 zmoelnig + + * src/Gnu/: aclocal.m4, configure, configure.in: changed the + configure-process GemLibs can now be specified with "--gemlibs" + additional search-paths for ALL libraries can be specified with + "--libdir" + +2004-03-10 18:07 zmoelnig + + * src/Pixes/pix_movement.cpp: ifdef'd the altivec code with __VEC__ + +2004-03-10 18:03 zmoelnig + + * src/: Controls/gemhead.h, Controls/gemkeyboard.h, + Controls/gemkeyname.h, Controls/gemmouse.h, Controls/gemorb.h, + Controls/gemtablet.h, Controls/gemwin.h, openGL/GLdefine.h, + Pixes/pix_buffer.h: added the HELPSYMBOL-BASE "Gem/", so the + help-patches will work, even though this object inherits from + CPPExtern and not from GemBase + +2004-03-10 17:55 zmoelnig + + * src/Pixes/: pix_depot.cpp, pix_depot.h, pix_get.h, pix_put.h: + pix_depot and friends are now in pix_buffer et al. + +2004-03-10 17:04 zmoelnig + + * src/Base/: TextBase.cpp, TextBase.h: added a new justification + "BASE" that does no justification at all; usefull, if you want a + constant base-line. + +2004-03-07 19:49 cclepper + + * src/Base/GemWinCreateMac.cpp: new fullscreen code for 10.3 which + is good. the window deletion routine does crash every 10-20 + iterations though, which is bad. + +2004-03-01 02:29 cclepper + + * src/Pixes/pix_background.cpp: added some more cache hints - 45% + percent faster + +2004-03-01 02:02 cclepper + + * src/Pixes/: pix_film.cpp, pix_film.h, pix_filmDarwin.cpp, + pix_filmDarwin.h: I think this fixes the majority of playback + problems on OSX. Movie loading is faster, playback is smoother + using 'rate $1'. + +2004-03-01 01:58 cclepper + + * src/Pixes/pix_gain.cpp: just a cleaning + +2004-03-01 01:55 cclepper + + * src/Pixes/pix_motionblur.cpp: slightly tweaked Altivec (load + hoisting) + +2004-03-01 01:52 cclepper + + * src/Pixes/: pix_movement.cpp, pix_movement.h: added some Altivec + for YUV + +2004-03-01 01:50 cclepper + + * src/Pixes/pix_offset.cpp: slightly better altivec. + +2004-02-29 06:24 cclepper + + * src/Base/GemWinCreateMac.cpp: an improved window bounds fix. + still need to find a workaround for the fullscreen on 10.3 though + +2004-02-25 07:25 cclepper + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h: split processing into + RGBA and YUV portions. added Altivec for YUV. + +2004-02-16 20:07 zmoelnig + + * src/Base/TextBase.cpp: added path-searching for fonts. so you + can add your systems favorite font-path and get a lot of other + TrueType-faces + +2004-02-16 05:06 cclepper + + * src/Pixes/pix_blob.cpp: changed float to int processing in the + YUV code - now 10X faster. + +2004-02-15 19:32 cclepper + + * src/Base/GemWinCreateMac.cpp: this should fix the window bounds + problem. + +2004-02-13 15:09 zmoelnig + + * GEM_darwin.pbproj/project.pbxproj: hopefully got the + reference-types allright ("relative" instead of "absolute") + +2004-02-13 15:06 zmoelnig + + * GEM_darwin.pbproj/zmoelnig.pbxuser: updated my project + +2004-02-12 18:31 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: fixed a bug with filename-searching + +2004-02-12 18:28 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h, video.cpp, video.h, + videoDV4L.cpp, videoDV4L.h: added better support for firewire + under linux (thanks to franz hildgen) + +2004-02-12 18:25 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: fixed a type that prevented this + from being compiled + +2004-02-10 13:36 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: now the gemwindow can be created + even if we only have DirectColor (instead of TrueColor); however + i haven't bothered yet with setting up the Palettes. + +2004-02-10 13:27 zmoelnig + + * src/Controls/gemwin.cpp: added a newline at end of file + +2004-02-10 13:24 zmoelnig + + * src/Base/GemMan.cpp: more friendly output of the "create window" + message + +2004-02-10 11:47 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: - added ErrorHandling, so Gem + doesn't crash if the display-/window-context has vanished before + we try to destroy the gemwindow - removed checking for ModLines + on remote displays; this used to crash; unfortunately this + disables fullscreen on remote displays + +2004-02-10 11:23 zmoelnig + + * src/Base/GemMan.cpp: added and disabled Guenter at the + splash-screen (again) + +2004-02-06 13:10 zmoelnig + + * src/Geos/model.cpp: BUGFIX: used to crash when no model was + loaded and trying to apply a texture. (at least if NDEBUG was + not defined) + +2004-02-06 13:08 zmoelnig + + * src/Manips/: ortho.cpp, ortho.h: as ben has pointed out, there + seems to be a bug when rendering to non-square windows: + everything get's distorted (say: on 640x480 a square would be a + rectangle with a 4/3-aspect); since i think this might break a + lot of things (?), i have left the old default behaviour but you + can turn off compatibility with "compat 0" + +2004-02-05 19:17 zmoelnig + + * src/: gem.dsp, gem_vc6.dsw: updated my vc-project it now compiles + with FTGL + +2004-02-05 19:16 zmoelnig + + * src/Base/: config.h, TextBase.h, configDarwin.h, configNT.h: + moved the defines for the platforms (e.g: whether macos uses + FTGL) into the appropriate config*.h files + +2004-02-02 12:19 zmoelnig + + * src/TODO: all docu is done; but we need to compile it under + windows with FTGL support (i failed...) + +2004-02-02 12:18 zmoelnig + + * src/gem.dsp: updated my project + +2004-02-02 12:15 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: put QT-loader *after* the AVI-loader, + because QT sometimes crashes when having loaded AVI's and tries + to load QT's afterwards. so AVI is now handled by the built in + (for win) routines, and QuickTime is only used if it fails + +2004-02-02 12:13 zmoelnig + + * src/Pixes/videoV4L.cpp: post "video4linux" and remove post of + "fish" ;-) + +2004-02-02 12:12 zmoelnig + + * src/Pixes/videoDV4L.cpp: added some support for devices not + handled by devfs; added upside-down flag decode RGBA by hand + (since otherwise we would decode YUV->RGB->RGBA, all in + software...) + +2004-02-02 12:11 zmoelnig + + * src/Pixes/video.h: ifdef'ed the inclusion of m_pd.h to make sure + it is not included double (breaks with old version of pd) + +2004-02-02 12:08 zmoelnig + + * src/Manips/camera.h: exported the CVector class, since vc + complaint about this (probably this will break future things...) + +2004-02-02 12:06 zmoelnig + + * src/Base/GemPixUtil.cpp: hopefully fixed fromUYVY since it did + mix up U and V when decoding dv-streams + +2004-02-02 12:04 zmoelnig + + * src/Geos/model_loader.cpp: fixed types to keep compiler silent + +2004-02-02 12:03 zmoelnig + + * src/Pixes/pix_movieDarwin.cpp: ifdef'ed everything to be + __APPLE__ only + +2004-01-31 07:55 cclepper + + * src/Pixes/: pix_movieDarwin.cpp, pix_movieDarwin.h: new pix_movie + for OSX. uses an optimized path for movie playing and texturing. + +2004-01-29 02:59 tigital + + * src/Pixes/: pix_kaleidoscope.cpp, pix_colorreduce.cpp: + initialized variables to shutup compiler warnings + +2004-01-28 17:06 tigital + + * src/Base/GemMan.cpp: OSX only: added carbon event processing to + dispatchGemWindowMessages() (Finally!) + +2004-01-28 17:02 tigital + + * src/: Base/GemEvent.cpp, Base/GemEvent.h, Controls/gemmouse.h: + added mouse wheel support, though there is no outlet (yet) + +2004-01-28 16:59 tigital + + * src/Controls/gemmouse.cpp: added mouse wheel support OSX only: + added support for correct mouse buttons + +2004-01-28 16:54 tigital + + * src/Base/GemWinCreateMac.cpp: OSX only: added event handler + support for window, mouse and keyboard events (ie. [gemmouse] and + [gemkeyboard]), plus the window now behaves in a standard gui + manner + +2004-01-28 05:46 cclepper + + * src/Pixes/pix_filmDarwin.h: fixed a little problem with newImage + being multiply defined + +2004-01-27 18:13 zmoelnig + + * src/Pixes/: pix_texture2.cpp, pix_texture2.h: re-removed them + (somehow they reappeared in the CVS; guess it has to do with + sourceforge's server-sync) + +2004-01-21 17:50 zmoelnig + + * src/Geos/: model.cpp, model_loader.cpp, model_loader.h: added + support for rectangle textures even with sphereMaps ("texture 1") + +2004-01-20 09:13 cclepper + + * src/Geos/: model.cpp, model.h, multimodel.cpp, model_loader.cpp, + model_loader.h: added support for rectangle textures to glm + +2004-01-09 11:32 zmoelnig + + * src/gem.dsp: updated my vc-project + +2004-01-09 11:31 zmoelnig + + * src/BUGS: updated fixed bugs + +2004-01-09 06:09 tigital + + * src/Pixes/pix_filmDarwin.h: values should be "TimeValue", not + int's (shuts up compiler warnings) + +2004-01-09 05:27 tigital + + * src/Geos/model_loader.cpp: added (int *) casts to fscanf() calls + to shutup compiler (someone had to do it!) + +2004-01-08 20:16 zmoelnig + + * src/Geos/model_loader.h: hmm: probably new linebreaks + +2004-01-08 20:07 zmoelnig + + * src/Pixes/: pix_kaleidoscope.cpp, pix_kaleidoscope.h: YUV-support + fixed (the image looks "different" (squashed) than RGBA, but at + least it is functional and not crashing any more), Grayscale + works great + +2004-01-08 20:03 zmoelnig + + * src/Gnu/undocumented_objects: i think, all objects are documented + (somehow: some help-patches are rather crude) + +2004-01-08 20:02 zmoelnig + + * src/Geos/: ripple.cpp, ripple.h, rubber.cpp, rubber.h: several + BUG-fixes (esp: put the pivot-point of rubber/ripple into the + center; made the sizeMess-work; use normalized coordinates for + rubber (now independent of the window-dimensions) + +2004-01-08 19:58 zmoelnig + + * examples/07.texture/06.ripple.pd, help/newWave.pd, + help/pix_kaleidoscope.pd, help/ripple.pd, help/rubber.pd: updated + documentation + +2004-01-05 20:13 zmoelnig + + * examples/07.texture/05.newWave.pd, help/newWave.pd: updated docs + +2004-01-05 20:08 zmoelnig + + * help/pix_background.pd: use a movie rather than an image for + demonstrating this + +2004-01-05 19:37 zmoelnig + + * src/Pixes/pix_filmDarwin.h: added newImage-variable since it was + needed + +2004-01-05 19:35 zmoelnig + + * src/Pixes/pix_colorreduce.cpp: removed a debug message + +2004-01-05 19:34 zmoelnig + + * src/Geos/model_loader.h: added an include for windows + +2004-01-05 19:20 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: re-added inlets for height, + size and mode transformed and scaled the newWave so that it + behaves exactly like a square of the same dimension when there is + no motion. + + ASK: why is this "blend" function in there ? + +2004-01-05 12:08 zmoelnig + + * src/Gnu/: configure, configure.in: better checks for pd-version + +2004-01-05 11:18 zmoelnig + + * examples/04.pix/24.time-filtering.pd: glu-objects (like sphere) + have a bit of a problem with non-power-of-2 textures + +2004-01-05 10:58 zmoelnig + + * examples/04.video/00.SimpleVideo.pd: updated documentation + +2004-01-05 10:42 zmoelnig + + * GEM_darwin.pbproj/zmoelnig.pbxuser: my project-builder project + has been updated + +2004-01-05 10:41 zmoelnig + + * GEM.README, GEM_INSTALL.bat, GEM_INSTALL.sh, GEM_RELUNIX.sh: + updated doc + +2004-01-05 10:28 zmoelnig + + * src/openGL/README: fixed typos + +2004-01-05 10:23 zmoelnig + + * src/Pixes/pix_normalize.cpp: use integer calcs rather than + floating point + +2004-01-04 19:56 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L.h: bugfix (videoV4L crashed + when you tried to open a non-existant device) + +2004-01-04 19:53 zmoelnig + + * src/Gnu/: Makefile.in, configure, configure.in, makesource: added + checks for the pd-version (because of reference install-paths) + +2004-01-04 19:51 zmoelnig + + * manual/: BasicObj.html, GemFaq.html, GemWPd.html, Gloss.html, + Images.html, Lighting.html, ListObjects.html, Pixes.html, + Texture.html, WriteCode.html: updated documentation + +2004-01-04 19:48 zmoelnig + + * doc/gem.known_bugs.txt, doc/gem.release_notes.txt, + doc/gem.todo.txt, examples/04.pix/05.film.pd, + examples/04.pix/07.PixSet.pd, examples/04.pix/12.pix_multiply.pd, + examples/04.pix/24.time-filtering.pd, + examples/04.video/00.SimpleVideo.pd, + examples/07.texture/06.ripple.pd, examples/99.games/puzzle.pd: + updated documentation + +2003-12-31 03:54 cclepper + + * src/Geos/: model.cpp, model.h, model_loader.cpp, model_loader.h: + added support for groups + +2003-12-31 03:49 cclepper + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h: yet another + rewrite of the QT tasking code. this should hopefully give the + 'best of both worlds'. + +2003-12-17 07:21 cclepper + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h: added the real + frame counting method and made improvements to using the counter + method of playback - no double processed frames + +2003-12-17 07:13 tigital + + * src/Pixes/: pix_biquad.h, pix_film.h: rearranged variables to + shut up gcc 3.3 about initialization + +2003-12-17 07:13 tigital + + * src/Pixes/pix_2grey.cpp: removed unused vector to shut up gcc 3.3 + +2003-12-17 07:11 tigital + + * src/Geos/newWave.h, examples/07.texture/05.newWave.pd: added + Cyrille's changes: now it's more controllable (and useful): see + examples/07.texture/05.newWave.pd + +2003-12-17 07:05 tigital + + * src/Geos/newWave.cpp: added Cyrille's changes: now it's more + controllable (and useful): see examples/07.texture/05.newWave.pd + +2003-12-12 19:21 zmoelnig + + * src/MarkEx/abs.cpp: dos2unix -- linebreaks + +2003-12-10 03:18 cclepper + + * src/Pixes/: pix_filmDarwin.h, pix_filmDarwin.cpp: rewrite to make + playback using 'auto' more efficient. 'rate' message sets the + playback speed when using 'auto' mode. the movie rate is + properly set for correct qt playback. new doDebug for handling + internal state info display to the console. + +2003-12-08 07:02 cclepper + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h: added hiquality + message to deal with DV streams (yeah i know it's ass backwards + to disable hiquality to make DV streams look good) + +2003-12-07 03:47 cclepper + + * src/Pixes/pix_texture.cpp: changed internal texture format back + to RGBA so now alpha works in textures + +2003-12-06 06:04 cclepper + + * src/Pixes/pix_videoDarwin.cpp: default is now set to YUV + colorspace + +2003-12-04 18:57 zmoelnig + + * help/curve3d.pd: new help-patch from cyrille + +2003-12-04 18:53 zmoelnig + + * help/: alpha.pd, ambientRGB.pd, diffuseRGB.pd, gemhead.pd, + gemkeyboard.pd, gemkeyname.pd, gemmouse.pd, gemwin.pd, + imageVert.pd, light.pd, part_color.pd, part_damp.pd, + part_draw.pd, part_follow.pd, part_killold.pd, part_killslow.pd, + part_targetcolor.pd, part_targetsize.pd, pix_2grey.pd, + pix_a_2grey.pd, pix_add.pd, polygon.pd, rectangle.pd, + separator.pd, square.pd, triangle.pd: reviewed help-patches + +2003-12-04 14:18 zmoelnig + + * src/: Base/GemShape.cpp, Base/GemShape.h, Geos/polygon.cpp, + Geos/polygon.h, Geos/primTri.cpp: bugfix: one additional inlet + was created for [primTri], [curve] and [polygon] by GemShape. i + have added a new creator for GemShape (without arguments) that + will not create the "size"-inlet - this is for objects that want + only the "draw" and "width" message + +2003-12-04 13:19 zmoelnig + + * src/Pixes/pix_mix.h: the bugfix for Grey-support needs a + header-file too... + +2003-12-03 14:21 zmoelnig + + * src/Pixes/pix_mix.cpp: BUGFIX: grayscale was missing + +2003-12-03 08:18 cclepper + + * src/Pixes/: pix_texture.cpp, pix_texture.h: made client_storage a + user defined option. this is a temporary workaround to some + texture corruption issues. + +2003-12-02 16:26 zmoelnig + + * src/gem.dsp: my new windows-project + +2003-12-02 16:26 zmoelnig + + * src/BUGS: filed YUV-bug of pix_kaleidoscope + +2003-12-02 16:22 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: added dummy + messages for "enumerate" and "dialog" (used by pix_videoDS, in + the future probably by others...) + +2003-12-02 16:21 zmoelnig + + * src/Pixes/: pix_videoDS.cpp, pix_videoDS.h: "dialog" with no args + is now the same as "setup" ("setup" message should be deprecated) + +2003-12-02 16:20 zmoelnig + + * src/Pixes/: pix_video.cpp, pix_video.h: added dummy messages for + "enumerate" and "dialog" (used by pix_videoDS) + +2003-12-02 16:19 zmoelnig + + * src/Pixes/pix_filmQT.cpp: upside down + +2003-12-02 16:18 zmoelnig + + * src/Pixes/: pix_filmNT.cpp, pix_filmNT.h: support for + colour-space switching + +2003-12-02 16:18 zmoelnig + + * src/Pixes/: pix_filmNEW.cpp, pix_filmNEW.h: use __NEW_FILM rather + than __NEW__ + +2003-12-02 16:17 zmoelnig + + * src/Pixes/pix_filmDarwin.cpp: colourspace-switching with GL_* + rather than 0 (YUV) and 1 (RGBA) + +2003-12-02 16:16 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_film.h: a bit of support for + colourspace-switching + +2003-12-02 16:15 zmoelnig + + * src/Pixes/: filmQT.cpp, filmQT.h: made it a bit more stable on + windos + +2003-12-02 16:14 zmoelnig + + * src/Pixes/pix_biquad.cpp: added some braces to make execution + order clearer + +2003-12-02 15:57 zmoelnig + + * src/Base/: config.h, configNT.h: split __NEW__ in __VIDEO_NEW and + __FILM_NEW + +2003-12-02 07:36 cclepper + + * src/Pixes/pix_sig2pix.cpp: changed in to GLint to match prototype + of csMess + +2003-12-02 06:38 cclepper + + * src/Pixes/pix_videoDarwin.cpp: fixed error in code - it now + compiles + +2003-12-01 15:48 zmoelnig + + * src/gem.dsp: once in a while i compile under NT... + +2003-12-01 15:47 zmoelnig + + * src/Base/configLinux.h: configLinux.h should be generated for all + machines by the configure-script. don't know, how this came into + the CVS + +2003-12-01 15:27 zmoelnig + + * src/BUGS: another bug fixed for NT + +2003-12-01 15:19 zmoelnig + + * src/Gnu/configure: rebuilt configure to add the "-l" flags + +2003-12-01 15:05 zmoelnig + + * src/Gnu/aclocal.m4: rebuilt it with another version of "aclocal" + +2003-12-01 14:55 zmoelnig + + * src/BUGS: another bugfix (pix_videoDS) reported + +2003-12-01 14:52 zmoelnig + + * src/BUGS: updated bugfixes ("create" on remote X-servers works + for most but my machine) + +2003-12-01 14:48 zmoelnig + + * src/Gnu/: acinclude.m4, aclocal.m4: bugfix: configure wouldn't + add "-l" flags for "standard" libraries found with AC_FIND_LIB + +2003-12-01 11:09 zmoelnig + + * src/Pixes/: pix_videoDS.cpp, pix_videoDS.h: removed swapMess() + and dimenMess() - should be handled by the parent-class + + removed explicit-call to the parent's setupCallback; should be + handled via CPPExtern. + + turned on capturing for device 0 by default. + + Callback() now returns NOERROR instead of S_FALSE: i don't know + why we would want to stop grabbing::i only got 1 frame and it + stopped; now i can grab moving images ! messages: + + the pixBlock-array is now called m_pixBlockBuf[]; m_pixBlock is + another pixBlock that gets the data on "render()" via fromBGR(). + LATER: add other functions to let users select the color-space + via the setup-dialog + + added a "colorspace" message, that sets the output-colorspace + (not the capturing one!) + + made the "device" message an alias for "open" (because of + compatibility to pix_videoNEW) made the "dialog"-message (without + arguments) an alias for "setup", because this gives us one (1) + interface to popup-dialogs. + + LATER: make "dimen", "norm", "channel" work + +2003-12-01 10:59 zmoelnig + + * src/Pixes/pix_videoDarwin.cpp: changed the m_colorspace, to not + only be 0 (for YUV) and 1(for RGBA) but rather GL_YCBCR422_GEM + and GL_RGBA + +2003-12-01 10:56 zmoelnig + + * src/Pixes/pix_video.h: if we HAVE_DIRECTSHOW, we disable the + AUTO_REGISTER stuff, if(!) DO_AUTO_REGISTER_CLASS is not + defined. pix_videoDS will define the DO_AUTO..., to register + itself + + this is *very* ugly LATER rethink this + +2003-12-01 10:52 zmoelnig + + * src/Pixes/: pix_videoNT.cpp, pix_videoNT.h: removed offsetMess() + and swapMess(); should be handled by the parent-class use + fromBGR() rather than doing it by hand. this enables other + color-spaces too! added a colorspace-message + +2003-12-01 10:50 zmoelnig + + * src/Gnu/: acinclude.m4, aclocal.m4, configure, configure.in: + changed the configure a bit to make more intelligent searches in + the search-paths, for both libs and headers we now search + /usr/local/src and /usr/local/include instead of whole /usr/local + (at least for headers) + +2003-11-28 19:19 ggeiger + + * src/Manips/alpha.cpp: fixed alpha depthtest default value + +2003-11-25 18:38 zmoelnig + + * src/Pixes/: pix_pix2sig.cpp, pix_pix2sig.h: support for different + colour-spaces + +2003-11-25 18:38 zmoelnig + + * src/Pixes/: pix_sig2pix.cpp, pix_sig2pix.h: support for different + colour-spaces (use "colorspace"-message) + +2003-11-25 17:54 zmoelnig + + * src/Pixes/: pix_sig2pix.cpp, pix_sig2pix.h: using + setCsizeByFormat() instead of doing this by hand also there is + now a m_reqFormat defining the colourspace (but only GL_RGBA is + supported....) + +2003-11-25 17:52 zmoelnig + + * src/Base/GemPixUtil.cpp: setCsizeByFormat now also sets the + "type" (pixel alignment) on __APPLE__ the default is yuv, + everywhere else it is rgba + +2003-11-25 17:51 zmoelnig + + * src/Pixes/videoV4L.cpp: using setCsizeByFormat instead of doing + it by hand + +2003-11-25 17:28 zmoelnig + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h: fixed a stupid bug, + that was blacking the "last" buffer each cycle. added + object-arguments as initial parameters take care of + colorspace-changes + +2003-11-25 16:16 zmoelnig + + * src/Pixes/pix_filmNEW.h: disabled the auto_registering if __NEW__ + is not defined exclude "Base/config.h" since it is already + included by film.h + +2003-11-25 16:14 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: set the helpsymbol to "pix_film" + instead of "pix_filmNEW" uncommented the use of + canvas_getfilename since it makes problems with internet-streams + (as far as i remember) + +2003-11-25 16:09 zmoelnig + + * src/Pixes/pix_video.cpp: moved the disabling of auto-register to + pix_video.h + +2003-11-25 16:07 zmoelnig + + * src/Pixes/pix_filmYUV.h: include "Base/config.h" for all OS + (since the config.h will separate the sysdependent things) + +2003-11-25 16:06 zmoelnig + + * src/Pixes/pix_film.cpp: rewrote the "colorspace"-callback + +2003-11-25 16:05 zmoelnig + + * src/Pixes/pix_film.h: disabled the auto_registering if __NEW__ is + defined + +2003-11-25 16:04 zmoelnig + + * src/Pixes/pix_movieNEW.cpp: set the help-symbol to "pix_movie" + (instead of "pix_movieNEW") + +2003-11-25 16:03 zmoelnig + + * src/Pixes/pix_videoLinux.cpp: moved the disabling of + auto-register to pix_video.h + +2003-11-25 16:02 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: set the help-symbol to "pix_video" + (instead of "pix_videoNEW") + +2003-11-25 16:01 zmoelnig + + * src/Pixes/pix_videoNEW.h: disabled the auto_registering if + __NEW__ is not defined + +2003-11-25 16:00 zmoelnig + + * src/Pixes/pix_video.h: disabled the auto_registering if __NEW__ + is defined + +2003-11-25 15:59 zmoelnig + + * src/Pixes/pix_sig2pix.cpp: used setBlack() instead of memset(); + use reallocate() + +2003-11-25 15:57 zmoelnig + + * src/Pixes/videoV4L.cpp: setting newfilm to 0 (shouldn't do + anything since we are on linux (?)) + +2003-11-25 15:55 zmoelnig + + * src/Pixes/video.h: include "Base/config.h" for all OS (since the + config.h will separate the sysdependent things) exclude + "GemBase.h" and use "m_pd.h" instead (shouldn't be needed either, + if it wasn't for post()) + +2003-11-25 15:54 zmoelnig + + * src/Pixes/: pix_info.cpp, pix_info.h: get more information the + last outlet (data) is still the last outlet (but now there are 6 + instead of 4). this shouldn't break anything, since who can do + something with it ? + +2003-11-25 15:53 zmoelnig + + * src/Pixes/film.h: include "Base/config.h" for all OS (since the + config.h will separate the sysdependent things) + +2003-11-25 15:51 zmoelnig + + * src/Gnu/: configure, configure.in: added "--disable-new" for + "old" behaviour with pix_film/pix_video and friends under linux + this the config.h.in for linux-autoconf has moved to + configLinux.h.in + +2003-11-25 15:48 zmoelnig + + * src/Base/config.h.in: made config.h system-independent. this the + config.h.in for linux-autoconf has moved to configLinux.h.in + +2003-11-25 15:46 zmoelnig + + * src/Base/: config.h, configDarwin.h, configLinux.h, + configLinux.h.in, configNT.h: made config.h system-independent. + the system-bound configurations are stored in separate files + (like Base/configLinux.h) which are included by config.h + (depending on __linux__ and friends) + +2003-11-25 15:43 zmoelnig + + * src/Base/GemPixObj.cpp: initialized newfilm/newimage to 0 + +2003-11-25 15:41 zmoelnig + + * src/Base/GemBase.h: added support for HELPSYMBOL_BASE (which is + defined as "Gem/") -- used in CPPExtern.h + +2003-11-25 15:41 zmoelnig + + * src/Base/CPPExtern.h: added HELPSYMBOL to set an alternate + helpsymbol (it crashes, when more than 1 help-symbols are + specified and we already do it here) added support for + HELPSYMBOL_BASE (which is defined as "Gem/" in GemBase.h) + +2003-11-23 20:27 zmoelnig + + * src/Pixes/videoV4L.cpp: set notowned=false when color-conversion + is done (which is the truth) + +2003-11-19 09:53 zmoelnig + + * GEM_darwin.pbproj/zmoelnig.pbxuser: this is my + macOS-projectmaker-project + +2003-11-18 20:53 zmoelnig + + * help/: curve3d.pd, tube.pd: help-patches for [curve3d] and [tube] + +2003-11-18 19:21 zmoelnig + + * src/Pixes/pix_texture.cpp: changed "post()" to "debug()" which is + a define to either "post()" or nothing, so we can do some + debug-information on demand + +2003-11-18 19:18 zmoelnig + + * src/Pixes/pix_videoLinux.cpp: removed the auto-registering + +2003-11-18 19:12 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: added an alias for + "colorspace"-message + +2003-11-18 18:47 cclepper + + * GEM_darwin.pbproj/: cgc.pbxuser, project.pbxproj: new pbproj + +2003-11-18 16:39 zmoelnig + + * src/Base/: GemMan.cpp, GemWinCreateXWin.cpp: made XWin be aware + of resizes. however, it doesn't really work yet :-( + +2003-11-18 16:36 zmoelnig + + * src/Base/GemFuncUtil.h: added MIN and MAX functions + +2003-11-18 16:25 zmoelnig + + * src/Geos/: curve3d.cpp, curve3d.h, tube.cpp, tube.h: added + curve3d and tube + +2003-11-18 16:21 zmoelnig + + * help/pix_film.pd: updated documentation + +2003-11-18 16:20 zmoelnig + + * src/Pixes/pix_histo.cpp: removed unneeded variables + +2003-11-18 16:18 zmoelnig + + * src/Pixes/film.h: include "config.h" only on linux note: this + should be changed LATER to include "config.h" on all platforms. + config.h should then include platform-specific config-files (that + can be generated with configure or whatever) + +2003-11-18 16:17 zmoelnig + + * src/Pixes/pix_video.cpp: defined NO_AUTO_REGISTER_CLASS to not + register this class with pd on __linux__, __APPLE__ and NT + +2003-11-18 16:14 zmoelnig + + * src/Base/CPPExtern.h: put the auto_register code in a separate + define whichcan be switched off by defining + NO_AUTO_REGISTER_CLASS before including the CPPExtern.h + +2003-11-17 19:53 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: swapped 2 variables in + class-definition (apple's gcc likes it better this way) removed + unused code + +2003-11-15 04:26 cclepper + + * src/Pixes/: pix_diff.cpp, pix_diff.h: added Altivec function for + both RGB and YUV + +2003-11-14 15:43 zmoelnig + + * src/Geos/text2d.h: added curve3d and tube + +2003-11-14 11:26 zmoelnig + + * src/Controls/: gemmouse.cpp, gemmouse.h: added scaling for the + mouse-coordinates. this allows output that is independant of the + window-size + +2003-11-14 08:21 cclepper + + * src/Pixes/pix_add.h: removed the extraneous RGB_Altivec prototype + +2003-11-14 08:19 cclepper + + * src/Pixes/pix_2grey.cpp: a dst tweak and bug fix + +2003-11-13 05:26 cclepper + + * src/Pixes/pix_2grey.cpp: slight change to RGB vector code + +2003-11-13 04:38 cclepper + + * src/Pixes/: pix_2grey.h, pix_2grey.cpp: added Altivec + +2003-11-12 19:11 zmoelnig + + * src/Base/TextBase.cpp: removed the check, whether the first atom + of the text-list is a symbol. now we can print numbers too. + +2003-11-12 18:57 zmoelnig + + * src/Pixes/: pix_add.cpp, pix_add.h: changed processRGB_Altivec to + processRGBA_Altivec + +2003-11-12 18:55 zmoelnig + + * src/MarkEx/: average.cpp, counter.cpp, hsvrgb.cpp, m_control.cpp, + multiselect.cpp, randomF.cpp, reson.cpp, strcat.cpp, + tripleLine.cpp, vector.cpp: fixed linefeed + +2003-11-11 08:31 cclepper + + * src/Pixes/pix_add.h: added RGB Altivec + +2003-11-11 08:04 cclepper + + * src/Pixes/pix_add.h: added RGB Altivec + +2003-11-10 07:37 cclepper + + * src/Pixes/: pix_a_2grey.cpp, pix_coloralpha.cpp: changed from + float to int processing + +2003-11-10 07:18 cclepper + + * src/Pixes/pix_2grey.cpp: changed from float to int processing of + grey value + +2003-11-10 07:17 cclepper + + * src/Pixes/: pix_subtract.cpp, pix_subtract.h: added RGB Altivec + +2003-11-10 07:09 cclepper + + * src/Pixes/pix_add.cpp: added RGB Altivec + +2003-11-10 04:23 cclepper + + * src/Pixes/: pix_gain.cpp, pix_motionblur.cpp, pix_offset.cpp, + pix_subtract.cpp: changed Altivec defines + +2003-11-10 03:11 cclepper + + * src/Pixes/: pix_add.cpp, pix_background.cpp, pix_blur.cpp, + pix_chroma_key.cpp, pix_compare.cpp, pix_convolve.cpp, + pix_invert.cpp, pix_mix.cpp: changed Altivec defines + +2003-11-03 13:15 zmoelnig + + * src/Manips/camera.cpp: changed (bool) to (int), since vc6 doesn't + like assigning a boolean-value to an integer. + +2003-11-03 13:14 zmoelnig + + * src/MarkEx/: abs.cpp, average.cpp, counter.cpp, hsvrgb.cpp, + m_control.cpp, multiselect.cpp, randomF.cpp, reson.cpp, + strcat.cpp, tripleLine.cpp, vector.cpp: added no-warn-flags for + vc6 + +2003-11-03 13:13 zmoelnig + + * src/Pixes/: filmFFMPEG.cpp, filmFFMPEG.h: made it compile with + ffmpeg-0.4.8 (however i wasn't yet able to load a movie...) + +2003-11-03 13:12 zmoelnig + + * src/Pixes/: filmQT.cpp, filmQT.h: made it work under windows; + however it likes crashing sometimes and i haven't found out yet + why... + +2003-10-24 20:38 zmoelnig + + * src/BUGS: fixed some BUGS... + +2003-10-24 20:32 zmoelnig + + * src/Gnu/: configure, configure.in: added "--with-aviplay" as an + alias for "--with-avi" + +2003-10-24 20:31 zmoelnig + + * src/Base/TextBase.cpp: added some comment to the render() for + neither FTGL/GLTT support (while trying to find out + +2003-10-23 10:10 zmoelnig + + * src/Pixes/pix_buffer.cpp: fixed another possible bug (check for + NULL-images) + +2003-10-22 13:01 zmoelnig + + * src/MarkEx/MarkExSetup.cpp: added the self-registering code, so + that MarkEx will stay available + +2003-10-22 11:06 zmoelnig + + * src/Pixes/filmQT.cpp: further changes, but far from working yet + +2003-10-22 10:35 zmoelnig + + * src/Pixes/pix_buffer.cpp: fixed bugs in + pix_buffer_read/pix_buffer_write when no or unknown pix_buffers + were specifified + +2003-10-22 10:34 zmoelnig + + * src/Base/GemWinCreate.h: added "fsaa" to the WindowHints-class + +2003-10-22 07:32 cclepper + + * src/: Base/GemMan.cpp, Base/GemMan.h, Base/GemWinCreateMac.cpp, + Controls/gemwin.cpp, Controls/gemwin.h: added FSAA + +2003-10-21 20:15 ggeiger + + * src/Base/: CPPExtern.h, GemSetup.cpp: remove setup() function + this is done through a static class structure now, that is + created for each object Gem objects are added automatically to pd + as soon as they are compiled in + +2003-10-21 20:14 ggeiger + + * src/Base/GemBase.cpp: re-used continueRender() function + +2003-10-21 20:13 ggeiger + + * src/Base/GemMan.cpp: removed my name from startup + +2003-10-21 16:44 ggeiger + + * src/Particles/partlib_actions.cpp: distribute particles according + to their velocity if there is more than one particle per frame + +2003-10-21 16:21 ggeiger + + * help/: ambient.pd, ambientRGB.pd: added numberbox to rotate light + (cube seems to be very dark with 180) + +2003-10-21 16:19 ggeiger + + * help/alpha.pd: added auto message description + +2003-10-21 16:17 ggeiger + + * help/: alpha.pd, ambient.pd, ambientRGB.pd, change.pd, + part_color.pd, part_damp.pd, part_draw.pd, part_follow.pd: change + is in pd already + +2003-10-21 15:50 ggeiger + + * src/Controls/gemhead.cpp: bang on gemhead triggers a render cycle + (was broken) + +2003-10-15 21:07 zmoelnig + + * src/Pixes/videoV4L.cpp: set the upside-down flag to true. (hope + this is alright) + +2003-10-15 21:05 zmoelnig + + * src/Pixes/filmQT.h: temporarily added some variables (like + m_auto) these should be gone when i really have access to a + machine where quicktime4win is installed + +2003-10-15 21:04 zmoelnig + + * src/Gnu/: configure, configure.in: fixed a bug when searching for + the linker/compiler flags for libavifile: not "avifile-config" is + used if available + +2003-10-15 21:03 zmoelnig + + * src/BUGS: new bugs (pix_buffer, libavifile, remote display) + +2003-10-10 14:52 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: added filmQT changed "#define DEBUG" + to "#define debug" + +2003-10-10 14:16 zmoelnig + + * src/Pixes/pix_kaleidoscope.h: disabled pete's "static"-hack with + NO_HACK (default on windows) + +2003-10-10 14:12 zmoelnig + + * src/Pixes/pix_colorreduce.cpp: vc6 doesn't like statical arrays + with variable sizes + +2003-10-10 13:15 zmoelnig + + * src/: gem.dsp, gem_vc6.dsw: updated my vc6-projects + +2003-10-10 13:14 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: disabled warnings on vc6 + +2003-10-10 13:13 zmoelnig + + * src/Gnu/: configure, configure.in: search for libavifile-headers + rather than assuming they are in /usr/include/avifile + +2003-10-10 13:11 zmoelnig + + * src/Pixes/: filmQT.cpp, filmQT.h: first attempt of a port from + [pix_filmQT] to the film*-class. however i have + quicktime4windows not installed, so i had no way to compile this + yet.... + +2003-10-10 13:10 zmoelnig + + * src/Pixes/: filmAVI.h, filmAVI.cpp: made filmAVI work. a first + step for pix_filmNEW to run on windows... + +2003-10-10 13:09 zmoelnig + + * src/Pixes/: filmAVIPLAY.h, pix_filmLinux.h: for libavifile we + used to include ; since the headers for + libavifile-0.7 is located in /usr/include/avifile-0.7/, we now + search for the correct path in the "configure" and include only + "avifile.h" + +2003-10-10 13:07 zmoelnig + + * src/Pixes/filmAVIPLAY.cpp: is only included if + HAVE_LIBAVIPLAY is defined + +2003-10-10 13:04 zmoelnig + + * src/Pixes/pix_filmNEW.h: removed "m_film", since it is not needed + +2003-10-10 13:03 zmoelnig + + * src/Particles/: partlib_actions.cpp, partlib_system.cpp: my + vc6-dos-compiler doesn't like because it makes it like + against some "new" io-libs while it rather needs "old" ones which + are requested by + +2003-10-10 13:02 zmoelnig + + * src/Manips/camera.h: commented out namespace std for windows (vc6 + complained about this) + +2003-10-10 13:00 zmoelnig + + * examples/04.pix/06.PixRect.pd: now you see something after the + first coordinate-change... + +2003-10-10 12:59 zmoelnig + + * examples/04.pix/12.blending.pd: now using [pix_buf] instead of + re-loading the image for each blending-change + +2003-10-08 19:33 zmoelnig + + * examples/04.pix/05.film.pd: removed the [pix_rgba], since now + [pix_film] should output only RGBA/YUV/Grayscale + +2003-10-08 18:55 zmoelnig + + * src/BUGS: reported bugfix of filmQT4L + +2003-10-08 18:52 zmoelnig + + * src/Pixes/: setup.h, pix_movieNEW.cpp, pix_movieNEW.h: this is + how [pix_movie] looks like if derived from [pix_filmNEW] (and + [pix_texture]) + +2003-10-08 18:51 zmoelnig + + * src/Pixes/: filmMPEG1.cpp, filmMPEG1.h: using "upsidedown" from + imageStruct; added YUV support + +2003-10-08 18:09 zmoelnig + + * src/Pixes/: filmAVIPLAY.cpp, filmMPEG3.cpp, filmQT4L.cpp: using + "upsidedown" from imageStruct; + +2003-10-08 18:06 zmoelnig + + * src/Pixes/pix_texture.cpp: using "upsidedown" from imageStruct; + added this flag to setTexCoords() to indicate whether the + texture-coordinates should be flipped or not. the __APPLE__ + define for flipping is therefore obsoleted. + +2003-10-08 18:04 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added "upsidedown" to + imageStruct; this is meant for texture-flipping of the image + (most movies are loaded the "wrong" way) upsidedown defaults to + true on __APPLE__; false elsewhere + +2003-10-08 17:01 zmoelnig + + * src/Pixes/pix_texture.h: made [pix_movieNEW] (for now; of course + this should [pix_movie] LATER a friend of [pix_texture] this will + let us use the sophisticated texturing mechanism of [pix_texture] + for [pix_movie] + +2003-10-07 18:10 zmoelnig + + * src/Pixes/setup.h: moved the pix_film things up a bit, because i + had a hard time making [pix_film] an alias for [pix_filmNEW] + +2003-10-07 18:09 zmoelnig + + * src/Pixes/pix_filmNEW.h: added "colorspace"-method + +2003-10-07 18:09 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: some bug fixing added + "colorspace"-method "post" becomes "DEBUG" which can be turned + off. some reordering of decode-libs: libmpeg3 is better in + decoding mpegs then libavifile (less crashes) + +2003-10-07 17:47 zmoelnig + + * src/Pixes/filmMPEG3.cpp: open() now utilizes setCsizeByFormat() + +2003-10-07 17:46 zmoelnig + + * src/Pixes/filmAVIPLAY.cpp: made the openStream sleep a bit. still + opening streamed-files sometimes crashes added support for more + colour-formats + +2003-10-07 17:44 zmoelnig + + * src/Pixes/: filmAVI.cpp, filmAVI.h: put quite everything (but + constructor/destructor) between one huge #ifdef. the rest should + be filled with defaults by the film-class. + +2003-10-07 17:43 zmoelnig + + * src/Pixes/filmQT4L.cpp: added colour-change on the fly + +2003-10-07 17:40 zmoelnig + + * src/Pixes/film.cpp: open() now returns false (to make the skip to + next api work) + +2003-10-07 17:39 zmoelnig + + * src/Pixes/film.h: requestColor() now sets "m_wantedFormat" + +2003-10-07 17:38 zmoelnig + + * src/Base/GemPixUtil.cpp: a bit of code-cleanup + +2003-10-07 14:01 zmoelnig + + * src/Pixes/setup.h: rewrote a bit in the #ifdef clauses and put + them all together. it is really ugly on linux pix_filmNEW is now + the default + +2003-10-07 13:47 zmoelnig + + * src/Pixes/: filmAVIPLAY.cpp, filmAVIPLAY.h: encapsuled everything + but constructor/destructor within one big "#ifdef HAVE_QT4L" + (using inheritance) made getFrame() return frames of all three + colour-spaces. fixed several bugs + +2003-10-07 10:58 zmoelnig + + * src/Pixes/: filmQT4L.cpp, filmQT4L.h: encapsuled everything but + constructor/destructor within one big "#ifdef HAVE_QT4L" (using + inheritance) made getFrame() return frames of all three + colour-spaces. BAD: we only get RGB-images from the + qt4l-library. this means: + video(YUV)->buffer(RGB)->gem_image(RGBA/YUV/Gray). but what + should i do ? + +2003-10-07 10:55 zmoelnig + + * src/Pixes/filmMPEG3.cpp: rewrote the getFrame() to: a) get frames + of different colour-spaces b) decode YUV/Gray really fast + (directly access the decoding Y/U/V-planes) + +2003-10-07 10:51 zmoelnig + + * src/Pixes/film.h: added some thoughts about requested/forced + colourspaces. i think, that film* should at least return + colour-spaces that could be handled by Gem/openGL itself. (it + doesnt make sense for [pix_film] to handle IMG_FMT_RGB15) so the + cs-request should really be a force and not just a suggestion + +2003-10-07 10:46 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added fromRGB16() to + retrieve data from 16bit encoded RGB. added fromYV12(Y,U,V) + which does not assume that the U and V planes are directly after + the Y plane. this is handy if we have independent planes + +2003-10-03 16:28 zmoelnig + + * src/Base/GemBase.h: GL_RGBA is not defined at openGL<1.2 (i + think); furthermore the include-check for CPPExtern.h is already + made in CPPExtern.h + +2003-10-03 15:59 zmoelnig + + * src/Pixes/: filmMPEG1.cpp, filmMPEG1.h: put quite everything (but + constructor/destructor) between one huge #ifdef. the rest should + be filled with defaults by the film-class. + +2003-10-03 15:59 zmoelnig + + * src/Pixes/: filmMPEG3.cpp, filmMPEG3.h: put quite everything (but + constructor/destructor) between one huge #ifdef. the rest should + be filled with defaults by the film-class. on close() the + filehandler is set to NULL (caused to crash on multiple closes) + +2003-10-02 16:47 zmoelnig + + * src/Manips/: camera.cpp, camera.h: removed #include + (it is included in GemBase anyhow) ifdef'ed the #include + to __APPLE__ (else + +2003-09-30 20:16 zmoelnig + + * src/BUGS: filmQT4L procuces RGB if RGBA is not supported by the + codec + +2003-09-30 20:11 zmoelnig + + * src/Pixes/: pix_posterize.cpp, pix_posterize.h: removed the + processRGBAImage-call (anyhow, it didn't do anything) + +2003-09-30 20:11 zmoelnig + + * src/Pixes/: pix_flip.cpp, pix_flip.h: added YUV support split + processImage into processRGBAImage and processGrayImage + +2003-09-29 05:26 tigital + + * help/: pix_dot.pd, pix_rds.pd: corrected text + +2003-09-29 05:11 tigital + + * src/Manips/setup.h: added camera_setup() + +2003-09-29 05:10 tigital + + * src/Manips/: camera.cpp, camera.h: initial commit + +2003-09-24 06:51 tigital + + * src/Pixes/: pix_dot.cpp, pix_dot.h: more work on yuv processing, + but it still doesn't work + +2003-09-24 06:46 tigital + + * src/Pixes/pix_kaleidoscope.cpp: removed some unused code, cleanup + +2003-09-24 06:44 tigital + + * src/Pixes/pix_kaleidoscope.h: removed some unused code + +2003-09-24 06:42 tigital + + * src/Pixes/pix_halftone.h: added __APPLE__ "macosx_math.h", some + unused cleanup + +2003-09-24 06:38 tigital + + * src/Pixes/: pix_lumaoffset.cpp, pix_lumaoffset.h: fixed + "comparison between signed & unsigned int" warning on line 117, + in processRGBAImage() + +2003-09-24 06:33 tigital + + * src/Particles/partlib_vector.h: replaced __APPLE__ define with + macosx_math.h + +2003-09-24 06:32 tigital + + * src/Particles/partlib_actions.cpp: added default: break; to + PAAvoid::Execute() & PABounce::Execute, because PDPoint, PDLine, + PDBox, PDCylinder, PDCone, and PDBlob aren't taken care of...also + replaced __APPLE__ defines with macosx_math.h + +2003-09-24 06:27 tigital + + * src/Particles/partlib_system.cpp: added default: break; to + _pCallActionList(), because PAHeaderID isn't taken care of + +2003-09-23 05:21 tigital + + * src/Pixes/pix_snap.cpp: added glFinish() & several + glPixelStorei()'s for __APPLE__ for speed up?: is this + applicable to all platforms? + +2003-09-23 05:16 tigital + + * src/Pixes/pix_lumaoffset.cpp: removed unused variables + +2003-09-23 04:50 tigital + + * src/Controls/gemkeyboard.cpp: changed comment from "mousePressed" + to "KeyBoardPressed" + +2003-09-23 04:47 tigital + + * src/Base/TextBase.cpp: reordered initializers to shut up gcc + warning + +2003-09-22 12:04 zmoelnig + + * help/: pix_halftone.pd, pix_movement.pd: updated documentation + +2003-09-22 12:03 zmoelnig + + * src/Pixes/: pix_rds.cpp, pix_rds.h: added Gray-support + YUV-support is still under construction (but now does something + (stupid) instead of nothing) + +2003-09-22 12:02 zmoelnig + + * src/Pixes/pix_metaimage.cpp: added an inlet for the size of the + metaimage + +2003-09-22 12:01 zmoelnig + + * src/Pixes/: pix_convolve.cpp, pix_convolve.h: added Gray-support + split the processImage into processRGBAImage and processGrayImage + +2003-09-22 11:59 zmoelnig + + * src/Pixes/: pix_movement.cpp, pix_movement.h: added YUV-Support + (like grayscale: the difference image is written on the + luma-channel; colour is discarded) + +2003-09-22 11:58 zmoelnig + + * src/Pixes/: pix_scanline.cpp, pix_scanline.h: added Gray-support + (RGBA & Gray are in processImage, while YUV has a separate + function) + +2003-09-22 11:56 zmoelnig + + * src/Pixes/: pix_blur.h, pix_blur.cpp, pix_halftone.cpp, + pix_halftone.h, pix_motionblur.cpp, pix_motionblur.h: added + Gray-support + +2003-09-22 11:55 zmoelnig + + * src/Base/GemPixUtil.cpp: fixed setBlack() and setWhite() for YUV + +2003-09-17 15:23 zmoelnig + + * help/: pix_background.pd, pix_compare.pd, pix_mix.pd, + pix_motionblur.pd, pix_roll.pd, pix_scanline.pd, pix_duotone.pd: + added some documentation + +2003-09-17 15:09 zmoelnig + + * src/BUGS: more bugs to come + +2003-09-17 15:08 zmoelnig + + * src/Gnu/Makefile.in: fixed install on linux + +2003-09-17 15:08 zmoelnig + + * src/Gnu/undocumented_objects: documented a lot ;-) + +2003-09-17 15:07 zmoelnig + + * src/Pixes/pix_film.cpp: fixed the "toupper()" BUG: include + + +2003-09-17 15:07 zmoelnig + + * src/Pixes/pix_duotone.cpp: result of merge + +2003-09-17 15:07 zmoelnig + + * src/Pixes/pix_mix.cpp: allow arguments and an intelligent gain + handler + +2003-09-17 15:05 zmoelnig + + * src/Pixes/pix_background.cpp: made the inlet do something + intelligent: set the range (normalized 0..1) + +2003-09-17 15:03 zmoelnig + + * src/Pixes/pix_background.cpp: added methods for Grey + +2003-09-17 15:02 zmoelnig + + * src/Pixes/pix_background.cpp: code cleanup to make merge easier + +2003-09-17 14:43 zmoelnig + + * src/Pixes/pix_mix.h: allow arguments and an intelligent gain + handler + +2003-09-17 14:42 zmoelnig + + * src/Pixes/pix_motionblur.cpp: new indentation ? + +2003-09-17 14:40 zmoelnig + + * src/Pixes/pix_alpha.cpp: i think i've found a bug in GREY + +2003-09-17 14:39 zmoelnig + + * src/Pixes/pix_compare.cpp: cleaned up the code a bit. default + behaviour is no ON (used to be OFF) RGBAcomparision is now done + on luminance instead of each channel separately + +2003-09-17 14:38 zmoelnig + + * src/Pixes/pix_chroma_key.cpp: cleaned up the code a bit. default + behaviour is no ON (used to be OFF) + +2003-09-17 14:35 zmoelnig + + * src/Pixes/pix_backlight.cpp: changed ranges from 0..255 to + 0.0..1.0 added some inlets + +2003-09-17 14:35 zmoelnig + + * src/Pixes/pix_colorreduce.cpp: added checks for control-range + added some inlets + +2003-09-17 14:33 zmoelnig + + * src/Pixes/: pix_posterize.cpp, pix_posterize.h: added comments + about ranges of the internal variables. also changed the range + from 0..255 to 0.f..1.f + +2003-09-17 14:32 zmoelnig + + * src/Pixes/pix_buffer.cpp: BUG: the first incoming frame is + captured automatically --> FIXED (nothing is done, if no frame is + specified) + +2003-09-17 14:31 zmoelnig + + * src/Pixes/pix_snap2tex.cpp: grabbed texture-size defaults to the + gemwin-size + +2003-09-17 14:29 zmoelnig + + * src/Pixes/pix_tIIR.h: added a comment, saying what this object is + for + +2003-09-17 14:28 zmoelnig + + * src/Pixes/: pix_rectangle.cpp, pix_normalize.cpp, + pix_normalize.h, pix_rectangle.h: added methods for YUV + +2003-09-17 14:28 zmoelnig + + * src/Pixes/: pix_lumaoffset.cpp, pix_lumaoffset.h: fixed the bug + with filledLines + +2003-09-17 14:26 zmoelnig + + * src/Pixes/: pix_refraction.cpp, pix_refraction.h: removed + overwrites of the virtual functions for yuv/grey-colourspace. + Why do we have inheritance ? + +2003-09-17 14:25 zmoelnig + + * src/Pixes/: pix_dot.cpp, pix_dot.h: added inlet for size of dots + +2003-09-17 14:22 zmoelnig + + * src/Pixes/pix_background.h: added methods for grey + +2003-09-17 14:21 zmoelnig + + * src/Pixes/: pix_roll.cpp, pix_roll.h: added methods for RGBA/grey + +2003-09-17 14:20 zmoelnig + + * src/Pixes/: pix_color.cpp, pix_color.h, pix_crop.cpp, pix_crop.h, + pix_curve.cpp, pix_curve.h, pix_histo.cpp, pix_histo.h, + pix_levels.cpp, pix_levels.h: added methods for YUV/grey + +2003-09-17 14:19 zmoelnig + + * src/Pixes/: pix_2grey.cpp, pix_2grey.h, pix_bitmask.cpp, + pix_bitmask.h, pix_blob.cpp, pix_blob.h: added methods for YUV + +2003-09-17 14:17 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: made some inlets made the + heightMess do something + +2003-09-17 14:16 zmoelnig + + * src/Geos/: ripple.cpp, ripple.h, rubber.cpp, rubber.h: made some + inlets made the heightMess do something arguments specify the + grid-size + +2003-09-17 13:45 zmoelnig + + * src/Base/GemPixObj.h: packed the code a little bit (to make it + more readable to me) + +2003-09-17 13:45 zmoelnig + + * src/Base/GemShape.h: new indentation + +2003-09-17 13:44 zmoelnig + + * src/Base/GemVersion.h: version is now 0.888-pre1 + +2003-09-17 13:40 zmoelnig + + * help/: cuboid.pd, newWave.pd, part_info.pd, part_render.pd, + pix_backlight.pd, pix_buffer.pd, pix_buffer_read.pd, + pix_buffer_write.pd, pix_color.pd, pix_colorreduce.pd, + pix_crop.pd, pix_delay.pd, pix_dot.pd, pix_grey.pd, pix_info.pd, + pix_levels.pd, pix_lumaoffset.pd, pix_posterize.pd, pix_rds.pd, + pix_snap2tex.pd, pix_tIIR.pd, pix_yuv.pd, polygon_smooth.pd, + ripple.pd, rubber.pd, slideSquares.pd: new help patches + +2003-09-17 13:30 zmoelnig + + * help/pix_movement.pd: result of merge + +2003-09-17 13:08 zmoelnig + + * help/: accumrotate.pd, alpha.pd, ambient.pd, ambientRGB.pd, + circle.pd, color.pd, colorRGB.pd, cone.pd, cube.pd, cylinder.pd, + diffuse.pd, diffuseRGB.pd, disk.pd, emission.pd, emissionRGB.pd, + pix_rgba.pd, pix_sig2pix~.pd, sphere.pd, teapot.pd: updated some + reference patches + +2003-09-15 06:48 tigital + + * src/Base/GemMan.cpp: - added texture_range_supported flag + (default=0, ie. off) and extension check + +2003-09-15 06:45 tigital + + * src/Base/GemMan.h: - added texture_range_supported flag + +2003-09-15 06:40 tigital + + * src/Pixes/pix_texture.cpp: - added texture_range usage on OSX, + where available: speed gain? - fixed problem with power of 2 + textures not taking fastest paths (rectangle_textures), if + available + +2003-09-15 02:39 cclepper + + * help/: pix_rtx.pd, pix_movement.pd, pix_biquad.pd: change tv_ to + pix_ + +2003-09-15 01:24 cclepper + + * src/Pixes/pix_convert.h: changed #ifdef MACOSX to __APPLE__ + +2003-09-15 01:18 cclepper + + * src/Pixes/: pix_buffer_read.h, pix_buffer_write.h, pix_buffer.h: + added a better description + +2003-09-15 01:07 cclepper + + * src/Pixes/pix_scanline.h: added a better description + +2003-09-15 01:05 cclepper + + * src/Pixes/: pix_duotone.cpp, pix_duotone.h: removed processGrey + +2003-09-15 01:00 cclepper + + * src/Pixes/pix_mix.h: changed gain + +2003-09-15 00:56 cclepper + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: changed the + colorspace message to match pix_film, dimension message now works + +2003-09-15 00:31 cclepper + + * src/Pixes/pix_write.cpp: changed #ifdef MACOSX to __APPLE__ + +2003-09-15 00:30 cclepper + + * src/Pixes/pix_texture.cpp: fixed commenting error + +2003-09-15 00:24 cclepper + + * src/Pixes/: pix_texture.cpp, pix_texture.h, pix_texture2.h, + pix_texture2.cpp: changed #ifdef MACOSX to __APPLE__ + +2003-09-15 00:21 cclepper + + * src/Pixes/: pix_rgba.cpp, pix_snap.cpp: changed #ifdef MACOSX to + __APPLE__ + +2003-09-15 00:10 cclepper + + * src/Pixes/pix_rgba.h: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 23:59 cclepper + + * src/Pixes/: pix_movieYUV.cpp, pix_movieYUV.h, pix_resize.cpp: + changed #ifdef MACOSX to __APPLE__ + +2003-09-14 23:56 cclepper + + * src/Pixes/: pix_filmDarwinYUV.cpp, pix_filmYUV.cpp, + pix_imageInPlace.cpp, pix_movie.cpp, pix_movie.h: changed #ifdef + MACOSX to __APPLE__ + +2003-09-14 23:55 cclepper + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h: added ram + message, made YUV default colorspace + +2003-09-14 23:45 cclepper + + * src/Pixes/: pix_film.cpp, pix_film.h: added colorspace message + +2003-09-14 23:04 cclepper + + * src/Pixes/: pix_chroma_key.cpp, pix_motionblur.cpp, + pix_compare.cpp: added #ifdef for PPC970/G5 + +2003-09-14 23:01 cclepper + + * src/Pixes/: pix_subtract.cpp, pix_blur.cpp, pix_mix.cpp, + pix_background.cpp: added #ifdef for PPC970/G5 + +2003-09-14 22:56 cclepper + + * src/Pixes/: pix_invert.cpp, pix_offset.cpp: added #ifdef for + PPC970/G5 + +2003-09-14 22:52 cclepper + + * src/Pixes/: pix_convolve.cpp, pix_gain.cpp: added #ifdef for + PPC970/G5 + +2003-09-14 22:49 cclepper + + * src/Pixes/pix_add.cpp: added #ifdef for PPC970/G5 + +2003-09-14 22:47 cclepper + + * src/Particles/part_vector.h: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 22:29 cclepper + + * src/Nongeos/: world_light.h, world_light.cpp: changed #ifdef + MACOSX to __APPLE__ + +2003-09-14 22:28 cclepper + + * src/Manips/polygon_smooth.cpp: added GL_LINE_SMOOTH + +2003-09-14 22:23 cclepper + + * src/Manips/ortho.cpp: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 22:18 cclepper + + * src/Geos/: ripple.h, rubber.h, slideSquares.cpp: changed #ifdef + MACOSX to __APPLE__ + +2003-09-14 22:02 cclepper + + * src/Geos/: model.cpp, newWave.h: changed #ifdef MACOSX to + __APPLE__ + +2003-09-14 21:59 cclepper + + * help/: pix_scanline.pd, pix_roll.pd: initial commit + +2003-09-14 21:41 cclepper + + * help/pix_motionblur.pd: initial commit + +2003-09-14 20:57 cclepper + + * help/pix_mix.pd: initial commit + +2003-09-14 19:53 cclepper + + * help/pix_compare.pd: initial commit + +2003-09-14 19:42 cclepper + + * help/pix_chroma_key.pd: initial commit + +2003-09-14 19:21 cclepper + + * help/pix_background.pd: initial commit + +2003-09-14 18:10 cclepper + + * src/Geos/: cuboid.cpp, imageVert.cpp: changed #ifdef MACOSX to + __APPLE__ + +2003-09-14 18:06 cclepper + + * src/Controls/setup.h: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 18:02 cclepper + + * src/: Base/GemWinCreateMac.cpp, Base/sgiimage.cpp, + Controls/gemwin.cpp: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 17:54 cclepper + + * src/Base/: GemState.cpp, GemWinCreate.h: changed #ifdef MACOSX to + __APPLE__ + +2003-09-14 17:54 cclepper + + * src/Base/GemShape.cpp: added a few more drawTypes + +2003-09-14 17:38 cclepper + + * src/Base/GemSetup.cpp: changed #ifdef MACOSX to __APPLE__ and + commented out yuv_setup() + +2003-09-14 17:29 cclepper + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: changed #ifdef MACOSX to + __APPLE__ + +2003-09-14 17:25 cclepper + + * src/Base/: GemMan.h, GemPixImageLoad.cpp, GemPixImageSave.cpp, + GemPixObj.h: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 17:21 cclepper + + * src/Base/: GemBase.h, GemGluObj.h, GemGLUtil.h, GemGlutObj.h, + GemMan.cpp: changed #ifdef MACOSX to __APPLE__ + +2003-09-11 17:34 zmoelnig + + * src/: Gnu/undocumented_objects, TODO: made a list of undocumented + objects + +2003-09-11 17:05 zmoelnig + + * src/Pixes/pix_texture.cpp: removed debugging output + +2003-09-11 13:11 zmoelnig + + * src/Pixes/filmQT4L.cpp: removed debugging output + +2003-09-11 12:54 zmoelnig + + * src/Pixes/pix_filmLinux.cpp: added a comment + +2003-09-11 12:06 zmoelnig + + * src/Gnu/Makefile.in: hopefully fixed a bit on installing the + examples for linux + +2003-07-27 01:14 ggeiger + + * src/Manips/: alpha.cpp, alpha.h: disable depth test for alpha + blended render chains. I think this is the correct way how alpha + should work, still there is a message *auto* to turn it off + +2003-07-22 21:16 zmoelnig + + * src/Particles/: part_render.cpp, part_render.h: added + postrender() hack, to prevent the "source-object" to be drawn + +2003-07-22 21:00 ggeiger + + * src/Pixes/: pix_filmFFMPEG.cpp, pix_filmFFMPEG.h: fix compilation + bugs, removed ifdefs for ffmeg version + +2003-07-22 20:37 zmoelnig + + * src/Pixes/pix_resize.cpp: fixed the crash however, this is very + slow. we'll have to write a faster routine ourselves + +2003-07-22 20:27 zmoelnig + + * src/Pixes/pix_scanline.cpp: if m_interlace was 0, this used to + crash my machine with a floating-point exception. thus + "if(interleave<=0)interleave=1;" + +2003-07-22 20:15 zmoelnig + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h: removed the + create/destroy/blank routines for the buffer + +2003-07-22 20:14 zmoelnig + + * src/Pixes/: pix_movement.cpp, pix_movement.h: added + greyscale-support addedsome checks before destroy[]. hope this + will fix the bug + +2003-07-22 20:04 zmoelnig + + * src/Pixes/: pix_aging.cpp, pix_background.cpp, pix_biquad.cpp, + pix_buffer.cpp, pix_coordinate.cpp, pix_delay.cpp, pix_dump.cpp, + pix_motionblur.cpp, pix_resize.cpp, pix_roll.cpp, pix_rtx.cpp, + pix_scanline.cpp: added checks before delete[] (just in case) + +2003-07-22 10:36 zmoelnig + + * src/Pixes/: pix_filmQT.cpp, pix_snap2tex.h: dos2unix (changed + linefeed/carriage-returns) + +2003-07-22 10:35 zmoelnig + + * src/Pixes/: pix_colorreduce.cpp, pix_colorreduce.h, + pix_levels.cpp, pix_levels.h: removed empty functions for + YUV/YUValtivec/Grey images (why do we have classes ?) + +2003-07-22 10:34 zmoelnig + + * src/Pixes/: pix_kaleidoscope.cpp, pix_kaleidoscope.h, + pix_lumaoffset.cpp, pix_lumaoffset.h, pix_metaimage.cpp, + pix_metaimage.h: removed functions for YUV/YUValtivec/Grey images + (why do we have classes ?) + +2003-07-22 10:31 zmoelnig + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: removed functions + for YUV/YUValtivec/Grey images (why do we have classes ?) added + an include for , this might break compilation on other + platforms, if so, please ifdef it to __linux__ + +2003-07-22 10:29 zmoelnig + + * src/Pixes/: pix_backlight.cpp, pix_backlight.h: removed functions + for YUV/YUValtivec/Grey images (why do we have classes ?) + +2003-07-22 10:26 zmoelnig + + * src/Geos/cube.cpp: added a newline at end of file ;-) + +2003-07-22 09:45 zmoelnig + + * src/Pixes/: pix_rgba.cpp, pix_rgba.h, pix_grey.cpp, pix_grey.h, + pix_yuv.cpp, pix_yuv.h: use the color-conversion from GemPixUtil; + pix_grey and pix_yuv are childs of pix_rgba (reduces code + dramatically!) + +2003-07-22 09:42 zmoelnig + + * src/Base/GemPixUtil.cpp: fixed several bugs in the + color-conversion routines + +2003-07-21 09:51 dheck + + * src/Pixes/pix_rtx.cpp: Added explicit reset of column index to 0 + to fix invalid access bug. + +2003-07-20 21:28 tigital + + * src/Geos/text2d.h: small typo fix to allow compiling on OSX + (space between FTFont* & makeFont(...) + +2003-07-20 00:41 tigital + + * src/Base/TextBase.h: small typo fix to allow compiling on OSX + +2003-07-19 22:40 tigital + + * src/Geos/: cube.cpp, cube.h: added blend message + +2003-07-19 19:30 zmoelnig + + * src/BUGS: general entry for pix-bugs + +2003-07-19 18:36 zmoelnig + + * src/Particles/: part_source.cpp, part_source.h: the particle-rate + is now float instead of integer (let's you emit 0.5 particles per + rendering cycle) + +2003-07-19 18:30 zmoelnig + + * src/Geos/model.cpp_: model.cpp_ seems to have been committed to + the CVS. it was just a backup for work... + +2003-07-19 18:20 zmoelnig + + * src/: Geos/text2d.cpp, Geos/text2d.h, Geos/text3d.cpp, + Geos/text3d.h, Geos/textextruded.cpp, Geos/textextruded.h, + Geos/textoutline.cpp, Geos/textoutline.h, Base/TextBase.cpp, + Base/TextBase.h: added FTGL-2.04 -- support + +2003-07-16 07:17 tigital + + * src/Base/GemWinCreateMac.cpp: added return to DestroyGemWindow() + to prevent crashing on window close in some circumstances + +2003-07-16 06:11 cclepper + + * src/Pixes/: pix_blur.cpp, pix_blur.h: fixed up some altivec + +2003-07-16 05:49 tigital + + * help/: pix_halftone.pd, pix_kaleidoscope.pd, pix_metaimage.pd, + pix_refraction.pd: initial commit + +2003-07-16 05:27 tigital + + * src/Pixes/: pix_backlight.cpp, pix_backlight.h, + pix_colorreduce.cpp, pix_colorreduce.h, pix_halftone.cpp, + pix_halftone.h, pix_kaleidoscope.cpp, pix_kaleidoscope.h, + pix_levels.cpp, pix_levels.h, pix_lumaoffset.cpp, + pix_lumaoffset.h, pix_metaimage.cpp, pix_metaimage.h, + pix_refraction.cpp, pix_refraction.h: initial import of + Pete's_Plugins ports (RGBA only so far): pix_colorreduce, + pix_halftone, pix_kaleidoscope, pix_levels, pix_lumaoffset, + pix_metaimage, pix_refraction, and pix_backlight + +2003-07-16 05:07 tigital + + * src/Pixes/setup.h: alphabetized functions; also added new setup + functions: pix_colorreduce, pix_halftone, pix_kaleidoscope, + pix_levels, pix_lumaoffset, pix_metaimage, pix_refraction, and + pix_backlight + +2003-07-16 05:02 tigital + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwinYUV.cpp: fixed + cast problem (UInt8* instead of Str255) + +2003-07-16 04:57 tigital + + * src/Base/GemPixObj.h: added PeteHelpers.h stuff (defines, inline + functions) + +2003-07-16 04:55 tigital + + * src/Base/GemPixImageLoad.cpp: cleanup, changed to __APPLE__, + solved casting problem + +2003-07-15 18:26 zmoelnig + + * src/Pixes/pix_rtx.cpp: added support for grey and yuv images. + (not tested) + +2003-07-15 13:50 zmoelnig + + * src/Particles/: part_source.cpp, part_source.h: added settable + domains+arguments + +2003-07-15 13:48 zmoelnig + + * src/Particles/: part_velcone.cpp, part_velsphere.cpp: + [part_velcone] and [part_velsphere] are obsoleted by + [part_velocity] added an "obsolete"-warning + +2003-07-15 13:47 zmoelnig + + * src/Particles/: part_veldomain.cpp, part_veldomain.h, + part_velocity.cpp, part_velocity.h, setup.h: [part_veldomain] has + been replaced by [part_velocity] + +2003-07-15 13:46 zmoelnig + + * help/: part_source.pd, part_velcone.pd, part_veldomain.pd, + part_velocity.pd, part_velsphere.pd: updated reference-patches. + [part_veldomain] is replaced by [part_velocity] + +2003-07-15 10:01 zmoelnig + + * doc/GemPrimer.pdf: a started (in April) primer for Gem, however, + far from being finished + +2003-07-15 09:58 zmoelnig + + * examples/04.pix/24.time-filtering.pd: a an example for how to use + [pix_tIIR] + +2003-07-15 09:58 zmoelnig + + * examples/04.pix/25.buffer.pd: a an example for how to use + [pix_buffer], [pix_buffer_read], [pix_buffer_write] + +2003-07-15 09:55 zmoelnig + + * examples/04.video/00.SimpleVideo.pd: just render a video onto a + geo + +2003-07-15 09:53 zmoelnig + + * help/: part_veldomain.pd, part_velocity.pd, part_vertex.pd, + pix_biquad.pd, pix_movement.pd, pix_rtx.pd, textextruded.pd: help + for the resp. object + +2003-07-15 09:39 zmoelnig + + * src/Gnu/: configure, configure.in: added checks for FTGL + +2003-07-15 09:39 cclepper + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h, + pix_filmDarwin.cpp, pix_filmDarwin.h: now does color-space + switching + +2003-07-15 09:38 zmoelnig + + * src/Particles/setup.h: added [part_vertex], [part_velocity], + [part_veldomain] + +2003-07-15 09:38 zmoelnig + + * src/Particles/: part_vertex.cpp, part_vertex.h: [part_vertex] + adds one particle each rendering cycle at a certain position -- + useful for moving particle sources (but alas, only one particle + at a time) + +2003-07-15 09:36 zmoelnig + + * src/Particles/: part_veldomain.cpp, part_veldomain.h: + [part_veldomain] sets the velocity into a specified domain (like + sphere, triangle or whatever) + +2003-07-15 09:36 zmoelnig + + * src/Particles/: part_velocity.cpp, part_velocity.h: + [part_velocity] sets the velocity into a specified direction + +2003-07-15 09:34 zmoelnig + + * src/Particles/: partlib_actions.cpp, partlib_system.cpp: include + rather than + +2003-07-15 09:32 zmoelnig + + * src/Particles/: part_source.cpp, part_source.h: you can now set + the domain of the source TODO: make the argument vector settable + too (not much use without) + +2003-07-15 09:30 zmoelnig + + * src/Geos/: setup.h, textextruded.cpp, textextruded.h: added a new + object for extruded text (FTGL only) + +2003-07-15 09:21 zmoelnig + + * src/: Base/TextBase.cpp, Base/TextBase.h, Base/config.h.in, + Geos/text2d.cpp, Geos/text2d.h, Geos/text3d.cpp, Geos/text3d.h, + Geos/textoutline.cpp, Geos/textoutline.h: added FTGL support for + text-rendering under macOS i have made FTGL the default (not + knowing whether it will break) under windos GLTT is still the + default (although FTGL should work too) under linux the configure + script decides what to take, but prefers FTGL rather than GLTT + +2003-07-15 04:30 cclepper + + * src/Pixes/: pix_background.cpp, pix_background.h: added Altivec + YUV function + +2003-07-13 08:13 tigital + + * src/Base/GemWinCreateMac.cpp: stupid cleanup of commented-out + stuff + +2003-07-13 08:11 tigital + + * src/Nongeos/world_light.cpp: added OSX glcontext check to + destructor to stop crashes when patch is opened/manipulated, but + no glcontext is created + +2003-07-13 08:09 tigital + + * src/Pixes/pix_blur.cpp: vector long has been deprecated: now + it's vector int's + +2003-07-12 08:25 cclepper + + * src/Pixes/: pix_chroma_key.h, pix_chroma_key.cpp: added some + Altivec + +2003-07-12 08:22 cclepper + + * src/Pixes/pix_convolve.cpp: more Altivec tweaks + +2003-07-11 17:20 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: still some cvs-merge + errors, probably they are gone now... + +2003-07-11 16:58 zmoelnig + + * src/Base/GemPixImageSave.cpp: added a newline at the end of the + file + +2003-07-11 16:55 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, videoDV4L.cpp, videoDV4L.h, + videoV4L.cpp: got some problems with the cvs-update on another + machine. hope it's ok now + +2003-07-11 16:06 zmoelnig + + * src/Gnu/: aclocal.m4, configure, configure.in: added checks for + mmx-extension of gcc + +2003-07-11 15:58 zmoelnig + + * src/Pixes/videoDV4L.cpp: filedescriptors may also be 0! i only + closed the device, if the fd was>0. fixed. + +2003-07-11 15:55 zmoelnig + + * src/Base/: GemMan.cpp, GemWinCreate.h, GemWinCreateXWin.cpp: + added a flag to WindowInfo, whether a constant context has been + established. the destroyWindow depends partly on this (because + my laptop (with an ati mobility l6) crashed when destroying a + non-constant context. also changed the line "do not continue" to + "continue at your own risk" + +2003-07-09 14:07 zmoelnig + + * src/Gnu/WHATSNEW: added some advice for video1394 under linux + +2003-07-09 13:17 zmoelnig + + * src/Gnu/: configure, configure.in: oops, i'm getting tired. + another typo + +2003-07-09 13:10 zmoelnig + + * src/Gnu/: configure, configure.in: oops, made a type "libdv" + instead of "dv" + +2003-07-09 13:05 zmoelnig + + * src/: gem.dsp, Base/Make.depend, Base/config.h.in, + Controls/Make.depend, Geos/Make.depend, Gnu/Makefile, + Manips/Make.depend, MarkEx/Make.depend, Nongeos/Make.depend, + Particles/Make.depend, Pixes/Make.depend, Pixes/pix_test.cpp, + Pixes/pix_test.h, openGL/Make.depend: removed the Makefile.depend + . they are not really needed in CVS + +2003-07-09 12:59 zmoelnig + + * src/Pixes/pix_dot.cpp: use image.reallocate() rather than + image.clear() + image.allocate() + +2003-07-09 12:58 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: it seems like this + is only used under linux for now. however, i have added the + videoDV4L support. and there is now a "driver" message, that + let's you choose between various drivers (like video4linux and + video1394) yes, the way the modules are registered is really BAD. + have to change this soon + +2003-07-09 12:56 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: hopefully this is a real + support for video over ieee1394 (firewire/dv) under linux! + +2003-07-09 12:51 zmoelnig + + * src/Pixes/video.cpp: changed the error-message (like for setting + the device) slightly + +2003-07-09 12:42 zmoelnig + + * src/Gnu/: configure.in, configure: fixed the dv-checking. force + the headers to be there, when the library is found too + +2003-07-09 12:41 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added some more + yuv-conversions. (following a new naming-scheme after the FOURCC) + fromUYVY, fromYUY2 (=YUYV), fromYVYU, fromYV12; fromYUV422() is + now an alias for fromUYVY() fromYUV420P() is now an alias for + fromYV12() + +2003-06-24 07:59 cclepper + + * src/Pixes/: pix_motionblur.cpp, pix_motionblur.h: improved + altivec code + PPC scheduling + +2003-06-23 19:43 cclepper + + * src/Pixes/pix_mix.cpp: improved altivec code + +2003-06-23 09:05 cclepper + + * src/Pixes/: pix_texture.cpp, pix_texture.h: improved rectangle + texturing + +2003-06-23 08:59 cclepper + + * src/Base/: GemPixObj.cpp, GemPixUtil.h: added newfilm to + state->image + +2003-06-23 08:58 cclepper + + * src/Base/GemPixObj.h: fixed Ian's prefetch code + +2003-06-23 08:57 cclepper + + * src/Pixes/: pix_filmDarwinYUV.cpp, pix_filmDarwinYUV.h: fixed + inaccurate estimation of film length, trying yet another way to + do getFrame() + +2003-06-23 08:52 cclepper + + * src/Pixes/: pix_filmYUV.cpp, pix_filmYUV.h, pix_film.cpp, + pix_film.h: added newfilm to state to tell when a film has been + changed - mostly for faster rectangle texturing at this point + +2003-06-23 08:17 cclepper + + * src/Pixes/: pix_mix.cpp, pix_mix.h: improvements to YUV code + +2003-06-23 08:11 cclepper + + * src/Pixes/pix_snap.cpp: removed debug post() + +2003-06-23 07:59 cclepper + + * src/Pixes/pix_add.cpp: tweaked some altivec + +2003-06-18 17:23 zmoelnig + + * src/Pixes/pix_compare.h: set the include to + "Base/GemPixDualObj.h" (the Base/ was missing) + +2003-06-11 22:23 zmoelnig + + * src/Pixes/pix_invert.cpp: commented out the ALTIVEC after + "#endif" (gcc doesn't like this) + +2003-06-09 18:11 tigital + + * src/Pixes/pix_snap2tex.cpp: reordered declarations to shutup gcc + +2003-05-28 05:26 cclepper + + * src/Pixes/: pix_compare.h, pix_compare.cpp: initial commit + +2003-05-27 06:16 dheck + + * GEM_darwin.pbproj/project.pbxproj: Added project builder project + for Mac OS X + +2003-05-26 15:36 dheck + + * src/Pixes/: pix_filmQT.cpp, pix_filmQT.h, setup.h: Added a + Quicktime for Windows film loader. + +2003-05-24 18:30 zmoelnig + + * src/Pixes/pix_snap2tex.cpp: shouldn't the "snap" message be + replaced by a "bang". (at least i have *add*ed it) + +2003-05-24 18:27 zmoelnig + + * src/Pixes/setup.h: put the [pix_grey] back in again (why isn't it + there ?) + +2003-05-24 17:54 zmoelnig + + * src/Pixes/: pix_blob.cpp, pix_blob.h: added greyscale-support for + pix_blur + +2003-05-24 17:50 zmoelnig + + * src/Pixes/: pix_movement.cpp, pix_movement.h: since movement is + stored in the Alpha-channel, i hchanged processImage to + processRGBA image. i have to think about how to store movement + in other colour-spaces. grayscale: just in the image yuv : ??? + +2003-05-23 10:13 cclepper + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h: new integer processing + mode - 4x faster than float + +2003-05-22 09:33 cclepper + + * src/Pixes/: pix_invert.cpp, pix_invert.h: added Altivec + +2003-05-21 07:24 cclepper + + * src/Base/GemMan.cpp: fixed TEXTURE_RECTANGLE_EXT code for OSX + +2003-05-20 23:22 tigital + + * src/Pixes/pix_dot.h: added "scale" message to inc/dec size of + dots, plus some cleanup into the destructor; also made + inline_RGB2Y() protected + +2003-05-20 23:21 tigital + + * src/Pixes/pix_dot.cpp: added "scale" message to inc/dec size of + dots, plus some cleanup into the destructor + +2003-05-20 09:48 cclepper + + * src/Pixes/pix_texture.cpp: made CLAMP_TO_EDGE the repeat for + TEXTURE_RECTANGLE_EXT + +2003-05-20 02:24 tigital + + * src/Pixes/setup.h: commented out call to pix_film_setup(): is + this needed on any platform (seems like we went thru this + before)?... + +2003-05-20 02:21 tigital + + * src/Particles/partlib_opengl.cpp: add #ifdef __APPLE__ to + correctly include headers + +2003-05-19 06:03 cclepper + + * src/Pixes/pix_snap.cpp: now works on OSX + +2003-05-19 05:50 cclepper + + * src/Pixes/pix_write.cpp: now works on OSX + +2003-05-18 21:44 zmoelnig + + * src/Pixes/pix_multiply.cpp: we now have chY1,.... for + YUV-offsets, i have used this now + +2003-05-18 21:36 zmoelnig + + * src/Pixes/pix_dump.h: added method for grey-images + +2003-05-18 21:36 zmoelnig + + * src/Pixes/pix_crop.cpp: bug-fix: there was weird-behaviour, when + the offset was bigger than the size of the cropped(!) image + +2003-05-18 21:32 zmoelnig + + * src/Pixes/: pix_curve.cpp, pix_dump.cpp, pix_curve.h: added + method for grey-images + +2003-05-18 21:29 zmoelnig + + * src/Base/GemPixUtil.h: "#elif def" doesn't compile under linux, + but "#elif defined" does... + +2003-05-18 21:20 zmoelnig + + * src/: BUGS, TODO: updated + +2003-05-18 11:13 cclepper + + * src/Base/GemPixImageSave.cpp: initial OSX version of mem2image() + +2003-05-18 05:31 tigital + + * examples/data/: blob0.tif, blob1.tif, blob2.tif: needed for some + example patches (like pix_gravity) + +2003-05-17 22:33 tigital + + * src/Pixes/setup.h: added pix_rds_setup() + +2003-05-17 22:20 tigital + + * src/Pixes/pix_dot.cpp: cleanup a bit + +2003-05-17 22:19 tigital + + * src/Pixes/: pix_rds.cpp, pix_rds.h: initial port: RGB only (so + far) :-( + +2003-05-17 20:47 tigital + + * src/Base/GemPixDualObj.cpp: correct casting in sprintf's to + shutup compiler warning + +2003-05-17 20:45 tigital + + * src/Base/GemPixUtil.h: #elifdef doesn't compile on OSX, but #elif + def does + +2003-05-16 20:57 zmoelnig + + * src/Gnu/BUGS: moved BUGS to Gem/src (../) + +2003-05-16 20:57 zmoelnig + + * src/: BUGS, TODO: file bugs under BUGS, and things that have to + be done under TODO + +2003-05-16 20:53 zmoelnig + + * src/Gnu/BUGS: added a BUGS file + +2003-05-16 16:58 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: #ifdef'ed everything with + HAVE_DV (so it won't compile if there are no libdv/dv.h headers) + +2003-05-16 16:40 zmoelnig + + * src/Gnu/configure: fixed a typo that searched in "search_libs" + instead of expanding $search_libs + +2003-05-16 16:38 zmoelnig + + * src/Gnu/configure.in: fixed a typo that searched for "searchlibs" + instead of "$searchlibs" + +2003-05-16 14:36 zmoelnig + + * debian/: changelog, control, copyright, dirs, docs, files, rules: + Initial revision + +2003-05-16 14:36 zmoelnig + + * debian/: changelog, control, copyright, dirs, docs, files, rules: + debian package managing module: for creation of debs + +2003-05-16 13:10 zmoelnig + + * src/Base/GemPixObj.cpp: commited result of merge + +2003-05-16 13:07 zmoelnig + + * src/Base/: GemFuncUtil.h, GemPixUtil.h: moved macors for + image-processing from GemPixUtil to GemFuncUtil (since they are + functions, although they probably have not much use for things + other than PixProcessing (GemPixFun.h ?) + +2003-05-16 12:53 zmoelnig + + * src/Pixes/: pix_posterize.cpp, pix_posterize.h, setup.h: copied + yuv_posterize to pix_posterize. YUV only. hope this works as it + should + +2003-05-16 12:52 zmoelnig + + * src/Pixes/videoV4L.cpp: switched back from PALETTE_YUV422 to + PALETTE_YUV420P. it seems as if video4linux means something + different with YUV422 (or similar formats). too bad, conversions + (copying!) again + +2003-05-14 11:01 zmoelnig + + * src/Pixes/pix_texture2.cpp: ifdefed the use of + GL_UNPACK_CLIENT_STORAGE_APPLE obviously some other changes, + which i hope do not break anything, but i guess most of it is new + indentation + +2003-05-14 10:58 zmoelnig + + * help/: tv_biquad.pd, tv_movement.pd, tv_rtx.pd: removed tv_* + help-patches, since they are not used any more + +2003-05-14 10:03 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added data-acquisition + "fromYUV422" added offsets chY0, chY1, chU, chV for UYVY + interleaved data added a string2format converter (like 'rgba' to + GL_RGBA), only Grey, YUV, and RGBA are supported + +2003-05-14 09:59 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: added a topmostMess (a nop) + +2003-05-14 09:58 zmoelnig + + * src/Base/GemMan.cpp: ifdef'ed the call for openGL-extension + "rectangle-texture", since there were problems when Gem was + compiled without rectangle-texture-support, but the drivers + supported it (namely nvidia-driver) + +2003-05-14 09:50 zmoelnig + + * src/Pixes/videoV4L.cpp: oops, missed one thing: when yuv was + requested, we didn't directly captured to yuv422 but rather to + yuv420p. fixed + +2003-05-14 09:48 zmoelnig + + * src/Pixes/videoV4L.cpp: for testing i had hardcorded requests for + some "wrong" colour-spaces. hopefully this is removed now + +2003-05-14 09:46 zmoelnig + + * src/Pixes/: pix_texture.cpp, pix_texture.h: on platform that do + not support yuv422-openGL-renderings (i haven't managed to make + my geforce behave the way i expected, and of course there are + other cards that will never support yuv-textures), we now have + implicit yuv2rgb-conversion + +2003-05-14 09:44 zmoelnig + + * src/Pixes/: pix_emboss.cpp, pix_emboss.h: copy and pasted the + yuv_emboss into the Pixes source. for now, only yuv is supported + +2003-05-14 09:44 zmoelnig + + * src/Pixes/: pix_convert.cpp, pix_convert.h: yet another + colour-space converter ??? don't know whether this makes sense + (remove it LATER) + +2003-05-14 09:33 zmoelnig + + * src/Pixes/setup.h: added convert and emboss + +2003-05-14 09:32 zmoelnig + + * src/Pixes/pix_buffer.cpp: added aliases for [pix_depot] and + friends + +2003-05-14 09:32 zmoelnig + + * src/Pixes/pix_depot.cpp: [pix_put]: the frame# is now deleted + after an image has been written into the depot. the next incoming + image will not be stored until another frame# is given. + +2003-05-13 04:06 tigital + + * src/Particles/partlib_actions.cpp: added #define for logf(), + expf(), sinf(), & cosf() on OS X (sin() et. al. are already done + w/double precision) + +2003-05-13 04:00 tigital + + * src/Particles/partlib_vector.h: added #define for sqrtf() on OS X + +2003-05-13 03:59 tigital + + * src/Base/GemPixUtil.h: reordered variables to reduce compiler + warnings added glext.h to compile on OS X + +2003-05-13 02:54 cclepper + + * src/Base/GemPixImageLoad.cpp: fixed the OSX image loading code + +2003-05-12 23:54 tigital + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwinYUV.cpp: removed + unused variables + +2003-05-12 12:27 dheck + + * src/: gem.vcproj, Base/GemPixObj.cpp, Base/GemPixObj.h, + Base/GemPixUtil.cpp, Particles/papi.h, + Particles/part_targetsize.h, Particles/partlib_system.cpp, + Pixes/pix_duotone.cpp, Pixes/pix_duotone.h, Pixes/pix_gain.cpp, + Pixes/pix_texture.cpp, Pixes/pix_texture2.cpp: Minor changes for + Win32 compilation. + +2003-05-12 11:48 cclepper + + * src/Pixes/: filmDarwin.cpp, filmDarwin.h: initial 'working' + version + +2003-05-12 11:43 cclepper + + * src/Pixes/pix_gain.cpp: removed unused variables, added registers + +2003-05-12 11:37 cclepper + + * src/Pixes/pix_mix.cpp: removed unused variable + +2003-05-12 11:36 cclepper + + * src/Pixes/pix_convolve.cpp: added vec_dst for dst stream + +2003-05-12 11:03 cclepper + + * src/Pixes/pix_roll.cpp: removed pointless macro + +2003-05-12 10:59 cclepper + + * src/Pixes/: pix_texture.cpp, pix_texture.h: added 'mode' message + to switch between power-of-2 and rectangle textures + +2003-05-11 16:36 dheck + + * src/: gem.vcproj, Pixes/pix_snap2tex.cpp, Pixes/pix_snap2tex.h, + Pixes/setup.h: Added pix_snap2tex for snapping directly to a + texture. This may need some experimentation with appropriate + pixel formats for each platform to achieve good performance. + +2003-05-11 08:01 cclepper + + * src/Pixes/pix_rgba.cpp: changed the Mac format to GL_BGRA_EXT + +2003-05-07 19:24 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h, pix_buffer_read.h, + pix_buffer_write.h: renamed [pix_depot] and fellows to + [pix_buffer] et al. + +2003-05-07 13:10 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: added a deviceMess + for setting which device to use + +2003-05-07 13:07 zmoelnig + + * src/Pixes/pix_rgba.cpp: set output format to GL_ARGB_EXT on + macOS. i hope this works, but maybe not + +2003-05-07 13:06 zmoelnig + + * src/Pixes/pix_buf.cpp: added alias for [pix_separator] + +2003-05-07 13:05 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L.h: first attempt to support my + Philips Quickcam (720/40) + +2003-05-07 13:03 zmoelnig + + * src/Pixes/: pix_add.cpp, pix_add.h, pix_subtract.cpp, + pix_subtract.h: added Grey-Grey support + +2003-05-07 12:56 zmoelnig + + * src/Pixes/pix_buf.cpp: there is now an alias for [pix_separator] + +2003-05-07 12:55 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added colourConversion + routines to GemPixUtils (for now only non-optimized) maybe they + should rather be in GemPixConvert ? datasize is now private + +2003-05-07 12:38 zmoelnig + + * src/Pixes/pix_tIIR.cpp: since datasize in imageStruct is now + private, we use setBlack() to delete the image-buffer + +2003-05-07 12:35 zmoelnig + + * src/Pixes/: pix_info.cpp, pix_info.h: used to crash when the + data-pointer was zero + +2003-05-07 12:19 zmoelnig + + * src/Base/: GemBase.cpp, GemBase.h: i once uncommented the + "realStopRendering" things, because i didn't know what it was + for. trying to compile gem2pdp i noticed that this was needed. + yes, i don't like it either, when changes are made to the + repository wihtout documentation + +2003-05-07 12:11 zmoelnig + + * src/Particles/: part_color.cpp, part_color.h, part_info.cpp, + part_info.h, part_render.cpp, part_size.cpp, part_size.h, + part_targetsize.cpp, part_targetsize.h: upgraded to + libarticle-1.20 this effects some of the [part_*] objects (eg: + [part_info] now has another output for the age of the + particle,...) + +2003-05-07 12:10 zmoelnig + + * src/Particles/papi.h: upgraded to 1.20 + +2003-05-07 12:09 zmoelnig + + * src/Particles/: partlib_actionapi.cpp, partlib_actions.cpp, + partlib_general.h, partlib_opengl.cpp, partlib_system.cpp, + partlib_vector.h: upgraded to libparticle-1.20 + +2003-05-07 11:56 zmoelnig + + * src/Pixes/film.h: added some comments (is this enough + documentation ?) + +2003-05-06 01:58 cclepper + + * src/Pixes/: pix_motionblur.cpp, pix_motionblur.h: initial commit + - replacement for pix_blur with a much better algo + +2003-04-28 23:56 tigital + + * src/Geos/text2d.h: switched ordering of variables to appease + compiler + +2003-04-28 21:46 zmoelnig + + * src/Pixes/pix_add.cpp: stupid bug when adding to grey images + +2003-04-28 20:06 zmoelnig + + * examples/06.particle/: 07.render.pd, 08.info.pd: examples for + user-defined particles + +2003-04-28 19:48 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: a not yet working + ieee1394-videoIN under linux + +2003-04-28 19:44 zmoelnig + + * src/Pixes/: pix_texture.cpp, pix_texture.h: merged pix_texture + and pix_texture2 and made rectangle-textures work with nvidia + (hope it works...) + +2003-04-28 19:43 zmoelnig + + * src/Pixes/pix_videoNEW.h: played with the colour-spaces + +2003-04-28 19:41 zmoelnig + + * src/Pixes/: pix_normalize.cpp, pix_normalize.h: added a method + for Gray + +2003-04-28 19:39 zmoelnig + + * src/Pixes/: pix_videoLinux.cpp, pix_videoNEW.cpp, videoV4L.cpp, + videoV4L.h: played with the colour-spaces + +2003-04-28 19:38 zmoelnig + + * src/Pixes/: pix_filmNT.h, pix_videoDS.cpp: new indentation ;-) + +2003-04-28 19:38 zmoelnig + + * src/Pixes/pix_filmLinux.h: fixed things with old libaviplay, that + doesn't work (since it only decodes audio) + +2003-04-28 19:34 zmoelnig + + * src/Pixes/pix_yuv.cpp: added a comment + +2003-04-28 19:34 zmoelnig + + * src/Pixes/: pix_convolve.cpp, pix_depot.cpp, pix_duotone.cpp, + pix_subtract.cpp: new indentation ;-) + +2003-04-28 19:33 zmoelnig + + * src/Pixes/: pix_rgb2hsv.cpp, pix_blur.cpp, pix_histo.cpp, + pix_dot.cpp, pix_chroma_key.cpp: removed unused variables and + initialized used ones. + +2003-04-28 19:32 zmoelnig + + * src/Pixes/: pix_movie.cpp, pix_movieYUV.cpp: ifdef'ed + GL_UNPACK_CLIENT_STORAGE_APPLE + +2003-04-28 19:27 zmoelnig + + * src/Pixes/: video.cpp, video.h: added a method for changing the + color-space + +2003-04-28 19:26 zmoelnig + + * src/Pixes/setup.h: [no log message] + +2003-04-28 19:25 zmoelnig + + * src/Pixes/: film.cpp, filmAVI.cpp, filmAVIPLAY.cpp, + filmDarwin.cpp, filmFFMPEG.cpp, filmMPEG1.cpp, filmMPEG3.cpp: + made film-stuff compile with gcc-3.2 without warnings... (hope + that is all) + +2003-04-28 19:24 zmoelnig + + * src/Pixes/: film.h, filmAVI.h, filmAVIPLAY.h, filmDarwin.h, + filmFFMPEG.h, filmMPEG3.h: nothing, but made the constructor + virtual (since the class is virtual too) + +2003-04-28 19:22 zmoelnig + + * src/Gnu/: Makefile.subdir, configure: ??? + +2003-04-28 19:21 zmoelnig + + * src/Gnu/: Makefile.in, configure.in: a new flag "--with-ieee1394" + for linux-compiles (doesn't do anything yet...) + +2003-04-28 19:19 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: cursorMessage should return + something. it does so now. + +2003-04-28 19:17 zmoelnig + + * src/Base/GemPixUtil.h: tried to add the nvidia-specific defines + for yuv422 and rectangle-texturing (however, the yuv-thing still + doesn't work) + +2003-04-28 19:16 zmoelnig + + * src/Base/: GemPixImageLoad.cpp, GemPixImageSave.cpp: (nothing), + like dos2unix... + +2003-04-28 19:15 zmoelnig + + * src/Base/: GemBase.cpp, GemBase.h: added the continueRender() + function (important to output several gemlists (like with + [part_render]) uncommented the stoprender() thing. what is it for + ? + +2003-04-28 19:13 zmoelnig + + * src/Base/GemMan.cpp: made texture_rectangle_supported work with + nvidia... found a bug @ parsing the openGL-extension when no + openGL-context was yet valid + +2003-04-28 19:12 zmoelnig + + * src/Base/sgiimage.cpp: initialized a variable + +2003-04-28 19:10 zmoelnig + + * src/Controls/: orb.cpp, orbserial.cpp: new indentation ;-) + +2003-04-28 19:09 zmoelnig + + * src/Geos/text2d.h: swapped 2 lines (GLTTBitmapFont and + GLTTPixmapFont) because gcc-3.2 would complain + +2003-04-28 19:08 zmoelnig + + * src/Geos/: ripple.cpp, rubber.cpp: removed unused variables and + initialized used ones + +2003-04-28 19:07 zmoelnig + + * src/Geos/newWave.cpp: removed some unused variables + +2003-04-28 19:06 zmoelnig + + * src/Geos/model_loader.cpp: (nothing) + +2003-04-28 19:05 zmoelnig + + * src/MarkEx/hsvrgb.cpp: initialized some values (gcc-3.2 would + complain) + +2003-04-28 18:20 zmoelnig + + * src/Particles/: part_info.cpp, part_info.h, part_render.cpp, + part_render.h, setup.h: [part_render] let you render any gemlists + as particles [part_info] is similar, but doesn't actually + rotate/translate/... the gemlist, but outputs the data on the + right outlets + +2003-04-28 18:19 zmoelnig + + * src/Particles/part_vector.h: suddenly i discovered that gcc-3.2 + (?) didn't want to compile this... + +2003-04-22 07:11 cclepper + + * src/Pixes/pix_convolve.cpp: added optimizations to YUV and a + first try at an altivec function + +2003-04-22 05:20 cclepper + + * src/Pixes/: pix_convolve.cpp, pix_convolve.h: added optimizations + to YUV and a first try at an altivec function + +2003-04-22 05:18 cclepper + + * src/Pixes/: pix_scanline.h, pix_scanline.cpp: initial commit + +2003-04-14 16:57 zmoelnig + + * src/Pixes/: video.cpp, video.h: changed the API a little bit... + +2003-04-14 16:56 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h, videoV4L.cpp, + videoV4L.h: what to say ? making it work + +2003-04-14 10:57 zmoelnig + + * src/Pixes/pix_dot.cpp: made an explicit cast from float to + integer during the processing + +2003-04-14 10:56 zmoelnig + + * src/Pixes/: pix_add.cpp, pix_add.h, pix_composite.cpp, + pix_composite.h, pix_mask.cpp, pix_takealpha.cpp: (refined) + RGBA_Gray-support for PixDualObjects + +2003-04-14 02:19 dheck + + * src/gem.vcproj: Made GEM release build include DirectShow support + by default. + +2003-04-14 01:39 dheck + + * src/Pixes/pix_videoDS.cpp: Added alias to old external name + (interim measure... should remove it eventually) + +2003-04-13 16:42 dheck + + * src/: gem.vcproj, Pixes/pix_filmNT.cpp: More error checking + tweaks + +2003-04-12 20:33 cclepper + + * src/Pixes/pix_rgba.cpp: fixed the OSX format #ifdef + +2003-04-11 12:09 dheck + + * src/Pixes/pix_videoDS.cpp: Added DirectShow graph exporting for + debugging with GraphEdit + +2003-04-11 02:28 tigital + + * src/Pixes/: pix_dot.cpp, pix_dot.h: removed unused variables, + started work on processYUVimage + +2003-04-10 22:13 zmoelnig + + * src/Pixes/pix_flip.cpp: this is BUGGY ? (i think) + +2003-04-10 16:53 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: oh i think + pix_videoNEW is really buggy. + +2003-04-10 10:34 zmoelnig + + * src/Gnu/Makefile.subdir: added a dos2unix on make distclean + +2003-04-10 10:32 zmoelnig + + * src/Base/GemMan.cpp: new startup-logo with more authors + +2003-04-10 10:27 zmoelnig + + * src/Pixes/: pix_background.cpp, pix_roll.cpp: added #include + + +2003-04-10 10:25 zmoelnig + + * src/Pixes/: pix_dot.cpp, pix_filmNEW.cpp, pix_filmNT.cpp, + pix_videoLinux.cpp, pix_videoLinux.h, setup.h: though i fixed the + linux-Video thing but someone did this for me... there was a + missing in pix_dot.cpp + +2003-04-10 06:58 dheck + + * src/Pixes/filmQT4L.cpp: Fixed problems with previous commit: + avoid memory leaks due to alternate return paths. + +2003-04-10 06:49 dheck + + * src/Pixes/filmQT4L.cpp: Changed automatic non-const array + allocation to heap allocated array for compiler compatibility. + +2003-04-10 06:46 dheck + + * src/Pixes/pix_dot.cpp: Fixed return in void function. + +2003-04-09 20:17 cclepper + + * src/Base/GemPixUtil.h: added #include + +2003-04-09 10:07 cclepper + + * src/Controls/: gemwin.cpp, gemwin.h: added fps message and outlet + +2003-04-09 09:59 cclepper + + * src/Base/GemWinCreateMac.cpp: changed secondscreen to use a + minimum of 640x480 + +2003-04-09 09:56 cclepper + + * src/Base/: GemMan.h, GemMan.cpp: added fps message + +2003-04-09 09:38 cclepper + + * src/Geos/: newWave.h, newWave.cpp: changed speed message to take + all float values + +2003-04-09 09:01 cclepper + + * src/Geos/polygon.cpp: added the rest of the GL drawing modes + +2003-04-09 08:42 cclepper + + * src/Pixes/setup.h: new pix_objects + +2003-04-09 08:32 cclepper + + * src/Pixes/pix_texture.cpp: added buffer zeroing for YUV textures + +2003-04-09 08:31 cclepper + + * src/Pixes/: pix_background.cpp, pix_background.h: initial commit + +2003-04-09 07:14 cclepper + + * src/Pixes/: pix_duotone.cpp, pix_duotone.h: initial commit + +2003-04-09 07:03 cclepper + + * src/Pixes/pix_blur.cpp: fixed a potential crash + +2003-04-09 06:08 cclepper + + * src/Pixes/: pix_roll.cpp, pix_roll.h: initial commit + +2003-04-09 06:03 cclepper + + * src/Pixes/pix_threshold.h: added yuv + +2003-04-09 05:59 cclepper + + * src/Pixes/pix_texture2.cpp: removed memset + +2003-04-09 05:03 cclepper + + * src/Pixes/pix_threshold.cpp: added YUV function + +2003-04-09 01:34 cclepper + + * src/Pixes/: pix_filmYUV.h, pix_filmYUV.cpp: added fps timing + outlet + +2003-04-09 01:33 tigital + + * src/Pixes/pix_filmDarwin.h: removed unused (now) media variable + +2003-04-09 01:31 tigital + + * examples/05.text/: 01.TextNoLoadBang.pd, + 03.ChangeTextNoLoadBang.pd: removed loadBang so the patches will + not crash on OSX: again, OSX needs a glContext before making any + glCalls! + +2003-04-09 01:30 tigital + + * src/Pixes/: pix_filmDarwinYUV.h, pix_filmDarwinYUV.cpp: cleaned + up unused code, including removal of media timescale calculation, + which could cause crashes, and is not currently necessary + +2003-04-09 00:22 tigital + + * src/Pixes/pix_filmDarwin.cpp: cleaned up unused code, including + removal of media timescale calculation, which could cause + crashes, and is not currently necessary + +2003-04-09 00:20 tigital + + * src/Pixes/: pix_dot.cpp, pix_dot.h: now it works! RGBA only now, + but YUV on it's way...from the EffectTV collection + +2003-04-09 00:18 tigital + + * src/Pixes/setup.h: uncommented pix_dot_setup stuff, because now + it works! + +2003-04-08 19:06 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: added filmQT4L + +2003-04-08 19:04 zmoelnig + + * src/Pixes/pix_gain.cpp: fixed the float2int bug (haven't i + submitted this 4 times today ?) + +2003-04-08 19:03 zmoelnig + + * src/Pixes/videoV4L.cpp: double default argument fixed + +2003-04-08 19:02 zmoelnig + + * src/Pixes/pix_depot.cpp: added some casts to integer (warnings on + gcc-3.2) + +2003-04-08 19:00 zmoelnig + + * src/Pixes/filmMPEG3.cpp: fixed a bug on close + +2003-04-08 19:00 zmoelnig + + * src/Pixes/: filmMPEG1.cpp, filmFFMPEG.cpp: added newlines at EOF + +2003-04-08 18:58 zmoelnig + + * src/Pixes/: filmQT4L.cpp, filmQT4L.h: the quicktime4linux + movie-loader class + +2003-04-08 18:57 zmoelnig + + * src/Pixes/: DSgrabber.cpp, DSgrabber.h: [no log message] + +2003-04-08 18:54 zmoelnig + + * src/Pixes/: pix_videoLinux.cpp, pix_videoLinux.h: the capturing + is now threaded + +2003-04-08 11:12 zmoelnig + + * src/Pixes/pix_depot.cpp: fixed a bug in the destructor + +2003-04-08 10:40 zmoelnig + + * src/Pixes/pix_depot.cpp: can't remember (maybe only some + tab-indents) + +2003-04-08 10:34 zmoelnig + + * src/Pixes/: pix_pix2sig.cpp, pix_pix2sig.h: added support for + other colour-spaces (though YUV might produced interlaced + signals) + +2003-04-08 10:32 zmoelnig + + * src/Pixes/: pix_videoDS.cpp, pix_videoDS.h: dos2unix + +2003-04-08 10:29 zmoelnig + + * src/Pixes/pix_videoLinux.cpp: just a debugging output + +2003-04-08 10:27 zmoelnig + + * src/Pixes/pix_rgba.cpp: set the notowned flag to 0 (because we + own the rgba-image) + +2003-04-08 10:26 zmoelnig + + * src/Pixes/: pix_info.cpp, pix_info.h: changed the base class from + GemPixObj to GemBase (so we have info on every image). maybe this + was not a great idea ...( but not that bad either) + +2003-04-08 10:22 zmoelnig + + * src/Pixes/: video.cpp, video.h: the parent class for os/lib + dependent video-grabbing (childs include videoV4L, hopefully will + include video1394, videoDS, videoWDM,...) + +2003-04-08 10:17 zmoelnig + + * src/: Geos/model_loader.h, Geos/newWave.cpp, Geos/rubber.h, + Manips/ortho.cpp, Nongeos/world_light.h: nothing i know of + +2003-04-08 08:58 cclepper + + * src/Pixes/: pix_filmDarwinYUV.cpp, pix_filmDarwinYUV.h: added + LoadRam() + +2003-04-08 08:11 cclepper + + * src/Pixes/pix_filmDarwin.cpp: added LoadRam() + +2003-04-08 07:43 cclepper + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h: added LoadRam() + +2003-04-08 07:18 tigital + + * src/Pixes/pix_filmDarwin.cpp: forgot to remove getFrame() + variable duration! Thanks to the vigilent cgc + +2003-04-08 05:15 cclepper + + * src/Pixes/pix_rgba.cpp: put OSX ifdef back in + +2003-04-08 05:01 cclepper + + * src/Pixes/pix_dump.cpp: added yuv code + +2003-04-08 04:58 cclepper + + * src/Pixes/: pix_convolve.cpp, pix_convolve.h: new 3x3 yuv code + +2003-04-07 14:35 dheck + + * src/: Base/GemMan.cpp, Base/GemMan.h, Controls/gemwin.cpp, + Controls/gemwin.h: Added "clear_mask" method to [gemwin]. Uses + with the GLdefine object to generate GLbitfields for the gemwin's + glClear. + +2003-04-07 01:06 dheck + + * src/: gem.vcproj, Base/GemMan.cpp, Base/GemMan.h, + Controls/gemwin.cpp, Controls/gemwin.h, Pixes/pix_filmNT.cpp: + Added a "render" message to gemwin to allow a single graph + rendering to be done. Also changed "frame" message to allow a + frame rate of 0. + +2003-04-06 21:27 zmoelnig + + * src/Base/: GemBase.cpp, GemGLUtil.cpp, GemGluObj.h, + GemPixObj.cpp, GemState.cpp: GemPixObj: i think there was a bug + with not initializing pointers the rest is no real changes (only + "visiting" the files) + +2003-04-06 21:24 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L.h: a threaded class for video + capturing under linux + +2003-04-06 21:22 zmoelnig + + * src/Pixes/: film.cpp, filmAVI.cpp, filmAVIPLAY.cpp, + filmDarwin.cpp, filmFFMPEG.cpp, film.h, filmAVI.h, filmAVIPLAY.h, + filmDarwin.h, filmFFMPEG.h, filmMPEG1.cpp, filmMPEG3.cpp, + filmMPEG1.h, filmMPEG3.h, pix_filmNEW.cpp, pix_filmNEW.h: a "new" + concept of how os/library dependant code should look like. do + not make the pd-object-class OS-dependent but a helper class. + +2003-04-06 10:06 dheck + + * src/Base/GemWinCreateNT.cpp: Fixed topmost message implementation + for that topmost properly would be applied to windows created + after a previous was destroyed. + +2003-04-06 07:58 dheck + + * src/: Base/GemMan.cpp, Base/GemMan.h, Base/GemWinCreate.h, + Base/GemWinCreateNT.cpp, Controls/gemwin.cpp, Controls/gemwin.h: + Added topmost message to keep gemwin on top of other windows. + Implemented for win32 only. + +2003-04-06 04:16 tigital + + * src/Base/GemPixUtil.h: rearranged initializers to stop compile + warnings + +2003-04-06 04:14 dheck + + * src/: gem.dsw, gem.vcproj, gem_vc6.dsw, gem_vc7.sln, + Pixes/pix_filmNT.cpp, Pixes/pix_filmNT.h: Added VC++ 7 workspace + and project. Modified pix_filmNT to provide more robust error + handling and to support recent CVS change in pix_film frame + loading behaviour + +2003-04-04 16:58 ggeiger + + * src/Gnu/: configure, configure.in, makeauxlibs: moved orb into + Gem + +2003-04-04 16:56 ggeiger + + * src/Controls/: orb.cpp, orb.h, orbserial.cpp, orbserial.h: Moved + from GemLibs + +2003-04-03 17:36 zmoelnig + + * src/openGL/GEMglAreTexturesResident.cpp: changed a type from bool + to GLboolean (why ? i guess for vc6) + +2003-04-03 17:35 zmoelnig + + * src/Controls/gemhead.cpp: set the state->image to zero before + rendering + +2003-04-03 17:35 zmoelnig + + * src/Controls/gemwin.cpp: added a boolean cast (for vc6) + +2003-04-03 17:33 zmoelnig + + * src/Base/GemGLUtil.cpp: [no log message] + +2003-04-03 17:29 zmoelnig + + * src/Base/: GemBase.cpp, GemWinCreateNT.cpp: some casts to bool + (vc6 didn't like it the way it was done) + +2003-04-03 17:28 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: allocate() now allocates + data according to xsize/ysize/csize type is automatically set + (depending on OS) + +2003-04-03 17:23 zmoelnig + + * src/Pixes/pix_buf.cpp: nothing that matters (just a boolean cast + at autoMess) + +2003-04-03 17:22 zmoelnig + + * src/Pixes/pix_texture2.cpp: really nothing (maybe some blank + lines) + +2003-04-03 17:21 zmoelnig + + * src/Pixes/: pix_filmFFMPEG.cpp, pix_filmFFMPEG.h: some ifdefs to + compile on my version of ffmpeg + +2003-04-03 17:20 zmoelnig + + * src/Pixes/setup.h: [no log message] + +2003-04-03 17:19 zmoelnig + + * src/Pixes/pix_aging.cpp: removed to redundant lines (mainly a + label "BREAK") + +2003-04-03 17:17 zmoelnig + + * src/Pixes/: pix_get.h, pix_put.h, pix_depot.cpp, pix_depot.h: + [pix_depot] can store images (any size, fixed number) (TODO: add + a way to load decompress movies directly into [pix_depot]). it is + like [table] [pix_get] gets frames from [pix_depot] (like + [tabread]) [pix_put] writes frames to [pix_depot] (like + [tabwrite]) + +2003-04-01 07:25 tigital + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h, + pix_filmDarwinYUV.h, pix_filmDarwinYUV.cpp: OSX only: turns out + that SampleNumToMediaTime() only worked when 1 movie was + loaded...switched to a much simpler method of calculating + m_reqFrame's m_movieTime...which works with at least five + simultaneously running films! + +2003-03-31 18:46 tigital + + * src/Pixes/pix_filmDarwin.cpp: OSX only: forgot to set one flag + correctly + +2003-03-31 08:37 tigital + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h, + pix_filmDarwinYUV.cpp, pix_filmDarwinYUV.h: OSX only: changed + getFrame() for non-auto-processing, so now we get much smoother + playback using metro/counter, in addition to allowing + scrubbing/random frame access via a number box! Finally! + +2003-03-31 00:09 tigital + + * src/Pixes/: pix_film.cpp, pix_filmYUV.cpp: switched order of + getFrame() and "m_curFrame = m_reqFrame"...also added an idle + MoviesTask() on OSX + +2003-03-31 00:01 tigital + + * src/Geos/imageVert.cpp: fixed OSX crash: needed check for + GLcontext before executing glGenLists() + +2003-03-16 04:25 dheck + + * help/pix_videoDS.pd, src/gem.dsp, src/Pixes/DSgrabber.cpp, + src/Pixes/DSgrabber.h, src/Pixes/pix_videoDS.cpp, + src/Pixes/pix_videoDS.h, src/Pixes/setup.h: Added pix_videoDS, a + DirectShow based video input object for Windows + +2003-03-15 05:27 cclepper + + * src/Pixes/pix_movie.cpp: removed post() in postrender + +2003-03-13 03:37 dheck + + * src/: gem.dsp, Pixes/setup.h: Added pix_chroma_key to the pix + setup function and added the source files to the Visual Studio + project. + +2003-03-10 10:56 dheck + + * src/: gem.dsp, Base/GemPixUtil.h, Base/GemSetup.cpp: Excluded + config.h from Windows builds + +2003-03-08 00:08 tigital + + * src/Geos/model_loader.h: added #ifdef for OpenGL/gl.h on OSX + +2003-03-08 00:07 tigital + + * src/yuv/yuv_chroma_key.cpp: added #ifdef DEBUG to post() in + processYUV_YUV() + +2003-03-08 00:05 tigital + + * src/Pixes/: pix_filmFFMPEG.cpp, pix_dvLinux.cpp: is + "Base/config.h" used by anyone anymore? #ifdef'd for linux + because it was stopping OSX build + +2003-03-07 23:57 tigital + + * src/Base/TextBase.h: is "Base/config.h" used by anyone anymore? + #ifdef'd for linux because it was stopping OSX build + +2003-03-07 23:55 tigital + + * src/Base/GemGlutObj.h: is "Base/config.h" used by anyone anymore? + +2003-03-07 18:23 ggeiger + + * src/Gnu/: configure, configure.in: fixed avcodec check bug + +2003-03-07 17:43 ggeiger + + * src/Gnu/: Makefile.in, configure, configure.in: added FFMPEG + library checks + +2003-03-07 17:41 ggeiger + + * src/Pixes/: pix_add.cpp, pix_convolve.cpp, pix_convolve.h, + pix_subtract.cpp: checked in int/unfolded pix operations + +2003-03-07 17:40 ggeiger + + * src/Base/: GemPixObj.cpp, GemPixUtil.cpp, GemPixUtil.h: remove + MMX routines + +2003-03-07 17:40 ggeiger + + * src/Base/config.h.in: added HAVE_LIBAVCODEC,HAVE_LIBAVFORMAT + +2003-03-07 17:37 ggeiger + + * src/Pixes/setup.h: added pix_filmFFMPEG setup + +2003-03-07 17:29 ggeiger + + * src/Pixes/: pix_filmFFMPEG.cpp, pix_filmFFMPEG.h: added new + FFMPEG version of pix_film + +2003-03-07 10:58 ggeiger + + * src/Gnu/: configure.in, configure: removed search for particle + and glm + +2003-03-07 10:57 ggeiger + + * src/Gnu/makeauxlibs: particle and glm are in Gem now + +2003-03-07 10:55 ggeiger + + * src/Particles/: papi.h, part_draw.cpp, part_draw.h, + part_vector.h, partlib_actionapi.cpp, partlib_actions.cpp, + partlib_system.cpp: included particle library stuff + +2003-03-07 10:47 ggeiger + + * src/Geos/: model.h, model_loader.cpp, model_loader.h, + multimodel.h: moved glm.c into model_loader.cpp + +2003-03-07 10:43 ggeiger + + * src/Base/config.h: config.h will be autogenerated from config.in + +2003-03-07 06:23 cclepper + + * src/yuv/: yuv_videoDarwin.cpp, yuv_videoDarwin.h: added quality + modes + +2003-03-07 05:28 cclepper + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: added quality + modes + +2003-03-07 00:30 cclepper + + * src/Base/GemMan.h: added secondscreen message to enable/disable + fullscreen on a 2nd display + +2003-03-06 23:44 cclepper + + * src/Base/: GemMan.h, GemMan.cpp, GemWinCreate.h, + GemWinCreateMac.cpp: added secondscreen message to enable/disable + fullscreen on a 2nd display + +2003-03-06 23:37 cclepper + + * src/Controls/: gemwin.cpp, gemwin.h: added secondscreen message + to enable/disable fullscreen on a 2nd display + +2003-03-06 18:26 zmoelnig + + * src/Base/: GemBase.cpp, GemCache.cpp, GemMan.cpp, GemMan.h, + GemPixObj.cpp, GemPixUtil.cpp, TextBase.cpp, TextBase.h: ??? + +2003-03-06 18:25 zmoelnig + + * src/Geos/: model.cpp, newWave.h, ripple.cpp, ripple.h, + rubber.cpp, rubber.h, square.cpp, text2d.cpp, text2d.h, + text3d.cpp, text3d.h, textoutline.cpp, textoutline.h: changed + text-object, so they can be disabled... + +2003-03-06 18:24 zmoelnig + + * src/Manips/: alpha.cpp, alpha.h, separator.cpp: bugfixed + separator + +2003-03-06 18:23 zmoelnig + + * src/Pixes/: pix_buf.cpp, pix_buf.h, pix_crop.cpp, + pix_pix2sig.cpp, pix_pix2sig.h, pix_rgba.cpp, pix_rtx.cpp, + pix_sig2pix.cpp, pix_sig2pix.h: some bug-fixes; esp [pix_buf] + +2003-03-06 18:22 zmoelnig + + * src/Gnu/Makefile: checked in Makefile again... + +2003-03-06 18:19 zmoelnig + + * src/Gnu/: Makefile, acinclude.m4, aclocal.m4, configure: updated + configure.... + +2003-03-03 23:44 dheck + + * src/Pixes/pix_rgba.cpp: Reverted GL_BGR[A] to GL_BGR[A]_EXT to + allow compilation on Windows (openGL 1.1) + +2003-03-03 18:00 zmoelnig + + * src/Pixes/: pix_crop.cpp, pix_crop.h: pix_crop takes sub-images + of images + +2003-03-03 17:59 zmoelnig + + * examples/data/venus.obj: the object file for venus was missing... + +2003-03-01 19:16 zmoelnig + + * src/Gnu/Makefile.in: fixed a bug with SYSTEMDOCS and made + pd/extra the default installation-dir (not pd/externs) + +2003-03-01 11:18 zmoelnig + + * src/Gnu/: configure, configure.in: added avifile support + +2003-03-01 11:18 zmoelnig + + * src/Base/: config.h, config.h.in: added AVIPLAY (for linux) and + (not yet functioning) GLTT defines + +2003-03-01 11:16 zmoelnig + + * src/Pixes/: pix_biquad.cpp, pix_movement.cpp, pix_rtx.cpp, + pix_rtx.h: somehow these were not properly updated ... + +2003-03-01 11:10 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_filmLinux.cpp, pix_filmLinux.h, + pix_rgba.cpp: added libavifile-support under linux + +2003-03-01 09:29 cclepper + + * src/Pixes/: pix_convolve.cpp, pix_convolve.h: added yuv and + optimizations + +2003-02-28 11:00 ggeiger + + * src/: Geos/newWave.cpp, Pixes/pix_convolve.cpp: changed "for (int + i=0; ..)" scoping + +2003-02-28 08:17 cclepper + + * src/Base/GemMan.cpp: added VBLsync for OSX + +2003-02-27 05:25 cclepper + + * src/Pixes/: pix_chroma_key.cpp, pix_chroma_key.h: initial commit + +2003-02-27 05:20 cclepper + + * src/Pixes/: pix_subtract.h, pix_subtract.cpp, pix_blur.cpp, + pix_blur.h, pix_mix.cpp, pix_mix.h: added altivec function + +2003-02-27 05:16 cclepper + + * src/Pixes/: pix_gain.h, pix_gain.cpp, pix_offset.h, + pix_offset.cpp: added altivec function + +2003-02-27 02:09 dheck + + * src/Base/GemPixUtil.h: Added 31 bytes to imageStruct buffer + allocation to allow realignment without causing buffer overruns. + +2003-02-26 05:05 dheck + + * src/: gem.dsp, gem.dsw: Incorporated source structure changes in + CVS (TV->pix) and new source files + +2003-02-26 05:02 dheck + + * src/: gem.dsp, gem.dsw: Updated Visual Studio project and + workspace to build current CVS source. + +2003-02-26 04:59 dheck + + * src/: Base/GemGluObj.h, Base/GemPixUtil.cpp, Base/GemShape.cpp, + Base/GemShape.h, Base/GemState.cpp, Geos/newWave.cpp, + Geos/newWave.h, Geos/ripple.h, Geos/rubber.h, Manips/ortho.cpp, + Nongeos/world_light.h, Pixes/pix_convolve.cpp, + Pixes/pix_videoNT.cpp, yuv/yuv_posterize.cpp: Fixed Win32 + compilation issues. + +2003-02-26 02:11 tigital + + * src/Base/GemPixUtil.h: reordered member initializers to + "...datasize(0),pdata(0)..." to remove gcc 3.1 warnings + +2003-02-26 01:30 tigital + + * src/Pixes/setup.h: added *_setup() for objects from tv_* to pix_* + +2003-02-26 01:29 tigital + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h, pix_delay.cpp, + pix_delay.h, pix_movement.cpp, pix_movement.h, pix_rtx.cpp, + pix_rtx.h: moved from tv_* to pix_* + +2003-02-24 19:53 zmoelnig + + * src/Gnu/README.build: updated a link + +2003-02-24 19:41 zmoelnig + + * src/Manips/: alpha.cpp, alpha.h, setup.h: now the alpha-blending + function can be set by hand: 0 .. GL_ONE_MINUS_SRC_ALPHA 1 .. + GL_ONE + +2003-02-24 19:40 zmoelnig + + * src/Manips/: polygon_smooth.cpp, polygon_smooth.h: polygon_smooth + enables GL-polygon-smoothing (like it has been proposed by the + mac-people) + +2003-02-24 14:12 zmoelnig + + * src/TV/: Make.depend, setup.h, tv_biquad.cpp, tv_biquad.h, + tv_delay.cpp, tv_delay.h, tv_movement.cpp, tv_movement.h, + tv_rtx.cpp, tv_rtx.h, tv_test.cpp, tv_test.h: removing TV + +2003-02-24 14:10 zmoelnig + + * src/: Base/GemSetup.cpp, Pixes/pix_test.cpp, Pixes/pix_test.h, + Pixes/setup.h: removed TV-class + +2003-02-24 14:09 zmoelnig + + * src/Gnu/: Makefile.in, WHATSNEW, configure, configure.in, + makesource: removing TV-class + +2003-02-24 13:47 zmoelnig + + * src/Pixes/: pix_blur.cpp, pix_mix.cpp, setup.h: [no log message] + +2003-02-24 13:44 zmoelnig + + * src/Pixes/: pix_tIIR.cpp, pix_tIIR.h: another IIR-filter + (time-domain) for pixes: very much like [pix_blur] and + [pix_biquad], but more flexible + +2003-02-24 12:45 zmoelnig + + * src/Pixes/pix_videoLinux.h: removed the default width/height from + the constructor (this is done in the cpp-file) + +2003-02-24 12:40 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added a reallocate() + message to imageStruct. This does only allocate memory, if the + previous buffer is smaller than the needed one. there is a "int + datasize" that describes the length of the buffer. + +2003-02-19 21:28 zmoelnig + + * src/Gnu/: Makefile.subdir, README.build: updated the README.build + (for the new configure) + +2003-02-19 19:41 zmoelnig + + * examples/09.openGL/01.primQuad.pd: Added an example for the + openGL-wrapper stuff + +2003-02-19 19:41 zmoelnig + + * examples/09.openGL/01.primQuad.pd: Initial revision + +2003-02-19 19:25 zmoelnig + + * src/openGL/: GLdefine.cpp, GLdefine.h, setup.h: GLdefines maps + symbols (like GL_FLAT) to corresponding floats (like 7424) + +2003-02-19 19:23 zmoelnig + + * src/Geos/slideSquares.cpp: undef'ed the MacOS-specific + Carbon-include + +2003-02-19 19:17 zmoelnig + + * src/Base/GemGLUtil.cpp: redefined _GL_UNDEFINED to -1 (instead of + -10) + +2003-02-17 09:18 cclepper + + * src/Pixes/pix_data.cpp: added YUV + +2003-02-15 05:44 cclepper + + * src/yuv/yuv_blur.cpp: added altivec function + +2003-02-15 05:16 cclepper + + * src/Pixes/: pix_add.h, pix_add.cpp: added altivec function + +2003-02-15 05:11 cclepper + + * src/Pixes/: pix_mix.h, pix_mix.cpp: added pix_mix + +2003-02-14 04:54 tigital + + * src/Geos/: ripple.cpp, ripple.h, slideSquares.cpp, + slideSquares.h, rubber.h, rubber.cpp: - doesn't require textures + now ;-) - added glBlend message + +2003-02-14 04:53 tigital + + * src/Geos/: newWave.cpp, newWave.h: - doesn't require textures now + ;-) - finally centered! + +2003-02-10 03:24 cclepper + + * src/Base/GemPixObj.h: added Altivec cache function + +2003-02-10 03:13 cclepper + + * src/Pixes/pix_filmDarwin.cpp: hq for DV added + +2003-02-10 03:10 cclepper + + * src/Pixes/pix_filmDarwinYUV.cpp: hq for DV added + +2003-02-10 01:18 tigital + + * examples/07.texture/06.ripple.pd: example patch for [ripple] + controls + +2003-02-10 01:17 tigital + + * examples/07.texture/05.newWave.pd: example patch for [newWave] + controls + +2003-02-10 01:14 tigital + + * src/Pixes/pix_texture2.cpp: changed gl setup calls to float (from + integer): they should all be one or the other, right? + +2003-02-10 01:12 tigital + + * src/Geos/setup.h: added setup for ripple, rubber, and + slideSquares + +2003-02-10 01:10 tigital + + * src/Geos/: rubber.cpp, rubber.h: rubber: bang "grabs" image, x/y + input the can pull/distort image, 2nd bang releases image, which + rebounds back to flat + +2003-02-10 01:08 tigital + + * src/Geos/: slideSquares.cpp, slideSquares.h: slideSquare: creates + a field of squares which reaveal texture while moving left to + right + +2003-02-10 01:07 tigital + + * src/Geos/: ripple.cpp, ripple.h: ripple: bang to inlet causes + image rippling, center of ripple is movable via x and y input: + see example/07.texture/ + +2003-02-10 00:53 tigital + + * src/Geos/: newWave.cpp, newWave.h: now has controls for size, + speed, and mode; currently only works with [pix_texture]; also + requires rotateXYZ, scale, transposeXYZ for centering (see + example/texture) + +2003-02-09 23:21 tigital + + * src/Geos/rectangle.h: added glBlend + +2003-02-09 23:20 tigital + + * src/Geos/rectangle.cpp: removed redundant m_linewidth call; added + glBlend + +2003-02-09 23:18 tigital + + * src/Geos/square.cpp: removed redundant m_linewidth call + +2003-02-08 06:56 cclepper + + * src/yuv/: yuv_gain.cpp, yuv_gain.h, yuv_subtract.cpp, + yuv_mix.cpp: added altivec code + +2003-02-08 06:53 cclepper + + * src/yuv/: yuv_add.cpp, yuv_adjust.cpp: added altivec code + +2003-02-06 23:38 tigital + + * src/TV/tv_rtx.cpp: updated to current "IMAGE_CLASS" memory + functions (ie. buffer.clear() & buffer.allocate( dataSize) + +2003-02-06 23:36 tigital + + * src/TV/setup.h: added tv_delay_setup + +2003-02-06 05:55 cclepper + + * src/Geos/: square.h, square.cpp: added blending + +2003-02-06 02:20 tigital + + * src/Pixes/pix_texture2.cpp: cleanup + +2003-02-06 02:17 tigital + + * src/Base/GemGlutObj.h: removed HAVE_LIBGLUT for MACOSX + +2003-02-05 09:55 cclepper + + * src/Pixes/pix_blur.cpp: added pix_blur + +2003-02-05 09:40 cclepper + + * src/: yuv/yuv_filmDarwin.cpp, yuv/yuv_filmDarwin.h, + Pixes/pix_filmDarwin.cpp, Pixes/pix_filmDarwin.h, + Pixes/pix_filmDarwinYUV.cpp, Pixes/pix_filmDarwinYUV.h: improved + quicktime performance and DV quality + +2003-02-05 09:13 cclepper + + * src/Pixes/: setup.h, pix_blur.h, pix_blur.cpp: added pix_blur + +2003-02-05 09:01 cclepper + + * src/Pixes/pix_gain.cpp: optimized pix_gain RGBA code + +2003-02-04 05:46 cclepper + + * src/yuv/: yuv_split.cpp, yuv_split.h, yuv_swap.cpp, yuv_swap.h, + yuv_video.cpp, yuv_video.h: added missing yuv objects + +2003-02-04 01:32 zmoelnig + + * src/Gnu/: Makefile, Makefile.subdir: added optimization to the + Makefiles: "-O3 -funroll-loops -ffast-math" + +2003-02-04 01:16 zmoelnig + + * src/Gnu/: Makefile, Makefile.subdir: changed the behaviour of + $(CXXFLAGS): you can now set CXXFLAGS via the command-line and it + it added to the c++-flags $(cxxflags) + +2003-02-03 17:55 zmoelnig + + * src/openGL/GEMglIsList.cpp: changed the identifier for the + list-ID from "list" to "gllist", because pd would complain about + this ("list" is reserved for pd-lists) + +2003-02-03 17:47 zmoelnig + + * src/openGL/README: added this README, so you know what the + openGL-stuff is about... + +2003-02-03 17:43 zmoelnig + + * src/: Pixes/pix_draw.cpp, Pixes/pix_image.cpp, Pixes/setup.h, + Geos/imageVert.cpp, Geos/newWave.cpp, Geos/setup.h: [no log + message] + +2003-02-03 17:43 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_filmLinux.cpp, pix_filmLinux.h: + because of the new configure, some ifdef's have changed there + names (HAVE_MPEG becomes HAVE_LIBMPEG etc) + +2003-02-03 17:42 zmoelnig + + * src/Pixes/: pix_grey.cpp, pix_grey.h: added the anything2grey + converter + +2003-02-03 17:40 zmoelnig + + * src/Base/GemSetup.cpp: added the openGL-stuff + +2003-02-03 17:40 zmoelnig + + * src/Base/GemGlutObj.cpp: there are new ifdef's because of the new + configure spit out a warning when compiled without GLUT (is this + new ?) + +2003-02-03 17:37 zmoelnig + + * src/Base/: GemBase.cpp, GemBase.h: added an "m_modified" flag. + this might double some code, but it was surely quickto do + +2003-02-03 17:34 zmoelnig + + * src/Base/: config.h, config.h.in: rewrote the configure-thing + hopefully it works now... + +2003-02-03 17:32 zmoelnig + + * src/Gnu/: Makefile.in, acinclude.m4, aclocal.m4, config.guess, + configure, configure.in: rewrote the configure-thing hopefully it + will work now... + +2003-02-03 17:29 zmoelnig + + * src/openGL/: GEMglAreTexturesResident.cpp, + GEMglAreTexturesResident.h, GEMglArrayElement.cpp, + GEMglArrayElement.h, GEMglBindTexture.cpp, GEMglBindTexture.h, + GEMglCopyTexImage1D.cpp, GEMglCopyTexImage1D.h, + GEMglCopyTexImage2D.cpp, GEMglCopyTexImage2D.h, + GEMglCopyTexSubImage1D.cpp, GEMglCopyTexSubImage1D.h, + GEMglCopyTexSubImage2D.cpp, GEMglCopyTexSubImage2D.h, + GEMglDeleteTextures.cpp, GEMglDeleteTextures.h, + GEMglDisableClientState.cpp, GEMglDisableClientState.h, + GEMglDrawArrays.cpp, GEMglDrawArrays.h, GEMglDrawElements.cpp, + GEMglDrawElements.h, GEMglEnableClientState.cpp, + GEMglEnableClientState.h, GEMglEvalCoord1d.cpp, + GEMglEvalCoord1d.h, GEMglEvalCoord1dv.cpp, GEMglEvalCoord1dv.h, + GEMglEvalCoord1f.cpp, GEMglEvalCoord1f.h, GEMglEvalCoord1fv.cpp, + GEMglEvalCoord1fv.h, GEMglEvalCoord2d.cpp, GEMglEvalCoord2d.h, + GEMglEvalCoord2dv.cpp, GEMglEvalCoord2dv.h, GEMglEvalCoord2f.cpp, + GEMglEvalCoord2f.h, GEMglEvalCoord2fv.cpp, GEMglEvalCoord2fv.h, + GEMglEvalMesh1.cpp, GEMglEvalMesh1.h, GEMglEvalMesh2.cpp, + GEMglEvalMesh2.h, GEMglEvalPoint1.cpp, GEMglEvalPoint1.h, + GEMglEvalPoint2.cpp, GEMglEvalPoint2.h, GEMglFeedbackBuffer.cpp, + GEMglFeedbackBuffer.h, GEMglFogf.cpp, GEMglFogf.h, + GEMglFogfv.cpp, GEMglFogfv.h, GEMglFogi.cpp, GEMglFogi.h, + GEMglFogiv.cpp, GEMglFogiv.h, GEMglGenLists.cpp, GEMglGenLists.h, + GEMglGenTextures.cpp, GEMglGenTextures.h, GEMglGetError.cpp, + GEMglGetError.h, GEMglGetMapdv.cpp, GEMglGetMapdv.h, + GEMglGetMapfv.cpp, GEMglGetMapfv.h, GEMglGetMapiv.cpp, + GEMglGetMapiv.h, GEMglGetPointerv.cpp, GEMglGetPointerv.h, + GEMglGetString.cpp, GEMglGetString.h, GEMglIndexdv.cpp, + GEMglIndexdv.h, GEMglIndexfv.cpp, GEMglIndexfv.h, + GEMglIndexiv.cpp, GEMglIndexiv.h, GEMglIndexsv.cpp, + GEMglIndexsv.h, GEMglIndexub.cpp, GEMglIndexub.h, + GEMglIndexubv.cpp, GEMglIndexubv.h, GEMglInitNames.cpp, + GEMglInitNames.h, GEMglIsEnabled.cpp, GEMglIsEnabled.h, + GEMglIsList.cpp, GEMglIsList.h, GEMglIsTexture.cpp, + GEMglIsTexture.h, GEMglLoadName.cpp, GEMglLoadName.h, + GEMglMap1d.cpp, GEMglMap1d.h, GEMglMap1f.cpp, GEMglMap1f.h, + GEMglMap2d.cpp, GEMglMap2d.h, GEMglMap2f.cpp, GEMglMap2f.h, + GEMglMapGrid1d.cpp, GEMglMapGrid1d.h, GEMglMapGrid1f.cpp, + GEMglMapGrid1f.h, GEMglMapGrid2d.cpp, GEMglMapGrid2d.h, + GEMglMapGrid2f.cpp, GEMglMapGrid2f.h, GEMglPassThrough.cpp, + GEMglPassThrough.h, GEMglPopClientAttrib.cpp, + GEMglPopClientAttrib.h, GEMglPopName.cpp, GEMglPopName.h, + GEMglPrioritizeTextures.cpp, GEMglPrioritizeTextures.h, + GEMglPushClientAttrib.cpp, GEMglPushClientAttrib.h, + GEMglPushName.cpp, GEMglPushName.h, GEMglRenderMode.cpp, + GEMglRenderMode.h, GEMglSelectBuffer.cpp, GEMglSelectBuffer.h, + GEMglTexSubImage1D.cpp, GEMglTexSubImage1D.h, + GEMglTexSubImage2D.cpp, GEMglTexSubImage2D.h, makesource: added + openGL-wrapper objects (mainly openGL-1.1) + +2003-02-03 17:27 zmoelnig + + * src/openGL/: GEMglAccum.cpp, GEMglAccum.h, GEMglAlphaFunc.cpp, + GEMglAlphaFunc.h, GEMglBegin.cpp, GEMglBegin.h, GEMglBitmap.cpp, + GEMglBitmap.h, GEMglBlendFunc.cpp, GEMglBlendFunc.h, + GEMglClear.cpp, GEMglClear.h, GEMglClearAccum.cpp, + GEMglClearAccum.h, GEMglClearColor.cpp, GEMglClearColor.h, + GEMglClearDepth.cpp, GEMglClearDepth.h, GEMglClearIndex.cpp, + GEMglClearIndex.h, GEMglClearStencil.cpp, GEMglClearStencil.h, + GEMglColor3b.cpp, GEMglColor3b.h, GEMglColor3bv.cpp, + GEMglColor3bv.h, GEMglColor3d.cpp, GEMglColor3d.h, + GEMglColor3dv.cpp, GEMglColor3dv.h, GEMglColor3f.cpp, + GEMglColor3f.h, GEMglColor3fv.cpp, GEMglColor3fv.h, + GEMglColor3i.cpp, GEMglColor3i.h, GEMglColor3iv.cpp, + GEMglColor3iv.h, GEMglColor3s.cpp, GEMglColor3s.h, + GEMglColor3sv.cpp, GEMglColor3sv.h, GEMglColor3ub.cpp, + GEMglColor3ub.h, GEMglColor3ubv.cpp, GEMglColor3ubv.h, + GEMglColor3ui.cpp, GEMglColor3ui.h, GEMglColor3uiv.cpp, + GEMglColor3uiv.h, GEMglColor3us.cpp, GEMglColor3us.h, + GEMglColor3usv.cpp, GEMglColor3usv.h, GEMglColor4b.cpp, + GEMglColor4b.h, GEMglColor4bv.cpp, GEMglColor4bv.h, + GEMglColor4d.cpp, GEMglColor4d.h, GEMglColor4dv.cpp, + GEMglColor4dv.h, GEMglColor4f.cpp, GEMglColor4f.h, + GEMglColor4fv.cpp, GEMglColor4fv.h, GEMglColor4i.cpp, + GEMglColor4i.h, GEMglColor4iv.cpp, GEMglColor4iv.h, + GEMglColor4s.cpp, GEMglColor4s.h, GEMglColor4sv.cpp, + GEMglColor4sv.h, GEMglColor4ub.cpp, GEMglColor4ub.h, + GEMglColor4ubv.cpp, GEMglColor4ubv.h, GEMglColor4ui.cpp, + GEMglColor4ui.h, GEMglColor4uiv.cpp, GEMglColor4uiv.h, + GEMglColor4us.cpp, GEMglColor4us.h, GEMglColor4usv.cpp, + GEMglColor4usv.h, GEMglColorMask.cpp, GEMglColorMask.h, + GEMglColorMaterial.cpp, GEMglColorMaterial.h, + GEMglCopyPixels.cpp, GEMglCopyPixels.h, GEMglCullFace.cpp, + GEMglCullFace.h, GEMglDepthFunc.cpp, GEMglDepthFunc.h, + GEMglDepthMask.cpp, GEMglDepthMask.h, GEMglDepthRange.cpp, + GEMglDepthRange.h, GEMglDisable.cpp, GEMglDisable.h, + GEMglDrawBuffer.cpp, GEMglDrawBuffer.h, GEMglEdgeFlag.cpp, + GEMglEdgeFlag.h, GEMglEnable.cpp, GEMglEnable.h, GEMglEnd.cpp, + GEMglEnd.h, GEMglFinish.cpp, GEMglFinish.h, GEMglFlush.cpp, + GEMglFlush.h, GEMglFrontFace.cpp, GEMglFrontFace.h, + GEMglFrustum.cpp, GEMglFrustum.h, GEMglHint.cpp, GEMglHint.h, + GEMglIndexMask.cpp, GEMglIndexMask.h, GEMglIndexd.cpp, + GEMglIndexd.h, GEMglIndexf.cpp, GEMglIndexf.h, GEMglIndexi.cpp, + GEMglIndexi.h, GEMglIndexs.cpp, GEMglIndexs.h, + GEMglLightModelf.cpp, GEMglLightModelf.h, GEMglLightModeli.cpp, + GEMglLightModeli.h, GEMglLightf.cpp, GEMglLightf.h, + GEMglLighti.cpp, GEMglLighti.h, GEMglLineStipple.cpp, + GEMglLineStipple.h, GEMglLineWidth.cpp, GEMglLineWidth.h, + GEMglLoadIdentity.cpp, GEMglLoadIdentity.h, GEMglLogicOp.cpp, + GEMglLogicOp.h, GEMglMaterialf.cpp, GEMglMaterialf.h, + GEMglMateriali.cpp, GEMglMateriali.h, GEMglMatrixMode.cpp, + GEMglMatrixMode.h, GEMglNormal3b.cpp, GEMglNormal3b.h, + GEMglNormal3bv.cpp, GEMglNormal3bv.h, GEMglNormal3d.cpp, + GEMglNormal3d.h, GEMglNormal3dv.cpp, GEMglNormal3dv.h, + GEMglNormal3f.cpp, GEMglNormal3f.h, GEMglNormal3fv.cpp, + GEMglNormal3fv.h, GEMglNormal3i.cpp, GEMglNormal3i.h, + GEMglNormal3iv.cpp, GEMglNormal3iv.h, GEMglNormal3s.cpp, + GEMglNormal3s.h, GEMglNormal3sv.cpp, GEMglNormal3sv.h, + GEMglOrtho.cpp, GEMglOrtho.h, GEMglPixelStoref.cpp, + GEMglPixelStoref.h, GEMglPixelStorei.cpp, GEMglPixelStorei.h, + GEMglPixelTransferf.cpp, GEMglPixelTransferf.h, + GEMglPixelTransferi.cpp, GEMglPixelTransferi.h, + GEMglPixelZoom.cpp, GEMglPixelZoom.h, GEMglPointSize.cpp, + GEMglPointSize.h, GEMglPolygonMode.cpp, GEMglPolygonMode.h, + GEMglPolygonOffset.cpp, GEMglPolygonOffset.h, GEMglPopAttrib.cpp, + GEMglPopAttrib.h, GEMglPopMatrix.cpp, GEMglPopMatrix.h, + GEMglPushAttrib.cpp, GEMglPushAttrib.h, GEMglPushMatrix.cpp, + GEMglPushMatrix.h, GEMglRasterPos2d.cpp, GEMglRasterPos2d.h, + GEMglRasterPos2dv.cpp, GEMglRasterPos2dv.h, GEMglRasterPos2f.cpp, + GEMglRasterPos2f.h, GEMglRasterPos2fv.cpp, GEMglRasterPos2fv.h, + GEMglRasterPos2i.cpp, GEMglRasterPos2i.h, GEMglRasterPos2iv.cpp, + GEMglRasterPos2iv.h, GEMglRasterPos2s.cpp, GEMglRasterPos2s.h, + GEMglRasterPos2sv.cpp, GEMglRasterPos2sv.h, GEMglRasterPos3d.cpp, + GEMglRasterPos3d.h, GEMglRasterPos3dv.cpp, GEMglRasterPos3dv.h, + GEMglRasterPos3f.cpp, GEMglRasterPos3f.h, GEMglRasterPos3fv.cpp, + GEMglRasterPos3fv.h, GEMglRasterPos3i.cpp, GEMglRasterPos3i.h, + GEMglRasterPos3iv.cpp, GEMglRasterPos3iv.h, GEMglRasterPos3s.cpp, + GEMglRasterPos3s.h, GEMglRasterPos3sv.cpp, GEMglRasterPos3sv.h, + GEMglRasterPos4d.cpp, GEMglRasterPos4d.h, GEMglRasterPos4dv.cpp, + GEMglRasterPos4dv.h, GEMglRasterPos4f.cpp, GEMglRasterPos4f.h, + GEMglRasterPos4fv.cpp, GEMglRasterPos4fv.h, GEMglRasterPos4i.cpp, + GEMglRasterPos4i.h, GEMglRasterPos4iv.cpp, GEMglRasterPos4iv.h, + GEMglRasterPos4s.cpp, GEMglRasterPos4s.h, GEMglRasterPos4sv.cpp, + GEMglRasterPos4sv.h, GEMglRectd.cpp, GEMglRectd.h, + GEMglRectf.cpp, GEMglRectf.h, GEMglRecti.cpp, GEMglRecti.h, + GEMglRects.cpp, GEMglRects.h, GEMglRotated.cpp, GEMglRotated.h, + GEMglRotatef.cpp, GEMglRotatef.h, GEMglScaled.cpp, GEMglScaled.h, + GEMglScalef.cpp, GEMglScalef.h, GEMglScissor.cpp, GEMglScissor.h, + GEMglShadeModel.cpp, GEMglShadeModel.h, GEMglStencilFunc.cpp, + GEMglStencilFunc.h, GEMglStencilMask.cpp, GEMglStencilMask.h, + GEMglStencilOp.cpp, GEMglStencilOp.h, GEMglTexCoord1d.cpp, + GEMglTexCoord1d.h, GEMglTexCoord1dv.cpp, GEMglTexCoord1dv.h, + GEMglTexCoord1f.cpp, GEMglTexCoord1f.h, GEMglTexCoord1fv.cpp, + GEMglTexCoord1fv.h, GEMglTexCoord1i.cpp, GEMglTexCoord1i.h, + GEMglTexCoord1iv.cpp, GEMglTexCoord1iv.h, GEMglTexCoord1s.cpp, + GEMglTexCoord1s.h, GEMglTexCoord1sv.cpp, GEMglTexCoord1sv.h, + GEMglTexCoord2d.cpp, GEMglTexCoord2d.h, GEMglTexCoord2dv.cpp, + GEMglTexCoord2dv.h, GEMglTexCoord2f.cpp, GEMglTexCoord2f.h, + GEMglTexCoord2fv.cpp, GEMglTexCoord2fv.h, GEMglTexCoord2i.cpp, + GEMglTexCoord2i.h, GEMglTexCoord2iv.cpp, GEMglTexCoord2iv.h, + GEMglTexCoord2s.cpp, GEMglTexCoord2s.h, GEMglTexCoord2sv.cpp, + GEMglTexCoord2sv.h, GEMglTexCoord3d.cpp, GEMglTexCoord3d.h, + GEMglTexCoord3dv.cpp, GEMglTexCoord3dv.h, GEMglTexCoord3f.cpp, + GEMglTexCoord3f.h, GEMglTexCoord3fv.cpp, GEMglTexCoord3fv.h, + GEMglTexCoord3i.cpp, GEMglTexCoord3i.h, GEMglTexCoord3iv.cpp, + GEMglTexCoord3iv.h, GEMglTexCoord3s.cpp, GEMglTexCoord3s.h, + GEMglTexCoord3sv.cpp, GEMglTexCoord3sv.h, GEMglTexCoord4d.cpp, + GEMglTexCoord4d.h, GEMglTexCoord4dv.cpp, GEMglTexCoord4dv.h, + GEMglTexCoord4f.cpp, GEMglTexCoord4f.h, GEMglTexCoord4fv.cpp, + GEMglTexCoord4fv.h, GEMglTexCoord4i.cpp, GEMglTexCoord4i.h, + GEMglTexCoord4iv.cpp, GEMglTexCoord4iv.h, GEMglTexCoord4s.cpp, + GEMglTexCoord4s.h, GEMglTexCoord4sv.cpp, GEMglTexCoord4sv.h, + GEMglTexEnvf.cpp, GEMglTexEnvf.h, GEMglTexEnvi.cpp, + GEMglTexEnvi.h, GEMglTexGend.cpp, GEMglTexGend.h, + GEMglTexGenf.cpp, GEMglTexGenf.h, GEMglTexGeni.cpp, + GEMglTexGeni.h, GEMglTexParameterf.cpp, GEMglTexParameterf.h, + GEMglTexParameteri.cpp, GEMglTexParameteri.h, + GEMglTranslated.cpp, GEMglTranslated.h, GEMglTranslatef.cpp, + GEMglTranslatef.h, GEMglVertex2d.cpp, GEMglVertex2d.h, + GEMglVertex2dv.cpp, GEMglVertex2dv.h, GEMglVertex2f.cpp, + GEMglVertex2f.h, GEMglVertex2fv.cpp, GEMglVertex2fv.h, + GEMglVertex2i.cpp, GEMglVertex2i.h, GEMglVertex2iv.cpp, + GEMglVertex2iv.h, GEMglVertex2s.cpp, GEMglVertex2s.h, + GEMglVertex2sv.cpp, GEMglVertex2sv.h, GEMglVertex3d.cpp, + GEMglVertex3d.h, GEMglVertex3dv.cpp, GEMglVertex3dv.h, + GEMglVertex3f.cpp, GEMglVertex3f.h, GEMglVertex3fv.cpp, + GEMglVertex3fv.h, GEMglVertex3i.cpp, GEMglVertex3i.h, + GEMglVertex3iv.cpp, GEMglVertex3iv.h, GEMglVertex3s.cpp, + GEMglVertex3s.h, GEMglVertex3sv.cpp, GEMglVertex3sv.h, + GEMglVertex4d.cpp, GEMglVertex4d.h, GEMglVertex4dv.cpp, + GEMglVertex4dv.h, GEMglVertex4f.cpp, GEMglVertex4f.h, + GEMglVertex4fv.cpp, GEMglVertex4fv.h, GEMglVertex4i.cpp, + GEMglVertex4i.h, GEMglVertex4iv.cpp, GEMglVertex4iv.h, + GEMglVertex4s.cpp, GEMglVertex4s.h, GEMglVertex4sv.cpp, + GEMglVertex4sv.h, GEMglViewport.cpp, GEMglViewport.h, setup.h: + rewrote (regenerated) the openGL-wrapping stuff + +2003-01-29 09:57 cclepper + + * src/Pixes/: pix_offset.h, pix_offset.cpp: added yuv processing + +2003-01-29 09:02 cclepper + + * src/Pixes/pix_add.cpp: added yuv processing + +2003-01-29 08:59 cclepper + + * src/Pixes/: pix_diff.h, pix_diff.cpp, pix_add.h: added yuv + processing + +2003-01-29 08:52 cclepper + + * src/Pixes/: pix_subtract.h, pix_subtract.cpp, pix_multiply.h, + pix_multiply.cpp: added yuv processing + +2003-01-26 05:39 tigital + + * src/Pixes/pix_texture.cpp: fixed bug which prevented + non-powerOfTwo textures from texturing correctly (m_coords are + now set and passed into state->texCoords) + +2003-01-26 05:15 cclepper + + * src/Pixes/pix_gain.cpp: fixed YUV code in pix_gain + +2003-01-26 00:55 cclepper + + * src/Base/GemPixUtil.h: changed the color channel order for OSX + +2003-01-25 23:38 cclepper + + * src/Pixes/setup.h: fixed/added some yuv stuff + +2003-01-25 23:35 cclepper + + * src/yuv/: yuv_bitwise.cpp, yuv_bitwise.h, yuv_blur.cpp, + yuv_blur.h, yuv_mask.cpp, yuv_mask.h, yuv_mix.cpp, yuv_mix.h, + yuv_pixel_average.cpp, yuv_pixel_average.h: fixed/added some yuv + stuff + +2003-01-25 23:31 cclepper + + * src/yuv/setup.h: fixed/added some yuv stuff + +2003-01-25 21:34 cclepper + + * src/yuv/yuv_set.cpp: test for yuv update + +2003-01-13 15:50 tigital + + * src/Base/: GemBase.h, GemPixImageLoad.cpp: added gl.h & glext.h + to allow compile on OS X + +2003-01-09 23:40 tigital + + * src/Base/GemMan.cpp: made s_windowClock=NULL on DestroyWindow to + address possible memory leak + +2003-01-09 20:26 zmoelnig + + * examples/01.basic/09.yelloTeapot.pd: [no log message] + +2003-01-09 20:25 zmoelnig + + * examples/04.video/: 03.movement_detection.pd, 04.videoRTX.pd: + added movement_detection videoRTX + +2003-01-07 19:59 zmoelnig + + * examples/04.pix/: 05.film.pd, 07.PixSet.pd, 08.PixDump.pd, + 09.Histogram.pd, 12.add.pd, 12.blending.pd, 12.pix_multiply.pd, + 14.takeAlpha.pd, 16.pix_2grey.pd, 18.Curves.pd, 22.biquad.pd, + 23.gravity.pd: added some examples for 04.pix; they were missing? + +2002-12-16 18:59 zmoelnig + + * src/yuv/: setup.h, yuv_chroma_key.cpp, yuv_chroma_key.h, + yuv_emboss.cpp, yuv_emboss.h: yuv_*: (think) i changed these to + the new process*Image() functions + +2002-12-16 18:54 zmoelnig + + * src/Pixes/: pix_2grey.cpp, pix_alpha.cpp, pix_alpha.h, + pix_buf.cpp, pix_buf.h, pix_dv.cpp, pix_dv.h, pix_film.cpp, + pix_film.h, pix_filmYUV.cpp, pix_filmYUV.h, pix_gain.cpp, + pix_image.cpp, pix_image.h, pix_info.cpp, pix_info.h, + pix_movie.cpp, pix_multiimage.cpp, pix_multiimage.h, + pix_rgba.cpp, pix_set.cpp, pix_set.h, pix_sig2pix.cpp, + pix_sig2pix.h, pix_snap.cpp, pix_snap.h, pix_texture.cpp, + pix_texture2.cpp, pix_video.cpp, pix_video.h, + pix_videoDarwin.cpp, pix_videoDarwin.h, pix_videoNT.h, + pix_yuv.cpp, pix_yuv.h, setup.h: pix_info: get information on + pixes (xsize, ysize, csize, format, data) pix_yuv : convert + images to YUV (for now only RGBA); needs testing pix_rgba: + provides a function for YUV; needs testing * : new + process*Image() functions for RGBA, YUV,... + +2002-12-16 18:40 zmoelnig + + * src/Geos/: setup.h, teapot.cpp, teapot.h, text2d.cpp: teapot: if + !HAVE_GLUT we still support [teapot], only the rendering is void + text2d: the mac-#ifdefs didn't compile on linux, so i fixed them + +2002-12-16 18:36 zmoelnig + + * src/Base/: GemGlutObj.cpp, GemGlutObj.h, GemPixDualObj.cpp, + GemPixDualObj.h, GemPixObj.cpp, GemPixObj.h, GemPixUtil.cpp, + GemPixUtil.h: GemPix*Obj: hopefully fixed the bug that appeared + when deleting pix_fx now we cache the whole + pixBuf-structure and return it on postrendering GemPixUtil: now + provides a function for copying imageStruct-information + GemGlutObj: if !HAVE_GLUT, we only throw an error at + object-creation + +2002-12-14 05:43 tigital + + * src/yuv/yuv_chroma_key.cpp: corrected rangeMess inputs + +2002-12-14 05:40 tigital + + * src/Base/GemWinCreateMac.cpp: fixed a coupla possible leaks + +2002-12-14 05:36 tigital + + * src/Pixes/: pix_puzzle.h, pix_puzzle.cpp: added + processYUVImage(), so it works with yuv now! + +2002-12-12 08:30 tigital + + * src/yuv/: yuv_videoDarwin.cpp, yuv_videoDarwin.h: added yuv video + input for MacOSX; cleanup unused variables + +2002-12-12 08:27 tigital + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: cleanup + unused variables + +2002-12-10 06:55 tigital + + * src/TV/tv_rtx.cpp: removed unused variable "count" + +2002-12-10 06:52 tigital + + * src/Base/: TextBase.h, TextBase.cpp: added MACOSX support + +2002-12-09 12:36 zmoelnig + + * src/: Base/GemPixDualObj.cpp, Base/GemPixDualObj.h, + Base/GemPixObj.cpp, Base/GemPixObj.h, Base/GemPixUtil.h, + Gnu/Makefile, Pixes/pix_2grey.cpp, Pixes/pix_2grey.h, + Pixes/pix_a_2grey.cpp, Pixes/pix_a_2grey.h, Pixes/pix_add.cpp, + Pixes/pix_add.h, Pixes/pix_aging.cpp, Pixes/pix_aging.h, + Pixes/pix_alpha.cpp, Pixes/pix_alpha.h, Pixes/pix_bitmask.cpp, + Pixes/pix_bitmask.h, Pixes/pix_blob.cpp, Pixes/pix_blob.h, + Pixes/pix_color.cpp, Pixes/pix_color.h, Pixes/pix_coloralpha.cpp, + Pixes/pix_coloralpha.h, Pixes/pix_colormatrix.cpp, + Pixes/pix_colormatrix.h, Pixes/pix_composite.cpp, + Pixes/pix_composite.h, Pixes/pix_convolve.cpp, + Pixes/pix_curve.cpp, Pixes/pix_curve.h, Pixes/pix_data.h, + Pixes/pix_diff.cpp, Pixes/pix_diff.h, Pixes/pix_dot.cpp, + Pixes/pix_dot.h, Pixes/pix_fx.cpp, Pixes/pix_fx.h, + Pixes/pix_gain.cpp, Pixes/pix_gain.h, Pixes/pix_histo.cpp, + Pixes/pix_histo.h, Pixes/pix_hsv2rgb.cpp, Pixes/pix_hsv2rgb.h, + Pixes/pix_invert.cpp, Pixes/pix_invert.h, Pixes/pix_mask.cpp, + Pixes/pix_mask.h, Pixes/pix_multiply.cpp, Pixes/pix_multiply.h, + Pixes/pix_normalize.cpp, Pixes/pix_normalize.h, + Pixes/pix_offset.cpp, Pixes/pix_offset.h, Pixes/pix_pix2sig.cpp, + Pixes/pix_pix2sig.h, Pixes/pix_puzzle.cpp, Pixes/pix_puzzle.h, + Pixes/pix_rectangle.cpp, Pixes/pix_rectangle.h, + Pixes/pix_resize.cpp, Pixes/pix_rgb2hsv.cpp, Pixes/pix_rgb2hsv.h, + Pixes/pix_rgba.cpp, Pixes/pix_rgba.h, Pixes/pix_set.cpp, + Pixes/pix_set.h, Pixes/pix_subtract.cpp, Pixes/pix_subtract.h, + Pixes/pix_takealpha.cpp, Pixes/pix_takealpha.h, + Pixes/pix_test.cpp, Pixes/pix_test.h, Pixes/pix_threshold.cpp, + Pixes/pix_threshold.h, Pixes/setup.h, TV/tv_delay.cpp, + TV/tv_delay.h, openGL/GEMglAccum.cpp, openGL/GEMglAccum.h, + openGL/GEMglAlphaFunc.cpp, openGL/GEMglAlphaFunc.h, + openGL/GEMglBegin.cpp, openGL/GEMglBegin.h, + openGL/GEMglBitmap.cpp: rewrote the -callers. + processImage is now used for images of any(!) format. thus the + programmer has to care for the format him/herself the format + specific functions are processImageRGBA and similar the + same goes for PixDualObjects (processRGBA_Gray etc...) deleted + pix_fx the pix_fx functionality is now in GemPixObj this + functionality is: save the image-state before it is processed + and reconstruct it in the postrender function so we can change + size/format and even bend the data-pointer and objects + "before" will not notice (and crash) revised 3 openGL objects + (urgh: lots of work to do still) + +2002-12-08 22:41 tigital + + * src/Geos/: TexFont.h, text2d.cpp, text2d.h, text3d.cpp, text3d.h, + textoutline.cpp, textoutline.h: added support for MACOSX + +2002-12-08 22:39 tigital + + * src/Geos/model.h: reordered variables to shutup gcc3.1 + +2002-12-08 21:10 zmoelnig + + * src/TV/: tv_delay.cpp, tv_delay.h: added framewise delay! + +2002-12-04 06:19 tigital + + * src/Base/GemMan.cpp: GL_EXTENSIONS formatting same for all + platforms + +2002-12-02 18:14 zmoelnig + + * src/: Base/GemMan.cpp, Base/GemPixObj.cpp, Gnu/Makefile: new + image-processing calls (processRGBAImage) + +2002-11-27 21:22 zmoelnig + + * src/: Controls/setup.h, Geos/setup.h, Manips/setup.h, + Nongeos/setup.h, Particles/setup.h, Pixes/setup.h, TV/setup.h: a + new (simpler?) setup-logistic + +2002-11-27 21:18 zmoelnig + + * src/: openGL/Make.depend, openGL/makesetup, yuv/setup.h: [no log + message] + +2002-11-27 21:09 zmoelnig + + * src/openGL/: GEMglAccum.cpp, GEMglAccum.h, GEMglAlphaFunc.cpp, + GEMglAlphaFunc.h, GEMglBegin.cpp, GEMglBegin.h, GEMglBitmap.cpp, + GEMglBitmap.h, GEMglBlendFunc.cpp, GEMglBlendFunc.h, + GEMglClear.cpp, GEMglClear.h, GEMglClearAccum.cpp, + GEMglClearAccum.h, GEMglClearColor.cpp, GEMglClearColor.h, + GEMglClearDepth.cpp, GEMglClearDepth.h, GEMglClearIndex.cpp, + GEMglClearIndex.h, GEMglClearStencil.cpp, GEMglClearStencil.h, + GEMglColor3b.cpp, GEMglColor3b.h, GEMglColor3bv.cpp, + GEMglColor3bv.h, GEMglColor3d.cpp, GEMglColor3d.h, + GEMglColor3dv.cpp, GEMglColor3dv.h, GEMglColor3f.cpp, + GEMglColor3f.h, GEMglColor3fv.cpp, GEMglColor3fv.h, + GEMglColor3i.cpp, GEMglColor3i.h, GEMglColor3iv.cpp, + GEMglColor3iv.h, GEMglColor3s.cpp, GEMglColor3s.h, + GEMglColor3sv.cpp, GEMglColor3sv.h, GEMglColor3ub.cpp, + GEMglColor3ub.h, GEMglColor3ubv.cpp, GEMglColor3ubv.h, + GEMglColor3ui.cpp, GEMglColor3ui.h, GEMglColor3uiv.cpp, + GEMglColor3uiv.h, GEMglColor3us.cpp, GEMglColor3us.h, + GEMglColor3usv.cpp, GEMglColor3usv.h, GEMglColor4b.cpp, + GEMglColor4b.h, GEMglColor4bv.cpp, GEMglColor4bv.h, + GEMglColor4d.cpp, GEMglColor4d.h, GEMglColor4dv.cpp, + GEMglColor4dv.h, GEMglColor4f.cpp, GEMglColor4f.h, + GEMglColor4fv.cpp, GEMglColor4fv.h, GEMglColor4i.cpp, + GEMglColor4i.h, GEMglColor4iv.cpp, GEMglColor4iv.h, + GEMglColor4s.cpp, GEMglColor4s.h, GEMglColor4sv.cpp, + GEMglColor4sv.h, GEMglColor4ub.cpp, GEMglColor4ub.h, + GEMglColor4ubv.cpp, GEMglColor4ubv.h, GEMglColor4ui.cpp, + GEMglColor4ui.h, GEMglColor4uiv.cpp, GEMglColor4uiv.h, + GEMglColor4us.cpp, GEMglColor4us.h, GEMglColor4usv.cpp, + GEMglColor4usv.h, GEMglColorMask.cpp, GEMglColorMask.h, + GEMglColorMaterial.cpp, GEMglColorMaterial.h, + GEMglCopyPixels.cpp, GEMglCopyPixels.h, GEMglCullFace.cpp, + GEMglCullFace.h, GEMglDepthFunc.cpp, GEMglDepthFunc.h, + GEMglDepthMask.cpp, GEMglDepthMask.h, GEMglDepthRange.cpp, + GEMglDepthRange.h, GEMglDisable.cpp, GEMglDisable.h, + GEMglDrawBuffer.cpp, GEMglDrawBuffer.h, GEMglEdgeFlag.cpp, + GEMglEdgeFlag.h, GEMglEnable.cpp, GEMglEnable.h, GEMglEnd.cpp, + GEMglEnd.h, GEMglFinish.cpp, GEMglFinish.h, GEMglFlush.cpp, + GEMglFlush.h, GEMglFrontFace.cpp, GEMglFrontFace.h, + GEMglFrustum.cpp, GEMglFrustum.h, GEMglHint.cpp, GEMglHint.h, + GEMglIndexMask.cpp, GEMglIndexMask.h, GEMglIndexd.cpp, + GEMglIndexd.h, GEMglIndexf.cpp, GEMglIndexf.h, GEMglIndexi.cpp, + GEMglIndexi.h, GEMglIndexs.cpp, GEMglIndexs.h, + GEMglLightModelf.cpp, GEMglLightModelf.h, GEMglLightModeli.cpp, + GEMglLightModeli.h, GEMglLightf.cpp, GEMglLightf.h, + GEMglLighti.cpp, GEMglLighti.h, GEMglLineStipple.cpp, + GEMglLineStipple.h, GEMglLineWidth.cpp, GEMglLineWidth.h, + GEMglLoadIdentity.cpp, GEMglLoadIdentity.h, GEMglLogicOp.cpp, + GEMglLogicOp.h, GEMglMaterialf.cpp, GEMglMaterialf.h, + GEMglMateriali.cpp, GEMglMateriali.h, GEMglMatrixMode.cpp, + GEMglMatrixMode.h, GEMglNormal3b.cpp, GEMglNormal3b.h, + GEMglNormal3bv.cpp, GEMglNormal3bv.h, GEMglNormal3d.cpp, + GEMglNormal3d.h, GEMglNormal3dv.cpp, GEMglNormal3dv.h, + GEMglNormal3f.cpp, GEMglNormal3f.h, GEMglNormal3fv.cpp, + GEMglNormal3fv.h, GEMglNormal3i.cpp, GEMglNormal3i.h, + GEMglNormal3iv.cpp, GEMglNormal3iv.h, GEMglNormal3s.cpp, + GEMglNormal3s.h, GEMglNormal3sv.cpp, GEMglNormal3sv.h, + GEMglOrtho.cpp, GEMglOrtho.h, GEMglPixelStoref.cpp, + GEMglPixelStoref.h, GEMglPixelStorei.cpp, GEMglPixelStorei.h, + GEMglPixelTransferf.cpp, GEMglPixelTransferf.h, + GEMglPixelTransferi.cpp, GEMglPixelTransferi.h, + GEMglPixelZoom.cpp, GEMglPixelZoom.h, GEMglPointSize.cpp, + GEMglPointSize.h, GEMglPolygonMode.cpp, GEMglPolygonMode.h, + GEMglPolygonOffset.cpp, GEMglPolygonOffset.h, GEMglPopAttrib.cpp, + GEMglPopAttrib.h, GEMglPopMatrix.cpp, GEMglPopMatrix.h, + GEMglPushAttrib.cpp, GEMglPushAttrib.h, GEMglPushMatrix.cpp, + GEMglPushMatrix.h, GEMglRasterPos2d.cpp, GEMglRasterPos2d.h, + GEMglRasterPos2dv.cpp, GEMglRasterPos2dv.h, GEMglRasterPos2f.cpp, + GEMglRasterPos2f.h, GEMglRasterPos2fv.cpp, GEMglRasterPos2fv.h, + GEMglRasterPos2i.cpp, GEMglRasterPos2i.h, GEMglRasterPos2iv.cpp, + GEMglRasterPos2iv.h, GEMglRasterPos2s.cpp, GEMglRasterPos2s.h, + GEMglRasterPos2sv.cpp, GEMglRasterPos2sv.h, GEMglRasterPos3d.cpp, + GEMglRasterPos3d.h, GEMglRasterPos3dv.cpp, GEMglRasterPos3dv.h, + GEMglRasterPos3f.cpp, GEMglRasterPos3f.h, GEMglRasterPos3fv.cpp, + GEMglRasterPos3fv.h, GEMglRasterPos3i.cpp, GEMglRasterPos3i.h, + GEMglRasterPos3iv.cpp, GEMglRasterPos3iv.h, GEMglRasterPos3s.cpp, + GEMglRasterPos3s.h, GEMglRasterPos3sv.cpp, GEMglRasterPos3sv.h, + GEMglRasterPos4d.cpp, GEMglRasterPos4d.h, GEMglRasterPos4dv.cpp, + GEMglRasterPos4dv.h, GEMglRasterPos4f.cpp, GEMglRasterPos4f.h, + GEMglRasterPos4fv.cpp, GEMglRasterPos4fv.h, GEMglRasterPos4i.cpp, + GEMglRasterPos4i.h, GEMglRasterPos4iv.cpp, GEMglRasterPos4iv.h, + GEMglRasterPos4s.cpp, GEMglRasterPos4s.h, GEMglRasterPos4sv.cpp, + GEMglRasterPos4sv.h, GEMglRectd.cpp, GEMglRectd.h, + GEMglRectf.cpp, GEMglRectf.h, GEMglRecti.cpp, GEMglRecti.h, + GEMglRects.cpp, GEMglRects.h, GEMglRotated.cpp, GEMglRotated.h, + GEMglRotatef.cpp, GEMglRotatef.h, GEMglScaled.cpp, GEMglScaled.h, + GEMglScalef.cpp, GEMglScalef.h, GEMglScissor.cpp, GEMglScissor.h, + GEMglShadeModel.cpp, GEMglShadeModel.h, GEMglStencilFunc.cpp, + GEMglStencilFunc.h, GEMglStencilMask.cpp, GEMglStencilMask.h, + GEMglStencilOp.cpp, GEMglStencilOp.h, GEMglTexCoord1d.cpp, + GEMglTexCoord1d.h, GEMglTexCoord1dv.cpp, GEMglTexCoord1dv.h, + GEMglTexCoord1f.cpp, GEMglTexCoord1f.h, GEMglTexCoord1fv.cpp, + GEMglTexCoord1fv.h, GEMglTexCoord1i.cpp, GEMglTexCoord1i.h, + GEMglTexCoord1iv.cpp, GEMglTexCoord1iv.h, GEMglTexCoord1s.cpp, + GEMglTexCoord1s.h, GEMglTexCoord1sv.cpp, GEMglTexCoord1sv.h, + GEMglTexCoord2d.cpp, GEMglTexCoord2d.h, GEMglTexCoord2dv.cpp, + GEMglTexCoord2dv.h, GEMglTexCoord2f.cpp, GEMglTexCoord2f.h, + GEMglTexCoord2fv.cpp, GEMglTexCoord2fv.h, GEMglTexCoord2i.cpp, + GEMglTexCoord2i.h, GEMglTexCoord2iv.cpp, GEMglTexCoord2iv.h, + GEMglTexCoord2s.cpp, GEMglTexCoord2s.h, GEMglTexCoord2sv.cpp, + GEMglTexCoord2sv.h, GEMglTexCoord3d.cpp, GEMglTexCoord3d.h, + GEMglTexCoord3dv.cpp, GEMglTexCoord3dv.h, GEMglTexCoord3f.cpp, + GEMglTexCoord3f.h, GEMglTexCoord3fv.cpp, GEMglTexCoord3fv.h, + GEMglTexCoord3i.cpp, GEMglTexCoord3i.h, GEMglTexCoord3iv.cpp, + GEMglTexCoord3iv.h, GEMglTexCoord3s.cpp, GEMglTexCoord3s.h, + GEMglTexCoord3sv.cpp, GEMglTexCoord3sv.h, GEMglTexCoord4d.cpp, + GEMglTexCoord4d.h, GEMglTexCoord4dv.cpp, GEMglTexCoord4dv.h, + GEMglTexCoord4f.cpp, GEMglTexCoord4f.h, GEMglTexCoord4fv.cpp, + GEMglTexCoord4fv.h, GEMglTexCoord4i.cpp, GEMglTexCoord4i.h, + GEMglTexCoord4iv.cpp, GEMglTexCoord4iv.h, GEMglTexCoord4s.cpp, + GEMglTexCoord4s.h, GEMglTexCoord4sv.cpp, GEMglTexCoord4sv.h, + GEMglTexEnvf.cpp, GEMglTexEnvf.h, GEMglTexEnvi.cpp, + GEMglTexEnvi.h, GEMglTexGend.cpp, GEMglTexGend.h, + GEMglTexGenf.cpp, GEMglTexGenf.h, GEMglTexGeni.cpp, + GEMglTexGeni.h, GEMglTexParameterf.cpp, GEMglTexParameterf.h, + GEMglTexParameteri.cpp, GEMglTexParameteri.h, + GEMglTranslated.cpp, GEMglTranslated.h, GEMglTranslatef.cpp, + GEMglTranslatef.h, GEMglVertex2d.cpp, GEMglVertex2d.h, + GEMglVertex2dv.cpp, GEMglVertex2dv.h, GEMglVertex2f.cpp, + GEMglVertex2f.h, GEMglVertex2fv.cpp, GEMglVertex2fv.h, + GEMglVertex2i.cpp, GEMglVertex2i.h, GEMglVertex2iv.cpp, + GEMglVertex2iv.h, GEMglVertex2s.cpp, GEMglVertex2s.h, + GEMglVertex2sv.cpp, GEMglVertex2sv.h, GEMglVertex3d.cpp, + GEMglVertex3d.h, GEMglVertex3dv.cpp, GEMglVertex3dv.h, + GEMglVertex3f.cpp, GEMglVertex3f.h, GEMglVertex3fv.cpp, + GEMglVertex3fv.h, GEMglVertex3i.cpp, GEMglVertex3i.h, + GEMglVertex3iv.cpp, GEMglVertex3iv.h, GEMglVertex3s.cpp, + GEMglVertex3s.h, GEMglVertex3sv.cpp, GEMglVertex3sv.h, + GEMglVertex4d.cpp, GEMglVertex4d.h, GEMglVertex4dv.cpp, + GEMglVertex4dv.h, GEMglVertex4f.cpp, GEMglVertex4f.h, + GEMglVertex4fv.cpp, GEMglVertex4fv.h, GEMglVertex4i.cpp, + GEMglVertex4i.h, GEMglVertex4iv.cpp, GEMglVertex4iv.h, + GEMglVertex4s.cpp, GEMglVertex4s.h, GEMglVertex4sv.cpp, + GEMglVertex4sv.h, GEMglViewport.cpp, GEMglViewport.h, setup.h: + added a lot of openGL stuff... + +2002-11-27 21:02 zmoelnig + + * src/: Controls/gemwin.cpp, Geos/cuboid.cpp, Geos/cuboid.h, + Manips/ortho.cpp, Gnu/Makefile.in, Gnu/configure, + Gnu/configure.in, Gnu/makesource, Nongeos/world_light.h, + Pixes/pix_aging.cpp, Pixes/pix_blob.cpp, Pixes/pix_convolve.cpp, + Pixes/pix_filmDarwin.cpp, Pixes/pix_filmDarwinYUV.cpp, + Pixes/pix_fx.cpp, Pixes/pix_movie.cpp, Pixes/pix_movieYUV.cpp, + Pixes/pix_movieYUV.h, Pixes/pix_puzzle.cpp, Pixes/pix_resize.cpp, + Pixes/pix_texture.cpp, Pixes/pix_texture.h, + Pixes/pix_texture2.cpp, Pixes/pix_video.cpp, + Pixes/pix_videoDarwin.cpp, Pixes/pix_videoLinux.cpp: made CVS + compile under linux again + +2002-11-27 21:00 zmoelnig + + * src/: yuv/yuv_chroma_key.cpp, yuv/yuv_difference.cpp, + yuv/yuv_dual.cpp, yuv/yuv_filmDarwin.cpp, yuv/yuv_gain.cpp, + yuv/yuv_luma_key.cpp, yuv/yuv_movie.cpp, Base/GemBase.h, + Base/GemGLUtil.cpp, Base/GemGLUtil.h, Base/GemGluObj.h, + Base/GemMan.cpp, Base/GemMan.h, Base/GemPixImageLoad.cpp, + Base/GemPixObj.h, Base/GemPixUtil.cpp, Base/GemPixUtil.h, + Base/GemSetup.cpp, Base/GemWinCreateMac.cpp, + Base/GemWinCreateXWin.cpp, Base/sgiimage.cpp: made the CVS + compile under linux again + +2002-11-27 02:28 tigital + + * GEM_darwin.pbproj.sit: [no log message] + +2002-11-27 02:19 tigital + + * src/yuv/: yuv_adjust.cpp, yuv_adjust.h, yuv_average.cpp, + yuv_average.h, yuv_bandw.cpp, yuv_bandw.h, yuv_bitshift.cpp, + yuv_bitshift.h, yuv_blank.cpp, yuv_blank.h, yuv_chroma_key.cpp, + yuv_chroma_key.h, yuv_clamp.cpp, yuv_clamp.h, yuv_compare.cpp, + yuv_compare.h, yuv_difference.cpp, yuv_difference.h, + yuv_dual.cpp, yuv_dual.h, yuv_emboss.cpp, yuv_emboss.h, + yuv_film.cpp, yuv_film.h, yuv_filmDarwin.cpp, yuv_filmDarwin.h, + yuv_gain.cpp, yuv_gain.h, yuv_invert.cpp, yuv_invert.h, + yuv_luma_key.cpp, yuv_luma_key.h, yuv_movie.cpp, yuv_movie.h, + yuv_mult.cpp, yuv_mult.h, yuv_pixel_data.cpp, yuv_pixel_data.h, + yuv_pixel_isolate.cpp, yuv_pixel_isolate.h, + yuv_pixel_replace.cpp, yuv_pixel_replace.h, yuv_posterize.cpp, + yuv_posterize.h, yuv_set.cpp, yuv_set.h, yuv_subtract.cpp, + yuv_subtract.h: added MACOSX support; initial YUV support + +2002-11-27 02:16 tigital + + * src/yuv/yuv_add.h: added MACOSX support; initial YUV support + +2002-11-27 02:10 tigital + + * src/yuv/yuv_add.cpp: added MACOSX support; initial YUV support + +2002-11-27 02:00 tigital + + * src/TV/: tv_biquad.cpp, tv_movement.cpp: removed unused variables + +2002-11-27 01:57 tigital + + * src/Pixes/: pix_test.h, pix_texture.cpp, pix_texture.h, + pix_texture2.cpp, pix_texture2.h, pix_video.cpp, pix_threshold.h, + pix_threshold.cpp: added MACOSX support; initial YUV support + +2002-11-27 01:03 tigital + + * src/Pixes/: pix_sig2pix.cpp, pix_subtract.cpp, pix_subtract.h, + pix_takealpha.cpp, pix_takealpha.h, pix_test.cpp: added MACOSX + support; initial YUV support + +2002-11-27 01:00 tigital + + * src/Pixes/: pix_rgba.cpp, pix_rgba.h, pix_set.h: added MACOSX + support; initial YUV support + +2002-11-27 00:55 tigital + + * src/Pixes/: pix_normalize.cpp, pix_normalize.h, pix_offset.cpp, + pix_offset.h, pix_pix2sig.cpp, pix_pix2sig.h, pix_rectangle.cpp, + pix_rectangle.h, pix_resize.cpp, pix_rgb2hsv.h: added MACOSX + support; initial YUV support + +2002-11-27 00:51 tigital + + * src/Pixes/: pix_invert.h, pix_mask.cpp, pix_mask.h, + pix_movie.cpp, pix_movie.h, pix_multiimage.h, pix_multiply.cpp, + pix_multiply.h: added MACOSX support; initial YUV support + +2002-11-27 00:46 tigital + + * src/Pixes/: pix_gain.cpp, pix_gain.h, pix_histo.cpp, pix_histo.h, + pix_hsv2rgb.h, pix_imageInPlace.cpp, pix_invert.cpp: added MACOSX + support; initial YUV support + +2002-11-27 00:42 tigital + + * src/Pixes/: pix_write.cpp, pix_movieYUV.cpp, pix_movieYUV.h, + pix_flip.cpp, pix_flip.h, pix_fx.cpp, pix_fx.h: added MACOSX + support; initial YUV support + +2002-11-27 00:39 tigital + + * src/Pixes/: pix_filmYUV.h, pix_videoDarwin.h, + pix_videoDarwin.cpp: added MACOSX support; initial YUV support + +2002-11-27 00:36 tigital + + * src/Pixes/: pix_dump.h, pix_film.cpp, pix_film.h, + pix_filmDarwin.cpp, pix_filmDarwin.h, pix_filmDarwinYUV.cpp, + pix_filmDarwinYUV.h, pix_filmYUV.cpp: added MACOSX support; + initial YUV support + +2002-11-27 00:33 tigital + + * src/Pixes/: pix_data.cpp, pix_data.h, pix_diff.cpp, pix_diff.h, + pix_dot.cpp, pix_dot.h, pix_dump.cpp: added MACOSX support; + initial YUV support + +2002-11-27 00:29 tigital + + * src/Pixes/: pix_composite.h, pix_convolve.cpp, pix_convolve.h, + pix_curve.cpp, pix_curve.h: added MACOSX support; initial YUV + support + +2002-11-27 00:23 tigital + + * src/Pixes/: pix_clearblock.h, pix_color.cpp, pix_color.h, + pix_coloralpha.cpp, pix_coloralpha.h, pix_colormatrix.cpp, + pix_colormatrix.h, pix_composite.cpp: added MACOSX support; + initial YUV support + +2002-11-27 00:19 tigital + + * src/Pixes/: pix_add.h, pix_aging.cpp, pix_aging.h, pix_alpha.cpp, + pix_alpha.h, pix_bitmask.cpp, pix_bitmask.h, pix_blob.cpp, + pix_blob.h: added MACOSX support; initial YUV support + +2002-11-27 00:16 tigital + + * src/Pixes/: pix_2grey.cpp, pix_2grey.h, pix_a_2grey.cpp, + pix_a_2grey.h, pix_add.cpp: added MACOSX support; initial YUV + support + +2002-11-27 00:13 tigital + + * src/: Geos/teapot.cpp, Geos/teapot.h, Nongeos/world_light.h: + added MACOSX support + +2002-11-27 00:13 tigital + + * src/: Geos/square.cpp, MarkEx/abs.cpp: removed unused variable + +2002-11-27 00:10 tigital + + * src/Geos/: imageVert.cpp, imageVert.h: added MACOSX support; + initial YUV support + +2002-11-27 00:09 tigital + + * src/Base/GemBase.cpp: reordered variable to shut up gcc 3.1 + +2002-11-27 00:08 tigital + + * src/Base/GemSetup.cpp: added MACOSX & YUV support + +2002-11-27 00:07 tigital + + * src/Controls/gemkeyboard.cpp: added MACOSX support; cleaned up + unused variables + +2002-11-27 00:05 tigital + + * src/Base/GemWinCreateMac.cpp: added for MACOSX; initial YUV + support + +2002-11-27 00:04 tigital + + * src/Base/: GemMan.cpp, GemPixObj.cpp, GemState.cpp: added MACOSX; + initial YUV support + +2002-11-27 00:03 tigital + + * src/Base/GemFuncUtil.h: added MACOSX + +2002-11-26 20:57 tigital + + * src/Base/GemSetup.cpp: added MACOSX, YUV support via #ifdef's + +2002-11-25 16:28 tigital + + * src/Base/GemPixDualObj.cpp: standardized to processDualGray() & + processDualYUV() + +2002-11-25 16:22 tigital + + * src/Base/: GemPixDualObj.cpp, GemPixDualObj.h: standardized to + processDualGray() & processDualYUV() + +2002-11-25 16:00 tigital + + * src/Base/: GemMan.h, GemMan.cpp: added MACOSX support + +2002-11-25 15:58 tigital + + * src/Base/GemPixObj.cpp: added MACOSX support; processYUVImage() + +2002-11-25 07:02 tigital + + * src/Base/GemWinCreate.h: added MACOSX support + +2002-11-25 07:01 tigital + + * src/Base/GemWinCreateMac.cpp: initial contribution + +2002-11-24 18:49 tigital + + * src/Manips/ortho.cpp: added MACOSX support + +2002-11-24 02:47 tigital + + * src/Geos/imageVert.cpp: added MACOSX support + +2002-11-24 02:43 tigital + + * src/Geos/: newWave.h, newWave.cpp: initial commit + +2002-11-24 02:40 tigital + + * src/Geos/: model.h, model.cpp: add support for MACOSX + +2002-11-24 02:14 tigital + + * src/: Controls/gemhead.cpp, Controls/gemhead.h, Geos/cuboid.cpp: + add support for MACOSX + +2002-11-24 02:09 tigital + + * src/: Base/GemPixUtil.h, Base/GemPixUtil.cpp, + Controls/gemwin.cpp: added support for MACOSX + +2002-11-24 02:07 tigital + + * src/Base/: GemPixObj.h, GemPixObj.cpp: added support for MACOSX + and YUV processing + +2002-11-24 02:06 tigital + + * src/Base/GemPixImageLoad.cpp: added support for MACOSX + +2002-11-24 02:01 tigital + + * src/Base/: GemPixDualObj.cpp, GemPixDualObj.h: added support for + YUV processing + +2002-11-24 01:58 tigital + + * src/Base/sgiimage.cpp: add MACOSX specific changes + +2002-11-24 01:54 tigital + + * src/Base/: GemGluObj.h, GemGLUtil.h, GemGlutObj.cpp, + GemGlutObj.h: add MACOSX specific changes + +2002-11-24 01:51 tigital + + * src/Base/GemBase.h: add MACOSX specific changes + +2002-11-14 10:13 ggeiger + + * src/: Base/GemPixUtil.h, Base/GemSetup.cpp, Gnu/Makefile.in, + Gnu/Makefile.subdir, Gnu/configure, Gnu/configure.in, + Pixes/pix_filmFFMPEG.cpp, Pixes/pix_filmFFMPEG.h, + Pixes/pix_movie.cpp, Pixes/pix_movie.h: experimental ffmpeg movie + player + +2002-11-05 19:12 zmoelnig + + * doc/gem.todo.txt: [no log message] + +2002-11-05 16:32 zmoelnig + + * src/Gnu/: Makefile, Makefile.in: Makefiles should be distclean on + CVS ...? + +2002-11-04 18:12 zmoelnig + + * src/: Base/GemSetup.cpp, Geos/cuboid.cpp, Geos/cuboid.h, + Gnu/Makefile: added erich's [cuboid] object, so he doesn't have + to worry any more... + +2002-11-04 17:28 zmoelnig + + * examples/: 01.basic/01.redSquare.pd, 02.advanced/03.View_OSD.pd, + 02.advanced/09.SnapshotSave.pd, 02.advanced/14.RenderOrder.pd, + 02.advanced/15.GemWin.pd: don't remember: added some + example-patches i had forgotten before fixed the pix_subtract bug + (which nobody had reported yet) + +2002-11-04 17:22 zmoelnig + + * src/: Geos/circle.cpp, Geos/circle.h, Geos/colorSquare.cpp, + Geos/colorSquare.h, Geos/cube.cpp, Geos/cube.h, Geos/curve.cpp, + Geos/curve.h, Geos/polygon.cpp, Geos/polygon.h, Geos/primTri.cpp, + Geos/primTri.h, Geos/square.cpp, Geos/square.h, Geos/teapot.cpp, + Geos/teapot.h, Geos/triangle.cpp, Geos/triangle.h, Gnu/configure, + Gnu/configure.in, Gnu/makeauxlibs, Pixes/pix_add.cpp, + Pixes/pix_buf.cpp, Pixes/pix_composite.cpp, + Pixes/pix_convolve.cpp, Pixes/pix_convolve.h, Pixes/pix_dot.cpp, + Pixes/pix_dv.cpp, Pixes/pix_flip.cpp, Pixes/pix_image.cpp, + Pixes/pix_image.h, Pixes/pix_multiimage.cpp, + Pixes/pix_multiimage.h, Pixes/pix_puzzle.cpp, + Pixes/pix_resize.cpp, Pixes/pix_rgba.cpp, Pixes/pix_set.cpp, + Pixes/pix_sig2pix.cpp, Pixes/pix_snap.cpp, + Pixes/pix_subtract.cpp, Pixes/pix_test.cpp, + Pixes/pix_texture.cpp, Pixes/pix_texture.h, Pixes/pix_video.cpp, + Pixes/pix_videoLinux.cpp, Pixes/pix_videoNT.cpp, + Pixes/pix_videoSGI.cpp, Pixes/pix_write.cpp: oops, last checkin i + forgot some things.... ok: applied guenter's MMX changes to + pix_* + +2002-11-04 17:21 zmoelnig + + * src/Base/: GemGLUtil.cpp, GemGLUtil.h, GemGlutObj.cpp, + GemGlutObj.h, GemMan.cpp, GemMan.h, GemPixDualObj.cpp, + GemPixImageLoad.cpp, GemPixObj.cpp, GemPixObj.h, GemPixUtil.cpp, + GemPixUtil.h, GemSetup.cpp, GemShape.cpp, GemShape.h, + GemState.cpp, GemState.h, GemVersion.h, config.h, config.h.in: + applied guenter's MMX changes to some pix things (?) + +2002-10-28 16:24 zmoelnig + + * GEM.README, doc/gem.known_bugs.txt, + examples/01.basic/01.redSquare.pd, + examples/01.basic/02.blueRectangle.pd, + examples/01.basic/03.disk.pd, examples/01.basic/04.PrimTri.pd, + examples/01.basic/05.cube.pd, examples/01.basic/06.sphere.pd, + examples/01.basic/07.cylinder.pd, examples/01.basic/08.model.pd, + examples/01.basic/09.yelloTeapot.pd, + examples/02.advanced/01.Separator.pd, + examples/02.advanced/02.Ortho.pd, + examples/02.advanced/03.View.pd, examples/02.advanced/04.Fog.pd, + examples/02.advanced/05.Stereo.pd, + examples/02.advanced/06.StereoParticle.pd, + examples/02.advanced/07.Snapshot1.pd, + examples/02.advanced/08.Snapshot2.pd, + examples/02.advanced/10.LinearPath.pd, + examples/02.advanced/11.SplinePath.pd, + examples/02.advanced/12.Hsv.pd, + examples/02.advanced/13.ModelRescale.pd, + examples/03.lighting/01.world_light.pd, + examples/03.lighting/02.light.pd, + examples/03.lighting/03.controlLights.pd, + examples/03.lighting/04.moveSpheres.pd, + examples/03.lighting/05.materials.pd, + examples/04.pix/01.image.pd, examples/04.pix/02.multiimage.pd, + examples/04.pix/04.ImageInPlace.pd, examples/04.pix/05.film.pd, + examples/04.pix/05.movie.pd, examples/04.pix/06.PixRect.pd, + examples/04.pix/10.PixDataSimple.pd, + examples/04.pix/11.PixDataComplex.pd, + examples/04.pix/12.composite.pd, + examples/04.pix/12.pix_multiply.pd, + examples/04.pix/13.maskDancer.pd, + examples/04.pix/15.pix_alpha.pd, examples/04.pix/16.alphaGrey.pd, + examples/04.pix/17.pix_gain.pd, + examples/04.pix/19.colorMatrix.pd, + examples/04.pix/20.convolve.pd, + examples/04.video/01.VideoPaint.pd, + examples/04.video/02.VideoSphere.pd, examples/05.text/01.Text.pd, + examples/05.text/03.ChangeText.pd, + examples/06.particle/01.simple.pd, + examples/06.particle/02.fountain.pd, + examples/06.particle/03.orbit.pd, + examples/06.particle/04.combo.pd, + examples/06.particle/05.twoSrc.pd, + examples/06.particle/06.target.pd, + examples/07.texture/01.texture.pd, + examples/07.texture/02.TexCoord.pd, + examples/07.texture/04.moveImages.pd, examples/08.io/01.Mouse.pd, + examples/08.io/02.Tablet.pd, examples/08.io/03.Orb.pd, + examples/08.io/04.UseOrb.pd, examples/99.games/puzzle.pd, + src/gem.dsp, src/Base/GemBase.cpp, src/Base/GemBase.h, + src/Base/GemCache.cpp, src/Base/GemCache.h, src/Base/GemMan.cpp, + src/Base/GemMan.h, src/Base/GemPixDualObj.cpp, + src/Base/GemPixDualObj.h, src/Base/GemPixImageLoad.cpp, + src/Base/GemPixImageSave.cpp, src/Base/GemSetup.cpp, + src/Controls/gemhead.cpp, src/Controls/gemhead.h, + src/Controls/gemwin.cpp, src/Controls/gemwin.h, + src/Geos/model.cpp, src/Gnu/README.build, src/Gnu/WHATSNEW, + src/Pixes/pix_film.cpp, src/Pixes/pix_filmNT.cpp, + src/Pixes/pix_image.cpp, src/Pixes/pix_imageInPlace.cpp, + src/Pixes/pix_video.cpp, src/Pixes/pix_video.h, + src/Pixes/pix_videoLinux.cpp, src/Pixes/pix_videoLinux.h, + src/Pixes/pix_videoNT.cpp: - edited some example-patches (very + minor changes) - rewrote the render-chain mechanism: now the + render-chain is not built statically when the rendering is + started but dynamically (each gem.object is "banged" (with some + gem_state pointers) at run-time gosh: why do we have a + message-system in pd, if it is not used ? - the priority of the + [gemhead]s can now be changed dynamically + +2002-10-21 11:29 zmoelnig + + * src/Base/: GemBase.cpp, GemBase.h, GemDag.cpp, GemDag.h, + GemPixDualObj.cpp, GemPixDualObj.h: applied Daniel Heckenberg's + patch for DualPix-Objects + +2002-10-21 10:35 zmoelnig + + * src/Gnu/Makefile.in: fixed the install-things + +2002-10-21 09:45 zmoelnig + + * GEM.LICENSE.TERMS, GEM.README, GEM_INSTALL.bat, GEM_INSTALL.sh, + GEM_RELUNIX.sh, GnuGPL.LICENSE, doc/cMatrix.html, + doc/gem.known_bugs.txt, doc/gem.todo.txt, + doc/gem.release_notes.txt, src/gem.dsp, src/gem.dsw, + src/Base/CPPExtern.cpp, src/Base/CPPExtern.h, + src/Base/GemBase.cpp, src/Base/GemBase.h, src/Base/GemCache.cpp, + src/Base/GemCache.h, src/Base/GemDag.cpp, src/Base/GemDag.h, + src/Base/GemEvent.cpp, src/Base/GemEvent.h, + src/Base/GemExportDef.h, src/Base/GemFuncUtil.cpp, + src/Base/GemFuncUtil.h, src/Base/GemGluObj.cpp, + src/Base/GemGluObj.h, src/Base/GemGlutObj.cpp, + src/Base/GemGlutObj.h, src/Base/GemLoadObj.cpp, + src/Base/GemLoadObj.h, src/Base/GemMan.cpp, src/Base/GemMan.h, + src/Base/GemModelData.cpp, src/Base/GemModelData.h, + src/Base/GemPathBase.cpp, src/Base/GemPathBase.h, + src/Base/GemPixDualObj.cpp, src/Base/GemPixDualObj.h, + src/Base/GemPixImageLoad.cpp, src/Base/GemPixImageLoad.h, + src/Base/GemPixImageSave.cpp, src/Base/GemPixImageSave.h, + src/Base/GemPixObj.cpp, src/Base/GemPixObj.h, + src/Base/GemPixUtil.cpp, src/Base/GemPixUtil.h, + src/Base/GemSetup.cpp, src/Base/GemShape.cpp, + src/Base/GemShape.h, src/Base/GemState.cpp, src/Base/GemState.h, + src/Base/GemVersion.h, src/Base/GemWinCreate.h, + src/Base/GemWinCreateNT.cpp, src/Base/GemWinCreateXWin.cpp, + src/Base/Make.depend, src/Base/Matrix.cpp, src/Base/Matrix.h, + src/Base/TextBase.cpp, src/Base/TextBase.h, src/Base/config.h, + src/Base/config.h.in, src/Base/sgiimage.cpp, src/Base/sgiimage.h, + src/Controls/Make.depend, src/Controls/gemhead.cpp, + src/Controls/gemhead.h, src/Controls/gemkeyboard.cpp, + src/Controls/gemkeyboard.h, src/Controls/gemkeyname.cpp, + src/Controls/gemkeyname.h, src/Controls/gemmouse.cpp, + src/Controls/gemmouse.h, src/Controls/gemorb.cpp, + src/Controls/gemorb.h, src/Controls/gemtablet.cpp, + src/Controls/gemtablet.h, src/Controls/gemwin.cpp, + src/Controls/gemwin.h, src/Controls/render_trigger.cpp, + src/Controls/render_trigger.h, src/Geos/Make.depend, + src/Geos/TexFont.h, src/Geos/circle.cpp, src/Geos/circle.h, + src/Geos/colorSquare.cpp, src/Geos/colorSquare.h, + src/Geos/cone.cpp, src/Geos/cone.h, src/Geos/cube.cpp, + src/Geos/cube.h, src/Geos/curve.cpp, src/Geos/curve.h, + src/Geos/cylinder.cpp, src/Geos/cylinder.h, src/Geos/disk.cpp, + src/Geos/disk.h, src/Geos/imageVert.cpp, src/Geos/imageVert.h, + src/Geos/model.cpp, src/Geos/model.cpp_, src/Geos/model.h, + src/Geos/multimodel.cpp, src/Geos/multimodel.h, + src/Geos/polygon.cpp, src/Geos/polygon.h, src/Geos/primTri.cpp, + src/Geos/primTri.h, src/Geos/rectangle.cpp, src/Geos/rectangle.h, + src/Geos/sphere.cpp, src/Geos/sphere.h, src/Geos/square.cpp, + src/Geos/square.h, src/Geos/teapot.cpp, src/Geos/teapot.h, + src/Geos/text2d.cpp, src/Geos/text2d.h, src/Geos/text3d.cpp, + src/Geos/text3d.h, src/Geos/textoutline.cpp, + src/Geos/textoutline.h, src/Geos/triangle.cpp, + src/Geos/triangle.h, src/Gnu/Makefile, src/Gnu/Makefile.clean, + src/Gnu/Makefile.in, src/Gnu/Makefile.subdir, + src/Gnu/README.build, src/Gnu/WHATSNEW, src/Gnu/acinclude.m4, + src/Gnu/aclocal.m4, src/Gnu/config.guess, src/Gnu/config.sub, + src/Gnu/configure, src/Gnu/configure.in, src/Gnu/install-sh, + src/Gnu/makeauxlibs, src/Gnu/makesource, src/Gnu/missing, + src/Gnu/mkinstalldirs, src/Manips/Make.depend, + src/Manips/accumrotate.cpp, src/Manips/accumrotate.h, + src/Manips/alpha.cpp, src/Manips/alpha.h, src/Manips/ambient.cpp, + src/Manips/ambient.h, src/Manips/ambientRGB.cpp, + src/Manips/ambientRGB.h, src/Manips/color.cpp, + src/Manips/color.h, src/Manips/colorRGB.cpp, + src/Manips/colorRGB.h, src/Manips/depth.cpp, src/Manips/depth.h, + src/Manips/diffuse.cpp, src/Manips/diffuse.h, + src/Manips/diffuseRGB.cpp, src/Manips/diffuseRGB.h, + src/Manips/emission.cpp, src/Manips/emission.h, + src/Manips/emissionRGB.cpp, src/Manips/emissionRGB.h, + src/Manips/linear_path.cpp, src/Manips/linear_path.h, + src/Manips/ortho.cpp, src/Manips/ortho.h, src/Manips/rotate.cpp, + src/Manips/rotate.h, src/Manips/rotateXYZ.cpp, + src/Manips/rotateXYZ.h, src/Manips/scale.cpp, src/Manips/scale.h, + src/Manips/scaleXYZ.cpp, src/Manips/scaleXYZ.h, + src/Manips/separator.cpp, src/Manips/separator.h, + src/Manips/shininess.cpp, src/Manips/shininess.h, + src/Manips/specular.cpp, src/Manips/specular.h, + src/Manips/specularRGB.cpp, src/Manips/specularRGB.h, + src/Manips/spline_path.cpp, src/Manips/spline_path.h, + src/Manips/translate.cpp, src/Manips/translate.h, + src/Manips/translateXYZ.cpp, src/Manips/translateXYZ.h, + src/MarkEx/Make.depend, src/MarkEx/MarkExSetup.cpp, + src/MarkEx/abs.cpp, src/MarkEx/average.cpp, + src/MarkEx/counter.cpp, src/MarkEx/hsvrgb.cpp, + src/MarkEx/m_control.cpp, src/MarkEx/multiselect.cpp, + src/MarkEx/randomF.cpp, src/MarkEx/reson.cpp, + src/MarkEx/strcat.cpp, src/MarkEx/tripleLine.cpp, + src/MarkEx/vector.cpp, src/Nongeos/Make.depend, + src/Nongeos/light.cpp, src/Nongeos/light.h, + src/Nongeos/world_light.cpp, src/Nongeos/world_light.h, + src/Particles/Make.depend, src/Particles/part_color.cpp, + src/Particles/part_color.h, src/Particles/part_damp.cpp, + src/Particles/part_damp.h, src/Particles/part_draw.cpp, + src/Particles/part_draw.h, src/Particles/part_follow.cpp, + src/Particles/part_follow.h, src/Particles/part_gravity.cpp, + src/Particles/part_gravity.h, src/Particles/part_head.cpp, + src/Particles/part_head.h, src/Particles/part_killold.cpp, + src/Particles/part_killold.h, src/Particles/part_killslow.cpp, + src/Particles/part_killslow.h, src/Particles/part_orbitpoint.cpp, + src/Particles/part_orbitpoint.h, src/Particles/part_size.cpp, + src/Particles/part_size.h, src/Particles/part_source.cpp, + src/Particles/part_source.h, src/Particles/part_targetcolor.cpp, + src/Particles/part_targetcolor.h, + src/Particles/part_targetsize.cpp, + src/Particles/part_targetsize.h, src/Particles/part_velcone.cpp, + src/Particles/part_velcone.h, src/Particles/part_velsphere.cpp, + src/Particles/part_velsphere.h, src/Pixes/Make.depend, + src/Pixes/pix_2grey.cpp, src/Pixes/pix_2grey.h, + src/Pixes/pix_a_2grey.cpp, src/Pixes/pix_a_2grey.h, + src/Pixes/pix_add.cpp, src/Pixes/pix_add.h, + src/Pixes/pix_aging.cpp, src/Pixes/pix_aging.h, + src/Pixes/pix_alpha.cpp, src/Pixes/pix_alpha.h, + src/Pixes/pix_bitmask.cpp, src/Pixes/pix_bitmask.h, + src/Pixes/pix_blob.cpp, src/Pixes/pix_blob.h, + src/Pixes/pix_buf.cpp, src/Pixes/pix_buf.h, + src/Pixes/pix_clearblock.cpp, src/Pixes/pix_clearblock.h, + src/Pixes/pix_color.cpp, src/Pixes/pix_color.h, + src/Pixes/pix_coloralpha.cpp, src/Pixes/pix_coloralpha.h, + src/Pixes/pix_colormatrix.cpp, src/Pixes/pix_colormatrix.h, + src/Pixes/pix_composite.cpp, src/Pixes/pix_composite.h, + src/Pixes/pix_convolve.cpp, src/Pixes/pix_convolve.h, + src/Pixes/pix_coordinate.cpp, src/Pixes/pix_coordinate.h, + src/Pixes/pix_curve.cpp, src/Pixes/pix_curve.h, + src/Pixes/pix_data.cpp, src/Pixes/pix_data.h, + src/Pixes/pix_diff.cpp, src/Pixes/pix_diff.h, + src/Pixes/pix_dot.cpp, src/Pixes/pix_dot.h, + src/Pixes/pix_draw.cpp, src/Pixes/pix_draw.h, + src/Pixes/pix_dump.cpp, src/Pixes/pix_dump.h, + src/Pixes/pix_dv.cpp, src/Pixes/pix_dv.h, + src/Pixes/pix_dvLinux.cpp, src/Pixes/pix_dvLinux.h, + src/Pixes/pix_film.cpp, src/Pixes/pix_film.h, + src/Pixes/pix_filmLinux.cpp, src/Pixes/pix_filmLinux.h, + src/Pixes/pix_filmNT.cpp, src/Pixes/pix_filmNT.h, + src/Pixes/pix_flip.cpp, src/Pixes/pix_flip.h, + src/Pixes/pix_fx.cpp, src/Pixes/pix_fx.h, src/Pixes/pix_gain.cpp, + src/Pixes/pix_gain.h, src/Pixes/pix_histo.cpp, + src/Pixes/pix_histo.h, src/Pixes/pix_hsv2rgb.cpp, + src/Pixes/pix_hsv2rgb.h, src/Pixes/pix_image.cpp, + src/Pixes/pix_image.h, src/Pixes/pix_imageInPlace.cpp, + src/Pixes/pix_imageInPlace.h, src/Pixes/pix_indycam.cpp, + src/Pixes/pix_indycam.h, src/Pixes/pix_invert.cpp, + src/Pixes/pix_invert.h, src/Pixes/pix_mask.cpp, + src/Pixes/pix_mask.h, src/Pixes/pix_movie.cpp, + src/Pixes/pix_movie.h, src/Pixes/pix_multiimage.cpp, + src/Pixes/pix_multiimage.h, src/Pixes/pix_multiply.cpp, + src/Pixes/pix_multiply.h, src/Pixes/pix_normalize.cpp, + src/Pixes/pix_normalize.h, src/Pixes/pix_offset.cpp, + src/Pixes/pix_offset.h, src/Pixes/pix_pix2sig.cpp, + src/Pixes/pix_pix2sig.h, src/Pixes/pix_puzzle.cpp, + src/Pixes/pix_puzzle.h, src/Pixes/pix_rectangle.cpp, + src/Pixes/pix_rectangle.h, src/Pixes/pix_resize.cpp, + src/Pixes/pix_resize.h, src/Pixes/pix_rgb2hsv.cpp, + src/Pixes/pix_rgb2hsv.h, src/Pixes/pix_rgba.cpp, + src/Pixes/pix_rgba.h, src/Pixes/pix_set.cpp, src/Pixes/pix_set.h, + src/Pixes/pix_sig2pix.cpp, src/Pixes/pix_sig2pix.h, + src/Pixes/pix_snap.cpp, src/Pixes/pix_snap.h, + src/Pixes/pix_subtract.cpp, src/Pixes/pix_subtract.h, + src/Pixes/pix_takealpha.cpp, src/Pixes/pix_takealpha.h, + src/Pixes/pix_test.cpp, src/Pixes/pix_test.h, + src/Pixes/pix_texture.cpp, src/Pixes/pix_texture.h, + src/Pixes/pix_texture2.cpp, src/Pixes/pix_texture2.h, + src/Pixes/pix_threshold.cpp, src/Pixes/pix_threshold.h, + src/Pixes/pix_video.cpp, src/Pixes/pix_video.h, + src/Pixes/pix_videoLinux.cpp, src/Pixes/pix_videoLinux.h, + src/Pixes/pix_videoNT.cpp, src/Pixes/pix_videoNT.h, + src/Pixes/pix_videoSGI.cpp, src/Pixes/pix_videoSGI.h, + src/Pixes/pix_write.cpp, src/Pixes/pix_write.h, + src/Pixes/pix_zoom.cpp, src/Pixes/pix_zoom.h, src/TV/Make.depend, + src/TV/tv_biquad.h, help/accumrotate.pd, help/alpha.pd, + help/alternate.pd, help/ambient.pd, help/ambientRGB.pd, + help/average.pd, help/change.pd, help/circle.pd, help/color.pd, + help/colorRGB.pd, help/colorSquare.pd, help/cone.pd, + help/counter.pd, help/cube.pd, help/curve.pd, help/cylinder.pd, + help/depth.pd, help/diffuse.pd, help/diffuseRGB.pd, help/disk.pd, + help/emission.pd, help/emissionRGB.pd, help/gemhead.pd, + help/gemkeyboard.pd, help/gemkeyname.pd, help/gemmouse.pd, + help/gemorb.pd, help/gemtablet.pd, help/gemwin.pd, + help/hsv2rgb.pd, help/imageVert.pd, help/invert.pd, + help/light.pd, help/linear_path.pd, help/model.pd, + help/multimodel.pd, help/oneshot.pd, help/ortho.pd, + help/part_color.pd, help/part_damp.pd, help/part_draw.pd, + help/part_follow.pd, help/part_gravity.pd, help/part_head.pd, + help/part_killold.pd, help/part_killslow.pd, + help/part_orbitpoint.pd, help/part_size.pd, help/part_source.pd, + help/part_targetcolor.pd, help/part_targetsize.pd, + help/part_velcone.pd, help/part_velsphere.pd, help/pix_2grey.pd, + help/pix_a_2grey.pd, help/pix_add.pd, help/pix_aging.pd, + help/pix_alpha.pd, help/pix_bitmask.pd, help/pix_blob.pd, + help/pix_buf.pd, help/pix_clearblock.pd, help/pix_coloralpha.pd, + help/pix_colormatrix.pd, help/pix_composite.pd, + help/pix_convolve.pd, help/pix_coordinate.pd, help/pix_curve.pd, + help/pix_data.pd, help/pix_diff.pd, help/pix_draw.pd, + help/pix_dump.pd, help/pix_film.pd, help/pix_flip.pd, + help/pix_gain.pd, help/pix_histo.pd, help/pix_hsv2rgb.pd, + help/pix_image.pd, help/pix_imageInPlace.pd, help/pix_indycam.pd, + help/pix_invert.pd, help/pix_mask.pd, help/pix_movie.pd, + help/pix_multiimage.pd, help/pix_multiply.pd, + help/pix_normalize.pd, help/pix_offset.pd, help/pix_pix2sig~.pd, + help/pix_puzzle.pd, help/pix_rectangle.pd, help/pix_resize.pd, + help/pix_rgb2hsv.pd, help/pix_rgba.pd, help/pix_set.pd, + help/pix_sig2pix~.pd, help/pix_snap.pd, help/pix_subtract.pd, + help/pix_takealpha.pd, help/pix_texture.pd, help/pix_texture2.pd, + help/pix_threshold.pd, help/pix_video.pd, help/pix_write.pd, + help/pix_zoom.pd, help/polygon.pd, help/primTri.pd, + help/randF.pd, help/randomF.pd, help/rectangle.pd, + help/render_trigger.pd, help/rgb2hsv.pd, help/rotate.pd, + help/rotateXYZ.pd, help/scale.pd, help/scaleXYZ.pd, + help/separator.pd, help/shininess.pd, help/specular.pd, + help/specularRGB.pd, help/sphere.pd, help/spline_path.pd, + help/square.pd, help/teapot.pd, help/text2d.pd, help/text3d.pd, + help/textoutline.pd, help/translate.pd, help/translateXYZ.pd, + help/triangle.pd, help/tripleLine.pd, help/tripleRand.pd, + help/tv_biquad.pd, help/tv_movement.pd, help/tv_rtx.pd, + help/v+.pd, help/v-.pd, help/vector+.pd, help/vector-.pd, + help/world_light.pd, manual/Advanced.html, manual/BasicObj.html, + manual/GemFaq.html, manual/GemWPd.html, manual/Gloss.html, + manual/Images.html, manual/Input.html, manual/Intro.html, + manual/Lighting.html, manual/ListObjects.html, + manual/Particles.html, manual/Pixes.html, manual/Texture.html, + manual/Utility.html, manual/WriteCode.html, manual/add.jpg, + manual/addResult.jpg, manual/gemwin.jpg, manual/index.html, + manual/invert.jpg, manual/invertFrac.jpg, manual/light.jpg, + manual/maskResult.jpg, manual/pixImage.jpg, manual/redSquare.jpg, + manual/sphere15.jpg, manual/sphere5.jpg, manual/transXYZ.jpg, + manual/tribar.gif, manual/tripleLine.jpg, manual/tripleRand.jpg, + src/TV/tv_biquad.cpp, src/TV/tv_movement.cpp, + src/TV/tv_movement.h, src/TV/tv_rtx.cpp, src/TV/tv_rtx.h, + src/TV/tv_test.cpp, src/TV/tv_test.h, examples/08.io/01.Mouse.pd, + examples/08.io/02.Tablet.pd, examples/08.io/03.Orb.pd, + examples/08.io/04.UseOrb.pd, examples/data/alea.mpg, + examples/data/valmotion.tab, manual/basicCube.jpg, + manual/counter.jpg, manual/mask.jpg, manual/normalFrac.jpg, + manual/texture.jpg, manual/world_light.jpg, + examples/data/cour.ttf, examples/data/dancer.JPG, + examples/data/times.ttf, examples/data/valcolor.tab, + examples/data/venus.mtl, examples/data/homer.avi, + examples/data/temp2.JPG, examples/data/arial.ttf, + examples/data/fractal.JPG, examples/data/fractalAlpha.TIF, + examples/data/temp0.JPG, examples/data/temp1.JPG, + examples/01.basic/01.redSquare.pd, + examples/01.basic/02.blueRectangle.pd, + examples/01.basic/03.disk.pd, examples/01.basic/04.PrimTri.pd, + examples/01.basic/05.cube.pd, examples/01.basic/06.sphere.pd, + examples/01.basic/07.cylinder.pd, examples/01.basic/08.model.pd, + examples/01.basic/09.yelloTeapot.pd, + examples/02.advanced/01.Separator.pd, + examples/02.advanced/02.Ortho.pd, + examples/02.advanced/03.View.pd, examples/02.advanced/04.Fog.pd, + examples/02.advanced/05.Stereo.pd, + examples/02.advanced/06.StereoParticle.pd, + examples/02.advanced/07.Snapshot1.pd, + examples/02.advanced/08.Snapshot2.pd, + examples/02.advanced/10.LinearPath.pd, + examples/02.advanced/11.SplinePath.pd, + examples/02.advanced/12.Hsv.pd, + examples/02.advanced/13.ModelRescale.pd, + examples/03.lighting/01.world_light.pd, + examples/03.lighting/02.light.pd, + examples/03.lighting/03.controlLights.pd, + examples/03.lighting/04.moveSpheres.pd, + examples/03.lighting/05.materials.pd, + examples/04.pix/01.image.pd, examples/04.pix/02.multiimage.pd, + examples/04.pix/04.ImageInPlace.pd, examples/04.pix/05.film.pd, + examples/04.pix/05.movie.pd, examples/04.pix/06.PixRect.pd, + examples/04.pix/10.PixDataSimple.pd, + examples/04.pix/11.PixDataComplex.pd, + examples/04.pix/12.composite.pd, + examples/04.pix/12.pix_multiply.pd, + examples/04.pix/13.maskDancer.pd, + examples/04.pix/15.pix_alpha.pd, examples/04.pix/16.alphaGrey.pd, + examples/04.pix/17.pix_gain.pd, + examples/04.pix/19.colorMatrix.pd, + examples/04.pix/20.convolve.pd, + examples/04.video/01.VideoPaint.pd, + examples/04.video/02.VideoSphere.pd, + examples/05.text/03.ChangeText.pd, + examples/06.particle/01.simple.pd, + examples/06.particle/02.fountain.pd, + examples/06.particle/03.orbit.pd, + examples/06.particle/04.combo.pd, + examples/06.particle/05.twoSrc.pd, + examples/06.particle/06.target.pd, + examples/07.texture/01.texture.pd, + examples/07.texture/02.TexCoord.pd, + examples/07.texture/04.moveImages.pd, + examples/99.games/puzzle.pd, examples/data/anim-1.mov, + examples/05.text/01.Text.pd, examples/05.text/arial.ttf: Initial + revision + +2002-10-21 09:45 zmoelnig + + * GEM.LICENSE.TERMS, GEM.README, GEM_INSTALL.bat, GEM_INSTALL.sh, + GEM_RELUNIX.sh, GnuGPL.LICENSE, doc/cMatrix.html, + doc/gem.known_bugs.txt, doc/gem.todo.txt, + doc/gem.release_notes.txt, src/gem.dsp, src/gem.dsw, + src/Base/CPPExtern.cpp, src/Base/CPPExtern.h, + src/Base/GemBase.cpp, src/Base/GemBase.h, src/Base/GemCache.cpp, + src/Base/GemCache.h, src/Base/GemDag.cpp, src/Base/GemDag.h, + src/Base/GemEvent.cpp, src/Base/GemEvent.h, + src/Base/GemExportDef.h, src/Base/GemFuncUtil.cpp, + src/Base/GemFuncUtil.h, src/Base/GemGluObj.cpp, + src/Base/GemGluObj.h, src/Base/GemGlutObj.cpp, + src/Base/GemGlutObj.h, src/Base/GemLoadObj.cpp, + src/Base/GemLoadObj.h, src/Base/GemMan.cpp, src/Base/GemMan.h, + src/Base/GemModelData.cpp, src/Base/GemModelData.h, + src/Base/GemPathBase.cpp, src/Base/GemPathBase.h, + src/Base/GemPixDualObj.cpp, src/Base/GemPixDualObj.h, + src/Base/GemPixImageLoad.cpp, src/Base/GemPixImageLoad.h, + src/Base/GemPixImageSave.cpp, src/Base/GemPixImageSave.h, + src/Base/GemPixObj.cpp, src/Base/GemPixObj.h, + src/Base/GemPixUtil.cpp, src/Base/GemPixUtil.h, + src/Base/GemSetup.cpp, src/Base/GemShape.cpp, + src/Base/GemShape.h, src/Base/GemState.cpp, src/Base/GemState.h, + src/Base/GemVersion.h, src/Base/GemWinCreate.h, + src/Base/GemWinCreateNT.cpp, src/Base/GemWinCreateXWin.cpp, + src/Base/Make.depend, src/Base/Matrix.cpp, src/Base/Matrix.h, + src/Base/TextBase.cpp, src/Base/TextBase.h, src/Base/config.h, + src/Base/config.h.in, src/Base/sgiimage.cpp, src/Base/sgiimage.h, + src/Controls/Make.depend, src/Controls/gemhead.cpp, + src/Controls/gemhead.h, src/Controls/gemkeyboard.cpp, + src/Controls/gemkeyboard.h, src/Controls/gemkeyname.cpp, + src/Controls/gemkeyname.h, src/Controls/gemmouse.cpp, + src/Controls/gemmouse.h, src/Controls/gemorb.cpp, + src/Controls/gemorb.h, src/Controls/gemtablet.cpp, + src/Controls/gemtablet.h, src/Controls/gemwin.cpp, + src/Controls/gemwin.h, src/Controls/render_trigger.cpp, + src/Controls/render_trigger.h, src/Geos/Make.depend, + src/Geos/TexFont.h, src/Geos/circle.cpp, src/Geos/circle.h, + src/Geos/colorSquare.cpp, src/Geos/colorSquare.h, + src/Geos/cone.cpp, src/Geos/cone.h, src/Geos/cube.cpp, + src/Geos/cube.h, src/Geos/curve.cpp, src/Geos/curve.h, + src/Geos/cylinder.cpp, src/Geos/cylinder.h, src/Geos/disk.cpp, + src/Geos/disk.h, src/Geos/imageVert.cpp, src/Geos/imageVert.h, + src/Geos/model.cpp, src/Geos/model.cpp_, src/Geos/model.h, + src/Geos/multimodel.cpp, src/Geos/multimodel.h, + src/Geos/polygon.cpp, src/Geos/polygon.h, src/Geos/primTri.cpp, + src/Geos/primTri.h, src/Geos/rectangle.cpp, src/Geos/rectangle.h, + src/Geos/sphere.cpp, src/Geos/sphere.h, src/Geos/square.cpp, + src/Geos/square.h, src/Geos/teapot.cpp, src/Geos/teapot.h, + src/Geos/text2d.cpp, src/Geos/text2d.h, src/Geos/text3d.cpp, + src/Geos/text3d.h, src/Geos/textoutline.cpp, + src/Geos/textoutline.h, src/Geos/triangle.cpp, + src/Geos/triangle.h, src/Gnu/Makefile, src/Gnu/Makefile.clean, + src/Gnu/Makefile.in, src/Gnu/Makefile.subdir, + src/Gnu/README.build, src/Gnu/WHATSNEW, src/Gnu/acinclude.m4, + src/Gnu/aclocal.m4, src/Gnu/config.guess, src/Gnu/config.sub, + src/Gnu/configure, src/Gnu/configure.in, src/Gnu/install-sh, + src/Gnu/makeauxlibs, src/Gnu/makesource, src/Gnu/missing, + src/Gnu/mkinstalldirs, src/Manips/Make.depend, + src/Manips/accumrotate.cpp, src/Manips/accumrotate.h, + src/Manips/alpha.cpp, src/Manips/alpha.h, src/Manips/ambient.cpp, + src/Manips/ambient.h, src/Manips/ambientRGB.cpp, + src/Manips/ambientRGB.h, src/Manips/color.cpp, + src/Manips/color.h, src/Manips/colorRGB.cpp, + src/Manips/colorRGB.h, src/Manips/depth.cpp, src/Manips/depth.h, + src/Manips/diffuse.cpp, src/Manips/diffuse.h, + src/Manips/diffuseRGB.cpp, src/Manips/diffuseRGB.h, + src/Manips/emission.cpp, src/Manips/emission.h, + src/Manips/emissionRGB.cpp, src/Manips/emissionRGB.h, + src/Manips/linear_path.cpp, src/Manips/linear_path.h, + src/Manips/ortho.cpp, src/Manips/ortho.h, src/Manips/rotate.cpp, + src/Manips/rotate.h, src/Manips/rotateXYZ.cpp, + src/Manips/rotateXYZ.h, src/Manips/scale.cpp, src/Manips/scale.h, + src/Manips/scaleXYZ.cpp, src/Manips/scaleXYZ.h, + src/Manips/separator.cpp, src/Manips/separator.h, + src/Manips/shininess.cpp, src/Manips/shininess.h, + src/Manips/specular.cpp, src/Manips/specular.h, + src/Manips/specularRGB.cpp, src/Manips/specularRGB.h, + src/Manips/spline_path.cpp, src/Manips/spline_path.h, + src/Manips/translate.cpp, src/Manips/translate.h, + src/Manips/translateXYZ.cpp, src/Manips/translateXYZ.h, + src/MarkEx/Make.depend, src/MarkEx/MarkExSetup.cpp, + src/MarkEx/abs.cpp, src/MarkEx/average.cpp, + src/MarkEx/counter.cpp, src/MarkEx/hsvrgb.cpp, + src/MarkEx/m_control.cpp, src/MarkEx/multiselect.cpp, + src/MarkEx/randomF.cpp, src/MarkEx/reson.cpp, + src/MarkEx/strcat.cpp, src/MarkEx/tripleLine.cpp, + src/MarkEx/vector.cpp, src/Nongeos/Make.depend, + src/Nongeos/light.cpp, src/Nongeos/light.h, + src/Nongeos/world_light.cpp, src/Nongeos/world_light.h, + src/Particles/Make.depend, src/Particles/part_color.cpp, + src/Particles/part_color.h, src/Particles/part_damp.cpp, + src/Particles/part_damp.h, src/Particles/part_draw.cpp, + src/Particles/part_draw.h, src/Particles/part_follow.cpp, + src/Particles/part_follow.h, src/Particles/part_gravity.cpp, + src/Particles/part_gravity.h, src/Particles/part_head.cpp, + src/Particles/part_head.h, src/Particles/part_killold.cpp, + src/Particles/part_killold.h, src/Particles/part_killslow.cpp, + src/Particles/part_killslow.h, src/Particles/part_orbitpoint.cpp, + src/Particles/part_orbitpoint.h, src/Particles/part_size.cpp, + src/Particles/part_size.h, src/Particles/part_source.cpp, + src/Particles/part_source.h, src/Particles/part_targetcolor.cpp, + src/Particles/part_targetcolor.h, + src/Particles/part_targetsize.cpp, + src/Particles/part_targetsize.h, src/Particles/part_velcone.cpp, + src/Particles/part_velcone.h, src/Particles/part_velsphere.cpp, + src/Particles/part_velsphere.h, src/Pixes/Make.depend, + src/Pixes/pix_2grey.cpp, src/Pixes/pix_2grey.h, + src/Pixes/pix_a_2grey.cpp, src/Pixes/pix_a_2grey.h, + src/Pixes/pix_add.cpp, src/Pixes/pix_add.h, + src/Pixes/pix_aging.cpp, src/Pixes/pix_aging.h, + src/Pixes/pix_alpha.cpp, src/Pixes/pix_alpha.h, + src/Pixes/pix_bitmask.cpp, src/Pixes/pix_bitmask.h, + src/Pixes/pix_blob.cpp, src/Pixes/pix_blob.h, + src/Pixes/pix_buf.cpp, src/Pixes/pix_buf.h, + src/Pixes/pix_clearblock.cpp, src/Pixes/pix_clearblock.h, + src/Pixes/pix_color.cpp, src/Pixes/pix_color.h, + src/Pixes/pix_coloralpha.cpp, src/Pixes/pix_coloralpha.h, + src/Pixes/pix_colormatrix.cpp, src/Pixes/pix_colormatrix.h, + src/Pixes/pix_composite.cpp, src/Pixes/pix_composite.h, + src/Pixes/pix_convolve.cpp, src/Pixes/pix_convolve.h, + src/Pixes/pix_coordinate.cpp, src/Pixes/pix_coordinate.h, + src/Pixes/pix_curve.cpp, src/Pixes/pix_curve.h, + src/Pixes/pix_data.cpp, src/Pixes/pix_data.h, + src/Pixes/pix_diff.cpp, src/Pixes/pix_diff.h, + src/Pixes/pix_dot.cpp, src/Pixes/pix_dot.h, + src/Pixes/pix_draw.cpp, src/Pixes/pix_draw.h, + src/Pixes/pix_dump.cpp, src/Pixes/pix_dump.h, + src/Pixes/pix_dv.cpp, src/Pixes/pix_dv.h, + src/Pixes/pix_dvLinux.cpp, src/Pixes/pix_dvLinux.h, + src/Pixes/pix_film.cpp, src/Pixes/pix_film.h, + src/Pixes/pix_filmLinux.cpp, src/Pixes/pix_filmLinux.h, + src/Pixes/pix_filmNT.cpp, src/Pixes/pix_filmNT.h, + src/Pixes/pix_flip.cpp, src/Pixes/pix_flip.h, + src/Pixes/pix_fx.cpp, src/Pixes/pix_fx.h, src/Pixes/pix_gain.cpp, + src/Pixes/pix_gain.h, src/Pixes/pix_histo.cpp, + src/Pixes/pix_histo.h, src/Pixes/pix_hsv2rgb.cpp, + src/Pixes/pix_hsv2rgb.h, src/Pixes/pix_image.cpp, + src/Pixes/pix_image.h, src/Pixes/pix_imageInPlace.cpp, + src/Pixes/pix_imageInPlace.h, src/Pixes/pix_indycam.cpp, + src/Pixes/pix_indycam.h, src/Pixes/pix_invert.cpp, + src/Pixes/pix_invert.h, src/Pixes/pix_mask.cpp, + src/Pixes/pix_mask.h, src/Pixes/pix_movie.cpp, + src/Pixes/pix_movie.h, src/Pixes/pix_multiimage.cpp, + src/Pixes/pix_multiimage.h, src/Pixes/pix_multiply.cpp, + src/Pixes/pix_multiply.h, src/Pixes/pix_normalize.cpp, + src/Pixes/pix_normalize.h, src/Pixes/pix_offset.cpp, + src/Pixes/pix_offset.h, src/Pixes/pix_pix2sig.cpp, + src/Pixes/pix_pix2sig.h, src/Pixes/pix_puzzle.cpp, + src/Pixes/pix_puzzle.h, src/Pixes/pix_rectangle.cpp, + src/Pixes/pix_rectangle.h, src/Pixes/pix_resize.cpp, + src/Pixes/pix_resize.h, src/Pixes/pix_rgb2hsv.cpp, + src/Pixes/pix_rgb2hsv.h, src/Pixes/pix_rgba.cpp, + src/Pixes/pix_rgba.h, src/Pixes/pix_set.cpp, src/Pixes/pix_set.h, + src/Pixes/pix_sig2pix.cpp, src/Pixes/pix_sig2pix.h, + src/Pixes/pix_snap.cpp, src/Pixes/pix_snap.h, + src/Pixes/pix_subtract.cpp, src/Pixes/pix_subtract.h, + src/Pixes/pix_takealpha.cpp, src/Pixes/pix_takealpha.h, + src/Pixes/pix_test.cpp, src/Pixes/pix_test.h, + src/Pixes/pix_texture.cpp, src/Pixes/pix_texture.h, + src/Pixes/pix_texture2.cpp, src/Pixes/pix_texture2.h, + src/Pixes/pix_threshold.cpp, src/Pixes/pix_threshold.h, + src/Pixes/pix_video.cpp, src/Pixes/pix_video.h, + src/Pixes/pix_videoLinux.cpp, src/Pixes/pix_videoLinux.h, + src/Pixes/pix_videoNT.cpp, src/Pixes/pix_videoNT.h, + src/Pixes/pix_videoSGI.cpp, src/Pixes/pix_videoSGI.h, + src/Pixes/pix_write.cpp, src/Pixes/pix_write.h, + src/Pixes/pix_zoom.cpp, src/Pixes/pix_zoom.h, src/TV/Make.depend, + src/TV/tv_biquad.h, help/accumrotate.pd, help/alpha.pd, + help/alternate.pd, help/ambient.pd, help/ambientRGB.pd, + help/average.pd, help/change.pd, help/circle.pd, help/color.pd, + help/colorRGB.pd, help/colorSquare.pd, help/cone.pd, + help/counter.pd, help/cube.pd, help/curve.pd, help/cylinder.pd, + help/depth.pd, help/diffuse.pd, help/diffuseRGB.pd, help/disk.pd, + help/emission.pd, help/emissionRGB.pd, help/gemhead.pd, + help/gemkeyboard.pd, help/gemkeyname.pd, help/gemmouse.pd, + help/gemorb.pd, help/gemtablet.pd, help/gemwin.pd, + help/hsv2rgb.pd, help/imageVert.pd, help/invert.pd, + help/light.pd, help/linear_path.pd, help/model.pd, + help/multimodel.pd, help/oneshot.pd, help/ortho.pd, + help/part_color.pd, help/part_damp.pd, help/part_draw.pd, + help/part_follow.pd, help/part_gravity.pd, help/part_head.pd, + help/part_killold.pd, help/part_killslow.pd, + help/part_orbitpoint.pd, help/part_size.pd, help/part_source.pd, + help/part_targetcolor.pd, help/part_targetsize.pd, + help/part_velcone.pd, help/part_velsphere.pd, help/pix_2grey.pd, + help/pix_a_2grey.pd, help/pix_add.pd, help/pix_aging.pd, + help/pix_alpha.pd, help/pix_bitmask.pd, help/pix_blob.pd, + help/pix_buf.pd, help/pix_clearblock.pd, help/pix_coloralpha.pd, + help/pix_colormatrix.pd, help/pix_composite.pd, + help/pix_convolve.pd, help/pix_coordinate.pd, help/pix_curve.pd, + help/pix_data.pd, help/pix_diff.pd, help/pix_draw.pd, + help/pix_dump.pd, help/pix_film.pd, help/pix_flip.pd, + help/pix_gain.pd, help/pix_histo.pd, help/pix_hsv2rgb.pd, + help/pix_image.pd, help/pix_imageInPlace.pd, help/pix_indycam.pd, + help/pix_invert.pd, help/pix_mask.pd, help/pix_movie.pd, + help/pix_multiimage.pd, help/pix_multiply.pd, + help/pix_normalize.pd, help/pix_offset.pd, help/pix_pix2sig~.pd, + help/pix_puzzle.pd, help/pix_rectangle.pd, help/pix_resize.pd, + help/pix_rgb2hsv.pd, help/pix_rgba.pd, help/pix_set.pd, + help/pix_sig2pix~.pd, help/pix_snap.pd, help/pix_subtract.pd, + help/pix_takealpha.pd, help/pix_texture.pd, help/pix_texture2.pd, + help/pix_threshold.pd, help/pix_video.pd, help/pix_write.pd, + help/pix_zoom.pd, help/polygon.pd, help/primTri.pd, + help/randF.pd, help/randomF.pd, help/rectangle.pd, + help/render_trigger.pd, help/rgb2hsv.pd, help/rotate.pd, + help/rotateXYZ.pd, help/scale.pd, help/scaleXYZ.pd, + help/separator.pd, help/shininess.pd, help/specular.pd, + help/specularRGB.pd, help/sphere.pd, help/spline_path.pd, + help/square.pd, help/teapot.pd, help/text2d.pd, help/text3d.pd, + help/textoutline.pd, help/translate.pd, help/translateXYZ.pd, + help/triangle.pd, help/tripleLine.pd, help/tripleRand.pd, + help/tv_biquad.pd, help/tv_movement.pd, help/tv_rtx.pd, + help/v+.pd, help/v-.pd, help/vector+.pd, help/vector-.pd, + help/world_light.pd, manual/Advanced.html, manual/BasicObj.html, + manual/GemFaq.html, manual/GemWPd.html, manual/Gloss.html, + manual/Images.html, manual/Input.html, manual/Intro.html, + manual/Lighting.html, manual/ListObjects.html, + manual/Particles.html, manual/Pixes.html, manual/Texture.html, + manual/Utility.html, manual/WriteCode.html, manual/add.jpg, + manual/addResult.jpg, manual/gemwin.jpg, manual/index.html, + manual/invert.jpg, manual/invertFrac.jpg, manual/light.jpg, + manual/maskResult.jpg, manual/pixImage.jpg, manual/redSquare.jpg, + manual/sphere15.jpg, manual/sphere5.jpg, manual/transXYZ.jpg, + manual/tribar.gif, manual/tripleLine.jpg, manual/tripleRand.jpg, + src/TV/tv_biquad.cpp, src/TV/tv_movement.cpp, + src/TV/tv_movement.h, src/TV/tv_rtx.cpp, src/TV/tv_rtx.h, + src/TV/tv_test.cpp, src/TV/tv_test.h, examples/08.io/01.Mouse.pd, + examples/08.io/02.Tablet.pd, examples/08.io/03.Orb.pd, + examples/08.io/04.UseOrb.pd, examples/data/alea.mpg, + examples/data/valmotion.tab, manual/basicCube.jpg, + manual/counter.jpg, manual/mask.jpg, manual/normalFrac.jpg, + manual/texture.jpg, manual/world_light.jpg, + examples/data/cour.ttf, examples/data/dancer.JPG, + examples/data/times.ttf, examples/data/valcolor.tab, + examples/data/venus.mtl, examples/data/homer.avi, + examples/data/temp2.JPG, examples/data/arial.ttf, + examples/data/fractal.JPG, examples/data/fractalAlpha.TIF, + examples/data/temp0.JPG, examples/data/temp1.JPG, + examples/01.basic/01.redSquare.pd, + examples/01.basic/02.blueRectangle.pd, + examples/01.basic/03.disk.pd, examples/01.basic/04.PrimTri.pd, + examples/01.basic/05.cube.pd, examples/01.basic/06.sphere.pd, + examples/01.basic/07.cylinder.pd, examples/01.basic/08.model.pd, + examples/01.basic/09.yelloTeapot.pd, + examples/02.advanced/01.Separator.pd, + examples/02.advanced/02.Ortho.pd, + examples/02.advanced/03.View.pd, examples/02.advanced/04.Fog.pd, + examples/02.advanced/05.Stereo.pd, + examples/02.advanced/06.StereoParticle.pd, + examples/02.advanced/07.Snapshot1.pd, + examples/02.advanced/08.Snapshot2.pd, + examples/02.advanced/10.LinearPath.pd, + examples/02.advanced/11.SplinePath.pd, + examples/02.advanced/12.Hsv.pd, + examples/02.advanced/13.ModelRescale.pd, + examples/03.lighting/01.world_light.pd, + examples/03.lighting/02.light.pd, + examples/03.lighting/03.controlLights.pd, + examples/03.lighting/04.moveSpheres.pd, + examples/03.lighting/05.materials.pd, + examples/04.pix/01.image.pd, examples/04.pix/02.multiimage.pd, + examples/04.pix/04.ImageInPlace.pd, examples/04.pix/05.film.pd, + examples/04.pix/05.movie.pd, examples/04.pix/06.PixRect.pd, + examples/04.pix/10.PixDataSimple.pd, + examples/04.pix/11.PixDataComplex.pd, + examples/04.pix/12.composite.pd, + examples/04.pix/12.pix_multiply.pd, + examples/04.pix/13.maskDancer.pd, + examples/04.pix/15.pix_alpha.pd, examples/04.pix/16.alphaGrey.pd, + examples/04.pix/17.pix_gain.pd, + examples/04.pix/19.colorMatrix.pd, + examples/04.pix/20.convolve.pd, + examples/04.video/01.VideoPaint.pd, + examples/04.video/02.VideoSphere.pd, + examples/05.text/03.ChangeText.pd, + examples/06.particle/01.simple.pd, + examples/06.particle/02.fountain.pd, + examples/06.particle/03.orbit.pd, + examples/06.particle/04.combo.pd, + examples/06.particle/05.twoSrc.pd, + examples/06.particle/06.target.pd, + examples/07.texture/01.texture.pd, + examples/07.texture/02.TexCoord.pd, + examples/07.texture/04.moveImages.pd, + examples/99.games/puzzle.pd, examples/data/anim-1.mov, + examples/05.text/01.Text.pd, examples/05.text/arial.ttf: initial + CVS release (0.87) + diff --git a/Gem/GEMglBegin-help.pd b/Gem/GEMglBegin-help.pd new file mode 100644 index 0000000..b2e875d --- /dev/null +++ b/Gem/GEMglBegin-help.pd @@ -0,0 +1,14 @@ +#N canvas 144 70 497 292 10; +#X text 21 22 GEMglBegin - delimit the vertices of a primitive or a +group of like primitives; +#X text 21 61 C Specification: void glBegin( GLenum mode ); +#X text 21 91 Parameters; +#X text 42 115 mode; +#X text 77 116 Specifies the primitive or primitives that will be created +from vertices presented between glBegin and the subsequent glEnd. Ten +symbolic constants are accepted: GL_POINTS \, GL_LINES \, GL_LINE_STRIP +\, GL_LINE_LOOP \, GL_TRIANGLES \, GL_TRIANGLE_STRIP \, GL_TRIANGLE_FAN +\, GL_QUADS \, GL_QUAD_STRIP \, and GL_POLYGON.; +#X text 71 244 http://www.glprogramming.com/blue/ch05.html#id5450783 +; +#X text 22 228 OpenGL Reference page:; diff --git a/Gem/GLdefine-help.pd b/Gem/GLdefine-help.pd new file mode 100644 index 0000000..e64cc25 --- /dev/null +++ b/Gem/GLdefine-help.pd @@ -0,0 +1,65 @@ +#N canvas 78 37 701 310 10; +#X obj 519 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 584 234 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 589 273 pd gemwin; +#X msg 589 254 create; +#X text 585 233 Create window:; +#X text 525 29 Example:; +#X obj 7 65 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 11 217 Inlets:; +#X obj 8 176 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 452 8 GEM object; +#X text 11 266 Outlets:; +#X obj 522 71 cnv 15 150 140 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 530 192 GEMglBegin; +#X obj 534 77 loadbang; +#X text 54 30 Class: GEMgl object; +#X text 33 14 Synopsis: [GLdefine]; +#X text 15 88 Send an OpenGL configuration constant to a GEMglBegin +to set up the OpenGL environment. These constants are defined in GL/gl.h +in the OpenGL C++ code.; +#X floatatom 584 167 5 0 0 0 - - -; +#X text 29 229 Inlet 1: bang; +#X text 23 279 Outlet 1: float; +#X text 14 137 for more \, see: http://www.glprogramming.com/blue/ch04.html +; +#X text 7 69 Description: gets the value of a OpenGL constant; +#X text 29 245 Inlet 1: message - the name of the constant; +#X text 17 175 Arguments:; +#X text 29 189 the name of a OpenGL constant (e.g. GL_LINES or GL_POLYGON) +; +#X msg 542 98 GL_LINES; +#X obj 534 142 GLdefine GL_ADD; +#X msg 553 119 symbol GL_ACCUM; +#X connect 2 0 3 0; +#X connect 3 0 2 0; +#X connect 14 0 27 0; +#X connect 26 0 27 0; +#X connect 27 0 13 1; +#X connect 27 0 18 0; +#X connect 28 0 27 0; diff --git a/Gem/Gem-meta.pd b/Gem/Gem-meta.pd new file mode 100644 index 0000000..5bc845c --- /dev/null +++ b/Gem/Gem-meta.pd @@ -0,0 +1,10 @@ +#N canvas 1 51 320 90 10; +#N canvas 1 51 382 134 META 1; +#X text 10 10 NAME Gem; +#X text 10 30 VERSION 0.93; +#X text 10 50 DESCRIPTION Graphics Environment for Multimedia; +#X text 10 70 AUTHOR IOhannes m zmölnig & the Gem development team +; +#X text 10 90 LICENSE GPL-2+; +#X restore 43 36 pd META; +#X text 39 15 Gem: Graphics Environment for Multimedia; diff --git a/Gem/Gem.la b/Gem/Gem.la new file mode 100755 index 0000000..2e31d07 --- /dev/null +++ b/Gem/Gem.la @@ -0,0 +1,41 @@ +# Gem.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='Gem.pd_darwin' + +# Names of this library. +library_names='Gem.pd_darwin Gem.pd_darwin' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' -pthread' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L/usr/local/Cellar/fribidi/0.19.6/lib -lfribidi -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for Gem. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/' diff --git a/Gem/Gem.pd_darwin b/Gem/Gem.pd_darwin new file mode 100755 index 0000000..c67d553 Binary files /dev/null and b/Gem/Gem.pd_darwin differ diff --git a/Gem/GemPrimer.pdf b/Gem/GemPrimer.pdf new file mode 100644 index 0000000..69a5043 Binary files /dev/null and b/Gem/GemPrimer.pdf differ diff --git a/Gem/GnuGPL.LICENSE.txt b/Gem/GnuGPL.LICENSE.txt new file mode 100644 index 0000000..fa0bef4 --- /dev/null +++ b/Gem/GnuGPL.LICENSE.txt @@ -0,0 +1,290 @@ +GNU GENERAL PUBLIC LICENSE + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom +to share and change it. By contrast, the GNU General Public License is +intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This General +Public License applies to most of the Free Software Foundation's +software and to any other program whose authors commit to using it. +(Some other Free Software Foundation software is covered by the +GNU Library General Public License instead.) You can apply it to your +programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone +to deny you these rights or to ask you to surrender the rights. These +restrictions translate to certain responsibilities for you if you distribute +copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis +or for a fee, you must give the recipients all the rights that you have. You +must make sure that they, too, receive or can get the source code. And +you must show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, +we want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +Finally, any free program is threatened constantly by software patents. +We wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program +proprietary. To prevent this, we have made it clear that any patent must +be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and +modification follow. + +TERMS AND CONDITIONS FOR +COPYING, DISTRIBUTION AND +MODIFICATION + +0. This License applies to any program or other work which contains a +notice placed by the copyright holder saying it may be distributed under +the terms of this General Public License. The "Program", below, refers +to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, either +verbatim or with modifications and/or translated into another language. +(Hereinafter, translation is included without limitation in the term +"modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of running +the Program is not restricted, and the output from the Program is +covered only if its contents constitute a work based on the Program +(independent of having been made by running the Program). Whether +that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the notices +that refer to this License and to the absence of any warranty; and give +any other recipients of the Program a copy of this License along with the +Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, and +can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based on +the Program, the distribution of the whole must be on the terms of this +License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based +on the Program. + +In addition, mere aggregation of another work not based on the +Program with the Program (or with a work based on the Program) on a +volume of a storage or distribution medium does not bring the other +work under the scope of this License. + +3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding + machine-readable source code, which must be distributed under + the terms of Sections 1 and 2 above on a medium customarily + used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your cost + of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a + medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with + such an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to control +compilation and installation of the executable. However, as a special +exception, the source code distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies the +executable. + +If distribution of executable or object code is made by offering access to +copy from a designated place, then offering equivalent access to copy +the source code from the same place counts as distribution of the source +code, even though third parties are not compelled to copy the source +along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt otherwise +to copy, modify, sublicense or distribute the Program is void, and will +automatically terminate your rights under this License. However, parties +who have received copies, or rights, from you under this License will not +have their licenses terminated so long as such parties remain in full +compliance. + +5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and all +its terms and conditions for copying, distributing or modifying the +Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these terms +and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. You are not responsible +for enforcing compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot distribute +so as to satisfy simultaneously your obligations under this License and +any other pertinent obligations, then as a consequence you may not +distribute the Program at all. For example, if a patent license would not +permit royalty-free redistribution of the Program by all those who +receive copies directly or indirectly through you, then the only way you +could satisfy both it and this License would be to refrain entirely from +distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents +or other property right claims or to contest validity of any such claims; +this section has the sole purpose of protecting the integrity of the free +software distribution system, which is implemented by public license +practices. Many people have made generous contributions to the wide +range of software distributed through that system in reliance on +consistent application of that system; it is up to the author/donor to +decide if he or she is willing to distribute software through any other +system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be +a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an +explicit geographical distribution limitation excluding those countries, so +that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new +versions of the General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number +of this License, you may choose any version ever published by the Free +Software Foundation. + +10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we +sometimes make exceptions for this. Our decision will be guided by the +two goals of preserving the free status of all derivatives of our free +software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF +CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, +TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT +WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD +THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE +COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW +OR AGREED TO IN WRITING WILL ANY COPYRIGHT +HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED +ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING +ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT +LIMITED TO LOSS OF DATA OR DATA BEING RENDERED +INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE +WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR +OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY +OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS diff --git a/Gem/LICENSE.txt b/Gem/LICENSE.txt new file mode 100644 index 0000000..ad1cd50 --- /dev/null +++ b/Gem/LICENSE.txt @@ -0,0 +1,27 @@ +pix_hit : hit-test over user defined hit_areads... +Copyright (c) 2005 Davide Morelli +Copyright (c) 2005-2012 IOhannes m zmölnig + +based on: + GEM - Graphics Environment for Multimedia + Copyright (C) 1997-2000 Mark Danks, Günter Geiger, + Copyright (c) 2001-2012 IOhannes m zmölnig + Copyright (c) 2003-2007 James Tittle II, + Copyright (c) 2003-2008 Chris Clepper et al. + +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 2 +of the License, or (at your option) any later version. + +This program 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 . + +In the official GEM distribution, the GNU General Public License is +in the file GnuGPL.LICENSE + diff --git a/Gem/README.txt b/Gem/README.txt new file mode 100644 index 0000000..dce05e9 --- /dev/null +++ b/Gem/README.txt @@ -0,0 +1,184 @@ +This is GEM - Graphics Environment for Multimedia +================================================= +You can get the current distribution from: +http://gem.iem.at +http://sourceforge.net/projects/pd-gem + +if you want to compile the newest (bleeding edge, and possibly unstable) source +code yourself, you can get a copy from the public git repository on sourceforge: + + read-only access: https://github.com/umlaeute/Gem.git + read-write access: ssh://git@github.com:umlaeute/Gem.git + +usually, you will only need the read-only repository, which you can get with + +$ git clone https://github.com/umlaeute/Gem.git + +============================================= +NEW::: +------ + +Gem is now supported by W32, linux and macOS-X +the IRIX version might work (but most probably will not): if you want to use Gem +under IRIX, feel free to make it work and report failure and success to me, so i +can incorporate any needed changes into the main Gem-trunk. + +for installation instructions see below + + +NEW (Gem>=0.87)::: +----------------- +(note: this NEWs only refer to the packaging, not to features of Gem) + +As with GEM-0.87, i have broken the distribution into various packages +Gem-.tgz :: quite everything (except binaries and auxiliary libraries) +Gem-doc-.tgz :: example-patches, manual, ... +Gem-bin-.zip :: W32-binary (containing a single file "Gem.dll") +Gem-bin-doc-.zip :: W32-binary + documentation + +GemLibs--.tgz :: auxiliary libraries (used to be "AuxLibs") + +1) the core Gem-packages: +the core Gem-packages all extract into the same directory Gem-/ +there are install-scripts for windoze (and probably IRIX) +these will install the documentation... + + +2) the GemLib-package: +Gem supports many 3rd party libraries, bundling all of them seems like a waste +of space and might impose legal issues. OTOH, it makes it much easier to setup +an environment to build Gem (esp. on systems that don't have package managers) +GemLibs is a small collections of libraries that can add some capabilities to +Gem, which it would lack otherwise (e.g. support for a given image format). It +is far from complete and most likely outdated, so usually you are better off, if +you just install any needed libraries manually. +Most of these libraries are only needed to build certain plugins. + +GemLibs have their own version numbering, starting with 1. +You can get the newest GemLib from the place mentioned above + + +------------------------------------- +------------------------------------- + +INSTALLATION: +============= + +------------------------------------- +To install GEM on linux/OSX/...: +run +$ ./configure +$ make +$ make install + +note that you might want to help Gem to find the Pd-headers, e.g. by doing +$ ./configure --with-pd=/usr/include/pd +try +$ ./configure --help to see more options + +------------------------------------- +To install GEM on W32: +a) installer (preferred method) + use the installer executable to install Gem into ...\pd\extra + (to _build_ the installer you will have to have NSIS installed + see build/win-nsis for details) + +b) archive (do it by hand) + + 1) unzip the GEM package + + 2) put the subfolders of Gem-\ into a directory where Pd will + find it. If you are using an up-to-date version of Pd (>=0.43), put them + into the folder "Application Data\Pd\" in your home directory. + For older versions of Pd, put them into the "extra" folder of your Pd + installation. + e.g. if you installed Pd as "C:\Program Files\Pd-0.43-0" you should + end up with: + "C:\Program Files\Pd-0.43-0\extra\Gem" + and eventually with + "C:\Program Files\Pd-0.43-0\extra\pix_drum" + "C:\Program Files\Pd-0.43-0\extra\pix_mano" + ... + + there is no need to copy the README.txt found in Gem-\ + + 3) please note that the archive comes with all plugins + in most cases, you won't need all of them, and having plugins + installed that you don't need, will considerably slow down load + time of patches and might leed to undesired side-effects. + therefore, if loading is too slow (or you experience weird + things), it might be a good idea to disable plugins you don't + need. + disabling plugins is as simple as deleting them (or moving them + into a subfolder) + + plugins are files of the form: "gem_.dll" + e.g. "gem_filmQT.dll" is a plugin for reading films using the + QuickTime framework. + in order to use videoPYLON, videoHALCON and videoAVT, you need + to install proprietary libraries yourself; if you haven't done + so or don't own a device that can interact with those libraries, + you can safely remove these plugins. + if you have no clue what this is about, these plugins are most + likely not for you (so remove them) + + + +------------------------------------- +------------------------------------- + +RUNNING: +======== + +just installing Gem is not enough ! +you will have to tell pd that it should load that library !! +you cannot create any Gem-objects without having loaded the Gem-library into pd !!! + +make sure you have the proper binary for you OS + - windows: Gem.dll, Gem.m_i386, Gem.m_* + - macOS-X: Gem.pd_darwin, Gem.d_fat, Gem.d_ppc, Gem.d_* + - linux : Gem.pd_linux, Gem.l_i386, Gem.l_ia64, Gem.l_* + - freeBSD: Gem.pd_freebsd, Gem.b_i386, Gem.b_* + - irix : Gem.pd_irix + - ... + +when starting pd, tell it to load Gem with the "-lib" flag +if your Gem-binary lives in pd/extra/, you could just try "pd -lib Gem" +if your Gem-binary lives somewhere else use something like "pd -lib /path/to/my/Gem" +you could also use "pd -path /path/to/my -lib Gem" +after loading Gem you will see a bit of a welcome message on the konsole + +NOTE: there *must not* be any file extension with the "-lib"-flag. + e.g. this will fail miserably: + "pd -lib Gem.dll" +NOTE: please note the spelling: it is "Gem" and not "gem" nor "GEM" + +if you have problems loading any library including Gem, have a look at the +pd-documentation. +if you have problems loading just Gem (but other libraries work), send me a +bug-report (see below) + +BUG-REPORTS: +============ +please do not hesitate to report any crashes, weirdnesses or other issues, using +the bugtracker at sourceforge: +http://sourceforge.net/projects/pd-gem/ +or the gem-dev mailinglist (subscription at http://lists.puredata.info) + +if your mail only says "hey, it does not work !", it is an annoyance and no bug-report +please specify at least the following things: + Operating-System (kernel-version,...) + video-card, driver + other hardware that is related to your problem (e.g.: camera) + does your system work with similar applications (e.g.: capture-software, + openGL (games, "glxgears") + what is the output of pd when you start it with the "-verbose" flag + (e.g.:"pd -verbose -lib Gem") + +please do not use the puredata bugtracker for reporting Gem-specific bugs. + +---- +have fun + +zmoelnig@iem.at + diff --git a/Gem/accumrotate-help.pd b/Gem/accumrotate-help.pd new file mode 100644 index 0000000..a040c5f --- /dev/null +++ b/Gem/accumrotate-help.pd @@ -0,0 +1,75 @@ +#N canvas 57 47 634 374 10; +#X text 452 8 GEM object; +#X text 50 12 Synopsis: [accumrotate]; +#X obj 8 197 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 63 225 Inlet 1: message: reset; +#X text 64 254 Inlet 3: float: delta-rotation around Y-axis (in deg) +; +#X text 64 242 Inlet 2: float: delta-rotation around X-axis (in deg) +; +#X text 64 266 Inlet 4: float: delta-rotation around Z-axis (in deg) +; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 282 Outlets:; +#X text 57 295 Outlet 1: gemlist; +#X obj 8 156 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X text 63 166 initial rotations around X \, Y \, Z-axes; +#X obj 8 76 cnv 15 430 70 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 42 95 [accumrotate] accepts a gemList and changes the current +transformation matrix by the specified delta-rotation; +#X text 41 130 the delta-values add to the current rotation-matrix. +; +#X text 29 77 Description: accumulated rotation; +#X obj 449 77 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 514 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 293 pd gemwin; +#X msg 519 274 create; +#X text 515 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 158 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X obj 451 233 square; +#X msg 478 108 reset; +#X msg 531 163 10; +#X text 490 139 click repeatedly; +#X obj 451 186 accumrotate 45 0 0; +#X msg 491 163 5; +#X msg 572 163 15; +#X text 34 335 see also:; +#X obj 143 337 rotateXYZ; +#X obj 95 337 rotate; +#X connect 21 0 22 0; +#X connect 22 0 21 0; +#X connect 26 0 31 0; +#X connect 28 0 31 0; +#X connect 29 0 31 2; +#X connect 31 0 27 0; +#X connect 32 0 31 1; +#X connect 33 0 31 3; diff --git a/Gem/all.trees b/Gem/all.trees new file mode 100644 index 0000000..83c6d23 --- /dev/null +++ b/Gem/all.trees @@ -0,0 +1,90 @@ +0122222212212121111 +0122212221222121111 +0122212221221221111 +0122212221212121111 +0122222212221211111 +0122221221221221111 +0122212212212211111 +0122221222122121111 +0122222222212111111 +0122221221212121111 +0122222122221211111 +0122221222122211111 +0122222222222121111 +0122221212121211111 +0122222121212121111 +0122222121212111111 +0122212212212121111 +0122222212222211111 +0122222212212211111 +0122221222121211111 +0122222221221221111 +0122222122222121111 +0122222222212211111 +0122212212121211111 +0122222212222121111 +0122122122121211111 +0122222212121211111 +0122222222122211111 +0122221221221211111 +0122222222222211111 +0122222122212111111 +0122212221212111111 +0122222122122111111 +0122212121212121111 +0122222221212111111 +0122222221221211111 +0122222212222111111 +0122222221222211111 +0122212212212111111 +0122222212221221111 +0122221222122111111 +0122222222122121111 +0122221222212111111 +0122222222122111111 +0122222222222221111 +0122222122212121111 +0122222122122121111 +0122222222121211111 +0122212221221211111 +0121212121212121111 +0122222222212221111 +0122222222221211111 +0122222222121111111 +0122222221222221111 +0122222222222111111 +0122222212212111111 +0122222212222221111 +0122222221212121111 +0122221222212211111 +0122121212121211111 +0122222221222121111 +0122222221222111111 +0122222122221221111 +0122122122122111111 +0122221222212121111 +0122222122212221111 +0122222122212211111 +0122222222221221111 +0122221221221111111 +0122212121212111111 +0122221222212221111 +0122212221221111111 +0122222222122221111 +0122221212121111111 +0122122121212121111 +0121212121212111111 +0122212221222111111 +0122222222221111111 +0122221221212111111 +0122222222212121111 +0122222212221111111 +0122221222211111111 +0122122122122121111 +0122221222121111111 +0122222122121211111 +0122222122211111111 +0122222221221111111 +0122222122222111111 +0122122121212111111 +0122222212211111111 diff --git a/Gem/alpha-help.pd b/Gem/alpha-help.pd new file mode 100644 index 0000000..930dcf9 --- /dev/null +++ b/Gem/alpha-help.pd @@ -0,0 +1,109 @@ +#N canvas 50 237 711 539 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 330 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 37 195 Inlets:; +#X text 453 355 Outlets:; +#X text 461 366 Outlet 1: gemlist; +#X obj 8 161 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 160 Arguments:; +#X obj 8 76 cnv 15 430 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 250 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 584 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 50 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 589 293 pd gemwin; +#X msg 589 274 create; +#X text 585 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 451 197 cnv 15 80 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 579 186 color 1 0 0 0.5; +#X text 60 219 Inlet 1: float: turn alpha blending on/off; +#X text 50 12 Synopsis: [alpha]; +#X text 29 77 Description: enable alpha blending; +#X obj 458 310 square; +#X obj 458 233 alpha; +#X obj 458 108 color 0 1 0 0.5; +#X text 61 208 Inlet 1: gemlist; +#X text 60 231 Inlet 1: message "auto 1" | "auto 0" turn on/off automatic +depth detection; +#X floatatom 583 139 5 0 0 0 - - -; +#X obj 458 86 gemhead 51; +#X obj 579 211 sphere; +#X obj 458 137 rotate 114 0 1 0; +#X obj 579 162 gemhead 50; +#X msg 474 176 auto \$1; +#X obj 474 158 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X msg 583 108 0 1 0 \$1; +#X floatatom 583 88 5 0 1 0 - - -; +#X obj 628 88 hsl 64 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X text 22 91 [alpha] turns on and off alpha blending. Be aware that +the rendering order matters \, so you probably want to set the gemhead +order number high so that the object is rendered after all of the non-alpha +blended ones.; +#X text 63 171 float : blending function (default: GL_ONE_MINUS_SRC_ALPHA) +; +#X text 60 260 Inlet 2: float: blending function; +#X text 70 272 0=GL_ONE_MINUS_SOURCE_ALPHA; +#X text 70 282 1=GL_ONE; +#X text 70 294 2=GL_ZERO; +#X text 70 306 3=GL_SRC_COLOR; +#X text 70 318 4=GL_ONE_MINUS_SRC_COLOR; +#X text 70 330 5=GL_DST_COLOR; +#X text 70 342 6=GL_ONE_MINUS_DST_COLOR; +#X text 70 354 7=GL_SRC_ALPHA; +#X text 70 366 8=GL_ONE_MINUS_SRC_ALPHA; +#X text 70 378 9=GL_DST_ALPHA; +#X text 70 390 10=GL_ONE_MINUS_DST_ALPHA; +#X text 70 402 11=GL_CONSTANT_COLOR; +#X text 70 414 12=GL_ONE_MINUS_CONSTANT_COLOR; +#X text 70 426 13=GL_CONSTANT_ALPHA; +#X text 70 438 14=GL_ONE_MINUS_CONSTANT_ALPHA; +#X text 70 450 15=GL_SRC_ALPHA_SATURATE; +#X text 70 462 16=GL_SRC1_COLOR; +#X text 70 474 17=GL_ONE_MINUS_SRC1_COLOR; +#X text 70 486 18=GL_SRC1_ALPHA; +#X text 70 498 19=GL_ONE_MINUS_SRC1_ALPHA; +#X obj 477 210 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 501 210 2 0 19 0 - - -; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 16 0 27 0; +#X connect 21 0 20 0; +#X connect 22 0 28 0; +#X connect 25 0 28 1; +#X connect 26 0 22 0; +#X connect 28 0 21 0; +#X connect 29 0 16 0; +#X connect 30 0 21 0; +#X connect 31 0 30 0; +#X connect 32 0 22 1; +#X connect 33 0 32 0; +#X connect 34 0 33 0; +#X connect 58 0 21 0; +#X connect 59 0 21 1; diff --git a/Gem/ambient-help.pd b/Gem/ambient-help.pd new file mode 100644 index 0000000..b57f8b6 --- /dev/null +++ b/Gem/ambient-help.pd @@ -0,0 +1,68 @@ +#N canvas 260 145 639 369 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 252 Outlets:; +#X text 57 265 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 514 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 293 pd gemwin; +#X msg 519 274 create; +#X text 515 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X text 29 77 Description: ambient colouring; +#X obj 451 193 cube; +#X obj 500 192 gemhead; +#X obj 500 230 world_light; +#X obj 500 211 rotate 180 1 0 0; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 60 171 defaults: 0.2 0.2 0.2 1; +#X text 22 91 [ambient] accepts a gemList and sets the ambient-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X text 50 12 Synopsis: [ambient]; +#X obj 451 156 ambient 0 1 0; +#X msg 478 130 0.4 0.8 1; +#X text 63 229 Inlet 2: list: 3(RGB) or 4(RGBA) float values; +#X floatatom 549 193 5 0 0 0 - - -; +#X obj 84 332 ambientRGB; +#X text 21 332 see also:; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 27 0; +#X connect 20 0 22 0; +#X connect 22 0 21 0; +#X connect 27 0 19 0; +#X connect 28 0 27 1; +#X connect 30 0 22 1; diff --git a/Gem/ambientRGB-help.pd b/Gem/ambientRGB-help.pd new file mode 100644 index 0000000..128ad0f --- /dev/null +++ b/Gem/ambientRGB-help.pd @@ -0,0 +1,77 @@ +#N canvas 4 49 641 366 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 292 Outlets:; +#X text 57 305 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 514 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 293 pd gemwin; +#X msg 519 274 create; +#X text 515 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X text 29 77 Description: ambient colouring; +#X obj 451 193 cube; +#X obj 500 192 gemhead; +#X obj 500 230 world_light; +#X text 50 12 Synopsis: [ambientRGB]; +#X text 22 91 [ambientRGB] accepts a gemList and sets the ambient-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 60 171 defaults: 0.2 0.2 0.2 1; +#X text 63 229 Inlet 2: float: red value; +#X text 63 244 Inlet 3: float: green value; +#X text 63 259 Inlet 4: float: blue value; +#X text 63 274 Inlet 5: float: alpha value; +#X obj 451 156 ambientRGB 0 1 0; +#X floatatom 477 122 3 0 1 0 - - -; +#X floatatom 504 122 3 0 1 0 - - -; +#X floatatom 531 122 3 0 1 0 - - -; +#X floatatom 558 122 3 0 1 0 - - -; +#X floatatom 548 192 5 0 0 0 - - -; +#X obj 500 211 rotate 70 1 0 0; +#X text 20 333 see also:; +#X obj 93 332 ambient; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 30 0; +#X connect 20 0 36 0; +#X connect 30 0 19 0; +#X connect 31 0 30 1; +#X connect 32 0 30 2; +#X connect 33 0 30 3; +#X connect 34 0 30 4; +#X connect 35 0 36 1; +#X connect 36 0 21 0; diff --git a/Gem/cMatrix.html b/Gem/cMatrix.html new file mode 100644 index 0000000..fe4cd04 --- /dev/null +++ b/Gem/cMatrix.html @@ -0,0 +1,270 @@ + + +Matrix Operations for Image Processing + + +
+

Matrix Operations for Image Processing

+

Paul Haeberli

+

Nov 1993

+Horiz Bar +

Introduction

+

+Four by four matrices are commonly used to transform geometry for 3D +rendering. These matrices may also be used to transform RGB colors, to scale +RGB colors, and to control hue, saturation and contrast. The most important +advantage of using matrices is that any number of color transformations +can be composed using standard matrix multiplication. +

+Please note that for these operations to be correct, we really must operate +on linear brightness values. If the input image is in a non-linear brightness +space RGB colors must be transformed into a linear space before these +matrix operations are used. + +

Color Transformation

+RGB colors are transformed by a four by four matrix as shown here: + +
+    xformrgb(mat,r,g,b,tr,tg,tb)
+    float mat[4][4];
+    float r,g,b;
+    float *tr,*tg,*tb;
+    {
+        *tr = r*mat[0][0] + g*mat[1][0] +
+		    b*mat[2][0] + mat[3][0];
+        *tg = r*mat[0][1] + g*mat[1][1] +
+		    b*mat[2][1] + mat[3][1];
+        *tb = r*mat[0][2] + g*mat[1][2] +
+		    b*mat[2][2] + mat[3][2];
+    }
+
+ +

The Identity

+This is the identity matrix: +
+    float mat[4][4] = {
+        1.0,    0.0,    0.0,    0.0,
+        0.0,    1.0,    0.0,    0.0,
+        0.0,    0.0,    1.0,    0.0,
+        0.0,    0.0,    0.0,    1.0,
+    };
+
+Transforming colors by the identity matrix will leave them unchanged. + +

Changing Brightness

+To scale RGB colors a matrix like this is used: +
+    float mat[4][4] = {
+        rscale, 0.0,    0.0,    0.0,
+        0.0,    gscale, 0.0,    0.0,
+        0.0,    0.0,    bscale, 0.0,
+        0.0,    0.0,    0.0,    1.0,
+    };
+
+Where rscale, gscale, and bscale specify how much to scale the r, g, and b +components of colors. This can be used to alter the color balance of an image. +

+In effect, this calculates: +

+	tr = r*rscale;
+	tg = g*gscale;
+	tb = b*bscale;
+
+ +

Modifying Saturation

+ + +

Converting to Luminance

+To convert a color image into a black and white image, this matrix is used: +
+    float mat[4][4] = {
+        rwgt,   rwgt,   rwgt,   0.0,
+        gwgt,   gwgt,   gwgt,   0.0,
+        bwgt,   bwgt,   bwgt,   0.0,
+        0.0,    0.0,    0.0,    1.0,
+    };
+
+Where rwgt is 0.3086, gwgt is 0.6094, and bwgt is 0.0820. This is the +luminance vector. Notice here that we do not use the standard NTSC weights +of 0.299, 0.587, and 0.114. The NTSC weights are only applicable to RGB +colors in a gamma 2.2 color space. For linear RGB colors the values above +are better. +

+In effect, this calculates: +

+	tr = r*rwgt + g*gwgt + b*bwgt;
+	tg = r*rwgt + g*gwgt + b*bwgt;
+	tb = r*rwgt + g*gwgt + b*bwgt;
+
+ +

Modifying Saturation

+ +To saturate RGB colors, this matrix is used: + +
+     float mat[4][4] = {
+        a,      b,      c,      0.0,
+        d,      e,      f,      0.0,
+        g,      h,      i,      0.0,
+        0.0,    0.0,    0.0,    1.0,
+    };
+
+Where the constants are derived from the saturation value s +as shown below: + +
+    a = (1.0-s)*rwgt + s;
+    b = (1.0-s)*rwgt;
+    c = (1.0-s)*rwgt;
+    d = (1.0-s)*gwgt;
+    e = (1.0-s)*gwgt + s;
+    f = (1.0-s)*gwgt;
+    g = (1.0-s)*bwgt;
+    h = (1.0-s)*bwgt;
+    i = (1.0-s)*bwgt + s;
+
+One nice property of this saturation matrix is that the luminance +of input RGB colors is maintained. This matrix can also be used +to complement the colors in an image by specifying a saturation +value of -1.0. +

+Notice that when s is set to 0.0, the matrix is exactly +the "convert to luminance" matrix described above. When s +is set to 1.0 the matrix becomes the identity. All saturation matrices +can be derived by interpolating between or extrapolating beyond these +two matrices. +

+This is discussed in more detail in the note on +Image Processing By Interpolation and Extrapolation. +

Applying Offsets to Color Components

+To offset the r, g, and b components of colors in an image this matrix is used: +
+    float mat[4][4] = {
+        1.0,    0.0,    0.0,    0.0,
+        0.0,    1.0,    0.0,    0.0,
+        0.0,    0.0,    1.0,    0.0,
+        roffset,goffset,boffset,1.0,
+    };
+
+This can be used along with color scaling to alter the contrast of RGB +images. + +

Simple Hue Rotation

+To rotate the hue, we perform a 3D rotation of RGB colors about the diagonal +vector [1.0 1.0 1.0]. The transformation matrix is derived as shown here: +

+ If we have functions:

+

+
identmat(mat) +
that creates an identity matrix. +
+
+
xrotatemat(mat,rsin,rcos) +
that multiplies a matrix that rotates about the x (red) axis. +
+
+
yrotatemat(mat,rsin,rcos) +
that multiplies a matrix that rotates about the y (green) axis. +
+
+
zrotatemat(mat,rsin,rcos) +
that multiplies a matrix that rotates about the z (blue) axis. +
+Then a matrix that rotates about the 1.0,1.0,1.0 diagonal can be +constructed like this: +
+First we make an identity matrix +
+    identmat(mat);
+
+Rotate the grey vector into positive Z +
+    mag = sqrt(2.0);
+    xrs = 1.0/mag;
+    xrc = 1.0/mag;
+    xrotatemat(mat,xrs,xrc);
+
+    mag = sqrt(3.0);
+    yrs = -1.0/mag;
+    yrc = sqrt(2.0)/mag;
+    yrotatemat(mat,yrs,yrc);
+
+Rotate the hue +
+    zrs = sin(rot*PI/180.0);
+    zrc = cos(rot*PI/180.0);
+    zrotatemat(mat,zrs,zrc);
+
+Rotate the grey vector back into place +
+    yrotatemat(mat,-yrs,yrc);
+    xrotatemat(mat,-xrs,xrc);
+
+The resulting matrix will rotate the hue of the input RGB colors. A rotation +of 120.0 degrees will exactly map Red into Green, Green into Blue and +Blue into Red. This transformation has one problem, however, the luminance +of the input colors is not preserved. This can be fixed with the following +refinement: + +

Hue Rotation While Preserving Luminance

+ +We make an identity matrix +
+   identmat(mmat);
+
+Rotate the grey vector into positive Z +
+    mag = sqrt(2.0);
+    xrs = 1.0/mag;
+    xrc = 1.0/mag;
+    xrotatemat(mmat,xrs,xrc);
+    mag = sqrt(3.0);
+    yrs = -1.0/mag;
+    yrc = sqrt(2.0)/mag;
+    yrotatemat(mmat,yrs,yrc);
+    matrixmult(mmat,mat,mat);
+
+Shear the space to make the luminance plane horizontal +
+    xformrgb(mmat,rwgt,gwgt,bwgt,&lx,&ly,&lz);
+    zsx = lx/lz;
+    zsy = ly/lz;
+    zshearmat(mat,zsx,zsy);
+
+Rotate the hue +
+    zrs = sin(rot*PI/180.0);
+    zrc = cos(rot*PI/180.0);
+    zrotatemat(mat,zrs,zrc);
+
+Unshear the space to put the luminance plane back +
+    zshearmat(mat,-zsx,-zsy);
+
+Rotate the grey vector back into place +
+    yrotatemat(mat,-yrs,yrc);
+    xrotatemat(mat,-xrs,xrc);
+
+

Conclusion

+I've presented several matrix transformations that may be applied +to RGB colors. Each color transformation is represented by +a 4 by 4 matrix, similar to matrices commonly used to transform 3D geometry. +

+Example C code +that demonstrates these concepts is provided for your enjoyment. +

+These transformations allow us to adjust image contrast, brightness, hue and +saturation individually. In addition, color matrix transformations concatenate +in a way similar to geometric transformations. Any sequence of +operations can be combined into a single matrix using +matrix multiplication. +

+

+ +
+
+
+ + + diff --git a/Gem/camera-help.pd b/Gem/camera-help.pd new file mode 100644 index 0000000..9b0d5f8 --- /dev/null +++ b/Gem/camera-help.pd @@ -0,0 +1,81 @@ +#N canvas 0 22 630 494 10; +#X obj 179 157 camera; +#X obj 179 45 gemhead; +#X obj 162 82 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 185 63 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 234 108 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 260 86 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 234 124 left \$1; +#X msg 260 102 right \$1; +#X obj 75 120 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 101 98 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 101 114 up \$1; +#X msg 75 136 down \$1; +#X msg 267 58 reset; +#X msg 185 80 forward \$1; +#X msg 162 98 reverse \$1; +#X msg 66 252 speed \$1; +#X floatatom 66 234 5 0 0 0 - - -; +#X floatatom 67 195 5 0 0 0 - - -; +#X msg 379 150 lookX \$1; +#X msg 379 187 lookY \$1; +#X msg 379 223 lookZ \$1; +#X floatatom 379 134 5 0 0 0 - - -; +#X floatatom 379 207 5 0 0 0 - - -; +#X floatatom 379 170 5 0 0 0 - - -; +#X msg 67 213 distance \$1; +#X obj 170 305 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 175 344 pd gemwin; +#X msg 175 325 create; +#X text 171 304 Create window:; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 3 0 13 0; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 0 0; +#X connect 11 0 0 0; +#X connect 12 0 0 0; +#X connect 13 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 0 0; +#X connect 16 0 15 0; +#X connect 17 0 24 0; +#X connect 18 0 0 0; +#X connect 19 0 0 0; +#X connect 20 0 0 0; +#X connect 21 0 18 0; +#X connect 22 0 20 0; +#X connect 23 0 19 0; +#X connect 24 0 0 0; +#X connect 26 0 27 0; +#X connect 27 0 26 0; diff --git a/Gem/circle-help.pd b/Gem/circle-help.pd new file mode 100644 index 0000000..b8370dd --- /dev/null +++ b/Gem/circle-help.pd @@ -0,0 +1,65 @@ +#N canvas 291 154 710 345 10; +#X text 33 14 Synopsis: [circle]; +#X text 54 30 Class: geometric object; +#X text 525 29 Example:; +#X obj 7 65 cnv 15 450 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 7 69 Description: Renders a circle.; +#X text 16 86 The circle object renders a circle flat disc at the current +position with current color. The look of the circle can be changed +with the draw message \, its size can be changed via the second inlet. +; +#X obj 8 216 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 166 cnv 15 450 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 165 Arguments:; +#X text 27 261 Inlet 2: float: size; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 280 Outlets:; +#X text 21 293 Outlet 1: gemlist; +#X text 63 177 size of the circle; +#X obj 519 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 584 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 589 263 pd gemwin; +#X msg 589 244 create; +#X text 585 223 Create window:; +#X obj 525 80 cnv 15 150 100 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 593 159 circle; +#X msg 535 95 draw line; +#X msg 535 116 draw fill; +#X msg 535 138 draw point; +#X obj 593 54 gemhead; +#X floatatom 626 130 5 0 0 2 size - -; +#X text 64 191 default: 1; +#X text 27 247 Inlet 1: message: draw [line|fill|point|default]; +#X connect 18 0 19 0; +#X connect 19 0 18 0; +#X connect 23 0 22 0; +#X connect 24 0 22 0; +#X connect 25 0 22 0; +#X connect 26 0 22 0; +#X connect 27 0 22 1; diff --git a/Gem/color-help.pd b/Gem/color-help.pd new file mode 100644 index 0000000..b797ca4 --- /dev/null +++ b/Gem/color-help.pd @@ -0,0 +1,62 @@ +#N canvas 48 102 639 342 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 292 Outlets:; +#X text 57 305 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 66 cnv 15 430 70 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 66 cnv 15 170 200 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 49 Example:; +#X obj 510 183 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 515 222 pd gemwin; +#X msg 515 203 create; +#X text 511 182 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 107 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 73 gemhead; +#X obj 451 182 cube; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 60 171 defaults: 0 0 0 1; +#X obj 451 145 color 0 1 0; +#X msg 487 116 0 0 1; +#X text 63 229 Inlet 2: list: 3(RGB) or 4(RGBA) float values; +#X text 22 81 [color] sets the colour of all subsequent shape and vertex +operations until reset by another [color]/[colorRGB] object. If you +set the alpha-value \, you will need an [alpha] object to enable alpha-blending +; +#X text 50 12 Synopsis: [color]; +#X text 29 67 Description: colouring; +#X text 449 272 see also:; +#X obj 452 301 colorRGB; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 21 0; +#X connect 21 0 18 0; +#X connect 22 0 21 1; diff --git a/Gem/colorRGB-help.pd b/Gem/colorRGB-help.pd new file mode 100644 index 0000000..f55a268 --- /dev/null +++ b/Gem/colorRGB-help.pd @@ -0,0 +1,71 @@ +#N canvas 42 24 639 342 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 292 Outlets:; +#X text 57 305 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 66 cnv 15 430 70 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 66 cnv 15 170 200 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 49 Example:; +#X obj 514 190 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 229 pd gemwin; +#X msg 519 210 create; +#X text 515 189 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 107 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 73 gemhead; +#X obj 451 182 cube; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 63 229 Inlet 2: float: red value; +#X text 63 244 Inlet 3: float: green value; +#X text 63 259 Inlet 4: float: blue value; +#X text 63 274 Inlet 5: float: alpha value; +#X floatatom 479 111 3 0 1 0 - - -; +#X floatatom 508 111 3 0 1 0 - - -; +#X floatatom 536 111 3 0 1 0 - - -; +#X floatatom 565 111 3 0 1 0 - - -; +#X text 60 171 defaults: 0 0 0 1; +#X text 50 12 Synopsis: [colorRGB]; +#X obj 451 145 colorRGB 0 1 0; +#X text 29 67 Description: colouring; +#X text 22 81 [colorRGB] sets the colour of all subsequent shape and +vertex operations until reset by another [color]/[colorRGB] object. +If you set the alpha-value \, you will need an [alpha] object to enable +alpha-blending; +#X text 447 272 see also:; +#X obj 449 297 color; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 30 0; +#X connect 24 0 30 1; +#X connect 25 0 30 2; +#X connect 26 0 30 3; +#X connect 27 0 30 4; +#X connect 30 0 18 0; diff --git a/Gem/colorSquare-help.pd b/Gem/colorSquare-help.pd new file mode 100644 index 0000000..aac9afc --- /dev/null +++ b/Gem/colorSquare-help.pd @@ -0,0 +1,82 @@ +#N canvas 130 41 696 468 10; +#X text 54 30 Class: geometric object; +#X obj 479 107 cnv 15 200 250 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 494 284 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 499 323 pd gemwin; +#X msg 499 304 create; +#X text 495 283 Create window:; +#X obj 7 65 cnv 15 450 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 196 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 201 Inlets:; +#X obj 8 156 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X text 27 227 Inlet 1: message: draw [line|fill|point]; +#X text 27 241 Inlet 2: float: size; +#X text 452 8 GEM object; +#X text 27 213 Inlet 1: gemlist; +#X text 9 350 Outlets:; +#X text 21 363 Outlet 1: gemlist; +#X text 485 89 Example:; +#X obj 482 137 cnv 15 190 110 empty empty empty 20 12 0 14 -81876 -66577 +0; +#X text 33 14 Synopsis: [colorSquare]; +#X obj 534 252 cnv 15 100 30 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 485 145 draw line; +#X msg 485 166 draw fill; +#X msg 485 188 draw point; +#X obj 543 114 gemhead; +#X floatatom 557 143 5 0 0 1 size - -; +#X text 7 69 Description: Renders a square with several colors.; +#X text 63 166 size of the square; +#X obj 543 259 colorSquare; +#X msg 615 222 1 1 0; +#X msg 600 203 0 0 1; +#X msg 586 184 0 1 0; +#X msg 571 165 1 0 0; +#X text 27 268 Inlet 3: list: 3(RGB) float values for the lowerleft +corner; +#X text 27 285 Inlet 4: list: 3(RGB) float values for the lowerright +corner; +#X text 27 305 Inlet 5: list: 3(RGB) float values for the upperright +corner; +#X text 27 322 Inlet 6: list: 3(RGB) float values for the upperleft +corner; +#X text 16 86 The colorSquare object renders a square at the current +position. The size of the square can be changed via the second inlet. +The colors of the 4 corners can be specified separately and are drawn +as gradients.; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 21 0 28 0; +#X connect 22 0 28 0; +#X connect 23 0 28 0; +#X connect 24 0 28 0; +#X connect 25 0 28 1; +#X connect 29 0 28 5; +#X connect 30 0 28 4; +#X connect 31 0 28 3; +#X connect 32 0 28 2; diff --git a/Gem/cone-help.pd b/Gem/cone-help.pd new file mode 100644 index 0000000..a08b413 --- /dev/null +++ b/Gem/cone-help.pd @@ -0,0 +1,69 @@ +#N canvas 290 157 710 345 10; +#X text 54 30 Class: geometric object; +#X obj 479 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 544 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 549 263 pd gemwin; +#X msg 549 244 create; +#X text 545 223 Create window:; +#X text 485 29 Example:; +#X obj 7 65 cnv 15 450 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 146 cnv 15 450 50 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X text 27 261 Inlet 2: float: size; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 287 Outlets:; +#X text 21 300 Outlet 1: gemlist; +#X text 33 14 Synopsis: [cone]; +#X text 7 69 Description: Renders a cone.; +#X text 14 86 The cone object renders a cone at the current position +with current color. The look of the cone can be changed with the draw +message \, its size can be changed via the second inlet.; +#X obj 542 130 cnv 15 100 80 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 485 65 draw line; +#X msg 485 86 draw fill; +#X msg 485 108 draw point; +#X obj 553 54 gemhead; +#X floatatom 569 144 5 0 0 2 size - -; +#X obj 553 79 rotateXYZ 90 0 0; +#X floatatom 586 171 5 0 0 2 segments - -; +#X text 27 272 Inlet 3: int: number of segments; +#X obj 553 189 cone 1; +#X text 64 180 defaults: 1 10; +#X text 63 162 size of the cone \, number of segments; +#X text 27 247 Inlet 1: message: draw [line|fill|point|default]; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 21 0 29 0; +#X connect 22 0 29 0; +#X connect 23 0 29 0; +#X connect 24 0 26 0; +#X connect 25 0 29 1; +#X connect 26 0 29 0; +#X connect 27 0 29 2; diff --git a/Gem/cube-help.pd b/Gem/cube-help.pd new file mode 100644 index 0000000..d80e0e1 --- /dev/null +++ b/Gem/cube-help.pd @@ -0,0 +1,64 @@ +#N canvas 289 160 710 345 10; +#X text 54 30 Class: geometric object; +#X obj 519 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 584 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 589 263 pd gemwin; +#X msg 589 244 create; +#X text 585 223 Create window:; +#X obj 7 65 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 176 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 175 Arguments:; +#X text 27 247 Inlet 1: message: draw [line|fill|point]; +#X text 27 261 Inlet 2: float: size; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 280 Outlets:; +#X text 21 293 Outlet 1: gemlist; +#X text 33 14 Synopsis: [cube]; +#X text 7 69 Description: Renders a cube.; +#X text 63 186 size of the cube; +#X text 16 86 The cube object renders a cube at the current position +with current color. The size of the cube can be changed via the second +inlet.; +#X text 525 29 Example:; +#X obj 522 78 cnv 15 150 100 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 525 128 draw point; +#X obj 593 54 gemhead; +#X floatatom 624 114 5 0 0 0 - - -; +#X text 624 98 size; +#X obj 593 159 cube; +#X msg 525 106 draw line; +#X msg 525 85 draw default; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 23 0 27 0; +#X connect 24 0 27 0; +#X connect 25 0 27 1; +#X connect 28 0 27 0; +#X connect 29 0 27 0; diff --git a/Gem/cuboid-help.pd b/Gem/cuboid-help.pd new file mode 100644 index 0000000..428b791 --- /dev/null +++ b/Gem/cuboid-help.pd @@ -0,0 +1,73 @@ +#N canvas 289 160 710 363 10; +#X text 54 30 Class: geometric object; +#X obj 519 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 584 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 589 263 pd gemwin; +#X msg 589 244 create; +#X text 585 223 Create window:; +#X text 525 29 Example:; +#X obj 7 65 cnv 15 450 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 156 cnv 15 450 50 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X text 27 247 Inlet 1: message: draw [line|fill|point]; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 310 Outlets:; +#X text 21 323 Outlet 1: gemlist; +#X obj 522 82 cnv 15 160 120 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 525 95 draw line; +#X msg 525 116 draw fill; +#X msg 525 138 draw point; +#X obj 593 54 gemhead; +#X floatatom 605 104 5 0 0 0 - - -; +#X obj 593 179 cuboid; +#X floatatom 617 134 5 0 0 0 - - -; +#X floatatom 630 162 5 0 0 0 - - -; +#X text 605 88 length; +#X text 617 118 height; +#X text 630 146 depth; +#X text 63 167 dimensions of the cuboid (length width height); +#X text 7 69 Description: Renders a cuboid box.; +#X text 16 86 The cuboid object renders a cuboid (box) at the current +position with current color. The dimensions of the cuboid can be changed +via the last three inlets.; +#X text 33 14 Synopsis: [cuboid]; +#X text 27 260 Inlet 2: float: length (dimX); +#X text 27 275 Inlet 3: float: height (dimY); +#X text 27 289 Inlet 4: float: depth (dimZ); +#X text 65 181 default: 1 1 0; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 18 0 23 0; +#X connect 19 0 23 0; +#X connect 20 0 23 0; +#X connect 21 0 23 0; +#X connect 22 0 23 1; +#X connect 24 0 23 2; +#X connect 25 0 23 3; diff --git a/Gem/curve-help.pd b/Gem/curve-help.pd new file mode 100644 index 0000000..6922779 --- /dev/null +++ b/Gem/curve-help.pd @@ -0,0 +1,112 @@ +#N canvas 65 18 762 461 10; +#X text 54 30 Class: geometric object; +#X text 475 39 Example:; +#X obj 7 65 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 180 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 176 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 175 Arguments:; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 358 Outlets:; +#X text 21 371 Outlet 1: gemlist; +#X obj 469 58 cnv 15 200 295 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 568 359 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy \, reset; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 573 398 pd gemwin; +#X msg 573 379 create; +#X text 569 358 Create window:; +#X obj 474 112 cnv 15 190 200 empty empty empty 20 12 0 14 -85973 -66577 +0; +#X obj 521 319 cnv 15 100 30 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X text 21 138 Each (additional) inlet will accept an X Y Z point which +is where the control point will be.; +#X text 28 323 Inlet 2: list: 3(XYZ) float values; +#X text 28 344 Inlet N: list: 3(XYZ) float values; +#X text 52 330 ...; +#X text 33 14 Synopsis: [curve]; +#X text 7 69 Description: Renders a bezier-curve; +#X text 63 187 number of control-points of the curve (mandatory); +#X text 27 247 Inlet 1: message: draw [line|linestrip|fill|point|tri|tristrip|trifan|quad|quadstrip] +; +#X text 22 88 [curve] creates a bezier curve. The initial argument +is the number of control-points of the curve. There is no maximum number +of control-points.; +#X text 27 306 Inlet 1: message: res : interpolation-resolution(30) +; +#X text 27 293 Inlet 1: message: width : line-width(1); +#X obj 596 233 cnv 15 65 75 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 479 163 draw line; +#X msg 479 118 draw fill; +#X msg 479 140 draw point; +#X obj 537 64 gemhead; +#X msg 585 115 1 1 0; +#X msg 593 135 1 -1 0; +#X floatatom 605 196 5 0 0 0 - - -; +#X msg 603 175 -2 1 0; +#X msg 599 155 -1 -1 -3; +#X msg 479 183 draw linestrip; +#X msg 479 203 draw tri; +#X msg 479 225 draw tristrip; +#X msg 478 248 draw trifan; +#X msg 478 269 draw quad; +#X msg 478 291 draw quadstrip; +#X obj 537 88 rotateXYZ; +#X floatatom 595 65 5 0 0 0 - - -; +#X obj 537 326 curve 5; +#X obj 608 89 loadbang; +#X floatatom 599 237 5 0 10 0 - - -; +#X msg 599 253 width \$1; +#X floatatom 600 274 5 0 100 0 - - -; +#X msg 600 291 res \$1; +#X msg 605 213 \$1 \$1 \$1; +#X connect 13 0 14 0; +#X connect 14 0 13 0; +#X connect 30 0 47 0; +#X connect 31 0 47 0; +#X connect 32 0 47 0; +#X connect 33 0 45 0; +#X connect 34 0 47 1; +#X connect 35 0 47 2; +#X connect 36 0 53 0; +#X connect 37 0 47 4; +#X connect 38 0 47 3; +#X connect 39 0 47 0; +#X connect 40 0 47 0; +#X connect 41 0 47 0; +#X connect 42 0 47 0; +#X connect 43 0 47 0; +#X connect 44 0 47 0; +#X connect 45 0 47 0; +#X connect 46 0 45 1; +#X connect 46 0 45 3; +#X connect 48 0 34 0; +#X connect 49 0 50 0; +#X connect 50 0 47 0; +#X connect 51 0 52 0; +#X connect 52 0 47 0; +#X connect 53 0 47 5; diff --git a/Gem/curve3d-help.pd b/Gem/curve3d-help.pd new file mode 100644 index 0000000..141d27a --- /dev/null +++ b/Gem/curve3d-help.pd @@ -0,0 +1,1659 @@ +#N canvas 362 96 968 580 10; +#X text 145 42 Class: geometric object; +#X obj 13 64 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 13 212 cnv 15 450 220 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 17 214 Inlets:; +#X obj 13 173 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 22 172 Arguments:; +#X text 32 229 Inlet 1: gemlist; +#X text 14 401 Outlets:; +#X text 28 413 Outlet 1: gemlist; +#X text 146 24 Synopsis: [curve3d]; +#X obj 475 63 cnv 15 480 500 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 845 484 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 455 304 gemwin 0; +#X obj 132 182 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X obj 294 56 gemhead; +#X obj 294 76 world_light; +#X msg 207 155 lighting 1; +#X obj 207 134 loadbang; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 9 0; +#X connect 10 0 0 0; +#X connect 11 0 10 0; +#X restore 861 523 pd gemwin; +#X msg 861 504 create; +#X text 857 483 Create window:; +#X obj 796 74 cnv 15 150 150 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 796 234 cnv 15 150 150 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 486 74 cnv 15 300 310 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 519 175 draw line; +#X msg 519 155 draw fill; +#X msg 519 195 draw point; +#X msg 536 300 width 1; +#X msg 536 321 width 4; +#X msg 519 216 draw line1; +#X msg 519 237 draw line2; +#X msg 519 258 draw line3; +#X msg 519 279 draw line4; +#X msg 657 169 draw control_line; +#X msg 657 190 draw control_line1; +#X msg 657 211 draw control_line2; +#X msg 657 232 draw control_fill; +#X msg 657 253 draw control_point; +#X msg 834 111 res 2 2; +#X msg 829 269 grid 2 10; +#X msg 834 132 res 3 3; +#X msg 829 290 grid 10 10; +#X msg 829 332 grid 40 40; +#X msg 834 153 res 5 5; +#X msg 834 174 res 1 4; +#X msg 829 311 grid 20 20; +#X text 592 92 draw style; +#X text 506 124 draw the curve; +#X obj 624 343 s curve3d; +#X obj 810 198 s curve3d; +#X obj 807 356 s curve3d; +#X obj 490 344 s curve3d; +#X text 660 139 of the curve; +#X text 647 125 draw control point; +#X obj 486 398 cnv 15 300 150 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 494 407 gemhead; +#X floatatom 522 450 5 0 0 0 - - -; +#X floatatom 557 450 5 0 0 0 - - -; +#X floatatom 593 450 5 0 0 0 - - -; +#X floatatom 562 408 5 0 0 0 - - -; +#X floatatom 610 408 5 0 0 0 - - -; +#X floatatom 659 408 5 0 0 0 - - -; +#X obj 494 471 rotateXYZ 0 0 0; +#X obj 494 428 translateXYZ -2.5 -2.5 -2; +#X obj 504 496 r curve3d; +#X text 809 91 control matrix; +#X text 804 78 resolution of the; +#X text 805 239 resolution of the; +#X text 826 250 curve grid; +#X text 28 389 Inlet 2: not used; +#X text 32 243 Inlet 1: message: draw [line|fill|point|...]; +#X obj 13 443 cnv 15 450 120 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 253 49 691 493 forme2 0; +#N canvas 0 0 353 257 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 28 92 pd tripleRnd; +#X msg 26 270 set 2 0 \$1 \$2 \$3; +#X msg 161 269 set 2 1 \$1 \$2 \$3; +#X msg 298 269 set 2 2 \$1 \$2 \$3; +#X msg 299 190 set 1 2 \$1 \$2 \$3; +#X msg 299 112 set 0 2 \$1 \$2 \$3; +#X msg 161 112 set 0 1 \$1 \$2 \$3; +#X msg 28 114 set 0 0 \$1 \$2 \$3; +#X msg 29 193 set 1 0 \$1 \$2 \$3; +#X msg 161 189 set 1 1 \$1 \$2 \$3; +#X msg 26 337 set 3 0 \$1 \$2 \$3; +#X msg 162 336 set 3 1 \$1 \$2 \$3; +#X msg 298 338 set 3 2 \$1 \$2 \$3; +#X msg 423 111 set 0 3 \$1 \$2 \$3; +#X msg 424 189 set 1 3 \$1 \$2 \$3; +#X msg 424 265 set 2 3 \$1 \$2 \$3; +#X msg 423 335 set 3 3 \$1 \$2 \$3; +#X msg 544 109 set 0 4 \$1 \$2 \$3; +#X msg 545 187 set 1 4 \$1 \$2 \$3; +#X msg 540 263 set 2 4 \$1 \$2 \$3; +#X msg 543 333 set 3 4 \$1 \$2 \$3; +#X msg 28 399 set 4 0 \$1 \$2 \$3; +#X msg 162 392 set 4 1 \$1 \$2 \$3; +#X msg 299 393 set 4 2 \$1 \$2 \$3; +#X msg 424 391 set 4 3 \$1 \$2 \$3; +#X msg 545 389 set 4 4 \$1 \$2 \$3; +#X obj 10 445 outlet; +#X obj 36 15 inlet; +#X obj 36 39 s bang_forme2; +#N canvas 0 0 355 259 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 161 90 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 299 91 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 423 89 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 544 86 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 29 169 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 162 167 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 300 168 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 424 166 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 545 163 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 28 247 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 161 245 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 299 246 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 422 244 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 544 241 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 28 318 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 161 316 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 299 317 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 423 315 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 544 312 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 29 374 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 162 372 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 300 373 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 424 371 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 545 368 pd tripleRnd; +#X connect 0 0 7 0; +#X connect 1 0 26 0; +#X connect 2 0 26 0; +#X connect 3 0 26 0; +#X connect 4 0 26 0; +#X connect 5 0 26 0; +#X connect 6 0 26 0; +#X connect 7 0 26 0; +#X connect 8 0 26 0; +#X connect 9 0 26 0; +#X connect 10 0 26 0; +#X connect 11 0 26 0; +#X connect 12 0 26 0; +#X connect 13 0 26 0; +#X connect 14 0 26 0; +#X connect 15 0 26 0; +#X connect 16 0 26 0; +#X connect 17 0 26 0; +#X connect 18 0 26 0; +#X connect 19 0 26 0; +#X connect 20 0 26 0; +#X connect 21 0 26 0; +#X connect 22 0 26 0; +#X connect 23 0 26 0; +#X connect 24 0 26 0; +#X connect 25 0 26 0; +#X connect 27 0 28 0; +#X connect 29 0 6 0; +#X connect 30 0 5 0; +#X connect 31 0 13 0; +#X connect 32 0 17 0; +#X connect 33 0 8 0; +#X connect 34 0 9 0; +#X connect 35 0 4 0; +#X connect 36 0 14 0; +#X connect 37 0 18 0; +#X connect 38 0 1 0; +#X connect 39 0 2 0; +#X connect 40 0 3 0; +#X connect 41 0 15 0; +#X connect 42 0 19 0; +#X connect 43 0 10 0; +#X connect 44 0 11 0; +#X connect 45 0 12 0; +#X connect 46 0 16 0; +#X connect 47 0 20 0; +#X connect 48 0 21 0; +#X connect 49 0 22 0; +#X connect 50 0 23 0; +#X connect 51 0 24 0; +#X connect 52 0 25 0; +#X restore 136 509 pd forme2; +#X obj 136 490 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 57 490 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 253 49 697 499 forme1 0; +#X obj 76 418 outlet; +#X obj 36 15 inlet; +#N canvas 0 0 251 239 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 28 92 pd Rnd; +#X msg 28 114 set 0 0 0 0 \$1; +#X msg 126 115 set 0 1 0 1 \$1; +#X msg 227 116 set 0 2 0 2 \$1; +#X msg 323 117 set 0 3 0 3 \$1; +#X msg 419 116 set 0 4 0 4 \$1; +#X msg 47 159 set 1 0 1 0 \$1; +#X msg 145 160 set 1 1 1 1 \$1; +#X msg 246 161 set 1 2 1 2 \$1; +#X msg 342 162 set 1 3 1 3 \$1; +#X msg 438 161 set 1 4 1 4 \$1; +#X msg 68 202 set 2 0 2 0 \$1; +#X msg 166 203 set 2 1 2 1 \$1; +#X msg 267 204 set 2 2 2 2 \$1; +#X msg 363 205 set 2 3 2 3 \$1; +#X msg 459 204 set 2 4 2 4 \$1; +#X msg 97 249 set 3 0 3 0 \$1; +#X msg 195 250 set 3 1 3 1 \$1; +#X msg 297 251 set 3 2 3 2 \$1; +#X msg 393 252 set 3 3 3 3 \$1; +#X msg 488 251 set 3 4 3 4 \$1; +#X msg 121 296 set 4 0 4 0 \$1; +#X msg 219 297 set 4 1 4 1 \$1; +#X msg 320 298 set 4 2 4 2 \$1; +#X msg 416 299 set 4 3 4 3 \$1; +#X msg 512 298 set 4 4 4 4 \$1; +#X obj 36 39 s bang_forme3; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 127 92 pd Rnd; +#N canvas 0 0 251 239 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 227 93 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 326 93 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 420 94 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 48 138 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 147 138 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 247 139 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 346 139 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 440 140 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 68 181 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 167 181 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 267 182 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 366 182 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 460 183 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 97 227 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 196 227 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 296 228 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 395 228 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 489 229 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 121 275 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 220 275 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 320 276 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 419 276 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 513 277 pd Rnd; +#X connect 1 0 28 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 0 0; +#X connect 10 0 0 0; +#X connect 11 0 0 0; +#X connect 12 0 0 0; +#X connect 13 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 0 0; +#X connect 16 0 0 0; +#X connect 17 0 0 0; +#X connect 18 0 0 0; +#X connect 19 0 0 0; +#X connect 20 0 0 0; +#X connect 21 0 0 0; +#X connect 22 0 0 0; +#X connect 23 0 0 0; +#X connect 24 0 0 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 29 0 4 0; +#X connect 30 0 5 0; +#X connect 31 0 6 0; +#X connect 32 0 7 0; +#X connect 33 0 8 0; +#X connect 34 0 9 0; +#X connect 35 0 10 0; +#X connect 36 0 11 0; +#X connect 37 0 12 0; +#X connect 38 0 13 0; +#X connect 39 0 14 0; +#X connect 40 0 15 0; +#X connect 41 0 16 0; +#X connect 42 0 17 0; +#X connect 43 0 18 0; +#X connect 44 0 19 0; +#X connect 45 0 20 0; +#X connect 46 0 21 0; +#X connect 47 0 22 0; +#X connect 48 0 23 0; +#X connect 49 0 24 0; +#X connect 50 0 25 0; +#X connect 51 0 26 0; +#X connect 52 0 27 0; +#X restore 57 509 pd forme1; +#X text 77 489 shape1; +#X text 156 489 shape2; +#X obj 57 469 loadbang; +#X floatatom 214 464 5 0 0 0 - - -; +#X msg 214 506 set 3 2 \$1 \$2 \$3; +#X floatatom 247 464 5 0 0 0 - - -; +#N canvas 0 0 173 130 pak 0; +#X obj 73 39 t b f; +#X obj 108 39 t b f; +#X obj 38 19 inlet; +#X obj 38 69 pack f f f; +#X obj 38 90 outlet; +#X obj 73 19 inlet; +#X obj 108 19 inlet; +#X connect 0 0 3 0; +#X connect 0 1 3 1; +#X connect 1 0 3 0; +#X connect 1 1 3 2; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 5 0 0 0; +#X connect 6 0 1 0; +#X restore 214 484 pd pak f f f; +#X floatatom 281 464 5 0 0 0 - - -; +#X obj 214 532 s exemples_shape; +#X obj 136 532 s curve3d; +#X obj 57 532 s curve3d; +#X text 13 68 Description: Renders a 3d bezier curve.; +#X text 68 183 size of the control matrix (default : 2 2); +#X obj 494 521 curve3d 5 5; +#X text 276 3 Create a 3D bezier curve \, using a matrix of control +points; +#X text 31 336 Inlet 1 : message: set Mx My X Y Z; +#X text 31 296 Inlet 1: message: grid X Y; +#X text 31 259 Inlet 1: message: res X Y; +#X text 53 272 This message is use for changing the size of the control +matrix (X \, Y are 2 int); +#X text 52 310 This message is use for changing the subdivision of +the displayed curve (X Y are 2 int); +#X text 53 349 This message can be use to set the position of a control +point. (Mx \, My : position of the point in the matrix. X \, Y \, Z +: position of this control point; +#X text 21 447 exemples :; +#X text 29 87 The curve3d object renders a curve at the current position +with current color or texture. The shape of the curve is cotrolled +from a matrix. Note that control points are not necessary part of the +curve.; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 18 0 45 0; +#X connect 19 0 45 0; +#X connect 20 0 45 0; +#X connect 21 0 45 0; +#X connect 22 0 45 0; +#X connect 23 0 45 0; +#X connect 24 0 45 0; +#X connect 25 0 45 0; +#X connect 26 0 45 0; +#X connect 27 0 42 0; +#X connect 28 0 42 0; +#X connect 29 0 42 0; +#X connect 30 0 42 0; +#X connect 31 0 42 0; +#X connect 32 0 43 0; +#X connect 33 0 44 0; +#X connect 34 0 43 0; +#X connect 35 0 44 0; +#X connect 36 0 44 0; +#X connect 37 0 43 0; +#X connect 38 0 43 0; +#X connect 39 0 44 0; +#X connect 49 0 57 0; +#X connect 50 0 56 1; +#X connect 51 0 56 2; +#X connect 52 0 56 3; +#X connect 53 0 57 1; +#X connect 54 0 57 2; +#X connect 55 0 57 3; +#X connect 56 0 83 0; +#X connect 57 0 56 0; +#X connect 58 0 83 0; +#X connect 66 0 79 0; +#X connect 67 0 66 0; +#X connect 68 0 69 0; +#X connect 69 0 80 0; +#X connect 72 0 68 0; +#X connect 73 0 76 0; +#X connect 74 0 78 0; +#X connect 75 0 76 1; +#X connect 76 0 74 0; +#X connect 77 0 76 2; diff --git a/Gem/cylinder-help.pd b/Gem/cylinder-help.pd new file mode 100644 index 0000000..e9781f7 --- /dev/null +++ b/Gem/cylinder-help.pd @@ -0,0 +1,70 @@ +#N canvas 291 154 710 345 10; +#X text 54 30 Class: geometric object; +#X obj 479 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 544 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 549 263 pd gemwin; +#X msg 549 244 create; +#X text 545 223 Create window:; +#X text 485 29 Example:; +#X obj 7 65 cnv 15 450 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 156 cnv 15 450 50 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X text 27 261 Inlet 2: float: size; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 287 Outlets:; +#X text 21 300 Outlet 1: gemlist; +#X obj 546 130 cnv 15 100 80 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 485 65 draw line; +#X msg 485 86 draw fill; +#X msg 485 108 draw point; +#X obj 553 54 gemhead; +#X floatatom 575 144 5 0 0 2 size - -; +#X obj 553 79 rotateXYZ 90 0 0; +#X floatatom 598 172 3 0 0 2 segments - -; +#X text 27 272 Inlet 3: int: number of segments; +#X text 33 14 Synopsis: [cylinder]; +#X obj 553 189 cylinder; +#X text 7 69 Description: Renders a cylinder.; +#X text 14 86 The cylinder object renders a cylinder at the current +position with current color. The look of the cylinder can be changed +with the draw message \, its size can be changed via the second inlet. +; +#X text 63 167 size of the cylinder \, segments; +#X text 63 182 defaults: 1 \, 10; +#X text 27 247 Inlet 1: message: draw [line|fill|point|default]; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 18 0 27 0; +#X connect 19 0 27 0; +#X connect 20 0 27 0; +#X connect 21 0 23 0; +#X connect 22 0 27 1; +#X connect 23 0 27 0; +#X connect 24 0 27 2; diff --git a/Gem/depth-help.pd b/Gem/depth-help.pd new file mode 100644 index 0000000..83fe3d9 --- /dev/null +++ b/Gem/depth-help.pd @@ -0,0 +1,85 @@ +#N canvas 15 24 724 431 10; +#X obj 17 299 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 28 302 Inlets:; +#X text 28 339 Outlets:; +#X obj 17 264 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 26 263 Arguments:; +#X obj 17 69 cnv 15 430 190 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 46 352 Outlet 1: gemlist; +#X text 52 316 Inlet 1: gemlist; +#X text 466 15 GEM object; +#X obj 459 77 cnv 15 250 300 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 463 60 Example:; +#X obj 604 313 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 16 419 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 268 112 destroy; +#X msg 132 112 create \, 1; +#X obj 264 174 gemhead; +#X obj 264 200 world_light; +#X obj 238 68 r \$0-gemwin; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 9 0; +#X connect 10 0 0 0; +#X restore 609 352 pd gemwin; +#X msg 609 333 create; +#X text 605 312 Create window:; +#X obj 460 106 cnv 15 240 90 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 461 84 gemhead 51; +#X obj 461 172 depth; +#X text 60 22 Synopsis: [depth]; +#X text 81 41 Class: manips object; +#X text 27 72 Description: Activate / Deactivate depth test; +#X text 26 93 [depth] turns on and off depth test (also known as Z-buffering). +This is very useful if you are in single-buffer mode \, because then +a painting effect can be achieved. In double-buffered mode \, you probably +do not want to turn off the depth test \, unless you have taken control +of the rendering order by setting the priority of each gemhead (see +the gemhead example for explanation).; +#X obj 496 114 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 26 189 By default \, this object will turn OFF depth buffering +for the objects "below".; +#X text 72 274 float (0/1) : depth test on/off; +#X text 52 329 Inlet 1: float (0/1) : depth test on/off; +#X obj 461 293 cube; +#X obj 461 260 rotateXYZ 0 30 30; +#X floatatom 560 239 5 0 0 0 - - -; +#X floatatom 494 202 5 0 0 0 - - -; +#X floatatom 527 218 5 0 0 0 - - -; +#X obj 607 210 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 607 229 lighting \$1; +#X obj 607 252 s \$0-gemwin; +#X text 630 210 lighting; +#X text 516 113 turn depth test on/off; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 16 0 17 0; +#X connect 17 0 27 0; +#X connect 22 0 17 0; +#X connect 27 0 26 0; +#X connect 28 0 27 3; +#X connect 29 0 27 1; +#X connect 30 0 27 2; +#X connect 31 0 32 0; +#X connect 32 0 33 0; diff --git a/Gem/develop/include/Gem/Base/CPPExtern.h b/Gem/develop/include/Gem/Base/CPPExtern.h new file mode 100644 index 0000000..0350681 --- /dev/null +++ b/Gem/develop/include/Gem/Base/CPPExtern.h @@ -0,0 +1,371 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + The base class for all externs written in C++ + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_BASE_CPPEXTERN_H_ +#define _INCLUDE__GEM_BASE_CPPEXTERN_H_ + +#include "Gem/ExportDef.h" + +#include "Gem/RTE.h" +#include "Gem/Version.h" + +#include +#include + +class CPPExtern; + +/* forward declaration of a generic exception handler for GemExceptions */ +namespace gem { + GEM_EXTERN void catchGemException(const char*objname, const t_object*obj); +}; + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + Obj_header + + The obligatory object header + +DESCRIPTION + + This is in a separate struct to assure that when PD uses the + class, the t_object is the very first thing. If it were the + first thing in CPPExtern, then there could be problems with + the vtable. + +-----------------------------------------------------------------*/ +struct GEM_EXTERN Obj_header +{ + ////////// + // The obligatory object header + t_object pd_obj; + + ////////// + // Our data structure + CPPExtern *data; + + // This has a dummy arg so that NT won't complain + void *operator new(size_t, void *location, void *dummy); +}; + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + CPPExtern + + The base class for all externs written in C++ + +DESCRIPTION + + Each extern which is written in C++ needs to use the #defines at the + end of this header file. Currently, the operator new(size_t) and + operator delete(void *) are not overridden. This will be a problem + when PD expects everything to fit in its memory space and control + all memory allocation. + + The define + + CPPEXTERN_HEADER(NEW_CLASS, PARENT_CLASS); + + should be somewhere in your header file. + One of the defines like + + CPPEXTERN_NEW(NEW_CLASS); + CPPEXTERN_NEW_WITH_TWO_ARGS(NEW_CLASS, t_floatarg, A_FLOAT, t_floatarg, A_FLOAT); + + should be the first thing in your implementation file. + NEW_CLASS is the name of your class and PARENT_CLASS is the + parent of your class. + +-----------------------------------------------------------------*/ +class GEM_EXTERN CPPExtern +{ + public: + + ////////// + // Constructor + CPPExtern(void); + + ////////// + // The Pd header + t_object *x_obj; + + ////////// + // Destructor + virtual ~CPPExtern(void) = 0; + + ////////// + // Get the object's canvas + const t_canvas *getCanvas(void) const { return(m_canvas); } + + ////////// + // This is a holder - don't touch it + static t_object *m_holder; + + ////////// + // my name + static char *m_holdname; + t_symbol *m_objectname; + + protected: + + ////////// + // Creation callback + static void real_obj_setupCallback(t_class *) {} + + private: + + ////////// + // The canvas that the object is in + t_canvas *m_canvas; + + public: + // these call pd's print-functions, and eventually prepend the object's name + void startpost(const char*format, ...) const; + void post(const char*format, ...) const; + void endpost(void) const; + void verbose(const int level, const char*format, ...) const; + void error(const char*format, ...) const; /* internally uses pd_error() */ + + // searches for a file based on the parent abstraction's path + // wraps open_via_path() and canvas_makefilename() + // the full filename is returned + // if the file does not exist, it is constructed + std::string findFile(const std::string filename, const std::string ext) const; + std::string findFile(const std::string filename) const; + + private: + mutable bool m_endpost; /* internal state for startpost/post/endpost */ + static bool checkGemVersion(const int major, const int minor); + CPPExtern(const CPPExtern&); + virtual CPPExtern&operator=(const CPPExtern&); +}; + +//////////////////////////////////////// +// This should be used in the header +//////////////////////////////////////// + +#define CPPEXTERN_HEADER(NEW_CLASS, PARENT_CLASS) \ +public: \ +static void obj_freeCallback(void *data) \ +{ CPPExtern *mydata = ((Obj_header *)data)->data; delete mydata; \ + ((Obj_header *)data)->Obj_header::~Obj_header(); } \ +static void real_obj_setupCallback(t_class *classPtr) \ +{ PARENT_CLASS::real_obj_setupCallback(classPtr); \ + NEW_CLASS::obj_setupCallback(classPtr); } \ +private: \ +static inline NEW_CLASS *GetMyClass(void *data) {return((NEW_CLASS *)((Obj_header *)data)->data);} \ +static void obj_setupCallback(t_class *classPtr); + + +//////////////////////////////////////// +// This should be the first thing in the implementation file +//////////////////////////////////////// + +// +// NO ARGUMENTS +///////////////////////////////////////////////// +#define CPPEXTERN_NEW(NEW_CLASS) \ + REAL_NEW__CLASS(NEW_CLASS); \ + static void* create_ ## NEW_CLASS (void) \ + REAL_NEW__CREATE1(NEW_CLASS) \ + obj->data = new NEW_CLASS(); \ + REAL_NEW__CREATE2(NEW_CLASS) \ + REAL_NEW__SETUP1(NEW_CLASS) \ + REAL_NEW__SETUP2(NEW_CLASS) + +// +// ONE ARGUMENT +///////////////////////////////////////////////// +#define CPPEXTERN_NEW_WITH_ONE_ARG(NEW_CLASS, TYPE, PD_TYPE) \ + REAL_NEW__CLASS(NEW_CLASS); \ + static void* create_ ## NEW_CLASS (TYPE arg) \ + REAL_NEW__CREATE1(NEW_CLASS) \ + obj->data = new NEW_CLASS(arg); \ + REAL_NEW__CREATE2(NEW_CLASS) \ + REAL_NEW__SETUP1(NEW_CLASS) \ + PD_TYPE, \ + REAL_NEW__SETUP2(NEW_CLASS) + +// +// GIMME ARGUMENT +///////////////////////////////////////////////// +#define CPPEXTERN_NEW_WITH_GIMME(NEW_CLASS) \ + REAL_NEW__CLASS(NEW_CLASS); \ + static void* create_ ## NEW_CLASS (t_symbol*s, int argc, t_atom*argv) \ + REAL_NEW__CREATE1(NEW_CLASS) \ + obj->data = new NEW_CLASS(argc,argv); \ + REAL_NEW__CREATE2(NEW_CLASS) \ + REAL_NEW__SETUP1(NEW_CLASS) \ + A_GIMME, \ + REAL_NEW__SETUP2(NEW_CLASS) + +// +// TWO ARGUMENTS +///////////////////////////////////////////////// +#define CPPEXTERN_NEW_WITH_TWO_ARGS(NEW_CLASS, TYPE, PD_TYPE, TTWO, PD_TWO) \ + REAL_NEW__CLASS(NEW_CLASS); \ + static void* create_ ## NEW_CLASS (TYPE arg, TTWO arg2) \ + REAL_NEW__CREATE1(NEW_CLASS) \ + obj->data = new NEW_CLASS(arg, arg2); \ + REAL_NEW__CREATE2(NEW_CLASS) \ + REAL_NEW__SETUP1(NEW_CLASS) \ + PD_TYPE, PD_TWO, \ + REAL_NEW__SETUP2(NEW_CLASS) + +// +// THREE ARGUMENTS +///////////////////////////////////////////////// +#define CPPEXTERN_NEW_WITH_THREE_ARGS(NEW_CLASS, TYPE, PD_TYPE, TTWO, PD_TWO, TTHREE, PD_THREE) \ + REAL_NEW__CLASS(NEW_CLASS); \ + static void* create_ ## NEW_CLASS (TYPE arg, TTWO arg2, TTHREE arg3) \ + REAL_NEW__CREATE1(NEW_CLASS) \ + obj->data = new NEW_CLASS(arg, arg2, arg3); \ + REAL_NEW__CREATE2(NEW_CLASS) \ + REAL_NEW__SETUP1(NEW_CLASS) \ + PD_TYPE, PD_TWO, PD_THREE, \ + REAL_NEW__SETUP2(NEW_CLASS) + +// +// FOUR ARGUMENTS +///////////////////////////////////////////////// +#define CPPEXTERN_NEW_WITH_FOUR_ARGS(NEW_CLASS, TYPE, PD_TYPE, TTWO, PD_TWO, TTHREE, PD_THREE, TFOUR, PD_FOUR) \ + REAL_NEW__CLASS(NEW_CLASS); \ + static void* create_ ## NEW_CLASS (TYPE arg, TTWO arg2, TTHREE arg3, TFOUR arg4) \ + REAL_NEW__CREATE1(NEW_CLASS) \ + obj->data = new NEW_CLASS(arg, arg2, arg3, arg4); \ + REAL_NEW__CREATE2(NEW_CLASS) \ + REAL_NEW__SETUP1(NEW_CLASS) \ + PD_TYPE, PD_TWO, PD_THREE, PD_FOUR, \ + REAL_NEW__SETUP2(NEW_CLASS) + +// +// FIVE ARGUMENTS +///////////////////////////////////////////////// +#define CPPEXTERN_NEW_WITH_FIVE_ARGS(NEW_CLASS, TYPE, PD_TYPE, TTWO, PD_TWO, TTHREE, PD_THREE, TFOUR, PD_FOUR, TFIVE, PD_FIVE) \ + REAL_NEW__CLASS(NEW_CLASS); \ + static void* create_ ## NEW_CLASS (TYPE arg, TTWO arg2, TTHREE arg3, TFOUR arg4, TFIVE arg5) \ + REAL_NEW__CREATE1(NEW_CLASS) \ + obj->data = new NEW_CLASS(arg, arg2, arg3, arg4, arg5); \ + REAL_NEW__CREATE2(NEW_CLASS) \ + REAL_NEW__SETUP1(NEW_CLASS) \ + PD_TYPE, PD_TWO, PD_THREE, PD_FOUR, PD_FIVE \ + REAL_NEW__SETUP2(NEW_CLASS) + + +////////////////////////////////////////////////////////////////////////////// +// These should never be called or used directly!!! +// +// +/////////////////////////////////////////////////////////////////////////////// + +#define REAL_NEW__CLASS(NEW_CLASS) STATIC_CLASS t_class * NEW_CLASS ## _class +#define REAL_NEW__CREATE1(NEW_CLASS) { \ + try{ \ + Obj_header *obj = new (pd_new(NEW_CLASS ## _class),(void *)NULL) Obj_header; \ + CPPExtern::m_holder = &obj->pd_obj; \ + CPPExtern::m_holdname=(char*)#NEW_CLASS; + +#define REAL_NEW__CREATE2(NEW_CLASS) \ + CPPExtern::m_holder = NULL; \ + CPPExtern::m_holdname=NULL; \ + return(obj); \ + } catch (...) {gem::catchGemException(CPPExtern::m_holdname, CPPExtern::m_holder); return NULL;} \ + } + +#define REAL_NEW__SETUP1(NEW_CLASS) \ + extern "C" { \ + GEM_EXPORT void NEW_CLASS ## _setup(void) \ + { \ + static int recalled=0; if(recalled)return; recalled=1; \ + NEW_CLASS ## _class = class_new( \ + gensym(#NEW_CLASS), \ + (t_newmethod)create_ ## NEW_CLASS, \ + (t_method)&NEW_CLASS::obj_freeCallback, \ + sizeof(Obj_header), GEM_CLASSFLAGS, +#define REAL_NEW__SETUP2(NEW_CLASS) \ + A_NULL); \ + SET_HELPSYMBOL(NEW_CLASS); \ + NEW_CLASS::real_obj_setupCallback(NEW_CLASS ## _class); \ + } \ + } \ + AUTO_REGISTER_CLASS(NEW_CLASS); + + +/////////////////////////////////////////////////////////////////////////////// +// static class: +// by default classes are declared static +// however, sometimes we need classes not-static, so we can refer to them +// from other classes +/////////////////////////////////////////////////////////////////////////////// +#ifdef NO_STATIC_CLASS +# define STATIC_CLASS +#else +# define STATIC_CLASS static +#endif + +/////////////////////////////////////////////////////////////////////////////// +// auto registering a class +// this creates a dummy class, whose constructor calls the setup-function +// (registering the class with pd) +// a static copy of this class is created at runtime, to actually do the setup-call +/////////////////////////////////////////////////////////////////////////////// +#ifdef NO_AUTO_REGISTER_CLASS +// if NO_AUTO_REGISTER_CLASS is defined, we will not register the class +# define AUTO_REGISTER_CLASS(NEW_CLASS) \ + static int NEW_CLASS ## _dummyinstance +#else +// for debugging we can show the which classes are auto-registering +# if 0 +# define POST_AUTOREGISTER(NEW_CLASS) post("auto-registering: "#NEW_CLASS) +# else +# define POST_AUTOREGISTER(NEW_CLASS) +# endif +# define AUTO_REGISTER_CLASS(NEW_CLASS) \ + class NEW_CLASS ## _cppclass { \ + public: \ + NEW_CLASS ## _cppclass(void) {POST_AUTOREGISTER(NEW_CLASS); NEW_CLASS ## _setup(); } \ +}; \ + static NEW_CLASS ## _cppclass NEW_CLASS ## _instance +#endif + +/////////////////////////////////////////////////////////////////////////////// +// setting the help-symbol +/////////////////////////////////////////////////////////////////////////////// +#if defined HELPSYMBOL_BASE || defined HELPSYMBOL +# ifndef HELPSYMBOL_BASE +# define HELPSYMBOL_BASE "" +# endif + +# ifndef HELPSYMBOL +# define SET_HELPSYMBOL(NEW_CLASS) \ + class_sethelpsymbol(NEW_CLASS ## _class, gensym(HELPSYMBOL_BASE #NEW_CLASS)) +# else +# define SET_HELPSYMBOL(NEW_CLASS) \ + class_sethelpsymbol(NEW_CLASS ## _class, gensym(HELPSYMBOL_BASE HELPSYMBOL)) +# endif + +#else +# define SET_HELPSYMBOL(NEW_CLASS) +#endif /* HELPSYMBOL */ + +/////////////////////////////////////////////////////////////////////////////// +// setting the class-flags +/////////////////////////////////////////////////////////////////////////////// +#ifndef GEM_CLASSFLAGS +# define GEM_CLASSFLAGS 0 +#endif + +// macros for boilerplate code to object messages +#include "RTE/MessageCallbacks.h" + +#endif // for header file diff --git a/Gem/develop/include/Gem/Base/GemBase.h b/Gem/develop/include/Gem/Base/GemBase.h new file mode 100644 index 0000000..09e6a8f --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemBase.h @@ -0,0 +1,133 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + The base class for all of the gem objects + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_BASE_GEMBASE_H_ +#define _INCLUDE__GEM_BASE_GEMBASE_H_ + +#include "Gem/GemGL.h" +#include "Gem/ContextData.h" + +#include "Base/CPPExtern.h" + +class GemCache; +class GemState; +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + GemBase + + Base class for gem objects + + DESCRIPTION + + -----------------------------------------------------------------*/ +class GEM_EXTERN GemBase : public CPPExtern +{ + protected: + + ////////// + // Constructor + GemBase(); + + ////////// + // Destructor + virtual ~GemBase(); + + ////////// + virtual void render(GemState *state) = 0; + + ////////// + void continueRender(GemState *state); + + ////////// + // After objects below you in the chain have finished. + // You should reset all GEM/OpenGL states here. + virtual void postrender(GemState *) { ; } + + ////////// + // Called when rendering stops + +#if 1/*(jmz) this seems to be for gem2pdp*/ + virtual void stoprender() { realStopRendering(); } +#endif + + ////////// + // If you care about the start of rendering + virtual void startRendering() { ; } + + ////////// + // If you care about the stop of rendering + virtual void stopRendering() { ; } + + + ////////// + // has rendering started ? + // deprecated, use 'getState()==RENDERING' instead + bool gem_amRendering; + + ////////// + // If anything in the object has changed + virtual void setModified(); + + ////////// + // Don't mess with this unless you know what you are doing. + GemCache *m_cache; + ////////// + // check whether this object has changed + bool m_modified; + + ////////// + // The outlet + t_outlet *m_out1; + + + ////////// + // this gets called in the before the startRendering() routine + // if it returns TRUE, the object's startRendering(), render() and stopRendering() functions will be called + // it it returns FALSE, the object will be disabled + // when rendering is restarted, this function get's called again + // the default is to enable rendering + // this function is important if you want to disable an object because it cannot be used (e.g. missing driver support) + virtual bool isRunnable(void); + + ////////// + // creation callback + static void real_obj_setupCallback(t_class *classPtr) + { CPPExtern::real_obj_setupCallback(classPtr); GemBase::obj_setupCallback(classPtr); } + + enum RenderState {INIT, ENABLED, DISABLED, RENDERING, MODIFIED}; + + private: + + void realStopRendering(); + void gem_startstopMess(int state); + void gem_renderMess(GemCache* state, GemState* state2); + + static inline GemBase *GetMyClass(void *data) {return((GemBase *)((Obj_header *)data)->data);} + + friend class gemhead; + static void obj_setupCallback(t_class *classPtr); + static void gem_MessCallback(void *, t_symbol *,int, t_atom*); + + /* whether the object is internally disabled or not + * objects are to be disabled, if the system cannot make use of them, e.g. because of unsupported openGL features + */ + gem::ContextDatam_enabled; + gem::ContextDatam_state; + + protected: + enum RenderState getState(void); +}; + +#endif // for header file diff --git a/Gem/develop/include/Gem/Base/GemCache.h b/Gem/develop/include/Gem/Base/GemCache.h new file mode 100644 index 0000000..cc52dab --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemCache.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemCache.h is deprecated - please include "Gem/Cache.h" instead +#endif +#include "Gem/Cache.h" diff --git a/Gem/develop/include/Gem/Base/GemContext.h b/Gem/develop/include/Gem/Base/GemContext.h new file mode 100644 index 0000000..7081051 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemContext.h @@ -0,0 +1,59 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + a rendering context + + Copyright (c) 2009-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ +#ifndef _INCLUDE__GEM_BASE_GEMCONTEXT_H_ +#define _INCLUDE__GEM_BASE_GEMCONTEXT_H_ + +#include "Gem/ExportDef.h" +#include "Gem/GemGL.h" + + +# if defined _WIN32 +typedef struct WGLEWContextStruct WGLEWContext; +# define GemGlewXContext WGLEWContext +# elif defined __linux__ || defined HAVE_GL_GLX_H +typedef struct GLXEWContextStruct GLXEWContext; +# define GemGlewXContext GLXEWContext +# else +// no GemGlewXContext on this platform... +# endif + +typedef struct GLEWContextStruct GLEWContext; + +namespace gem { +class GEM_EXTERN Context { + private: + class PIMPL; + PIMPL*m_pimpl; + + public: + Context(void); + Context(const Context&); + virtual ~Context(void); + + Context&operator=(const Context&); + + // make context current + bool push(void); + + // make context uncurrent + bool pop(void); + + public: + static unsigned int getContextId(void); + static GLEWContext*getGlewContext(void); +#ifdef GemGlewXContext + static GemGlewXContext*getGlewXContext(void); +#endif /* GemGlewXContext */ +}; + +}; // namespace +#endif // for header file diff --git a/Gem/develop/include/Gem/Base/GemContextData.h b/Gem/develop/include/Gem/Base/GemContextData.h new file mode 100644 index 0000000..1f722c8 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemContextData.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning Base/GemContextData.h is deprecated - please include "Gem/ContextData.h" instead +#endif +#include "Gem/ContextData.h" diff --git a/Gem/develop/include/Gem/Base/GemEvent.h b/Gem/develop/include/Gem/Base/GemEvent.h new file mode 100644 index 0000000..5baedbc --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemEvent.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemEvent.h is deprecated - please include "Gem/Event.h" instead +#endif +#include "Gem/Event.h" diff --git a/Gem/develop/include/Gem/Base/GemExportDef.h b/Gem/develop/include/Gem/Base/GemExportDef.h new file mode 100644 index 0000000..1a12ef3 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemExportDef.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning Base/GemExportDef.h is deprecated - please include "Gem/ExportDef.h" instead +#endif +#include "Gem/ExportDef.h" diff --git a/Gem/develop/include/Gem/Base/GemFuncUtil.h b/Gem/develop/include/Gem/Base/GemFuncUtil.h new file mode 100644 index 0000000..d07c0aa --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemFuncUtil.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemFuncUtil.h is deprecated - please include "Utils/Functions.h" instead +#endif +#include "Utils/Functions.h" diff --git a/Gem/develop/include/Gem/Base/GemGL.h b/Gem/develop/include/Gem/Base/GemGL.h new file mode 100644 index 0000000..2c43655 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemGL.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemGL.h is deprecated - please include "Gem/GemGL.h" instead +#endif +#include "Gem/GemGL.h" diff --git a/Gem/develop/include/Gem/Base/GemGLBase.h b/Gem/develop/include/Gem/Base/GemGLBase.h new file mode 100644 index 0000000..6a3d319 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemGLBase.h @@ -0,0 +1,23 @@ +/* ------------------------------------------------------------------ + * GEM - Graphics Environment for Multimedia + * + * Copyright (c) 2008 zmoelnig@iem.at + * For information on usage and redistribution, and for a DISCLAIMER + * OF ALL WARRANTIES, see the file, "GEM.LICENSE.TERMS" + * + * this file has been generated... + * ------------------------------------------------------------------ + */ +#ifndef _INCLUDE__GEM_BASE_GEMGLBASE_H_ +#define _INCLUDE__GEM_BASE_GEMGLBASE_H_ + +#include "Utils/GLUtil.h" +#include "Base/GemBase.h" + +class GEM_EXTERN GemGLBase : public GemBase +{ + +}; + + +#endif /* for header file */ diff --git a/Gem/develop/include/Gem/Base/GemGLUtil.h b/Gem/develop/include/Gem/Base/GemGLUtil.h new file mode 100644 index 0000000..da69562 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemGLUtil.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemGLUtil.h is deprecated - please include "Utils/GLUtil.h" instead +#endif +#include "Utils/GLUtil.h" diff --git a/Gem/develop/include/Gem/Base/GemGluObj.h b/Gem/develop/include/Gem/Base/GemGluObj.h new file mode 100644 index 0000000..a08e33a --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemGluObj.h @@ -0,0 +1,92 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + A Glu object + + Copyright (c) 1997-2000 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_BASE_GEMGLUOBJ_H_ +#define _INCLUDE__GEM_BASE_GEMGLUOBJ_H_ + +// I hate Microsoft...I shouldn't have to do this! +#ifdef _WIN32 +#include +#endif + +#include + + +#include +#ifndef M_PI +# define M_PI (3.1415926) +#endif + +#include "Base/GemShape.h" + +#ifndef GLU_SILHOUETTE +# define GLU_SILHOUETTE 0 +#endif + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + GemGluObj + + A Glu object + +DESCRIPTION + + Inlet for an int - "in2" + + "in2" - the number of slices in the object + +-----------------------------------------------------------------*/ +class GEM_EXTERN GemGluObj : public GemShape +{ + public: + + ////////// + // Constructor + GemGluObj(t_floatarg size, t_floatarg slices=10.f, t_floatarg stacks=0.f); + + protected: + + ////////// + // Destructor + virtual ~GemGluObj(); + + ////////// + // The number of slices in the quadric + void numSlicesMess(int numSlices); + void numSlicesMess(int numSlices, int numStacks); + + ////////// + // The number of slices + int m_numSlices, m_numStacks; + + ////////// + t_inlet *m_sliceInlet; + + ////////// + // creation callback + static void real_obj_setupCallback(t_class *classPtr) + { GemShape::real_obj_setupCallback(classPtr); GemGluObj::obj_setupCallback(classPtr); } + + private: + + static inline GemGluObj *GetMyClass(void *data) {return((GemGluObj *)((Obj_header *)data)->data);} + + ////////// + // Static member functions + static void obj_setupCallback(t_class *classPtr); + static void numSlicesMessCallback(void *data, t_symbol*, int, t_atom*); +}; + +#endif // for header file diff --git a/Gem/develop/include/Gem/Base/GemLoaders.h b/Gem/develop/include/Gem/Base/GemLoaders.h new file mode 100644 index 0000000..f0efbc8 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemLoaders.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning Base/GemLoaders.h is deprecated - please include "Gem/Loaders.h" instead +#endif +#include "Gem/Loaders.h" diff --git a/Gem/develop/include/Gem/Base/GemMan.h b/Gem/develop/include/Gem/Base/GemMan.h new file mode 100644 index 0000000..ed4b9af --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemMan.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemMan.h is deprecated - please include "Gem/Manager.h" instead +#endif +#include "Gem/Manager.h" diff --git a/Gem/develop/include/Gem/Base/GemMath.h b/Gem/develop/include/Gem/Base/GemMath.h new file mode 100644 index 0000000..4a26d02 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemMath.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemMath.h is deprecated - please include "Utils/Math.h" instead +#endif +#include "Utils/Math.h" diff --git a/Gem/develop/include/Gem/Base/GemPBuffer.h b/Gem/develop/include/Gem/Base/GemPBuffer.h new file mode 100644 index 0000000..46b1229 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemPBuffer.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemPBuffer.h is deprecated - please include "Gem/PBuffer.h" instead +#endif +#include "Gem/PBuffer.h" diff --git a/Gem/develop/include/Gem/Base/GemPathBase.h b/Gem/develop/include/Gem/Base/GemPathBase.h new file mode 100644 index 0000000..2d24619 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemPathBase.h @@ -0,0 +1,71 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + Base class for paths + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_BASE_GEMPATHBASE_H_ +#define _INCLUDE__GEM_BASE_GEMPATHBASE_H_ + +#include "Base/CPPExtern.h" + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + GemPathBase + + +DESCRIPTION + + +-----------------------------------------------------------------*/ +class GEM_EXTERN GemPathBase : public CPPExtern +{ + CPPEXTERN_HEADER(GemPathBase, CPPExtern); + + public: + + ////////// + // Constructor + GemPathBase(int argc, t_atom *argv); + + protected: + + ////////// + // Destructor + virtual ~GemPathBase(); + + ////////// + // When an open is received + virtual void openMess(t_symbol *arrayname); + + ////////// + // When a float val is received + virtual void floatMess(t_float val); + + /////////// + // do the actual interpolation + virtual void lookupFunc(t_float x, t_float *ret, int numDimen, int npnts, t_float *pnts) = 0; + + ////////// + // The number of dimensions + int m_numDimens; + + ////////// + // The array + t_garray *m_array; + + ////////// + // The outlet + t_outlet *m_out1; +}; + +#endif // for header file diff --git a/Gem/develop/include/Gem/Base/GemPixConvert.h b/Gem/develop/include/Gem/Base/GemPixConvert.h new file mode 100644 index 0000000..5a2ef0d --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemPixConvert.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemPixConvert.h is deprecated - please include "Gem/PixConvert.h" instead +#endif +#include "Gem/PixConvert.h" diff --git a/Gem/develop/include/Gem/Base/GemPixDualObj.h b/Gem/develop/include/Gem/Base/GemPixDualObj.h new file mode 100644 index 0000000..88ffabc --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemPixDualObj.h @@ -0,0 +1,190 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + An object which accepts two pixes. + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + Copyright (c) 2002 James Tittle & Chris Clepper + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_BASE_GEMPIXDUALOBJ_H_ +#define _INCLUDE__GEM_BASE_GEMPIXDUALOBJ_H_ + +#define NEW_DUAL_PIX + +#include "Base/GemPixObj.h" + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + GemPixDualObj + + An object which accepts two pixes. + +DESCRIPTION + + Inlet for a gem - "gem_right" + + "gem_right" - The second gem list + +-----------------------------------------------------------------*/ +class GEM_EXTERN GemPixDualObj : public GemPixObj +{ + public: + + ////////// + // Constructor + GemPixDualObj(); + + protected: + + ////////// + // Destructor + virtual ~GemPixDualObj(); + + void render(GemState *state); + + ////////// + // Derived classes should NOT override this! + // This makes sure that the images are the same size. + // This calls the other process functions based on the input images. + virtual void processImage(imageStruct &image); + +#ifndef NEW_DUAL_PIX + ////////// + // The derived class HAS override this. + // This is called whenever a new image comes through and + // both of the image structs are RGBA + virtual void processDualImage(imageStruct &image, imageStruct &right) = 0; + + ////////// + // The derived class CAN override this. + // This is called whenever a new image comes through and both + // of the image structs are gray8. + // The default behavior is to output an error. + virtual void processDualGray(imageStruct &image, imageStruct &right); + + ////////// + // The derived class CAN override this. + // This is called whenever a new image comes through and + // the left image is an RGBA while the right is a gray8. + // The default behavior is to output an error. + virtual void processRightGray(imageStruct &image, imageStruct &right); + + ////////// + // The derived class CAN override this. + // This is called whenever a new image comes through and + // the left image is a gray8, the right is an RGBA + // The default behavior is to output an error. + virtual void processLeftGray(imageStruct &image, imageStruct &right); + + ////////// + // The derived class CAN override this. + // This is called whenever a new image comes through and both + // of the image structs are YUV. + // The default behavior is to output an error. + virtual void processDualYUV(imageStruct &image, imageStruct &right); + + ////////// + // The derived class CAN override this. + // This is called whenever a new image comes through and + // the left image is an RGBA while the right is a YUV. + // The default behavior is to output an error. + virtual void processRightYUV(imageStruct &image, imageStruct &right); + + ////////// + // The derived class CAN override this. + // This is called whenever a new image comes through and + // the left image is a YUV, the right is an RGBA + // The default behavior is to output an error. + virtual void processLeftYUV(imageStruct &image, imageStruct &right); +#else + ////////// + // The derived class SHOULD override this, if it provides a method for "all" formats + virtual void processDualImage(imageStruct &left, imageStruct &right); + // Here come the more specific dual-processors + // The derived class SHOULD override these as needed + + /* for simplicity this is done via preprocessor defines: + * the functions defined are like : + ** processRGBA_RGBA(left, right); + */ + +#define PROCESS_DUALIMAGE(CS1, CS2) \ + virtual void process##CS1 ##_##CS2 (imageStruct &left, imageStruct &right){processDualImage(left, right);} + PROCESS_DUALIMAGE(RGBA, RGBA); + PROCESS_DUALIMAGE(RGBA, Gray); + PROCESS_DUALIMAGE(RGBA, YUV ); + + PROCESS_DUALIMAGE(Gray, RGBA); + PROCESS_DUALIMAGE(Gray, Gray); + PROCESS_DUALIMAGE(Gray, YUV ); + + PROCESS_DUALIMAGE(YUV, RGBA); + PROCESS_DUALIMAGE(YUV, Gray); + PROCESS_DUALIMAGE(YUV, YUV ); +#undef PROCESS_DUALIMAGE + + /* for simplicity this is done via preprocessor defines: + * the functions defined are like : + ** processRGBA_Altivec(left, right); + */ +#define PROCESS_DUALIMAGE_SIMD(CS1, CS2,_SIMD_EXT) \ + virtual void process##CS1 ##_##_SIMD_EXT (imageStruct &left, imageStruct &right){ \ + process##CS1 ##_##CS2 (left, right);} + + PROCESS_DUALIMAGE_SIMD(RGBA, RGBA, MMX); + PROCESS_DUALIMAGE_SIMD(RGBA, MMX , SSE2); + PROCESS_DUALIMAGE_SIMD(RGBA, RGBA, Altivec); + + PROCESS_DUALIMAGE_SIMD(YUV , YUV , MMX); + PROCESS_DUALIMAGE_SIMD(YUV , MMX , SSE2); + PROCESS_DUALIMAGE_SIMD(YUV , YUV , Altivec); + + PROCESS_DUALIMAGE_SIMD(Gray, Gray, MMX); + PROCESS_DUALIMAGE_SIMD(Gray, MMX , SSE2); + PROCESS_DUALIMAGE_SIMD(Gray, Gray, Altivec); +#undef PROCESS_DUALIMAGE_SIMD + +#endif + ////////// + virtual void postrender(GemState *); + virtual void stopRendering(); + virtual void rightstopRendering() { ; } + virtual void rightRender(GemState *state); + virtual void rightPostrender(GemState *) { ; } + virtual void rightStoprender() { ; } + + ////////// + GemCache *m_cacheRight; + + ////////// + pixBlock *m_pixRight; + + int m_pixRightValid; + int org_pixRightValid; + + ////////// + t_inlet *m_inlet; + + ////////// + // creation callback + static void real_obj_setupCallback(t_class *classPtr) + { GemPixObj::real_obj_setupCallback(classPtr); GemPixDualObj::obj_setupCallback(classPtr); } + + private: + + static inline GemPixDualObj *GetMyClass(void *data) {return((GemPixDualObj *)((Obj_header *)data)->data);} + + ////////// + // Static member functions + static void obj_setupCallback(t_class *classPtr); + static void gem_rightMessCallback(void *x, t_symbol *s, int argc, t_atom *argv); +}; +#endif // for header file diff --git a/Gem/develop/include/Gem/Base/GemPixImageLoad.h b/Gem/develop/include/Gem/Base/GemPixImageLoad.h new file mode 100644 index 0000000..f7aefce --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemPixImageLoad.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemPixImageLoad.h is deprecated - please include "Gem/ImageIO.h" instead +#endif +#include "Gem/ImageIO.h" diff --git a/Gem/develop/include/Gem/Base/GemPixImageSave.h b/Gem/develop/include/Gem/Base/GemPixImageSave.h new file mode 100644 index 0000000..f5f3bf7 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemPixImageSave.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemPixImageSave.h is deprecated - please include "Gem/ImageIO.h" instead +#endif +#include "Gem/ImageIO.h" diff --git a/Gem/develop/include/Gem/Base/GemPixObj.h b/Gem/develop/include/Gem/Base/GemPixObj.h new file mode 100644 index 0000000..b964ad3 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemPixObj.h @@ -0,0 +1,149 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + Base class for pix class gem objects + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_BASE_GEMPIXOBJ_H_ +#define _INCLUDE__GEM_BASE_GEMPIXOBJ_H_ + +#include "Base/GemBase.h" +#include "Gem/Image.h" +#include "Gem/Rectangle.h" +#include "stdlib.h" +#include "string.h" +#include "math.h" + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + GemPixObj + + Base class for pix class gem objects + +DESCRIPTION + +-----------------------------------------------------------------*/ +class GEM_EXTERN GemPixObj : public GemBase +{ + public: + + ////////// + // Constructor + GemPixObj(); + + protected: + + ////////// + // Destructor + virtual ~GemPixObj() { } + + ////////// + // The derived class should override this if it provides + // processing independent of the image.format + // This is called whenever a new image comes through. + // The default is to output an error + virtual void processImage(imageStruct &image); + + ////////// + // The derived class should override this. + // This is called whenever a new RGB image comes through. + // The default is to call processImage(). + virtual void processRGBImage(imageStruct &image); + + ////////// + // The derived class should override this. + // This is called whenever a new RGBA image comes through. + // The default is to call processImage(). + virtual void processRGBAImage(imageStruct &image); + // SIMD-optimized functions: by default the non-optimized function is called + virtual void processRGBAMMX(imageStruct &image); + virtual void processRGBASSE2(imageStruct &image); + virtual void processRGBAAltivec(imageStruct &image); + + ////////// + // The derived class should override this. + // This is called whenever a new gray8 image comes through. + // The default is to call processImage(). + virtual void processGrayImage(imageStruct &image); + // SIMD-optimized functions: by default the non-optimized function is called + virtual void processGrayMMX(imageStruct &image); + virtual void processGraySSE2(imageStruct &image); + virtual void processGrayAltivec(imageStruct &image); + + ////////// + // The derived class should override this. + // This is called whenever a new YUV422 image comes through. + // The default is to call processImage(). + virtual void processYUVImage(imageStruct &image); + // SIMD-optimized functions: by default the non-optimized function is called + virtual void processYUVMMX(imageStruct &image); + virtual void processYUVSSE2(imageStruct &image); + virtual void processYUVAltivec(imageStruct &image); + + ////////// + // If the derived class needs the image resent. + // This sets the dirty bit on the pixBlock. + void setPixModified(); + + ////////// + // Turn on/off processing + void processOnOff(int on); + + ////////// + // the pixBlock-cache + pixBlock cachedPixBlock; + pixBlock *orgPixBlock; + + ////////// + int m_processOnOff; + int m_simd; + + ////////// + // handle ROI + gem::Rectangle m_roi; + bool m_doROI; + + ////////// + // creation callback + static void real_obj_setupCallback(t_class *classPtr) { + GemBase::real_obj_setupCallback(classPtr); + GemPixObj::obj_setupCallback(classPtr); + } + + ////////// + // The derived class should NOT override this unless they have some + // very special behavior. + // Do the rendering, which calls processImage or processGrayImage, etc... + // save the image-information + virtual void render(GemState *state); + // turn the pointer back to the old data after rendering + virtual void postrender(GemState *state); + + void startRendering(void) { + //post("start rendering"); + setPixModified(); + } + + private: + + static inline GemPixObj *GetMyClass(void *data) {return((GemPixObj *)((Obj_header *)data)->data);} + + ////////// + // static member functions + static void obj_setupCallback(t_class *classPtr); + + protected: + virtual void SIMD(int); +}; + + +#endif // for header file diff --git a/Gem/develop/include/Gem/Base/GemPixPete.h b/Gem/develop/include/Gem/Base/GemPixPete.h new file mode 100644 index 0000000..053ad9c --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemPixPete.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemPixPete.h is deprecated - please include "Utils/PixPete.h" instead +#endif +#include "Utils/PixPete.h" diff --git a/Gem/develop/include/Gem/Base/GemPixUtil.h b/Gem/develop/include/Gem/Base/GemPixUtil.h new file mode 100644 index 0000000..628a165 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemPixUtil.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemPixUtil.h is deprecated - please include "Gem/Image.h" instead +#endif +#include "Gem/Image.h" diff --git a/Gem/develop/include/Gem/Base/GemSIMD.h b/Gem/develop/include/Gem/Base/GemSIMD.h new file mode 100644 index 0000000..eed6c17 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemSIMD.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemSIMD.h is deprecated - please include "Utils/SIMD.h" instead +#endif +#include "Utils/SIMD.h" diff --git a/Gem/develop/include/Gem/Base/GemShape.h b/Gem/develop/include/Gem/Base/GemShape.h new file mode 100644 index 0000000..2878156 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemShape.h @@ -0,0 +1,141 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + Base class for shapes + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_BASE_GEMSHAPE_H_ +#define _INCLUDE__GEM_BASE_GEMSHAPE_H_ + +#include "Base/GemBase.h" +#include +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + GemShape + + Base class for shapes + + DESCRIPTION + + Inlet for a float - "ft1" + + "ft1" - the size of the shape + "draw" - the drawing style + "width" - the line width when drawing with lines + + -----------------------------------------------------------------*/ +class TexCoord; +class GEM_EXTERN GemShape : public GemBase +{ + public: + + ////////// + // Constructor + // [in] size - A size of 0. means to just use the default (ie, 1.) + GemShape(t_floatarg size); + GemShape(); + + protected: + + ////////// + // Destructor + virtual ~GemShape(); + + //----------------------------------- + // GROUP: Access functions + //----------------------------------- + + ////////// + // The width of the lines in line draw mode + void linewidthMess(float linewidth); + + ////////// + // The size of the object + void sizeMess(float size); + + ////////// + // How the object should be drawn + virtual void typeMess(t_symbol *type); + + //----------------------------------- + // GROUP: Utility functions + //----------------------------------- + + void SetVertex(GemState* state,float x, float y, float z, + float tx, float ty, + int curCoord); + + void SetVertex(GemState* state,float x, float y, float z, + float s, float t, float r, float q, + int curCoord); + + //----------------------------------- + // GROUP: Member variables + //----------------------------------- + + ////////// + // The line width for GL_LINE mode + GLfloat m_linewidth; + + ////////// + // The size of the object + GLfloat m_size; + + ////////// + // The drawing style (GL_LINE, GL_POLYGON, etc) + GLenum m_drawType; + + ////////// + // do we want blending? + GLboolean m_blend; + void blendMess(float blend); + + + //////// + // override this memberfunction to automatically enable softblended rendering,... + virtual void renderShape(GemState *state) {;} + + // OR + // override this memberfunction if you don't want softblending + virtual void render(GemState *state); + + + ////////// + // The size inlet + t_inlet *m_inlet; + + //----------------------------------- + // GROUP: Setup functions + //----------------------------------- + + ////////// + // creation callback + static void real_obj_setupCallback(t_class *classPtr) + { GemBase::real_obj_setupCallback(classPtr); GemShape::obj_setupCallback(classPtr); } + + private: + + static inline GemShape *GetMyClass(void *data) {return((GemShape *)((Obj_header *)data)->data);} + + ////////// + // static member functions + static void obj_setupCallback(t_class *classPtr); + + protected: + int m_texType, m_texNum; + TexCoord*m_texCoords; + bool m_lighting; + + std::mapm_drawTypes; +}; + +#endif // for header file diff --git a/Gem/develop/include/Gem/Base/GemState.h b/Gem/develop/include/Gem/Base/GemState.h new file mode 100644 index 0000000..d8ea046 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemState.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemState.h is deprecated - please include "Gem/State.h" instead +#endif +#include "Gem/State.h" diff --git a/Gem/develop/include/Gem/Base/GemVector.h b/Gem/develop/include/Gem/Base/GemVector.h new file mode 100644 index 0000000..a235559 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemVector.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning GemVector.h is deprecated - please include "Utils/Vector.h" instead +#endif +#include "Utils/Vector.h" diff --git a/Gem/develop/include/Gem/Base/GemVersion.h b/Gem/develop/include/Gem/Base/GemVersion.h new file mode 100644 index 0000000..aec3de0 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemVersion.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning Base/GemVersion.h is deprecated - please include "Gem/Version.h" instead +#endif +#include "Gem/Version.h" diff --git a/Gem/develop/include/Gem/Base/GemWindow.h b/Gem/develop/include/Gem/Base/GemWindow.h new file mode 100644 index 0000000..c5105c4 --- /dev/null +++ b/Gem/develop/include/Gem/Base/GemWindow.h @@ -0,0 +1,211 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + a window class to render to + + Copyright (c) 2009-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_BASE_GEMWINDOW_H_ +#define _INCLUDE__GEM_BASE_GEMWINDOW_H_ + +#include "Gem/GemGL.h" +#include "Base/CPPExtern.h" + +#include +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + GemWindow + + a window + +DESCRIPTION + +-----------------------------------------------------------------*/ +namespace gem { + class Context; +}; + +class GEM_EXTERN GemWindow : public CPPExtern +{ + CPPEXTERN_HEADER(GemWindow, CPPExtern); + + private: + class PIMPL; + PIMPL*m_pimpl; + + public: + + ////////// + // Constructor + GemWindow(void); + + ////////// + // Destructor + virtual ~GemWindow(void); + + public: + /* OUTPUT */ + + /* an outlet to propagate information to the patch... mainly callbacks from the context */ + /* LATER think about detaching the output from the stack, so we can e.g. destroy a window from a mouse-callback */ + void info(std::vector); + void info(t_symbol*s, int, t_atom*); + void info(std::string); + void info(std::string, t_float); + void info(std::string, int i); + void info(std::string, std::string); + + /* tell downstream objects to render */ + void bang(void); + + /* mouse movement */ + void motion(int devId, int x, int y); + /* mouse buttons */ + void button(int devId, int id, int state); + /* mouse entering window */ + void entry(int devId, int state); + /* keyboard buttons */ + void key(int devId, std::string, int, int state); + + /* window resize/move */ + void dimension(unsigned int, unsigned int); + void position (int, int); + + /* INPUT */ + + /* create a new context */ + static gem::Context*createContext(void); + /* destroy a given context; + * @returns NULL + */ + static gem::Context*destroyContext(gem::Context*); + + /* this MUST be called from the derived classes + * as it will eventually establish a new GemContext (if m_context is non-NULL) + * if you want to share GemContext's you MUST call + * GemWindow::createContext() yourself and set m_context to the result + * + * if false is returned, you should not continue + */ + bool createGemWindow(void); + /* create a new window + * make sure that this calls the parent's createContext() method + */ + virtual bool create(void) = 0; + + /* destroy an established context+infrastructuure * + * make sure that this get's called from your destroy() implementation + */ + void destroyGemWindow(); + /* create the current window + * make sure to call GemWindow::destroyGemWindow() + */ + virtual void destroy(void) = 0; + + /* make the object's context (window,...) the current context + * this is virtual, so objects can add their own code + * note however, that they should also call this (parent's) function within + * typically implementations look like this: + * bool ::makeCurrent(void) { + * // do your own stuff + * + * is false is returned, do not attempt to use it (e.g. draw into it) + */ + virtual bool makeCurrent(void) = 0; + + /* + * make the GemWindow current (reset stacks), switch multiContext + */ + bool pushContext(void); + /* + * make uncurrent + */ + bool popContext (void); + + /* swap back/front buffer + */ + virtual void swapBuffers(void) = 0; + + /* dispatch messages from the window + * this might get called more often than the render-cycle + * it might also be called automatically as soon as the window + * is create()ed (and until the window is destroy()ed) + */ + virtual void dispatch(void); + + /* render to this window + * the default implementation calls: + * if(!makeCurrent())return; + * if(!pushContext())return; + * bang(); + * if(m_buffer==2)swap(); + * popContext(); + * but you can override this, if you want to + */ + virtual void render(void); + + /* set/get the dimension of the context + * setting is done by supplying arguments to the method; + * querying is done by supplying NO arguments + * this should be kept throughout + */ + virtual void dimensionsMess(unsigned int width, unsigned int height) = 0; + + + // common property setters + // by default they will simply set the corresponding values (below in the protected section) + // to whatever argument is given them + // so you can use these values when creating the window + // however, if you need to take immediate action (e.g. because you can), you ought to override these functions + + /* render context (pre creation) */ + virtual void bufferMess(int buf); + virtual void fsaaMess(int value); + + /* window decoration (pre creation) */ + virtual void titleMess(std::string); + virtual void borderMess(bool on); + + virtual void fullscreenMess(int on); + virtual void offsetMess(int x, int y); + + /* creation/destruction */ + virtual void createMess(std::string); + virtual void destroyMess(void); + + /* post creation */ + virtual void cursorMess(bool on); + + /* print some info */ + virtual void printMess(void); + + /* fallback callback */ + virtual void anyMess(t_symbol*s, int argc, t_atom*argv); + + protected: + unsigned int m_width, m_height; + + // common properties of GemWindow's + // you can safely ignore these, if they mean nothing to you + // however, if they do mean something to you, it would be good if you used these + int m_xoffset, m_yoffset; + bool m_border; + int m_fullscreen; + + unsigned int m_buffer; + std::string m_title; + bool m_cursor; + int m_fsaa; + + gem::Context* m_context; +}; + + + +#endif // for header file diff --git a/Gem/develop/include/Gem/Base/Matrix.h b/Gem/develop/include/Gem/Base/Matrix.h new file mode 100644 index 0000000..cf8c838 --- /dev/null +++ b/Gem/develop/include/Gem/Base/Matrix.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning Matrix.h is deprecated - please include "Utils/Matrix.h" instead +#endif +#include "Utils/Matrix.h" diff --git a/Gem/develop/include/Gem/Base/TextBase.h b/Gem/develop/include/Gem/Base/TextBase.h new file mode 100644 index 0000000..f65204a --- /dev/null +++ b/Gem/develop/include/Gem/Base/TextBase.h @@ -0,0 +1,245 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + A text + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + Copyright (c) 2005 Georg Holzmann + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_BASE_TEXTBASE_H_ +#define _INCLUDE__GEM_BASE_TEXTBASE_H_ + + +#ifdef _WIN32 +# pragma warning( disable : 4786 ) +# pragma warning( disable : 4788 ) +#endif + +#include "Gem/GemConfig.h" + +#include "RTE/Outlet.h" +#include "Base/GemBase.h" + +#include +#include + +#ifdef FTGL +# define FONT_SCALE 0.2/3.0 +# ifdef HAVE_FTGL_FTGL_H +# include "FTGL/ftgl.h" +# else +# include "FTFont.h" +# endif +#else +# define FONT_SCALE 1.0 +#endif + +using std::vector; +using std::string; +using std::wstring; + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + TextBase + + Base class for text objects + + DESCRIPTION + + "ft1" - The font size + "text" - The text to draw + + -----------------------------------------------------------------*/ +class GEM_EXTERN TextBase : public GemBase +{ + CPPEXTERN_HEADER(TextBase, GemBase); + + public: + + ////////// + // Constructor with args + TextBase(int argc, t_atom *argv); + + + protected: + + ////////// + // Destructor + virtual ~TextBase(); + + ////////// + // Do the rendering + virtual void render(GemState*); + + ////////// + // break a string according to '\n' + virtual void breakLine(wstring line); + + //-- moocow + ////////// + // Set the text string from an ASCII list + virtual void stringMess(int argc, t_atom *argv); + void stringMess(t_symbol*, int argc, t_atom*argv) { stringMess(argc, argv); } + //-- /moocow + + ////////// + // Set the text string + virtual void textMess(int argc, t_atom *argv); + void textMess(t_symbol*, int argc, t_atom*argv) { textMess(argc, argv); } + + ////////// + // The font to use + virtual void fontNameMess(const std::string filename); + + ////////// + // set line distance + virtual void linedistMess(float dist); + + ////////// + // Set the font size + virtual void setFontSize(float size); + virtual void setFontSize(); + + ////////// + // Set the precision for rendering + virtual void setPrecision(float prec); + + ////////// + // The different types of justification + enum JustifyWidth { LEFT, RIGHT, CENTER, BASEW }; + enum JustifyHeight { BOTTOM, TOP, MIDDLE, BASEH }; + enum JustifyDepth { FRONT, BACK, HALFWAY, BASED }; + + ////////// + // Set the justification + virtual void setJustification(JustifyWidth wType); + virtual void setJustification(JustifyWidth wType, JustifyHeight hType); + virtual void setJustification(JustifyWidth wType, JustifyHeight hType, JustifyDepth dType); + + typedef struct Justification_ { + float width; + float height; + float depth; + float scale; + } Justification; + ////////// + // do the justification + // x1,...,z2 just defines the bounding box of the rendered string. + // y_offset is the offset of the current line + virtual Justification justifyFont(float x1, float y1, float z1, + float x2, float y2, float z2, float y_offset=0); + + + //----------------------------------- + // GROUP: Member variables + //----------------------------------- + + ////////// + // The text to display + // (one entry for each line) + vector m_theText; + + ////////// + // distance between the lines + // (1 = 1 line, 0.5 = 0.5 lines, ...) + float m_dist; + + ////////// + // vector with the offset + // offset there individual lines + vector m_lineDist; + + ////////// + // Do we have a valid font? + int m_valid; + + ////////// + // The font fize + float m_fontSize; + + ////////// + // The font depth (only for extruded fonts) + float m_fontDepth; + + ////////// + // The rendering precision + float m_precision; + + ////////// + // The width justification + JustifyWidth m_widthJus; + + ////////// + // The height justification + JustifyHeight m_heightJus; + + ////////// + // The depth justification + JustifyDepth m_depthJus; + + ////////// + // The inlet + t_inlet *m_inlet; + + + ////////// + // The default font name + static std::string DEFAULT_FONT; + + ////////// + // get the bounding-box for the current text/font/... + void getBBox(float&x0,float&y0,float&z0, float&x1,float&y1,float&z1); + ////////// + // output information about the current font/text + // including the bbox + void fontInfo(void); + // an outlet to send font/text/...-info back to the patch + gem::RTE::Outlet m_infoOut; + + + ////////// + // The font structure +#ifdef FTGL + FTFont *m_font; + /* this should delete (m_font) if it is notnull and recreate it. + * a pointer to the new structure is returned (and is set to m_font). + * if creation fails, the font is cleaned-up and NULL is returned + */ + virtual FTFont* makeFont(const char*fontname)=0; + + /* this is just handy to reload a font */ + t_symbol* m_fontname; + /* on starting to render, we reload the font, to make sure it is there + * this rids us of having to reload the font by hand every time the rendering is restarted + */ + virtual void startRendering(void); + + /* render one line of the text */ + virtual void renderLine(const char*line,float dist); + virtual void renderLine(const wchar_t*line,float dist); +#endif + + private: + + /////////// + // helpers: + + /////////// + // helper to make the + // line distance vector + void makeLineDist(); + + ////////// + // Static member functions + static void justifyMessCallback(void *data, t_symbol *, int, t_atom*); +}; + +#endif // for header file diff --git a/Gem/develop/include/Gem/Gem/Cache.h b/Gem/develop/include/Gem/Gem/Cache.h new file mode 100644 index 0000000..bfb153a --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Cache.h @@ -0,0 +1,74 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + The state to pass among GEM objects + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_CACHE_H_ +#define _INCLUDE__GEM_GEM_CACHE_H_ + +#include "Gem/ExportDef.h" + +class gemhead; + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + GemCache + + The cache to pass among GEM objects + +DESCRIPTION + +-----------------------------------------------------------------*/ +#define GEMCACHE_MAGIC 0x1234567 +class GEM_EXTERN GemCache +{ + public: + + ////////// + // Constructor + GemCache(gemhead *parent); + + GemCache(const GemCache&); + + ////////// + // Destructor + virtual ~GemCache(void); + + + virtual GemCache& operator=(const GemCache&); + + ////////// + // Was a modification made which will void a display list? + bool dirty; + + ////////// + // Should the image be resent? + bool resendImage; + + ////////// + // has the Vertex-Array changed? + bool vertexDirty; + + ////////// + // re-set (like creation, but without instantiating + void reset(gemhead*parent); + + ////////// + gemhead *m_parent; + + ////////// + // indicates a valid cache + int m_magic; +}; + +#endif // for header file diff --git a/Gem/develop/include/Gem/Gem/ContextData.h b/Gem/develop/include/Gem/Gem/ContextData.h new file mode 100644 index 0000000..74804da --- /dev/null +++ b/Gem/develop/include/Gem/Gem/ContextData.h @@ -0,0 +1,149 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + data specific to a rendering context + + Copyright (c) 2009-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_CONTEXTDATA_H_ +#define _INCLUDE__GEM_GEM_CONTEXTDATA_H_ + +#include "Gem/ExportDef.h" +#include + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + ContextData + + rendering context specific data + this is heavily inspired by VrJuggler + + DESCRIPTION + + several things in openGL like display-lists are context dependent + if we have multiple contexts, such values most be generated for each context + ContextData provides a generic (templated) datatype for this + + LATER (SOONER) think about splitting the render() into a context-specific section that + set's up display-lists,... and a draw() function that just calls the pre-generated values + + -----------------------------------------------------------------*/ + +namespace gem { + +class GEM_EXTERN ContextDataBase { + protected: + static const int INVALID_CONTEXT; + virtual int getCurContext(void); + virtual ~ContextDataBase(void); +}; + + +template + class GEM_EXTERN ContextData : ContextDataBase + { + private: + public: + + ////////// + // Constructor + ContextData(void) : m_haveDefaultValue(false) {;} + + ContextData(ContextDataType v) : m_haveDefaultValue(true), m_defaultValue(v) {;} + + virtual ~ContextData() { + m_ContextDataVector.clear(); + } + + /** + * returns the context-specific value + * + * @usage ContextDatam_fun; m_fun=GL_FUNC_ADD; + * + * @pre We are in a draw process. + * @note Should only be called from the draw function. + * Results are un-defined for other functions. + */ + virtual operator ContextDataType() + { + return (*getPtrToCur()); + } + + /** + * assigns a value to the correct context + * + * @pre We are in a draw process. + * @note Should only be called from the draw function. + * Results are un-defined for other functions. + */ + virtual ContextDataType&operator = (ContextDataType value) + { + /* simplistic approach to handle out-of-context assignments: + * assign the value to all context instances + */ + if(INVALID_CONTEXT==getCurContext()) { + doSetAll(value); + } + + return (*getPtrToCur()=value); + } + + private: + bool m_haveDefaultValue; + ContextDataType m_defaultValue; + std::vector m_ContextDataVector; + + + /* Makes sure that the vector is at least requiredSize large */ + void checkSize(unsigned int requiredSize) + { + if(requiredSize > m_ContextDataVector.size()) + { + m_ContextDataVector.reserve(requiredSize); // Resize smartly + while(m_ContextDataVector.size() < requiredSize) // Add any new items needed + { + if(m_haveDefaultValue) { + m_ContextDataVector.push_back(new ContextDataType(m_defaultValue)); + } else { + m_ContextDataVector.push_back(new ContextDataType); + } + } + } + } + + /** + * Returns a pointer to the correct data element in the current context. + * + * @pre We are in the draw function. + * @post Synchronized. + * @note ASSERT: Same context is rendered by same thread each time. + */ + ContextDataType* getPtrToCur(void) + { + // Get current context + int context_id = getCurContext(); + // Cache ref for better performance + checkSize(context_id+1); // Make sure we are large enough (+1 since we have index) + + return m_ContextDataVector[context_id]; + } + + void doSetAll(ContextDataType v) + { + unsigned int i=0; + for(i=0; i< m_ContextDataVector.size(); i++) { + *m_ContextDataVector[i]=v; + } + } + }; +}; + + + +#endif // for header file diff --git a/Gem/develop/include/Gem/Gem/Dylib.h b/Gem/develop/include/Gem/Gem/Dylib.h new file mode 100644 index 0000000..1af65c1 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Dylib.h @@ -0,0 +1,68 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + - registers a loader with Pd + + Copyright (c) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_DYLIB_H_ +#define _INCLUDE__GEM_GEM_DYLIB_H_ + +#include "Gem/Exception.h" + + +/* an opaque handle to the platform specific library handle */ +class GemDylibHandle; +class CPPExtern; + +class GEM_EXTERN GemDylib { + private: + GemDylibHandle*m_handle; + + public: + GemDylib(const CPPExtern*obj, + const std::string libname, + const std::string extension=std::string("") + ) throw(GemException); + GemDylib(const std::string libname, + const std::string extension=std::string("") + ) throw(GemException); + + GemDylib(const GemDylib&); + + virtual ~GemDylib(void); + + typedef void (*function_t)(void); + + virtual GemDylib& operator=(const GemDylib&); + + // if void(void) exists in dylib, run it and return "true" + // else return false; + bool run(const std::string procname); + + // if exists in dylib, return it, else return NULL + function_t proc(const std::string procname); + + public: + /** + * LoadLib(): convenience function that searches a library named and then runs () + * if "extension" is NULL, a platform-specific default is used + * on success "true" is returned, else "false + */ + static bool LoadLib(const std::string procname, + const std::string baselibname, + const std::string fileext=std::string("")); + + + static const std::string getDefaultExtension(void); +}; + + + + +#endif diff --git a/Gem/develop/include/Gem/Gem/Event.h b/Gem/develop/include/Gem/Gem/Event.h new file mode 100644 index 0000000..2c76722 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Event.h @@ -0,0 +1,104 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + get keyboard/mouse callbacks + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_EVENT_H_ +#define _INCLUDE__GEM_GEM_EVENT_H_ + +#include "Gem/ExportDef.h" + +////////////////////////////////////////////////////////////////// +// +// Mouse motion callback +// +////////////////////////////////////////////////////////////////// +typedef void (*MOTION_CB)(int, int, void *); +////////// +// Set a mouse motion callback +GEM_EXTERN extern void setMotionCallback(MOTION_CB callback, void *data); + +////////// +// Remove a mouse motion callback +GEM_EXTERN extern void removeMotionCallback(MOTION_CB callback, void *data); + + +////////////////////////////////////////////////////////////////// +// +// Mouse button callback +// +////////////////////////////////////////////////////////////////// +typedef void (*BUTTON_CB)(int, int, int, int, void *); +////////// +// Set a button callback +// which == 0 == left +// which == 1 == middle +// which == 2 == right +GEM_EXTERN extern void setButtonCallback(BUTTON_CB callback, void *data); + +////////// +// Remove a button callback +GEM_EXTERN extern void removeButtonCallback(BUTTON_CB callback, void *data); + + +////////////////////////////////////////////////////////////////// +// +// Mouse wheel callback +// +////////////////////////////////////////////////////////////////// +typedef void (*WHEEL_CB)(int, int, void *); +////////// +// Set a wheel callback +GEM_EXTERN extern void setWheelCallback(WHEEL_CB callback, void *data); + +////////// +// Remove a wheel callback +GEM_EXTERN extern void removeWheelCallback(WHEEL_CB callback, void *data); + +////////////////////////////////////////////////////////////////// +// +// Keyboard callback +// +////////////////////////////////////////////////////////////////// +typedef void (*KEYBOARD_CB)(char *,int, int, void *); +////////// +// Set a keyboard callback +GEM_EXTERN extern void setKeyboardCallback(KEYBOARD_CB callback, void *data); + +////////// +// Remove a keyboard callback +GEM_EXTERN extern void removeKeyboardCallback(KEYBOARD_CB callback, void *data); + +////////////////////////////////////////////////////////////////// +// +// Resize callback +// +////////////////////////////////////////////////////////////////// +typedef void (*RESIZE_CB)(int, int, void *); +////////// +// Set a resize callback +GEM_EXTERN extern void setResizeCallback(RESIZE_CB callback, void *data); + +////////// +// Remove a resize callback +GEM_EXTERN extern void removeResizeCallback(RESIZE_CB callback, void *data); + +////////// +// Trigger an event +GEM_EXTERN extern void triggerMotionEvent(int x, int y); +GEM_EXTERN extern void triggerButtonEvent(int which, int state, int x, int y); +GEM_EXTERN extern void triggerWheelEvent(int axis, int value); +GEM_EXTERN extern void triggerKeyboardEvent(char *string, int value, int state); +GEM_EXTERN extern void triggerResizeEvent(int xSize, int ySize); + +#endif // for header file + diff --git a/Gem/develop/include/Gem/Gem/Exception.h b/Gem/develop/include/Gem/Gem/Exception.h new file mode 100644 index 0000000..6df277f --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Exception.h @@ -0,0 +1,58 @@ + +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + The base class for exceptions thrown by Gem + + Copyright (c) 2009-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + GemException + + an exception class... + +DESCRIPTION + + this is a class, we can throw on creation, + to make sure that the pd-object can not be created + + + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_EXCEPTION_H_ +#define _INCLUDE__GEM_GEM_EXCEPTION_H_ + +#include "Gem/ExportDef.h" +#include + +typedef struct _text t_object; + +class GEM_EXTERN GemException +{ + public: + GemException(void) throw(); + GemException(const char*error) throw(); + GemException(const std::string error) throw(); + virtual ~GemException(void) throw(); + + virtual const char *what(void) const throw(); + virtual void report(const char*origin=0) const throw(); + private: + const std::string ErrorString; +}; + +namespace gem { + GEM_EXTERN void catchGemException(const char*name=NULL, const t_object*obj=NULL); +}; + + +#endif /* _INCLUDE__GEM_GEM_EXCEPTION_H_ */ diff --git a/Gem/develop/include/Gem/Gem/ExportDef.h b/Gem/develop/include/Gem/Gem/ExportDef.h new file mode 100644 index 0000000..eb169eb --- /dev/null +++ b/Gem/develop/include/Gem/Gem/ExportDef.h @@ -0,0 +1,71 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + Export crap + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_EXPORTDEF_H_ +#define _INCLUDE__GEM_GEM_EXPORTDEF_H_ + +#if defined _MSC_VER +/* turn of some warnings on vc-compilers */ + +/* data conversion with possible loss of data */ +# pragma warning( disable : 4244 ) +/* identifier conversion with possible loss of data */ +# pragma warning( disable : 4305 ) +/* declspec without variable declaration */ +# pragma warning( disable : 4091 ) +/* M$DN classes exporting STL members... */ +# pragma warning( disable : 4251 ) +/* "switch" without "case" (just "default") */ +# pragma warning( disable : 4065 ) +/* Exception Specifications! */ +# pragma warning (disable : 4290) +/* CRT deprecation warnings */ +# define _CRT_SECURE_NO_WARNINGS 1 + +/* MSVC always uses dllimport/dllexport */ +#define DLL_EXPORT + +#endif /* _MSC_VER */ + + +#ifdef DLL_EXPORT +// Windows requires explicit import and exporting of functions and classes. +// While this is a pain to do sometimes, in large software development +// projects, it is very useful. +# define GEM_EXPORT __declspec(dllexport) +# define GEM_IMPORT __declspec(dllimport) + +# define GEM_DEPRECATED __declspec(deprecated) + +#elif defined __GNUC__ +# define GEM_EXPORT +# define GEM_IMPORT + +# define GEM_DEPRECATED __attribute__ ((deprecated)) + +#else +/* unknown compiler */ +# warning set up compiler specific defines +#endif + + + + +#ifdef GEM_INTERNAL +# define GEM_EXTERN GEM_EXPORT +#else +# define GEM_EXTERN GEM_IMPORT +#endif + +#endif // for header file diff --git a/Gem/develop/include/Gem/Gem/Files.h b/Gem/develop/include/Gem/Gem/Files.h new file mode 100644 index 0000000..08a178e --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Files.h @@ -0,0 +1,39 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + - file handling with Gem + + Copyright (c) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + + + +#ifndef _INCLUDE__GEM_GEM_FILES_H_ +#define _INCLUDE__GEM_GEM_FILES_H_ + +#include +#include +#include "Gem/ExportDef.h" + +class CPPExtern; +namespace gem { + + namespace files { + + GEM_EXTERN std::vectorgetFilenameListing(const std::string&pattern); + GEM_EXTERN std::string expandEnv(const std::string&, bool bashfilename=false); + + GEM_EXTERN std::string getExtension(const std::string&filename, bool make_lowercase=false); + + + GEM_EXTERN std::string getFullpath(const std::string&, const CPPExtern*obj=NULL); + + GEM_EXTERN void close(int fd); + }; +}; + +#endif /* _INCLUDE__GEM_GEM_FILES_H_ */ diff --git a/Gem/develop/include/Gem/Gem/GLStack.h b/Gem/develop/include/Gem/Gem/GLStack.h new file mode 100644 index 0000000..2584578 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/GLStack.h @@ -0,0 +1,74 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + handling of diverse openGL stacks + + Copyright (c) 1997-2000 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ +#ifndef _INCLUDE__GEM_GEM_GLSTACK_H_ +#define _INCLUDE__GEM_GEM_GLSTACK_H_ + +#include "Gem/ExportDef.h" + +#include + +namespace gem { +class GEM_EXTERN GLStack { + public: + GLStack(bool haveValidContext=false); + virtual ~GLStack(void); + + enum GemStackId { MODELVIEW, COLOR, TEXTURE, PROJECTION }; + + /** push the given matrix to the stack if the maximum has not been reached + * returns true on success and false otherwise (stack overflow) + * NOTE: needs valid openGL context + * NOTE: might change the current matrix mode; you have to manually reset it + */ + bool push(enum GemStackId); + + /** pushes all matrices possible + * NOTE: finishes in MODELVIEW matrix mode + */ + void push(void); + + /** pop the given matrix from the stack if the maximum has not been reached + * returns true on success and false otherwise (stack underflow) + * NOTE: needs valid openGL context + * NOTE: might change the current matrix mode; you have to manually reset it + */ + bool pop(enum GemStackId); + /** pops all matrices possible + * NOTE: finishes in MODELVIEW matrix mode + */ + void pop(void); + + /** + * reset the maximum stack depth of the given stack + * NOTE: needs valid openGL context + */ + void reset(void); + /** + * reset the maximum stack depth of all stacks + * returns the current stack depth (-1 on failure) + * NOTE: needs valid openGL context + */ + int reset(enum GemStackId); + + void print(void); + + private: + class Data; + std::auto_ptrdata; +}; + +} /* namespace gem */ + + +#endif /* _INCLUDE__GEM_GEM_GLSTACK_H_ */ diff --git a/Gem/develop/include/Gem/Gem/GemGL.h b/Gem/develop/include/Gem/Gem/GemGL.h new file mode 100644 index 0000000..797e889 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/GemGL.h @@ -0,0 +1,87 @@ +/* + * GemGL: openGL includes for GEM + * + * include this file if you want to include the + * openGL-headers installed on your system + * + * tasks: + * + * + this file hides the peculiarities of the various platforms + * (like "OpenGL/gl.h" vs "GL/gl.h") + * + * + define some pre-processor defines that are missing in the GL-headers + * + * + try to exclude parts of the GL-headers based on GemConfig.h + * + */ + + +#ifndef _INCLUDE__GEM_GEM_GEMGL_H_ +#define _INCLUDE__GEM_GEM_GEMGL_H_ + +#include "Gem/ExportDef.h" + +// I hate Microsoft...I shouldn't have to do this! +#ifdef _WIN32 +# include +#endif + +#ifdef GLEW_MX +# define GEM_MULTICONTEXT +#endif + +#include "Gem/glew.h" + +#ifdef __APPLE__ +# include +#elif defined _WIN32 +# include "Gem/wglew.h" +#elif defined(__linux__) || defined(__FreeBSD_kernel__) +# include "Gem/glxew.h" +#endif /* OS */ + +#ifdef GEM_MULTICONTEXT +GEM_EXTERN GLEWContext*glewGetContext(void); +# ifdef __APPLE__ +# elif defined _WIN32 +GEM_EXTERN WGLEWContext*wglewGetContext(void); +# elif defined __linux__ || defined HAVE_GL_GLX_H +GEM_EXTERN GLXEWContext*glxewGetContext(void); +# endif + +#endif /* GEM_MULTICONTEXT */ + +#ifndef GL_YUV422_GEM +# define GL_YCBCR_422_GEM GL_YCBCR_422_APPLE +# define GL_YUV422_GEM GL_YCBCR_422_GEM +#endif /* GL_YUV422_GEM */ + + +#ifndef GL_RGBA_GEM +# ifdef __APPLE__ +# define GL_RGBA_GEM GL_BGRA_EXT +# else +# define GL_RGBA_GEM GL_RGBA +# endif +#endif /* GL_RGBA_GEM */ + +/* default draw-style */ +#ifndef GL_DEFAULT_GEM +# define GL_DEFAULT_GEM 0xFFFF +#endif + + + +/* uäh: in OSX10.3 we only have CGL-1.1 and + * all the functions are using "long*" rather than "GLint*") + * only CGL-1.2 got it right + */ +#ifdef CGL_VERSION_1_0 +# ifdef CGL_VERSION_1_2 +# define GemCGLint GLint +# else +# define GemCGLint long +# endif +#endif + +#endif /* _INCLUDE__GEM_GEM_GEMGL_H_ */ diff --git a/Gem/develop/include/Gem/Gem/Image.h b/Gem/develop/include/Gem/Gem/Image.h new file mode 100644 index 0000000..6a253e3 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Image.h @@ -0,0 +1,284 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + GemPixUtil.h + - contains image functions for pix objects + - part of GEM + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_IMAGE_H_ +#define _INCLUDE__GEM_GEM_IMAGE_H_ + +#include "Gem/GemGL.h" + +#include +#include + +/////////////////////////////////////////////////////////////////////////////// +// Color component defines +// +// These should be used to reference the various color channels +/////////////////////////////////////////////////////////////////////////////// + +/* RGBA */ + +#if GL_RGBA_GEM == GL_RGBA +const int chRed = 0; +const int chGreen = 1; +const int chBlue = 2; +const int chAlpha = 3; +#else +const int chAlpha = 0; +const int chRed = 1; +const int chGreen = 2; +const int chBlue = 3; +#endif + + +/* Gray */ +const int chGray = 0; + +/* YUV422 */ +const int chU = 0; +const int chY0 = 1; +const int chV = 2; +const int chY1 = 3; + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + imageStruct + + The basic image structure + +-----------------------------------------------------------------*/ +// we now have a class "imageStruct"; +// since i need to compile some of the sources with an older version of Gem +// there is a new define here: +#define IMAGE_CLASS + +struct GEM_EXTERN imageStruct +{ + imageStruct(void); + imageStruct(const imageStruct&); + virtual ~imageStruct(void); + + virtual void info(void); + ////////// + // columns + virtual unsigned char* allocate(size_t size); + virtual unsigned char* allocate(void); + + // if we have allocated some space already, only re-allocate when needed. + virtual unsigned char* reallocate(size_t size); + virtual unsigned char* reallocate(void); + + // delete the buffer (if it is ours) + virtual void clear(void); + + + ////////// + // dimensions of the image + GLint xsize; + GLint ysize; + + ////////// + // (average) width of 1 pixel (LUMINANCE = 1, RGBA = 4, YUV = 2) + GLint csize; + + ////////// + // data type - always GL_UNSIGNED_BYTE (except for OS X) + GLenum type; + + ////////// + // the format - either GL_RGBA, GL_LUMINANCE + // or GL_YCBCR_422_GEM (which is on mac-computers GL_YCBCR_422_APPLE) + GLenum format; + + ////////// + // is this owned by us (? what about underscores ?) + int notowned; + + ////////// + // gets a pixel + /* X,Y are the coordinates + * C is the offset in the interleaved data (like chRed==0 for red) + * you should use chRed instead of 0 (because it might not be 0) + * + * you must make sure that (0<=X + + +// image2mem() reads an image file into memory +// and a pointer to an imageStruct +// NULL = failure +// +// format: +// returns either GL_LUMINANCE or GL_RGBA +// +// automatically allocates the memory for the user +// +// This can read TIFF, SGI, and JPG images +// +namespace gem { + class Properties; + namespace image { + class GEM_EXTERN load { + public: + /** + * loads an image (given as 'filename') synchronously + * the function blocks until the image is loaded (in which case it returns TRUE) + * of the image-loading completely failed (in which case it returns FALSE) + * + * the loaded image is stored in 'img' + * 'props' holds a list of additional image properties discovered during loading + */ + static bool sync(const std::string filename, + imageStruct&img, + Properties&props); + + + + typedef unsigned int id_t; + static const id_t IMMEDIATE; + static const id_t INVALID; + + /* the callback used for asynchronous image loading + * userdata is is the pointer supplied when calling async(); + * id is the ID returned by async() + * img holds a reference to the newly loaded image + * the image is allocated by the loder, but + * the callback (you!) is responsible for freeing the image + * once it is no more needed + * if image loading failed, img is set to NULL + * props holds a list of additional image properties discovered during loading + * + * currently (with Pd being the only RTE), + * the callback will always be called from within the main thread + * + * the callback might be called directly from within async(), + * in which case the ID given in the callback and returned by async() + * is IMMEDIATE + */ + typedef void (*callback)(void *userdata, + id_t ID, + imageStruct*img, + const Properties&props); + + /* loads an image (given as 'filename') asynchronously + * image loading is done in a separate thread (if possible); + * when the image is loaded, the callback 'cb' is called with the new image + * + * this function returns an ID which is also passed to the callback function, + * so the caller can identify a certain request (e.g. if several images have been + * queued for loading before the 1st one was successfully returned; + * + * the image might get loaded (and the cb called) before the call to loadAsync() + * has finished, in which case IMMEDIATE is returned (and used in the CB) + * + * if the image cannot be loaded at all, INVALID is returned + * (and no callback will ever be called) + * + */ + static bool async(callback cb, + void*userdata, + const std::string filename, + id_t&ID + ); + + /* cancels asynchronous loading of an image + * removes the given ID (as returned by loadAsync()) from the loader queue + * returns TRUE if item could be removed, or FALSE if no item ID is in the queue + * + * there is no point in cancel()ing an IMMEDIATE or ILLEGAL id + */ + static bool cancel(id_t ID); + + /* load an image in a synchronous way (that is argument compatible with async()) + */ + static bool sync(callback cb, + void*userdata, + const std::string filename, + id_t&ID); + + /* + * deliver all loaded images not delivered yet + */ + static void poll(void); + + /* + * set asynch loading to "polling" mode + * in "polling" mode, the caller has to call 'poll()' manually in order to get any loaded images delivered + * in "pushing" mode this is done automatically (but might hang with current Pd) + */ + static bool setPolling(bool); + + +};};}; + +/* legacy */ +GEM_EXTERN extern imageStruct *image2mem(const char *filename); + + +// image2mem() reads an image file into memory +// and a pointer to an imageStruct +// NULL = failure +// +// format: +// returns either GL_LUMINANCE or GL_RGBA +// +// automatically allocates the memory for the user +// +// This can write TIFF, JPG and other images (depending on which backends are available +// legacy: type=0 -> TIFF; type>0 -> JPEG and (quality:=type) +// +GEM_EXTERN extern int mem2image(imageStruct *image, const char *filename, const int type); + + +#endif diff --git a/Gem/develop/include/Gem/Gem/Loaders.h b/Gem/develop/include/Gem/Gem/Loaders.h new file mode 100644 index 0000000..2a3e1c0 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Loaders.h @@ -0,0 +1,25 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + - registers a loader with Pd + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_LOADERS_H_ +#define _INCLUDE__GEM_GEM_LOADERS_H_ + +#include "Gem/RTE.h" + +extern "C" { + typedef int (*gem_loader_t)(t_canvas *canvas, char *classname); + void gem_register_loader(gem_loader_t loader); +} + +#endif diff --git a/Gem/develop/include/Gem/Gem/Manager.h b/Gem/develop/include/Gem/Gem/Manager.h new file mode 100644 index 0000000..f5f597a --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Manager.h @@ -0,0 +1,254 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + The base functions and structures + Also includes gemwin header file + + Copyright (c) 1997-2000 Mark Danks.mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_MANAGER_H_ +#define _INCLUDE__GEM_GEM_MANAGER_H_ + +#include "Gem/GemGL.h" +#include "Utils/GLUtil.h" + +#include "Gem/ExportDef.h" + +#include + +struct _symbol; + +class gemhead; +class GemState; +class WindowInfo; + +namespace gem { + class Context; +}; + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + GemMan + + A static class to create windows, etc. + + DESCRIPTION + + -----------------------------------------------------------------*/ +class GEM_EXTERN GemMan +{ + public: + + ////////// + // Should only be called once (usually by GemSetup) + static void initGem(void); + + ////////// + static void addObj(gemhead *obj, float priority); + + ////////// + static void removeObj(gemhead *obj, float priority); + + ////////// + // Is there a window. + static int windowExists(void); + + ////////// + // Are we rendering. + static int getRenderState(void); + + ////////// + // is there a context (has its meaning under X) + static void createContext(char* disp); + static int contextExists(void); + + ////////// + // If an object needs to know if the window changed. + // This is important for display lists. + static int windowNumber(void); + + ////////// + // reset to the initial state + static void resetState(void); + + ////////// + // Just send out one frame (if double buffered, will swap buffers) + static void render(void *); + + static void renderChain(struct _symbol *head, bool start); + static void renderChain(struct _symbol *head, GemState *state); + + + ////////// + // Start a clock to do rendering. + static void startRendering(void); + + ////////// + // Stop the clock to do rendering. + static void stopRendering(void); + + ////////// + // Create the window with the current parameters + static int createWindow(char* disp = 0); + + ////////// + // Destroy the window + static void destroyWindow(void); + // Destroy the window after a minimal delay + static void destroyWindowSoon(void); + + ////////// + // Swap the buffers. + // If single buffered, just clears the window + static void swapBuffers(void); + + ////////// + // Set the frame rate + static void frameRate(float framespersecond); + ////////// + // Get the frame rate + static float getFramerate(void); + + static int getProfileLevel(void); + + static void getDimen(int*width, int*height); + static void getRealDimen(int*width, int*height); + static void getOffset(int*x, int*y); + + ////////// + // Turn on/off lighting + static void lightingOnOff(int state); + + ////////// + // Turn on/off cursor + static void cursorOnOff(int state); + + ////////// + // Turn on/off topmost position + static void topmostOnOff(int state); + + + ////////// + // Request a lighting value - it is yours until you free it. + // The return can be 0, in which there are too many lights + // [in] specific - If you want a specific light. == 0 means that you don't care. + static GLenum requestLight(int specific = 0); + + ////////// + // Free a lighting value + static void freeLight(GLenum lightNum); + + ////////// + // Print out information + static void printInfo(void); + + ////////// + static void fillGemState(GemState &); + + static int texture_rectangle_supported; + + enum GemStackId { STACKMODELVIEW, STACKCOLOR, STACKTEXTURE, STACKPROJECTION }; + static GLint maxStackDepth[4]; // for push/pop of matrix-stacks + + + static float m_perspect[6]; // values for the perspective matrix + static float m_lookat[9]; // values for the lookat matrix + + // LATER make this private (right now it is needed in gem2pdp) + static int m_buffer; // single(1) or double(2) + + private: + + ////////// + // computer and window information + static std::string m_title; // title to be displayed + static int m_fullscreen; // fullscreen (1) or not (0!) + static int m_menuBar; // hide (0), show(1), hide but autoshow(-1) + static int m_secondscreen; // set the second screen + static int m_height; // window height + static int m_width; // window width + static int m_w; // the real window width (reported by gemCreateWindow()) + static int m_h; // the real window height + static int m_xoffset; // window offset (x) + static int m_yoffset; // window offset (y) + + static int m_border; // window border + static int m_stereo; // stereoscopic + + static int m_profile; // off(0), on(1), w/o image caching(2) + static int m_rendering; + + static float m_fog; // fog density + enum FOG_TYPE + { FOG_OFF = 0, FOG_LINEAR, FOG_EXP, FOG_EXP2 }; + static FOG_TYPE m_fogMode; // what kind of fog we have + static GLfloat m_fogColor[4]; // colour of the fog + static float m_fogStart; // start of the linear fog + static float m_fogEnd; // start of the linear fog + + static float m_motionBlur; // motion-blur factor in double-buffer mode + + static float fps; + static int fsaa; + static bool pleaseDestroy; + +#ifndef GEM_MULTICONTEXT + ////////// + // Changing these variables is likely to crash GEM + // This is current rendering window information + // The window is created and destroyed by the user, so + // if there is no window, this will contain NULL pointers. + static WindowInfo &getWindowInfo(void); + + ////////// + // Changing these variables is likely to crash GEM + // This is constant rendering window information + // This window is always available (although not visible) + static WindowInfo &getConstWindowInfo(void); +#endif /* GEM_MULTICONTEXT */ + static int createConstWindow(char* disp = 0); + + // gemwin is allowed to modifying "global" window attributes + friend class gemwin; + friend class gem::Context; + + static GLfloat m_clear_color[4]; // the frame buffer clear + static GLbitfield m_clear_mask; // the clear bitmask + static GLfloat m_mat_ambient[4]; // default ambient material + static GLfloat m_mat_specular[4]; // default specular material + static GLfloat m_mat_shininess; // default shininess material + + static GLfloat m_stereoSep; // stereo separation + static GLfloat m_stereoFocal; // distance to focal point + static bool m_stereoLine; // draw a line between 2 stereo-screens + + static double m_lastRenderTime; // the time of the last rendered frame + + // gemwin should not touch the following member variables and member functions + static int m_windowState; + static int m_windowNumber; + static int m_windowContext; + static int m_cursor; + static int m_topmost; + + static void windowInit(void); + static void windowCleanup(void); + static void resetValues(void); + + static void resizeCallback(int xsize, int ysize, void*); + static void dispatchWinmessCallback(void); + + ////////// + // check for supported openGL extensions we might need + static void checkOpenGLExtensions(void); +}; + +#endif diff --git a/Gem/develop/include/Gem/Gem/PBuffer.h b/Gem/develop/include/Gem/Gem/PBuffer.h new file mode 100644 index 0000000..51bb951 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/PBuffer.h @@ -0,0 +1,54 @@ +/* OpenGL pixel buffer + * + * Copyright (C) 2003-2004, Alexander Zaprjagaev + * + * 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 2 of the License, or + * (at your option) any later version. + * + * This program 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __PBUFFER_H__ +#define __PBUFFER_H__ + +struct PBuffer_data; + +class PBuffer { +public: + + enum { + GEM_PBUFLAG_RGB = 1 << 0, + GEM_PBUFLAG_RGBA = 1 << 1, + GEM_PBUFLAG_DEPTH = 1 << 2, + GEM_PBUFLAG_STENCIL = 1 << 3, + GEM_PBUFLAG_FLOAT = 1 << 4, + GEM_PBUFLAG_MULTISAMPLE_2 = 1 << 5, + GEM_PBUFLAG_MULTISAMPLE_4 = 1 << 6 + }; + + PBuffer(int width,int height,int flags = GEM_PBUFLAG_RGBA | GEM_PBUFLAG_DEPTH | GEM_PBUFLAG_STENCIL); + ~PBuffer(void); + + void enable(void); + void disable(void); + + int width; + int height; + +private: + struct PBuffer_data *data; + + PBuffer(const PBuffer&); + PBuffer&operator=(const PBuffer&); +}; + +#endif /* __PBUFFER_H__ */ diff --git a/Gem/develop/include/Gem/Gem/PixConvert.h b/Gem/develop/include/Gem/Gem/PixConvert.h new file mode 100644 index 0000000..11696a9 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/PixConvert.h @@ -0,0 +1,173 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + GemPixConvertSIMD.h + - header-file for color conversion + - this is mainly for (SIMD-)optimized routines + - part of GEM + + Copyright (c) 2006-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + + +#ifndef _INCLUDE__GEM_GEM_PIXCONVERT_H_ +#define _INCLUDE__GEM_GEM_PIXCONVERT_H_ + +#include "Gem/Image.h" +#include "Utils/SIMD.h" + +// use formulae from http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC30 +/* + * [Y] 1 [ 65.738 129.075 25.064 ] [R] [ 16] + * [U] = --- * [ -37.945 -74.494 112.439 ] * [G]+[128] + * [V] = 256 [ 112.439 -94.154 -18.285 ] [B] [128] + * + * [R] 1 [ 298.082 0.0 408.583 ] [Y] [ 16] + * [G] = --- * [ 298.082 -100.291 -208.120 ] * ([U]-[128]) + * [B] = 256 [ 298.082 516.411 0.0 ] [V] [128] + */ + +#define YUV_POYNTON +// here comes something to be afraid of: +// (probably it would be better to define the matrices as real constant-value matrices) +// (instead of element-wise) + +#ifdef YUV_POYNTON +# define Y_OFFSET 16 +# define UV_OFFSET 128 + +// RGB2YUV +// poynton-values rounded +# define RGB2YUV_11 66 +# define RGB2YUV_12 129 +# define RGB2YUV_13 25 +# define RGB2YUV_21 -38 +# define RGB2YUV_22 -74 +# define RGB2YUV_23 112 +# define RGB2YUV_31 112 +# define RGB2YUV_32 -94 +# define RGB2YUV_33 -18 + +// YUV2RGB +// (we skip _21 and _31 as they are equal to _11) +#if 0 +// poynton-values rounded +# define YUV2RGB_11 298 +# define YUV2RGB_12 0 +# define YUV2RGB_13 409 +# define YUV2RGB_22 -100 +# define YUV2RGB_23 -208 +# define YUV2RGB_32 516 +# define YUV2RGB_33 0 +#else + +// this is round(256*inv(rgb2yuv/256)) +// so the general error should be smaller +# define YUV2RGB_11 298 +# define YUV2RGB_12 -1 +# define YUV2RGB_13 409 +# define YUV2RGB_22 -100 +# define YUV2RGB_23 -210 +# define YUV2RGB_32 519 +# define YUV2RGB_33 0 +#endif + +#else +/* the old ones: */ +# define Y_OFFSET 0 +# define UV_OFFSET 128 +// RGB2YUV +# define RGB2YUV_11 77 +# define RGB2YUV_12 150 +# define RGB2YUV_13 29 +# define RGB2YUV_21 -43 +# define RGB2YUV_22 -85 +# define RGB2YUV_23 128 +# define RGB2YUV_31 128 +# define RGB2YUV_32 -107 +# define RGB2YUV_33 -21 +// YUV2RGB +# define YUV2RGB_11 256 +# define YUV2RGB_12 0 +# define YUV2RGB_13 359 +# define YUV2RGB_22 -88 +# define YUV2RGB_23 -183 +# define YUV2RGB_32 454 +# define YUV2RGB_33 0 + +#endif /* POYNTON */ + +#if 0 +/* yuv-coefficients would also need an offset! */ +# define RGB2GRAY_RED RGB2YUV_11 +# define RGB2GRAY_GREEN RGB2YUV_12 +# define RGB2GRAY_BLUE RGB2YUV_13 +# define RGB2GRAY_OFFSET Y_OFFSET +#else +# define RGB2GRAY_RED 77 +# define RGB2GRAY_GREEN 150 +# define RGB2GRAY_BLUE 29 +# define RGB2GRAY_OFFSET 0 +#endif + +/* AltiVec */ +#ifdef __VEC__ + +/* there are problems on OSX10.3 with older versions of gcc, since the intrinsic code + * below freely changes between signed and unsigned short vectors + * newer versions of gcc accept this... + * LATER: fix the code (GemPixConvertAltivec:750..800) + */ +# ifdef __GNUC__ +/* according to hcs it does NOT work with gcc-3.3 + * for simplicity, i disable everything below gcc4 + * JMZ: 20061114 + */ +# if __GNUC__ < 4 +# warning disabling AltiVec for older gcc: please fix me +# define NO_VECTORINT_TO_VECTORUNSIGNEDINT +# endif +# endif /* GNUC */ + + + void RGB_to_YCbCr_altivec(const unsigned char *rgbdata, size_t RGB_size, + unsigned char *pixels); + void RGBA_to_YCbCr_altivec(const unsigned char *rgbadata, size_t RGBA_size, + unsigned char *pixels); + void BGR_to_YCbCr_altivec(const unsigned char *bgrdata, size_t BGR_size, + unsigned char *pixels); + void BGRA_to_YCbCr_altivec(const unsigned char *bgradata, size_t BGRA_size, + unsigned char *pixels); + void YUV422_to_BGRA_altivec(const unsigned char *yuvdata, size_t pixelnum, + unsigned char *pixels); + void YV12_to_YUV422_altivec(const short*Y, const short*U, const short*V, + unsigned char *data, int xsize, int ysize); +# ifndef NO_VECTORINT_TO_VECTORUNSIGNEDINT + void YUV422_to_YV12_altivec(short*pY, short*pY2, short*pU, short*pV, + const unsigned char *gem_image, int xsize, int ysize); +# endif +#endif /* AltiVec */ + +/* SSE2 */ +#ifdef __SSE2__ +void RGBA_to_UYVY_SSE2(const unsigned char *rgbadata, + size_t size, + unsigned char *yuvdata); +void UYVY_to_RGBA_SSE2(const unsigned char *yuvdata, + size_t size, + unsigned char *rgbadata); +void UYVY_to_RGB_SSE2(const unsigned char *yuvdata, + size_t size, + unsigned char *rgbadata); +#endif /* SSE2 */ + +/* in case somebody has an old machine... */ +#ifdef __MMX__ + +#endif /* MMX */ + +#endif /* _INCLUDE__GEM_GEM_PIXCONVERT_H_ */ diff --git a/Gem/develop/include/Gem/Gem/Properties.h b/Gem/develop/include/Gem/Gem/Properties.h new file mode 100644 index 0000000..7ce011d --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Properties.h @@ -0,0 +1,110 @@ +/* + * Copyright (c) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + * + * map that stores "any"thing + * + * USAGE: + * + * Properties am; // create a new Properties + * am["a"] = 42; // assign value "42" to key "a" + * int i=0; + * try { i=any_castam["a"]; } catch(bad_any_cast ex) { ; } // retrieve value from key "a"; might throw a bad_any_cast exception + * am.get("a", i); // retrieve value at key "a"; if there was an error (e.g. typeof(i) does not match, then i is left untouched and "false" is returned + * + * NOTE: + * this simplilstic approach has some problems with type-conversion + * e.g. this will fail: + * am["a"]=12.0f; any_castam["a"]; + */ + +#ifndef GEM_PROPERTIES_H +#define GEM_PROPERTIES_H + +#include "Gem/ExportDef.h" + +#include "Utils/any.h" +#include +#include + +namespace gem +{ + class GEM_EXTERN Properties { + private: + class PIMPL; + PIMPL*pimpl; + + public: + enum PropertyType { + UNSET=-1, /* not set, in-existent */ + NONE, /* "bang" */ + DOUBLE, /* double */ + STRING, /* std::string */ + UNKNOWN /* all the rest */ + }; + + Properties(void); + Properties(const gem::Properties&); /* copy constructor */ + + virtual ~Properties(void); + +#if 0 + /* array/hashmap like access: + * e.g.: prop["width"]=640; + */ + virtual gem::any&operator[](const std::string&key); +#endif + + /* get the value of a property + * e.g.: double w=any_castprop.at("width") + */ + virtual gem::any get(const std::string&key) const; + + /* check whether the given key exists + * if the key was in the property-map, return the type of the property + * if no key of the given value exists, return PropertyType::UNSET + */ + virtual enum PropertyType type(const std::string) const; + + /* set a property + * e.g.: double w=640; prop.set("width", w); + */ + virtual void set(const std::string&key, gem::any value); + + /* get a property + * e.g.: double w=320; prop.get("width", w); + * NOTE: if no property of the given name exists or the existing property + * is of a different (incompatible) type, "value" will not be changed + */ + template + bool get(const std::string&key, Class&value) const { + try { + value=gem::any_cast(get(key)); + } catch (gem::bad_any_cast e) { + return false; + } + return true; + }; + + /* get all keys + */ + virtual std::vectorkeys(void) const; + + /* + * delete a given key from the Properties + */ + virtual void erase(const std::string); + /* + * delete all keys from the Properties + */ + virtual void clear(void); + + + /* + * assign Properties from another set + */ + virtual gem::Properties& assign(const gem::Properties&); + gem::Properties& operator= (const gem::Properties&org) { return assign(org); } + + }; +}; +#endif /* GEM_PROPERTIES_H */ diff --git a/Gem/develop/include/Gem/Gem/RTE.h b/Gem/develop/include/Gem/Gem/RTE.h new file mode 100644 index 0000000..af38a9a --- /dev/null +++ b/Gem/develop/include/Gem/Gem/RTE.h @@ -0,0 +1,29 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + include Realtime-Environments headers + + Copyright (c) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_RTE_H_ +#define _INCLUDE__GEM_GEM_RTE_H_ + +#if defined _MSC_VER +/* data conversion with possible loss of data */ +# pragma warning( push ) +# pragma warning( disable : 4091 ) +#endif + +#include "m_pd.h" + +#ifdef _MSC_VER +# pragma warning( pop ) +#endif + + +#endif /* _INCLUDE__GEM_GEM_RTE_H_ */ diff --git a/Gem/develop/include/Gem/Gem/Rectangle.h b/Gem/develop/include/Gem/Gem/Rectangle.h new file mode 100644 index 0000000..dc061dd --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Rectangle.h @@ -0,0 +1,44 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + an abstract rectangle representation + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_RECTANGLE_H_ +#define _INCLUDE__GEM_GEM_RECTANGLE_H_ + +#include "Gem/ExportDef.h" + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + Rectangle + + abstract rectangle class (to be used e.g. as ROI) + + DESCRIPTION + + -----------------------------------------------------------------*/ +namespace gem { + class GEM_EXTERN Rectangle + { + public: + + ////////// + // Constructor + Rectangle(void); + float x1, y1, x2, y2; + + static Rectangle createNormalized(float x1, float y1, float x2, float y2); + }; +}; + +#endif // for header file diff --git a/Gem/develop/include/Gem/Gem/Settings.h b/Gem/develop/include/Gem/Gem/Settings.h new file mode 100644 index 0000000..e54b9d5 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Settings.h @@ -0,0 +1,35 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + - Runtime Configuration of Gem + + Copyright (c) 2009-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_SETTINGS_H_ +#define _INCLUDE__GEM_GEM_SETTINGS_H_ + +#include +#include + +typedef struct _atom t_atom; +namespace gem { namespace Settings { + void init(void); + void print(void); + void save(void); + + t_atom*get(const std::string key); + void set(const std::string key, t_atom*value=NULL); + + void get(const std::string key, int&value); + void get(const std::string key, float&value); + void get(const std::string key, double&value); + void get(const std::string key, std::string&value); + + std::vector keys(); +}; }; +#endif diff --git a/Gem/develop/include/Gem/Gem/State.h b/Gem/develop/include/Gem/Gem/State.h new file mode 100644 index 0000000..5827d8d --- /dev/null +++ b/Gem/develop/include/Gem/Gem/State.h @@ -0,0 +1,231 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + The state to pass among GEM objects + + Copyright (c) 1997-2000 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_STATE_H_ +#define _INCLUDE__GEM_GEM_STATE_H_ + +#include "Gem/ExportDef.h" +#include "Gem/GemGL.h" + +#include "Gem/RTE.h" +#include "Utils/any.h" + +struct pixBlock; +class TexCoord; + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + TexCoord + + + DESCRIPTION + + -----------------------------------------------------------------*/ +class GEM_EXTERN TexCoord +{ + public: + TexCoord() : s(0.f), t(0.f) { } + TexCoord(float s_, float t_) : s(s_), t(t_) { } + float s; + float t; +}; + + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + GemState + + The state to pass among GEM objects + + DESCRIPTION + + -----------------------------------------------------------------*/ + +class GemStateData; +class GEM_EXTERN GemState +{ + public: + typedef enum { + _ILLEGAL=-1, + _DIRTY, /* "dirty" */ + _TIMING_TICK, /* "timing.tick" */ + _PIX, /* "pix" */ + _GL_STACKS, /* "stacks" */ + _GL_DISPLAYLIST, /* */ + _GL_LIGHTING, /* */ + _GL_SMOOTH, /* */ + _GL_DRAWTYPE, /* */ + _GL_TEX_TYPE, /* "tex.type" */ + _GL_TEX_COORDS, /* "tex.coords" */ + _GL_TEX_NUMCOORDS, /* "tex.numcoords" */ + _GL_TEX_UNITS, /* "tex.units" # of texUnits */ + _GL_TEX_ORIENTATION, /* "tex.orientation" false=bottomleft; true=topleft */ + _GL_TEX_BASECOORD, /* "tex.basecoords" width/height of texture */ + + + + + _LAST + } key_t; + + ////////// + // Has something changed since the last time? + // deprecated: use property 'dirty' instead + GEM_DEPRECATED bool dirty; + + ////////// + // Are we in a display list creation? + // deprecated: use property 'gl.displaylist' instead + GEM_DEPRECATED bool inDisplayList; + + ////////// + // Lighting on? + // deprecated: use property 'gl.lighting' instead + GEM_DEPRECATED bool lighting; + + ////////// + // Smooth shading (flat is other type) + // deprecated: use property 'gl.smooth' instead + GEM_DEPRECATED bool smooth; + + ////////// + // Texture mapping on? + // 0..off + // 1..normalized texture + // 2..rectangle texture + // deprecated: use property 'gl.tex.type' instead + GEM_DEPRECATED int texture; + + ////////// + // The image to texture map + // deprecated: use property 'pix' instead + GEM_DEPRECATED pixBlock *image; + + ////////// + // Texture coordinates. + // This can be NULL if there aren't any coordinates + // deprecated: use property 'gl.tex.coords' instead + GEM_DEPRECATED TexCoord *texCoords; + + ////////// + // The number of TexCoords + // deprecated: use property 'gl.tex.numcoords' instead + GEM_DEPRECATED int numTexCoords; + + ////////// + // The number of multiTexUnits + // default = 0, max = 7 + // deprecated: use property 'gl.tex.units' instead + GEM_DEPRECATED int multiTexUnits; + + ////////// + // Milliseconds since last frame + // If in Stereoscopic mode, then it is the same number for both left + // and right renderings + // deprecated: use property 'timing.tick' instead + GEM_DEPRECATED float tickTime; + + ////////////////// + // the default draw-type (might be overridden within a Geo) + // deprecated: use property 'gl.drawtype' instead + GEM_DEPRECATED GLenum drawType; + + ////////// + // how deep is the current stack /* 4 fields for the 4 stacks */ + // deprecated: use property 'gl.stacks' instead + GEM_DEPRECATED int stackDepth[4]; + + //////////// + //vertex-array data + // deprecated: use property 'vertex.dirty' instead + GEM_DEPRECATED int VertexDirty; // the vertex-arrays has changed + // deprecated: use property 'vertex.array.vertex' instead + GEM_DEPRECATED GLfloat *VertexArray; + // deprecated: use property 'vertex.array.vertex' instead + GEM_DEPRECATED int VertexArraySize; + // deprecated: use property 'vertex.array.vertex' instead + GEM_DEPRECATED int VertexArrayStride; + + // deprecated: use property 'vertex.array.color' instead + GEM_DEPRECATED GLfloat *ColorArray; + // deprecated: use property 'vertex.array.color' instead + GEM_DEPRECATED bool HaveColorArray; + + // deprecated: use property 'vertex.array.normal' instead + GEM_DEPRECATED GLfloat *NormalArray; + // deprecated: use property 'vertex.array.normal' instead + GEM_DEPRECATED bool HaveNormalArray; + + // deprecated: use property 'vertex.array.texcoord' instead + GEM_DEPRECATED GLfloat *TexCoordArray; + // deprecated: use property 'vertex.array.texcoord' instead + GEM_DEPRECATED bool HaveTexCoordArray; + + ////////// + // Constructor + GemState(void); + GemState(const GemState&); + + ////////// + // Destructor + virtual ~GemState(void); + + float texCoordX(int num) const; + + float texCoordY(int num) const; + + /* reset (parts of?) the GemState: to be called from [gemhead] */ + void reset(void); + + + /* get a named property */ + /* if the property exists (as the given type), + * the value of the 2nd argument is set accordingly and true is returned + * if the key does not exist (or the type is wrong) the value is not touched and false is returned instead + */ + virtual bool get(const key_t key, gem::any&value); + + template + bool get(const key_t key, T&value) { + try { + gem::any val; + if(!get(key,val)) { + // key not found + return false; + } + value=gem::any_cast(val); + return true; + } catch (gem::bad_any_cast&x) { + ::verbose(3, "%s:%d [%s] %d :: %s", __FILE__, __LINE__, __FUNCTION__, key, x.what()); + // type problem + } + return false; + }; + /* set a named property */ + virtual bool set(const key_t key, gem::any value); + /* remove a named property */ + virtual bool remove(const key_t key); + + // Copy assignment + GemState& operator=(const GemState&); + + static const key_t getKey(const std::string&); + + protected: + GemStateData*data; +}; + +#endif // for header file diff --git a/Gem/develop/include/Gem/Gem/SynchedWorkerThread.h b/Gem/develop/include/Gem/Gem/SynchedWorkerThread.h new file mode 100644 index 0000000..9400d7a --- /dev/null +++ b/Gem/develop/include/Gem/Gem/SynchedWorkerThread.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning Gem/SynchedWorkerThread.h is deprecated - please include "Utils/SynchedWorkerThread.h" instead +#endif +#include "Utils/SynchedWorkerThread.h" diff --git a/Gem/develop/include/Gem/Gem/ThreadMutex.h b/Gem/develop/include/Gem/Gem/ThreadMutex.h new file mode 100644 index 0000000..3e45fb0 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/ThreadMutex.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning Gem/ThreadMutex.h is deprecated - please include "Utils/ThreadMutex.h" instead +#endif +#include "Utils/ThreadMutex.h" diff --git a/Gem/develop/include/Gem/Gem/ThreadSemaphore.h b/Gem/develop/include/Gem/Gem/ThreadSemaphore.h new file mode 100644 index 0000000..a348e97 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/ThreadSemaphore.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning Gem/ThreadSemaphore.h is deprecated - please include "Utils/ThreadSemaphore.h" instead +#endif +#include "Utils/ThreadSemaphore.h" diff --git a/Gem/develop/include/Gem/Gem/Version.h b/Gem/develop/include/Gem/Gem/Version.h new file mode 100644 index 0000000..dbc948f --- /dev/null +++ b/Gem/develop/include/Gem/Gem/Version.h @@ -0,0 +1,19 @@ +#ifndef GEM_VERSION_H +#define GEM_VERSION_H + +#include "Gem/ExportDef.h" + +#define GEM_VERSION_MAJOR 0 +#define GEM_VERSION_MINOR 93 + +namespace gem { +class GEM_EXTERN Version { + public: + const static char* versionString(void); + static bool versionCheck(int major, int minor); +}; }; + +#define GemVersion gem::Version + +#endif + diff --git a/Gem/develop/include/Gem/Gem/WorkerThread.h b/Gem/develop/include/Gem/Gem/WorkerThread.h new file mode 100644 index 0000000..ab8dac6 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/WorkerThread.h @@ -0,0 +1,4 @@ +#ifdef __GNUC__ +# warning Gem/WorkerThread.h is deprecated - please include "Utils/WorkerThread.h" instead +#endif +#include "Utils/WorkerThread.h" diff --git a/Gem/develop/include/Gem/Gem/glew.h b/Gem/develop/include/Gem/Gem/glew.h new file mode 100644 index 0000000..92de791 --- /dev/null +++ b/Gem/develop/include/Gem/Gem/glew.h @@ -0,0 +1,18062 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * Mesa 3-D graphics library + * Version: 7.0 + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * + * 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 + * BRIAN PAUL 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. + */ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are 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 Materials. +** +** THE MATERIALS ARE 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 +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __glew_h__ +#define __glew_h__ +#define __GLEW_H__ + +#if defined(__gl_h_) || defined(__GL_H__) || defined(__X_GL_H) +#error gl.h included before glew.h +#endif +#if defined(__gl2_h_) +#error gl2.h included before glew.h +#endif +#if defined(__gltypes_h_) +#error gltypes.h included before glew.h +#endif +#if defined(__REGAL_H__) +#error Regal.h included before glew.h +#endif +#if defined(__glext_h_) || defined(__GLEXT_H_) +#error glext.h included before glew.h +#endif +#if defined(__gl_ATI_h_) +#error glATI.h included before glew.h +#endif + +#define __gl_h_ +#define __gl2_h_ +#define __GL_H__ +#define __gltypes_h_ +#define __REGAL_H__ +#define __X_GL_H +#define __glext_h_ +#define __GLEXT_H_ +#define __gl_ATI_h_ + +#if defined(_WIN32) + +/* + * GLEW does not include to avoid name space pollution. + * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t + * defined properly. + */ +/* */ +#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 +#endif +#ifndef GLAPI +# 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 +#endif +/* and */ +#ifndef WINGDIAPI +#define GLEW_WINGDIAPI_DEFINED +#define WINGDIAPI __declspec(dllimport) +#endif +/* */ +#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED) +typedef unsigned short wchar_t; +# 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 +#endif +#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__) +# ifdef _WIN64 +typedef __int64 ptrdiff_t; +# else +typedef _W64 int 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 +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY APIENTRY +#endif + +#ifndef GLEWAPIENTRY +#define GLEWAPIENTRY APIENTRY +#endif + +/* + * GLEW_STATIC is defined for static library. + * GLEW_BUILD is defined for building the DLL library. + */ + +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# ifdef GLEW_BUILD +# define GLEWAPI extern __declspec(dllexport) +# else +# define GLEWAPI extern __declspec(dllimport) +# endif +#endif + +#else /* _UNIX */ + +/* + * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO + * C. On my system, this amounts to _3 lines_ of included code, all of + * them pretty much harmless. If you know of a way of detecting 32 vs + * 64 _targets_ at compile time you are free to replace this with + * something that's portable. For now, _this_ is the portable solution. + * (mem, 2004-01-04) + */ + +#include + +/* SGI MIPSPro doesn't like stdint.h in C++ mode */ +/* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */ + +#if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__) +#include +#else +#include +#endif + +#define GLEW_APIENTRY_DEFINED +#define APIENTRY + +/* + * GLEW_STATIC is defined for static library. + */ + +#ifdef GLEW_STATIC +# 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 +# define GLEWAPI extern +# endif +#endif + +/* */ +#ifndef GLAPI +#define GLAPI extern +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY +#endif + +#ifndef GLEWAPIENTRY +#define GLEWAPIENTRY +#endif + +#endif /* _WIN32 */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* ----------------------------- GL_VERSION_1_1 ---------------------------- */ + +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_1 1 + +typedef unsigned int GLenum; +typedef unsigned int GLbitfield; +typedef unsigned int GLuint; +typedef int GLint; +typedef int GLsizei; +typedef unsigned char GLboolean; +typedef signed char GLbyte; +typedef short GLshort; +typedef unsigned char GLubyte; +typedef unsigned short GLushort; +typedef unsigned long GLulong; +typedef float GLfloat; +typedef float GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void GLvoid; +#if defined(_MSC_VER) && _MSC_VER < 1400 +typedef __int64 GLint64EXT; +typedef unsigned __int64 GLuint64EXT; +#elif defined(_MSC_VER) || defined(__BORLANDC__) +typedef signed long long GLint64EXT; +typedef unsigned long long GLuint64EXT; +#else +# if defined(__MINGW32__) || defined(__CYGWIN__) +#include +# endif +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif +typedef GLint64EXT GLint64; +typedef GLuint64EXT GLuint64; +typedef struct __GLsync *GLsync; + +typedef char GLchar; + +#define GL_ZERO 0 +#define GL_FALSE 0 +#define GL_LOGIC_OP 0x0BF1 +#define GL_NONE 0 +#define GL_TEXTURE_COMPONENTS 0x1003 +#define GL_NO_ERROR 0 +#define GL_POINTS 0x0000 +#define GL_CURRENT_BIT 0x00000001 +#define GL_TRUE 1 +#define GL_ONE 1 +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_POINT_BIT 0x00000002 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_LINE_STRIP 0x0003 +#define GL_LINE_BIT 0x00000004 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON 0x0009 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM 0x0100 +#define GL_LOAD 0x0101 +#define GL_RETURN 0x0102 +#define GL_MULT 0x0103 +#define GL_ADD 0x0104 +#define GL_NEVER 0x0200 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_LINE_RESET_TOKEN 0x0707 +#define GL_EXP 0x0800 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_EXP2 0x0801 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_POINT_SMOOTH 0x0B10 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GL_LIST_MODE 0x0B30 +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_SHADE_MODEL 0x0B54 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_FOG 0x0B60 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_NORMALIZE 0x0BA1 +#define GL_VIEWPORT 0x0BA2 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_INDEX_MODE 0x0C30 +#define GL_RGBA_MODE 0x0C31 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_RENDER_MODE 0x0C40 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_FOG_HINT 0x0C54 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_INDEX_BITS 0x0D51 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_BORDER 0x1005 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_DOUBLE 0x140A +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F +#define GL_EMISSION 0x1600 +#define GL_SHININESS 0x1601 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#define GL_COLOR_INDEX 0x1900 +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_BITMAP 0x1A00 +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#define GL_RENDER 0x1C00 +#define GL_FEEDBACK 0x1C01 +#define GL_SELECT 0x1C02 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 +#define GL_S 0x2000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 +#define GL_MODULATE 0x2100 +#define GL_DECAL 0x2101 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_ENV 0x2300 +#define GL_EYE_LINEAR 0x2400 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_SPHERE_MAP 0x2402 +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_PLANE 0x2502 +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_CLAMP 0x2900 +#define GL_REPEAT 0x2901 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_R3_G3_B2 0x2A10 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 +#define GL_LIGHT0 0x4000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_HINT_BIT 0x00008000 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#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); + +#define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1) + +#endif /* GL_VERSION_1_1 */ + +/* ---------------------------------- GLU ---------------------------------- */ + +#ifndef GLEW_NO_GLU +/* this is where we can safely include GLU */ +# if defined(__APPLE__) && defined(__MACH__) +# include +# else +# include +# endif +#endif + +/* ----------------------------- GL_VERSION_1_2 ---------------------------- */ + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 + +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_RESCALE_NORMAL 0x803A +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#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); + +#define glCopyTexSubImage3D GLEW_GET_FUN(__glewCopyTexSubImage3D) +#define glDrawRangeElements GLEW_GET_FUN(__glewDrawRangeElements) +#define glTexImage3D GLEW_GET_FUN(__glewTexImage3D) +#define glTexSubImage3D GLEW_GET_FUN(__glewTexSubImage3D) + +#define GLEW_VERSION_1_2 GLEW_GET_VAR(__GLEW_VERSION_1_2) + +#endif /* GL_VERSION_1_2 */ + +/* ---------------------------- GL_VERSION_1_2_1 --------------------------- */ + +#ifndef GL_VERSION_1_2_1 +#define GL_VERSION_1_2_1 1 + +#define GLEW_VERSION_1_2_1 GLEW_GET_VAR(__GLEW_VERSION_1_2_1) + +#endif /* GL_VERSION_1_2_1 */ + +/* ----------------------------- GL_VERSION_1_3 ---------------------------- */ + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 + +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_SUBTRACT 0x84E7 +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_DOT3_RGB 0x86AE +#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); + +#define glActiveTexture GLEW_GET_FUN(__glewActiveTexture) +#define glClientActiveTexture GLEW_GET_FUN(__glewClientActiveTexture) +#define glCompressedTexImage1D GLEW_GET_FUN(__glewCompressedTexImage1D) +#define glCompressedTexImage2D GLEW_GET_FUN(__glewCompressedTexImage2D) +#define glCompressedTexImage3D GLEW_GET_FUN(__glewCompressedTexImage3D) +#define glCompressedTexSubImage1D GLEW_GET_FUN(__glewCompressedTexSubImage1D) +#define glCompressedTexSubImage2D GLEW_GET_FUN(__glewCompressedTexSubImage2D) +#define glCompressedTexSubImage3D GLEW_GET_FUN(__glewCompressedTexSubImage3D) +#define glGetCompressedTexImage GLEW_GET_FUN(__glewGetCompressedTexImage) +#define glLoadTransposeMatrixd GLEW_GET_FUN(__glewLoadTransposeMatrixd) +#define glLoadTransposeMatrixf GLEW_GET_FUN(__glewLoadTransposeMatrixf) +#define glMultTransposeMatrixd GLEW_GET_FUN(__glewMultTransposeMatrixd) +#define glMultTransposeMatrixf GLEW_GET_FUN(__glewMultTransposeMatrixf) +#define glMultiTexCoord1d GLEW_GET_FUN(__glewMultiTexCoord1d) +#define glMultiTexCoord1dv GLEW_GET_FUN(__glewMultiTexCoord1dv) +#define glMultiTexCoord1f GLEW_GET_FUN(__glewMultiTexCoord1f) +#define glMultiTexCoord1fv GLEW_GET_FUN(__glewMultiTexCoord1fv) +#define glMultiTexCoord1i GLEW_GET_FUN(__glewMultiTexCoord1i) +#define glMultiTexCoord1iv GLEW_GET_FUN(__glewMultiTexCoord1iv) +#define glMultiTexCoord1s GLEW_GET_FUN(__glewMultiTexCoord1s) +#define glMultiTexCoord1sv GLEW_GET_FUN(__glewMultiTexCoord1sv) +#define glMultiTexCoord2d GLEW_GET_FUN(__glewMultiTexCoord2d) +#define glMultiTexCoord2dv GLEW_GET_FUN(__glewMultiTexCoord2dv) +#define glMultiTexCoord2f GLEW_GET_FUN(__glewMultiTexCoord2f) +#define glMultiTexCoord2fv GLEW_GET_FUN(__glewMultiTexCoord2fv) +#define glMultiTexCoord2i GLEW_GET_FUN(__glewMultiTexCoord2i) +#define glMultiTexCoord2iv GLEW_GET_FUN(__glewMultiTexCoord2iv) +#define glMultiTexCoord2s GLEW_GET_FUN(__glewMultiTexCoord2s) +#define glMultiTexCoord2sv GLEW_GET_FUN(__glewMultiTexCoord2sv) +#define glMultiTexCoord3d GLEW_GET_FUN(__glewMultiTexCoord3d) +#define glMultiTexCoord3dv GLEW_GET_FUN(__glewMultiTexCoord3dv) +#define glMultiTexCoord3f GLEW_GET_FUN(__glewMultiTexCoord3f) +#define glMultiTexCoord3fv GLEW_GET_FUN(__glewMultiTexCoord3fv) +#define glMultiTexCoord3i GLEW_GET_FUN(__glewMultiTexCoord3i) +#define glMultiTexCoord3iv GLEW_GET_FUN(__glewMultiTexCoord3iv) +#define glMultiTexCoord3s GLEW_GET_FUN(__glewMultiTexCoord3s) +#define glMultiTexCoord3sv GLEW_GET_FUN(__glewMultiTexCoord3sv) +#define glMultiTexCoord4d GLEW_GET_FUN(__glewMultiTexCoord4d) +#define glMultiTexCoord4dv GLEW_GET_FUN(__glewMultiTexCoord4dv) +#define glMultiTexCoord4f GLEW_GET_FUN(__glewMultiTexCoord4f) +#define glMultiTexCoord4fv GLEW_GET_FUN(__glewMultiTexCoord4fv) +#define glMultiTexCoord4i GLEW_GET_FUN(__glewMultiTexCoord4i) +#define glMultiTexCoord4iv GLEW_GET_FUN(__glewMultiTexCoord4iv) +#define glMultiTexCoord4s GLEW_GET_FUN(__glewMultiTexCoord4s) +#define glMultiTexCoord4sv GLEW_GET_FUN(__glewMultiTexCoord4sv) +#define glSampleCoverage GLEW_GET_FUN(__glewSampleCoverage) + +#define GLEW_VERSION_1_3 GLEW_GET_VAR(__GLEW_VERSION_1_3) + +#endif /* GL_VERSION_1_3 */ + +/* ----------------------------- GL_VERSION_1_4 ---------------------------- */ + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 + +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_TEXTURE_COMPARE_MODE 0x884C +#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); + +#define glBlendColor GLEW_GET_FUN(__glewBlendColor) +#define glBlendEquation GLEW_GET_FUN(__glewBlendEquation) +#define glBlendFuncSeparate GLEW_GET_FUN(__glewBlendFuncSeparate) +#define glFogCoordPointer GLEW_GET_FUN(__glewFogCoordPointer) +#define glFogCoordd GLEW_GET_FUN(__glewFogCoordd) +#define glFogCoorddv GLEW_GET_FUN(__glewFogCoorddv) +#define glFogCoordf GLEW_GET_FUN(__glewFogCoordf) +#define glFogCoordfv GLEW_GET_FUN(__glewFogCoordfv) +#define glMultiDrawArrays GLEW_GET_FUN(__glewMultiDrawArrays) +#define glMultiDrawElements GLEW_GET_FUN(__glewMultiDrawElements) +#define glPointParameterf GLEW_GET_FUN(__glewPointParameterf) +#define glPointParameterfv GLEW_GET_FUN(__glewPointParameterfv) +#define glPointParameteri GLEW_GET_FUN(__glewPointParameteri) +#define glPointParameteriv GLEW_GET_FUN(__glewPointParameteriv) +#define glSecondaryColor3b GLEW_GET_FUN(__glewSecondaryColor3b) +#define glSecondaryColor3bv GLEW_GET_FUN(__glewSecondaryColor3bv) +#define glSecondaryColor3d GLEW_GET_FUN(__glewSecondaryColor3d) +#define glSecondaryColor3dv GLEW_GET_FUN(__glewSecondaryColor3dv) +#define glSecondaryColor3f GLEW_GET_FUN(__glewSecondaryColor3f) +#define glSecondaryColor3fv GLEW_GET_FUN(__glewSecondaryColor3fv) +#define glSecondaryColor3i GLEW_GET_FUN(__glewSecondaryColor3i) +#define glSecondaryColor3iv GLEW_GET_FUN(__glewSecondaryColor3iv) +#define glSecondaryColor3s GLEW_GET_FUN(__glewSecondaryColor3s) +#define glSecondaryColor3sv GLEW_GET_FUN(__glewSecondaryColor3sv) +#define glSecondaryColor3ub GLEW_GET_FUN(__glewSecondaryColor3ub) +#define glSecondaryColor3ubv GLEW_GET_FUN(__glewSecondaryColor3ubv) +#define glSecondaryColor3ui GLEW_GET_FUN(__glewSecondaryColor3ui) +#define glSecondaryColor3uiv GLEW_GET_FUN(__glewSecondaryColor3uiv) +#define glSecondaryColor3us GLEW_GET_FUN(__glewSecondaryColor3us) +#define glSecondaryColor3usv GLEW_GET_FUN(__glewSecondaryColor3usv) +#define glSecondaryColorPointer GLEW_GET_FUN(__glewSecondaryColorPointer) +#define glWindowPos2d GLEW_GET_FUN(__glewWindowPos2d) +#define glWindowPos2dv GLEW_GET_FUN(__glewWindowPos2dv) +#define glWindowPos2f GLEW_GET_FUN(__glewWindowPos2f) +#define glWindowPos2fv GLEW_GET_FUN(__glewWindowPos2fv) +#define glWindowPos2i GLEW_GET_FUN(__glewWindowPos2i) +#define glWindowPos2iv GLEW_GET_FUN(__glewWindowPos2iv) +#define glWindowPos2s GLEW_GET_FUN(__glewWindowPos2s) +#define glWindowPos2sv GLEW_GET_FUN(__glewWindowPos2sv) +#define glWindowPos3d GLEW_GET_FUN(__glewWindowPos3d) +#define glWindowPos3dv GLEW_GET_FUN(__glewWindowPos3dv) +#define glWindowPos3f GLEW_GET_FUN(__glewWindowPos3f) +#define glWindowPos3fv GLEW_GET_FUN(__glewWindowPos3fv) +#define glWindowPos3i GLEW_GET_FUN(__glewWindowPos3i) +#define glWindowPos3iv GLEW_GET_FUN(__glewWindowPos3iv) +#define glWindowPos3s GLEW_GET_FUN(__glewWindowPos3s) +#define glWindowPos3sv GLEW_GET_FUN(__glewWindowPos3sv) + +#define GLEW_VERSION_1_4 GLEW_GET_VAR(__GLEW_VERSION_1_4) + +#endif /* GL_VERSION_1_4 */ + +/* ----------------------------- GL_VERSION_1_5 ---------------------------- */ + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 + +#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE +#define GL_FOG_COORD GL_FOG_COORDINATE +#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY +#define GL_SRC0_RGB GL_SOURCE0_RGB +#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER +#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE +#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA +#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE +#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE +#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA +#define GL_SRC1_RGB GL_SOURCE1_RGB +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING +#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA +#define GL_SRC2_RGB GL_SOURCE2_RGB +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 + +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); + +#define glBeginQuery GLEW_GET_FUN(__glewBeginQuery) +#define glBindBuffer GLEW_GET_FUN(__glewBindBuffer) +#define glBufferData GLEW_GET_FUN(__glewBufferData) +#define glBufferSubData GLEW_GET_FUN(__glewBufferSubData) +#define glDeleteBuffers GLEW_GET_FUN(__glewDeleteBuffers) +#define glDeleteQueries GLEW_GET_FUN(__glewDeleteQueries) +#define glEndQuery GLEW_GET_FUN(__glewEndQuery) +#define glGenBuffers GLEW_GET_FUN(__glewGenBuffers) +#define glGenQueries GLEW_GET_FUN(__glewGenQueries) +#define glGetBufferParameteriv GLEW_GET_FUN(__glewGetBufferParameteriv) +#define glGetBufferPointerv GLEW_GET_FUN(__glewGetBufferPointerv) +#define glGetBufferSubData GLEW_GET_FUN(__glewGetBufferSubData) +#define glGetQueryObjectiv GLEW_GET_FUN(__glewGetQueryObjectiv) +#define glGetQueryObjectuiv GLEW_GET_FUN(__glewGetQueryObjectuiv) +#define glGetQueryiv GLEW_GET_FUN(__glewGetQueryiv) +#define glIsBuffer GLEW_GET_FUN(__glewIsBuffer) +#define glIsQuery GLEW_GET_FUN(__glewIsQuery) +#define glMapBuffer GLEW_GET_FUN(__glewMapBuffer) +#define glUnmapBuffer GLEW_GET_FUN(__glewUnmapBuffer) + +#define GLEW_VERSION_1_5 GLEW_GET_VAR(__GLEW_VERSION_1_5) + +#endif /* GL_VERSION_1_5 */ + +/* ----------------------------- GL_VERSION_2_0 ---------------------------- */ + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 + +#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_COORDS 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#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); + +#define glAttachShader GLEW_GET_FUN(__glewAttachShader) +#define glBindAttribLocation GLEW_GET_FUN(__glewBindAttribLocation) +#define glBlendEquationSeparate GLEW_GET_FUN(__glewBlendEquationSeparate) +#define glCompileShader GLEW_GET_FUN(__glewCompileShader) +#define glCreateProgram GLEW_GET_FUN(__glewCreateProgram) +#define glCreateShader GLEW_GET_FUN(__glewCreateShader) +#define glDeleteProgram GLEW_GET_FUN(__glewDeleteProgram) +#define glDeleteShader GLEW_GET_FUN(__glewDeleteShader) +#define glDetachShader GLEW_GET_FUN(__glewDetachShader) +#define glDisableVertexAttribArray GLEW_GET_FUN(__glewDisableVertexAttribArray) +#define glDrawBuffers GLEW_GET_FUN(__glewDrawBuffers) +#define glEnableVertexAttribArray GLEW_GET_FUN(__glewEnableVertexAttribArray) +#define glGetActiveAttrib GLEW_GET_FUN(__glewGetActiveAttrib) +#define glGetActiveUniform GLEW_GET_FUN(__glewGetActiveUniform) +#define glGetAttachedShaders GLEW_GET_FUN(__glewGetAttachedShaders) +#define glGetAttribLocation GLEW_GET_FUN(__glewGetAttribLocation) +#define glGetProgramInfoLog GLEW_GET_FUN(__glewGetProgramInfoLog) +#define glGetProgramiv GLEW_GET_FUN(__glewGetProgramiv) +#define glGetShaderInfoLog GLEW_GET_FUN(__glewGetShaderInfoLog) +#define glGetShaderSource GLEW_GET_FUN(__glewGetShaderSource) +#define glGetShaderiv GLEW_GET_FUN(__glewGetShaderiv) +#define glGetUniformLocation GLEW_GET_FUN(__glewGetUniformLocation) +#define glGetUniformfv GLEW_GET_FUN(__glewGetUniformfv) +#define glGetUniformiv GLEW_GET_FUN(__glewGetUniformiv) +#define glGetVertexAttribPointerv GLEW_GET_FUN(__glewGetVertexAttribPointerv) +#define glGetVertexAttribdv GLEW_GET_FUN(__glewGetVertexAttribdv) +#define glGetVertexAttribfv GLEW_GET_FUN(__glewGetVertexAttribfv) +#define glGetVertexAttribiv GLEW_GET_FUN(__glewGetVertexAttribiv) +#define glIsProgram GLEW_GET_FUN(__glewIsProgram) +#define glIsShader GLEW_GET_FUN(__glewIsShader) +#define glLinkProgram GLEW_GET_FUN(__glewLinkProgram) +#define glShaderSource GLEW_GET_FUN(__glewShaderSource) +#define glStencilFuncSeparate GLEW_GET_FUN(__glewStencilFuncSeparate) +#define glStencilMaskSeparate GLEW_GET_FUN(__glewStencilMaskSeparate) +#define glStencilOpSeparate GLEW_GET_FUN(__glewStencilOpSeparate) +#define glUniform1f GLEW_GET_FUN(__glewUniform1f) +#define glUniform1fv GLEW_GET_FUN(__glewUniform1fv) +#define glUniform1i GLEW_GET_FUN(__glewUniform1i) +#define glUniform1iv GLEW_GET_FUN(__glewUniform1iv) +#define glUniform2f GLEW_GET_FUN(__glewUniform2f) +#define glUniform2fv GLEW_GET_FUN(__glewUniform2fv) +#define glUniform2i GLEW_GET_FUN(__glewUniform2i) +#define glUniform2iv GLEW_GET_FUN(__glewUniform2iv) +#define glUniform3f GLEW_GET_FUN(__glewUniform3f) +#define glUniform3fv GLEW_GET_FUN(__glewUniform3fv) +#define glUniform3i GLEW_GET_FUN(__glewUniform3i) +#define glUniform3iv GLEW_GET_FUN(__glewUniform3iv) +#define glUniform4f GLEW_GET_FUN(__glewUniform4f) +#define glUniform4fv GLEW_GET_FUN(__glewUniform4fv) +#define glUniform4i GLEW_GET_FUN(__glewUniform4i) +#define glUniform4iv GLEW_GET_FUN(__glewUniform4iv) +#define glUniformMatrix2fv GLEW_GET_FUN(__glewUniformMatrix2fv) +#define glUniformMatrix3fv GLEW_GET_FUN(__glewUniformMatrix3fv) +#define glUniformMatrix4fv GLEW_GET_FUN(__glewUniformMatrix4fv) +#define glUseProgram GLEW_GET_FUN(__glewUseProgram) +#define glValidateProgram GLEW_GET_FUN(__glewValidateProgram) +#define glVertexAttrib1d GLEW_GET_FUN(__glewVertexAttrib1d) +#define glVertexAttrib1dv GLEW_GET_FUN(__glewVertexAttrib1dv) +#define glVertexAttrib1f GLEW_GET_FUN(__glewVertexAttrib1f) +#define glVertexAttrib1fv GLEW_GET_FUN(__glewVertexAttrib1fv) +#define glVertexAttrib1s GLEW_GET_FUN(__glewVertexAttrib1s) +#define glVertexAttrib1sv GLEW_GET_FUN(__glewVertexAttrib1sv) +#define glVertexAttrib2d GLEW_GET_FUN(__glewVertexAttrib2d) +#define glVertexAttrib2dv GLEW_GET_FUN(__glewVertexAttrib2dv) +#define glVertexAttrib2f GLEW_GET_FUN(__glewVertexAttrib2f) +#define glVertexAttrib2fv GLEW_GET_FUN(__glewVertexAttrib2fv) +#define glVertexAttrib2s GLEW_GET_FUN(__glewVertexAttrib2s) +#define glVertexAttrib2sv GLEW_GET_FUN(__glewVertexAttrib2sv) +#define glVertexAttrib3d GLEW_GET_FUN(__glewVertexAttrib3d) +#define glVertexAttrib3dv GLEW_GET_FUN(__glewVertexAttrib3dv) +#define glVertexAttrib3f GLEW_GET_FUN(__glewVertexAttrib3f) +#define glVertexAttrib3fv GLEW_GET_FUN(__glewVertexAttrib3fv) +#define glVertexAttrib3s GLEW_GET_FUN(__glewVertexAttrib3s) +#define glVertexAttrib3sv GLEW_GET_FUN(__glewVertexAttrib3sv) +#define glVertexAttrib4Nbv GLEW_GET_FUN(__glewVertexAttrib4Nbv) +#define glVertexAttrib4Niv GLEW_GET_FUN(__glewVertexAttrib4Niv) +#define glVertexAttrib4Nsv GLEW_GET_FUN(__glewVertexAttrib4Nsv) +#define glVertexAttrib4Nub GLEW_GET_FUN(__glewVertexAttrib4Nub) +#define glVertexAttrib4Nubv GLEW_GET_FUN(__glewVertexAttrib4Nubv) +#define glVertexAttrib4Nuiv GLEW_GET_FUN(__glewVertexAttrib4Nuiv) +#define glVertexAttrib4Nusv GLEW_GET_FUN(__glewVertexAttrib4Nusv) +#define glVertexAttrib4bv GLEW_GET_FUN(__glewVertexAttrib4bv) +#define glVertexAttrib4d GLEW_GET_FUN(__glewVertexAttrib4d) +#define glVertexAttrib4dv GLEW_GET_FUN(__glewVertexAttrib4dv) +#define glVertexAttrib4f GLEW_GET_FUN(__glewVertexAttrib4f) +#define glVertexAttrib4fv GLEW_GET_FUN(__glewVertexAttrib4fv) +#define glVertexAttrib4iv GLEW_GET_FUN(__glewVertexAttrib4iv) +#define glVertexAttrib4s GLEW_GET_FUN(__glewVertexAttrib4s) +#define glVertexAttrib4sv GLEW_GET_FUN(__glewVertexAttrib4sv) +#define glVertexAttrib4ubv GLEW_GET_FUN(__glewVertexAttrib4ubv) +#define glVertexAttrib4uiv GLEW_GET_FUN(__glewVertexAttrib4uiv) +#define glVertexAttrib4usv GLEW_GET_FUN(__glewVertexAttrib4usv) +#define glVertexAttribPointer GLEW_GET_FUN(__glewVertexAttribPointer) + +#define GLEW_VERSION_2_0 GLEW_GET_VAR(__GLEW_VERSION_2_0) + +#endif /* GL_VERSION_2_0 */ + +/* ----------------------------- GL_VERSION_2_1 ---------------------------- */ + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 + +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#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); + +#define glUniformMatrix2x3fv GLEW_GET_FUN(__glewUniformMatrix2x3fv) +#define glUniformMatrix2x4fv GLEW_GET_FUN(__glewUniformMatrix2x4fv) +#define glUniformMatrix3x2fv GLEW_GET_FUN(__glewUniformMatrix3x2fv) +#define glUniformMatrix3x4fv GLEW_GET_FUN(__glewUniformMatrix3x4fv) +#define glUniformMatrix4x2fv GLEW_GET_FUN(__glewUniformMatrix4x2fv) +#define glUniformMatrix4x3fv GLEW_GET_FUN(__glewUniformMatrix4x3fv) + +#define GLEW_VERSION_2_1 GLEW_GET_VAR(__GLEW_VERSION_2_1) + +#endif /* GL_VERSION_2_1 */ + +/* ----------------------------- GL_VERSION_3_0 ---------------------------- */ + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 + +#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES +#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 +#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 +#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 +#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB +#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 +#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 +#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 +#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_DEPTH_BUFFER 0x8223 +#define GL_STENCIL_BUFFER 0x8224 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_ALPHA_INTEGER 0x8D97 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#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*); + +#define glBeginConditionalRender GLEW_GET_FUN(__glewBeginConditionalRender) +#define glBeginTransformFeedback GLEW_GET_FUN(__glewBeginTransformFeedback) +#define glBindFragDataLocation GLEW_GET_FUN(__glewBindFragDataLocation) +#define glClampColor GLEW_GET_FUN(__glewClampColor) +#define glClearBufferfi GLEW_GET_FUN(__glewClearBufferfi) +#define glClearBufferfv GLEW_GET_FUN(__glewClearBufferfv) +#define glClearBufferiv GLEW_GET_FUN(__glewClearBufferiv) +#define glClearBufferuiv GLEW_GET_FUN(__glewClearBufferuiv) +#define glColorMaski GLEW_GET_FUN(__glewColorMaski) +#define glDisablei GLEW_GET_FUN(__glewDisablei) +#define glEnablei GLEW_GET_FUN(__glewEnablei) +#define glEndConditionalRender GLEW_GET_FUN(__glewEndConditionalRender) +#define glEndTransformFeedback GLEW_GET_FUN(__glewEndTransformFeedback) +#define glGetBooleani_v GLEW_GET_FUN(__glewGetBooleani_v) +#define glGetFragDataLocation GLEW_GET_FUN(__glewGetFragDataLocation) +#define glGetStringi GLEW_GET_FUN(__glewGetStringi) +#define glGetTexParameterIiv GLEW_GET_FUN(__glewGetTexParameterIiv) +#define glGetTexParameterIuiv GLEW_GET_FUN(__glewGetTexParameterIuiv) +#define glGetTransformFeedbackVarying GLEW_GET_FUN(__glewGetTransformFeedbackVarying) +#define glGetUniformuiv GLEW_GET_FUN(__glewGetUniformuiv) +#define glGetVertexAttribIiv GLEW_GET_FUN(__glewGetVertexAttribIiv) +#define glGetVertexAttribIuiv GLEW_GET_FUN(__glewGetVertexAttribIuiv) +#define glIsEnabledi GLEW_GET_FUN(__glewIsEnabledi) +#define glTexParameterIiv GLEW_GET_FUN(__glewTexParameterIiv) +#define glTexParameterIuiv GLEW_GET_FUN(__glewTexParameterIuiv) +#define glTransformFeedbackVaryings GLEW_GET_FUN(__glewTransformFeedbackVaryings) +#define glUniform1ui GLEW_GET_FUN(__glewUniform1ui) +#define glUniform1uiv GLEW_GET_FUN(__glewUniform1uiv) +#define glUniform2ui GLEW_GET_FUN(__glewUniform2ui) +#define glUniform2uiv GLEW_GET_FUN(__glewUniform2uiv) +#define glUniform3ui GLEW_GET_FUN(__glewUniform3ui) +#define glUniform3uiv GLEW_GET_FUN(__glewUniform3uiv) +#define glUniform4ui GLEW_GET_FUN(__glewUniform4ui) +#define glUniform4uiv GLEW_GET_FUN(__glewUniform4uiv) +#define glVertexAttribI1i GLEW_GET_FUN(__glewVertexAttribI1i) +#define glVertexAttribI1iv GLEW_GET_FUN(__glewVertexAttribI1iv) +#define glVertexAttribI1ui GLEW_GET_FUN(__glewVertexAttribI1ui) +#define glVertexAttribI1uiv GLEW_GET_FUN(__glewVertexAttribI1uiv) +#define glVertexAttribI2i GLEW_GET_FUN(__glewVertexAttribI2i) +#define glVertexAttribI2iv GLEW_GET_FUN(__glewVertexAttribI2iv) +#define glVertexAttribI2ui GLEW_GET_FUN(__glewVertexAttribI2ui) +#define glVertexAttribI2uiv GLEW_GET_FUN(__glewVertexAttribI2uiv) +#define glVertexAttribI3i GLEW_GET_FUN(__glewVertexAttribI3i) +#define glVertexAttribI3iv GLEW_GET_FUN(__glewVertexAttribI3iv) +#define glVertexAttribI3ui GLEW_GET_FUN(__glewVertexAttribI3ui) +#define glVertexAttribI3uiv GLEW_GET_FUN(__glewVertexAttribI3uiv) +#define glVertexAttribI4bv GLEW_GET_FUN(__glewVertexAttribI4bv) +#define glVertexAttribI4i GLEW_GET_FUN(__glewVertexAttribI4i) +#define glVertexAttribI4iv GLEW_GET_FUN(__glewVertexAttribI4iv) +#define glVertexAttribI4sv GLEW_GET_FUN(__glewVertexAttribI4sv) +#define glVertexAttribI4ubv GLEW_GET_FUN(__glewVertexAttribI4ubv) +#define glVertexAttribI4ui GLEW_GET_FUN(__glewVertexAttribI4ui) +#define glVertexAttribI4uiv GLEW_GET_FUN(__glewVertexAttribI4uiv) +#define glVertexAttribI4usv GLEW_GET_FUN(__glewVertexAttribI4usv) +#define glVertexAttribIPointer GLEW_GET_FUN(__glewVertexAttribIPointer) + +#define GLEW_VERSION_3_0 GLEW_GET_VAR(__GLEW_VERSION_3_0) + +#endif /* GL_VERSION_3_0 */ + +/* ----------------------------- GL_VERSION_3_1 ---------------------------- */ + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 + +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#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); + +#define glDrawArraysInstanced GLEW_GET_FUN(__glewDrawArraysInstanced) +#define glDrawElementsInstanced GLEW_GET_FUN(__glewDrawElementsInstanced) +#define glPrimitiveRestartIndex GLEW_GET_FUN(__glewPrimitiveRestartIndex) +#define glTexBuffer GLEW_GET_FUN(__glewTexBuffer) + +#define GLEW_VERSION_3_1 GLEW_GET_VAR(__GLEW_VERSION_3_1) + +#endif /* GL_VERSION_3_1 */ + +/* ----------------------------- GL_VERSION_3_2 ---------------------------- */ + +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 + +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#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 *); + +#define glFramebufferTexture GLEW_GET_FUN(__glewFramebufferTexture) +#define glGetBufferParameteri64v GLEW_GET_FUN(__glewGetBufferParameteri64v) +#define glGetInteger64i_v GLEW_GET_FUN(__glewGetInteger64i_v) + +#define GLEW_VERSION_3_2 GLEW_GET_VAR(__GLEW_VERSION_3_2) + +#endif /* GL_VERSION_3_2 */ + +/* ----------------------------- GL_VERSION_3_3 ---------------------------- */ + +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +#define GL_RGB10_A2UI 0x906F + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisor GLEW_GET_FUN(__glewVertexAttribDivisor) + +#define GLEW_VERSION_3_3 GLEW_GET_VAR(__GLEW_VERSION_3_3) + +#endif /* GL_VERSION_3_3 */ + +/* ----------------------------- GL_VERSION_4_0 ---------------------------- */ + +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 + +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#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); + +#define glBlendEquationSeparatei GLEW_GET_FUN(__glewBlendEquationSeparatei) +#define glBlendEquationi GLEW_GET_FUN(__glewBlendEquationi) +#define glBlendFuncSeparatei GLEW_GET_FUN(__glewBlendFuncSeparatei) +#define glBlendFunci GLEW_GET_FUN(__glewBlendFunci) +#define glMinSampleShading GLEW_GET_FUN(__glewMinSampleShading) + +#define GLEW_VERSION_4_0 GLEW_GET_VAR(__GLEW_VERSION_4_0) + +#endif /* GL_VERSION_4_0 */ + +/* ----------------------------- GL_VERSION_4_1 ---------------------------- */ + +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 + +#define GLEW_VERSION_4_1 GLEW_GET_VAR(__GLEW_VERSION_4_1) + +#endif /* GL_VERSION_4_1 */ + +/* ----------------------------- GL_VERSION_4_2 ---------------------------- */ + +#ifndef GL_VERSION_4_2 +#define GL_VERSION_4_2 1 + +#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F + +#define GLEW_VERSION_4_2 GLEW_GET_VAR(__GLEW_VERSION_4_2) + +#endif /* GL_VERSION_4_2 */ + +/* ----------------------------- GL_VERSION_4_3 ---------------------------- */ + +#ifndef GL_VERSION_4_3 +#define GL_VERSION_4_3 1 + +#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 +#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E + +#define GLEW_VERSION_4_3 GLEW_GET_VAR(__GLEW_VERSION_4_3) + +#endif /* GL_VERSION_4_3 */ + +/* ----------------------------- GL_VERSION_4_4 ---------------------------- */ + +#ifndef GL_VERSION_4_4 +#define GL_VERSION_4_4 1 + +#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 + +#define GLEW_VERSION_4_4 GLEW_GET_VAR(__GLEW_VERSION_4_4) + +#endif /* GL_VERSION_4_4 */ + +/* -------------------------- GL_3DFX_multisample -------------------------- */ + +#ifndef GL_3DFX_multisample +#define GL_3DFX_multisample 1 + +#define GL_MULTISAMPLE_3DFX 0x86B2 +#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 +#define GL_SAMPLES_3DFX 0x86B4 +#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 + +#define GLEW_3DFX_multisample GLEW_GET_VAR(__GLEW_3DFX_multisample) + +#endif /* GL_3DFX_multisample */ + +/* ---------------------------- GL_3DFX_tbuffer ---------------------------- */ + +#ifndef GL_3DFX_tbuffer +#define GL_3DFX_tbuffer 1 + +typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); + +#define glTbufferMask3DFX GLEW_GET_FUN(__glewTbufferMask3DFX) + +#define GLEW_3DFX_tbuffer GLEW_GET_VAR(__GLEW_3DFX_tbuffer) + +#endif /* GL_3DFX_tbuffer */ + +/* -------------------- GL_3DFX_texture_compression_FXT1 ------------------- */ + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_3DFX_texture_compression_FXT1 1 + +#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 +#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 + +#define GLEW_3DFX_texture_compression_FXT1 GLEW_GET_VAR(__GLEW_3DFX_texture_compression_FXT1) + +#endif /* GL_3DFX_texture_compression_FXT1 */ + +/* ----------------------- GL_AMD_blend_minmax_factor ---------------------- */ + +#ifndef GL_AMD_blend_minmax_factor +#define GL_AMD_blend_minmax_factor 1 + +#define GL_FACTOR_MIN_AMD 0x901C +#define GL_FACTOR_MAX_AMD 0x901D + +#define GLEW_AMD_blend_minmax_factor GLEW_GET_VAR(__GLEW_AMD_blend_minmax_factor) + +#endif /* GL_AMD_blend_minmax_factor */ + +/* ----------------------- GL_AMD_conservative_depth ----------------------- */ + +#ifndef GL_AMD_conservative_depth +#define GL_AMD_conservative_depth 1 + +#define GLEW_AMD_conservative_depth GLEW_GET_VAR(__GLEW_AMD_conservative_depth) + +#endif /* GL_AMD_conservative_depth */ + +/* -------------------------- GL_AMD_debug_output -------------------------- */ + +#ifndef GL_AMD_debug_output +#define GL_AMD_debug_output 1 + +#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 +#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 +#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 +#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 +#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A +#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B +#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C +#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D +#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E +#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 (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, GLvoid *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) +#define glDebugMessageInsertAMD GLEW_GET_FUN(__glewDebugMessageInsertAMD) +#define glGetDebugMessageLogAMD GLEW_GET_FUN(__glewGetDebugMessageLogAMD) + +#define GLEW_AMD_debug_output GLEW_GET_VAR(__GLEW_AMD_debug_output) + +#endif /* GL_AMD_debug_output */ + +/* ---------------------- GL_AMD_depth_clamp_separate ---------------------- */ + +#ifndef GL_AMD_depth_clamp_separate +#define GL_AMD_depth_clamp_separate 1 + +#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E +#define GL_DEPTH_CLAMP_FAR_AMD 0x901F + +#define GLEW_AMD_depth_clamp_separate GLEW_GET_VAR(__GLEW_AMD_depth_clamp_separate) + +#endif /* GL_AMD_depth_clamp_separate */ + +/* ----------------------- GL_AMD_draw_buffers_blend ----------------------- */ + +#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); + +#define glBlendEquationIndexedAMD GLEW_GET_FUN(__glewBlendEquationIndexedAMD) +#define glBlendEquationSeparateIndexedAMD GLEW_GET_FUN(__glewBlendEquationSeparateIndexedAMD) +#define glBlendFuncIndexedAMD GLEW_GET_FUN(__glewBlendFuncIndexedAMD) +#define glBlendFuncSeparateIndexedAMD GLEW_GET_FUN(__glewBlendFuncSeparateIndexedAMD) + +#define GLEW_AMD_draw_buffers_blend GLEW_GET_VAR(__GLEW_AMD_draw_buffers_blend) + +#endif /* GL_AMD_draw_buffers_blend */ + +/* ---------------------- GL_AMD_interleaved_elements ---------------------- */ + +#ifndef GL_AMD_interleaved_elements +#define GL_AMD_interleaved_elements 1 + +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RG8UI 0x8238 +#define GL_RG16UI 0x823A +#define GL_RGBA8UI 0x8D7C +#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4 +#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5 + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param); + +#define glVertexAttribParameteriAMD GLEW_GET_FUN(__glewVertexAttribParameteriAMD) + +#define GLEW_AMD_interleaved_elements GLEW_GET_VAR(__GLEW_AMD_interleaved_elements) + +#endif /* GL_AMD_interleaved_elements */ + +/* ----------------------- GL_AMD_multi_draw_indirect ---------------------- */ + +#ifndef GL_AMD_multi_draw_indirect +#define GL_AMD_multi_draw_indirect 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride); + +#define glMultiDrawArraysIndirectAMD GLEW_GET_FUN(__glewMultiDrawArraysIndirectAMD) +#define glMultiDrawElementsIndirectAMD GLEW_GET_FUN(__glewMultiDrawElementsIndirectAMD) + +#define GLEW_AMD_multi_draw_indirect GLEW_GET_VAR(__GLEW_AMD_multi_draw_indirect) + +#endif /* GL_AMD_multi_draw_indirect */ + +/* ------------------------- GL_AMD_name_gen_delete ------------------------ */ + +#ifndef GL_AMD_name_gen_delete +#define GL_AMD_name_gen_delete 1 + +#define GL_DATA_BUFFER_AMD 0x9151 +#define GL_PERFORMANCE_MONITOR_AMD 0x9152 +#define GL_QUERY_OBJECT_AMD 0x9153 +#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); + +#define glDeleteNamesAMD GLEW_GET_FUN(__glewDeleteNamesAMD) +#define glGenNamesAMD GLEW_GET_FUN(__glewGenNamesAMD) +#define glIsNameAMD GLEW_GET_FUN(__glewIsNameAMD) + +#define GLEW_AMD_name_gen_delete GLEW_GET_VAR(__GLEW_AMD_name_gen_delete) + +#endif /* GL_AMD_name_gen_delete */ + +/* ----------------------- GL_AMD_performance_monitor ---------------------- */ + +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 + +#define GL_COUNTER_TYPE_AMD 0x8BC0 +#define GL_COUNTER_RANGE_AMD 0x8BC1 +#define GL_UNSIGNED_INT64_AMD 0x8BC2 +#define GL_PERCENTAGE_AMD 0x8BC3 +#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 +#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, GLvoid *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) +#define glEndPerfMonitorAMD GLEW_GET_FUN(__glewEndPerfMonitorAMD) +#define glGenPerfMonitorsAMD GLEW_GET_FUN(__glewGenPerfMonitorsAMD) +#define glGetPerfMonitorCounterDataAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterDataAMD) +#define glGetPerfMonitorCounterInfoAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterInfoAMD) +#define glGetPerfMonitorCounterStringAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterStringAMD) +#define glGetPerfMonitorCountersAMD GLEW_GET_FUN(__glewGetPerfMonitorCountersAMD) +#define glGetPerfMonitorGroupStringAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupStringAMD) +#define glGetPerfMonitorGroupsAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupsAMD) +#define glSelectPerfMonitorCountersAMD GLEW_GET_FUN(__glewSelectPerfMonitorCountersAMD) + +#define GLEW_AMD_performance_monitor GLEW_GET_VAR(__GLEW_AMD_performance_monitor) + +#endif /* GL_AMD_performance_monitor */ + +/* -------------------------- GL_AMD_pinned_memory ------------------------- */ + +#ifndef GL_AMD_pinned_memory +#define GL_AMD_pinned_memory 1 + +#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160 + +#define GLEW_AMD_pinned_memory GLEW_GET_VAR(__GLEW_AMD_pinned_memory) + +#endif /* GL_AMD_pinned_memory */ + +/* ----------------------- GL_AMD_query_buffer_object ---------------------- */ + +#ifndef GL_AMD_query_buffer_object +#define GL_AMD_query_buffer_object 1 + +#define GL_QUERY_BUFFER_AMD 0x9192 +#define GL_QUERY_BUFFER_BINDING_AMD 0x9193 +#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194 + +#define GLEW_AMD_query_buffer_object GLEW_GET_VAR(__GLEW_AMD_query_buffer_object) + +#endif /* GL_AMD_query_buffer_object */ + +/* ------------------------ GL_AMD_sample_positions ------------------------ */ + +#ifndef GL_AMD_sample_positions +#define GL_AMD_sample_positions 1 + +#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F + +typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat* val); + +#define glSetMultisamplefvAMD GLEW_GET_FUN(__glewSetMultisamplefvAMD) + +#define GLEW_AMD_sample_positions GLEW_GET_VAR(__GLEW_AMD_sample_positions) + +#endif /* GL_AMD_sample_positions */ + +/* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */ + +#ifndef GL_AMD_seamless_cubemap_per_texture +#define GL_AMD_seamless_cubemap_per_texture 1 + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS_ARB 0x884F + +#define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture) + +#endif /* GL_AMD_seamless_cubemap_per_texture */ + +/* ---------------------- GL_AMD_shader_stencil_export --------------------- */ + +#ifndef GL_AMD_shader_stencil_export +#define GL_AMD_shader_stencil_export 1 + +#define GLEW_AMD_shader_stencil_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_export) + +#endif /* GL_AMD_shader_stencil_export */ + +/* ---------------------- GL_AMD_shader_trinary_minmax --------------------- */ + +#ifndef GL_AMD_shader_trinary_minmax +#define GL_AMD_shader_trinary_minmax 1 + +#define GLEW_AMD_shader_trinary_minmax GLEW_GET_VAR(__GLEW_AMD_shader_trinary_minmax) + +#endif /* GL_AMD_shader_trinary_minmax */ + +/* ------------------------- GL_AMD_sparse_texture ------------------------- */ + +#ifndef GL_AMD_sparse_texture +#define GL_AMD_sparse_texture 1 + +#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001 +#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A +#define GL_MIN_SPARSE_LEVEL_AMD 0x919B +#define GL_MIN_LOD_WARNING_AMD 0x919C + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); + +#define glTexStorageSparseAMD GLEW_GET_FUN(__glewTexStorageSparseAMD) +#define glTextureStorageSparseAMD GLEW_GET_FUN(__glewTextureStorageSparseAMD) + +#define GLEW_AMD_sparse_texture GLEW_GET_VAR(__GLEW_AMD_sparse_texture) + +#endif /* GL_AMD_sparse_texture */ + +/* ------------------- GL_AMD_stencil_operation_extended ------------------- */ + +#ifndef GL_AMD_stencil_operation_extended +#define GL_AMD_stencil_operation_extended 1 + +#define GL_SET_AMD 0x874A +#define GL_REPLACE_VALUE_AMD 0x874B +#define GL_STENCIL_OP_VALUE_AMD 0x874C +#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D + +typedef void (GLAPIENTRY * PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value); + +#define glStencilOpValueAMD GLEW_GET_FUN(__glewStencilOpValueAMD) + +#define GLEW_AMD_stencil_operation_extended GLEW_GET_VAR(__GLEW_AMD_stencil_operation_extended) + +#endif /* GL_AMD_stencil_operation_extended */ + +/* ------------------------ GL_AMD_texture_texture4 ------------------------ */ + +#ifndef GL_AMD_texture_texture4 +#define GL_AMD_texture_texture4 1 + +#define GLEW_AMD_texture_texture4 GLEW_GET_VAR(__GLEW_AMD_texture_texture4) + +#endif /* GL_AMD_texture_texture4 */ + +/* --------------- GL_AMD_transform_feedback3_lines_triangles -------------- */ + +#ifndef GL_AMD_transform_feedback3_lines_triangles +#define GL_AMD_transform_feedback3_lines_triangles 1 + +#define GLEW_AMD_transform_feedback3_lines_triangles GLEW_GET_VAR(__GLEW_AMD_transform_feedback3_lines_triangles) + +#endif /* GL_AMD_transform_feedback3_lines_triangles */ + +/* ----------------------- GL_AMD_vertex_shader_layer ---------------------- */ + +#ifndef GL_AMD_vertex_shader_layer +#define GL_AMD_vertex_shader_layer 1 + +#define GLEW_AMD_vertex_shader_layer GLEW_GET_VAR(__GLEW_AMD_vertex_shader_layer) + +#endif /* GL_AMD_vertex_shader_layer */ + +/* -------------------- GL_AMD_vertex_shader_tessellator ------------------- */ + +#ifndef GL_AMD_vertex_shader_tessellator +#define GL_AMD_vertex_shader_tessellator 1 + +#define GL_SAMPLER_BUFFER_AMD 0x9001 +#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 +#define GL_TESSELLATION_MODE_AMD 0x9004 +#define GL_TESSELLATION_FACTOR_AMD 0x9005 +#define GL_DISCRETE_AMD 0x9006 +#define GL_CONTINUOUS_AMD 0x9007 + +typedef void (GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); +typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); + +#define glTessellationFactorAMD GLEW_GET_FUN(__glewTessellationFactorAMD) +#define glTessellationModeAMD GLEW_GET_FUN(__glewTessellationModeAMD) + +#define GLEW_AMD_vertex_shader_tessellator GLEW_GET_VAR(__GLEW_AMD_vertex_shader_tessellator) + +#endif /* GL_AMD_vertex_shader_tessellator */ + +/* ------------------ GL_AMD_vertex_shader_viewport_index ------------------ */ + +#ifndef GL_AMD_vertex_shader_viewport_index +#define GL_AMD_vertex_shader_viewport_index 1 + +#define GLEW_AMD_vertex_shader_viewport_index GLEW_GET_VAR(__GLEW_AMD_vertex_shader_viewport_index) + +#endif /* GL_AMD_vertex_shader_viewport_index */ + +/* ------------------------- GL_ANGLE_depth_texture ------------------------ */ + +#ifndef GL_ANGLE_depth_texture +#define GL_ANGLE_depth_texture 1 + +#define GLEW_ANGLE_depth_texture GLEW_GET_VAR(__GLEW_ANGLE_depth_texture) + +#endif /* GL_ANGLE_depth_texture */ + +/* ----------------------- GL_ANGLE_framebuffer_blit ----------------------- */ + +#ifndef GL_ANGLE_framebuffer_blit +#define GL_ANGLE_framebuffer_blit 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA + +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + +#define glBlitFramebufferANGLE GLEW_GET_FUN(__glewBlitFramebufferANGLE) + +#define GLEW_ANGLE_framebuffer_blit GLEW_GET_VAR(__GLEW_ANGLE_framebuffer_blit) + +#endif /* GL_ANGLE_framebuffer_blit */ + +/* -------------------- GL_ANGLE_framebuffer_multisample ------------------- */ + +#ifndef GL_ANGLE_framebuffer_multisample +#define GL_ANGLE_framebuffer_multisample 1 + +#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 +#define GL_MAX_SAMPLES_ANGLE 0x8D57 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glRenderbufferStorageMultisampleANGLE GLEW_GET_FUN(__glewRenderbufferStorageMultisampleANGLE) + +#define GLEW_ANGLE_framebuffer_multisample GLEW_GET_VAR(__GLEW_ANGLE_framebuffer_multisample) + +#endif /* GL_ANGLE_framebuffer_multisample */ + +/* ----------------------- GL_ANGLE_instanced_arrays ----------------------- */ + +#ifndef GL_ANGLE_instanced_arrays +#define GL_ANGLE_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); + +#define glDrawArraysInstancedANGLE GLEW_GET_FUN(__glewDrawArraysInstancedANGLE) +#define glDrawElementsInstancedANGLE GLEW_GET_FUN(__glewDrawElementsInstancedANGLE) +#define glVertexAttribDivisorANGLE GLEW_GET_FUN(__glewVertexAttribDivisorANGLE) + +#define GLEW_ANGLE_instanced_arrays GLEW_GET_VAR(__GLEW_ANGLE_instanced_arrays) + +#endif /* GL_ANGLE_instanced_arrays */ + +/* -------------------- GL_ANGLE_pack_reverse_row_order -------------------- */ + +#ifndef GL_ANGLE_pack_reverse_row_order +#define GL_ANGLE_pack_reverse_row_order 1 + +#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 + +#define GLEW_ANGLE_pack_reverse_row_order GLEW_GET_VAR(__GLEW_ANGLE_pack_reverse_row_order) + +#endif /* GL_ANGLE_pack_reverse_row_order */ + +/* ------------------------ GL_ANGLE_program_binary ------------------------ */ + +#ifndef GL_ANGLE_program_binary +#define GL_ANGLE_program_binary 1 + +#define GL_PROGRAM_BINARY_ANGLE 0x93A6 + +#define GLEW_ANGLE_program_binary GLEW_GET_VAR(__GLEW_ANGLE_program_binary) + +#endif /* GL_ANGLE_program_binary */ + +/* ------------------- GL_ANGLE_texture_compression_dxt1 ------------------- */ + +#ifndef GL_ANGLE_texture_compression_dxt1 +#define GL_ANGLE_texture_compression_dxt1 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 + +#define GLEW_ANGLE_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt1) + +#endif /* GL_ANGLE_texture_compression_dxt1 */ + +/* ------------------- GL_ANGLE_texture_compression_dxt3 ------------------- */ + +#ifndef GL_ANGLE_texture_compression_dxt3 +#define GL_ANGLE_texture_compression_dxt3 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 + +#define GLEW_ANGLE_texture_compression_dxt3 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt3) + +#endif /* GL_ANGLE_texture_compression_dxt3 */ + +/* ------------------- GL_ANGLE_texture_compression_dxt5 ------------------- */ + +#ifndef GL_ANGLE_texture_compression_dxt5 +#define GL_ANGLE_texture_compression_dxt5 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 + +#define GLEW_ANGLE_texture_compression_dxt5 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt5) + +#endif /* GL_ANGLE_texture_compression_dxt5 */ + +/* ------------------------- GL_ANGLE_texture_usage ------------------------ */ + +#ifndef GL_ANGLE_texture_usage +#define GL_ANGLE_texture_usage 1 + +#define GL_TEXTURE_USAGE_ANGLE 0x93A2 +#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 + +#define GLEW_ANGLE_texture_usage GLEW_GET_VAR(__GLEW_ANGLE_texture_usage) + +#endif /* GL_ANGLE_texture_usage */ + +/* -------------------------- GL_ANGLE_timer_query ------------------------- */ + +#ifndef GL_ANGLE_timer_query +#define GL_ANGLE_timer_query 1 + +#define GL_QUERY_COUNTER_BITS_ANGLE 0x8864 +#define GL_CURRENT_QUERY_ANGLE 0x8865 +#define GL_QUERY_RESULT_ANGLE 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ANGLE 0x8867 +#define GL_TIME_ELAPSED_ANGLE 0x88BF +#define GL_TIMESTAMP_ANGLE 0x8E28 + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYANGLEPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEQUERIESANGLEPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDQUERYANGLEPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGENQUERIESANGLEPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VANGLEPROC) (GLuint id, GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVANGLEPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VANGLEPROC) (GLuint id, GLenum pname, GLuint64* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVANGLEPROC) (GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYIVANGLEPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISQUERYANGLEPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERANGLEPROC) (GLuint id, GLenum target); + +#define glBeginQueryANGLE GLEW_GET_FUN(__glewBeginQueryANGLE) +#define glDeleteQueriesANGLE GLEW_GET_FUN(__glewDeleteQueriesANGLE) +#define glEndQueryANGLE GLEW_GET_FUN(__glewEndQueryANGLE) +#define glGenQueriesANGLE GLEW_GET_FUN(__glewGenQueriesANGLE) +#define glGetQueryObjecti64vANGLE GLEW_GET_FUN(__glewGetQueryObjecti64vANGLE) +#define glGetQueryObjectivANGLE GLEW_GET_FUN(__glewGetQueryObjectivANGLE) +#define glGetQueryObjectui64vANGLE GLEW_GET_FUN(__glewGetQueryObjectui64vANGLE) +#define glGetQueryObjectuivANGLE GLEW_GET_FUN(__glewGetQueryObjectuivANGLE) +#define glGetQueryivANGLE GLEW_GET_FUN(__glewGetQueryivANGLE) +#define glIsQueryANGLE GLEW_GET_FUN(__glewIsQueryANGLE) +#define glQueryCounterANGLE GLEW_GET_FUN(__glewQueryCounterANGLE) + +#define GLEW_ANGLE_timer_query GLEW_GET_VAR(__GLEW_ANGLE_timer_query) + +#endif /* GL_ANGLE_timer_query */ + +/* ------------------- GL_ANGLE_translated_shader_source ------------------- */ + +#ifndef GL_ANGLE_translated_shader_source +#define GL_ANGLE_translated_shader_source 1 + +#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 + +typedef void (GLAPIENTRY * PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); + +#define glGetTranslatedShaderSourceANGLE GLEW_GET_FUN(__glewGetTranslatedShaderSourceANGLE) + +#define GLEW_ANGLE_translated_shader_source GLEW_GET_VAR(__GLEW_ANGLE_translated_shader_source) + +#endif /* GL_ANGLE_translated_shader_source */ + +/* ----------------------- GL_APPLE_aux_depth_stencil ---------------------- */ + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_APPLE_aux_depth_stencil 1 + +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 + +#define GLEW_APPLE_aux_depth_stencil GLEW_GET_VAR(__GLEW_APPLE_aux_depth_stencil) + +#endif /* GL_APPLE_aux_depth_stencil */ + +/* ------------------------ GL_APPLE_client_storage ------------------------ */ + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 + +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 + +#define GLEW_APPLE_client_storage GLEW_GET_VAR(__GLEW_APPLE_client_storage) + +#endif /* GL_APPLE_client_storage */ + +/* ------------------------- GL_APPLE_element_array ------------------------ */ + +#ifndef GL_APPLE_element_array +#define GL_APPLE_element_array 1 + +#define GL_ELEMENT_ARRAY_APPLE 0x8A0C +#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 GLvoid *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) +#define glElementPointerAPPLE GLEW_GET_FUN(__glewElementPointerAPPLE) +#define glMultiDrawElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawElementArrayAPPLE) +#define glMultiDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawRangeElementArrayAPPLE) + +#define GLEW_APPLE_element_array GLEW_GET_VAR(__GLEW_APPLE_element_array) + +#endif /* GL_APPLE_element_array */ + +/* ----------------------------- GL_APPLE_fence ---------------------------- */ + +#ifndef GL_APPLE_fence +#define GL_APPLE_fence 1 + +#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); + +#define glDeleteFencesAPPLE GLEW_GET_FUN(__glewDeleteFencesAPPLE) +#define glFinishFenceAPPLE GLEW_GET_FUN(__glewFinishFenceAPPLE) +#define glFinishObjectAPPLE GLEW_GET_FUN(__glewFinishObjectAPPLE) +#define glGenFencesAPPLE GLEW_GET_FUN(__glewGenFencesAPPLE) +#define glIsFenceAPPLE GLEW_GET_FUN(__glewIsFenceAPPLE) +#define glSetFenceAPPLE GLEW_GET_FUN(__glewSetFenceAPPLE) +#define glTestFenceAPPLE GLEW_GET_FUN(__glewTestFenceAPPLE) +#define glTestObjectAPPLE GLEW_GET_FUN(__glewTestObjectAPPLE) + +#define GLEW_APPLE_fence GLEW_GET_VAR(__GLEW_APPLE_fence) + +#endif /* GL_APPLE_fence */ + +/* ------------------------- GL_APPLE_float_pixels ------------------------- */ + +#ifndef GL_APPLE_float_pixels +#define GL_APPLE_float_pixels 1 + +#define GL_HALF_APPLE 0x140B +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#define GL_COLOR_FLOAT_APPLE 0x8A0F + +#define GLEW_APPLE_float_pixels GLEW_GET_VAR(__GLEW_APPLE_float_pixels) + +#endif /* GL_APPLE_float_pixels */ + +/* ---------------------- GL_APPLE_flush_buffer_range ---------------------- */ + +#ifndef GL_APPLE_flush_buffer_range +#define GL_APPLE_flush_buffer_range 1 + +#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); + +#define glBufferParameteriAPPLE GLEW_GET_FUN(__glewBufferParameteriAPPLE) +#define glFlushMappedBufferRangeAPPLE GLEW_GET_FUN(__glewFlushMappedBufferRangeAPPLE) + +#define GLEW_APPLE_flush_buffer_range GLEW_GET_VAR(__GLEW_APPLE_flush_buffer_range) + +#endif /* GL_APPLE_flush_buffer_range */ + +/* ----------------------- GL_APPLE_object_purgeable ----------------------- */ + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 + +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#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); + +#define glGetObjectParameterivAPPLE GLEW_GET_FUN(__glewGetObjectParameterivAPPLE) +#define glObjectPurgeableAPPLE GLEW_GET_FUN(__glewObjectPurgeableAPPLE) +#define glObjectUnpurgeableAPPLE GLEW_GET_FUN(__glewObjectUnpurgeableAPPLE) + +#define GLEW_APPLE_object_purgeable GLEW_GET_VAR(__GLEW_APPLE_object_purgeable) + +#endif /* GL_APPLE_object_purgeable */ + +/* ------------------------- GL_APPLE_pixel_buffer ------------------------- */ + +#ifndef GL_APPLE_pixel_buffer +#define GL_APPLE_pixel_buffer 1 + +#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 + +#define GLEW_APPLE_pixel_buffer GLEW_GET_VAR(__GLEW_APPLE_pixel_buffer) + +#endif /* GL_APPLE_pixel_buffer */ + +/* ---------------------------- GL_APPLE_rgb_422 --------------------------- */ + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 + +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#define GL_RGB_422_APPLE 0x8A1F + +#define GLEW_APPLE_rgb_422 GLEW_GET_VAR(__GLEW_APPLE_rgb_422) + +#endif /* GL_APPLE_rgb_422 */ + +/* --------------------------- GL_APPLE_row_bytes -------------------------- */ + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 + +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 + +#define GLEW_APPLE_row_bytes GLEW_GET_VAR(__GLEW_APPLE_row_bytes) + +#endif /* GL_APPLE_row_bytes */ + +/* ------------------------ GL_APPLE_specular_vector ----------------------- */ + +#ifndef GL_APPLE_specular_vector +#define GL_APPLE_specular_vector 1 + +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 + +#define GLEW_APPLE_specular_vector GLEW_GET_VAR(__GLEW_APPLE_specular_vector) + +#endif /* GL_APPLE_specular_vector */ + +/* ------------------------- GL_APPLE_texture_range ------------------------ */ + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 + +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#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); + +#define glGetTexParameterPointervAPPLE GLEW_GET_FUN(__glewGetTexParameterPointervAPPLE) +#define glTextureRangeAPPLE GLEW_GET_FUN(__glewTextureRangeAPPLE) + +#define GLEW_APPLE_texture_range GLEW_GET_VAR(__GLEW_APPLE_texture_range) + +#endif /* GL_APPLE_texture_range */ + +/* ------------------------ GL_APPLE_transform_hint ------------------------ */ + +#ifndef GL_APPLE_transform_hint +#define GL_APPLE_transform_hint 1 + +#define GL_TRANSFORM_HINT_APPLE 0x85B1 + +#define GLEW_APPLE_transform_hint GLEW_GET_VAR(__GLEW_APPLE_transform_hint) + +#endif /* GL_APPLE_transform_hint */ + +/* ---------------------- GL_APPLE_vertex_array_object --------------------- */ + +#ifndef GL_APPLE_vertex_array_object +#define GL_APPLE_vertex_array_object 1 + +#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); + +#define glBindVertexArrayAPPLE GLEW_GET_FUN(__glewBindVertexArrayAPPLE) +#define glDeleteVertexArraysAPPLE GLEW_GET_FUN(__glewDeleteVertexArraysAPPLE) +#define glGenVertexArraysAPPLE GLEW_GET_FUN(__glewGenVertexArraysAPPLE) +#define glIsVertexArrayAPPLE GLEW_GET_FUN(__glewIsVertexArrayAPPLE) + +#define GLEW_APPLE_vertex_array_object GLEW_GET_VAR(__GLEW_APPLE_vertex_array_object) + +#endif /* GL_APPLE_vertex_array_object */ + +/* ---------------------- GL_APPLE_vertex_array_range ---------------------- */ + +#ifndef GL_APPLE_vertex_array_range +#define GL_APPLE_vertex_array_range 1 + +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_STORAGE_CLIENT_APPLE 0x85B4 +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF + +typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); + +#define glFlushVertexArrayRangeAPPLE GLEW_GET_FUN(__glewFlushVertexArrayRangeAPPLE) +#define glVertexArrayParameteriAPPLE GLEW_GET_FUN(__glewVertexArrayParameteriAPPLE) +#define glVertexArrayRangeAPPLE GLEW_GET_FUN(__glewVertexArrayRangeAPPLE) + +#define GLEW_APPLE_vertex_array_range GLEW_GET_VAR(__GLEW_APPLE_vertex_array_range) + +#endif /* GL_APPLE_vertex_array_range */ + +/* ------------------- GL_APPLE_vertex_program_evaluators ------------------ */ + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_APPLE_vertex_program_evaluators 1 + +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#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); + +#define glDisableVertexAttribAPPLE GLEW_GET_FUN(__glewDisableVertexAttribAPPLE) +#define glEnableVertexAttribAPPLE GLEW_GET_FUN(__glewEnableVertexAttribAPPLE) +#define glIsVertexAttribEnabledAPPLE GLEW_GET_FUN(__glewIsVertexAttribEnabledAPPLE) +#define glMapVertexAttrib1dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1dAPPLE) +#define glMapVertexAttrib1fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1fAPPLE) +#define glMapVertexAttrib2dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2dAPPLE) +#define glMapVertexAttrib2fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2fAPPLE) + +#define GLEW_APPLE_vertex_program_evaluators GLEW_GET_VAR(__GLEW_APPLE_vertex_program_evaluators) + +#endif /* GL_APPLE_vertex_program_evaluators */ + +/* --------------------------- GL_APPLE_ycbcr_422 -------------------------- */ + +#ifndef GL_APPLE_ycbcr_422 +#define GL_APPLE_ycbcr_422 1 + +#define GL_YCBCR_422_APPLE 0x85B9 + +#define GLEW_APPLE_ycbcr_422 GLEW_GET_VAR(__GLEW_APPLE_ycbcr_422) + +#endif /* GL_APPLE_ycbcr_422 */ + +/* ------------------------ GL_ARB_ES2_compatibility ----------------------- */ + +#ifndef GL_ARB_ES2_compatibility +#define GL_ARB_ES2_compatibility 1 + +#define GL_FIXED 0x140C +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_RGB565 0x8D62 +#define GL_LOW_FLOAT 0x8DF0 +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_LOW_INT 0x8DF3 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_HIGH_INT 0x8DF5 +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD + +typedef int GLfixed; + +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) +#define glGetShaderPrecisionFormat GLEW_GET_FUN(__glewGetShaderPrecisionFormat) +#define glReleaseShaderCompiler GLEW_GET_FUN(__glewReleaseShaderCompiler) +#define glShaderBinary GLEW_GET_FUN(__glewShaderBinary) + +#define GLEW_ARB_ES2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES2_compatibility) + +#endif /* GL_ARB_ES2_compatibility */ + +/* ------------------------ GL_ARB_ES3_compatibility ----------------------- */ + +#ifndef GL_ARB_ES3_compatibility +#define GL_ARB_ES3_compatibility 1 + +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF +#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A +#define GL_MAX_ELEMENT_INDEX 0x8D6B +#define GL_COMPRESSED_R11_EAC 0x9270 +#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 +#define GL_COMPRESSED_RG11_EAC 0x9272 +#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 +#define GL_COMPRESSED_RGB8_ETC2 0x9274 +#define GL_COMPRESSED_SRGB8_ETC2 0x9275 +#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 +#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 +#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 +#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 + +#define GLEW_ARB_ES3_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_compatibility) + +#endif /* GL_ARB_ES3_compatibility */ + +/* ------------------------ GL_ARB_arrays_of_arrays ------------------------ */ + +#ifndef GL_ARB_arrays_of_arrays +#define GL_ARB_arrays_of_arrays 1 + +#define GLEW_ARB_arrays_of_arrays GLEW_GET_VAR(__GLEW_ARB_arrays_of_arrays) + +#endif /* GL_ARB_arrays_of_arrays */ + +/* -------------------------- GL_ARB_base_instance ------------------------- */ + +#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 GLvoid *indices, GLsizei primcount, GLuint baseinstance); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); + +#define glDrawArraysInstancedBaseInstance GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstance) +#define glDrawElementsInstancedBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstance) +#define glDrawElementsInstancedBaseVertexBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstance) + +#define GLEW_ARB_base_instance GLEW_GET_VAR(__GLEW_ARB_base_instance) + +#endif /* GL_ARB_base_instance */ + +/* ------------------------ GL_ARB_bindless_texture ------------------------ */ + +#ifndef GL_ARB_bindless_texture +#define GL_ARB_bindless_texture 1 + +#define GL_UNSIGNED_INT64_ARB 0x140F + +typedef GLuint64 (GLAPIENTRY * PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture); +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT* params); +typedef GLboolean (GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access); +typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT* v); + +#define glGetImageHandleARB GLEW_GET_FUN(__glewGetImageHandleARB) +#define glGetTextureHandleARB GLEW_GET_FUN(__glewGetTextureHandleARB) +#define glGetTextureSamplerHandleARB GLEW_GET_FUN(__glewGetTextureSamplerHandleARB) +#define glGetVertexAttribLui64vARB GLEW_GET_FUN(__glewGetVertexAttribLui64vARB) +#define glIsImageHandleResidentARB GLEW_GET_FUN(__glewIsImageHandleResidentARB) +#define glIsTextureHandleResidentARB GLEW_GET_FUN(__glewIsTextureHandleResidentARB) +#define glMakeImageHandleNonResidentARB GLEW_GET_FUN(__glewMakeImageHandleNonResidentARB) +#define glMakeImageHandleResidentARB GLEW_GET_FUN(__glewMakeImageHandleResidentARB) +#define glMakeTextureHandleNonResidentARB GLEW_GET_FUN(__glewMakeTextureHandleNonResidentARB) +#define glMakeTextureHandleResidentARB GLEW_GET_FUN(__glewMakeTextureHandleResidentARB) +#define glProgramUniformHandleui64ARB GLEW_GET_FUN(__glewProgramUniformHandleui64ARB) +#define glProgramUniformHandleui64vARB GLEW_GET_FUN(__glewProgramUniformHandleui64vARB) +#define glUniformHandleui64ARB GLEW_GET_FUN(__glewUniformHandleui64ARB) +#define glUniformHandleui64vARB GLEW_GET_FUN(__glewUniformHandleui64vARB) +#define glVertexAttribL1ui64ARB GLEW_GET_FUN(__glewVertexAttribL1ui64ARB) +#define glVertexAttribL1ui64vARB GLEW_GET_FUN(__glewVertexAttribL1ui64vARB) + +#define GLEW_ARB_bindless_texture GLEW_GET_VAR(__GLEW_ARB_bindless_texture) + +#endif /* GL_ARB_bindless_texture */ + +/* ----------------------- GL_ARB_blend_func_extended ---------------------- */ + +#ifndef GL_ARB_blend_func_extended +#define GL_ARB_blend_func_extended 1 + +#define GL_SRC1_COLOR 0x88F9 +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#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); + +#define glBindFragDataLocationIndexed GLEW_GET_FUN(__glewBindFragDataLocationIndexed) +#define glGetFragDataIndex GLEW_GET_FUN(__glewGetFragDataIndex) + +#define GLEW_ARB_blend_func_extended GLEW_GET_VAR(__GLEW_ARB_blend_func_extended) + +#endif /* GL_ARB_blend_func_extended */ + +/* ------------------------- GL_ARB_buffer_storage ------------------------- */ + +#ifndef GL_ARB_buffer_storage +#define GL_ARB_buffer_storage 1 + +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_PERSISTENT_BIT 0x00000040 +#define GL_MAP_COHERENT_BIT 0x00000080 +#define GL_DYNAMIC_STORAGE_BIT 0x0100 +#define GL_CLIENT_STORAGE_BIT 0x0200 +#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 +#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F +#define GL_BUFFER_STORAGE_FLAGS 0x8220 + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const GLvoid* data, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const GLvoid* data, GLbitfield flags); + +#define glBufferStorage GLEW_GET_FUN(__glewBufferStorage) +#define glNamedBufferStorageEXT GLEW_GET_FUN(__glewNamedBufferStorageEXT) + +#define GLEW_ARB_buffer_storage GLEW_GET_VAR(__GLEW_ARB_buffer_storage) + +#endif /* GL_ARB_buffer_storage */ + +/* ---------------------------- GL_ARB_cl_event ---------------------------- */ + +#ifndef GL_ARB_cl_event +#define GL_ARB_cl_event 1 + +#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 GLsync (GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags); + +#define glCreateSyncFromCLeventARB GLEW_GET_FUN(__glewCreateSyncFromCLeventARB) + +#define GLEW_ARB_cl_event GLEW_GET_VAR(__GLEW_ARB_cl_event) + +#endif /* GL_ARB_cl_event */ + +/* ----------------------- GL_ARB_clear_buffer_object ---------------------- */ + +#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); + +#define glClearBufferData GLEW_GET_FUN(__glewClearBufferData) +#define glClearBufferSubData GLEW_GET_FUN(__glewClearBufferSubData) +#define glClearNamedBufferDataEXT GLEW_GET_FUN(__glewClearNamedBufferDataEXT) +#define glClearNamedBufferSubDataEXT GLEW_GET_FUN(__glewClearNamedBufferSubDataEXT) + +#define GLEW_ARB_clear_buffer_object GLEW_GET_VAR(__GLEW_ARB_clear_buffer_object) + +#endif /* GL_ARB_clear_buffer_object */ + +/* -------------------------- GL_ARB_clear_texture ------------------------- */ + +#ifndef GL_ARB_clear_texture +#define GL_ARB_clear_texture 1 + +#define GL_CLEAR_TEXTURE 0x9365 + +typedef void (GLAPIENTRY * PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const GLvoid* data); +typedef void (GLAPIENTRY * PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* data); + +#define glClearTexImage GLEW_GET_FUN(__glewClearTexImage) +#define glClearTexSubImage GLEW_GET_FUN(__glewClearTexSubImage) + +#define GLEW_ARB_clear_texture GLEW_GET_VAR(__GLEW_ARB_clear_texture) + +#endif /* GL_ARB_clear_texture */ + +/* ----------------------- GL_ARB_color_buffer_float ----------------------- */ + +#ifndef GL_ARB_color_buffer_float +#define GL_ARB_color_buffer_float 1 + +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D + +typedef void (GLAPIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); + +#define glClampColorARB GLEW_GET_FUN(__glewClampColorARB) + +#define GLEW_ARB_color_buffer_float GLEW_GET_VAR(__GLEW_ARB_color_buffer_float) + +#endif /* GL_ARB_color_buffer_float */ + +/* -------------------------- GL_ARB_compatibility ------------------------- */ + +#ifndef GL_ARB_compatibility +#define GL_ARB_compatibility 1 + +#define GLEW_ARB_compatibility GLEW_GET_VAR(__GLEW_ARB_compatibility) + +#endif /* GL_ARB_compatibility */ + +/* ---------------- GL_ARB_compressed_texture_pixel_storage ---------------- */ + +#ifndef GL_ARB_compressed_texture_pixel_storage +#define GL_ARB_compressed_texture_pixel_storage 1 + +#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 +#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 +#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 +#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A +#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B +#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C +#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D +#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E + +#define GLEW_ARB_compressed_texture_pixel_storage GLEW_GET_VAR(__GLEW_ARB_compressed_texture_pixel_storage) + +#endif /* GL_ARB_compressed_texture_pixel_storage */ + +/* ------------------------- GL_ARB_compute_shader ------------------------- */ + +#ifndef GL_ARB_compute_shader +#define GL_ARB_compute_shader 1 + +#define GL_COMPUTE_SHADER_BIT 0x00000020 +#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 +#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 +#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 +#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 +#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 +#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 +#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB +#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED +#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE +#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF +#define GL_COMPUTE_SHADER 0x91B9 +#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB +#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC +#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD +#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); + +#define glDispatchCompute GLEW_GET_FUN(__glewDispatchCompute) +#define glDispatchComputeIndirect GLEW_GET_FUN(__glewDispatchComputeIndirect) + +#define GLEW_ARB_compute_shader GLEW_GET_VAR(__GLEW_ARB_compute_shader) + +#endif /* GL_ARB_compute_shader */ + +/* ------------------- GL_ARB_compute_variable_group_size ------------------ */ + +#ifndef GL_ARB_compute_variable_group_size +#define GL_ARB_compute_variable_group_size 1 + +#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB +#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF +#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344 +#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 + +typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); + +#define glDispatchComputeGroupSizeARB GLEW_GET_FUN(__glewDispatchComputeGroupSizeARB) + +#define GLEW_ARB_compute_variable_group_size GLEW_GET_VAR(__GLEW_ARB_compute_variable_group_size) + +#endif /* GL_ARB_compute_variable_group_size */ + +/* ----------------------- GL_ARB_conservative_depth ----------------------- */ + +#ifndef GL_ARB_conservative_depth +#define GL_ARB_conservative_depth 1 + +#define GLEW_ARB_conservative_depth GLEW_GET_VAR(__GLEW_ARB_conservative_depth) + +#endif /* GL_ARB_conservative_depth */ + +/* --------------------------- GL_ARB_copy_buffer -------------------------- */ + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 + +#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); + +#define glCopyBufferSubData GLEW_GET_FUN(__glewCopyBufferSubData) + +#define GLEW_ARB_copy_buffer GLEW_GET_VAR(__GLEW_ARB_copy_buffer) + +#endif /* GL_ARB_copy_buffer */ + +/* --------------------------- GL_ARB_copy_image --------------------------- */ + +#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); + +#define glCopyImageSubData GLEW_GET_FUN(__glewCopyImageSubData) + +#define GLEW_ARB_copy_image GLEW_GET_VAR(__GLEW_ARB_copy_image) + +#endif /* GL_ARB_copy_image */ + +/* -------------------------- GL_ARB_debug_output -------------------------- */ + +#ifndef GL_ARB_debug_output +#define GL_ARB_debug_output 1 + +#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 +#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 +#define GL_DEBUG_SOURCE_API_ARB 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A +#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B +#define GL_DEBUG_TYPE_ERROR_ARB 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E +#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 +#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 +#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 +#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 +#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 (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const GLvoid *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) +#define glDebugMessageInsertARB GLEW_GET_FUN(__glewDebugMessageInsertARB) +#define glGetDebugMessageLogARB GLEW_GET_FUN(__glewGetDebugMessageLogARB) + +#define GLEW_ARB_debug_output GLEW_GET_VAR(__GLEW_ARB_debug_output) + +#endif /* GL_ARB_debug_output */ + +/* ----------------------- GL_ARB_depth_buffer_float ----------------------- */ + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 + +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD + +#define GLEW_ARB_depth_buffer_float GLEW_GET_VAR(__GLEW_ARB_depth_buffer_float) + +#endif /* GL_ARB_depth_buffer_float */ + +/* --------------------------- GL_ARB_depth_clamp -------------------------- */ + +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 + +#define GL_DEPTH_CLAMP 0x864F + +#define GLEW_ARB_depth_clamp GLEW_GET_VAR(__GLEW_ARB_depth_clamp) + +#endif /* GL_ARB_depth_clamp */ + +/* -------------------------- GL_ARB_depth_texture ------------------------- */ + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 + +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B + +#define GLEW_ARB_depth_texture GLEW_GET_VAR(__GLEW_ARB_depth_texture) + +#endif /* GL_ARB_depth_texture */ + +/* -------------------------- GL_ARB_draw_buffers -------------------------- */ + +#ifndef GL_ARB_draw_buffers +#define GL_ARB_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 +#define GL_DRAW_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15_ARB 0x8834 + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersARB GLEW_GET_FUN(__glewDrawBuffersARB) + +#define GLEW_ARB_draw_buffers GLEW_GET_VAR(__GLEW_ARB_draw_buffers) + +#endif /* GL_ARB_draw_buffers */ + +/* ----------------------- GL_ARB_draw_buffers_blend ----------------------- */ + +#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); + +#define glBlendEquationSeparateiARB GLEW_GET_FUN(__glewBlendEquationSeparateiARB) +#define glBlendEquationiARB GLEW_GET_FUN(__glewBlendEquationiARB) +#define glBlendFuncSeparateiARB GLEW_GET_FUN(__glewBlendFuncSeparateiARB) +#define glBlendFunciARB GLEW_GET_FUN(__glewBlendFunciARB) + +#define GLEW_ARB_draw_buffers_blend GLEW_GET_VAR(__GLEW_ARB_draw_buffers_blend) + +#endif /* GL_ARB_draw_buffers_blend */ + +/* -------------------- GL_ARB_draw_elements_base_vertex ------------------- */ + +#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, const GLvoid *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei* count, GLenum type, const GLvoid* const *indices, GLsizei primcount, const GLint *basevertex); + +#define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) +#define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) +#define glDrawRangeElementsBaseVertex GLEW_GET_FUN(__glewDrawRangeElementsBaseVertex) +#define glMultiDrawElementsBaseVertex GLEW_GET_FUN(__glewMultiDrawElementsBaseVertex) + +#define GLEW_ARB_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_ARB_draw_elements_base_vertex) + +#endif /* GL_ARB_draw_elements_base_vertex */ + +/* -------------------------- GL_ARB_draw_indirect ------------------------- */ + +#ifndef GL_ARB_draw_indirect +#define GL_ARB_draw_indirect 1 + +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const GLvoid *indirect); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const GLvoid *indirect); + +#define glDrawArraysIndirect GLEW_GET_FUN(__glewDrawArraysIndirect) +#define glDrawElementsIndirect GLEW_GET_FUN(__glewDrawElementsIndirect) + +#define GLEW_ARB_draw_indirect GLEW_GET_VAR(__GLEW_ARB_draw_indirect) + +#endif /* GL_ARB_draw_indirect */ + +/* ------------------------- GL_ARB_draw_instanced ------------------------- */ + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 + +#define GLEW_ARB_draw_instanced GLEW_GET_VAR(__GLEW_ARB_draw_instanced) + +#endif /* GL_ARB_draw_instanced */ + +/* ------------------------ GL_ARB_enhanced_layouts ------------------------ */ + +#ifndef GL_ARB_enhanced_layouts +#define GL_ARB_enhanced_layouts 1 + +#define GL_LOCATION_COMPONENT 0x934A +#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B +#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C + +#define GLEW_ARB_enhanced_layouts GLEW_GET_VAR(__GLEW_ARB_enhanced_layouts) + +#endif /* GL_ARB_enhanced_layouts */ + +/* -------------------- GL_ARB_explicit_attrib_location -------------------- */ + +#ifndef GL_ARB_explicit_attrib_location +#define GL_ARB_explicit_attrib_location 1 + +#define GLEW_ARB_explicit_attrib_location GLEW_GET_VAR(__GLEW_ARB_explicit_attrib_location) + +#endif /* GL_ARB_explicit_attrib_location */ + +/* -------------------- GL_ARB_explicit_uniform_location ------------------- */ + +#ifndef GL_ARB_explicit_uniform_location +#define GL_ARB_explicit_uniform_location 1 + +#define GL_MAX_UNIFORM_LOCATIONS 0x826E + +#define GLEW_ARB_explicit_uniform_location GLEW_GET_VAR(__GLEW_ARB_explicit_uniform_location) + +#endif /* GL_ARB_explicit_uniform_location */ + +/* ------------------- GL_ARB_fragment_coord_conventions ------------------- */ + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 + +#define GLEW_ARB_fragment_coord_conventions GLEW_GET_VAR(__GLEW_ARB_fragment_coord_conventions) + +#endif /* GL_ARB_fragment_coord_conventions */ + +/* --------------------- GL_ARB_fragment_layer_viewport -------------------- */ + +#ifndef GL_ARB_fragment_layer_viewport +#define GL_ARB_fragment_layer_viewport 1 + +#define GLEW_ARB_fragment_layer_viewport GLEW_GET_VAR(__GLEW_ARB_fragment_layer_viewport) + +#endif /* GL_ARB_fragment_layer_viewport */ + +/* ------------------------ GL_ARB_fragment_program ------------------------ */ + +#ifndef GL_ARB_fragment_program +#define GL_ARB_fragment_program 1 + +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 + +#define GLEW_ARB_fragment_program GLEW_GET_VAR(__GLEW_ARB_fragment_program) + +#endif /* GL_ARB_fragment_program */ + +/* --------------------- GL_ARB_fragment_program_shadow -------------------- */ + +#ifndef GL_ARB_fragment_program_shadow +#define GL_ARB_fragment_program_shadow 1 + +#define GLEW_ARB_fragment_program_shadow GLEW_GET_VAR(__GLEW_ARB_fragment_program_shadow) + +#endif /* GL_ARB_fragment_program_shadow */ + +/* ------------------------- GL_ARB_fragment_shader ------------------------ */ + +#ifndef GL_ARB_fragment_shader +#define GL_ARB_fragment_shader 1 + +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B + +#define GLEW_ARB_fragment_shader GLEW_GET_VAR(__GLEW_ARB_fragment_shader) + +#endif /* GL_ARB_fragment_shader */ + +/* ------------------- GL_ARB_framebuffer_no_attachments ------------------- */ + +#ifndef GL_ARB_framebuffer_no_attachments +#define GL_ARB_framebuffer_no_attachments 1 + +#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 +#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 +#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 +#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 +#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 +#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 +#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); + +#define glFramebufferParameteri GLEW_GET_FUN(__glewFramebufferParameteri) +#define glGetFramebufferParameteriv GLEW_GET_FUN(__glewGetFramebufferParameteriv) +#define glGetNamedFramebufferParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferParameterivEXT) +#define glNamedFramebufferParameteriEXT GLEW_GET_FUN(__glewNamedFramebufferParameteriEXT) + +#define GLEW_ARB_framebuffer_no_attachments GLEW_GET_VAR(__GLEW_ARB_framebuffer_no_attachments) + +#endif /* GL_ARB_framebuffer_no_attachments */ + +/* ----------------------- GL_ARB_framebuffer_object ----------------------- */ + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 + +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_INDEX 0x8222 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_SRGB 0x8C40 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#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); + +#define glBindFramebuffer GLEW_GET_FUN(__glewBindFramebuffer) +#define glBindRenderbuffer GLEW_GET_FUN(__glewBindRenderbuffer) +#define glBlitFramebuffer GLEW_GET_FUN(__glewBlitFramebuffer) +#define glCheckFramebufferStatus GLEW_GET_FUN(__glewCheckFramebufferStatus) +#define glDeleteFramebuffers GLEW_GET_FUN(__glewDeleteFramebuffers) +#define glDeleteRenderbuffers GLEW_GET_FUN(__glewDeleteRenderbuffers) +#define glFramebufferRenderbuffer GLEW_GET_FUN(__glewFramebufferRenderbuffer) +#define glFramebufferTexture1D GLEW_GET_FUN(__glewFramebufferTexture1D) +#define glFramebufferTexture2D GLEW_GET_FUN(__glewFramebufferTexture2D) +#define glFramebufferTexture3D GLEW_GET_FUN(__glewFramebufferTexture3D) +#define glFramebufferTextureLayer GLEW_GET_FUN(__glewFramebufferTextureLayer) +#define glGenFramebuffers GLEW_GET_FUN(__glewGenFramebuffers) +#define glGenRenderbuffers GLEW_GET_FUN(__glewGenRenderbuffers) +#define glGenerateMipmap GLEW_GET_FUN(__glewGenerateMipmap) +#define glGetFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetFramebufferAttachmentParameteriv) +#define glGetRenderbufferParameteriv GLEW_GET_FUN(__glewGetRenderbufferParameteriv) +#define glIsFramebuffer GLEW_GET_FUN(__glewIsFramebuffer) +#define glIsRenderbuffer GLEW_GET_FUN(__glewIsRenderbuffer) +#define glRenderbufferStorage GLEW_GET_FUN(__glewRenderbufferStorage) +#define glRenderbufferStorageMultisample GLEW_GET_FUN(__glewRenderbufferStorageMultisample) + +#define GLEW_ARB_framebuffer_object GLEW_GET_VAR(__GLEW_ARB_framebuffer_object) + +#endif /* GL_ARB_framebuffer_object */ + +/* ------------------------ GL_ARB_framebuffer_sRGB ------------------------ */ + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 + +#define GL_FRAMEBUFFER_SRGB 0x8DB9 + +#define GLEW_ARB_framebuffer_sRGB GLEW_GET_VAR(__GLEW_ARB_framebuffer_sRGB) + +#endif /* GL_ARB_framebuffer_sRGB */ + +/* ------------------------ GL_ARB_geometry_shader4 ------------------------ */ + +#ifndef GL_ARB_geometry_shader4 +#define GL_ARB_geometry_shader4 1 + +#define GL_LINES_ADJACENCY_ARB 0xA +#define GL_LINE_STRIP_ADJACENCY_ARB 0xB +#define GL_TRIANGLES_ADJACENCY_ARB 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0xD +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 +#define GL_GEOMETRY_SHADER_ARB 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF +#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); + +#define glFramebufferTextureARB GLEW_GET_FUN(__glewFramebufferTextureARB) +#define glFramebufferTextureFaceARB GLEW_GET_FUN(__glewFramebufferTextureFaceARB) +#define glFramebufferTextureLayerARB GLEW_GET_FUN(__glewFramebufferTextureLayerARB) +#define glProgramParameteriARB GLEW_GET_FUN(__glewProgramParameteriARB) + +#define GLEW_ARB_geometry_shader4 GLEW_GET_VAR(__GLEW_ARB_geometry_shader4) + +#endif /* GL_ARB_geometry_shader4 */ + +/* ----------------------- GL_ARB_get_program_binary ----------------------- */ + +#ifndef GL_ARB_get_program_binary +#define GL_ARB_get_program_binary 1 + +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#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 GLvoid *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) +#define glProgramParameteri GLEW_GET_FUN(__glewProgramParameteri) + +#define GLEW_ARB_get_program_binary GLEW_GET_VAR(__GLEW_ARB_get_program_binary) + +#endif /* GL_ARB_get_program_binary */ + +/* --------------------------- GL_ARB_gpu_shader5 -------------------------- */ + +#ifndef GL_ARB_gpu_shader5 +#define GL_ARB_gpu_shader5 1 + +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_MAX_VERTEX_STREAMS 0x8E71 + +#define GLEW_ARB_gpu_shader5 GLEW_GET_VAR(__GLEW_ARB_gpu_shader5) + +#endif /* GL_ARB_gpu_shader5 */ + +/* ------------------------- GL_ARB_gpu_shader_fp64 ------------------------ */ + +#ifndef GL_ARB_gpu_shader_fp64 +#define GL_ARB_gpu_shader_fp64 1 + +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#define GL_DOUBLE_MAT4x2 0x8F4D +#define GL_DOUBLE_MAT4x3 0x8F4E +#define GL_DOUBLE_VEC2 0x8FFC +#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); + +#define glGetUniformdv GLEW_GET_FUN(__glewGetUniformdv) +#define glUniform1d GLEW_GET_FUN(__glewUniform1d) +#define glUniform1dv GLEW_GET_FUN(__glewUniform1dv) +#define glUniform2d GLEW_GET_FUN(__glewUniform2d) +#define glUniform2dv GLEW_GET_FUN(__glewUniform2dv) +#define glUniform3d GLEW_GET_FUN(__glewUniform3d) +#define glUniform3dv GLEW_GET_FUN(__glewUniform3dv) +#define glUniform4d GLEW_GET_FUN(__glewUniform4d) +#define glUniform4dv GLEW_GET_FUN(__glewUniform4dv) +#define glUniformMatrix2dv GLEW_GET_FUN(__glewUniformMatrix2dv) +#define glUniformMatrix2x3dv GLEW_GET_FUN(__glewUniformMatrix2x3dv) +#define glUniformMatrix2x4dv GLEW_GET_FUN(__glewUniformMatrix2x4dv) +#define glUniformMatrix3dv GLEW_GET_FUN(__glewUniformMatrix3dv) +#define glUniformMatrix3x2dv GLEW_GET_FUN(__glewUniformMatrix3x2dv) +#define glUniformMatrix3x4dv GLEW_GET_FUN(__glewUniformMatrix3x4dv) +#define glUniformMatrix4dv GLEW_GET_FUN(__glewUniformMatrix4dv) +#define glUniformMatrix4x2dv GLEW_GET_FUN(__glewUniformMatrix4x2dv) +#define glUniformMatrix4x3dv GLEW_GET_FUN(__glewUniformMatrix4x3dv) + +#define GLEW_ARB_gpu_shader_fp64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_fp64) + +#endif /* GL_ARB_gpu_shader_fp64 */ + +/* ------------------------ GL_ARB_half_float_pixel ------------------------ */ + +#ifndef GL_ARB_half_float_pixel +#define GL_ARB_half_float_pixel 1 + +#define GL_HALF_FLOAT_ARB 0x140B + +#define GLEW_ARB_half_float_pixel GLEW_GET_VAR(__GLEW_ARB_half_float_pixel) + +#endif /* GL_ARB_half_float_pixel */ + +/* ------------------------ GL_ARB_half_float_vertex ----------------------- */ + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 + +#define GL_HALF_FLOAT 0x140B + +#define GLEW_ARB_half_float_vertex GLEW_GET_VAR(__GLEW_ARB_half_float_vertex) + +#endif /* GL_ARB_half_float_vertex */ + +/* ----------------------------- GL_ARB_imaging ---------------------------- */ + +#ifndef GL_ARB_imaging +#define GL_ARB_imaging 1 + +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_IGNORE_BORDER 0x8150 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_WRAP_BORDER 0x8152 +#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); + +#define glColorSubTable GLEW_GET_FUN(__glewColorSubTable) +#define glColorTable GLEW_GET_FUN(__glewColorTable) +#define glColorTableParameterfv GLEW_GET_FUN(__glewColorTableParameterfv) +#define glColorTableParameteriv GLEW_GET_FUN(__glewColorTableParameteriv) +#define glConvolutionFilter1D GLEW_GET_FUN(__glewConvolutionFilter1D) +#define glConvolutionFilter2D GLEW_GET_FUN(__glewConvolutionFilter2D) +#define glConvolutionParameterf GLEW_GET_FUN(__glewConvolutionParameterf) +#define glConvolutionParameterfv GLEW_GET_FUN(__glewConvolutionParameterfv) +#define glConvolutionParameteri GLEW_GET_FUN(__glewConvolutionParameteri) +#define glConvolutionParameteriv GLEW_GET_FUN(__glewConvolutionParameteriv) +#define glCopyColorSubTable GLEW_GET_FUN(__glewCopyColorSubTable) +#define glCopyColorTable GLEW_GET_FUN(__glewCopyColorTable) +#define glCopyConvolutionFilter1D GLEW_GET_FUN(__glewCopyConvolutionFilter1D) +#define glCopyConvolutionFilter2D GLEW_GET_FUN(__glewCopyConvolutionFilter2D) +#define glGetColorTable GLEW_GET_FUN(__glewGetColorTable) +#define glGetColorTableParameterfv GLEW_GET_FUN(__glewGetColorTableParameterfv) +#define glGetColorTableParameteriv GLEW_GET_FUN(__glewGetColorTableParameteriv) +#define glGetConvolutionFilter GLEW_GET_FUN(__glewGetConvolutionFilter) +#define glGetConvolutionParameterfv GLEW_GET_FUN(__glewGetConvolutionParameterfv) +#define glGetConvolutionParameteriv GLEW_GET_FUN(__glewGetConvolutionParameteriv) +#define glGetHistogram GLEW_GET_FUN(__glewGetHistogram) +#define glGetHistogramParameterfv GLEW_GET_FUN(__glewGetHistogramParameterfv) +#define glGetHistogramParameteriv GLEW_GET_FUN(__glewGetHistogramParameteriv) +#define glGetMinmax GLEW_GET_FUN(__glewGetMinmax) +#define glGetMinmaxParameterfv GLEW_GET_FUN(__glewGetMinmaxParameterfv) +#define glGetMinmaxParameteriv GLEW_GET_FUN(__glewGetMinmaxParameteriv) +#define glGetSeparableFilter GLEW_GET_FUN(__glewGetSeparableFilter) +#define glHistogram GLEW_GET_FUN(__glewHistogram) +#define glMinmax GLEW_GET_FUN(__glewMinmax) +#define glResetHistogram GLEW_GET_FUN(__glewResetHistogram) +#define glResetMinmax GLEW_GET_FUN(__glewResetMinmax) +#define glSeparableFilter2D GLEW_GET_FUN(__glewSeparableFilter2D) + +#define GLEW_ARB_imaging GLEW_GET_VAR(__GLEW_ARB_imaging) + +#endif /* GL_ARB_imaging */ + +/* ----------------------- GL_ARB_indirect_parameters ---------------------- */ + +#ifndef GL_ARB_indirect_parameters +#define GL_ARB_indirect_parameters 1 + +#define GL_PARAMETER_BUFFER_ARB 0x80EE +#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); + +#define glMultiDrawArraysIndirectCountARB GLEW_GET_FUN(__glewMultiDrawArraysIndirectCountARB) +#define glMultiDrawElementsIndirectCountARB GLEW_GET_FUN(__glewMultiDrawElementsIndirectCountARB) + +#define GLEW_ARB_indirect_parameters GLEW_GET_VAR(__GLEW_ARB_indirect_parameters) + +#endif /* GL_ARB_indirect_parameters */ + +/* ------------------------ GL_ARB_instanced_arrays ------------------------ */ + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 + +#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); + +#define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB) +#define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB) +#define glVertexAttribDivisorARB GLEW_GET_FUN(__glewVertexAttribDivisorARB) + +#define GLEW_ARB_instanced_arrays GLEW_GET_VAR(__GLEW_ARB_instanced_arrays) + +#endif /* GL_ARB_instanced_arrays */ + +/* ---------------------- GL_ARB_internalformat_query ---------------------- */ + +#ifndef GL_ARB_internalformat_query +#define GL_ARB_internalformat_query 1 + +#define GL_NUM_SAMPLE_COUNTS 0x9380 + +typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); + +#define glGetInternalformativ GLEW_GET_FUN(__glewGetInternalformativ) + +#define GLEW_ARB_internalformat_query GLEW_GET_VAR(__GLEW_ARB_internalformat_query) + +#endif /* GL_ARB_internalformat_query */ + +/* ---------------------- GL_ARB_internalformat_query2 --------------------- */ + +#ifndef GL_ARB_internalformat_query2 +#define GL_ARB_internalformat_query2 1 + +#define GL_INTERNALFORMAT_SUPPORTED 0x826F +#define GL_INTERNALFORMAT_PREFERRED 0x8270 +#define GL_INTERNALFORMAT_RED_SIZE 0x8271 +#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 +#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 +#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 +#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 +#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 +#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 +#define GL_INTERNALFORMAT_RED_TYPE 0x8278 +#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 +#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A +#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B +#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C +#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D +#define GL_MAX_WIDTH 0x827E +#define GL_MAX_HEIGHT 0x827F +#define GL_MAX_DEPTH 0x8280 +#define GL_MAX_LAYERS 0x8281 +#define GL_MAX_COMBINED_DIMENSIONS 0x8282 +#define GL_COLOR_COMPONENTS 0x8283 +#define GL_DEPTH_COMPONENTS 0x8284 +#define GL_STENCIL_COMPONENTS 0x8285 +#define GL_COLOR_RENDERABLE 0x8286 +#define GL_DEPTH_RENDERABLE 0x8287 +#define GL_STENCIL_RENDERABLE 0x8288 +#define GL_FRAMEBUFFER_RENDERABLE 0x8289 +#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A +#define GL_FRAMEBUFFER_BLEND 0x828B +#define GL_READ_PIXELS 0x828C +#define GL_READ_PIXELS_FORMAT 0x828D +#define GL_READ_PIXELS_TYPE 0x828E +#define GL_TEXTURE_IMAGE_FORMAT 0x828F +#define GL_TEXTURE_IMAGE_TYPE 0x8290 +#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 +#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 +#define GL_MIPMAP 0x8293 +#define GL_MANUAL_GENERATE_MIPMAP 0x8294 +#define GL_AUTO_GENERATE_MIPMAP 0x8295 +#define GL_COLOR_ENCODING 0x8296 +#define GL_SRGB_READ 0x8297 +#define GL_SRGB_WRITE 0x8298 +#define GL_SRGB_DECODE_ARB 0x8299 +#define GL_FILTER 0x829A +#define GL_VERTEX_TEXTURE 0x829B +#define GL_TESS_CONTROL_TEXTURE 0x829C +#define GL_TESS_EVALUATION_TEXTURE 0x829D +#define GL_GEOMETRY_TEXTURE 0x829E +#define GL_FRAGMENT_TEXTURE 0x829F +#define GL_COMPUTE_TEXTURE 0x82A0 +#define GL_TEXTURE_SHADOW 0x82A1 +#define GL_TEXTURE_GATHER 0x82A2 +#define GL_TEXTURE_GATHER_SHADOW 0x82A3 +#define GL_SHADER_IMAGE_LOAD 0x82A4 +#define GL_SHADER_IMAGE_STORE 0x82A5 +#define GL_SHADER_IMAGE_ATOMIC 0x82A6 +#define GL_IMAGE_TEXEL_SIZE 0x82A7 +#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 +#define GL_IMAGE_PIXEL_FORMAT 0x82A9 +#define GL_IMAGE_PIXEL_TYPE 0x82AA +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF +#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 +#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 +#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 +#define GL_CLEAR_BUFFER 0x82B4 +#define GL_TEXTURE_VIEW 0x82B5 +#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 +#define GL_FULL_SUPPORT 0x82B7 +#define GL_CAVEAT_SUPPORT 0x82B8 +#define GL_IMAGE_CLASS_4_X_32 0x82B9 +#define GL_IMAGE_CLASS_2_X_32 0x82BA +#define GL_IMAGE_CLASS_1_X_32 0x82BB +#define GL_IMAGE_CLASS_4_X_16 0x82BC +#define GL_IMAGE_CLASS_2_X_16 0x82BD +#define GL_IMAGE_CLASS_1_X_16 0x82BE +#define GL_IMAGE_CLASS_4_X_8 0x82BF +#define GL_IMAGE_CLASS_2_X_8 0x82C0 +#define GL_IMAGE_CLASS_1_X_8 0x82C1 +#define GL_IMAGE_CLASS_11_11_10 0x82C2 +#define GL_IMAGE_CLASS_10_10_10_2 0x82C3 +#define GL_VIEW_CLASS_128_BITS 0x82C4 +#define GL_VIEW_CLASS_96_BITS 0x82C5 +#define GL_VIEW_CLASS_64_BITS 0x82C6 +#define GL_VIEW_CLASS_48_BITS 0x82C7 +#define GL_VIEW_CLASS_32_BITS 0x82C8 +#define GL_VIEW_CLASS_24_BITS 0x82C9 +#define GL_VIEW_CLASS_16_BITS 0x82CA +#define GL_VIEW_CLASS_8_BITS 0x82CB +#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC +#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD +#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE +#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF +#define GL_VIEW_CLASS_RGTC1_RED 0x82D0 +#define GL_VIEW_CLASS_RGTC2_RG 0x82D1 +#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 +#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 + +typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params); + +#define glGetInternalformati64v GLEW_GET_FUN(__glewGetInternalformati64v) + +#define GLEW_ARB_internalformat_query2 GLEW_GET_VAR(__GLEW_ARB_internalformat_query2) + +#endif /* GL_ARB_internalformat_query2 */ + +/* ----------------------- GL_ARB_invalidate_subdata ----------------------- */ + +#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); + +#define glInvalidateBufferData GLEW_GET_FUN(__glewInvalidateBufferData) +#define glInvalidateBufferSubData GLEW_GET_FUN(__glewInvalidateBufferSubData) +#define glInvalidateFramebuffer GLEW_GET_FUN(__glewInvalidateFramebuffer) +#define glInvalidateSubFramebuffer GLEW_GET_FUN(__glewInvalidateSubFramebuffer) +#define glInvalidateTexImage GLEW_GET_FUN(__glewInvalidateTexImage) +#define glInvalidateTexSubImage GLEW_GET_FUN(__glewInvalidateTexSubImage) + +#define GLEW_ARB_invalidate_subdata GLEW_GET_VAR(__GLEW_ARB_invalidate_subdata) + +#endif /* GL_ARB_invalidate_subdata */ + +/* ---------------------- GL_ARB_map_buffer_alignment ---------------------- */ + +#ifndef GL_ARB_map_buffer_alignment +#define GL_ARB_map_buffer_alignment 1 + +#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC + +#define GLEW_ARB_map_buffer_alignment GLEW_GET_VAR(__GLEW_ARB_map_buffer_alignment) + +#endif /* GL_ARB_map_buffer_alignment */ + +/* ------------------------ GL_ARB_map_buffer_range ------------------------ */ + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 + +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#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); + +#define glFlushMappedBufferRange GLEW_GET_FUN(__glewFlushMappedBufferRange) +#define glMapBufferRange GLEW_GET_FUN(__glewMapBufferRange) + +#define GLEW_ARB_map_buffer_range GLEW_GET_VAR(__GLEW_ARB_map_buffer_range) + +#endif /* GL_ARB_map_buffer_range */ + +/* ------------------------- GL_ARB_matrix_palette ------------------------- */ + +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 + +#define GL_MATRIX_PALETTE_ARB 0x8840 +#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 +#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 +#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 +#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 +#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 +#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); + +#define glCurrentPaletteMatrixARB GLEW_GET_FUN(__glewCurrentPaletteMatrixARB) +#define glMatrixIndexPointerARB GLEW_GET_FUN(__glewMatrixIndexPointerARB) +#define glMatrixIndexubvARB GLEW_GET_FUN(__glewMatrixIndexubvARB) +#define glMatrixIndexuivARB GLEW_GET_FUN(__glewMatrixIndexuivARB) +#define glMatrixIndexusvARB GLEW_GET_FUN(__glewMatrixIndexusvARB) + +#define GLEW_ARB_matrix_palette GLEW_GET_VAR(__GLEW_ARB_matrix_palette) + +#endif /* GL_ARB_matrix_palette */ + +/* --------------------------- GL_ARB_multi_bind --------------------------- */ + +#ifndef GL_ARB_multi_bind +#define GL_ARB_multi_bind 1 + +typedef void (GLAPIENTRY * PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizeiptr *sizes); +typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint* textures); +typedef void (GLAPIENTRY * PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint* samplers); +typedef void (GLAPIENTRY * PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint* textures); +typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides); + +#define glBindBuffersBase GLEW_GET_FUN(__glewBindBuffersBase) +#define glBindBuffersRange GLEW_GET_FUN(__glewBindBuffersRange) +#define glBindImageTextures GLEW_GET_FUN(__glewBindImageTextures) +#define glBindSamplers GLEW_GET_FUN(__glewBindSamplers) +#define glBindTextures GLEW_GET_FUN(__glewBindTextures) +#define glBindVertexBuffers GLEW_GET_FUN(__glewBindVertexBuffers) + +#define GLEW_ARB_multi_bind GLEW_GET_VAR(__GLEW_ARB_multi_bind) + +#endif /* GL_ARB_multi_bind */ + +/* ----------------------- GL_ARB_multi_draw_indirect ---------------------- */ + +#ifndef GL_ARB_multi_draw_indirect +#define GL_ARB_multi_draw_indirect 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride); + +#define glMultiDrawArraysIndirect GLEW_GET_FUN(__glewMultiDrawArraysIndirect) +#define glMultiDrawElementsIndirect GLEW_GET_FUN(__glewMultiDrawElementsIndirect) + +#define GLEW_ARB_multi_draw_indirect GLEW_GET_VAR(__GLEW_ARB_multi_draw_indirect) + +#endif /* GL_ARB_multi_draw_indirect */ + +/* --------------------------- GL_ARB_multisample -------------------------- */ + +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 + +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 + +typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); + +#define glSampleCoverageARB GLEW_GET_FUN(__glewSampleCoverageARB) + +#define GLEW_ARB_multisample GLEW_GET_VAR(__GLEW_ARB_multisample) + +#endif /* GL_ARB_multisample */ + +/* -------------------------- GL_ARB_multitexture -------------------------- */ + +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 + +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#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); + +#define glActiveTextureARB GLEW_GET_FUN(__glewActiveTextureARB) +#define glClientActiveTextureARB GLEW_GET_FUN(__glewClientActiveTextureARB) +#define glMultiTexCoord1dARB GLEW_GET_FUN(__glewMultiTexCoord1dARB) +#define glMultiTexCoord1dvARB GLEW_GET_FUN(__glewMultiTexCoord1dvARB) +#define glMultiTexCoord1fARB GLEW_GET_FUN(__glewMultiTexCoord1fARB) +#define glMultiTexCoord1fvARB GLEW_GET_FUN(__glewMultiTexCoord1fvARB) +#define glMultiTexCoord1iARB GLEW_GET_FUN(__glewMultiTexCoord1iARB) +#define glMultiTexCoord1ivARB GLEW_GET_FUN(__glewMultiTexCoord1ivARB) +#define glMultiTexCoord1sARB GLEW_GET_FUN(__glewMultiTexCoord1sARB) +#define glMultiTexCoord1svARB GLEW_GET_FUN(__glewMultiTexCoord1svARB) +#define glMultiTexCoord2dARB GLEW_GET_FUN(__glewMultiTexCoord2dARB) +#define glMultiTexCoord2dvARB GLEW_GET_FUN(__glewMultiTexCoord2dvARB) +#define glMultiTexCoord2fARB GLEW_GET_FUN(__glewMultiTexCoord2fARB) +#define glMultiTexCoord2fvARB GLEW_GET_FUN(__glewMultiTexCoord2fvARB) +#define glMultiTexCoord2iARB GLEW_GET_FUN(__glewMultiTexCoord2iARB) +#define glMultiTexCoord2ivARB GLEW_GET_FUN(__glewMultiTexCoord2ivARB) +#define glMultiTexCoord2sARB GLEW_GET_FUN(__glewMultiTexCoord2sARB) +#define glMultiTexCoord2svARB GLEW_GET_FUN(__glewMultiTexCoord2svARB) +#define glMultiTexCoord3dARB GLEW_GET_FUN(__glewMultiTexCoord3dARB) +#define glMultiTexCoord3dvARB GLEW_GET_FUN(__glewMultiTexCoord3dvARB) +#define glMultiTexCoord3fARB GLEW_GET_FUN(__glewMultiTexCoord3fARB) +#define glMultiTexCoord3fvARB GLEW_GET_FUN(__glewMultiTexCoord3fvARB) +#define glMultiTexCoord3iARB GLEW_GET_FUN(__glewMultiTexCoord3iARB) +#define glMultiTexCoord3ivARB GLEW_GET_FUN(__glewMultiTexCoord3ivARB) +#define glMultiTexCoord3sARB GLEW_GET_FUN(__glewMultiTexCoord3sARB) +#define glMultiTexCoord3svARB GLEW_GET_FUN(__glewMultiTexCoord3svARB) +#define glMultiTexCoord4dARB GLEW_GET_FUN(__glewMultiTexCoord4dARB) +#define glMultiTexCoord4dvARB GLEW_GET_FUN(__glewMultiTexCoord4dvARB) +#define glMultiTexCoord4fARB GLEW_GET_FUN(__glewMultiTexCoord4fARB) +#define glMultiTexCoord4fvARB GLEW_GET_FUN(__glewMultiTexCoord4fvARB) +#define glMultiTexCoord4iARB GLEW_GET_FUN(__glewMultiTexCoord4iARB) +#define glMultiTexCoord4ivARB GLEW_GET_FUN(__glewMultiTexCoord4ivARB) +#define glMultiTexCoord4sARB GLEW_GET_FUN(__glewMultiTexCoord4sARB) +#define glMultiTexCoord4svARB GLEW_GET_FUN(__glewMultiTexCoord4svARB) + +#define GLEW_ARB_multitexture GLEW_GET_VAR(__GLEW_ARB_multitexture) + +#endif /* GL_ARB_multitexture */ + +/* ------------------------- GL_ARB_occlusion_query ------------------------ */ + +#ifndef GL_ARB_occlusion_query +#define GL_ARB_occlusion_query 1 + +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#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); + +#define glBeginQueryARB GLEW_GET_FUN(__glewBeginQueryARB) +#define glDeleteQueriesARB GLEW_GET_FUN(__glewDeleteQueriesARB) +#define glEndQueryARB GLEW_GET_FUN(__glewEndQueryARB) +#define glGenQueriesARB GLEW_GET_FUN(__glewGenQueriesARB) +#define glGetQueryObjectivARB GLEW_GET_FUN(__glewGetQueryObjectivARB) +#define glGetQueryObjectuivARB GLEW_GET_FUN(__glewGetQueryObjectuivARB) +#define glGetQueryivARB GLEW_GET_FUN(__glewGetQueryivARB) +#define glIsQueryARB GLEW_GET_FUN(__glewIsQueryARB) + +#define GLEW_ARB_occlusion_query GLEW_GET_VAR(__GLEW_ARB_occlusion_query) + +#endif /* GL_ARB_occlusion_query */ + +/* ------------------------ GL_ARB_occlusion_query2 ------------------------ */ + +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 + +#define GL_ANY_SAMPLES_PASSED 0x8C2F + +#define GLEW_ARB_occlusion_query2 GLEW_GET_VAR(__GLEW_ARB_occlusion_query2) + +#endif /* GL_ARB_occlusion_query2 */ + +/* ----------------------- GL_ARB_pixel_buffer_object ---------------------- */ + +#ifndef GL_ARB_pixel_buffer_object +#define GL_ARB_pixel_buffer_object 1 + +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF + +#define GLEW_ARB_pixel_buffer_object GLEW_GET_VAR(__GLEW_ARB_pixel_buffer_object) + +#endif /* GL_ARB_pixel_buffer_object */ + +/* ------------------------ GL_ARB_point_parameters ------------------------ */ + +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 + +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#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); + +#define glPointParameterfARB GLEW_GET_FUN(__glewPointParameterfARB) +#define glPointParameterfvARB GLEW_GET_FUN(__glewPointParameterfvARB) + +#define GLEW_ARB_point_parameters GLEW_GET_VAR(__GLEW_ARB_point_parameters) + +#endif /* GL_ARB_point_parameters */ + +/* -------------------------- GL_ARB_point_sprite -------------------------- */ + +#ifndef GL_ARB_point_sprite +#define GL_ARB_point_sprite 1 + +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 + +#define GLEW_ARB_point_sprite GLEW_GET_VAR(__GLEW_ARB_point_sprite) + +#endif /* GL_ARB_point_sprite */ + +/* --------------------- GL_ARB_program_interface_query -------------------- */ + +#ifndef GL_ARB_program_interface_query +#define GL_ARB_program_interface_query 1 + +#define GL_UNIFORM 0x92E1 +#define GL_UNIFORM_BLOCK 0x92E2 +#define GL_PROGRAM_INPUT 0x92E3 +#define GL_PROGRAM_OUTPUT 0x92E4 +#define GL_BUFFER_VARIABLE 0x92E5 +#define GL_SHADER_STORAGE_BLOCK 0x92E6 +#define GL_IS_PER_PATCH 0x92E7 +#define GL_VERTEX_SUBROUTINE 0x92E8 +#define GL_TESS_CONTROL_SUBROUTINE 0x92E9 +#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA +#define GL_GEOMETRY_SUBROUTINE 0x92EB +#define GL_FRAGMENT_SUBROUTINE 0x92EC +#define GL_COMPUTE_SUBROUTINE 0x92ED +#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE +#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF +#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 +#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 +#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 +#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 +#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 +#define GL_ACTIVE_RESOURCES 0x92F5 +#define GL_MAX_NAME_LENGTH 0x92F6 +#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 +#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 +#define GL_NAME_LENGTH 0x92F9 +#define GL_TYPE 0x92FA +#define GL_ARRAY_SIZE 0x92FB +#define GL_OFFSET 0x92FC +#define GL_BLOCK_INDEX 0x92FD +#define GL_ARRAY_STRIDE 0x92FE +#define GL_MATRIX_STRIDE 0x92FF +#define GL_IS_ROW_MAJOR 0x9300 +#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 +#define GL_BUFFER_BINDING 0x9302 +#define GL_BUFFER_DATA_SIZE 0x9303 +#define GL_NUM_ACTIVE_VARIABLES 0x9304 +#define GL_ACTIVE_VARIABLES 0x9305 +#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 +#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 +#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A +#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B +#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C +#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D +#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); + +#define glGetProgramInterfaceiv GLEW_GET_FUN(__glewGetProgramInterfaceiv) +#define glGetProgramResourceIndex GLEW_GET_FUN(__glewGetProgramResourceIndex) +#define glGetProgramResourceLocation GLEW_GET_FUN(__glewGetProgramResourceLocation) +#define glGetProgramResourceLocationIndex GLEW_GET_FUN(__glewGetProgramResourceLocationIndex) +#define glGetProgramResourceName GLEW_GET_FUN(__glewGetProgramResourceName) +#define glGetProgramResourceiv GLEW_GET_FUN(__glewGetProgramResourceiv) + +#define GLEW_ARB_program_interface_query GLEW_GET_VAR(__GLEW_ARB_program_interface_query) + +#endif /* GL_ARB_program_interface_query */ + +/* ------------------------ GL_ARB_provoking_vertex ------------------------ */ + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 + +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F + +typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC) (GLenum mode); + +#define glProvokingVertex GLEW_GET_FUN(__glewProvokingVertex) + +#define GLEW_ARB_provoking_vertex GLEW_GET_VAR(__GLEW_ARB_provoking_vertex) + +#endif /* GL_ARB_provoking_vertex */ + +/* ----------------------- GL_ARB_query_buffer_object ---------------------- */ + +#ifndef GL_ARB_query_buffer_object +#define GL_ARB_query_buffer_object 1 + +#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 +#define GL_QUERY_BUFFER 0x9192 +#define GL_QUERY_BUFFER_BINDING 0x9193 +#define GL_QUERY_RESULT_NO_WAIT 0x9194 + +#define GLEW_ARB_query_buffer_object GLEW_GET_VAR(__GLEW_ARB_query_buffer_object) + +#endif /* GL_ARB_query_buffer_object */ + +/* ------------------ GL_ARB_robust_buffer_access_behavior ----------------- */ + +#ifndef GL_ARB_robust_buffer_access_behavior +#define GL_ARB_robust_buffer_access_behavior 1 + +#define GLEW_ARB_robust_buffer_access_behavior GLEW_GET_VAR(__GLEW_ARB_robust_buffer_access_behavior) + +#endif /* GL_ARB_robust_buffer_access_behavior */ + +/* --------------------------- GL_ARB_robustness --------------------------- */ + +#ifndef GL_ARB_robustness +#define GL_ARB_robustness 1 + +#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 +#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); + +#define glGetGraphicsResetStatusARB GLEW_GET_FUN(__glewGetGraphicsResetStatusARB) +#define glGetnColorTableARB GLEW_GET_FUN(__glewGetnColorTableARB) +#define glGetnCompressedTexImageARB GLEW_GET_FUN(__glewGetnCompressedTexImageARB) +#define glGetnConvolutionFilterARB GLEW_GET_FUN(__glewGetnConvolutionFilterARB) +#define glGetnHistogramARB GLEW_GET_FUN(__glewGetnHistogramARB) +#define glGetnMapdvARB GLEW_GET_FUN(__glewGetnMapdvARB) +#define glGetnMapfvARB GLEW_GET_FUN(__glewGetnMapfvARB) +#define glGetnMapivARB GLEW_GET_FUN(__glewGetnMapivARB) +#define glGetnMinmaxARB GLEW_GET_FUN(__glewGetnMinmaxARB) +#define glGetnPixelMapfvARB GLEW_GET_FUN(__glewGetnPixelMapfvARB) +#define glGetnPixelMapuivARB GLEW_GET_FUN(__glewGetnPixelMapuivARB) +#define glGetnPixelMapusvARB GLEW_GET_FUN(__glewGetnPixelMapusvARB) +#define glGetnPolygonStippleARB GLEW_GET_FUN(__glewGetnPolygonStippleARB) +#define glGetnSeparableFilterARB GLEW_GET_FUN(__glewGetnSeparableFilterARB) +#define glGetnTexImageARB GLEW_GET_FUN(__glewGetnTexImageARB) +#define glGetnUniformdvARB GLEW_GET_FUN(__glewGetnUniformdvARB) +#define glGetnUniformfvARB GLEW_GET_FUN(__glewGetnUniformfvARB) +#define glGetnUniformivARB GLEW_GET_FUN(__glewGetnUniformivARB) +#define glGetnUniformuivARB GLEW_GET_FUN(__glewGetnUniformuivARB) +#define glReadnPixelsARB GLEW_GET_FUN(__glewReadnPixelsARB) + +#define GLEW_ARB_robustness GLEW_GET_VAR(__GLEW_ARB_robustness) + +#endif /* GL_ARB_robustness */ + +/* ---------------- GL_ARB_robustness_application_isolation ---------------- */ + +#ifndef GL_ARB_robustness_application_isolation +#define GL_ARB_robustness_application_isolation 1 + +#define GLEW_ARB_robustness_application_isolation GLEW_GET_VAR(__GLEW_ARB_robustness_application_isolation) + +#endif /* GL_ARB_robustness_application_isolation */ + +/* ---------------- GL_ARB_robustness_share_group_isolation ---------------- */ + +#ifndef GL_ARB_robustness_share_group_isolation +#define GL_ARB_robustness_share_group_isolation 1 + +#define GLEW_ARB_robustness_share_group_isolation GLEW_GET_VAR(__GLEW_ARB_robustness_share_group_isolation) + +#endif /* GL_ARB_robustness_share_group_isolation */ + +/* ------------------------- GL_ARB_sample_shading ------------------------- */ + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 + +#define GL_SAMPLE_SHADING_ARB 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 + +typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); + +#define glMinSampleShadingARB GLEW_GET_FUN(__glewMinSampleShadingARB) + +#define GLEW_ARB_sample_shading GLEW_GET_VAR(__GLEW_ARB_sample_shading) + +#endif /* GL_ARB_sample_shading */ + +/* ------------------------- GL_ARB_sampler_objects ------------------------ */ + +#ifndef GL_ARB_sampler_objects +#define GL_ARB_sampler_objects 1 + +#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); + +#define glBindSampler GLEW_GET_FUN(__glewBindSampler) +#define glDeleteSamplers GLEW_GET_FUN(__glewDeleteSamplers) +#define glGenSamplers GLEW_GET_FUN(__glewGenSamplers) +#define glGetSamplerParameterIiv GLEW_GET_FUN(__glewGetSamplerParameterIiv) +#define glGetSamplerParameterIuiv GLEW_GET_FUN(__glewGetSamplerParameterIuiv) +#define glGetSamplerParameterfv GLEW_GET_FUN(__glewGetSamplerParameterfv) +#define glGetSamplerParameteriv GLEW_GET_FUN(__glewGetSamplerParameteriv) +#define glIsSampler GLEW_GET_FUN(__glewIsSampler) +#define glSamplerParameterIiv GLEW_GET_FUN(__glewSamplerParameterIiv) +#define glSamplerParameterIuiv GLEW_GET_FUN(__glewSamplerParameterIuiv) +#define glSamplerParameterf GLEW_GET_FUN(__glewSamplerParameterf) +#define glSamplerParameterfv GLEW_GET_FUN(__glewSamplerParameterfv) +#define glSamplerParameteri GLEW_GET_FUN(__glewSamplerParameteri) +#define glSamplerParameteriv GLEW_GET_FUN(__glewSamplerParameteriv) + +#define GLEW_ARB_sampler_objects GLEW_GET_VAR(__GLEW_ARB_sampler_objects) + +#endif /* GL_ARB_sampler_objects */ + +/* ------------------------ GL_ARB_seamless_cube_map ----------------------- */ + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F + +#define GLEW_ARB_seamless_cube_map GLEW_GET_VAR(__GLEW_ARB_seamless_cube_map) + +#endif /* GL_ARB_seamless_cube_map */ + +/* ------------------ GL_ARB_seamless_cubemap_per_texture ------------------ */ + +#ifndef GL_ARB_seamless_cubemap_per_texture +#define GL_ARB_seamless_cubemap_per_texture 1 + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F + +#define GLEW_ARB_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_ARB_seamless_cubemap_per_texture) + +#endif /* GL_ARB_seamless_cubemap_per_texture */ + +/* --------------------- GL_ARB_separate_shader_objects -------------------- */ + +#ifndef GL_ARB_separate_shader_objects +#define GL_ARB_separate_shader_objects 1 + +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_ACTIVE_PROGRAM 0x8259 +#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); + +#define glActiveShaderProgram GLEW_GET_FUN(__glewActiveShaderProgram) +#define glBindProgramPipeline GLEW_GET_FUN(__glewBindProgramPipeline) +#define glCreateShaderProgramv GLEW_GET_FUN(__glewCreateShaderProgramv) +#define glDeleteProgramPipelines GLEW_GET_FUN(__glewDeleteProgramPipelines) +#define glGenProgramPipelines GLEW_GET_FUN(__glewGenProgramPipelines) +#define glGetProgramPipelineInfoLog GLEW_GET_FUN(__glewGetProgramPipelineInfoLog) +#define glGetProgramPipelineiv GLEW_GET_FUN(__glewGetProgramPipelineiv) +#define glIsProgramPipeline GLEW_GET_FUN(__glewIsProgramPipeline) +#define glProgramUniform1d GLEW_GET_FUN(__glewProgramUniform1d) +#define glProgramUniform1dv GLEW_GET_FUN(__glewProgramUniform1dv) +#define glProgramUniform1f GLEW_GET_FUN(__glewProgramUniform1f) +#define glProgramUniform1fv GLEW_GET_FUN(__glewProgramUniform1fv) +#define glProgramUniform1i GLEW_GET_FUN(__glewProgramUniform1i) +#define glProgramUniform1iv GLEW_GET_FUN(__glewProgramUniform1iv) +#define glProgramUniform1ui GLEW_GET_FUN(__glewProgramUniform1ui) +#define glProgramUniform1uiv GLEW_GET_FUN(__glewProgramUniform1uiv) +#define glProgramUniform2d GLEW_GET_FUN(__glewProgramUniform2d) +#define glProgramUniform2dv GLEW_GET_FUN(__glewProgramUniform2dv) +#define glProgramUniform2f GLEW_GET_FUN(__glewProgramUniform2f) +#define glProgramUniform2fv GLEW_GET_FUN(__glewProgramUniform2fv) +#define glProgramUniform2i GLEW_GET_FUN(__glewProgramUniform2i) +#define glProgramUniform2iv GLEW_GET_FUN(__glewProgramUniform2iv) +#define glProgramUniform2ui GLEW_GET_FUN(__glewProgramUniform2ui) +#define glProgramUniform2uiv GLEW_GET_FUN(__glewProgramUniform2uiv) +#define glProgramUniform3d GLEW_GET_FUN(__glewProgramUniform3d) +#define glProgramUniform3dv GLEW_GET_FUN(__glewProgramUniform3dv) +#define glProgramUniform3f GLEW_GET_FUN(__glewProgramUniform3f) +#define glProgramUniform3fv GLEW_GET_FUN(__glewProgramUniform3fv) +#define glProgramUniform3i GLEW_GET_FUN(__glewProgramUniform3i) +#define glProgramUniform3iv GLEW_GET_FUN(__glewProgramUniform3iv) +#define glProgramUniform3ui GLEW_GET_FUN(__glewProgramUniform3ui) +#define glProgramUniform3uiv GLEW_GET_FUN(__glewProgramUniform3uiv) +#define glProgramUniform4d GLEW_GET_FUN(__glewProgramUniform4d) +#define glProgramUniform4dv GLEW_GET_FUN(__glewProgramUniform4dv) +#define glProgramUniform4f GLEW_GET_FUN(__glewProgramUniform4f) +#define glProgramUniform4fv GLEW_GET_FUN(__glewProgramUniform4fv) +#define glProgramUniform4i GLEW_GET_FUN(__glewProgramUniform4i) +#define glProgramUniform4iv GLEW_GET_FUN(__glewProgramUniform4iv) +#define glProgramUniform4ui GLEW_GET_FUN(__glewProgramUniform4ui) +#define glProgramUniform4uiv GLEW_GET_FUN(__glewProgramUniform4uiv) +#define glProgramUniformMatrix2dv GLEW_GET_FUN(__glewProgramUniformMatrix2dv) +#define glProgramUniformMatrix2fv GLEW_GET_FUN(__glewProgramUniformMatrix2fv) +#define glProgramUniformMatrix2x3dv GLEW_GET_FUN(__glewProgramUniformMatrix2x3dv) +#define glProgramUniformMatrix2x3fv GLEW_GET_FUN(__glewProgramUniformMatrix2x3fv) +#define glProgramUniformMatrix2x4dv GLEW_GET_FUN(__glewProgramUniformMatrix2x4dv) +#define glProgramUniformMatrix2x4fv GLEW_GET_FUN(__glewProgramUniformMatrix2x4fv) +#define glProgramUniformMatrix3dv GLEW_GET_FUN(__glewProgramUniformMatrix3dv) +#define glProgramUniformMatrix3fv GLEW_GET_FUN(__glewProgramUniformMatrix3fv) +#define glProgramUniformMatrix3x2dv GLEW_GET_FUN(__glewProgramUniformMatrix3x2dv) +#define glProgramUniformMatrix3x2fv GLEW_GET_FUN(__glewProgramUniformMatrix3x2fv) +#define glProgramUniformMatrix3x4dv GLEW_GET_FUN(__glewProgramUniformMatrix3x4dv) +#define glProgramUniformMatrix3x4fv GLEW_GET_FUN(__glewProgramUniformMatrix3x4fv) +#define glProgramUniformMatrix4dv GLEW_GET_FUN(__glewProgramUniformMatrix4dv) +#define glProgramUniformMatrix4fv GLEW_GET_FUN(__glewProgramUniformMatrix4fv) +#define glProgramUniformMatrix4x2dv GLEW_GET_FUN(__glewProgramUniformMatrix4x2dv) +#define glProgramUniformMatrix4x2fv GLEW_GET_FUN(__glewProgramUniformMatrix4x2fv) +#define glProgramUniformMatrix4x3dv GLEW_GET_FUN(__glewProgramUniformMatrix4x3dv) +#define glProgramUniformMatrix4x3fv GLEW_GET_FUN(__glewProgramUniformMatrix4x3fv) +#define glUseProgramStages GLEW_GET_FUN(__glewUseProgramStages) +#define glValidateProgramPipeline GLEW_GET_FUN(__glewValidateProgramPipeline) + +#define GLEW_ARB_separate_shader_objects GLEW_GET_VAR(__GLEW_ARB_separate_shader_objects) + +#endif /* GL_ARB_separate_shader_objects */ + +/* --------------------- GL_ARB_shader_atomic_counters --------------------- */ + +#ifndef GL_ARB_shader_atomic_counters +#define GL_ARB_shader_atomic_counters 1 + +#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 +#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 +#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 +#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 +#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB +#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF +#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 +#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 +#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 +#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 +#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 +#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 +#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 +#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA +#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); + +#define glGetActiveAtomicCounterBufferiv GLEW_GET_FUN(__glewGetActiveAtomicCounterBufferiv) + +#define GLEW_ARB_shader_atomic_counters GLEW_GET_VAR(__GLEW_ARB_shader_atomic_counters) + +#endif /* GL_ARB_shader_atomic_counters */ + +/* ----------------------- GL_ARB_shader_bit_encoding ---------------------- */ + +#ifndef GL_ARB_shader_bit_encoding +#define GL_ARB_shader_bit_encoding 1 + +#define GLEW_ARB_shader_bit_encoding GLEW_GET_VAR(__GLEW_ARB_shader_bit_encoding) + +#endif /* GL_ARB_shader_bit_encoding */ + +/* --------------------- GL_ARB_shader_draw_parameters --------------------- */ + +#ifndef GL_ARB_shader_draw_parameters +#define GL_ARB_shader_draw_parameters 1 + +#define GLEW_ARB_shader_draw_parameters GLEW_GET_VAR(__GLEW_ARB_shader_draw_parameters) + +#endif /* GL_ARB_shader_draw_parameters */ + +/* ------------------------ GL_ARB_shader_group_vote ----------------------- */ + +#ifndef GL_ARB_shader_group_vote +#define GL_ARB_shader_group_vote 1 + +#define GLEW_ARB_shader_group_vote GLEW_GET_VAR(__GLEW_ARB_shader_group_vote) + +#endif /* GL_ARB_shader_group_vote */ + +/* --------------------- GL_ARB_shader_image_load_store -------------------- */ + +#ifndef GL_ARB_shader_image_load_store +#define GL_ARB_shader_image_load_store 1 + +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 +#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 +#define GL_UNIFORM_BARRIER_BIT 0x00000004 +#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 +#define GL_COMMAND_BARRIER_BIT 0x00000040 +#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 +#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 +#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 +#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 +#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 +#define GL_MAX_IMAGE_UNITS 0x8F38 +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 +#define GL_IMAGE_BINDING_NAME 0x8F3A +#define GL_IMAGE_BINDING_LEVEL 0x8F3B +#define GL_IMAGE_BINDING_LAYERED 0x8F3C +#define GL_IMAGE_BINDING_LAYER 0x8F3D +#define GL_IMAGE_BINDING_ACCESS 0x8F3E +#define GL_IMAGE_1D 0x904C +#define GL_IMAGE_2D 0x904D +#define GL_IMAGE_3D 0x904E +#define GL_IMAGE_2D_RECT 0x904F +#define GL_IMAGE_CUBE 0x9050 +#define GL_IMAGE_BUFFER 0x9051 +#define GL_IMAGE_1D_ARRAY 0x9052 +#define GL_IMAGE_2D_ARRAY 0x9053 +#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 +#define GL_IMAGE_2D_MULTISAMPLE 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 +#define GL_INT_IMAGE_1D 0x9057 +#define GL_INT_IMAGE_2D 0x9058 +#define GL_INT_IMAGE_3D 0x9059 +#define GL_INT_IMAGE_2D_RECT 0x905A +#define GL_INT_IMAGE_CUBE 0x905B +#define GL_INT_IMAGE_BUFFER 0x905C +#define GL_INT_IMAGE_1D_ARRAY 0x905D +#define GL_INT_IMAGE_2D_ARRAY 0x905E +#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F +#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 +#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 +#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 +#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 +#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 +#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C +#define GL_MAX_IMAGE_SAMPLES 0x906D +#define GL_IMAGE_BINDING_FORMAT 0x906E +#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 +#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD +#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE +#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); + +#define glBindImageTexture GLEW_GET_FUN(__glewBindImageTexture) +#define glMemoryBarrier GLEW_GET_FUN(__glewMemoryBarrier) + +#define GLEW_ARB_shader_image_load_store GLEW_GET_VAR(__GLEW_ARB_shader_image_load_store) + +#endif /* GL_ARB_shader_image_load_store */ + +/* ------------------------ GL_ARB_shader_image_size ----------------------- */ + +#ifndef GL_ARB_shader_image_size +#define GL_ARB_shader_image_size 1 + +#define GLEW_ARB_shader_image_size GLEW_GET_VAR(__GLEW_ARB_shader_image_size) + +#endif /* GL_ARB_shader_image_size */ + +/* ------------------------- GL_ARB_shader_objects ------------------------- */ + +#ifndef GL_ARB_shader_objects +#define GL_ARB_shader_objects 1 + +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 + +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); + +#define glAttachObjectARB GLEW_GET_FUN(__glewAttachObjectARB) +#define glCompileShaderARB GLEW_GET_FUN(__glewCompileShaderARB) +#define glCreateProgramObjectARB GLEW_GET_FUN(__glewCreateProgramObjectARB) +#define glCreateShaderObjectARB GLEW_GET_FUN(__glewCreateShaderObjectARB) +#define glDeleteObjectARB GLEW_GET_FUN(__glewDeleteObjectARB) +#define glDetachObjectARB GLEW_GET_FUN(__glewDetachObjectARB) +#define glGetActiveUniformARB GLEW_GET_FUN(__glewGetActiveUniformARB) +#define glGetAttachedObjectsARB GLEW_GET_FUN(__glewGetAttachedObjectsARB) +#define glGetHandleARB GLEW_GET_FUN(__glewGetHandleARB) +#define glGetInfoLogARB GLEW_GET_FUN(__glewGetInfoLogARB) +#define glGetObjectParameterfvARB GLEW_GET_FUN(__glewGetObjectParameterfvARB) +#define glGetObjectParameterivARB GLEW_GET_FUN(__glewGetObjectParameterivARB) +#define glGetShaderSourceARB GLEW_GET_FUN(__glewGetShaderSourceARB) +#define glGetUniformLocationARB GLEW_GET_FUN(__glewGetUniformLocationARB) +#define glGetUniformfvARB GLEW_GET_FUN(__glewGetUniformfvARB) +#define glGetUniformivARB GLEW_GET_FUN(__glewGetUniformivARB) +#define glLinkProgramARB GLEW_GET_FUN(__glewLinkProgramARB) +#define glShaderSourceARB GLEW_GET_FUN(__glewShaderSourceARB) +#define glUniform1fARB GLEW_GET_FUN(__glewUniform1fARB) +#define glUniform1fvARB GLEW_GET_FUN(__glewUniform1fvARB) +#define glUniform1iARB GLEW_GET_FUN(__glewUniform1iARB) +#define glUniform1ivARB GLEW_GET_FUN(__glewUniform1ivARB) +#define glUniform2fARB GLEW_GET_FUN(__glewUniform2fARB) +#define glUniform2fvARB GLEW_GET_FUN(__glewUniform2fvARB) +#define glUniform2iARB GLEW_GET_FUN(__glewUniform2iARB) +#define glUniform2ivARB GLEW_GET_FUN(__glewUniform2ivARB) +#define glUniform3fARB GLEW_GET_FUN(__glewUniform3fARB) +#define glUniform3fvARB GLEW_GET_FUN(__glewUniform3fvARB) +#define glUniform3iARB GLEW_GET_FUN(__glewUniform3iARB) +#define glUniform3ivARB GLEW_GET_FUN(__glewUniform3ivARB) +#define glUniform4fARB GLEW_GET_FUN(__glewUniform4fARB) +#define glUniform4fvARB GLEW_GET_FUN(__glewUniform4fvARB) +#define glUniform4iARB GLEW_GET_FUN(__glewUniform4iARB) +#define glUniform4ivARB GLEW_GET_FUN(__glewUniform4ivARB) +#define glUniformMatrix2fvARB GLEW_GET_FUN(__glewUniformMatrix2fvARB) +#define glUniformMatrix3fvARB GLEW_GET_FUN(__glewUniformMatrix3fvARB) +#define glUniformMatrix4fvARB GLEW_GET_FUN(__glewUniformMatrix4fvARB) +#define glUseProgramObjectARB GLEW_GET_FUN(__glewUseProgramObjectARB) +#define glValidateProgramARB GLEW_GET_FUN(__glewValidateProgramARB) + +#define GLEW_ARB_shader_objects GLEW_GET_VAR(__GLEW_ARB_shader_objects) + +#endif /* GL_ARB_shader_objects */ + +/* ------------------------ GL_ARB_shader_precision ------------------------ */ + +#ifndef GL_ARB_shader_precision +#define GL_ARB_shader_precision 1 + +#define GLEW_ARB_shader_precision GLEW_GET_VAR(__GLEW_ARB_shader_precision) + +#endif /* GL_ARB_shader_precision */ + +/* ---------------------- GL_ARB_shader_stencil_export --------------------- */ + +#ifndef GL_ARB_shader_stencil_export +#define GL_ARB_shader_stencil_export 1 + +#define GLEW_ARB_shader_stencil_export GLEW_GET_VAR(__GLEW_ARB_shader_stencil_export) + +#endif /* GL_ARB_shader_stencil_export */ + +/* ------------------ GL_ARB_shader_storage_buffer_object ------------------ */ + +#ifndef GL_ARB_shader_storage_buffer_object +#define GL_ARB_shader_storage_buffer_object 1 + +#define GL_SHADER_STORAGE_BARRIER_BIT 0x2000 +#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 +#define GL_SHADER_STORAGE_BUFFER 0x90D2 +#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 +#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 +#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 +#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 +#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA +#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB +#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC +#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD +#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); + +#define glShaderStorageBlockBinding GLEW_GET_FUN(__glewShaderStorageBlockBinding) + +#define GLEW_ARB_shader_storage_buffer_object GLEW_GET_VAR(__GLEW_ARB_shader_storage_buffer_object) + +#endif /* GL_ARB_shader_storage_buffer_object */ + +/* ------------------------ GL_ARB_shader_subroutine ----------------------- */ + +#ifndef GL_ARB_shader_subroutine +#define GL_ARB_shader_subroutine 1 + +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#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); + +#define glGetActiveSubroutineName GLEW_GET_FUN(__glewGetActiveSubroutineName) +#define glGetActiveSubroutineUniformName GLEW_GET_FUN(__glewGetActiveSubroutineUniformName) +#define glGetActiveSubroutineUniformiv GLEW_GET_FUN(__glewGetActiveSubroutineUniformiv) +#define glGetProgramStageiv GLEW_GET_FUN(__glewGetProgramStageiv) +#define glGetSubroutineIndex GLEW_GET_FUN(__glewGetSubroutineIndex) +#define glGetSubroutineUniformLocation GLEW_GET_FUN(__glewGetSubroutineUniformLocation) +#define glGetUniformSubroutineuiv GLEW_GET_FUN(__glewGetUniformSubroutineuiv) +#define glUniformSubroutinesuiv GLEW_GET_FUN(__glewUniformSubroutinesuiv) + +#define GLEW_ARB_shader_subroutine GLEW_GET_VAR(__GLEW_ARB_shader_subroutine) + +#endif /* GL_ARB_shader_subroutine */ + +/* ----------------------- GL_ARB_shader_texture_lod ----------------------- */ + +#ifndef GL_ARB_shader_texture_lod +#define GL_ARB_shader_texture_lod 1 + +#define GLEW_ARB_shader_texture_lod GLEW_GET_VAR(__GLEW_ARB_shader_texture_lod) + +#endif /* GL_ARB_shader_texture_lod */ + +/* ---------------------- GL_ARB_shading_language_100 ---------------------- */ + +#ifndef GL_ARB_shading_language_100 +#define GL_ARB_shading_language_100 1 + +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C + +#define GLEW_ARB_shading_language_100 GLEW_GET_VAR(__GLEW_ARB_shading_language_100) + +#endif /* GL_ARB_shading_language_100 */ + +/* -------------------- GL_ARB_shading_language_420pack -------------------- */ + +#ifndef GL_ARB_shading_language_420pack +#define GL_ARB_shading_language_420pack 1 + +#define GLEW_ARB_shading_language_420pack GLEW_GET_VAR(__GLEW_ARB_shading_language_420pack) + +#endif /* GL_ARB_shading_language_420pack */ + +/* -------------------- GL_ARB_shading_language_include -------------------- */ + +#ifndef GL_ARB_shading_language_include +#define GL_ARB_shading_language_include 1 + +#define GL_SHADER_INCLUDE_ARB 0x8DAE +#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 +#define GL_NAMED_STRING_TYPE_ARB 0x8DEA + +typedef void (GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* const *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) +#define glGetNamedStringARB GLEW_GET_FUN(__glewGetNamedStringARB) +#define glGetNamedStringivARB GLEW_GET_FUN(__glewGetNamedStringivARB) +#define glIsNamedStringARB GLEW_GET_FUN(__glewIsNamedStringARB) +#define glNamedStringARB GLEW_GET_FUN(__glewNamedStringARB) + +#define GLEW_ARB_shading_language_include GLEW_GET_VAR(__GLEW_ARB_shading_language_include) + +#endif /* GL_ARB_shading_language_include */ + +/* -------------------- GL_ARB_shading_language_packing -------------------- */ + +#ifndef GL_ARB_shading_language_packing +#define GL_ARB_shading_language_packing 1 + +#define GLEW_ARB_shading_language_packing GLEW_GET_VAR(__GLEW_ARB_shading_language_packing) + +#endif /* GL_ARB_shading_language_packing */ + +/* ----------------------------- GL_ARB_shadow ----------------------------- */ + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 + +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E + +#define GLEW_ARB_shadow GLEW_GET_VAR(__GLEW_ARB_shadow) + +#endif /* GL_ARB_shadow */ + +/* ------------------------- GL_ARB_shadow_ambient ------------------------- */ + +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 + +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF + +#define GLEW_ARB_shadow_ambient GLEW_GET_VAR(__GLEW_ARB_shadow_ambient) + +#endif /* GL_ARB_shadow_ambient */ + +/* ------------------------- GL_ARB_sparse_texture ------------------------- */ + +#ifndef GL_ARB_sparse_texture +#define GL_ARB_sparse_texture 1 + +#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A +#define GL_TEXTURE_SPARSE_ARB 0x91A6 +#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7 +#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8 +#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9 +#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA + +typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); + +#define glTexPageCommitmentARB GLEW_GET_FUN(__glewTexPageCommitmentARB) +#define glTexturePageCommitmentEXT GLEW_GET_FUN(__glewTexturePageCommitmentEXT) + +#define GLEW_ARB_sparse_texture GLEW_GET_VAR(__GLEW_ARB_sparse_texture) + +#endif /* GL_ARB_sparse_texture */ + +/* ------------------------ GL_ARB_stencil_texturing ----------------------- */ + +#ifndef GL_ARB_stencil_texturing +#define GL_ARB_stencil_texturing 1 + +#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA + +#define GLEW_ARB_stencil_texturing GLEW_GET_VAR(__GLEW_ARB_stencil_texturing) + +#endif /* GL_ARB_stencil_texturing */ + +/* ------------------------------ GL_ARB_sync ------------------------------ */ + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 + +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#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); + +#define glClientWaitSync GLEW_GET_FUN(__glewClientWaitSync) +#define glDeleteSync GLEW_GET_FUN(__glewDeleteSync) +#define glFenceSync GLEW_GET_FUN(__glewFenceSync) +#define glGetInteger64v GLEW_GET_FUN(__glewGetInteger64v) +#define glGetSynciv GLEW_GET_FUN(__glewGetSynciv) +#define glIsSync GLEW_GET_FUN(__glewIsSync) +#define glWaitSync GLEW_GET_FUN(__glewWaitSync) + +#define GLEW_ARB_sync GLEW_GET_VAR(__GLEW_ARB_sync) + +#endif /* GL_ARB_sync */ + +/* ----------------------- GL_ARB_tessellation_shader ---------------------- */ + +#ifndef GL_ARB_tessellation_shader +#define GL_ARB_tessellation_shader 1 + +#define GL_PATCHES 0xE +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +#define GL_ISOLINES 0x8E7A +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRACTIONAL_EVEN 0x8E7C +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#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); + +#define glPatchParameterfv GLEW_GET_FUN(__glewPatchParameterfv) +#define glPatchParameteri GLEW_GET_FUN(__glewPatchParameteri) + +#define GLEW_ARB_tessellation_shader GLEW_GET_VAR(__GLEW_ARB_tessellation_shader) + +#endif /* GL_ARB_tessellation_shader */ + +/* ---------------------- GL_ARB_texture_border_clamp ---------------------- */ + +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 + +#define GL_CLAMP_TO_BORDER_ARB 0x812D + +#define GLEW_ARB_texture_border_clamp GLEW_GET_VAR(__GLEW_ARB_texture_border_clamp) + +#endif /* GL_ARB_texture_border_clamp */ + +/* ---------------------- GL_ARB_texture_buffer_object --------------------- */ + +#ifndef GL_ARB_texture_buffer_object +#define GL_ARB_texture_buffer_object 1 + +#define GL_TEXTURE_BUFFER_ARB 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C +#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); + +#define glTexBufferARB GLEW_GET_FUN(__glewTexBufferARB) + +#define GLEW_ARB_texture_buffer_object GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object) + +#endif /* GL_ARB_texture_buffer_object */ + +/* ------------------- GL_ARB_texture_buffer_object_rgb32 ------------------ */ + +#ifndef GL_ARB_texture_buffer_object_rgb32 +#define GL_ARB_texture_buffer_object_rgb32 1 + +#define GLEW_ARB_texture_buffer_object_rgb32 GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object_rgb32) + +#endif /* GL_ARB_texture_buffer_object_rgb32 */ + +/* ---------------------- GL_ARB_texture_buffer_range ---------------------- */ + +#ifndef GL_ARB_texture_buffer_range +#define GL_ARB_texture_buffer_range 1 + +#define GL_TEXTURE_BUFFER_OFFSET 0x919D +#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); + +#define glTexBufferRange GLEW_GET_FUN(__glewTexBufferRange) +#define glTextureBufferRangeEXT GLEW_GET_FUN(__glewTextureBufferRangeEXT) + +#define GLEW_ARB_texture_buffer_range GLEW_GET_VAR(__GLEW_ARB_texture_buffer_range) + +#endif /* GL_ARB_texture_buffer_range */ + +/* ----------------------- GL_ARB_texture_compression ---------------------- */ + +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 + +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#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 GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *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 GLvoid *data); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLvoid *img); + +#define glCompressedTexImage1DARB GLEW_GET_FUN(__glewCompressedTexImage1DARB) +#define glCompressedTexImage2DARB GLEW_GET_FUN(__glewCompressedTexImage2DARB) +#define glCompressedTexImage3DARB GLEW_GET_FUN(__glewCompressedTexImage3DARB) +#define glCompressedTexSubImage1DARB GLEW_GET_FUN(__glewCompressedTexSubImage1DARB) +#define glCompressedTexSubImage2DARB GLEW_GET_FUN(__glewCompressedTexSubImage2DARB) +#define glCompressedTexSubImage3DARB GLEW_GET_FUN(__glewCompressedTexSubImage3DARB) +#define glGetCompressedTexImageARB GLEW_GET_FUN(__glewGetCompressedTexImageARB) + +#define GLEW_ARB_texture_compression GLEW_GET_VAR(__GLEW_ARB_texture_compression) + +#endif /* GL_ARB_texture_compression */ + +/* -------------------- GL_ARB_texture_compression_bptc -------------------- */ + +#ifndef GL_ARB_texture_compression_bptc +#define GL_ARB_texture_compression_bptc 1 + +#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F + +#define GLEW_ARB_texture_compression_bptc GLEW_GET_VAR(__GLEW_ARB_texture_compression_bptc) + +#endif /* GL_ARB_texture_compression_bptc */ + +/* -------------------- GL_ARB_texture_compression_rgtc -------------------- */ + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 + +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE + +#define GLEW_ARB_texture_compression_rgtc GLEW_GET_VAR(__GLEW_ARB_texture_compression_rgtc) + +#endif /* GL_ARB_texture_compression_rgtc */ + +/* ------------------------ GL_ARB_texture_cube_map ------------------------ */ + +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 + +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C + +#define GLEW_ARB_texture_cube_map GLEW_GET_VAR(__GLEW_ARB_texture_cube_map) + +#endif /* GL_ARB_texture_cube_map */ + +/* --------------------- GL_ARB_texture_cube_map_array --------------------- */ + +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 + +#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F + +#define GLEW_ARB_texture_cube_map_array GLEW_GET_VAR(__GLEW_ARB_texture_cube_map_array) + +#endif /* GL_ARB_texture_cube_map_array */ + +/* ------------------------- GL_ARB_texture_env_add ------------------------ */ + +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 + +#define GLEW_ARB_texture_env_add GLEW_GET_VAR(__GLEW_ARB_texture_env_add) + +#endif /* GL_ARB_texture_env_add */ + +/* ----------------------- GL_ARB_texture_env_combine ---------------------- */ + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 + +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A + +#define GLEW_ARB_texture_env_combine GLEW_GET_VAR(__GLEW_ARB_texture_env_combine) + +#endif /* GL_ARB_texture_env_combine */ + +/* ---------------------- GL_ARB_texture_env_crossbar ---------------------- */ + +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 + +#define GLEW_ARB_texture_env_crossbar GLEW_GET_VAR(__GLEW_ARB_texture_env_crossbar) + +#endif /* GL_ARB_texture_env_crossbar */ + +/* ------------------------ GL_ARB_texture_env_dot3 ------------------------ */ + +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 + +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF + +#define GLEW_ARB_texture_env_dot3 GLEW_GET_VAR(__GLEW_ARB_texture_env_dot3) + +#endif /* GL_ARB_texture_env_dot3 */ + +/* -------------------------- GL_ARB_texture_float ------------------------- */ + +#ifndef GL_ARB_texture_float +#define GL_ARB_texture_float 1 + +#define GL_RGBA32F_ARB 0x8814 +#define GL_RGB32F_ARB 0x8815 +#define GL_ALPHA32F_ARB 0x8816 +#define GL_INTENSITY32F_ARB 0x8817 +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_RGBA16F_ARB 0x881A +#define GL_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 +#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 + +#define GLEW_ARB_texture_float GLEW_GET_VAR(__GLEW_ARB_texture_float) + +#endif /* GL_ARB_texture_float */ + +/* ------------------------- GL_ARB_texture_gather ------------------------- */ + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 + +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F + +#define GLEW_ARB_texture_gather GLEW_GET_VAR(__GLEW_ARB_texture_gather) + +#endif /* GL_ARB_texture_gather */ + +/* ------------------ GL_ARB_texture_mirror_clamp_to_edge ------------------ */ + +#ifndef GL_ARB_texture_mirror_clamp_to_edge +#define GL_ARB_texture_mirror_clamp_to_edge 1 + +#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 + +#define GLEW_ARB_texture_mirror_clamp_to_edge GLEW_GET_VAR(__GLEW_ARB_texture_mirror_clamp_to_edge) + +#endif /* GL_ARB_texture_mirror_clamp_to_edge */ + +/* --------------------- GL_ARB_texture_mirrored_repeat -------------------- */ + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_ARB_texture_mirrored_repeat 1 + +#define GL_MIRRORED_REPEAT_ARB 0x8370 + +#define GLEW_ARB_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_ARB_texture_mirrored_repeat) + +#endif /* GL_ARB_texture_mirrored_repeat */ + +/* ----------------------- GL_ARB_texture_multisample ---------------------- */ + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 + +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#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); + +#define glGetMultisamplefv GLEW_GET_FUN(__glewGetMultisamplefv) +#define glSampleMaski GLEW_GET_FUN(__glewSampleMaski) +#define glTexImage2DMultisample GLEW_GET_FUN(__glewTexImage2DMultisample) +#define glTexImage3DMultisample GLEW_GET_FUN(__glewTexImage3DMultisample) + +#define GLEW_ARB_texture_multisample GLEW_GET_VAR(__GLEW_ARB_texture_multisample) + +#endif /* GL_ARB_texture_multisample */ + +/* -------------------- GL_ARB_texture_non_power_of_two -------------------- */ + +#ifndef GL_ARB_texture_non_power_of_two +#define GL_ARB_texture_non_power_of_two 1 + +#define GLEW_ARB_texture_non_power_of_two GLEW_GET_VAR(__GLEW_ARB_texture_non_power_of_two) + +#endif /* GL_ARB_texture_non_power_of_two */ + +/* ---------------------- GL_ARB_texture_query_levels ---------------------- */ + +#ifndef GL_ARB_texture_query_levels +#define GL_ARB_texture_query_levels 1 + +#define GLEW_ARB_texture_query_levels GLEW_GET_VAR(__GLEW_ARB_texture_query_levels) + +#endif /* GL_ARB_texture_query_levels */ + +/* ------------------------ GL_ARB_texture_query_lod ----------------------- */ + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 + +#define GLEW_ARB_texture_query_lod GLEW_GET_VAR(__GLEW_ARB_texture_query_lod) + +#endif /* GL_ARB_texture_query_lod */ + +/* ------------------------ GL_ARB_texture_rectangle ----------------------- */ + +#ifndef GL_ARB_texture_rectangle +#define GL_ARB_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 + +#define GLEW_ARB_texture_rectangle GLEW_GET_VAR(__GLEW_ARB_texture_rectangle) + +#endif /* GL_ARB_texture_rectangle */ + +/* --------------------------- GL_ARB_texture_rg --------------------------- */ + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 + +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C + +#define GLEW_ARB_texture_rg GLEW_GET_VAR(__GLEW_ARB_texture_rg) + +#endif /* GL_ARB_texture_rg */ + +/* ----------------------- GL_ARB_texture_rgb10_a2ui ----------------------- */ + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_ARB_texture_rgb10_a2ui 1 + +#define GL_RGB10_A2UI 0x906F + +#define GLEW_ARB_texture_rgb10_a2ui GLEW_GET_VAR(__GLEW_ARB_texture_rgb10_a2ui) + +#endif /* GL_ARB_texture_rgb10_a2ui */ + +/* ------------------------ GL_ARB_texture_stencil8 ------------------------ */ + +#ifndef GL_ARB_texture_stencil8 +#define GL_ARB_texture_stencil8 1 + +#define GL_STENCIL_INDEX 0x1901 +#define GL_STENCIL_INDEX8 0x8D48 + +#define GLEW_ARB_texture_stencil8 GLEW_GET_VAR(__GLEW_ARB_texture_stencil8) + +#endif /* GL_ARB_texture_stencil8 */ + +/* ------------------------- GL_ARB_texture_storage ------------------------ */ + +#ifndef GL_ARB_texture_storage +#define GL_ARB_texture_storage 1 + +#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); + +#define glTexStorage1D GLEW_GET_FUN(__glewTexStorage1D) +#define glTexStorage2D GLEW_GET_FUN(__glewTexStorage2D) +#define glTexStorage3D GLEW_GET_FUN(__glewTexStorage3D) +#define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT) +#define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT) +#define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT) + +#define GLEW_ARB_texture_storage GLEW_GET_VAR(__GLEW_ARB_texture_storage) + +#endif /* GL_ARB_texture_storage */ + +/* ------------------- GL_ARB_texture_storage_multisample ------------------ */ + +#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); + +#define glTexStorage2DMultisample GLEW_GET_FUN(__glewTexStorage2DMultisample) +#define glTexStorage3DMultisample GLEW_GET_FUN(__glewTexStorage3DMultisample) +#define glTextureStorage2DMultisampleEXT GLEW_GET_FUN(__glewTextureStorage2DMultisampleEXT) +#define glTextureStorage3DMultisampleEXT GLEW_GET_FUN(__glewTextureStorage3DMultisampleEXT) + +#define GLEW_ARB_texture_storage_multisample GLEW_GET_VAR(__GLEW_ARB_texture_storage_multisample) + +#endif /* GL_ARB_texture_storage_multisample */ + +/* ------------------------- GL_ARB_texture_swizzle ------------------------ */ + +#ifndef GL_ARB_texture_swizzle +#define GL_ARB_texture_swizzle 1 + +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 + +#define GLEW_ARB_texture_swizzle GLEW_GET_VAR(__GLEW_ARB_texture_swizzle) + +#endif /* GL_ARB_texture_swizzle */ + +/* -------------------------- GL_ARB_texture_view -------------------------- */ + +#ifndef GL_ARB_texture_view +#define GL_ARB_texture_view 1 + +#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD +#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); + +#define glTextureView GLEW_GET_FUN(__glewTextureView) + +#define GLEW_ARB_texture_view GLEW_GET_VAR(__GLEW_ARB_texture_view) + +#endif /* GL_ARB_texture_view */ + +/* --------------------------- GL_ARB_timer_query -------------------------- */ + +#ifndef GL_ARB_timer_query +#define GL_ARB_timer_query 1 + +#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); + +#define glGetQueryObjecti64v GLEW_GET_FUN(__glewGetQueryObjecti64v) +#define glGetQueryObjectui64v GLEW_GET_FUN(__glewGetQueryObjectui64v) +#define glQueryCounter GLEW_GET_FUN(__glewQueryCounter) + +#define GLEW_ARB_timer_query GLEW_GET_VAR(__GLEW_ARB_timer_query) + +#endif /* GL_ARB_timer_query */ + +/* ----------------------- GL_ARB_transform_feedback2 ---------------------- */ + +#ifndef GL_ARB_transform_feedback2 +#define GL_ARB_transform_feedback2 1 + +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#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); + +#define glBindTransformFeedback GLEW_GET_FUN(__glewBindTransformFeedback) +#define glDeleteTransformFeedbacks GLEW_GET_FUN(__glewDeleteTransformFeedbacks) +#define glDrawTransformFeedback GLEW_GET_FUN(__glewDrawTransformFeedback) +#define glGenTransformFeedbacks GLEW_GET_FUN(__glewGenTransformFeedbacks) +#define glIsTransformFeedback GLEW_GET_FUN(__glewIsTransformFeedback) +#define glPauseTransformFeedback GLEW_GET_FUN(__glewPauseTransformFeedback) +#define glResumeTransformFeedback GLEW_GET_FUN(__glewResumeTransformFeedback) + +#define GLEW_ARB_transform_feedback2 GLEW_GET_VAR(__GLEW_ARB_transform_feedback2) + +#endif /* GL_ARB_transform_feedback2 */ + +/* ----------------------- GL_ARB_transform_feedback3 ---------------------- */ + +#ifndef GL_ARB_transform_feedback3 +#define GL_ARB_transform_feedback3 1 + +#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); + +#define glBeginQueryIndexed GLEW_GET_FUN(__glewBeginQueryIndexed) +#define glDrawTransformFeedbackStream GLEW_GET_FUN(__glewDrawTransformFeedbackStream) +#define glEndQueryIndexed GLEW_GET_FUN(__glewEndQueryIndexed) +#define glGetQueryIndexediv GLEW_GET_FUN(__glewGetQueryIndexediv) + +#define GLEW_ARB_transform_feedback3 GLEW_GET_VAR(__GLEW_ARB_transform_feedback3) + +#endif /* GL_ARB_transform_feedback3 */ + +/* ------------------ GL_ARB_transform_feedback_instanced ------------------ */ + +#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); + +#define glDrawTransformFeedbackInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackInstanced) +#define glDrawTransformFeedbackStreamInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackStreamInstanced) + +#define GLEW_ARB_transform_feedback_instanced GLEW_GET_VAR(__GLEW_ARB_transform_feedback_instanced) + +#endif /* GL_ARB_transform_feedback_instanced */ + +/* ------------------------ GL_ARB_transpose_matrix ------------------------ */ + +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 + +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#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]); + +#define glLoadTransposeMatrixdARB GLEW_GET_FUN(__glewLoadTransposeMatrixdARB) +#define glLoadTransposeMatrixfARB GLEW_GET_FUN(__glewLoadTransposeMatrixfARB) +#define glMultTransposeMatrixdARB GLEW_GET_FUN(__glewMultTransposeMatrixdARB) +#define glMultTransposeMatrixfARB GLEW_GET_FUN(__glewMultTransposeMatrixfARB) + +#define GLEW_ARB_transpose_matrix GLEW_GET_VAR(__GLEW_ARB_transpose_matrix) + +#endif /* GL_ARB_transpose_matrix */ + +/* ---------------------- GL_ARB_uniform_buffer_object --------------------- */ + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 + +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#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); + +#define glBindBufferBase GLEW_GET_FUN(__glewBindBufferBase) +#define glBindBufferRange GLEW_GET_FUN(__glewBindBufferRange) +#define glGetActiveUniformBlockName GLEW_GET_FUN(__glewGetActiveUniformBlockName) +#define glGetActiveUniformBlockiv GLEW_GET_FUN(__glewGetActiveUniformBlockiv) +#define glGetActiveUniformName GLEW_GET_FUN(__glewGetActiveUniformName) +#define glGetActiveUniformsiv GLEW_GET_FUN(__glewGetActiveUniformsiv) +#define glGetIntegeri_v GLEW_GET_FUN(__glewGetIntegeri_v) +#define glGetUniformBlockIndex GLEW_GET_FUN(__glewGetUniformBlockIndex) +#define glGetUniformIndices GLEW_GET_FUN(__glewGetUniformIndices) +#define glUniformBlockBinding GLEW_GET_FUN(__glewUniformBlockBinding) + +#define GLEW_ARB_uniform_buffer_object GLEW_GET_VAR(__GLEW_ARB_uniform_buffer_object) + +#endif /* GL_ARB_uniform_buffer_object */ + +/* ------------------------ GL_ARB_vertex_array_bgra ----------------------- */ + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 + +#define GL_BGRA 0x80E1 + +#define GLEW_ARB_vertex_array_bgra GLEW_GET_VAR(__GLEW_ARB_vertex_array_bgra) + +#endif /* GL_ARB_vertex_array_bgra */ + +/* ----------------------- GL_ARB_vertex_array_object ---------------------- */ + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 + +#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); + +#define glBindVertexArray GLEW_GET_FUN(__glewBindVertexArray) +#define glDeleteVertexArrays GLEW_GET_FUN(__glewDeleteVertexArrays) +#define glGenVertexArrays GLEW_GET_FUN(__glewGenVertexArrays) +#define glIsVertexArray GLEW_GET_FUN(__glewIsVertexArray) + +#define GLEW_ARB_vertex_array_object GLEW_GET_VAR(__GLEW_ARB_vertex_array_object) + +#endif /* GL_ARB_vertex_array_object */ + +/* ----------------------- GL_ARB_vertex_attrib_64bit ---------------------- */ + +#ifndef GL_ARB_vertex_attrib_64bit +#define GL_ARB_vertex_attrib_64bit 1 + +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) +#define glVertexAttribL1dv GLEW_GET_FUN(__glewVertexAttribL1dv) +#define glVertexAttribL2d GLEW_GET_FUN(__glewVertexAttribL2d) +#define glVertexAttribL2dv GLEW_GET_FUN(__glewVertexAttribL2dv) +#define glVertexAttribL3d GLEW_GET_FUN(__glewVertexAttribL3d) +#define glVertexAttribL3dv GLEW_GET_FUN(__glewVertexAttribL3dv) +#define glVertexAttribL4d GLEW_GET_FUN(__glewVertexAttribL4d) +#define glVertexAttribL4dv GLEW_GET_FUN(__glewVertexAttribL4dv) +#define glVertexAttribLPointer GLEW_GET_FUN(__glewVertexAttribLPointer) + +#define GLEW_ARB_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_64bit) + +#endif /* GL_ARB_vertex_attrib_64bit */ + +/* ---------------------- GL_ARB_vertex_attrib_binding --------------------- */ + +#ifndef GL_ARB_vertex_attrib_binding +#define GL_ARB_vertex_attrib_binding 1 + +#define GL_VERTEX_ATTRIB_BINDING 0x82D4 +#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 +#define GL_VERTEX_BINDING_DIVISOR 0x82D6 +#define GL_VERTEX_BINDING_OFFSET 0x82D7 +#define GL_VERTEX_BINDING_STRIDE 0x82D8 +#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); + +#define glBindVertexBuffer GLEW_GET_FUN(__glewBindVertexBuffer) +#define glVertexAttribBinding GLEW_GET_FUN(__glewVertexAttribBinding) +#define glVertexAttribFormat GLEW_GET_FUN(__glewVertexAttribFormat) +#define glVertexAttribIFormat GLEW_GET_FUN(__glewVertexAttribIFormat) +#define glVertexAttribLFormat GLEW_GET_FUN(__glewVertexAttribLFormat) +#define glVertexBindingDivisor GLEW_GET_FUN(__glewVertexBindingDivisor) + +#define GLEW_ARB_vertex_attrib_binding GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_binding) + +#endif /* GL_ARB_vertex_attrib_binding */ + +/* -------------------------- GL_ARB_vertex_blend -------------------------- */ + +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 + +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#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); + +#define glVertexBlendARB GLEW_GET_FUN(__glewVertexBlendARB) +#define glWeightPointerARB GLEW_GET_FUN(__glewWeightPointerARB) +#define glWeightbvARB GLEW_GET_FUN(__glewWeightbvARB) +#define glWeightdvARB GLEW_GET_FUN(__glewWeightdvARB) +#define glWeightfvARB GLEW_GET_FUN(__glewWeightfvARB) +#define glWeightivARB GLEW_GET_FUN(__glewWeightivARB) +#define glWeightsvARB GLEW_GET_FUN(__glewWeightsvARB) +#define glWeightubvARB GLEW_GET_FUN(__glewWeightubvARB) +#define glWeightuivARB GLEW_GET_FUN(__glewWeightuivARB) +#define glWeightusvARB GLEW_GET_FUN(__glewWeightusvARB) + +#define GLEW_ARB_vertex_blend GLEW_GET_VAR(__GLEW_ARB_vertex_blend) + +#endif /* GL_ARB_vertex_blend */ + +/* ---------------------- GL_ARB_vertex_buffer_object ---------------------- */ + +#ifndef GL_ARB_vertex_buffer_object +#define GL_ARB_vertex_buffer_object 1 + +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_ARRAY_BUFFER_ARB 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_READ_ONLY_ARB 0x88B8 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_READ_WRITE_ARB 0x88BA +#define GL_BUFFER_ACCESS_ARB 0x88BB +#define GL_BUFFER_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_STREAM_COPY_ARB 0x88E2 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STATIC_COPY_ARB 0x88E6 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_COPY_ARB 0x88EA + +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); + +#define glBindBufferARB GLEW_GET_FUN(__glewBindBufferARB) +#define glBufferDataARB GLEW_GET_FUN(__glewBufferDataARB) +#define glBufferSubDataARB GLEW_GET_FUN(__glewBufferSubDataARB) +#define glDeleteBuffersARB GLEW_GET_FUN(__glewDeleteBuffersARB) +#define glGenBuffersARB GLEW_GET_FUN(__glewGenBuffersARB) +#define glGetBufferParameterivARB GLEW_GET_FUN(__glewGetBufferParameterivARB) +#define glGetBufferPointervARB GLEW_GET_FUN(__glewGetBufferPointervARB) +#define glGetBufferSubDataARB GLEW_GET_FUN(__glewGetBufferSubDataARB) +#define glIsBufferARB GLEW_GET_FUN(__glewIsBufferARB) +#define glMapBufferARB GLEW_GET_FUN(__glewMapBufferARB) +#define glUnmapBufferARB GLEW_GET_FUN(__glewUnmapBufferARB) + +#define GLEW_ARB_vertex_buffer_object GLEW_GET_VAR(__GLEW_ARB_vertex_buffer_object) + +#endif /* GL_ARB_vertex_buffer_object */ + +/* ------------------------- GL_ARB_vertex_program ------------------------- */ + +#ifndef GL_ARB_vertex_program +#define GL_ARB_vertex_program 1 + +#define GL_COLOR_SUM_ARB 0x8458 +#define GL_VERTEX_PROGRAM_ARB 0x8620 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_CURRENT_MATRIX_ARB 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_MATRIX0_ARB 0x88C0 +#define GL_MATRIX1_ARB 0x88C1 +#define GL_MATRIX2_ARB 0x88C2 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#define GL_MATRIX10_ARB 0x88CA +#define GL_MATRIX11_ARB 0x88CB +#define GL_MATRIX12_ARB 0x88CC +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#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, GLvoid *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 GLvoid *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 GLvoid *pointer); + +#define glBindProgramARB GLEW_GET_FUN(__glewBindProgramARB) +#define glDeleteProgramsARB GLEW_GET_FUN(__glewDeleteProgramsARB) +#define glDisableVertexAttribArrayARB GLEW_GET_FUN(__glewDisableVertexAttribArrayARB) +#define glEnableVertexAttribArrayARB GLEW_GET_FUN(__glewEnableVertexAttribArrayARB) +#define glGenProgramsARB GLEW_GET_FUN(__glewGenProgramsARB) +#define glGetProgramEnvParameterdvARB GLEW_GET_FUN(__glewGetProgramEnvParameterdvARB) +#define glGetProgramEnvParameterfvARB GLEW_GET_FUN(__glewGetProgramEnvParameterfvARB) +#define glGetProgramLocalParameterdvARB GLEW_GET_FUN(__glewGetProgramLocalParameterdvARB) +#define glGetProgramLocalParameterfvARB GLEW_GET_FUN(__glewGetProgramLocalParameterfvARB) +#define glGetProgramStringARB GLEW_GET_FUN(__glewGetProgramStringARB) +#define glGetProgramivARB GLEW_GET_FUN(__glewGetProgramivARB) +#define glGetVertexAttribPointervARB GLEW_GET_FUN(__glewGetVertexAttribPointervARB) +#define glGetVertexAttribdvARB GLEW_GET_FUN(__glewGetVertexAttribdvARB) +#define glGetVertexAttribfvARB GLEW_GET_FUN(__glewGetVertexAttribfvARB) +#define glGetVertexAttribivARB GLEW_GET_FUN(__glewGetVertexAttribivARB) +#define glIsProgramARB GLEW_GET_FUN(__glewIsProgramARB) +#define glProgramEnvParameter4dARB GLEW_GET_FUN(__glewProgramEnvParameter4dARB) +#define glProgramEnvParameter4dvARB GLEW_GET_FUN(__glewProgramEnvParameter4dvARB) +#define glProgramEnvParameter4fARB GLEW_GET_FUN(__glewProgramEnvParameter4fARB) +#define glProgramEnvParameter4fvARB GLEW_GET_FUN(__glewProgramEnvParameter4fvARB) +#define glProgramLocalParameter4dARB GLEW_GET_FUN(__glewProgramLocalParameter4dARB) +#define glProgramLocalParameter4dvARB GLEW_GET_FUN(__glewProgramLocalParameter4dvARB) +#define glProgramLocalParameter4fARB GLEW_GET_FUN(__glewProgramLocalParameter4fARB) +#define glProgramLocalParameter4fvARB GLEW_GET_FUN(__glewProgramLocalParameter4fvARB) +#define glProgramStringARB GLEW_GET_FUN(__glewProgramStringARB) +#define glVertexAttrib1dARB GLEW_GET_FUN(__glewVertexAttrib1dARB) +#define glVertexAttrib1dvARB GLEW_GET_FUN(__glewVertexAttrib1dvARB) +#define glVertexAttrib1fARB GLEW_GET_FUN(__glewVertexAttrib1fARB) +#define glVertexAttrib1fvARB GLEW_GET_FUN(__glewVertexAttrib1fvARB) +#define glVertexAttrib1sARB GLEW_GET_FUN(__glewVertexAttrib1sARB) +#define glVertexAttrib1svARB GLEW_GET_FUN(__glewVertexAttrib1svARB) +#define glVertexAttrib2dARB GLEW_GET_FUN(__glewVertexAttrib2dARB) +#define glVertexAttrib2dvARB GLEW_GET_FUN(__glewVertexAttrib2dvARB) +#define glVertexAttrib2fARB GLEW_GET_FUN(__glewVertexAttrib2fARB) +#define glVertexAttrib2fvARB GLEW_GET_FUN(__glewVertexAttrib2fvARB) +#define glVertexAttrib2sARB GLEW_GET_FUN(__glewVertexAttrib2sARB) +#define glVertexAttrib2svARB GLEW_GET_FUN(__glewVertexAttrib2svARB) +#define glVertexAttrib3dARB GLEW_GET_FUN(__glewVertexAttrib3dARB) +#define glVertexAttrib3dvARB GLEW_GET_FUN(__glewVertexAttrib3dvARB) +#define glVertexAttrib3fARB GLEW_GET_FUN(__glewVertexAttrib3fARB) +#define glVertexAttrib3fvARB GLEW_GET_FUN(__glewVertexAttrib3fvARB) +#define glVertexAttrib3sARB GLEW_GET_FUN(__glewVertexAttrib3sARB) +#define glVertexAttrib3svARB GLEW_GET_FUN(__glewVertexAttrib3svARB) +#define glVertexAttrib4NbvARB GLEW_GET_FUN(__glewVertexAttrib4NbvARB) +#define glVertexAttrib4NivARB GLEW_GET_FUN(__glewVertexAttrib4NivARB) +#define glVertexAttrib4NsvARB GLEW_GET_FUN(__glewVertexAttrib4NsvARB) +#define glVertexAttrib4NubARB GLEW_GET_FUN(__glewVertexAttrib4NubARB) +#define glVertexAttrib4NubvARB GLEW_GET_FUN(__glewVertexAttrib4NubvARB) +#define glVertexAttrib4NuivARB GLEW_GET_FUN(__glewVertexAttrib4NuivARB) +#define glVertexAttrib4NusvARB GLEW_GET_FUN(__glewVertexAttrib4NusvARB) +#define glVertexAttrib4bvARB GLEW_GET_FUN(__glewVertexAttrib4bvARB) +#define glVertexAttrib4dARB GLEW_GET_FUN(__glewVertexAttrib4dARB) +#define glVertexAttrib4dvARB GLEW_GET_FUN(__glewVertexAttrib4dvARB) +#define glVertexAttrib4fARB GLEW_GET_FUN(__glewVertexAttrib4fARB) +#define glVertexAttrib4fvARB GLEW_GET_FUN(__glewVertexAttrib4fvARB) +#define glVertexAttrib4ivARB GLEW_GET_FUN(__glewVertexAttrib4ivARB) +#define glVertexAttrib4sARB GLEW_GET_FUN(__glewVertexAttrib4sARB) +#define glVertexAttrib4svARB GLEW_GET_FUN(__glewVertexAttrib4svARB) +#define glVertexAttrib4ubvARB GLEW_GET_FUN(__glewVertexAttrib4ubvARB) +#define glVertexAttrib4uivARB GLEW_GET_FUN(__glewVertexAttrib4uivARB) +#define glVertexAttrib4usvARB GLEW_GET_FUN(__glewVertexAttrib4usvARB) +#define glVertexAttribPointerARB GLEW_GET_FUN(__glewVertexAttribPointerARB) + +#define GLEW_ARB_vertex_program GLEW_GET_VAR(__GLEW_ARB_vertex_program) + +#endif /* GL_ARB_vertex_program */ + +/* -------------------------- GL_ARB_vertex_shader ------------------------- */ + +#ifndef GL_ARB_vertex_shader +#define GL_ARB_vertex_shader 1 + +#define GL_VERTEX_SHADER_ARB 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D +#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); + +#define glBindAttribLocationARB GLEW_GET_FUN(__glewBindAttribLocationARB) +#define glGetActiveAttribARB GLEW_GET_FUN(__glewGetActiveAttribARB) +#define glGetAttribLocationARB GLEW_GET_FUN(__glewGetAttribLocationARB) + +#define GLEW_ARB_vertex_shader GLEW_GET_VAR(__GLEW_ARB_vertex_shader) + +#endif /* GL_ARB_vertex_shader */ + +/* ------------------- GL_ARB_vertex_type_10f_11f_11f_rev ------------------ */ + +#ifndef GL_ARB_vertex_type_10f_11f_11f_rev +#define GL_ARB_vertex_type_10f_11f_11f_rev 1 + +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B + +#define GLEW_ARB_vertex_type_10f_11f_11f_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_10f_11f_11f_rev) + +#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */ + +/* ------------------- GL_ARB_vertex_type_2_10_10_10_rev ------------------- */ + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +#define GL_ARB_vertex_type_2_10_10_10_rev 1 + +#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); + +#define glColorP3ui GLEW_GET_FUN(__glewColorP3ui) +#define glColorP3uiv GLEW_GET_FUN(__glewColorP3uiv) +#define glColorP4ui GLEW_GET_FUN(__glewColorP4ui) +#define glColorP4uiv GLEW_GET_FUN(__glewColorP4uiv) +#define glMultiTexCoordP1ui GLEW_GET_FUN(__glewMultiTexCoordP1ui) +#define glMultiTexCoordP1uiv GLEW_GET_FUN(__glewMultiTexCoordP1uiv) +#define glMultiTexCoordP2ui GLEW_GET_FUN(__glewMultiTexCoordP2ui) +#define glMultiTexCoordP2uiv GLEW_GET_FUN(__glewMultiTexCoordP2uiv) +#define glMultiTexCoordP3ui GLEW_GET_FUN(__glewMultiTexCoordP3ui) +#define glMultiTexCoordP3uiv GLEW_GET_FUN(__glewMultiTexCoordP3uiv) +#define glMultiTexCoordP4ui GLEW_GET_FUN(__glewMultiTexCoordP4ui) +#define glMultiTexCoordP4uiv GLEW_GET_FUN(__glewMultiTexCoordP4uiv) +#define glNormalP3ui GLEW_GET_FUN(__glewNormalP3ui) +#define glNormalP3uiv GLEW_GET_FUN(__glewNormalP3uiv) +#define glSecondaryColorP3ui GLEW_GET_FUN(__glewSecondaryColorP3ui) +#define glSecondaryColorP3uiv GLEW_GET_FUN(__glewSecondaryColorP3uiv) +#define glTexCoordP1ui GLEW_GET_FUN(__glewTexCoordP1ui) +#define glTexCoordP1uiv GLEW_GET_FUN(__glewTexCoordP1uiv) +#define glTexCoordP2ui GLEW_GET_FUN(__glewTexCoordP2ui) +#define glTexCoordP2uiv GLEW_GET_FUN(__glewTexCoordP2uiv) +#define glTexCoordP3ui GLEW_GET_FUN(__glewTexCoordP3ui) +#define glTexCoordP3uiv GLEW_GET_FUN(__glewTexCoordP3uiv) +#define glTexCoordP4ui GLEW_GET_FUN(__glewTexCoordP4ui) +#define glTexCoordP4uiv GLEW_GET_FUN(__glewTexCoordP4uiv) +#define glVertexAttribP1ui GLEW_GET_FUN(__glewVertexAttribP1ui) +#define glVertexAttribP1uiv GLEW_GET_FUN(__glewVertexAttribP1uiv) +#define glVertexAttribP2ui GLEW_GET_FUN(__glewVertexAttribP2ui) +#define glVertexAttribP2uiv GLEW_GET_FUN(__glewVertexAttribP2uiv) +#define glVertexAttribP3ui GLEW_GET_FUN(__glewVertexAttribP3ui) +#define glVertexAttribP3uiv GLEW_GET_FUN(__glewVertexAttribP3uiv) +#define glVertexAttribP4ui GLEW_GET_FUN(__glewVertexAttribP4ui) +#define glVertexAttribP4uiv GLEW_GET_FUN(__glewVertexAttribP4uiv) +#define glVertexP2ui GLEW_GET_FUN(__glewVertexP2ui) +#define glVertexP2uiv GLEW_GET_FUN(__glewVertexP2uiv) +#define glVertexP3ui GLEW_GET_FUN(__glewVertexP3ui) +#define glVertexP3uiv GLEW_GET_FUN(__glewVertexP3uiv) +#define glVertexP4ui GLEW_GET_FUN(__glewVertexP4ui) +#define glVertexP4uiv GLEW_GET_FUN(__glewVertexP4uiv) + +#define GLEW_ARB_vertex_type_2_10_10_10_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_2_10_10_10_rev) + +#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ + +/* ------------------------- GL_ARB_viewport_array ------------------------- */ + +#ifndef GL_ARB_viewport_array +#define GL_ARB_viewport_array 1 + +#define GL_DEPTH_RANGE 0x0B70 +#define GL_VIEWPORT 0x0BA2 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_MAX_VIEWPORTS 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_UNDEFINED_VERTEX 0x8260 +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#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); + +#define glDepthRangeArrayv GLEW_GET_FUN(__glewDepthRangeArrayv) +#define glDepthRangeIndexed GLEW_GET_FUN(__glewDepthRangeIndexed) +#define glGetDoublei_v GLEW_GET_FUN(__glewGetDoublei_v) +#define glGetFloati_v GLEW_GET_FUN(__glewGetFloati_v) +#define glScissorArrayv GLEW_GET_FUN(__glewScissorArrayv) +#define glScissorIndexed GLEW_GET_FUN(__glewScissorIndexed) +#define glScissorIndexedv GLEW_GET_FUN(__glewScissorIndexedv) +#define glViewportArrayv GLEW_GET_FUN(__glewViewportArrayv) +#define glViewportIndexedf GLEW_GET_FUN(__glewViewportIndexedf) +#define glViewportIndexedfv GLEW_GET_FUN(__glewViewportIndexedfv) + +#define GLEW_ARB_viewport_array GLEW_GET_VAR(__GLEW_ARB_viewport_array) + +#endif /* GL_ARB_viewport_array */ + +/* --------------------------- GL_ARB_window_pos --------------------------- */ + +#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); + +#define glWindowPos2dARB GLEW_GET_FUN(__glewWindowPos2dARB) +#define glWindowPos2dvARB GLEW_GET_FUN(__glewWindowPos2dvARB) +#define glWindowPos2fARB GLEW_GET_FUN(__glewWindowPos2fARB) +#define glWindowPos2fvARB GLEW_GET_FUN(__glewWindowPos2fvARB) +#define glWindowPos2iARB GLEW_GET_FUN(__glewWindowPos2iARB) +#define glWindowPos2ivARB GLEW_GET_FUN(__glewWindowPos2ivARB) +#define glWindowPos2sARB GLEW_GET_FUN(__glewWindowPos2sARB) +#define glWindowPos2svARB GLEW_GET_FUN(__glewWindowPos2svARB) +#define glWindowPos3dARB GLEW_GET_FUN(__glewWindowPos3dARB) +#define glWindowPos3dvARB GLEW_GET_FUN(__glewWindowPos3dvARB) +#define glWindowPos3fARB GLEW_GET_FUN(__glewWindowPos3fARB) +#define glWindowPos3fvARB GLEW_GET_FUN(__glewWindowPos3fvARB) +#define glWindowPos3iARB GLEW_GET_FUN(__glewWindowPos3iARB) +#define glWindowPos3ivARB GLEW_GET_FUN(__glewWindowPos3ivARB) +#define glWindowPos3sARB GLEW_GET_FUN(__glewWindowPos3sARB) +#define glWindowPos3svARB GLEW_GET_FUN(__glewWindowPos3svARB) + +#define GLEW_ARB_window_pos GLEW_GET_VAR(__GLEW_ARB_window_pos) + +#endif /* GL_ARB_window_pos */ + +/* ------------------------- GL_ATIX_point_sprites ------------------------- */ + +#ifndef GL_ATIX_point_sprites +#define GL_ATIX_point_sprites 1 + +#define GL_TEXTURE_POINT_MODE_ATIX 0x60B0 +#define GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1 +#define GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2 +#define GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3 +#define GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4 +#define GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5 + +#define GLEW_ATIX_point_sprites GLEW_GET_VAR(__GLEW_ATIX_point_sprites) + +#endif /* GL_ATIX_point_sprites */ + +/* ---------------------- GL_ATIX_texture_env_combine3 --------------------- */ + +#ifndef GL_ATIX_texture_env_combine3 +#define GL_ATIX_texture_env_combine3 1 + +#define GL_MODULATE_ADD_ATIX 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATIX 0x8745 +#define GL_MODULATE_SUBTRACT_ATIX 0x8746 + +#define GLEW_ATIX_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATIX_texture_env_combine3) + +#endif /* GL_ATIX_texture_env_combine3 */ + +/* ----------------------- GL_ATIX_texture_env_route ----------------------- */ + +#ifndef GL_ATIX_texture_env_route +#define GL_ATIX_texture_env_route 1 + +#define GL_SECONDARY_COLOR_ATIX 0x8747 +#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748 +#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749 + +#define GLEW_ATIX_texture_env_route GLEW_GET_VAR(__GLEW_ATIX_texture_env_route) + +#endif /* GL_ATIX_texture_env_route */ + +/* ---------------- GL_ATIX_vertex_shader_output_point_size ---------------- */ + +#ifndef GL_ATIX_vertex_shader_output_point_size +#define GL_ATIX_vertex_shader_output_point_size 1 + +#define GL_OUTPUT_POINT_SIZE_ATIX 0x610E + +#define GLEW_ATIX_vertex_shader_output_point_size GLEW_GET_VAR(__GLEW_ATIX_vertex_shader_output_point_size) + +#endif /* GL_ATIX_vertex_shader_output_point_size */ + +/* -------------------------- GL_ATI_draw_buffers -------------------------- */ + +#ifndef GL_ATI_draw_buffers +#define GL_ATI_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 +#define GL_DRAW_BUFFER0_ATI 0x8825 +#define GL_DRAW_BUFFER1_ATI 0x8826 +#define GL_DRAW_BUFFER2_ATI 0x8827 +#define GL_DRAW_BUFFER3_ATI 0x8828 +#define GL_DRAW_BUFFER4_ATI 0x8829 +#define GL_DRAW_BUFFER5_ATI 0x882A +#define GL_DRAW_BUFFER6_ATI 0x882B +#define GL_DRAW_BUFFER7_ATI 0x882C +#define GL_DRAW_BUFFER8_ATI 0x882D +#define GL_DRAW_BUFFER9_ATI 0x882E +#define GL_DRAW_BUFFER10_ATI 0x882F +#define GL_DRAW_BUFFER11_ATI 0x8830 +#define GL_DRAW_BUFFER12_ATI 0x8831 +#define GL_DRAW_BUFFER13_ATI 0x8832 +#define GL_DRAW_BUFFER14_ATI 0x8833 +#define GL_DRAW_BUFFER15_ATI 0x8834 + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersATI GLEW_GET_FUN(__glewDrawBuffersATI) + +#define GLEW_ATI_draw_buffers GLEW_GET_VAR(__GLEW_ATI_draw_buffers) + +#endif /* GL_ATI_draw_buffers */ + +/* -------------------------- GL_ATI_element_array ------------------------- */ + +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 + +#define GL_ELEMENT_ARRAY_ATI 0x8768 +#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 GLvoid *pointer); + +#define glDrawElementArrayATI GLEW_GET_FUN(__glewDrawElementArrayATI) +#define glDrawRangeElementArrayATI GLEW_GET_FUN(__glewDrawRangeElementArrayATI) +#define glElementPointerATI GLEW_GET_FUN(__glewElementPointerATI) + +#define GLEW_ATI_element_array GLEW_GET_VAR(__GLEW_ATI_element_array) + +#endif /* GL_ATI_element_array */ + +/* ------------------------- GL_ATI_envmap_bumpmap ------------------------- */ + +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 + +#define GL_BUMP_ROT_MATRIX_ATI 0x8775 +#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 +#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 +#define GL_BUMP_TEX_UNITS_ATI 0x8778 +#define GL_DUDV_ATI 0x8779 +#define GL_DU8DV8_ATI 0x877A +#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); + +#define glGetTexBumpParameterfvATI GLEW_GET_FUN(__glewGetTexBumpParameterfvATI) +#define glGetTexBumpParameterivATI GLEW_GET_FUN(__glewGetTexBumpParameterivATI) +#define glTexBumpParameterfvATI GLEW_GET_FUN(__glewTexBumpParameterfvATI) +#define glTexBumpParameterivATI GLEW_GET_FUN(__glewTexBumpParameterivATI) + +#define GLEW_ATI_envmap_bumpmap GLEW_GET_VAR(__GLEW_ATI_envmap_bumpmap) + +#endif /* GL_ATI_envmap_bumpmap */ + +/* ------------------------- GL_ATI_fragment_shader ------------------------ */ + +#ifndef GL_ATI_fragment_shader +#define GL_ATI_fragment_shader 1 + +#define GL_RED_BIT_ATI 0x00000001 +#define GL_2X_BIT_ATI 0x00000001 +#define GL_4X_BIT_ATI 0x00000002 +#define GL_GREEN_BIT_ATI 0x00000002 +#define GL_COMP_BIT_ATI 0x00000002 +#define GL_BLUE_BIT_ATI 0x00000004 +#define GL_8X_BIT_ATI 0x00000004 +#define GL_NEGATE_BIT_ATI 0x00000004 +#define GL_BIAS_BIT_ATI 0x00000008 +#define GL_HALF_BIT_ATI 0x00000008 +#define GL_QUARTER_BIT_ATI 0x00000010 +#define GL_EIGHTH_BIT_ATI 0x00000020 +#define GL_SATURATE_BIT_ATI 0x00000040 +#define GL_FRAGMENT_SHADER_ATI 0x8920 +#define GL_REG_0_ATI 0x8921 +#define GL_REG_1_ATI 0x8922 +#define GL_REG_2_ATI 0x8923 +#define GL_REG_3_ATI 0x8924 +#define GL_REG_4_ATI 0x8925 +#define GL_REG_5_ATI 0x8926 +#define GL_CON_0_ATI 0x8941 +#define GL_CON_1_ATI 0x8942 +#define GL_CON_2_ATI 0x8943 +#define GL_CON_3_ATI 0x8944 +#define GL_CON_4_ATI 0x8945 +#define GL_CON_5_ATI 0x8946 +#define GL_CON_6_ATI 0x8947 +#define GL_CON_7_ATI 0x8948 +#define GL_MOV_ATI 0x8961 +#define GL_ADD_ATI 0x8963 +#define GL_MUL_ATI 0x8964 +#define GL_SUB_ATI 0x8965 +#define GL_DOT3_ATI 0x8966 +#define GL_DOT4_ATI 0x8967 +#define GL_MAD_ATI 0x8968 +#define GL_LERP_ATI 0x8969 +#define GL_CND_ATI 0x896A +#define GL_CND0_ATI 0x896B +#define GL_DOT2_ADD_ATI 0x896C +#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D +#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E +#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F +#define GL_NUM_PASSES_ATI 0x8970 +#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 +#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 +#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 +#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 +#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 +#define GL_SWIZZLE_STR_ATI 0x8976 +#define GL_SWIZZLE_STQ_ATI 0x8977 +#define GL_SWIZZLE_STR_DR_ATI 0x8978 +#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 +#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); + +#define glAlphaFragmentOp1ATI GLEW_GET_FUN(__glewAlphaFragmentOp1ATI) +#define glAlphaFragmentOp2ATI GLEW_GET_FUN(__glewAlphaFragmentOp2ATI) +#define glAlphaFragmentOp3ATI GLEW_GET_FUN(__glewAlphaFragmentOp3ATI) +#define glBeginFragmentShaderATI GLEW_GET_FUN(__glewBeginFragmentShaderATI) +#define glBindFragmentShaderATI GLEW_GET_FUN(__glewBindFragmentShaderATI) +#define glColorFragmentOp1ATI GLEW_GET_FUN(__glewColorFragmentOp1ATI) +#define glColorFragmentOp2ATI GLEW_GET_FUN(__glewColorFragmentOp2ATI) +#define glColorFragmentOp3ATI GLEW_GET_FUN(__glewColorFragmentOp3ATI) +#define glDeleteFragmentShaderATI GLEW_GET_FUN(__glewDeleteFragmentShaderATI) +#define glEndFragmentShaderATI GLEW_GET_FUN(__glewEndFragmentShaderATI) +#define glGenFragmentShadersATI GLEW_GET_FUN(__glewGenFragmentShadersATI) +#define glPassTexCoordATI GLEW_GET_FUN(__glewPassTexCoordATI) +#define glSampleMapATI GLEW_GET_FUN(__glewSampleMapATI) +#define glSetFragmentShaderConstantATI GLEW_GET_FUN(__glewSetFragmentShaderConstantATI) + +#define GLEW_ATI_fragment_shader GLEW_GET_VAR(__GLEW_ATI_fragment_shader) + +#endif /* GL_ATI_fragment_shader */ + +/* ------------------------ GL_ATI_map_object_buffer ----------------------- */ + +#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); + +#define glMapObjectBufferATI GLEW_GET_FUN(__glewMapObjectBufferATI) +#define glUnmapObjectBufferATI GLEW_GET_FUN(__glewUnmapObjectBufferATI) + +#define GLEW_ATI_map_object_buffer GLEW_GET_VAR(__GLEW_ATI_map_object_buffer) + +#endif /* GL_ATI_map_object_buffer */ + +/* ----------------------------- GL_ATI_meminfo ---------------------------- */ + +#ifndef GL_ATI_meminfo +#define GL_ATI_meminfo 1 + +#define GL_VBO_FREE_MEMORY_ATI 0x87FB +#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC +#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD + +#define GLEW_ATI_meminfo GLEW_GET_VAR(__GLEW_ATI_meminfo) + +#endif /* GL_ATI_meminfo */ + +/* -------------------------- GL_ATI_pn_triangles -------------------------- */ + +#ifndef GL_ATI_pn_triangles +#define GL_ATI_pn_triangles 1 + +#define GL_PN_TRIANGLES_ATI 0x87F0 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 +#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); + +#define glPNTrianglesfATI GLEW_GET_FUN(__glewPNTrianglesfATI) +#define glPNTrianglesiATI GLEW_GET_FUN(__glewPNTrianglesiATI) + +#define GLEW_ATI_pn_triangles GLEW_GET_VAR(__GLEW_ATI_pn_triangles) + +#endif /* GL_ATI_pn_triangles */ + +/* ------------------------ GL_ATI_separate_stencil ------------------------ */ + +#ifndef GL_ATI_separate_stencil +#define GL_ATI_separate_stencil 1 + +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#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); + +#define glStencilFuncSeparateATI GLEW_GET_FUN(__glewStencilFuncSeparateATI) +#define glStencilOpSeparateATI GLEW_GET_FUN(__glewStencilOpSeparateATI) + +#define GLEW_ATI_separate_stencil GLEW_GET_VAR(__GLEW_ATI_separate_stencil) + +#endif /* GL_ATI_separate_stencil */ + +/* ----------------------- GL_ATI_shader_texture_lod ----------------------- */ + +#ifndef GL_ATI_shader_texture_lod +#define GL_ATI_shader_texture_lod 1 + +#define GLEW_ATI_shader_texture_lod GLEW_GET_VAR(__GLEW_ATI_shader_texture_lod) + +#endif /* GL_ATI_shader_texture_lod */ + +/* ---------------------- GL_ATI_text_fragment_shader ---------------------- */ + +#ifndef GL_ATI_text_fragment_shader +#define GL_ATI_text_fragment_shader 1 + +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 + +#define GLEW_ATI_text_fragment_shader GLEW_GET_VAR(__GLEW_ATI_text_fragment_shader) + +#endif /* GL_ATI_text_fragment_shader */ + +/* --------------------- GL_ATI_texture_compression_3dc -------------------- */ + +#ifndef GL_ATI_texture_compression_3dc +#define GL_ATI_texture_compression_3dc 1 + +#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 + +#define GLEW_ATI_texture_compression_3dc GLEW_GET_VAR(__GLEW_ATI_texture_compression_3dc) + +#endif /* GL_ATI_texture_compression_3dc */ + +/* ---------------------- GL_ATI_texture_env_combine3 ---------------------- */ + +#ifndef GL_ATI_texture_env_combine3 +#define GL_ATI_texture_env_combine3 1 + +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 + +#define GLEW_ATI_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATI_texture_env_combine3) + +#endif /* GL_ATI_texture_env_combine3 */ + +/* -------------------------- GL_ATI_texture_float ------------------------- */ + +#ifndef GL_ATI_texture_float +#define GL_ATI_texture_float 1 + +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F + +#define GLEW_ATI_texture_float GLEW_GET_VAR(__GLEW_ATI_texture_float) + +#endif /* GL_ATI_texture_float */ + +/* ----------------------- GL_ATI_texture_mirror_once ---------------------- */ + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 + +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 + +#define GLEW_ATI_texture_mirror_once GLEW_GET_VAR(__GLEW_ATI_texture_mirror_once) + +#endif /* GL_ATI_texture_mirror_once */ + +/* ----------------------- GL_ATI_vertex_array_object ---------------------- */ + +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 + +#define GL_STATIC_ATI 0x8760 +#define GL_DYNAMIC_ATI 0x8761 +#define GL_PRESERVE_ATI 0x8762 +#define GL_DISCARD_ATI 0x8763 +#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 +#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 +#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 GLvoid *pointer, GLenum usage); +typedef void (GLAPIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *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) +#define glGetArrayObjectfvATI GLEW_GET_FUN(__glewGetArrayObjectfvATI) +#define glGetArrayObjectivATI GLEW_GET_FUN(__glewGetArrayObjectivATI) +#define glGetObjectBufferfvATI GLEW_GET_FUN(__glewGetObjectBufferfvATI) +#define glGetObjectBufferivATI GLEW_GET_FUN(__glewGetObjectBufferivATI) +#define glGetVariantArrayObjectfvATI GLEW_GET_FUN(__glewGetVariantArrayObjectfvATI) +#define glGetVariantArrayObjectivATI GLEW_GET_FUN(__glewGetVariantArrayObjectivATI) +#define glIsObjectBufferATI GLEW_GET_FUN(__glewIsObjectBufferATI) +#define glNewObjectBufferATI GLEW_GET_FUN(__glewNewObjectBufferATI) +#define glUpdateObjectBufferATI GLEW_GET_FUN(__glewUpdateObjectBufferATI) +#define glVariantArrayObjectATI GLEW_GET_FUN(__glewVariantArrayObjectATI) + +#define GLEW_ATI_vertex_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_array_object) + +#endif /* GL_ATI_vertex_array_object */ + +/* ------------------- GL_ATI_vertex_attrib_array_object ------------------- */ + +#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); + +#define glGetVertexAttribArrayObjectfvATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectfvATI) +#define glGetVertexAttribArrayObjectivATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectivATI) +#define glVertexAttribArrayObjectATI GLEW_GET_FUN(__glewVertexAttribArrayObjectATI) + +#define GLEW_ATI_vertex_attrib_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_attrib_array_object) + +#endif /* GL_ATI_vertex_attrib_array_object */ + +/* ------------------------- GL_ATI_vertex_streams ------------------------- */ + +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 + +#define GL_MAX_VERTEX_STREAMS_ATI 0x876B +#define GL_VERTEX_SOURCE_ATI 0x876C +#define GL_VERTEX_STREAM0_ATI 0x876D +#define GL_VERTEX_STREAM1_ATI 0x876E +#define GL_VERTEX_STREAM2_ATI 0x876F +#define GL_VERTEX_STREAM3_ATI 0x8770 +#define GL_VERTEX_STREAM4_ATI 0x8771 +#define GL_VERTEX_STREAM5_ATI 0x8772 +#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); + +#define glClientActiveVertexStreamATI GLEW_GET_FUN(__glewClientActiveVertexStreamATI) +#define glNormalStream3bATI GLEW_GET_FUN(__glewNormalStream3bATI) +#define glNormalStream3bvATI GLEW_GET_FUN(__glewNormalStream3bvATI) +#define glNormalStream3dATI GLEW_GET_FUN(__glewNormalStream3dATI) +#define glNormalStream3dvATI GLEW_GET_FUN(__glewNormalStream3dvATI) +#define glNormalStream3fATI GLEW_GET_FUN(__glewNormalStream3fATI) +#define glNormalStream3fvATI GLEW_GET_FUN(__glewNormalStream3fvATI) +#define glNormalStream3iATI GLEW_GET_FUN(__glewNormalStream3iATI) +#define glNormalStream3ivATI GLEW_GET_FUN(__glewNormalStream3ivATI) +#define glNormalStream3sATI GLEW_GET_FUN(__glewNormalStream3sATI) +#define glNormalStream3svATI GLEW_GET_FUN(__glewNormalStream3svATI) +#define glVertexBlendEnvfATI GLEW_GET_FUN(__glewVertexBlendEnvfATI) +#define glVertexBlendEnviATI GLEW_GET_FUN(__glewVertexBlendEnviATI) +#define glVertexStream1dATI GLEW_GET_FUN(__glewVertexStream1dATI) +#define glVertexStream1dvATI GLEW_GET_FUN(__glewVertexStream1dvATI) +#define glVertexStream1fATI GLEW_GET_FUN(__glewVertexStream1fATI) +#define glVertexStream1fvATI GLEW_GET_FUN(__glewVertexStream1fvATI) +#define glVertexStream1iATI GLEW_GET_FUN(__glewVertexStream1iATI) +#define glVertexStream1ivATI GLEW_GET_FUN(__glewVertexStream1ivATI) +#define glVertexStream1sATI GLEW_GET_FUN(__glewVertexStream1sATI) +#define glVertexStream1svATI GLEW_GET_FUN(__glewVertexStream1svATI) +#define glVertexStream2dATI GLEW_GET_FUN(__glewVertexStream2dATI) +#define glVertexStream2dvATI GLEW_GET_FUN(__glewVertexStream2dvATI) +#define glVertexStream2fATI GLEW_GET_FUN(__glewVertexStream2fATI) +#define glVertexStream2fvATI GLEW_GET_FUN(__glewVertexStream2fvATI) +#define glVertexStream2iATI GLEW_GET_FUN(__glewVertexStream2iATI) +#define glVertexStream2ivATI GLEW_GET_FUN(__glewVertexStream2ivATI) +#define glVertexStream2sATI GLEW_GET_FUN(__glewVertexStream2sATI) +#define glVertexStream2svATI GLEW_GET_FUN(__glewVertexStream2svATI) +#define glVertexStream3dATI GLEW_GET_FUN(__glewVertexStream3dATI) +#define glVertexStream3dvATI GLEW_GET_FUN(__glewVertexStream3dvATI) +#define glVertexStream3fATI GLEW_GET_FUN(__glewVertexStream3fATI) +#define glVertexStream3fvATI GLEW_GET_FUN(__glewVertexStream3fvATI) +#define glVertexStream3iATI GLEW_GET_FUN(__glewVertexStream3iATI) +#define glVertexStream3ivATI GLEW_GET_FUN(__glewVertexStream3ivATI) +#define glVertexStream3sATI GLEW_GET_FUN(__glewVertexStream3sATI) +#define glVertexStream3svATI GLEW_GET_FUN(__glewVertexStream3svATI) +#define glVertexStream4dATI GLEW_GET_FUN(__glewVertexStream4dATI) +#define glVertexStream4dvATI GLEW_GET_FUN(__glewVertexStream4dvATI) +#define glVertexStream4fATI GLEW_GET_FUN(__glewVertexStream4fATI) +#define glVertexStream4fvATI GLEW_GET_FUN(__glewVertexStream4fvATI) +#define glVertexStream4iATI GLEW_GET_FUN(__glewVertexStream4iATI) +#define glVertexStream4ivATI GLEW_GET_FUN(__glewVertexStream4ivATI) +#define glVertexStream4sATI GLEW_GET_FUN(__glewVertexStream4sATI) +#define glVertexStream4svATI GLEW_GET_FUN(__glewVertexStream4svATI) + +#define GLEW_ATI_vertex_streams GLEW_GET_VAR(__GLEW_ATI_vertex_streams) + +#endif /* GL_ATI_vertex_streams */ + +/* --------------------------- GL_EXT_422_pixels --------------------------- */ + +#ifndef GL_EXT_422_pixels +#define GL_EXT_422_pixels 1 + +#define GL_422_EXT 0x80CC +#define GL_422_REV_EXT 0x80CD +#define GL_422_AVERAGE_EXT 0x80CE +#define GL_422_REV_AVERAGE_EXT 0x80CF + +#define GLEW_EXT_422_pixels GLEW_GET_VAR(__GLEW_EXT_422_pixels) + +#endif /* GL_EXT_422_pixels */ + +/* ---------------------------- GL_EXT_Cg_shader --------------------------- */ + +#ifndef GL_EXT_Cg_shader +#define GL_EXT_Cg_shader 1 + +#define GL_CG_VERTEX_SHADER_EXT 0x890E +#define GL_CG_FRAGMENT_SHADER_EXT 0x890F + +#define GLEW_EXT_Cg_shader GLEW_GET_VAR(__GLEW_EXT_Cg_shader) + +#endif /* GL_EXT_Cg_shader */ + +/* ------------------------------ GL_EXT_abgr ------------------------------ */ + +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 + +#define GL_ABGR_EXT 0x8000 + +#define GLEW_EXT_abgr GLEW_GET_VAR(__GLEW_EXT_abgr) + +#endif /* GL_EXT_abgr */ + +/* ------------------------------ GL_EXT_bgra ------------------------------ */ + +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 + +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 + +#define GLEW_EXT_bgra GLEW_GET_VAR(__GLEW_EXT_bgra) + +#endif /* GL_EXT_bgra */ + +/* ------------------------ GL_EXT_bindable_uniform ------------------------ */ + +#ifndef GL_EXT_bindable_uniform +#define GL_EXT_bindable_uniform 1 + +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#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); + +#define glGetUniformBufferSizeEXT GLEW_GET_FUN(__glewGetUniformBufferSizeEXT) +#define glGetUniformOffsetEXT GLEW_GET_FUN(__glewGetUniformOffsetEXT) +#define glUniformBufferEXT GLEW_GET_FUN(__glewUniformBufferEXT) + +#define GLEW_EXT_bindable_uniform GLEW_GET_VAR(__GLEW_EXT_bindable_uniform) + +#endif /* GL_EXT_bindable_uniform */ + +/* --------------------------- GL_EXT_blend_color -------------------------- */ + +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 + +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#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); + +#define glBlendColorEXT GLEW_GET_FUN(__glewBlendColorEXT) + +#define GLEW_EXT_blend_color GLEW_GET_VAR(__GLEW_EXT_blend_color) + +#endif /* GL_EXT_blend_color */ + +/* --------------------- GL_EXT_blend_equation_separate -------------------- */ + +#ifndef GL_EXT_blend_equation_separate +#define GL_EXT_blend_equation_separate 1 + +#define GL_BLEND_EQUATION_RGB_EXT 0x8009 +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); + +#define glBlendEquationSeparateEXT GLEW_GET_FUN(__glewBlendEquationSeparateEXT) + +#define GLEW_EXT_blend_equation_separate GLEW_GET_VAR(__GLEW_EXT_blend_equation_separate) + +#endif /* GL_EXT_blend_equation_separate */ + +/* ----------------------- GL_EXT_blend_func_separate ---------------------- */ + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 + +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#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); + +#define glBlendFuncSeparateEXT GLEW_GET_FUN(__glewBlendFuncSeparateEXT) + +#define GLEW_EXT_blend_func_separate GLEW_GET_VAR(__GLEW_EXT_blend_func_separate) + +#endif /* GL_EXT_blend_func_separate */ + +/* ------------------------- GL_EXT_blend_logic_op ------------------------- */ + +#ifndef GL_EXT_blend_logic_op +#define GL_EXT_blend_logic_op 1 + +#define GLEW_EXT_blend_logic_op GLEW_GET_VAR(__GLEW_EXT_blend_logic_op) + +#endif /* GL_EXT_blend_logic_op */ + +/* -------------------------- GL_EXT_blend_minmax -------------------------- */ + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 + +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); + +#define glBlendEquationEXT GLEW_GET_FUN(__glewBlendEquationEXT) + +#define GLEW_EXT_blend_minmax GLEW_GET_VAR(__GLEW_EXT_blend_minmax) + +#endif /* GL_EXT_blend_minmax */ + +/* ------------------------- GL_EXT_blend_subtract ------------------------- */ + +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 + +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B + +#define GLEW_EXT_blend_subtract GLEW_GET_VAR(__GLEW_EXT_blend_subtract) + +#endif /* GL_EXT_blend_subtract */ + +/* ------------------------ GL_EXT_clip_volume_hint ------------------------ */ + +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 + +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 + +#define GLEW_EXT_clip_volume_hint GLEW_GET_VAR(__GLEW_EXT_clip_volume_hint) + +#endif /* GL_EXT_clip_volume_hint */ + +/* ------------------------------ GL_EXT_cmyka ----------------------------- */ + +#ifndef GL_EXT_cmyka +#define GL_EXT_cmyka 1 + +#define GL_CMYK_EXT 0x800C +#define GL_CMYKA_EXT 0x800D +#define GL_PACK_CMYK_HINT_EXT 0x800E +#define GL_UNPACK_CMYK_HINT_EXT 0x800F + +#define GLEW_EXT_cmyka GLEW_GET_VAR(__GLEW_EXT_cmyka) + +#endif /* GL_EXT_cmyka */ + +/* ------------------------- GL_EXT_color_subtable ------------------------- */ + +#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 GLvoid *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) + +#define GLEW_EXT_color_subtable GLEW_GET_VAR(__GLEW_EXT_color_subtable) + +#endif /* GL_EXT_color_subtable */ + +/* ---------------------- GL_EXT_compiled_vertex_array --------------------- */ + +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 + +#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); + +#define glLockArraysEXT GLEW_GET_FUN(__glewLockArraysEXT) +#define glUnlockArraysEXT GLEW_GET_FUN(__glewUnlockArraysEXT) + +#define GLEW_EXT_compiled_vertex_array GLEW_GET_VAR(__GLEW_EXT_compiled_vertex_array) + +#endif /* GL_EXT_compiled_vertex_array */ + +/* --------------------------- GL_EXT_convolution -------------------------- */ + +#ifndef GL_EXT_convolution +#define GL_EXT_convolution 1 + +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#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 GLvoid *image); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *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, GLvoid *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, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); + +#define glConvolutionFilter1DEXT GLEW_GET_FUN(__glewConvolutionFilter1DEXT) +#define glConvolutionFilter2DEXT GLEW_GET_FUN(__glewConvolutionFilter2DEXT) +#define glConvolutionParameterfEXT GLEW_GET_FUN(__glewConvolutionParameterfEXT) +#define glConvolutionParameterfvEXT GLEW_GET_FUN(__glewConvolutionParameterfvEXT) +#define glConvolutionParameteriEXT GLEW_GET_FUN(__glewConvolutionParameteriEXT) +#define glConvolutionParameterivEXT GLEW_GET_FUN(__glewConvolutionParameterivEXT) +#define glCopyConvolutionFilter1DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter1DEXT) +#define glCopyConvolutionFilter2DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter2DEXT) +#define glGetConvolutionFilterEXT GLEW_GET_FUN(__glewGetConvolutionFilterEXT) +#define glGetConvolutionParameterfvEXT GLEW_GET_FUN(__glewGetConvolutionParameterfvEXT) +#define glGetConvolutionParameterivEXT GLEW_GET_FUN(__glewGetConvolutionParameterivEXT) +#define glGetSeparableFilterEXT GLEW_GET_FUN(__glewGetSeparableFilterEXT) +#define glSeparableFilter2DEXT GLEW_GET_FUN(__glewSeparableFilter2DEXT) + +#define GLEW_EXT_convolution GLEW_GET_VAR(__GLEW_EXT_convolution) + +#endif /* GL_EXT_convolution */ + +/* ------------------------ GL_EXT_coordinate_frame ------------------------ */ + +#ifndef GL_EXT_coordinate_frame +#define GL_EXT_coordinate_frame 1 + +#define GL_TANGENT_ARRAY_EXT 0x8439 +#define GL_BINORMAL_ARRAY_EXT 0x843A +#define GL_CURRENT_TANGENT_EXT 0x843B +#define GL_CURRENT_BINORMAL_EXT 0x843C +#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E +#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F +#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 +#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 +#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 +#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 +#define GL_MAP1_TANGENT_EXT 0x8444 +#define GL_MAP2_TANGENT_EXT 0x8445 +#define GL_MAP1_BINORMAL_EXT 0x8446 +#define GL_MAP2_BINORMAL_EXT 0x8447 + +typedef void (GLAPIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, GLvoid *pointer); + +#define glBinormalPointerEXT GLEW_GET_FUN(__glewBinormalPointerEXT) +#define glTangentPointerEXT GLEW_GET_FUN(__glewTangentPointerEXT) + +#define GLEW_EXT_coordinate_frame GLEW_GET_VAR(__GLEW_EXT_coordinate_frame) + +#endif /* GL_EXT_coordinate_frame */ + +/* -------------------------- GL_EXT_copy_texture -------------------------- */ + +#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); + +#define glCopyTexImage1DEXT GLEW_GET_FUN(__glewCopyTexImage1DEXT) +#define glCopyTexImage2DEXT GLEW_GET_FUN(__glewCopyTexImage2DEXT) +#define glCopyTexSubImage1DEXT GLEW_GET_FUN(__glewCopyTexSubImage1DEXT) +#define glCopyTexSubImage2DEXT GLEW_GET_FUN(__glewCopyTexSubImage2DEXT) +#define glCopyTexSubImage3DEXT GLEW_GET_FUN(__glewCopyTexSubImage3DEXT) + +#define GLEW_EXT_copy_texture GLEW_GET_VAR(__GLEW_EXT_copy_texture) + +#endif /* GL_EXT_copy_texture */ + +/* --------------------------- GL_EXT_cull_vertex -------------------------- */ + +#ifndef GL_EXT_cull_vertex +#define GL_EXT_cull_vertex 1 + +#define GL_CULL_VERTEX_EXT 0x81AA +#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); + +#define glCullParameterdvEXT GLEW_GET_FUN(__glewCullParameterdvEXT) +#define glCullParameterfvEXT GLEW_GET_FUN(__glewCullParameterfvEXT) + +#define GLEW_EXT_cull_vertex GLEW_GET_VAR(__GLEW_EXT_cull_vertex) + +#endif /* GL_EXT_cull_vertex */ + +/* -------------------------- GL_EXT_debug_marker -------------------------- */ + +#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); + +#define glInsertEventMarkerEXT GLEW_GET_FUN(__glewInsertEventMarkerEXT) +#define glPopGroupMarkerEXT GLEW_GET_FUN(__glewPopGroupMarkerEXT) +#define glPushGroupMarkerEXT GLEW_GET_FUN(__glewPushGroupMarkerEXT) + +#define GLEW_EXT_debug_marker GLEW_GET_VAR(__GLEW_EXT_debug_marker) + +#endif /* GL_EXT_debug_marker */ + +/* ------------------------ GL_EXT_depth_bounds_test ----------------------- */ + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 + +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 + +typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); + +#define glDepthBoundsEXT GLEW_GET_FUN(__glewDepthBoundsEXT) + +#define GLEW_EXT_depth_bounds_test GLEW_GET_VAR(__GLEW_EXT_depth_bounds_test) + +#endif /* GL_EXT_depth_bounds_test */ + +/* ----------------------- GL_EXT_direct_state_access ---------------------- */ + +#ifndef GL_EXT_direct_state_access +#define GL_EXT_direct_state_access 1 + +#define GL_PROGRAM_MATRIX_EXT 0x8E2D +#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 GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *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 GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *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 GLvoid *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, GLvoid *img); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLvoid *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, GLvoid *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, GLvoid *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, GLvoid *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, GLvoid *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 GLvoid *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 GLvoid *pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *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 GLvoid *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 GLvoid *pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *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 GLvoid *pixels); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *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 GLvoid *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 * 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 * 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 * 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 * 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 * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* 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 GLvoid *pixels); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *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 GLvoid *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 GLvoid *pixels); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *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 GLvoid *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) +#define glClientAttribDefaultEXT GLEW_GET_FUN(__glewClientAttribDefaultEXT) +#define glCompressedMultiTexImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage1DEXT) +#define glCompressedMultiTexImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage2DEXT) +#define glCompressedMultiTexImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage3DEXT) +#define glCompressedMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage1DEXT) +#define glCompressedMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage2DEXT) +#define glCompressedMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage3DEXT) +#define glCompressedTextureImage1DEXT GLEW_GET_FUN(__glewCompressedTextureImage1DEXT) +#define glCompressedTextureImage2DEXT GLEW_GET_FUN(__glewCompressedTextureImage2DEXT) +#define glCompressedTextureImage3DEXT GLEW_GET_FUN(__glewCompressedTextureImage3DEXT) +#define glCompressedTextureSubImage1DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage1DEXT) +#define glCompressedTextureSubImage2DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage2DEXT) +#define glCompressedTextureSubImage3DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage3DEXT) +#define glCopyMultiTexImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexImage1DEXT) +#define glCopyMultiTexImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexImage2DEXT) +#define glCopyMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage1DEXT) +#define glCopyMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage2DEXT) +#define glCopyMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage3DEXT) +#define glCopyTextureImage1DEXT GLEW_GET_FUN(__glewCopyTextureImage1DEXT) +#define glCopyTextureImage2DEXT GLEW_GET_FUN(__glewCopyTextureImage2DEXT) +#define glCopyTextureSubImage1DEXT GLEW_GET_FUN(__glewCopyTextureSubImage1DEXT) +#define glCopyTextureSubImage2DEXT GLEW_GET_FUN(__glewCopyTextureSubImage2DEXT) +#define glCopyTextureSubImage3DEXT GLEW_GET_FUN(__glewCopyTextureSubImage3DEXT) +#define glDisableClientStateIndexedEXT GLEW_GET_FUN(__glewDisableClientStateIndexedEXT) +#define glDisableClientStateiEXT GLEW_GET_FUN(__glewDisableClientStateiEXT) +#define glDisableVertexArrayAttribEXT GLEW_GET_FUN(__glewDisableVertexArrayAttribEXT) +#define glDisableVertexArrayEXT GLEW_GET_FUN(__glewDisableVertexArrayEXT) +#define glEnableClientStateIndexedEXT GLEW_GET_FUN(__glewEnableClientStateIndexedEXT) +#define glEnableClientStateiEXT GLEW_GET_FUN(__glewEnableClientStateiEXT) +#define glEnableVertexArrayAttribEXT GLEW_GET_FUN(__glewEnableVertexArrayAttribEXT) +#define glEnableVertexArrayEXT GLEW_GET_FUN(__glewEnableVertexArrayEXT) +#define glFlushMappedNamedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedNamedBufferRangeEXT) +#define glFramebufferDrawBufferEXT GLEW_GET_FUN(__glewFramebufferDrawBufferEXT) +#define glFramebufferDrawBuffersEXT GLEW_GET_FUN(__glewFramebufferDrawBuffersEXT) +#define glFramebufferReadBufferEXT GLEW_GET_FUN(__glewFramebufferReadBufferEXT) +#define glGenerateMultiTexMipmapEXT GLEW_GET_FUN(__glewGenerateMultiTexMipmapEXT) +#define glGenerateTextureMipmapEXT GLEW_GET_FUN(__glewGenerateTextureMipmapEXT) +#define glGetCompressedMultiTexImageEXT GLEW_GET_FUN(__glewGetCompressedMultiTexImageEXT) +#define glGetCompressedTextureImageEXT GLEW_GET_FUN(__glewGetCompressedTextureImageEXT) +#define glGetDoubleIndexedvEXT GLEW_GET_FUN(__glewGetDoubleIndexedvEXT) +#define glGetDoublei_vEXT GLEW_GET_FUN(__glewGetDoublei_vEXT) +#define glGetFloatIndexedvEXT GLEW_GET_FUN(__glewGetFloatIndexedvEXT) +#define glGetFloati_vEXT GLEW_GET_FUN(__glewGetFloati_vEXT) +#define glGetFramebufferParameterivEXT GLEW_GET_FUN(__glewGetFramebufferParameterivEXT) +#define glGetMultiTexEnvfvEXT GLEW_GET_FUN(__glewGetMultiTexEnvfvEXT) +#define glGetMultiTexEnvivEXT GLEW_GET_FUN(__glewGetMultiTexEnvivEXT) +#define glGetMultiTexGendvEXT GLEW_GET_FUN(__glewGetMultiTexGendvEXT) +#define glGetMultiTexGenfvEXT GLEW_GET_FUN(__glewGetMultiTexGenfvEXT) +#define glGetMultiTexGenivEXT GLEW_GET_FUN(__glewGetMultiTexGenivEXT) +#define glGetMultiTexImageEXT GLEW_GET_FUN(__glewGetMultiTexImageEXT) +#define glGetMultiTexLevelParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterfvEXT) +#define glGetMultiTexLevelParameterivEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterivEXT) +#define glGetMultiTexParameterIivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIivEXT) +#define glGetMultiTexParameterIuivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIuivEXT) +#define glGetMultiTexParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexParameterfvEXT) +#define glGetMultiTexParameterivEXT GLEW_GET_FUN(__glewGetMultiTexParameterivEXT) +#define glGetNamedBufferParameterivEXT GLEW_GET_FUN(__glewGetNamedBufferParameterivEXT) +#define glGetNamedBufferPointervEXT GLEW_GET_FUN(__glewGetNamedBufferPointervEXT) +#define glGetNamedBufferSubDataEXT GLEW_GET_FUN(__glewGetNamedBufferSubDataEXT) +#define glGetNamedFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameterivEXT) +#define glGetNamedProgramLocalParameterIivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIivEXT) +#define glGetNamedProgramLocalParameterIuivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIuivEXT) +#define glGetNamedProgramLocalParameterdvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterdvEXT) +#define glGetNamedProgramLocalParameterfvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterfvEXT) +#define glGetNamedProgramStringEXT GLEW_GET_FUN(__glewGetNamedProgramStringEXT) +#define glGetNamedProgramivEXT GLEW_GET_FUN(__glewGetNamedProgramivEXT) +#define glGetNamedRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetNamedRenderbufferParameterivEXT) +#define glGetPointerIndexedvEXT GLEW_GET_FUN(__glewGetPointerIndexedvEXT) +#define glGetPointeri_vEXT GLEW_GET_FUN(__glewGetPointeri_vEXT) +#define glGetTextureImageEXT GLEW_GET_FUN(__glewGetTextureImageEXT) +#define glGetTextureLevelParameterfvEXT GLEW_GET_FUN(__glewGetTextureLevelParameterfvEXT) +#define glGetTextureLevelParameterivEXT GLEW_GET_FUN(__glewGetTextureLevelParameterivEXT) +#define glGetTextureParameterIivEXT GLEW_GET_FUN(__glewGetTextureParameterIivEXT) +#define glGetTextureParameterIuivEXT GLEW_GET_FUN(__glewGetTextureParameterIuivEXT) +#define glGetTextureParameterfvEXT GLEW_GET_FUN(__glewGetTextureParameterfvEXT) +#define glGetTextureParameterivEXT GLEW_GET_FUN(__glewGetTextureParameterivEXT) +#define glGetVertexArrayIntegeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayIntegeri_vEXT) +#define glGetVertexArrayIntegervEXT GLEW_GET_FUN(__glewGetVertexArrayIntegervEXT) +#define glGetVertexArrayPointeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayPointeri_vEXT) +#define glGetVertexArrayPointervEXT GLEW_GET_FUN(__glewGetVertexArrayPointervEXT) +#define glMapNamedBufferEXT GLEW_GET_FUN(__glewMapNamedBufferEXT) +#define glMapNamedBufferRangeEXT GLEW_GET_FUN(__glewMapNamedBufferRangeEXT) +#define glMatrixFrustumEXT GLEW_GET_FUN(__glewMatrixFrustumEXT) +#define glMatrixLoadIdentityEXT GLEW_GET_FUN(__glewMatrixLoadIdentityEXT) +#define glMatrixLoadTransposedEXT GLEW_GET_FUN(__glewMatrixLoadTransposedEXT) +#define glMatrixLoadTransposefEXT GLEW_GET_FUN(__glewMatrixLoadTransposefEXT) +#define glMatrixLoaddEXT GLEW_GET_FUN(__glewMatrixLoaddEXT) +#define glMatrixLoadfEXT GLEW_GET_FUN(__glewMatrixLoadfEXT) +#define glMatrixMultTransposedEXT GLEW_GET_FUN(__glewMatrixMultTransposedEXT) +#define glMatrixMultTransposefEXT GLEW_GET_FUN(__glewMatrixMultTransposefEXT) +#define glMatrixMultdEXT GLEW_GET_FUN(__glewMatrixMultdEXT) +#define glMatrixMultfEXT GLEW_GET_FUN(__glewMatrixMultfEXT) +#define glMatrixOrthoEXT GLEW_GET_FUN(__glewMatrixOrthoEXT) +#define glMatrixPopEXT GLEW_GET_FUN(__glewMatrixPopEXT) +#define glMatrixPushEXT GLEW_GET_FUN(__glewMatrixPushEXT) +#define glMatrixRotatedEXT GLEW_GET_FUN(__glewMatrixRotatedEXT) +#define glMatrixRotatefEXT GLEW_GET_FUN(__glewMatrixRotatefEXT) +#define glMatrixScaledEXT GLEW_GET_FUN(__glewMatrixScaledEXT) +#define glMatrixScalefEXT GLEW_GET_FUN(__glewMatrixScalefEXT) +#define glMatrixTranslatedEXT GLEW_GET_FUN(__glewMatrixTranslatedEXT) +#define glMatrixTranslatefEXT GLEW_GET_FUN(__glewMatrixTranslatefEXT) +#define glMultiTexBufferEXT GLEW_GET_FUN(__glewMultiTexBufferEXT) +#define glMultiTexCoordPointerEXT GLEW_GET_FUN(__glewMultiTexCoordPointerEXT) +#define glMultiTexEnvfEXT GLEW_GET_FUN(__glewMultiTexEnvfEXT) +#define glMultiTexEnvfvEXT GLEW_GET_FUN(__glewMultiTexEnvfvEXT) +#define glMultiTexEnviEXT GLEW_GET_FUN(__glewMultiTexEnviEXT) +#define glMultiTexEnvivEXT GLEW_GET_FUN(__glewMultiTexEnvivEXT) +#define glMultiTexGendEXT GLEW_GET_FUN(__glewMultiTexGendEXT) +#define glMultiTexGendvEXT GLEW_GET_FUN(__glewMultiTexGendvEXT) +#define glMultiTexGenfEXT GLEW_GET_FUN(__glewMultiTexGenfEXT) +#define glMultiTexGenfvEXT GLEW_GET_FUN(__glewMultiTexGenfvEXT) +#define glMultiTexGeniEXT GLEW_GET_FUN(__glewMultiTexGeniEXT) +#define glMultiTexGenivEXT GLEW_GET_FUN(__glewMultiTexGenivEXT) +#define glMultiTexImage1DEXT GLEW_GET_FUN(__glewMultiTexImage1DEXT) +#define glMultiTexImage2DEXT GLEW_GET_FUN(__glewMultiTexImage2DEXT) +#define glMultiTexImage3DEXT GLEW_GET_FUN(__glewMultiTexImage3DEXT) +#define glMultiTexParameterIivEXT GLEW_GET_FUN(__glewMultiTexParameterIivEXT) +#define glMultiTexParameterIuivEXT GLEW_GET_FUN(__glewMultiTexParameterIuivEXT) +#define glMultiTexParameterfEXT GLEW_GET_FUN(__glewMultiTexParameterfEXT) +#define glMultiTexParameterfvEXT GLEW_GET_FUN(__glewMultiTexParameterfvEXT) +#define glMultiTexParameteriEXT GLEW_GET_FUN(__glewMultiTexParameteriEXT) +#define glMultiTexParameterivEXT GLEW_GET_FUN(__glewMultiTexParameterivEXT) +#define glMultiTexRenderbufferEXT GLEW_GET_FUN(__glewMultiTexRenderbufferEXT) +#define glMultiTexSubImage1DEXT GLEW_GET_FUN(__glewMultiTexSubImage1DEXT) +#define glMultiTexSubImage2DEXT GLEW_GET_FUN(__glewMultiTexSubImage2DEXT) +#define glMultiTexSubImage3DEXT GLEW_GET_FUN(__glewMultiTexSubImage3DEXT) +#define glNamedBufferDataEXT GLEW_GET_FUN(__glewNamedBufferDataEXT) +#define glNamedBufferSubDataEXT GLEW_GET_FUN(__glewNamedBufferSubDataEXT) +#define glNamedCopyBufferSubDataEXT GLEW_GET_FUN(__glewNamedCopyBufferSubDataEXT) +#define glNamedFramebufferRenderbufferEXT GLEW_GET_FUN(__glewNamedFramebufferRenderbufferEXT) +#define glNamedFramebufferTexture1DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture1DEXT) +#define glNamedFramebufferTexture2DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture2DEXT) +#define glNamedFramebufferTexture3DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture3DEXT) +#define glNamedFramebufferTextureEXT GLEW_GET_FUN(__glewNamedFramebufferTextureEXT) +#define glNamedFramebufferTextureFaceEXT GLEW_GET_FUN(__glewNamedFramebufferTextureFaceEXT) +#define glNamedFramebufferTextureLayerEXT GLEW_GET_FUN(__glewNamedFramebufferTextureLayerEXT) +#define glNamedProgramLocalParameter4dEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dEXT) +#define glNamedProgramLocalParameter4dvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dvEXT) +#define glNamedProgramLocalParameter4fEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fEXT) +#define glNamedProgramLocalParameter4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fvEXT) +#define glNamedProgramLocalParameterI4iEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4iEXT) +#define glNamedProgramLocalParameterI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4ivEXT) +#define glNamedProgramLocalParameterI4uiEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uiEXT) +#define glNamedProgramLocalParameterI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uivEXT) +#define glNamedProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameters4fvEXT) +#define glNamedProgramLocalParametersI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4ivEXT) +#define glNamedProgramLocalParametersI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4uivEXT) +#define glNamedProgramStringEXT GLEW_GET_FUN(__glewNamedProgramStringEXT) +#define glNamedRenderbufferStorageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageEXT) +#define glNamedRenderbufferStorageMultisampleCoverageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleCoverageEXT) +#define glNamedRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleEXT) +#define glProgramUniform1fEXT GLEW_GET_FUN(__glewProgramUniform1fEXT) +#define glProgramUniform1fvEXT GLEW_GET_FUN(__glewProgramUniform1fvEXT) +#define glProgramUniform1iEXT GLEW_GET_FUN(__glewProgramUniform1iEXT) +#define glProgramUniform1ivEXT GLEW_GET_FUN(__glewProgramUniform1ivEXT) +#define glProgramUniform1uiEXT GLEW_GET_FUN(__glewProgramUniform1uiEXT) +#define glProgramUniform1uivEXT GLEW_GET_FUN(__glewProgramUniform1uivEXT) +#define glProgramUniform2fEXT GLEW_GET_FUN(__glewProgramUniform2fEXT) +#define glProgramUniform2fvEXT GLEW_GET_FUN(__glewProgramUniform2fvEXT) +#define glProgramUniform2iEXT GLEW_GET_FUN(__glewProgramUniform2iEXT) +#define glProgramUniform2ivEXT GLEW_GET_FUN(__glewProgramUniform2ivEXT) +#define glProgramUniform2uiEXT GLEW_GET_FUN(__glewProgramUniform2uiEXT) +#define glProgramUniform2uivEXT GLEW_GET_FUN(__glewProgramUniform2uivEXT) +#define glProgramUniform3fEXT GLEW_GET_FUN(__glewProgramUniform3fEXT) +#define glProgramUniform3fvEXT GLEW_GET_FUN(__glewProgramUniform3fvEXT) +#define glProgramUniform3iEXT GLEW_GET_FUN(__glewProgramUniform3iEXT) +#define glProgramUniform3ivEXT GLEW_GET_FUN(__glewProgramUniform3ivEXT) +#define glProgramUniform3uiEXT GLEW_GET_FUN(__glewProgramUniform3uiEXT) +#define glProgramUniform3uivEXT GLEW_GET_FUN(__glewProgramUniform3uivEXT) +#define glProgramUniform4fEXT GLEW_GET_FUN(__glewProgramUniform4fEXT) +#define glProgramUniform4fvEXT GLEW_GET_FUN(__glewProgramUniform4fvEXT) +#define glProgramUniform4iEXT GLEW_GET_FUN(__glewProgramUniform4iEXT) +#define glProgramUniform4ivEXT GLEW_GET_FUN(__glewProgramUniform4ivEXT) +#define glProgramUniform4uiEXT GLEW_GET_FUN(__glewProgramUniform4uiEXT) +#define glProgramUniform4uivEXT GLEW_GET_FUN(__glewProgramUniform4uivEXT) +#define glProgramUniformMatrix2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2fvEXT) +#define glProgramUniformMatrix2x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3fvEXT) +#define glProgramUniformMatrix2x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4fvEXT) +#define glProgramUniformMatrix3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3fvEXT) +#define glProgramUniformMatrix3x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2fvEXT) +#define glProgramUniformMatrix3x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4fvEXT) +#define glProgramUniformMatrix4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4fvEXT) +#define glProgramUniformMatrix4x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2fvEXT) +#define glProgramUniformMatrix4x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3fvEXT) +#define glPushClientAttribDefaultEXT GLEW_GET_FUN(__glewPushClientAttribDefaultEXT) +#define glTextureBufferEXT GLEW_GET_FUN(__glewTextureBufferEXT) +#define glTextureImage1DEXT GLEW_GET_FUN(__glewTextureImage1DEXT) +#define glTextureImage2DEXT GLEW_GET_FUN(__glewTextureImage2DEXT) +#define glTextureImage3DEXT GLEW_GET_FUN(__glewTextureImage3DEXT) +#define glTextureParameterIivEXT GLEW_GET_FUN(__glewTextureParameterIivEXT) +#define glTextureParameterIuivEXT GLEW_GET_FUN(__glewTextureParameterIuivEXT) +#define glTextureParameterfEXT GLEW_GET_FUN(__glewTextureParameterfEXT) +#define glTextureParameterfvEXT GLEW_GET_FUN(__glewTextureParameterfvEXT) +#define glTextureParameteriEXT GLEW_GET_FUN(__glewTextureParameteriEXT) +#define glTextureParameterivEXT GLEW_GET_FUN(__glewTextureParameterivEXT) +#define glTextureRenderbufferEXT GLEW_GET_FUN(__glewTextureRenderbufferEXT) +#define glTextureSubImage1DEXT GLEW_GET_FUN(__glewTextureSubImage1DEXT) +#define glTextureSubImage2DEXT GLEW_GET_FUN(__glewTextureSubImage2DEXT) +#define glTextureSubImage3DEXT GLEW_GET_FUN(__glewTextureSubImage3DEXT) +#define glUnmapNamedBufferEXT GLEW_GET_FUN(__glewUnmapNamedBufferEXT) +#define glVertexArrayColorOffsetEXT GLEW_GET_FUN(__glewVertexArrayColorOffsetEXT) +#define glVertexArrayEdgeFlagOffsetEXT GLEW_GET_FUN(__glewVertexArrayEdgeFlagOffsetEXT) +#define glVertexArrayFogCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayFogCoordOffsetEXT) +#define glVertexArrayIndexOffsetEXT GLEW_GET_FUN(__glewVertexArrayIndexOffsetEXT) +#define glVertexArrayMultiTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayMultiTexCoordOffsetEXT) +#define glVertexArrayNormalOffsetEXT GLEW_GET_FUN(__glewVertexArrayNormalOffsetEXT) +#define glVertexArraySecondaryColorOffsetEXT GLEW_GET_FUN(__glewVertexArraySecondaryColorOffsetEXT) +#define glVertexArrayTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayTexCoordOffsetEXT) +#define glVertexArrayVertexAttribIOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIOffsetEXT) +#define glVertexArrayVertexAttribOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribOffsetEXT) +#define glVertexArrayVertexOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexOffsetEXT) + +#define GLEW_EXT_direct_state_access GLEW_GET_VAR(__GLEW_EXT_direct_state_access) + +#endif /* GL_EXT_direct_state_access */ + +/* -------------------------- GL_EXT_draw_buffers2 ------------------------- */ + +#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); + +#define glColorMaskIndexedEXT GLEW_GET_FUN(__glewColorMaskIndexedEXT) +#define glDisableIndexedEXT GLEW_GET_FUN(__glewDisableIndexedEXT) +#define glEnableIndexedEXT GLEW_GET_FUN(__glewEnableIndexedEXT) +#define glGetBooleanIndexedvEXT GLEW_GET_FUN(__glewGetBooleanIndexedvEXT) +#define glGetIntegerIndexedvEXT GLEW_GET_FUN(__glewGetIntegerIndexedvEXT) +#define glIsEnabledIndexedEXT GLEW_GET_FUN(__glewIsEnabledIndexedEXT) + +#define GLEW_EXT_draw_buffers2 GLEW_GET_VAR(__GLEW_EXT_draw_buffers2) + +#endif /* GL_EXT_draw_buffers2 */ + +/* ------------------------- GL_EXT_draw_instanced ------------------------- */ + +#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); + +#define glDrawArraysInstancedEXT GLEW_GET_FUN(__glewDrawArraysInstancedEXT) +#define glDrawElementsInstancedEXT GLEW_GET_FUN(__glewDrawElementsInstancedEXT) + +#define GLEW_EXT_draw_instanced GLEW_GET_VAR(__GLEW_EXT_draw_instanced) + +#endif /* GL_EXT_draw_instanced */ + +/* ----------------------- GL_EXT_draw_range_elements ---------------------- */ + +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 + +#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); + +#define glDrawRangeElementsEXT GLEW_GET_FUN(__glewDrawRangeElementsEXT) + +#define GLEW_EXT_draw_range_elements GLEW_GET_VAR(__GLEW_EXT_draw_range_elements) + +#endif /* GL_EXT_draw_range_elements */ + +/* ---------------------------- GL_EXT_fog_coord --------------------------- */ + +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 + +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#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); + +#define glFogCoordPointerEXT GLEW_GET_FUN(__glewFogCoordPointerEXT) +#define glFogCoorddEXT GLEW_GET_FUN(__glewFogCoorddEXT) +#define glFogCoorddvEXT GLEW_GET_FUN(__glewFogCoorddvEXT) +#define glFogCoordfEXT GLEW_GET_FUN(__glewFogCoordfEXT) +#define glFogCoordfvEXT GLEW_GET_FUN(__glewFogCoordfvEXT) + +#define GLEW_EXT_fog_coord GLEW_GET_VAR(__GLEW_EXT_fog_coord) + +#endif /* GL_EXT_fog_coord */ + +/* ------------------------ GL_EXT_fragment_lighting ----------------------- */ + +#ifndef GL_EXT_fragment_lighting +#define GL_EXT_fragment_lighting 1 + +#define GL_FRAGMENT_LIGHTING_EXT 0x8400 +#define GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401 +#define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402 +#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403 +#define GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404 +#define GL_MAX_ACTIVE_LIGHTS_EXT 0x8405 +#define GL_CURRENT_RASTER_NORMAL_EXT 0x8406 +#define GL_LIGHT_ENV_MODE_EXT 0x8407 +#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408 +#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409 +#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A +#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B +#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); + +#define glFragmentColorMaterialEXT GLEW_GET_FUN(__glewFragmentColorMaterialEXT) +#define glFragmentLightModelfEXT GLEW_GET_FUN(__glewFragmentLightModelfEXT) +#define glFragmentLightModelfvEXT GLEW_GET_FUN(__glewFragmentLightModelfvEXT) +#define glFragmentLightModeliEXT GLEW_GET_FUN(__glewFragmentLightModeliEXT) +#define glFragmentLightModelivEXT GLEW_GET_FUN(__glewFragmentLightModelivEXT) +#define glFragmentLightfEXT GLEW_GET_FUN(__glewFragmentLightfEXT) +#define glFragmentLightfvEXT GLEW_GET_FUN(__glewFragmentLightfvEXT) +#define glFragmentLightiEXT GLEW_GET_FUN(__glewFragmentLightiEXT) +#define glFragmentLightivEXT GLEW_GET_FUN(__glewFragmentLightivEXT) +#define glFragmentMaterialfEXT GLEW_GET_FUN(__glewFragmentMaterialfEXT) +#define glFragmentMaterialfvEXT GLEW_GET_FUN(__glewFragmentMaterialfvEXT) +#define glFragmentMaterialiEXT GLEW_GET_FUN(__glewFragmentMaterialiEXT) +#define glFragmentMaterialivEXT GLEW_GET_FUN(__glewFragmentMaterialivEXT) +#define glGetFragmentLightfvEXT GLEW_GET_FUN(__glewGetFragmentLightfvEXT) +#define glGetFragmentLightivEXT GLEW_GET_FUN(__glewGetFragmentLightivEXT) +#define glGetFragmentMaterialfvEXT GLEW_GET_FUN(__glewGetFragmentMaterialfvEXT) +#define glGetFragmentMaterialivEXT GLEW_GET_FUN(__glewGetFragmentMaterialivEXT) +#define glLightEnviEXT GLEW_GET_FUN(__glewLightEnviEXT) + +#define GLEW_EXT_fragment_lighting GLEW_GET_VAR(__GLEW_EXT_fragment_lighting) + +#endif /* GL_EXT_fragment_lighting */ + +/* ------------------------ GL_EXT_framebuffer_blit ------------------------ */ + +#ifndef GL_EXT_framebuffer_blit +#define GL_EXT_framebuffer_blit 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#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); + +#define glBlitFramebufferEXT GLEW_GET_FUN(__glewBlitFramebufferEXT) + +#define GLEW_EXT_framebuffer_blit GLEW_GET_VAR(__GLEW_EXT_framebuffer_blit) + +#endif /* GL_EXT_framebuffer_blit */ + +/* --------------------- GL_EXT_framebuffer_multisample -------------------- */ + +#ifndef GL_EXT_framebuffer_multisample +#define GL_EXT_framebuffer_multisample 1 + +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#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); + +#define glRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewRenderbufferStorageMultisampleEXT) + +#define GLEW_EXT_framebuffer_multisample GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample) + +#endif /* GL_EXT_framebuffer_multisample */ + +/* --------------- GL_EXT_framebuffer_multisample_blit_scaled -------------- */ + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_EXT_framebuffer_multisample_blit_scaled 1 + +#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA +#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB + +#define GLEW_EXT_framebuffer_multisample_blit_scaled GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample_blit_scaled) + +#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ + +/* ----------------------- GL_EXT_framebuffer_object ----------------------- */ + +#ifndef GL_EXT_framebuffer_object +#define GL_EXT_framebuffer_object 1 + +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 +#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 +#define GL_FRAMEBUFFER_EXT 0x8D40 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8_EXT 0x8D48 +#define GL_STENCIL_INDEX16_EXT 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#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); + +#define glBindFramebufferEXT GLEW_GET_FUN(__glewBindFramebufferEXT) +#define glBindRenderbufferEXT GLEW_GET_FUN(__glewBindRenderbufferEXT) +#define glCheckFramebufferStatusEXT GLEW_GET_FUN(__glewCheckFramebufferStatusEXT) +#define glDeleteFramebuffersEXT GLEW_GET_FUN(__glewDeleteFramebuffersEXT) +#define glDeleteRenderbuffersEXT GLEW_GET_FUN(__glewDeleteRenderbuffersEXT) +#define glFramebufferRenderbufferEXT GLEW_GET_FUN(__glewFramebufferRenderbufferEXT) +#define glFramebufferTexture1DEXT GLEW_GET_FUN(__glewFramebufferTexture1DEXT) +#define glFramebufferTexture2DEXT GLEW_GET_FUN(__glewFramebufferTexture2DEXT) +#define glFramebufferTexture3DEXT GLEW_GET_FUN(__glewFramebufferTexture3DEXT) +#define glGenFramebuffersEXT GLEW_GET_FUN(__glewGenFramebuffersEXT) +#define glGenRenderbuffersEXT GLEW_GET_FUN(__glewGenRenderbuffersEXT) +#define glGenerateMipmapEXT GLEW_GET_FUN(__glewGenerateMipmapEXT) +#define glGetFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivEXT) +#define glGetRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetRenderbufferParameterivEXT) +#define glIsFramebufferEXT GLEW_GET_FUN(__glewIsFramebufferEXT) +#define glIsRenderbufferEXT GLEW_GET_FUN(__glewIsRenderbufferEXT) +#define glRenderbufferStorageEXT GLEW_GET_FUN(__glewRenderbufferStorageEXT) + +#define GLEW_EXT_framebuffer_object GLEW_GET_VAR(__GLEW_EXT_framebuffer_object) + +#endif /* GL_EXT_framebuffer_object */ + +/* ------------------------ GL_EXT_framebuffer_sRGB ------------------------ */ + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 + +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA + +#define GLEW_EXT_framebuffer_sRGB GLEW_GET_VAR(__GLEW_EXT_framebuffer_sRGB) + +#endif /* GL_EXT_framebuffer_sRGB */ + +/* ------------------------ GL_EXT_geometry_shader4 ------------------------ */ + +#ifndef GL_EXT_geometry_shader4 +#define GL_EXT_geometry_shader4 1 + +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#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); + +#define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT) +#define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT) +#define glProgramParameteriEXT GLEW_GET_FUN(__glewProgramParameteriEXT) + +#define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(__GLEW_EXT_geometry_shader4) + +#endif /* GL_EXT_geometry_shader4 */ + +/* --------------------- GL_EXT_gpu_program_parameters --------------------- */ + +#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); + +#define glProgramEnvParameters4fvEXT GLEW_GET_FUN(__glewProgramEnvParameters4fvEXT) +#define glProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewProgramLocalParameters4fvEXT) + +#define GLEW_EXT_gpu_program_parameters GLEW_GET_VAR(__GLEW_EXT_gpu_program_parameters) + +#endif /* GL_EXT_gpu_program_parameters */ + +/* --------------------------- GL_EXT_gpu_shader4 -------------------------- */ + +#ifndef GL_EXT_gpu_shader4 +#define GL_EXT_gpu_shader4 1 + +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#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); + +#define glBindFragDataLocationEXT GLEW_GET_FUN(__glewBindFragDataLocationEXT) +#define glGetFragDataLocationEXT GLEW_GET_FUN(__glewGetFragDataLocationEXT) +#define glGetUniformuivEXT GLEW_GET_FUN(__glewGetUniformuivEXT) +#define glGetVertexAttribIivEXT GLEW_GET_FUN(__glewGetVertexAttribIivEXT) +#define glGetVertexAttribIuivEXT GLEW_GET_FUN(__glewGetVertexAttribIuivEXT) +#define glUniform1uiEXT GLEW_GET_FUN(__glewUniform1uiEXT) +#define glUniform1uivEXT GLEW_GET_FUN(__glewUniform1uivEXT) +#define glUniform2uiEXT GLEW_GET_FUN(__glewUniform2uiEXT) +#define glUniform2uivEXT GLEW_GET_FUN(__glewUniform2uivEXT) +#define glUniform3uiEXT GLEW_GET_FUN(__glewUniform3uiEXT) +#define glUniform3uivEXT GLEW_GET_FUN(__glewUniform3uivEXT) +#define glUniform4uiEXT GLEW_GET_FUN(__glewUniform4uiEXT) +#define glUniform4uivEXT GLEW_GET_FUN(__glewUniform4uivEXT) +#define glVertexAttribI1iEXT GLEW_GET_FUN(__glewVertexAttribI1iEXT) +#define glVertexAttribI1ivEXT GLEW_GET_FUN(__glewVertexAttribI1ivEXT) +#define glVertexAttribI1uiEXT GLEW_GET_FUN(__glewVertexAttribI1uiEXT) +#define glVertexAttribI1uivEXT GLEW_GET_FUN(__glewVertexAttribI1uivEXT) +#define glVertexAttribI2iEXT GLEW_GET_FUN(__glewVertexAttribI2iEXT) +#define glVertexAttribI2ivEXT GLEW_GET_FUN(__glewVertexAttribI2ivEXT) +#define glVertexAttribI2uiEXT GLEW_GET_FUN(__glewVertexAttribI2uiEXT) +#define glVertexAttribI2uivEXT GLEW_GET_FUN(__glewVertexAttribI2uivEXT) +#define glVertexAttribI3iEXT GLEW_GET_FUN(__glewVertexAttribI3iEXT) +#define glVertexAttribI3ivEXT GLEW_GET_FUN(__glewVertexAttribI3ivEXT) +#define glVertexAttribI3uiEXT GLEW_GET_FUN(__glewVertexAttribI3uiEXT) +#define glVertexAttribI3uivEXT GLEW_GET_FUN(__glewVertexAttribI3uivEXT) +#define glVertexAttribI4bvEXT GLEW_GET_FUN(__glewVertexAttribI4bvEXT) +#define glVertexAttribI4iEXT GLEW_GET_FUN(__glewVertexAttribI4iEXT) +#define glVertexAttribI4ivEXT GLEW_GET_FUN(__glewVertexAttribI4ivEXT) +#define glVertexAttribI4svEXT GLEW_GET_FUN(__glewVertexAttribI4svEXT) +#define glVertexAttribI4ubvEXT GLEW_GET_FUN(__glewVertexAttribI4ubvEXT) +#define glVertexAttribI4uiEXT GLEW_GET_FUN(__glewVertexAttribI4uiEXT) +#define glVertexAttribI4uivEXT GLEW_GET_FUN(__glewVertexAttribI4uivEXT) +#define glVertexAttribI4usvEXT GLEW_GET_FUN(__glewVertexAttribI4usvEXT) +#define glVertexAttribIPointerEXT GLEW_GET_FUN(__glewVertexAttribIPointerEXT) + +#define GLEW_EXT_gpu_shader4 GLEW_GET_VAR(__GLEW_EXT_gpu_shader4) + +#endif /* GL_EXT_gpu_shader4 */ + +/* ---------------------------- GL_EXT_histogram --------------------------- */ + +#ifndef GL_EXT_histogram +#define GL_EXT_histogram 1 + +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 + +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *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, GLvoid *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) +#define glGetHistogramParameterivEXT GLEW_GET_FUN(__glewGetHistogramParameterivEXT) +#define glGetMinmaxEXT GLEW_GET_FUN(__glewGetMinmaxEXT) +#define glGetMinmaxParameterfvEXT GLEW_GET_FUN(__glewGetMinmaxParameterfvEXT) +#define glGetMinmaxParameterivEXT GLEW_GET_FUN(__glewGetMinmaxParameterivEXT) +#define glHistogramEXT GLEW_GET_FUN(__glewHistogramEXT) +#define glMinmaxEXT GLEW_GET_FUN(__glewMinmaxEXT) +#define glResetHistogramEXT GLEW_GET_FUN(__glewResetHistogramEXT) +#define glResetMinmaxEXT GLEW_GET_FUN(__glewResetMinmaxEXT) + +#define GLEW_EXT_histogram GLEW_GET_VAR(__GLEW_EXT_histogram) + +#endif /* GL_EXT_histogram */ + +/* ----------------------- GL_EXT_index_array_formats ---------------------- */ + +#ifndef GL_EXT_index_array_formats +#define GL_EXT_index_array_formats 1 + +#define GLEW_EXT_index_array_formats GLEW_GET_VAR(__GLEW_EXT_index_array_formats) + +#endif /* GL_EXT_index_array_formats */ + +/* --------------------------- GL_EXT_index_func --------------------------- */ + +#ifndef GL_EXT_index_func +#define GL_EXT_index_func 1 + +typedef void (GLAPIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref); + +#define glIndexFuncEXT GLEW_GET_FUN(__glewIndexFuncEXT) + +#define GLEW_EXT_index_func GLEW_GET_VAR(__GLEW_EXT_index_func) + +#endif /* GL_EXT_index_func */ + +/* ------------------------- GL_EXT_index_material ------------------------- */ + +#ifndef GL_EXT_index_material +#define GL_EXT_index_material 1 + +typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); + +#define glIndexMaterialEXT GLEW_GET_FUN(__glewIndexMaterialEXT) + +#define GLEW_EXT_index_material GLEW_GET_VAR(__GLEW_EXT_index_material) + +#endif /* GL_EXT_index_material */ + +/* -------------------------- GL_EXT_index_texture ------------------------- */ + +#ifndef GL_EXT_index_texture +#define GL_EXT_index_texture 1 + +#define GLEW_EXT_index_texture GLEW_GET_VAR(__GLEW_EXT_index_texture) + +#endif /* GL_EXT_index_texture */ + +/* -------------------------- GL_EXT_light_texture ------------------------- */ + +#ifndef GL_EXT_light_texture +#define GL_EXT_light_texture 1 + +#define GL_FRAGMENT_MATERIAL_EXT 0x8349 +#define GL_FRAGMENT_NORMAL_EXT 0x834A +#define GL_FRAGMENT_COLOR_EXT 0x834C +#define GL_ATTENUATION_EXT 0x834D +#define GL_SHADOW_ATTENUATION_EXT 0x834E +#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F +#define GL_TEXTURE_LIGHT_EXT 0x8350 +#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); + +#define glApplyTextureEXT GLEW_GET_FUN(__glewApplyTextureEXT) +#define glTextureLightEXT GLEW_GET_FUN(__glewTextureLightEXT) +#define glTextureMaterialEXT GLEW_GET_FUN(__glewTextureMaterialEXT) + +#define GLEW_EXT_light_texture GLEW_GET_VAR(__GLEW_EXT_light_texture) + +#endif /* GL_EXT_light_texture */ + +/* ------------------------- GL_EXT_misc_attribute ------------------------- */ + +#ifndef GL_EXT_misc_attribute +#define GL_EXT_misc_attribute 1 + +#define GLEW_EXT_misc_attribute GLEW_GET_VAR(__GLEW_EXT_misc_attribute) + +#endif /* GL_EXT_misc_attribute */ + +/* ------------------------ GL_EXT_multi_draw_arrays ----------------------- */ + +#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 * const *indices, GLsizei primcount); + +#define glMultiDrawArraysEXT GLEW_GET_FUN(__glewMultiDrawArraysEXT) +#define glMultiDrawElementsEXT GLEW_GET_FUN(__glewMultiDrawElementsEXT) + +#define GLEW_EXT_multi_draw_arrays GLEW_GET_VAR(__GLEW_EXT_multi_draw_arrays) + +#endif /* GL_EXT_multi_draw_arrays */ + +/* --------------------------- GL_EXT_multisample -------------------------- */ + +#ifndef GL_EXT_multisample +#define GL_EXT_multisample 1 + +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F +#define GL_SAMPLE_MASK_EXT 0x80A0 +#define GL_1PASS_EXT 0x80A1 +#define GL_2PASS_0_EXT 0x80A2 +#define GL_2PASS_1_EXT 0x80A3 +#define GL_4PASS_0_EXT 0x80A4 +#define GL_4PASS_1_EXT 0x80A5 +#define GL_4PASS_2_EXT 0x80A6 +#define GL_4PASS_3_EXT 0x80A7 +#define GL_SAMPLE_BUFFERS_EXT 0x80A8 +#define GL_SAMPLES_EXT 0x80A9 +#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA +#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB +#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); + +#define glSampleMaskEXT GLEW_GET_FUN(__glewSampleMaskEXT) +#define glSamplePatternEXT GLEW_GET_FUN(__glewSamplePatternEXT) + +#define GLEW_EXT_multisample GLEW_GET_VAR(__GLEW_EXT_multisample) + +#endif /* GL_EXT_multisample */ + +/* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */ + +#ifndef GL_EXT_packed_depth_stencil +#define GL_EXT_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 + +#define GLEW_EXT_packed_depth_stencil GLEW_GET_VAR(__GLEW_EXT_packed_depth_stencil) + +#endif /* GL_EXT_packed_depth_stencil */ + +/* -------------------------- GL_EXT_packed_float -------------------------- */ + +#ifndef GL_EXT_packed_float +#define GL_EXT_packed_float 1 + +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C + +#define GLEW_EXT_packed_float GLEW_GET_VAR(__GLEW_EXT_packed_float) + +#endif /* GL_EXT_packed_float */ + +/* -------------------------- GL_EXT_packed_pixels ------------------------- */ + +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 + +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 + +#define GLEW_EXT_packed_pixels GLEW_GET_VAR(__GLEW_EXT_packed_pixels) + +#endif /* GL_EXT_packed_pixels */ + +/* ------------------------ GL_EXT_paletted_texture ------------------------ */ + +#ifndef GL_EXT_paletted_texture +#define GL_EXT_paletted_texture 1 + +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8 +#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#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 GLvoid *data); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *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) +#define glGetColorTableParameterfvEXT GLEW_GET_FUN(__glewGetColorTableParameterfvEXT) +#define glGetColorTableParameterivEXT GLEW_GET_FUN(__glewGetColorTableParameterivEXT) + +#define GLEW_EXT_paletted_texture GLEW_GET_VAR(__GLEW_EXT_paletted_texture) + +#endif /* GL_EXT_paletted_texture */ + +/* ----------------------- GL_EXT_pixel_buffer_object ---------------------- */ + +#ifndef GL_EXT_pixel_buffer_object +#define GL_EXT_pixel_buffer_object 1 + +#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF + +#define GLEW_EXT_pixel_buffer_object GLEW_GET_VAR(__GLEW_EXT_pixel_buffer_object) + +#endif /* GL_EXT_pixel_buffer_object */ + +/* ------------------------- GL_EXT_pixel_transform ------------------------ */ + +#ifndef GL_EXT_pixel_transform +#define GL_EXT_pixel_transform 1 + +#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 +#define GL_PIXEL_MAG_FILTER_EXT 0x8331 +#define GL_PIXEL_MIN_FILTER_EXT 0x8332 +#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 +#define GL_CUBIC_EXT 0x8334 +#define GL_AVERAGE_EXT 0x8335 +#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 +#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); + +#define glGetPixelTransformParameterfvEXT GLEW_GET_FUN(__glewGetPixelTransformParameterfvEXT) +#define glGetPixelTransformParameterivEXT GLEW_GET_FUN(__glewGetPixelTransformParameterivEXT) +#define glPixelTransformParameterfEXT GLEW_GET_FUN(__glewPixelTransformParameterfEXT) +#define glPixelTransformParameterfvEXT GLEW_GET_FUN(__glewPixelTransformParameterfvEXT) +#define glPixelTransformParameteriEXT GLEW_GET_FUN(__glewPixelTransformParameteriEXT) +#define glPixelTransformParameterivEXT GLEW_GET_FUN(__glewPixelTransformParameterivEXT) + +#define GLEW_EXT_pixel_transform GLEW_GET_VAR(__GLEW_EXT_pixel_transform) + +#endif /* GL_EXT_pixel_transform */ + +/* ------------------- GL_EXT_pixel_transform_color_table ------------------ */ + +#ifndef GL_EXT_pixel_transform_color_table +#define GL_EXT_pixel_transform_color_table 1 + +#define GLEW_EXT_pixel_transform_color_table GLEW_GET_VAR(__GLEW_EXT_pixel_transform_color_table) + +#endif /* GL_EXT_pixel_transform_color_table */ + +/* ------------------------ GL_EXT_point_parameters ------------------------ */ + +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 + +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#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); + +#define glPointParameterfEXT GLEW_GET_FUN(__glewPointParameterfEXT) +#define glPointParameterfvEXT GLEW_GET_FUN(__glewPointParameterfvEXT) + +#define GLEW_EXT_point_parameters GLEW_GET_VAR(__GLEW_EXT_point_parameters) + +#endif /* GL_EXT_point_parameters */ + +/* ------------------------- GL_EXT_polygon_offset ------------------------- */ + +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 + +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 + +typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); + +#define glPolygonOffsetEXT GLEW_GET_FUN(__glewPolygonOffsetEXT) + +#define GLEW_EXT_polygon_offset GLEW_GET_VAR(__GLEW_EXT_polygon_offset) + +#endif /* GL_EXT_polygon_offset */ + +/* ------------------------ GL_EXT_provoking_vertex ------------------------ */ + +#ifndef GL_EXT_provoking_vertex +#define GL_EXT_provoking_vertex 1 + +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_PROVOKING_VERTEX_EXT 0x8E4F + +typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); + +#define glProvokingVertexEXT GLEW_GET_FUN(__glewProvokingVertexEXT) + +#define GLEW_EXT_provoking_vertex GLEW_GET_VAR(__GLEW_EXT_provoking_vertex) + +#endif /* GL_EXT_provoking_vertex */ + +/* ------------------------- GL_EXT_rescale_normal ------------------------- */ + +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 + +#define GL_RESCALE_NORMAL_EXT 0x803A + +#define GLEW_EXT_rescale_normal GLEW_GET_VAR(__GLEW_EXT_rescale_normal) + +#endif /* GL_EXT_rescale_normal */ + +/* -------------------------- GL_EXT_scene_marker -------------------------- */ + +#ifndef GL_EXT_scene_marker +#define GL_EXT_scene_marker 1 + +typedef void (GLAPIENTRY * PFNGLBEGINSCENEEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLENDSCENEEXTPROC) (void); + +#define glBeginSceneEXT GLEW_GET_FUN(__glewBeginSceneEXT) +#define glEndSceneEXT GLEW_GET_FUN(__glewEndSceneEXT) + +#define GLEW_EXT_scene_marker GLEW_GET_VAR(__GLEW_EXT_scene_marker) + +#endif /* GL_EXT_scene_marker */ + +/* ------------------------- GL_EXT_secondary_color ------------------------ */ + +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 + +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#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); + +#define glSecondaryColor3bEXT GLEW_GET_FUN(__glewSecondaryColor3bEXT) +#define glSecondaryColor3bvEXT GLEW_GET_FUN(__glewSecondaryColor3bvEXT) +#define glSecondaryColor3dEXT GLEW_GET_FUN(__glewSecondaryColor3dEXT) +#define glSecondaryColor3dvEXT GLEW_GET_FUN(__glewSecondaryColor3dvEXT) +#define glSecondaryColor3fEXT GLEW_GET_FUN(__glewSecondaryColor3fEXT) +#define glSecondaryColor3fvEXT GLEW_GET_FUN(__glewSecondaryColor3fvEXT) +#define glSecondaryColor3iEXT GLEW_GET_FUN(__glewSecondaryColor3iEXT) +#define glSecondaryColor3ivEXT GLEW_GET_FUN(__glewSecondaryColor3ivEXT) +#define glSecondaryColor3sEXT GLEW_GET_FUN(__glewSecondaryColor3sEXT) +#define glSecondaryColor3svEXT GLEW_GET_FUN(__glewSecondaryColor3svEXT) +#define glSecondaryColor3ubEXT GLEW_GET_FUN(__glewSecondaryColor3ubEXT) +#define glSecondaryColor3ubvEXT GLEW_GET_FUN(__glewSecondaryColor3ubvEXT) +#define glSecondaryColor3uiEXT GLEW_GET_FUN(__glewSecondaryColor3uiEXT) +#define glSecondaryColor3uivEXT GLEW_GET_FUN(__glewSecondaryColor3uivEXT) +#define glSecondaryColor3usEXT GLEW_GET_FUN(__glewSecondaryColor3usEXT) +#define glSecondaryColor3usvEXT GLEW_GET_FUN(__glewSecondaryColor3usvEXT) +#define glSecondaryColorPointerEXT GLEW_GET_FUN(__glewSecondaryColorPointerEXT) + +#define GLEW_EXT_secondary_color GLEW_GET_VAR(__GLEW_EXT_secondary_color) + +#endif /* GL_EXT_secondary_color */ + +/* --------------------- GL_EXT_separate_shader_objects -------------------- */ + +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 + +#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); + +#define glActiveProgramEXT GLEW_GET_FUN(__glewActiveProgramEXT) +#define glCreateShaderProgramEXT GLEW_GET_FUN(__glewCreateShaderProgramEXT) +#define glUseShaderProgramEXT GLEW_GET_FUN(__glewUseShaderProgramEXT) + +#define GLEW_EXT_separate_shader_objects GLEW_GET_VAR(__GLEW_EXT_separate_shader_objects) + +#endif /* GL_EXT_separate_shader_objects */ + +/* --------------------- GL_EXT_separate_specular_color -------------------- */ + +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 + +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA + +#define GLEW_EXT_separate_specular_color GLEW_GET_VAR(__GLEW_EXT_separate_specular_color) + +#endif /* GL_EXT_separate_specular_color */ + +/* --------------------- GL_EXT_shader_image_load_store -------------------- */ + +#ifndef GL_EXT_shader_image_load_store +#define GL_EXT_shader_image_load_store 1 + +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 +#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 +#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 +#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 +#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 +#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 +#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 +#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 +#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 +#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 +#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 +#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A +#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B +#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C +#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D +#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E +#define GL_IMAGE_1D_EXT 0x904C +#define GL_IMAGE_2D_EXT 0x904D +#define GL_IMAGE_3D_EXT 0x904E +#define GL_IMAGE_2D_RECT_EXT 0x904F +#define GL_IMAGE_CUBE_EXT 0x9050 +#define GL_IMAGE_BUFFER_EXT 0x9051 +#define GL_IMAGE_1D_ARRAY_EXT 0x9052 +#define GL_IMAGE_2D_ARRAY_EXT 0x9053 +#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 +#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 +#define GL_INT_IMAGE_1D_EXT 0x9057 +#define GL_INT_IMAGE_2D_EXT 0x9058 +#define GL_INT_IMAGE_3D_EXT 0x9059 +#define GL_INT_IMAGE_2D_RECT_EXT 0x905A +#define GL_INT_IMAGE_CUBE_EXT 0x905B +#define GL_INT_IMAGE_BUFFER_EXT 0x905C +#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D +#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F +#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 +#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 +#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 +#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 +#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 +#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C +#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D +#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); + +#define glBindImageTextureEXT GLEW_GET_FUN(__glewBindImageTextureEXT) +#define glMemoryBarrierEXT GLEW_GET_FUN(__glewMemoryBarrierEXT) + +#define GLEW_EXT_shader_image_load_store GLEW_GET_VAR(__GLEW_EXT_shader_image_load_store) + +#endif /* GL_EXT_shader_image_load_store */ + +/* -------------------------- GL_EXT_shadow_funcs -------------------------- */ + +#ifndef GL_EXT_shadow_funcs +#define GL_EXT_shadow_funcs 1 + +#define GLEW_EXT_shadow_funcs GLEW_GET_VAR(__GLEW_EXT_shadow_funcs) + +#endif /* GL_EXT_shadow_funcs */ + +/* --------------------- GL_EXT_shared_texture_palette --------------------- */ + +#ifndef GL_EXT_shared_texture_palette +#define GL_EXT_shared_texture_palette 1 + +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB + +#define GLEW_EXT_shared_texture_palette GLEW_GET_VAR(__GLEW_EXT_shared_texture_palette) + +#endif /* GL_EXT_shared_texture_palette */ + +/* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */ + +#ifndef GL_EXT_stencil_clear_tag +#define GL_EXT_stencil_clear_tag 1 + +#define GL_STENCIL_TAG_BITS_EXT 0x88F2 +#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 + +#define GLEW_EXT_stencil_clear_tag GLEW_GET_VAR(__GLEW_EXT_stencil_clear_tag) + +#endif /* GL_EXT_stencil_clear_tag */ + +/* ------------------------ GL_EXT_stencil_two_side ------------------------ */ + +#ifndef GL_EXT_stencil_two_side +#define GL_EXT_stencil_two_side 1 + +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 + +typedef void (GLAPIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); + +#define glActiveStencilFaceEXT GLEW_GET_FUN(__glewActiveStencilFaceEXT) + +#define GLEW_EXT_stencil_two_side GLEW_GET_VAR(__GLEW_EXT_stencil_two_side) + +#endif /* GL_EXT_stencil_two_side */ + +/* -------------------------- GL_EXT_stencil_wrap -------------------------- */ + +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 + +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 + +#define GLEW_EXT_stencil_wrap GLEW_GET_VAR(__GLEW_EXT_stencil_wrap) + +#endif /* GL_EXT_stencil_wrap */ + +/* --------------------------- GL_EXT_subtexture --------------------------- */ + +#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 GLvoid *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *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 GLvoid *pixels); + +#define glTexSubImage1DEXT GLEW_GET_FUN(__glewTexSubImage1DEXT) +#define glTexSubImage2DEXT GLEW_GET_FUN(__glewTexSubImage2DEXT) +#define glTexSubImage3DEXT GLEW_GET_FUN(__glewTexSubImage3DEXT) + +#define GLEW_EXT_subtexture GLEW_GET_VAR(__GLEW_EXT_subtexture) + +#endif /* GL_EXT_subtexture */ + +/* ----------------------------- GL_EXT_texture ---------------------------- */ + +#ifndef GL_EXT_texture +#define GL_EXT_texture 1 + +#define GL_ALPHA4_EXT 0x803B +#define GL_ALPHA8_EXT 0x803C +#define GL_ALPHA12_EXT 0x803D +#define GL_ALPHA16_EXT 0x803E +#define GL_LUMINANCE4_EXT 0x803F +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE12_EXT 0x8041 +#define GL_LUMINANCE16_EXT 0x8042 +#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 +#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 +#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 +#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 +#define GL_INTENSITY_EXT 0x8049 +#define GL_INTENSITY4_EXT 0x804A +#define GL_INTENSITY8_EXT 0x804B +#define GL_INTENSITY12_EXT 0x804C +#define GL_INTENSITY16_EXT 0x804D +#define GL_RGB2_EXT 0x804E +#define GL_RGB4_EXT 0x804F +#define GL_RGB5_EXT 0x8050 +#define GL_RGB8_EXT 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB12_EXT 0x8053 +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA2_EXT 0x8055 +#define GL_RGBA4_EXT 0x8056 +#define GL_RGB5_A1_EXT 0x8057 +#define GL_RGBA8_EXT 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGBA12_EXT 0x805A +#define GL_RGBA16_EXT 0x805B +#define GL_TEXTURE_RED_SIZE_EXT 0x805C +#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D +#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E +#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 +#define GL_REPLACE_EXT 0x8062 +#define GL_PROXY_TEXTURE_1D_EXT 0x8063 +#define GL_PROXY_TEXTURE_2D_EXT 0x8064 + +#define GLEW_EXT_texture GLEW_GET_VAR(__GLEW_EXT_texture) + +#endif /* GL_EXT_texture */ + +/* ---------------------------- GL_EXT_texture3D --------------------------- */ + +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 + +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#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 GLvoid *pixels); + +#define glTexImage3DEXT GLEW_GET_FUN(__glewTexImage3DEXT) + +#define GLEW_EXT_texture3D GLEW_GET_VAR(__GLEW_EXT_texture3D) + +#endif /* GL_EXT_texture3D */ + +/* -------------------------- GL_EXT_texture_array ------------------------- */ + +#ifndef GL_EXT_texture_array +#define GL_EXT_texture_array 1 + +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#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); + +#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT) + +#define GLEW_EXT_texture_array GLEW_GET_VAR(__GLEW_EXT_texture_array) + +#endif /* GL_EXT_texture_array */ + +/* ---------------------- GL_EXT_texture_buffer_object --------------------- */ + +#ifndef GL_EXT_texture_buffer_object +#define GL_EXT_texture_buffer_object 1 + +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#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); + +#define glTexBufferEXT GLEW_GET_FUN(__glewTexBufferEXT) + +#define GLEW_EXT_texture_buffer_object GLEW_GET_VAR(__GLEW_EXT_texture_buffer_object) + +#endif /* GL_EXT_texture_buffer_object */ + +/* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */ + +#ifndef GL_EXT_texture_compression_dxt1 +#define GL_EXT_texture_compression_dxt1 1 + +#define GLEW_EXT_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_EXT_texture_compression_dxt1) + +#endif /* GL_EXT_texture_compression_dxt1 */ + +/* -------------------- GL_EXT_texture_compression_latc -------------------- */ + +#ifndef GL_EXT_texture_compression_latc +#define GL_EXT_texture_compression_latc 1 + +#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 + +#define GLEW_EXT_texture_compression_latc GLEW_GET_VAR(__GLEW_EXT_texture_compression_latc) + +#endif /* GL_EXT_texture_compression_latc */ + +/* -------------------- GL_EXT_texture_compression_rgtc -------------------- */ + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 + +#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC +#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD +#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE + +#define GLEW_EXT_texture_compression_rgtc GLEW_GET_VAR(__GLEW_EXT_texture_compression_rgtc) + +#endif /* GL_EXT_texture_compression_rgtc */ + +/* -------------------- GL_EXT_texture_compression_s3tc -------------------- */ + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 + +#define GLEW_EXT_texture_compression_s3tc GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc) + +#endif /* GL_EXT_texture_compression_s3tc */ + +/* ------------------------ GL_EXT_texture_cube_map ------------------------ */ + +#ifndef GL_EXT_texture_cube_map +#define GL_EXT_texture_cube_map 1 + +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C + +#define GLEW_EXT_texture_cube_map GLEW_GET_VAR(__GLEW_EXT_texture_cube_map) + +#endif /* GL_EXT_texture_cube_map */ + +/* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */ + +#ifndef GL_EXT_texture_edge_clamp +#define GL_EXT_texture_edge_clamp 1 + +#define GL_CLAMP_TO_EDGE_EXT 0x812F + +#define GLEW_EXT_texture_edge_clamp GLEW_GET_VAR(__GLEW_EXT_texture_edge_clamp) + +#endif /* GL_EXT_texture_edge_clamp */ + +/* --------------------------- GL_EXT_texture_env -------------------------- */ + +#ifndef GL_EXT_texture_env +#define GL_EXT_texture_env 1 + +#define GLEW_EXT_texture_env GLEW_GET_VAR(__GLEW_EXT_texture_env) + +#endif /* GL_EXT_texture_env */ + +/* ------------------------- GL_EXT_texture_env_add ------------------------ */ + +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 + +#define GLEW_EXT_texture_env_add GLEW_GET_VAR(__GLEW_EXT_texture_env_add) + +#endif /* GL_EXT_texture_env_add */ + +/* ----------------------- GL_EXT_texture_env_combine ---------------------- */ + +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 + +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A + +#define GLEW_EXT_texture_env_combine GLEW_GET_VAR(__GLEW_EXT_texture_env_combine) + +#endif /* GL_EXT_texture_env_combine */ + +/* ------------------------ GL_EXT_texture_env_dot3 ------------------------ */ + +#ifndef GL_EXT_texture_env_dot3 +#define GL_EXT_texture_env_dot3 1 + +#define GL_DOT3_RGB_EXT 0x8740 +#define GL_DOT3_RGBA_EXT 0x8741 + +#define GLEW_EXT_texture_env_dot3 GLEW_GET_VAR(__GLEW_EXT_texture_env_dot3) + +#endif /* GL_EXT_texture_env_dot3 */ + +/* ------------------- GL_EXT_texture_filter_anisotropic ------------------- */ + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 + +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF + +#define GLEW_EXT_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_EXT_texture_filter_anisotropic) + +#endif /* GL_EXT_texture_filter_anisotropic */ + +/* ------------------------- GL_EXT_texture_integer ------------------------ */ + +#ifndef GL_EXT_texture_integer +#define GL_EXT_texture_integer 1 + +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#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); + +#define glClearColorIiEXT GLEW_GET_FUN(__glewClearColorIiEXT) +#define glClearColorIuiEXT GLEW_GET_FUN(__glewClearColorIuiEXT) +#define glGetTexParameterIivEXT GLEW_GET_FUN(__glewGetTexParameterIivEXT) +#define glGetTexParameterIuivEXT GLEW_GET_FUN(__glewGetTexParameterIuivEXT) +#define glTexParameterIivEXT GLEW_GET_FUN(__glewTexParameterIivEXT) +#define glTexParameterIuivEXT GLEW_GET_FUN(__glewTexParameterIuivEXT) + +#define GLEW_EXT_texture_integer GLEW_GET_VAR(__GLEW_EXT_texture_integer) + +#endif /* GL_EXT_texture_integer */ + +/* ------------------------ GL_EXT_texture_lod_bias ------------------------ */ + +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 + +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 + +#define GLEW_EXT_texture_lod_bias GLEW_GET_VAR(__GLEW_EXT_texture_lod_bias) + +#endif /* GL_EXT_texture_lod_bias */ + +/* ---------------------- GL_EXT_texture_mirror_clamp ---------------------- */ + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 + +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 + +#define GLEW_EXT_texture_mirror_clamp GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp) + +#endif /* GL_EXT_texture_mirror_clamp */ + +/* ------------------------- GL_EXT_texture_object ------------------------- */ + +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 + +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#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); + +#define glAreTexturesResidentEXT GLEW_GET_FUN(__glewAreTexturesResidentEXT) +#define glBindTextureEXT GLEW_GET_FUN(__glewBindTextureEXT) +#define glDeleteTexturesEXT GLEW_GET_FUN(__glewDeleteTexturesEXT) +#define glGenTexturesEXT GLEW_GET_FUN(__glewGenTexturesEXT) +#define glIsTextureEXT GLEW_GET_FUN(__glewIsTextureEXT) +#define glPrioritizeTexturesEXT GLEW_GET_FUN(__glewPrioritizeTexturesEXT) + +#define GLEW_EXT_texture_object GLEW_GET_VAR(__GLEW_EXT_texture_object) + +#endif /* GL_EXT_texture_object */ + +/* --------------------- GL_EXT_texture_perturb_normal --------------------- */ + +#ifndef GL_EXT_texture_perturb_normal +#define GL_EXT_texture_perturb_normal 1 + +#define GL_PERTURB_EXT 0x85AE +#define GL_TEXTURE_NORMAL_EXT 0x85AF + +typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); + +#define glTextureNormalEXT GLEW_GET_FUN(__glewTextureNormalEXT) + +#define GLEW_EXT_texture_perturb_normal GLEW_GET_VAR(__GLEW_EXT_texture_perturb_normal) + +#endif /* GL_EXT_texture_perturb_normal */ + +/* ------------------------ GL_EXT_texture_rectangle ----------------------- */ + +#ifndef GL_EXT_texture_rectangle +#define GL_EXT_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 + +#define GLEW_EXT_texture_rectangle GLEW_GET_VAR(__GLEW_EXT_texture_rectangle) + +#endif /* GL_EXT_texture_rectangle */ + +/* -------------------------- GL_EXT_texture_sRGB -------------------------- */ + +#ifndef GL_EXT_texture_sRGB +#define GL_EXT_texture_sRGB 1 + +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB8_EXT 0x8C41 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 +#define GL_SLUMINANCE_EXT 0x8C46 +#define GL_SLUMINANCE8_EXT 0x8C47 +#define GL_COMPRESSED_SRGB_EXT 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 +#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F + +#define GLEW_EXT_texture_sRGB GLEW_GET_VAR(__GLEW_EXT_texture_sRGB) + +#endif /* GL_EXT_texture_sRGB */ + +/* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */ + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 + +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A + +#define GLEW_EXT_texture_sRGB_decode GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_decode) + +#endif /* GL_EXT_texture_sRGB_decode */ + +/* --------------------- GL_EXT_texture_shared_exponent -------------------- */ + +#ifndef GL_EXT_texture_shared_exponent +#define GL_EXT_texture_shared_exponent 1 + +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F + +#define GLEW_EXT_texture_shared_exponent GLEW_GET_VAR(__GLEW_EXT_texture_shared_exponent) + +#endif /* GL_EXT_texture_shared_exponent */ + +/* -------------------------- GL_EXT_texture_snorm ------------------------- */ + +#ifndef GL_EXT_texture_snorm +#define GL_EXT_texture_snorm 1 + +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_ALPHA_SNORM 0x9010 +#define GL_LUMINANCE_SNORM 0x9011 +#define GL_LUMINANCE_ALPHA_SNORM 0x9012 +#define GL_INTENSITY_SNORM 0x9013 +#define GL_ALPHA8_SNORM 0x9014 +#define GL_LUMINANCE8_SNORM 0x9015 +#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 +#define GL_INTENSITY8_SNORM 0x9017 +#define GL_ALPHA16_SNORM 0x9018 +#define GL_LUMINANCE16_SNORM 0x9019 +#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A +#define GL_INTENSITY16_SNORM 0x901B + +#define GLEW_EXT_texture_snorm GLEW_GET_VAR(__GLEW_EXT_texture_snorm) + +#endif /* GL_EXT_texture_snorm */ + +/* ------------------------- GL_EXT_texture_swizzle ------------------------ */ + +#ifndef GL_EXT_texture_swizzle +#define GL_EXT_texture_swizzle 1 + +#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 +#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 +#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 +#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 + +#define GLEW_EXT_texture_swizzle GLEW_GET_VAR(__GLEW_EXT_texture_swizzle) + +#endif /* GL_EXT_texture_swizzle */ + +/* --------------------------- GL_EXT_timer_query -------------------------- */ + +#ifndef GL_EXT_timer_query +#define GL_EXT_timer_query 1 + +#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); + +#define glGetQueryObjecti64vEXT GLEW_GET_FUN(__glewGetQueryObjecti64vEXT) +#define glGetQueryObjectui64vEXT GLEW_GET_FUN(__glewGetQueryObjectui64vEXT) + +#define GLEW_EXT_timer_query GLEW_GET_VAR(__GLEW_EXT_timer_query) + +#endif /* GL_EXT_timer_query */ + +/* ----------------------- GL_EXT_transform_feedback ----------------------- */ + +#ifndef GL_EXT_transform_feedback +#define GL_EXT_transform_feedback 1 + +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#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 * const* varyings, GLenum bufferMode); + +#define glBeginTransformFeedbackEXT GLEW_GET_FUN(__glewBeginTransformFeedbackEXT) +#define glBindBufferBaseEXT GLEW_GET_FUN(__glewBindBufferBaseEXT) +#define glBindBufferOffsetEXT GLEW_GET_FUN(__glewBindBufferOffsetEXT) +#define glBindBufferRangeEXT GLEW_GET_FUN(__glewBindBufferRangeEXT) +#define glEndTransformFeedbackEXT GLEW_GET_FUN(__glewEndTransformFeedbackEXT) +#define glGetTransformFeedbackVaryingEXT GLEW_GET_FUN(__glewGetTransformFeedbackVaryingEXT) +#define glTransformFeedbackVaryingsEXT GLEW_GET_FUN(__glewTransformFeedbackVaryingsEXT) + +#define GLEW_EXT_transform_feedback GLEW_GET_VAR(__GLEW_EXT_transform_feedback) + +#endif /* GL_EXT_transform_feedback */ + +/* -------------------------- GL_EXT_vertex_array -------------------------- */ + +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 + +#define GL_DOUBLE_EXT 0x140A +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#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 GLvoid *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 GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); + +#define glArrayElementEXT GLEW_GET_FUN(__glewArrayElementEXT) +#define glColorPointerEXT GLEW_GET_FUN(__glewColorPointerEXT) +#define glDrawArraysEXT GLEW_GET_FUN(__glewDrawArraysEXT) +#define glEdgeFlagPointerEXT GLEW_GET_FUN(__glewEdgeFlagPointerEXT) +#define glIndexPointerEXT GLEW_GET_FUN(__glewIndexPointerEXT) +#define glNormalPointerEXT GLEW_GET_FUN(__glewNormalPointerEXT) +#define glTexCoordPointerEXT GLEW_GET_FUN(__glewTexCoordPointerEXT) +#define glVertexPointerEXT GLEW_GET_FUN(__glewVertexPointerEXT) + +#define GLEW_EXT_vertex_array GLEW_GET_VAR(__GLEW_EXT_vertex_array) + +#endif /* GL_EXT_vertex_array */ + +/* ------------------------ GL_EXT_vertex_array_bgra ----------------------- */ + +#ifndef GL_EXT_vertex_array_bgra +#define GL_EXT_vertex_array_bgra 1 + +#define GL_BGRA 0x80E1 + +#define GLEW_EXT_vertex_array_bgra GLEW_GET_VAR(__GLEW_EXT_vertex_array_bgra) + +#endif /* GL_EXT_vertex_array_bgra */ + +/* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */ + +#ifndef GL_EXT_vertex_attrib_64bit +#define GL_EXT_vertex_attrib_64bit 1 + +#define GL_DOUBLE_MAT2_EXT 0x8F46 +#define GL_DOUBLE_MAT3_EXT 0x8F47 +#define GL_DOUBLE_MAT4_EXT 0x8F48 +#define GL_DOUBLE_MAT2x3_EXT 0x8F49 +#define GL_DOUBLE_MAT2x4_EXT 0x8F4A +#define GL_DOUBLE_MAT3x2_EXT 0x8F4B +#define GL_DOUBLE_MAT3x4_EXT 0x8F4C +#define GL_DOUBLE_MAT4x2_EXT 0x8F4D +#define GL_DOUBLE_MAT4x3_EXT 0x8F4E +#define GL_DOUBLE_VEC2_EXT 0x8FFC +#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 GLvoid *pointer); + +#define glGetVertexAttribLdvEXT GLEW_GET_FUN(__glewGetVertexAttribLdvEXT) +#define glVertexArrayVertexAttribLOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLOffsetEXT) +#define glVertexAttribL1dEXT GLEW_GET_FUN(__glewVertexAttribL1dEXT) +#define glVertexAttribL1dvEXT GLEW_GET_FUN(__glewVertexAttribL1dvEXT) +#define glVertexAttribL2dEXT GLEW_GET_FUN(__glewVertexAttribL2dEXT) +#define glVertexAttribL2dvEXT GLEW_GET_FUN(__glewVertexAttribL2dvEXT) +#define glVertexAttribL3dEXT GLEW_GET_FUN(__glewVertexAttribL3dEXT) +#define glVertexAttribL3dvEXT GLEW_GET_FUN(__glewVertexAttribL3dvEXT) +#define glVertexAttribL4dEXT GLEW_GET_FUN(__glewVertexAttribL4dEXT) +#define glVertexAttribL4dvEXT GLEW_GET_FUN(__glewVertexAttribL4dvEXT) +#define glVertexAttribLPointerEXT GLEW_GET_FUN(__glewVertexAttribLPointerEXT) + +#define GLEW_EXT_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_EXT_vertex_attrib_64bit) + +#endif /* GL_EXT_vertex_attrib_64bit */ + +/* -------------------------- GL_EXT_vertex_shader ------------------------- */ + +#ifndef GL_EXT_vertex_shader +#define GL_EXT_vertex_shader 1 + +#define GL_VERTEX_SHADER_EXT 0x8780 +#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 +#define GL_OP_INDEX_EXT 0x8782 +#define GL_OP_NEGATE_EXT 0x8783 +#define GL_OP_DOT3_EXT 0x8784 +#define GL_OP_DOT4_EXT 0x8785 +#define GL_OP_MUL_EXT 0x8786 +#define GL_OP_ADD_EXT 0x8787 +#define GL_OP_MADD_EXT 0x8788 +#define GL_OP_FRAC_EXT 0x8789 +#define GL_OP_MAX_EXT 0x878A +#define GL_OP_MIN_EXT 0x878B +#define GL_OP_SET_GE_EXT 0x878C +#define GL_OP_SET_LT_EXT 0x878D +#define GL_OP_CLAMP_EXT 0x878E +#define GL_OP_FLOOR_EXT 0x878F +#define GL_OP_ROUND_EXT 0x8790 +#define GL_OP_EXP_BASE_2_EXT 0x8791 +#define GL_OP_LOG_BASE_2_EXT 0x8792 +#define GL_OP_POWER_EXT 0x8793 +#define GL_OP_RECIP_EXT 0x8794 +#define GL_OP_RECIP_SQRT_EXT 0x8795 +#define GL_OP_SUB_EXT 0x8796 +#define GL_OP_CROSS_PRODUCT_EXT 0x8797 +#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 +#define GL_OP_MOV_EXT 0x8799 +#define GL_OUTPUT_VERTEX_EXT 0x879A +#define GL_OUTPUT_COLOR0_EXT 0x879B +#define GL_OUTPUT_COLOR1_EXT 0x879C +#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D +#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E +#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F +#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 +#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 +#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 +#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 +#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 +#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 +#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 +#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 +#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 +#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 +#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA +#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB +#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC +#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD +#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE +#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF +#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 +#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 +#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 +#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 +#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 +#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 +#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 +#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 +#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 +#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 +#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA +#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB +#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC +#define GL_OUTPUT_FOG_EXT 0x87BD +#define GL_SCALAR_EXT 0x87BE +#define GL_VECTOR_EXT 0x87BF +#define GL_MATRIX_EXT 0x87C0 +#define GL_VARIANT_EXT 0x87C1 +#define GL_INVARIANT_EXT 0x87C2 +#define GL_LOCAL_CONSTANT_EXT 0x87C3 +#define GL_LOCAL_EXT 0x87C4 +#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 +#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 +#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 +#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 +#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE +#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF +#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 +#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 +#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 +#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 +#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 +#define GL_X_EXT 0x87D5 +#define GL_Y_EXT 0x87D6 +#define GL_Z_EXT 0x87D7 +#define GL_W_EXT 0x87D8 +#define GL_NEGATIVE_X_EXT 0x87D9 +#define GL_NEGATIVE_Y_EXT 0x87DA +#define GL_NEGATIVE_Z_EXT 0x87DB +#define GL_NEGATIVE_W_EXT 0x87DC +#define GL_ZERO_EXT 0x87DD +#define GL_ONE_EXT 0x87DE +#define GL_NEGATIVE_ONE_EXT 0x87DF +#define GL_NORMALIZED_RANGE_EXT 0x87E0 +#define GL_FULL_RANGE_EXT 0x87E1 +#define GL_CURRENT_VERTEX_EXT 0x87E2 +#define GL_MVP_MATRIX_EXT 0x87E3 +#define GL_VARIANT_VALUE_EXT 0x87E4 +#define GL_VARIANT_DATATYPE_EXT 0x87E5 +#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 +#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 +#define GL_VARIANT_ARRAY_EXT 0x87E8 +#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 +#define GL_INVARIANT_VALUE_EXT 0x87EA +#define GL_INVARIANT_DATATYPE_EXT 0x87EB +#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); + +#define glBeginVertexShaderEXT GLEW_GET_FUN(__glewBeginVertexShaderEXT) +#define glBindLightParameterEXT GLEW_GET_FUN(__glewBindLightParameterEXT) +#define glBindMaterialParameterEXT GLEW_GET_FUN(__glewBindMaterialParameterEXT) +#define glBindParameterEXT GLEW_GET_FUN(__glewBindParameterEXT) +#define glBindTexGenParameterEXT GLEW_GET_FUN(__glewBindTexGenParameterEXT) +#define glBindTextureUnitParameterEXT GLEW_GET_FUN(__glewBindTextureUnitParameterEXT) +#define glBindVertexShaderEXT GLEW_GET_FUN(__glewBindVertexShaderEXT) +#define glDeleteVertexShaderEXT GLEW_GET_FUN(__glewDeleteVertexShaderEXT) +#define glDisableVariantClientStateEXT GLEW_GET_FUN(__glewDisableVariantClientStateEXT) +#define glEnableVariantClientStateEXT GLEW_GET_FUN(__glewEnableVariantClientStateEXT) +#define glEndVertexShaderEXT GLEW_GET_FUN(__glewEndVertexShaderEXT) +#define glExtractComponentEXT GLEW_GET_FUN(__glewExtractComponentEXT) +#define glGenSymbolsEXT GLEW_GET_FUN(__glewGenSymbolsEXT) +#define glGenVertexShadersEXT GLEW_GET_FUN(__glewGenVertexShadersEXT) +#define glGetInvariantBooleanvEXT GLEW_GET_FUN(__glewGetInvariantBooleanvEXT) +#define glGetInvariantFloatvEXT GLEW_GET_FUN(__glewGetInvariantFloatvEXT) +#define glGetInvariantIntegervEXT GLEW_GET_FUN(__glewGetInvariantIntegervEXT) +#define glGetLocalConstantBooleanvEXT GLEW_GET_FUN(__glewGetLocalConstantBooleanvEXT) +#define glGetLocalConstantFloatvEXT GLEW_GET_FUN(__glewGetLocalConstantFloatvEXT) +#define glGetLocalConstantIntegervEXT GLEW_GET_FUN(__glewGetLocalConstantIntegervEXT) +#define glGetVariantBooleanvEXT GLEW_GET_FUN(__glewGetVariantBooleanvEXT) +#define glGetVariantFloatvEXT GLEW_GET_FUN(__glewGetVariantFloatvEXT) +#define glGetVariantIntegervEXT GLEW_GET_FUN(__glewGetVariantIntegervEXT) +#define glGetVariantPointervEXT GLEW_GET_FUN(__glewGetVariantPointervEXT) +#define glInsertComponentEXT GLEW_GET_FUN(__glewInsertComponentEXT) +#define glIsVariantEnabledEXT GLEW_GET_FUN(__glewIsVariantEnabledEXT) +#define glSetInvariantEXT GLEW_GET_FUN(__glewSetInvariantEXT) +#define glSetLocalConstantEXT GLEW_GET_FUN(__glewSetLocalConstantEXT) +#define glShaderOp1EXT GLEW_GET_FUN(__glewShaderOp1EXT) +#define glShaderOp2EXT GLEW_GET_FUN(__glewShaderOp2EXT) +#define glShaderOp3EXT GLEW_GET_FUN(__glewShaderOp3EXT) +#define glSwizzleEXT GLEW_GET_FUN(__glewSwizzleEXT) +#define glVariantPointerEXT GLEW_GET_FUN(__glewVariantPointerEXT) +#define glVariantbvEXT GLEW_GET_FUN(__glewVariantbvEXT) +#define glVariantdvEXT GLEW_GET_FUN(__glewVariantdvEXT) +#define glVariantfvEXT GLEW_GET_FUN(__glewVariantfvEXT) +#define glVariantivEXT GLEW_GET_FUN(__glewVariantivEXT) +#define glVariantsvEXT GLEW_GET_FUN(__glewVariantsvEXT) +#define glVariantubvEXT GLEW_GET_FUN(__glewVariantubvEXT) +#define glVariantuivEXT GLEW_GET_FUN(__glewVariantuivEXT) +#define glVariantusvEXT GLEW_GET_FUN(__glewVariantusvEXT) +#define glWriteMaskEXT GLEW_GET_FUN(__glewWriteMaskEXT) + +#define GLEW_EXT_vertex_shader GLEW_GET_VAR(__GLEW_EXT_vertex_shader) + +#endif /* GL_EXT_vertex_shader */ + +/* ------------------------ GL_EXT_vertex_weighting ------------------------ */ + +#ifndef GL_EXT_vertex_weighting +#define GL_EXT_vertex_weighting 1 + +#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 +#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 +#define GL_MODELVIEW0_EXT 0x1700 +#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 +#define GL_MODELVIEW1_MATRIX_EXT 0x8506 +#define GL_VERTEX_WEIGHTING_EXT 0x8509 +#define GL_MODELVIEW1_EXT 0x850A +#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B +#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C +#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D +#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E +#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, GLvoid *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) +#define glVertexWeightfvEXT GLEW_GET_FUN(__glewVertexWeightfvEXT) + +#define GLEW_EXT_vertex_weighting GLEW_GET_VAR(__GLEW_EXT_vertex_weighting) + +#endif /* GL_EXT_vertex_weighting */ + +/* ------------------------- GL_EXT_x11_sync_object ------------------------ */ + +#ifndef GL_EXT_x11_sync_object +#define GL_EXT_x11_sync_object 1 + +#define GL_SYNC_X11_FENCE_EXT 0x90E1 + +typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); + +#define glImportSyncEXT GLEW_GET_FUN(__glewImportSyncEXT) + +#define GLEW_EXT_x11_sync_object GLEW_GET_VAR(__GLEW_EXT_x11_sync_object) + +#endif /* GL_EXT_x11_sync_object */ + +/* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */ + +#ifndef GL_GREMEDY_frame_terminator +#define GL_GREMEDY_frame_terminator 1 + +typedef void (GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC) (void); + +#define glFrameTerminatorGREMEDY GLEW_GET_FUN(__glewFrameTerminatorGREMEDY) + +#define GLEW_GREMEDY_frame_terminator GLEW_GET_VAR(__GLEW_GREMEDY_frame_terminator) + +#endif /* GL_GREMEDY_frame_terminator */ + +/* ------------------------ GL_GREMEDY_string_marker ----------------------- */ + +#ifndef GL_GREMEDY_string_marker +#define GL_GREMEDY_string_marker 1 + +typedef void (GLAPIENTRY * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string); + +#define glStringMarkerGREMEDY GLEW_GET_FUN(__glewStringMarkerGREMEDY) + +#define GLEW_GREMEDY_string_marker GLEW_GET_VAR(__GLEW_GREMEDY_string_marker) + +#endif /* GL_GREMEDY_string_marker */ + +/* --------------------- GL_HP_convolution_border_modes -------------------- */ + +#ifndef GL_HP_convolution_border_modes +#define GL_HP_convolution_border_modes 1 + +#define GLEW_HP_convolution_border_modes GLEW_GET_VAR(__GLEW_HP_convolution_border_modes) + +#endif /* GL_HP_convolution_border_modes */ + +/* ------------------------- GL_HP_image_transform ------------------------- */ + +#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); + +#define glGetImageTransformParameterfvHP GLEW_GET_FUN(__glewGetImageTransformParameterfvHP) +#define glGetImageTransformParameterivHP GLEW_GET_FUN(__glewGetImageTransformParameterivHP) +#define glImageTransformParameterfHP GLEW_GET_FUN(__glewImageTransformParameterfHP) +#define glImageTransformParameterfvHP GLEW_GET_FUN(__glewImageTransformParameterfvHP) +#define glImageTransformParameteriHP GLEW_GET_FUN(__glewImageTransformParameteriHP) +#define glImageTransformParameterivHP GLEW_GET_FUN(__glewImageTransformParameterivHP) + +#define GLEW_HP_image_transform GLEW_GET_VAR(__GLEW_HP_image_transform) + +#endif /* GL_HP_image_transform */ + +/* -------------------------- GL_HP_occlusion_test ------------------------- */ + +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 + +#define GLEW_HP_occlusion_test GLEW_GET_VAR(__GLEW_HP_occlusion_test) + +#endif /* GL_HP_occlusion_test */ + +/* ------------------------- GL_HP_texture_lighting ------------------------ */ + +#ifndef GL_HP_texture_lighting +#define GL_HP_texture_lighting 1 + +#define GLEW_HP_texture_lighting GLEW_GET_VAR(__GLEW_HP_texture_lighting) + +#endif /* GL_HP_texture_lighting */ + +/* --------------------------- GL_IBM_cull_vertex -------------------------- */ + +#ifndef GL_IBM_cull_vertex +#define GL_IBM_cull_vertex 1 + +#define GL_CULL_VERTEX_IBM 103050 + +#define GLEW_IBM_cull_vertex GLEW_GET_VAR(__GLEW_IBM_cull_vertex) + +#endif /* GL_IBM_cull_vertex */ + +/* ---------------------- GL_IBM_multimode_draw_arrays --------------------- */ + +#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); + +#define glMultiModeDrawArraysIBM GLEW_GET_FUN(__glewMultiModeDrawArraysIBM) +#define glMultiModeDrawElementsIBM GLEW_GET_FUN(__glewMultiModeDrawElementsIBM) + +#define GLEW_IBM_multimode_draw_arrays GLEW_GET_VAR(__GLEW_IBM_multimode_draw_arrays) + +#endif /* GL_IBM_multimode_draw_arrays */ + +/* ------------------------- GL_IBM_rasterpos_clip ------------------------- */ + +#ifndef GL_IBM_rasterpos_clip +#define GL_IBM_rasterpos_clip 1 + +#define GL_RASTER_POSITION_UNCLIPPED_IBM 103010 + +#define GLEW_IBM_rasterpos_clip GLEW_GET_VAR(__GLEW_IBM_rasterpos_clip) + +#endif /* GL_IBM_rasterpos_clip */ + +/* --------------------------- GL_IBM_static_data -------------------------- */ + +#ifndef GL_IBM_static_data +#define GL_IBM_static_data 1 + +#define GL_ALL_STATIC_DATA_IBM 103060 +#define GL_STATIC_VERTEX_ARRAY_IBM 103061 + +#define GLEW_IBM_static_data GLEW_GET_VAR(__GLEW_IBM_static_data) + +#endif /* GL_IBM_static_data */ + +/* --------------------- GL_IBM_texture_mirrored_repeat -------------------- */ + +#ifndef GL_IBM_texture_mirrored_repeat +#define GL_IBM_texture_mirrored_repeat 1 + +#define GL_MIRRORED_REPEAT_IBM 0x8370 + +#define GLEW_IBM_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_IBM_texture_mirrored_repeat) + +#endif /* GL_IBM_texture_mirrored_repeat */ + +/* ----------------------- GL_IBM_vertex_array_lists ----------------------- */ + +#ifndef GL_IBM_vertex_array_lists +#define GL_IBM_vertex_array_lists 1 + +#define GL_VERTEX_ARRAY_LIST_IBM 103070 +#define GL_NORMAL_ARRAY_LIST_IBM 103071 +#define GL_COLOR_ARRAY_LIST_IBM 103072 +#define GL_INDEX_ARRAY_LIST_IBM 103073 +#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 +#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 +#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 +#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 +#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 +#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 +#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 +#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 +#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 +#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 +#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); + +#define glColorPointerListIBM GLEW_GET_FUN(__glewColorPointerListIBM) +#define glEdgeFlagPointerListIBM GLEW_GET_FUN(__glewEdgeFlagPointerListIBM) +#define glFogCoordPointerListIBM GLEW_GET_FUN(__glewFogCoordPointerListIBM) +#define glIndexPointerListIBM GLEW_GET_FUN(__glewIndexPointerListIBM) +#define glNormalPointerListIBM GLEW_GET_FUN(__glewNormalPointerListIBM) +#define glSecondaryColorPointerListIBM GLEW_GET_FUN(__glewSecondaryColorPointerListIBM) +#define glTexCoordPointerListIBM GLEW_GET_FUN(__glewTexCoordPointerListIBM) +#define glVertexPointerListIBM GLEW_GET_FUN(__glewVertexPointerListIBM) + +#define GLEW_IBM_vertex_array_lists GLEW_GET_VAR(__GLEW_IBM_vertex_array_lists) + +#endif /* GL_IBM_vertex_array_lists */ + +/* -------------------------- GL_INGR_color_clamp -------------------------- */ + +#ifndef GL_INGR_color_clamp +#define GL_INGR_color_clamp 1 + +#define GL_RED_MIN_CLAMP_INGR 0x8560 +#define GL_GREEN_MIN_CLAMP_INGR 0x8561 +#define GL_BLUE_MIN_CLAMP_INGR 0x8562 +#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 +#define GL_RED_MAX_CLAMP_INGR 0x8564 +#define GL_GREEN_MAX_CLAMP_INGR 0x8565 +#define GL_BLUE_MAX_CLAMP_INGR 0x8566 +#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 + +#define GLEW_INGR_color_clamp GLEW_GET_VAR(__GLEW_INGR_color_clamp) + +#endif /* GL_INGR_color_clamp */ + +/* ------------------------- GL_INGR_interlace_read ------------------------ */ + +#ifndef GL_INGR_interlace_read +#define GL_INGR_interlace_read 1 + +#define GL_INTERLACE_READ_INGR 0x8568 + +#define GLEW_INGR_interlace_read GLEW_GET_VAR(__GLEW_INGR_interlace_read) + +#endif /* GL_INGR_interlace_read */ + +/* -------------------------- GL_INTEL_map_texture ------------------------- */ + +#ifndef GL_INTEL_map_texture +#define GL_INTEL_map_texture 1 + +#define GL_LAYOUT_DEFAULT_INTEL 0 +#define GL_LAYOUT_LINEAR_INTEL 1 +#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2 +#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF + +typedef GLvoid * (GLAPIENTRY * PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint* stride, GLenum *layout); +typedef void (GLAPIENTRY * PFNGLSYNCTEXTUREINTELPROC) (GLuint texture); +typedef void (GLAPIENTRY * PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level); + +#define glMapTexture2DINTEL GLEW_GET_FUN(__glewMapTexture2DINTEL) +#define glSyncTextureINTEL GLEW_GET_FUN(__glewSyncTextureINTEL) +#define glUnmapTexture2DINTEL GLEW_GET_FUN(__glewUnmapTexture2DINTEL) + +#define GLEW_INTEL_map_texture GLEW_GET_VAR(__GLEW_INTEL_map_texture) + +#endif /* GL_INTEL_map_texture */ + +/* ------------------------ GL_INTEL_parallel_arrays ----------------------- */ + +#ifndef GL_INTEL_parallel_arrays +#define GL_INTEL_parallel_arrays 1 + +#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 +#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 +#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 +#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); + +#define glColorPointervINTEL GLEW_GET_FUN(__glewColorPointervINTEL) +#define glNormalPointervINTEL GLEW_GET_FUN(__glewNormalPointervINTEL) +#define glTexCoordPointervINTEL GLEW_GET_FUN(__glewTexCoordPointervINTEL) +#define glVertexPointervINTEL GLEW_GET_FUN(__glewVertexPointervINTEL) + +#define GLEW_INTEL_parallel_arrays GLEW_GET_VAR(__GLEW_INTEL_parallel_arrays) + +#endif /* GL_INTEL_parallel_arrays */ + +/* ------------------------ GL_INTEL_texture_scissor ----------------------- */ + +#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); + +#define glTexScissorFuncINTEL GLEW_GET_FUN(__glewTexScissorFuncINTEL) +#define glTexScissorINTEL GLEW_GET_FUN(__glewTexScissorINTEL) + +#define GLEW_INTEL_texture_scissor GLEW_GET_VAR(__GLEW_INTEL_texture_scissor) + +#endif /* GL_INTEL_texture_scissor */ + +/* ------------------------------ GL_KHR_debug ----------------------------- */ + +#ifndef GL_KHR_debug +#define GL_KHR_debug 1 + +#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 +#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 +#define GL_DEBUG_SOURCE_API 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION 0x824A +#define GL_DEBUG_SOURCE_OTHER 0x824B +#define GL_DEBUG_TYPE_ERROR 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E +#define GL_DEBUG_TYPE_PORTABILITY 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 +#define GL_DEBUG_TYPE_OTHER 0x8251 +#define GL_DEBUG_TYPE_MARKER 0x8268 +#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 +#define GL_DEBUG_TYPE_POP_GROUP 0x826A +#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C +#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D +#define GL_BUFFER 0x82E0 +#define GL_SHADER 0x82E1 +#define GL_PROGRAM 0x82E2 +#define GL_QUERY 0x82E3 +#define GL_PROGRAM_PIPELINE 0x82E4 +#define GL_SAMPLER 0x82E6 +#define GL_DISPLAY_LIST 0x82E7 +#define GL_MAX_LABEL_LENGTH 0x82E8 +#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES 0x9145 +#define GL_DEBUG_SEVERITY_HIGH 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 +#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 (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const GLvoid *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 * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label); +typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (void* ptr, GLsizei length, const GLchar* label); +typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) (void); +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) +#define glDebugMessageInsert GLEW_GET_FUN(__glewDebugMessageInsert) +#define glGetDebugMessageLog GLEW_GET_FUN(__glewGetDebugMessageLog) +#define glGetObjectLabel GLEW_GET_FUN(__glewGetObjectLabel) +#define glGetObjectPtrLabel GLEW_GET_FUN(__glewGetObjectPtrLabel) +#define glObjectLabel GLEW_GET_FUN(__glewObjectLabel) +#define glObjectPtrLabel GLEW_GET_FUN(__glewObjectPtrLabel) +#define glPopDebugGroup GLEW_GET_FUN(__glewPopDebugGroup) +#define glPushDebugGroup GLEW_GET_FUN(__glewPushDebugGroup) + +#define GLEW_KHR_debug GLEW_GET_VAR(__GLEW_KHR_debug) + +#endif /* GL_KHR_debug */ + +/* ------------------ GL_KHR_texture_compression_astc_ldr ------------------ */ + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_KHR_texture_compression_astc_ldr 1 + +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD + +#define GLEW_KHR_texture_compression_astc_ldr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_ldr) + +#endif /* GL_KHR_texture_compression_astc_ldr */ + +/* -------------------------- GL_KTX_buffer_region ------------------------- */ + +#ifndef GL_KTX_buffer_region +#define GL_KTX_buffer_region 1 + +#define GL_KTX_FRONT_REGION 0x0 +#define GL_KTX_BACK_REGION 0x1 +#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); + +#define glBufferRegionEnabled GLEW_GET_FUN(__glewBufferRegionEnabled) +#define glDeleteBufferRegion GLEW_GET_FUN(__glewDeleteBufferRegion) +#define glDrawBufferRegion GLEW_GET_FUN(__glewDrawBufferRegion) +#define glNewBufferRegion GLEW_GET_FUN(__glewNewBufferRegion) +#define glReadBufferRegion GLEW_GET_FUN(__glewReadBufferRegion) + +#define GLEW_KTX_buffer_region GLEW_GET_VAR(__GLEW_KTX_buffer_region) + +#endif /* GL_KTX_buffer_region */ + +/* ------------------------- GL_MESAX_texture_stack ------------------------ */ + +#ifndef GL_MESAX_texture_stack +#define GL_MESAX_texture_stack 1 + +#define GL_TEXTURE_1D_STACK_MESAX 0x8759 +#define GL_TEXTURE_2D_STACK_MESAX 0x875A +#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B +#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C +#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D +#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E + +#define GLEW_MESAX_texture_stack GLEW_GET_VAR(__GLEW_MESAX_texture_stack) + +#endif /* GL_MESAX_texture_stack */ + +/* -------------------------- GL_MESA_pack_invert -------------------------- */ + +#ifndef GL_MESA_pack_invert +#define GL_MESA_pack_invert 1 + +#define GL_PACK_INVERT_MESA 0x8758 + +#define GLEW_MESA_pack_invert GLEW_GET_VAR(__GLEW_MESA_pack_invert) + +#endif /* GL_MESA_pack_invert */ + +/* ------------------------- GL_MESA_resize_buffers ------------------------ */ + +#ifndef GL_MESA_resize_buffers +#define GL_MESA_resize_buffers 1 + +typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); + +#define glResizeBuffersMESA GLEW_GET_FUN(__glewResizeBuffersMESA) + +#define GLEW_MESA_resize_buffers GLEW_GET_VAR(__GLEW_MESA_resize_buffers) + +#endif /* GL_MESA_resize_buffers */ + +/* --------------------------- GL_MESA_window_pos -------------------------- */ + +#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); + +#define glWindowPos2dMESA GLEW_GET_FUN(__glewWindowPos2dMESA) +#define glWindowPos2dvMESA GLEW_GET_FUN(__glewWindowPos2dvMESA) +#define glWindowPos2fMESA GLEW_GET_FUN(__glewWindowPos2fMESA) +#define glWindowPos2fvMESA GLEW_GET_FUN(__glewWindowPos2fvMESA) +#define glWindowPos2iMESA GLEW_GET_FUN(__glewWindowPos2iMESA) +#define glWindowPos2ivMESA GLEW_GET_FUN(__glewWindowPos2ivMESA) +#define glWindowPos2sMESA GLEW_GET_FUN(__glewWindowPos2sMESA) +#define glWindowPos2svMESA GLEW_GET_FUN(__glewWindowPos2svMESA) +#define glWindowPos3dMESA GLEW_GET_FUN(__glewWindowPos3dMESA) +#define glWindowPos3dvMESA GLEW_GET_FUN(__glewWindowPos3dvMESA) +#define glWindowPos3fMESA GLEW_GET_FUN(__glewWindowPos3fMESA) +#define glWindowPos3fvMESA GLEW_GET_FUN(__glewWindowPos3fvMESA) +#define glWindowPos3iMESA GLEW_GET_FUN(__glewWindowPos3iMESA) +#define glWindowPos3ivMESA GLEW_GET_FUN(__glewWindowPos3ivMESA) +#define glWindowPos3sMESA GLEW_GET_FUN(__glewWindowPos3sMESA) +#define glWindowPos3svMESA GLEW_GET_FUN(__glewWindowPos3svMESA) +#define glWindowPos4dMESA GLEW_GET_FUN(__glewWindowPos4dMESA) +#define glWindowPos4dvMESA GLEW_GET_FUN(__glewWindowPos4dvMESA) +#define glWindowPos4fMESA GLEW_GET_FUN(__glewWindowPos4fMESA) +#define glWindowPos4fvMESA GLEW_GET_FUN(__glewWindowPos4fvMESA) +#define glWindowPos4iMESA GLEW_GET_FUN(__glewWindowPos4iMESA) +#define glWindowPos4ivMESA GLEW_GET_FUN(__glewWindowPos4ivMESA) +#define glWindowPos4sMESA GLEW_GET_FUN(__glewWindowPos4sMESA) +#define glWindowPos4svMESA GLEW_GET_FUN(__glewWindowPos4svMESA) + +#define GLEW_MESA_window_pos GLEW_GET_VAR(__GLEW_MESA_window_pos) + +#endif /* GL_MESA_window_pos */ + +/* ------------------------- GL_MESA_ycbcr_texture ------------------------- */ + +#ifndef GL_MESA_ycbcr_texture +#define GL_MESA_ycbcr_texture 1 + +#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB +#define GL_YCBCR_MESA 0x8757 + +#define GLEW_MESA_ycbcr_texture GLEW_GET_VAR(__GLEW_MESA_ycbcr_texture) + +#endif /* GL_MESA_ycbcr_texture */ + +/* ----------------------- GL_NVX_conditional_render ----------------------- */ + +#ifndef GL_NVX_conditional_render +#define GL_NVX_conditional_render 1 + +typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVXPROC) (void); + +#define glBeginConditionalRenderNVX GLEW_GET_FUN(__glewBeginConditionalRenderNVX) +#define glEndConditionalRenderNVX GLEW_GET_FUN(__glewEndConditionalRenderNVX) + +#define GLEW_NVX_conditional_render GLEW_GET_VAR(__GLEW_NVX_conditional_render) + +#endif /* GL_NVX_conditional_render */ + +/* ------------------------- GL_NVX_gpu_memory_info ------------------------ */ + +#ifndef GL_NVX_gpu_memory_info +#define GL_NVX_gpu_memory_info 1 + +#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 +#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 +#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 +#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A +#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B + +#define GLEW_NVX_gpu_memory_info GLEW_GET_VAR(__GLEW_NVX_gpu_memory_info) + +#endif /* GL_NVX_gpu_memory_info */ + +/* ------------------- GL_NV_bindless_multi_draw_indirect ------------------ */ + +#ifndef GL_NV_bindless_multi_draw_indirect +#define GL_NV_bindless_multi_draw_indirect 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const GLvoid *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); + +#define glMultiDrawArraysIndirectBindlessNV GLEW_GET_FUN(__glewMultiDrawArraysIndirectBindlessNV) +#define glMultiDrawElementsIndirectBindlessNV GLEW_GET_FUN(__glewMultiDrawElementsIndirectBindlessNV) + +#define GLEW_NV_bindless_multi_draw_indirect GLEW_GET_VAR(__GLEW_NV_bindless_multi_draw_indirect) + +#endif /* GL_NV_bindless_multi_draw_indirect */ + +/* ------------------------- GL_NV_bindless_texture ------------------------ */ + +#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); + +#define glGetImageHandleNV GLEW_GET_FUN(__glewGetImageHandleNV) +#define glGetTextureHandleNV GLEW_GET_FUN(__glewGetTextureHandleNV) +#define glGetTextureSamplerHandleNV GLEW_GET_FUN(__glewGetTextureSamplerHandleNV) +#define glIsImageHandleResidentNV GLEW_GET_FUN(__glewIsImageHandleResidentNV) +#define glIsTextureHandleResidentNV GLEW_GET_FUN(__glewIsTextureHandleResidentNV) +#define glMakeImageHandleNonResidentNV GLEW_GET_FUN(__glewMakeImageHandleNonResidentNV) +#define glMakeImageHandleResidentNV GLEW_GET_FUN(__glewMakeImageHandleResidentNV) +#define glMakeTextureHandleNonResidentNV GLEW_GET_FUN(__glewMakeTextureHandleNonResidentNV) +#define glMakeTextureHandleResidentNV GLEW_GET_FUN(__glewMakeTextureHandleResidentNV) +#define glProgramUniformHandleui64NV GLEW_GET_FUN(__glewProgramUniformHandleui64NV) +#define glProgramUniformHandleui64vNV GLEW_GET_FUN(__glewProgramUniformHandleui64vNV) +#define glUniformHandleui64NV GLEW_GET_FUN(__glewUniformHandleui64NV) +#define glUniformHandleui64vNV GLEW_GET_FUN(__glewUniformHandleui64vNV) + +#define GLEW_NV_bindless_texture GLEW_GET_VAR(__GLEW_NV_bindless_texture) + +#endif /* GL_NV_bindless_texture */ + +/* --------------------- GL_NV_blend_equation_advanced --------------------- */ + +#ifndef GL_NV_blend_equation_advanced +#define GL_NV_blend_equation_advanced 1 + +#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 +#define GL_BLEND_OVERLAP_NV 0x9281 +#define GL_UNCORRELATED_NV 0x9282 +#define GL_DISJOINT_NV 0x9283 +#define GL_CONJOINT_NV 0x9284 +#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 +#define GL_SRC_NV 0x9286 +#define GL_DST_NV 0x9287 +#define GL_SRC_OVER_NV 0x9288 +#define GL_DST_OVER_NV 0x9289 +#define GL_SRC_IN_NV 0x928A +#define GL_DST_IN_NV 0x928B +#define GL_SRC_OUT_NV 0x928C +#define GL_DST_OUT_NV 0x928D +#define GL_SRC_ATOP_NV 0x928E +#define GL_DST_ATOP_NV 0x928F +#define GL_PLUS_NV 0x9291 +#define GL_PLUS_DARKER_NV 0x9292 +#define GL_MULTIPLY_NV 0x9294 +#define GL_SCREEN_NV 0x9295 +#define GL_OVERLAY_NV 0x9296 +#define GL_DARKEN_NV 0x9297 +#define GL_LIGHTEN_NV 0x9298 +#define GL_COLORDODGE_NV 0x9299 +#define GL_COLORBURN_NV 0x929A +#define GL_HARDLIGHT_NV 0x929B +#define GL_SOFTLIGHT_NV 0x929C +#define GL_DIFFERENCE_NV 0x929E +#define GL_MINUS_NV 0x929F +#define GL_EXCLUSION_NV 0x92A0 +#define GL_CONTRAST_NV 0x92A1 +#define GL_INVERT_RGB_NV 0x92A3 +#define GL_LINEARDODGE_NV 0x92A4 +#define GL_LINEARBURN_NV 0x92A5 +#define GL_VIVIDLIGHT_NV 0x92A6 +#define GL_LINEARLIGHT_NV 0x92A7 +#define GL_PINLIGHT_NV 0x92A8 +#define GL_HARDMIX_NV 0x92A9 +#define GL_HSL_HUE_NV 0x92AD +#define GL_HSL_SATURATION_NV 0x92AE +#define GL_HSL_COLOR_NV 0x92AF +#define GL_HSL_LUMINOSITY_NV 0x92B0 +#define GL_PLUS_CLAMPED_NV 0x92B1 +#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 +#define GL_MINUS_CLAMPED_NV 0x92B3 +#define GL_INVERT_OVG_NV 0x92B4 + +typedef void (GLAPIENTRY * PFNGLBLENDBARRIERNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); + +#define glBlendBarrierNV GLEW_GET_FUN(__glewBlendBarrierNV) +#define glBlendParameteriNV GLEW_GET_FUN(__glewBlendParameteriNV) + +#define GLEW_NV_blend_equation_advanced GLEW_GET_VAR(__GLEW_NV_blend_equation_advanced) + +#endif /* GL_NV_blend_equation_advanced */ + +/* ----------------- GL_NV_blend_equation_advanced_coherent ---------------- */ + +#ifndef GL_NV_blend_equation_advanced_coherent +#define GL_NV_blend_equation_advanced_coherent 1 + +#define GLEW_NV_blend_equation_advanced_coherent GLEW_GET_VAR(__GLEW_NV_blend_equation_advanced_coherent) + +#endif /* GL_NV_blend_equation_advanced_coherent */ + +/* --------------------------- GL_NV_blend_square -------------------------- */ + +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 + +#define GLEW_NV_blend_square GLEW_GET_VAR(__GLEW_NV_blend_square) + +#endif /* GL_NV_blend_square */ + +/* ------------------------- GL_NV_compute_program5 ------------------------ */ + +#ifndef GL_NV_compute_program5 +#define GL_NV_compute_program5 1 + +#define GL_COMPUTE_PROGRAM_NV 0x90FB +#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC + +#define GLEW_NV_compute_program5 GLEW_GET_VAR(__GLEW_NV_compute_program5) + +#endif /* GL_NV_compute_program5 */ + +/* ------------------------ GL_NV_conditional_render ----------------------- */ + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 + +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#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); + +#define glBeginConditionalRenderNV GLEW_GET_FUN(__glewBeginConditionalRenderNV) +#define glEndConditionalRenderNV GLEW_GET_FUN(__glewEndConditionalRenderNV) + +#define GLEW_NV_conditional_render GLEW_GET_VAR(__GLEW_NV_conditional_render) + +#endif /* GL_NV_conditional_render */ + +/* ----------------------- GL_NV_copy_depth_to_color ----------------------- */ + +#ifndef GL_NV_copy_depth_to_color +#define GL_NV_copy_depth_to_color 1 + +#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E +#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F + +#define GLEW_NV_copy_depth_to_color GLEW_GET_VAR(__GLEW_NV_copy_depth_to_color) + +#endif /* GL_NV_copy_depth_to_color */ + +/* ---------------------------- GL_NV_copy_image --------------------------- */ + +#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); + +#define glCopyImageSubDataNV GLEW_GET_FUN(__glewCopyImageSubDataNV) + +#define GLEW_NV_copy_image GLEW_GET_VAR(__GLEW_NV_copy_image) + +#endif /* GL_NV_copy_image */ + +/* -------------------------- GL_NV_deep_texture3D ------------------------- */ + +#ifndef GL_NV_deep_texture3D +#define GL_NV_deep_texture3D 1 + +#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 +#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 + +#define GLEW_NV_deep_texture3D GLEW_GET_VAR(__GLEW_NV_deep_texture3D) + +#endif /* GL_NV_deep_texture3D */ + +/* ------------------------ GL_NV_depth_buffer_float ----------------------- */ + +#ifndef GL_NV_depth_buffer_float +#define GL_NV_depth_buffer_float 1 + +#define GL_DEPTH_COMPONENT32F_NV 0x8DAB +#define GL_DEPTH32F_STENCIL8_NV 0x8DAC +#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); + +#define glClearDepthdNV GLEW_GET_FUN(__glewClearDepthdNV) +#define glDepthBoundsdNV GLEW_GET_FUN(__glewDepthBoundsdNV) +#define glDepthRangedNV GLEW_GET_FUN(__glewDepthRangedNV) + +#define GLEW_NV_depth_buffer_float GLEW_GET_VAR(__GLEW_NV_depth_buffer_float) + +#endif /* GL_NV_depth_buffer_float */ + +/* --------------------------- GL_NV_depth_clamp --------------------------- */ + +#ifndef GL_NV_depth_clamp +#define GL_NV_depth_clamp 1 + +#define GL_DEPTH_CLAMP_NV 0x864F + +#define GLEW_NV_depth_clamp GLEW_GET_VAR(__GLEW_NV_depth_clamp) + +#endif /* GL_NV_depth_clamp */ + +/* ---------------------- GL_NV_depth_range_unclamped ---------------------- */ + +#ifndef GL_NV_depth_range_unclamped +#define GL_NV_depth_range_unclamped 1 + +#define GL_SAMPLE_COUNT_BITS_NV 0x8864 +#define GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865 +#define GL_QUERY_RESULT_NV 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_NV 0x8867 +#define GL_SAMPLE_COUNT_NV 0x8914 + +#define GLEW_NV_depth_range_unclamped GLEW_GET_VAR(__GLEW_NV_depth_range_unclamped) + +#endif /* GL_NV_depth_range_unclamped */ + +/* --------------------------- GL_NV_draw_texture -------------------------- */ + +#ifndef GL_NV_draw_texture +#define GL_NV_draw_texture 1 + +typedef void (GLAPIENTRY * PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); + +#define glDrawTextureNV GLEW_GET_FUN(__glewDrawTextureNV) + +#define GLEW_NV_draw_texture GLEW_GET_VAR(__GLEW_NV_draw_texture) + +#endif /* GL_NV_draw_texture */ + +/* ---------------------------- GL_NV_evaluators --------------------------- */ + +#ifndef GL_NV_evaluators +#define GL_NV_evaluators 1 + +#define GL_EVAL_2D_NV 0x86C0 +#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 +#define GL_MAP_TESSELLATION_NV 0x86C2 +#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 +#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 +#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 +#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 +#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 +#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 +#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 +#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA +#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB +#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC +#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD +#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE +#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF +#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 +#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 +#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 +#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 +#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 +#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 +#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, GLvoid *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 GLvoid *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) +#define glGetMapAttribParameterivNV GLEW_GET_FUN(__glewGetMapAttribParameterivNV) +#define glGetMapControlPointsNV GLEW_GET_FUN(__glewGetMapControlPointsNV) +#define glGetMapParameterfvNV GLEW_GET_FUN(__glewGetMapParameterfvNV) +#define glGetMapParameterivNV GLEW_GET_FUN(__glewGetMapParameterivNV) +#define glMapControlPointsNV GLEW_GET_FUN(__glewMapControlPointsNV) +#define glMapParameterfvNV GLEW_GET_FUN(__glewMapParameterfvNV) +#define glMapParameterivNV GLEW_GET_FUN(__glewMapParameterivNV) + +#define GLEW_NV_evaluators GLEW_GET_VAR(__GLEW_NV_evaluators) + +#endif /* GL_NV_evaluators */ + +/* ----------------------- GL_NV_explicit_multisample ---------------------- */ + +#ifndef GL_NV_explicit_multisample +#define GL_NV_explicit_multisample 1 + +#define GL_SAMPLE_POSITION_NV 0x8E50 +#define GL_SAMPLE_MASK_NV 0x8E51 +#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 +#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 +#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 +#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 +#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 +#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 +#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); + +#define glGetMultisamplefvNV GLEW_GET_FUN(__glewGetMultisamplefvNV) +#define glSampleMaskIndexedNV GLEW_GET_FUN(__glewSampleMaskIndexedNV) +#define glTexRenderbufferNV GLEW_GET_FUN(__glewTexRenderbufferNV) + +#define GLEW_NV_explicit_multisample GLEW_GET_VAR(__GLEW_NV_explicit_multisample) + +#endif /* GL_NV_explicit_multisample */ + +/* ------------------------------ GL_NV_fence ------------------------------ */ + +#ifndef GL_NV_fence +#define GL_NV_fence 1 + +#define GL_ALL_COMPLETED_NV 0x84F2 +#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); + +#define glDeleteFencesNV GLEW_GET_FUN(__glewDeleteFencesNV) +#define glFinishFenceNV GLEW_GET_FUN(__glewFinishFenceNV) +#define glGenFencesNV GLEW_GET_FUN(__glewGenFencesNV) +#define glGetFenceivNV GLEW_GET_FUN(__glewGetFenceivNV) +#define glIsFenceNV GLEW_GET_FUN(__glewIsFenceNV) +#define glSetFenceNV GLEW_GET_FUN(__glewSetFenceNV) +#define glTestFenceNV GLEW_GET_FUN(__glewTestFenceNV) + +#define GLEW_NV_fence GLEW_GET_VAR(__GLEW_NV_fence) + +#endif /* GL_NV_fence */ + +/* --------------------------- GL_NV_float_buffer -------------------------- */ + +#ifndef GL_NV_float_buffer +#define GL_NV_float_buffer 1 + +#define GL_FLOAT_R_NV 0x8880 +#define GL_FLOAT_RG_NV 0x8881 +#define GL_FLOAT_RGB_NV 0x8882 +#define GL_FLOAT_RGBA_NV 0x8883 +#define GL_FLOAT_R16_NV 0x8884 +#define GL_FLOAT_R32_NV 0x8885 +#define GL_FLOAT_RG16_NV 0x8886 +#define GL_FLOAT_RG32_NV 0x8887 +#define GL_FLOAT_RGB16_NV 0x8888 +#define GL_FLOAT_RGB32_NV 0x8889 +#define GL_FLOAT_RGBA16_NV 0x888A +#define GL_FLOAT_RGBA32_NV 0x888B +#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C +#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D +#define GL_FLOAT_RGBA_MODE_NV 0x888E + +#define GLEW_NV_float_buffer GLEW_GET_VAR(__GLEW_NV_float_buffer) + +#endif /* GL_NV_float_buffer */ + +/* --------------------------- GL_NV_fog_distance -------------------------- */ + +#ifndef GL_NV_fog_distance +#define GL_NV_fog_distance 1 + +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C + +#define GLEW_NV_fog_distance GLEW_GET_VAR(__GLEW_NV_fog_distance) + +#endif /* GL_NV_fog_distance */ + +/* ------------------------- GL_NV_fragment_program ------------------------ */ + +#ifndef GL_NV_fragment_program +#define GL_NV_fragment_program 1 + +#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 +#define GL_FRAGMENT_PROGRAM_NV 0x8870 +#define GL_MAX_TEXTURE_COORDS_NV 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 +#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[]); + +#define glGetProgramNamedParameterdvNV GLEW_GET_FUN(__glewGetProgramNamedParameterdvNV) +#define glGetProgramNamedParameterfvNV GLEW_GET_FUN(__glewGetProgramNamedParameterfvNV) +#define glProgramNamedParameter4dNV GLEW_GET_FUN(__glewProgramNamedParameter4dNV) +#define glProgramNamedParameter4dvNV GLEW_GET_FUN(__glewProgramNamedParameter4dvNV) +#define glProgramNamedParameter4fNV GLEW_GET_FUN(__glewProgramNamedParameter4fNV) +#define glProgramNamedParameter4fvNV GLEW_GET_FUN(__glewProgramNamedParameter4fvNV) + +#define GLEW_NV_fragment_program GLEW_GET_VAR(__GLEW_NV_fragment_program) + +#endif /* GL_NV_fragment_program */ + +/* ------------------------ GL_NV_fragment_program2 ------------------------ */ + +#ifndef GL_NV_fragment_program2 +#define GL_NV_fragment_program2 1 + +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 + +#define GLEW_NV_fragment_program2 GLEW_GET_VAR(__GLEW_NV_fragment_program2) + +#endif /* GL_NV_fragment_program2 */ + +/* ------------------------ GL_NV_fragment_program4 ------------------------ */ + +#ifndef GL_NV_fragment_program4 +#define GL_NV_fragment_program4 1 + +#define GLEW_NV_fragment_program4 GLEW_GET_VAR(__GLEW_NV_fragment_program4) + +#endif /* GL_NV_fragment_program4 */ + +/* --------------------- GL_NV_fragment_program_option --------------------- */ + +#ifndef GL_NV_fragment_program_option +#define GL_NV_fragment_program_option 1 + +#define GLEW_NV_fragment_program_option GLEW_GET_VAR(__GLEW_NV_fragment_program_option) + +#endif /* GL_NV_fragment_program_option */ + +/* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */ + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_NV_framebuffer_multisample_coverage 1 + +#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB +#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 +#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); + +#define glRenderbufferStorageMultisampleCoverageNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleCoverageNV) + +#define GLEW_NV_framebuffer_multisample_coverage GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample_coverage) + +#endif /* GL_NV_framebuffer_multisample_coverage */ + +/* ------------------------ GL_NV_geometry_program4 ------------------------ */ + +#ifndef GL_NV_geometry_program4 +#define GL_NV_geometry_program4 1 + +#define GL_GEOMETRY_PROGRAM_NV 0x8C26 +#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); + +#define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV) + +#define GLEW_NV_geometry_program4 GLEW_GET_VAR(__GLEW_NV_geometry_program4) + +#endif /* GL_NV_geometry_program4 */ + +/* ------------------------- GL_NV_geometry_shader4 ------------------------ */ + +#ifndef GL_NV_geometry_shader4 +#define GL_NV_geometry_shader4 1 + +#define GLEW_NV_geometry_shader4 GLEW_GET_VAR(__GLEW_NV_geometry_shader4) + +#endif /* GL_NV_geometry_shader4 */ + +/* --------------------------- GL_NV_gpu_program4 -------------------------- */ + +#ifndef GL_NV_gpu_program4 +#define GL_NV_gpu_program4 1 + +#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 +#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 +#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 +#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 +#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 +#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); + +#define glProgramEnvParameterI4iNV GLEW_GET_FUN(__glewProgramEnvParameterI4iNV) +#define glProgramEnvParameterI4ivNV GLEW_GET_FUN(__glewProgramEnvParameterI4ivNV) +#define glProgramEnvParameterI4uiNV GLEW_GET_FUN(__glewProgramEnvParameterI4uiNV) +#define glProgramEnvParameterI4uivNV GLEW_GET_FUN(__glewProgramEnvParameterI4uivNV) +#define glProgramEnvParametersI4ivNV GLEW_GET_FUN(__glewProgramEnvParametersI4ivNV) +#define glProgramEnvParametersI4uivNV GLEW_GET_FUN(__glewProgramEnvParametersI4uivNV) +#define glProgramLocalParameterI4iNV GLEW_GET_FUN(__glewProgramLocalParameterI4iNV) +#define glProgramLocalParameterI4ivNV GLEW_GET_FUN(__glewProgramLocalParameterI4ivNV) +#define glProgramLocalParameterI4uiNV GLEW_GET_FUN(__glewProgramLocalParameterI4uiNV) +#define glProgramLocalParameterI4uivNV GLEW_GET_FUN(__glewProgramLocalParameterI4uivNV) +#define glProgramLocalParametersI4ivNV GLEW_GET_FUN(__glewProgramLocalParametersI4ivNV) +#define glProgramLocalParametersI4uivNV GLEW_GET_FUN(__glewProgramLocalParametersI4uivNV) + +#define GLEW_NV_gpu_program4 GLEW_GET_VAR(__GLEW_NV_gpu_program4) + +#endif /* GL_NV_gpu_program4 */ + +/* --------------------------- GL_NV_gpu_program5 -------------------------- */ + +#ifndef GL_NV_gpu_program5 +#define GL_NV_gpu_program5 1 + +#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C +#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F + +#define GLEW_NV_gpu_program5 GLEW_GET_VAR(__GLEW_NV_gpu_program5) + +#endif /* GL_NV_gpu_program5 */ + +/* -------------------- GL_NV_gpu_program5_mem_extended -------------------- */ + +#ifndef GL_NV_gpu_program5_mem_extended +#define GL_NV_gpu_program5_mem_extended 1 + +#define GLEW_NV_gpu_program5_mem_extended GLEW_GET_VAR(__GLEW_NV_gpu_program5_mem_extended) + +#endif /* GL_NV_gpu_program5_mem_extended */ + +/* ------------------------- GL_NV_gpu_program_fp64 ------------------------ */ + +#ifndef GL_NV_gpu_program_fp64 +#define GL_NV_gpu_program_fp64 1 + +#define GLEW_NV_gpu_program_fp64 GLEW_GET_VAR(__GLEW_NV_gpu_program_fp64) + +#endif /* GL_NV_gpu_program_fp64 */ + +/* --------------------------- GL_NV_gpu_shader5 --------------------------- */ + +#ifndef GL_NV_gpu_shader5 +#define GL_NV_gpu_shader5 1 + +#define GL_INT64_NV 0x140E +#define GL_UNSIGNED_INT64_NV 0x140F +#define GL_INT8_NV 0x8FE0 +#define GL_INT8_VEC2_NV 0x8FE1 +#define GL_INT8_VEC3_NV 0x8FE2 +#define GL_INT8_VEC4_NV 0x8FE3 +#define GL_INT16_NV 0x8FE4 +#define GL_INT16_VEC2_NV 0x8FE5 +#define GL_INT16_VEC3_NV 0x8FE6 +#define GL_INT16_VEC4_NV 0x8FE7 +#define GL_INT64_VEC2_NV 0x8FE9 +#define GL_INT64_VEC3_NV 0x8FEA +#define GL_INT64_VEC4_NV 0x8FEB +#define GL_UNSIGNED_INT8_NV 0x8FEC +#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED +#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE +#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF +#define GL_UNSIGNED_INT16_NV 0x8FF0 +#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 +#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 +#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 +#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 +#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 +#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#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); + +#define glGetUniformi64vNV GLEW_GET_FUN(__glewGetUniformi64vNV) +#define glGetUniformui64vNV GLEW_GET_FUN(__glewGetUniformui64vNV) +#define glProgramUniform1i64NV GLEW_GET_FUN(__glewProgramUniform1i64NV) +#define glProgramUniform1i64vNV GLEW_GET_FUN(__glewProgramUniform1i64vNV) +#define glProgramUniform1ui64NV GLEW_GET_FUN(__glewProgramUniform1ui64NV) +#define glProgramUniform1ui64vNV GLEW_GET_FUN(__glewProgramUniform1ui64vNV) +#define glProgramUniform2i64NV GLEW_GET_FUN(__glewProgramUniform2i64NV) +#define glProgramUniform2i64vNV GLEW_GET_FUN(__glewProgramUniform2i64vNV) +#define glProgramUniform2ui64NV GLEW_GET_FUN(__glewProgramUniform2ui64NV) +#define glProgramUniform2ui64vNV GLEW_GET_FUN(__glewProgramUniform2ui64vNV) +#define glProgramUniform3i64NV GLEW_GET_FUN(__glewProgramUniform3i64NV) +#define glProgramUniform3i64vNV GLEW_GET_FUN(__glewProgramUniform3i64vNV) +#define glProgramUniform3ui64NV GLEW_GET_FUN(__glewProgramUniform3ui64NV) +#define glProgramUniform3ui64vNV GLEW_GET_FUN(__glewProgramUniform3ui64vNV) +#define glProgramUniform4i64NV GLEW_GET_FUN(__glewProgramUniform4i64NV) +#define glProgramUniform4i64vNV GLEW_GET_FUN(__glewProgramUniform4i64vNV) +#define glProgramUniform4ui64NV GLEW_GET_FUN(__glewProgramUniform4ui64NV) +#define glProgramUniform4ui64vNV GLEW_GET_FUN(__glewProgramUniform4ui64vNV) +#define glUniform1i64NV GLEW_GET_FUN(__glewUniform1i64NV) +#define glUniform1i64vNV GLEW_GET_FUN(__glewUniform1i64vNV) +#define glUniform1ui64NV GLEW_GET_FUN(__glewUniform1ui64NV) +#define glUniform1ui64vNV GLEW_GET_FUN(__glewUniform1ui64vNV) +#define glUniform2i64NV GLEW_GET_FUN(__glewUniform2i64NV) +#define glUniform2i64vNV GLEW_GET_FUN(__glewUniform2i64vNV) +#define glUniform2ui64NV GLEW_GET_FUN(__glewUniform2ui64NV) +#define glUniform2ui64vNV GLEW_GET_FUN(__glewUniform2ui64vNV) +#define glUniform3i64NV GLEW_GET_FUN(__glewUniform3i64NV) +#define glUniform3i64vNV GLEW_GET_FUN(__glewUniform3i64vNV) +#define glUniform3ui64NV GLEW_GET_FUN(__glewUniform3ui64NV) +#define glUniform3ui64vNV GLEW_GET_FUN(__glewUniform3ui64vNV) +#define glUniform4i64NV GLEW_GET_FUN(__glewUniform4i64NV) +#define glUniform4i64vNV GLEW_GET_FUN(__glewUniform4i64vNV) +#define glUniform4ui64NV GLEW_GET_FUN(__glewUniform4ui64NV) +#define glUniform4ui64vNV GLEW_GET_FUN(__glewUniform4ui64vNV) + +#define GLEW_NV_gpu_shader5 GLEW_GET_VAR(__GLEW_NV_gpu_shader5) + +#endif /* GL_NV_gpu_shader5 */ + +/* ---------------------------- GL_NV_half_float --------------------------- */ + +#ifndef GL_NV_half_float +#define GL_NV_half_float 1 + +#define GL_HALF_FLOAT_NV 0x140B + +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); + +#define glColor3hNV GLEW_GET_FUN(__glewColor3hNV) +#define glColor3hvNV GLEW_GET_FUN(__glewColor3hvNV) +#define glColor4hNV GLEW_GET_FUN(__glewColor4hNV) +#define glColor4hvNV GLEW_GET_FUN(__glewColor4hvNV) +#define glFogCoordhNV GLEW_GET_FUN(__glewFogCoordhNV) +#define glFogCoordhvNV GLEW_GET_FUN(__glewFogCoordhvNV) +#define glMultiTexCoord1hNV GLEW_GET_FUN(__glewMultiTexCoord1hNV) +#define glMultiTexCoord1hvNV GLEW_GET_FUN(__glewMultiTexCoord1hvNV) +#define glMultiTexCoord2hNV GLEW_GET_FUN(__glewMultiTexCoord2hNV) +#define glMultiTexCoord2hvNV GLEW_GET_FUN(__glewMultiTexCoord2hvNV) +#define glMultiTexCoord3hNV GLEW_GET_FUN(__glewMultiTexCoord3hNV) +#define glMultiTexCoord3hvNV GLEW_GET_FUN(__glewMultiTexCoord3hvNV) +#define glMultiTexCoord4hNV GLEW_GET_FUN(__glewMultiTexCoord4hNV) +#define glMultiTexCoord4hvNV GLEW_GET_FUN(__glewMultiTexCoord4hvNV) +#define glNormal3hNV GLEW_GET_FUN(__glewNormal3hNV) +#define glNormal3hvNV GLEW_GET_FUN(__glewNormal3hvNV) +#define glSecondaryColor3hNV GLEW_GET_FUN(__glewSecondaryColor3hNV) +#define glSecondaryColor3hvNV GLEW_GET_FUN(__glewSecondaryColor3hvNV) +#define glTexCoord1hNV GLEW_GET_FUN(__glewTexCoord1hNV) +#define glTexCoord1hvNV GLEW_GET_FUN(__glewTexCoord1hvNV) +#define glTexCoord2hNV GLEW_GET_FUN(__glewTexCoord2hNV) +#define glTexCoord2hvNV GLEW_GET_FUN(__glewTexCoord2hvNV) +#define glTexCoord3hNV GLEW_GET_FUN(__glewTexCoord3hNV) +#define glTexCoord3hvNV GLEW_GET_FUN(__glewTexCoord3hvNV) +#define glTexCoord4hNV GLEW_GET_FUN(__glewTexCoord4hNV) +#define glTexCoord4hvNV GLEW_GET_FUN(__glewTexCoord4hvNV) +#define glVertex2hNV GLEW_GET_FUN(__glewVertex2hNV) +#define glVertex2hvNV GLEW_GET_FUN(__glewVertex2hvNV) +#define glVertex3hNV GLEW_GET_FUN(__glewVertex3hNV) +#define glVertex3hvNV GLEW_GET_FUN(__glewVertex3hvNV) +#define glVertex4hNV GLEW_GET_FUN(__glewVertex4hNV) +#define glVertex4hvNV GLEW_GET_FUN(__glewVertex4hvNV) +#define glVertexAttrib1hNV GLEW_GET_FUN(__glewVertexAttrib1hNV) +#define glVertexAttrib1hvNV GLEW_GET_FUN(__glewVertexAttrib1hvNV) +#define glVertexAttrib2hNV GLEW_GET_FUN(__glewVertexAttrib2hNV) +#define glVertexAttrib2hvNV GLEW_GET_FUN(__glewVertexAttrib2hvNV) +#define glVertexAttrib3hNV GLEW_GET_FUN(__glewVertexAttrib3hNV) +#define glVertexAttrib3hvNV GLEW_GET_FUN(__glewVertexAttrib3hvNV) +#define glVertexAttrib4hNV GLEW_GET_FUN(__glewVertexAttrib4hNV) +#define glVertexAttrib4hvNV GLEW_GET_FUN(__glewVertexAttrib4hvNV) +#define glVertexAttribs1hvNV GLEW_GET_FUN(__glewVertexAttribs1hvNV) +#define glVertexAttribs2hvNV GLEW_GET_FUN(__glewVertexAttribs2hvNV) +#define glVertexAttribs3hvNV GLEW_GET_FUN(__glewVertexAttribs3hvNV) +#define glVertexAttribs4hvNV GLEW_GET_FUN(__glewVertexAttribs4hvNV) +#define glVertexWeighthNV GLEW_GET_FUN(__glewVertexWeighthNV) +#define glVertexWeighthvNV GLEW_GET_FUN(__glewVertexWeighthvNV) + +#define GLEW_NV_half_float GLEW_GET_VAR(__GLEW_NV_half_float) + +#endif /* GL_NV_half_float */ + +/* ------------------------ GL_NV_light_max_exponent ----------------------- */ + +#ifndef GL_NV_light_max_exponent +#define GL_NV_light_max_exponent 1 + +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 + +#define GLEW_NV_light_max_exponent GLEW_GET_VAR(__GLEW_NV_light_max_exponent) + +#endif /* GL_NV_light_max_exponent */ + +/* ----------------------- GL_NV_multisample_coverage ---------------------- */ + +#ifndef GL_NV_multisample_coverage +#define GL_NV_multisample_coverage 1 + +#define GL_COLOR_SAMPLES_NV 0x8E20 + +#define GLEW_NV_multisample_coverage GLEW_GET_VAR(__GLEW_NV_multisample_coverage) + +#endif /* GL_NV_multisample_coverage */ + +/* --------------------- GL_NV_multisample_filter_hint --------------------- */ + +#ifndef GL_NV_multisample_filter_hint +#define GL_NV_multisample_filter_hint 1 + +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 + +#define GLEW_NV_multisample_filter_hint GLEW_GET_VAR(__GLEW_NV_multisample_filter_hint) + +#endif /* GL_NV_multisample_filter_hint */ + +/* ------------------------- GL_NV_occlusion_query ------------------------- */ + +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 + +#define GL_PIXEL_COUNTER_BITS_NV 0x8864 +#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 +#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); + +#define glBeginOcclusionQueryNV GLEW_GET_FUN(__glewBeginOcclusionQueryNV) +#define glDeleteOcclusionQueriesNV GLEW_GET_FUN(__glewDeleteOcclusionQueriesNV) +#define glEndOcclusionQueryNV GLEW_GET_FUN(__glewEndOcclusionQueryNV) +#define glGenOcclusionQueriesNV GLEW_GET_FUN(__glewGenOcclusionQueriesNV) +#define glGetOcclusionQueryivNV GLEW_GET_FUN(__glewGetOcclusionQueryivNV) +#define glGetOcclusionQueryuivNV GLEW_GET_FUN(__glewGetOcclusionQueryuivNV) +#define glIsOcclusionQueryNV GLEW_GET_FUN(__glewIsOcclusionQueryNV) + +#define GLEW_NV_occlusion_query GLEW_GET_VAR(__GLEW_NV_occlusion_query) + +#endif /* GL_NV_occlusion_query */ + +/* ----------------------- GL_NV_packed_depth_stencil ---------------------- */ + +#ifndef GL_NV_packed_depth_stencil +#define GL_NV_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_NV 0x84F9 +#define GL_UNSIGNED_INT_24_8_NV 0x84FA + +#define GLEW_NV_packed_depth_stencil GLEW_GET_VAR(__GLEW_NV_packed_depth_stencil) + +#endif /* GL_NV_packed_depth_stencil */ + +/* --------------------- GL_NV_parameter_buffer_object --------------------- */ + +#ifndef GL_NV_parameter_buffer_object +#define GL_NV_parameter_buffer_object 1 + +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 +#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 +#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); + +#define glProgramBufferParametersIivNV GLEW_GET_FUN(__glewProgramBufferParametersIivNV) +#define glProgramBufferParametersIuivNV GLEW_GET_FUN(__glewProgramBufferParametersIuivNV) +#define glProgramBufferParametersfvNV GLEW_GET_FUN(__glewProgramBufferParametersfvNV) + +#define GLEW_NV_parameter_buffer_object GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object) + +#endif /* GL_NV_parameter_buffer_object */ + +/* --------------------- GL_NV_parameter_buffer_object2 -------------------- */ + +#ifndef GL_NV_parameter_buffer_object2 +#define GL_NV_parameter_buffer_object2 1 + +#define GLEW_NV_parameter_buffer_object2 GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object2) + +#endif /* GL_NV_parameter_buffer_object2 */ + +/* -------------------------- GL_NV_path_rendering ------------------------- */ + +#ifndef GL_NV_path_rendering +#define GL_NV_path_rendering 1 + +#define GL_CLOSE_PATH_NV 0x00 +#define GL_BOLD_BIT_NV 0x01 +#define GL_GLYPH_WIDTH_BIT_NV 0x01 +#define GL_GLYPH_HEIGHT_BIT_NV 0x02 +#define GL_ITALIC_BIT_NV 0x02 +#define GL_MOVE_TO_NV 0x02 +#define GL_RELATIVE_MOVE_TO_NV 0x03 +#define GL_LINE_TO_NV 0x04 +#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 +#define GL_RELATIVE_LINE_TO_NV 0x05 +#define GL_HORIZONTAL_LINE_TO_NV 0x06 +#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 +#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 +#define GL_VERTICAL_LINE_TO_NV 0x08 +#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 +#define GL_QUADRATIC_CURVE_TO_NV 0x0A +#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B +#define GL_CUBIC_CURVE_TO_NV 0x0C +#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D +#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E +#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F +#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 +#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 +#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 +#define GL_SMALL_CCW_ARC_TO_NV 0x12 +#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 +#define GL_SMALL_CW_ARC_TO_NV 0x14 +#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 +#define GL_LARGE_CCW_ARC_TO_NV 0x16 +#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 +#define GL_LARGE_CW_ARC_TO_NV 0x18 +#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 +#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 +#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 +#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 +#define GL_RESTART_PATH_NV 0xF0 +#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 +#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 +#define GL_RECT_NV 0xF6 +#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 +#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA +#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC +#define GL_ARC_TO_NV 0xFE +#define GL_RELATIVE_ARC_TO_NV 0xFF +#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PATH_FORMAT_SVG_NV 0x9070 +#define GL_PATH_FORMAT_PS_NV 0x9071 +#define GL_STANDARD_FONT_NAME_NV 0x9072 +#define GL_SYSTEM_FONT_NAME_NV 0x9073 +#define GL_FILE_NAME_NV 0x9074 +#define GL_PATH_STROKE_WIDTH_NV 0x9075 +#define GL_PATH_END_CAPS_NV 0x9076 +#define GL_PATH_INITIAL_END_CAP_NV 0x9077 +#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 +#define GL_PATH_JOIN_STYLE_NV 0x9079 +#define GL_PATH_MITER_LIMIT_NV 0x907A +#define GL_PATH_DASH_CAPS_NV 0x907B +#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C +#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D +#define GL_PATH_DASH_OFFSET_NV 0x907E +#define GL_PATH_CLIENT_LENGTH_NV 0x907F +#define GL_PATH_FILL_MODE_NV 0x9080 +#define GL_PATH_FILL_MASK_NV 0x9081 +#define GL_PATH_FILL_COVER_MODE_NV 0x9082 +#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 +#define GL_PATH_STROKE_MASK_NV 0x9084 +#define GL_COUNT_UP_NV 0x9088 +#define GL_COUNT_DOWN_NV 0x9089 +#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A +#define GL_CONVEX_HULL_NV 0x908B +#define GL_BOUNDING_BOX_NV 0x908D +#define GL_TRANSLATE_X_NV 0x908E +#define GL_TRANSLATE_Y_NV 0x908F +#define GL_TRANSLATE_2D_NV 0x9090 +#define GL_TRANSLATE_3D_NV 0x9091 +#define GL_AFFINE_2D_NV 0x9092 +#define GL_AFFINE_3D_NV 0x9094 +#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 +#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 +#define GL_UTF8_NV 0x909A +#define GL_UTF16_NV 0x909B +#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C +#define GL_PATH_COMMAND_COUNT_NV 0x909D +#define GL_PATH_COORD_COUNT_NV 0x909E +#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F +#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 +#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 +#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 +#define GL_SQUARE_NV 0x90A3 +#define GL_ROUND_NV 0x90A4 +#define GL_TRIANGULAR_NV 0x90A5 +#define GL_BEVEL_NV 0x90A6 +#define GL_MITER_REVERT_NV 0x90A7 +#define GL_MITER_TRUNCATE_NV 0x90A8 +#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 +#define GL_USE_MISSING_GLYPH_NV 0x90AA +#define GL_PATH_ERROR_POSITION_NV 0x90AB +#define GL_PATH_FOG_GEN_MODE_NV 0x90AC +#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD +#define GL_ADJACENT_PAIRS_NV 0x90AE +#define GL_FIRST_TO_REST_NV 0x90AF +#define GL_PATH_GEN_MODE_NV 0x90B0 +#define GL_PATH_GEN_COEFF_NV 0x90B1 +#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 +#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 +#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 +#define GL_MOVE_TO_RESETS_NV 0x90B5 +#define GL_MOVE_TO_CONTINUES_NV 0x90B6 +#define GL_PATH_STENCIL_FUNC_NV 0x90B7 +#define GL_PATH_STENCIL_REF_NV 0x90B8 +#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 +#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD +#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE +#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF +#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 +#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 +#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 +#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 +#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 +#define GL_FONT_ASCENDER_BIT_NV 0x00200000 +#define GL_FONT_DESCENDER_BIT_NV 0x00400000 +#define GL_FONT_HEIGHT_BIT_NV 0x00800000 +#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 +#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 +#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 +#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[]); + +#define glCopyPathNV GLEW_GET_FUN(__glewCopyPathNV) +#define glCoverFillPathInstancedNV GLEW_GET_FUN(__glewCoverFillPathInstancedNV) +#define glCoverFillPathNV GLEW_GET_FUN(__glewCoverFillPathNV) +#define glCoverStrokePathInstancedNV GLEW_GET_FUN(__glewCoverStrokePathInstancedNV) +#define glCoverStrokePathNV GLEW_GET_FUN(__glewCoverStrokePathNV) +#define glDeletePathsNV GLEW_GET_FUN(__glewDeletePathsNV) +#define glGenPathsNV GLEW_GET_FUN(__glewGenPathsNV) +#define glGetPathColorGenfvNV GLEW_GET_FUN(__glewGetPathColorGenfvNV) +#define glGetPathColorGenivNV GLEW_GET_FUN(__glewGetPathColorGenivNV) +#define glGetPathCommandsNV GLEW_GET_FUN(__glewGetPathCommandsNV) +#define glGetPathCoordsNV GLEW_GET_FUN(__glewGetPathCoordsNV) +#define glGetPathDashArrayNV GLEW_GET_FUN(__glewGetPathDashArrayNV) +#define glGetPathLengthNV GLEW_GET_FUN(__glewGetPathLengthNV) +#define glGetPathMetricRangeNV GLEW_GET_FUN(__glewGetPathMetricRangeNV) +#define glGetPathMetricsNV GLEW_GET_FUN(__glewGetPathMetricsNV) +#define glGetPathParameterfvNV GLEW_GET_FUN(__glewGetPathParameterfvNV) +#define glGetPathParameterivNV GLEW_GET_FUN(__glewGetPathParameterivNV) +#define glGetPathSpacingNV GLEW_GET_FUN(__glewGetPathSpacingNV) +#define glGetPathTexGenfvNV GLEW_GET_FUN(__glewGetPathTexGenfvNV) +#define glGetPathTexGenivNV GLEW_GET_FUN(__glewGetPathTexGenivNV) +#define glInterpolatePathsNV GLEW_GET_FUN(__glewInterpolatePathsNV) +#define glIsPathNV GLEW_GET_FUN(__glewIsPathNV) +#define glIsPointInFillPathNV GLEW_GET_FUN(__glewIsPointInFillPathNV) +#define glIsPointInStrokePathNV GLEW_GET_FUN(__glewIsPointInStrokePathNV) +#define glPathColorGenNV GLEW_GET_FUN(__glewPathColorGenNV) +#define glPathCommandsNV GLEW_GET_FUN(__glewPathCommandsNV) +#define glPathCoordsNV GLEW_GET_FUN(__glewPathCoordsNV) +#define glPathCoverDepthFuncNV GLEW_GET_FUN(__glewPathCoverDepthFuncNV) +#define glPathDashArrayNV GLEW_GET_FUN(__glewPathDashArrayNV) +#define glPathFogGenNV GLEW_GET_FUN(__glewPathFogGenNV) +#define glPathGlyphRangeNV GLEW_GET_FUN(__glewPathGlyphRangeNV) +#define glPathGlyphsNV GLEW_GET_FUN(__glewPathGlyphsNV) +#define glPathParameterfNV GLEW_GET_FUN(__glewPathParameterfNV) +#define glPathParameterfvNV GLEW_GET_FUN(__glewPathParameterfvNV) +#define glPathParameteriNV GLEW_GET_FUN(__glewPathParameteriNV) +#define glPathParameterivNV GLEW_GET_FUN(__glewPathParameterivNV) +#define glPathStencilDepthOffsetNV GLEW_GET_FUN(__glewPathStencilDepthOffsetNV) +#define glPathStencilFuncNV GLEW_GET_FUN(__glewPathStencilFuncNV) +#define glPathStringNV GLEW_GET_FUN(__glewPathStringNV) +#define glPathSubCommandsNV GLEW_GET_FUN(__glewPathSubCommandsNV) +#define glPathSubCoordsNV GLEW_GET_FUN(__glewPathSubCoordsNV) +#define glPathTexGenNV GLEW_GET_FUN(__glewPathTexGenNV) +#define glPointAlongPathNV GLEW_GET_FUN(__glewPointAlongPathNV) +#define glStencilFillPathInstancedNV GLEW_GET_FUN(__glewStencilFillPathInstancedNV) +#define glStencilFillPathNV GLEW_GET_FUN(__glewStencilFillPathNV) +#define glStencilStrokePathInstancedNV GLEW_GET_FUN(__glewStencilStrokePathInstancedNV) +#define glStencilStrokePathNV GLEW_GET_FUN(__glewStencilStrokePathNV) +#define glTransformPathNV GLEW_GET_FUN(__glewTransformPathNV) +#define glWeightPathsNV GLEW_GET_FUN(__glewWeightPathsNV) + +#define GLEW_NV_path_rendering GLEW_GET_VAR(__GLEW_NV_path_rendering) + +#endif /* GL_NV_path_rendering */ + +/* ------------------------- GL_NV_pixel_data_range ------------------------ */ + +#ifndef GL_NV_pixel_data_range +#define GL_NV_pixel_data_range 1 + +#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 +#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 +#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A +#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B +#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, GLvoid *pointer); + +#define glFlushPixelDataRangeNV GLEW_GET_FUN(__glewFlushPixelDataRangeNV) +#define glPixelDataRangeNV GLEW_GET_FUN(__glewPixelDataRangeNV) + +#define GLEW_NV_pixel_data_range GLEW_GET_VAR(__GLEW_NV_pixel_data_range) + +#endif /* GL_NV_pixel_data_range */ + +/* --------------------------- GL_NV_point_sprite -------------------------- */ + +#ifndef GL_NV_point_sprite +#define GL_NV_point_sprite 1 + +#define GL_POINT_SPRITE_NV 0x8861 +#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); + +#define glPointParameteriNV GLEW_GET_FUN(__glewPointParameteriNV) +#define glPointParameterivNV GLEW_GET_FUN(__glewPointParameterivNV) + +#define GLEW_NV_point_sprite GLEW_GET_VAR(__GLEW_NV_point_sprite) + +#endif /* GL_NV_point_sprite */ + +/* -------------------------- GL_NV_present_video -------------------------- */ + +#ifndef GL_NV_present_video +#define GL_NV_present_video 1 + +#define GL_FRAME_NV 0x8E26 +#define GL_FIELDS_NV 0x8E27 +#define GL_CURRENT_TIME_NV 0x8E28 +#define GL_NUM_FILL_STREAMS_NV 0x8E29 +#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); + +#define glGetVideoi64vNV GLEW_GET_FUN(__glewGetVideoi64vNV) +#define glGetVideoivNV GLEW_GET_FUN(__glewGetVideoivNV) +#define glGetVideoui64vNV GLEW_GET_FUN(__glewGetVideoui64vNV) +#define glGetVideouivNV GLEW_GET_FUN(__glewGetVideouivNV) +#define glPresentFrameDualFillNV GLEW_GET_FUN(__glewPresentFrameDualFillNV) +#define glPresentFrameKeyedNV GLEW_GET_FUN(__glewPresentFrameKeyedNV) + +#define GLEW_NV_present_video GLEW_GET_VAR(__GLEW_NV_present_video) + +#endif /* GL_NV_present_video */ + +/* ------------------------ GL_NV_primitive_restart ------------------------ */ + +#ifndef GL_NV_primitive_restart +#define GL_NV_primitive_restart 1 + +#define GL_PRIMITIVE_RESTART_NV 0x8558 +#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 + +typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void); + +#define glPrimitiveRestartIndexNV GLEW_GET_FUN(__glewPrimitiveRestartIndexNV) +#define glPrimitiveRestartNV GLEW_GET_FUN(__glewPrimitiveRestartNV) + +#define GLEW_NV_primitive_restart GLEW_GET_VAR(__GLEW_NV_primitive_restart) + +#endif /* GL_NV_primitive_restart */ + +/* ------------------------ GL_NV_register_combiners ----------------------- */ + +#ifndef GL_NV_register_combiners +#define GL_NV_register_combiners 1 + +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#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); + +#define glCombinerInputNV GLEW_GET_FUN(__glewCombinerInputNV) +#define glCombinerOutputNV GLEW_GET_FUN(__glewCombinerOutputNV) +#define glCombinerParameterfNV GLEW_GET_FUN(__glewCombinerParameterfNV) +#define glCombinerParameterfvNV GLEW_GET_FUN(__glewCombinerParameterfvNV) +#define glCombinerParameteriNV GLEW_GET_FUN(__glewCombinerParameteriNV) +#define glCombinerParameterivNV GLEW_GET_FUN(__glewCombinerParameterivNV) +#define glFinalCombinerInputNV GLEW_GET_FUN(__glewFinalCombinerInputNV) +#define glGetCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetCombinerInputParameterfvNV) +#define glGetCombinerInputParameterivNV GLEW_GET_FUN(__glewGetCombinerInputParameterivNV) +#define glGetCombinerOutputParameterfvNV GLEW_GET_FUN(__glewGetCombinerOutputParameterfvNV) +#define glGetCombinerOutputParameterivNV GLEW_GET_FUN(__glewGetCombinerOutputParameterivNV) +#define glGetFinalCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterfvNV) +#define glGetFinalCombinerInputParameterivNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterivNV) + +#define GLEW_NV_register_combiners GLEW_GET_VAR(__GLEW_NV_register_combiners) + +#endif /* GL_NV_register_combiners */ + +/* ----------------------- GL_NV_register_combiners2 ----------------------- */ + +#ifndef GL_NV_register_combiners2 +#define GL_NV_register_combiners2 1 + +#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); + +#define glCombinerStageParameterfvNV GLEW_GET_FUN(__glewCombinerStageParameterfvNV) +#define glGetCombinerStageParameterfvNV GLEW_GET_FUN(__glewGetCombinerStageParameterfvNV) + +#define GLEW_NV_register_combiners2 GLEW_GET_VAR(__GLEW_NV_register_combiners2) + +#endif /* GL_NV_register_combiners2 */ + +/* ---------------------- GL_NV_shader_atomic_counters --------------------- */ + +#ifndef GL_NV_shader_atomic_counters +#define GL_NV_shader_atomic_counters 1 + +#define GLEW_NV_shader_atomic_counters GLEW_GET_VAR(__GLEW_NV_shader_atomic_counters) + +#endif /* GL_NV_shader_atomic_counters */ + +/* ----------------------- GL_NV_shader_atomic_float ----------------------- */ + +#ifndef GL_NV_shader_atomic_float +#define GL_NV_shader_atomic_float 1 + +#define GLEW_NV_shader_atomic_float GLEW_GET_VAR(__GLEW_NV_shader_atomic_float) + +#endif /* GL_NV_shader_atomic_float */ + +/* ------------------------ GL_NV_shader_buffer_load ----------------------- */ + +#ifndef GL_NV_shader_buffer_load +#define GL_NV_shader_buffer_load 1 + +#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D +#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); + +#define glGetBufferParameterui64vNV GLEW_GET_FUN(__glewGetBufferParameterui64vNV) +#define glGetIntegerui64vNV GLEW_GET_FUN(__glewGetIntegerui64vNV) +#define glGetNamedBufferParameterui64vNV GLEW_GET_FUN(__glewGetNamedBufferParameterui64vNV) +#define glIsBufferResidentNV GLEW_GET_FUN(__glewIsBufferResidentNV) +#define glIsNamedBufferResidentNV GLEW_GET_FUN(__glewIsNamedBufferResidentNV) +#define glMakeBufferNonResidentNV GLEW_GET_FUN(__glewMakeBufferNonResidentNV) +#define glMakeBufferResidentNV GLEW_GET_FUN(__glewMakeBufferResidentNV) +#define glMakeNamedBufferNonResidentNV GLEW_GET_FUN(__glewMakeNamedBufferNonResidentNV) +#define glMakeNamedBufferResidentNV GLEW_GET_FUN(__glewMakeNamedBufferResidentNV) +#define glProgramUniformui64NV GLEW_GET_FUN(__glewProgramUniformui64NV) +#define glProgramUniformui64vNV GLEW_GET_FUN(__glewProgramUniformui64vNV) +#define glUniformui64NV GLEW_GET_FUN(__glewUniformui64NV) +#define glUniformui64vNV GLEW_GET_FUN(__glewUniformui64vNV) + +#define GLEW_NV_shader_buffer_load GLEW_GET_VAR(__GLEW_NV_shader_buffer_load) + +#endif /* GL_NV_shader_buffer_load */ + +/* ------------------- GL_NV_shader_storage_buffer_object ------------------ */ + +#ifndef GL_NV_shader_storage_buffer_object +#define GL_NV_shader_storage_buffer_object 1 + +#define GLEW_NV_shader_storage_buffer_object GLEW_GET_VAR(__GLEW_NV_shader_storage_buffer_object) + +#endif /* GL_NV_shader_storage_buffer_object */ + +/* ---------------------- GL_NV_tessellation_program5 ---------------------- */ + +#ifndef GL_NV_tessellation_program5 +#define GL_NV_tessellation_program5 1 + +#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 +#define GL_TESS_CONTROL_PROGRAM_NV 0x891E +#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F +#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 +#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 + +#define GLEW_NV_tessellation_program5 GLEW_GET_VAR(__GLEW_NV_tessellation_program5) + +#endif /* GL_NV_tessellation_program5 */ + +/* -------------------------- GL_NV_texgen_emboss -------------------------- */ + +#ifndef GL_NV_texgen_emboss +#define GL_NV_texgen_emboss 1 + +#define GL_EMBOSS_LIGHT_NV 0x855D +#define GL_EMBOSS_CONSTANT_NV 0x855E +#define GL_EMBOSS_MAP_NV 0x855F + +#define GLEW_NV_texgen_emboss GLEW_GET_VAR(__GLEW_NV_texgen_emboss) + +#endif /* GL_NV_texgen_emboss */ + +/* ------------------------ GL_NV_texgen_reflection ------------------------ */ + +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 + +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 + +#define GLEW_NV_texgen_reflection GLEW_GET_VAR(__GLEW_NV_texgen_reflection) + +#endif /* GL_NV_texgen_reflection */ + +/* ------------------------- GL_NV_texture_barrier ------------------------- */ + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 + +typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void); + +#define glTextureBarrierNV GLEW_GET_FUN(__glewTextureBarrierNV) + +#define GLEW_NV_texture_barrier GLEW_GET_VAR(__GLEW_NV_texture_barrier) + +#endif /* GL_NV_texture_barrier */ + +/* --------------------- GL_NV_texture_compression_vtc --------------------- */ + +#ifndef GL_NV_texture_compression_vtc +#define GL_NV_texture_compression_vtc 1 + +#define GLEW_NV_texture_compression_vtc GLEW_GET_VAR(__GLEW_NV_texture_compression_vtc) + +#endif /* GL_NV_texture_compression_vtc */ + +/* ----------------------- GL_NV_texture_env_combine4 ---------------------- */ + +#ifndef GL_NV_texture_env_combine4 +#define GL_NV_texture_env_combine4 1 + +#define GL_COMBINE4_NV 0x8503 +#define GL_SOURCE3_RGB_NV 0x8583 +#define GL_SOURCE3_ALPHA_NV 0x858B +#define GL_OPERAND3_RGB_NV 0x8593 +#define GL_OPERAND3_ALPHA_NV 0x859B + +#define GLEW_NV_texture_env_combine4 GLEW_GET_VAR(__GLEW_NV_texture_env_combine4) + +#endif /* GL_NV_texture_env_combine4 */ + +/* ---------------------- GL_NV_texture_expand_normal ---------------------- */ + +#ifndef GL_NV_texture_expand_normal +#define GL_NV_texture_expand_normal 1 + +#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F + +#define GLEW_NV_texture_expand_normal GLEW_GET_VAR(__GLEW_NV_texture_expand_normal) + +#endif /* GL_NV_texture_expand_normal */ + +/* ----------------------- GL_NV_texture_multisample ----------------------- */ + +#ifndef GL_NV_texture_multisample +#define GL_NV_texture_multisample 1 + +#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); + +#define glTexImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage2DMultisampleCoverageNV) +#define glTexImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage3DMultisampleCoverageNV) +#define glTextureImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage2DMultisampleCoverageNV) +#define glTextureImage2DMultisampleNV GLEW_GET_FUN(__glewTextureImage2DMultisampleNV) +#define glTextureImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage3DMultisampleCoverageNV) +#define glTextureImage3DMultisampleNV GLEW_GET_FUN(__glewTextureImage3DMultisampleNV) + +#define GLEW_NV_texture_multisample GLEW_GET_VAR(__GLEW_NV_texture_multisample) + +#endif /* GL_NV_texture_multisample */ + +/* ------------------------ GL_NV_texture_rectangle ------------------------ */ + +#ifndef GL_NV_texture_rectangle +#define GL_NV_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_NV 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 + +#define GLEW_NV_texture_rectangle GLEW_GET_VAR(__GLEW_NV_texture_rectangle) + +#endif /* GL_NV_texture_rectangle */ + +/* -------------------------- GL_NV_texture_shader ------------------------- */ + +#ifndef GL_NV_texture_shader +#define GL_NV_texture_shader 1 + +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F + +#define GLEW_NV_texture_shader GLEW_GET_VAR(__GLEW_NV_texture_shader) + +#endif /* GL_NV_texture_shader */ + +/* ------------------------- GL_NV_texture_shader2 ------------------------- */ + +#ifndef GL_NV_texture_shader2 +#define GL_NV_texture_shader2 1 + +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D + +#define GLEW_NV_texture_shader2 GLEW_GET_VAR(__GLEW_NV_texture_shader2) + +#endif /* GL_NV_texture_shader2 */ + +/* ------------------------- GL_NV_texture_shader3 ------------------------- */ + +#ifndef GL_NV_texture_shader3 +#define GL_NV_texture_shader3 1 + +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 + +#define GLEW_NV_texture_shader3 GLEW_GET_VAR(__GLEW_NV_texture_shader3) + +#endif /* GL_NV_texture_shader3 */ + +/* ------------------------ GL_NV_transform_feedback ----------------------- */ + +#ifndef GL_NV_transform_feedback +#define GL_NV_transform_feedback 1 + +#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 +#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 +#define GL_TEXTURE_COORD_NV 0x8C79 +#define GL_CLIP_DISTANCE_NV 0x8C7A +#define GL_VERTEX_ID_NV 0x8C7B +#define GL_PRIMITIVE_ID_NV 0x8C7C +#define GL_GENERIC_ATTRIB_NV 0x8C7D +#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 +#define GL_ACTIVE_VARYINGS_NV 0x8C81 +#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 +#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 +#define GL_PRIMITIVES_GENERATED_NV 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 +#define GL_RASTERIZER_DISCARD_NV 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C +#define GL_SEPARATE_ATTRIBS_NV 0x8C8D +#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); + +#define glActiveVaryingNV GLEW_GET_FUN(__glewActiveVaryingNV) +#define glBeginTransformFeedbackNV GLEW_GET_FUN(__glewBeginTransformFeedbackNV) +#define glBindBufferBaseNV GLEW_GET_FUN(__glewBindBufferBaseNV) +#define glBindBufferOffsetNV GLEW_GET_FUN(__glewBindBufferOffsetNV) +#define glBindBufferRangeNV GLEW_GET_FUN(__glewBindBufferRangeNV) +#define glEndTransformFeedbackNV GLEW_GET_FUN(__glewEndTransformFeedbackNV) +#define glGetActiveVaryingNV GLEW_GET_FUN(__glewGetActiveVaryingNV) +#define glGetTransformFeedbackVaryingNV GLEW_GET_FUN(__glewGetTransformFeedbackVaryingNV) +#define glGetVaryingLocationNV GLEW_GET_FUN(__glewGetVaryingLocationNV) +#define glTransformFeedbackAttribsNV GLEW_GET_FUN(__glewTransformFeedbackAttribsNV) +#define glTransformFeedbackVaryingsNV GLEW_GET_FUN(__glewTransformFeedbackVaryingsNV) + +#define GLEW_NV_transform_feedback GLEW_GET_VAR(__GLEW_NV_transform_feedback) + +#endif /* GL_NV_transform_feedback */ + +/* ----------------------- GL_NV_transform_feedback2 ----------------------- */ + +#ifndef GL_NV_transform_feedback2 +#define GL_NV_transform_feedback2 1 + +#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 +#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); + +#define glBindTransformFeedbackNV GLEW_GET_FUN(__glewBindTransformFeedbackNV) +#define glDeleteTransformFeedbacksNV GLEW_GET_FUN(__glewDeleteTransformFeedbacksNV) +#define glDrawTransformFeedbackNV GLEW_GET_FUN(__glewDrawTransformFeedbackNV) +#define glGenTransformFeedbacksNV GLEW_GET_FUN(__glewGenTransformFeedbacksNV) +#define glIsTransformFeedbackNV GLEW_GET_FUN(__glewIsTransformFeedbackNV) +#define glPauseTransformFeedbackNV GLEW_GET_FUN(__glewPauseTransformFeedbackNV) +#define glResumeTransformFeedbackNV GLEW_GET_FUN(__glewResumeTransformFeedbackNV) + +#define GLEW_NV_transform_feedback2 GLEW_GET_VAR(__GLEW_NV_transform_feedback2) + +#endif /* GL_NV_transform_feedback2 */ + +/* -------------------------- GL_NV_vdpau_interop -------------------------- */ + +#ifndef GL_NV_vdpau_interop +#define GL_NV_vdpau_interop 1 + +#define GL_SURFACE_STATE_NV 0x86EB +#define GL_SURFACE_REGISTERED_NV 0x86FD +#define GL_SURFACE_MAPPED_NV 0x8700 +#define GL_WRITE_DISCARD_NV 0x88BE + +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); + +#define glVDPAUFiniNV GLEW_GET_FUN(__glewVDPAUFiniNV) +#define glVDPAUGetSurfaceivNV GLEW_GET_FUN(__glewVDPAUGetSurfaceivNV) +#define glVDPAUInitNV GLEW_GET_FUN(__glewVDPAUInitNV) +#define glVDPAUIsSurfaceNV GLEW_GET_FUN(__glewVDPAUIsSurfaceNV) +#define glVDPAUMapSurfacesNV GLEW_GET_FUN(__glewVDPAUMapSurfacesNV) +#define glVDPAURegisterOutputSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterOutputSurfaceNV) +#define glVDPAURegisterVideoSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceNV) +#define glVDPAUSurfaceAccessNV GLEW_GET_FUN(__glewVDPAUSurfaceAccessNV) +#define glVDPAUUnmapSurfacesNV GLEW_GET_FUN(__glewVDPAUUnmapSurfacesNV) +#define glVDPAUUnregisterSurfaceNV GLEW_GET_FUN(__glewVDPAUUnregisterSurfaceNV) + +#define GLEW_NV_vdpau_interop GLEW_GET_VAR(__GLEW_NV_vdpau_interop) + +#endif /* GL_NV_vdpau_interop */ + +/* ------------------------ GL_NV_vertex_array_range ----------------------- */ + +#ifndef GL_NV_vertex_array_range +#define GL_NV_vertex_array_range 1 + +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#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, GLvoid *pointer); + +#define glFlushVertexArrayRangeNV GLEW_GET_FUN(__glewFlushVertexArrayRangeNV) +#define glVertexArrayRangeNV GLEW_GET_FUN(__glewVertexArrayRangeNV) + +#define GLEW_NV_vertex_array_range GLEW_GET_VAR(__GLEW_NV_vertex_array_range) + +#endif /* GL_NV_vertex_array_range */ + +/* ----------------------- GL_NV_vertex_array_range2 ----------------------- */ + +#ifndef GL_NV_vertex_array_range2 +#define GL_NV_vertex_array_range2 1 + +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 + +#define GLEW_NV_vertex_array_range2 GLEW_GET_VAR(__GLEW_NV_vertex_array_range2) + +#endif /* GL_NV_vertex_array_range2 */ + +/* ------------------- GL_NV_vertex_attrib_integer_64bit ------------------- */ + +#ifndef GL_NV_vertex_attrib_integer_64bit +#define GL_NV_vertex_attrib_integer_64bit 1 + +#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); + +#define glGetVertexAttribLi64vNV GLEW_GET_FUN(__glewGetVertexAttribLi64vNV) +#define glGetVertexAttribLui64vNV GLEW_GET_FUN(__glewGetVertexAttribLui64vNV) +#define glVertexAttribL1i64NV GLEW_GET_FUN(__glewVertexAttribL1i64NV) +#define glVertexAttribL1i64vNV GLEW_GET_FUN(__glewVertexAttribL1i64vNV) +#define glVertexAttribL1ui64NV GLEW_GET_FUN(__glewVertexAttribL1ui64NV) +#define glVertexAttribL1ui64vNV GLEW_GET_FUN(__glewVertexAttribL1ui64vNV) +#define glVertexAttribL2i64NV GLEW_GET_FUN(__glewVertexAttribL2i64NV) +#define glVertexAttribL2i64vNV GLEW_GET_FUN(__glewVertexAttribL2i64vNV) +#define glVertexAttribL2ui64NV GLEW_GET_FUN(__glewVertexAttribL2ui64NV) +#define glVertexAttribL2ui64vNV GLEW_GET_FUN(__glewVertexAttribL2ui64vNV) +#define glVertexAttribL3i64NV GLEW_GET_FUN(__glewVertexAttribL3i64NV) +#define glVertexAttribL3i64vNV GLEW_GET_FUN(__glewVertexAttribL3i64vNV) +#define glVertexAttribL3ui64NV GLEW_GET_FUN(__glewVertexAttribL3ui64NV) +#define glVertexAttribL3ui64vNV GLEW_GET_FUN(__glewVertexAttribL3ui64vNV) +#define glVertexAttribL4i64NV GLEW_GET_FUN(__glewVertexAttribL4i64NV) +#define glVertexAttribL4i64vNV GLEW_GET_FUN(__glewVertexAttribL4i64vNV) +#define glVertexAttribL4ui64NV GLEW_GET_FUN(__glewVertexAttribL4ui64NV) +#define glVertexAttribL4ui64vNV GLEW_GET_FUN(__glewVertexAttribL4ui64vNV) +#define glVertexAttribLFormatNV GLEW_GET_FUN(__glewVertexAttribLFormatNV) + +#define GLEW_NV_vertex_attrib_integer_64bit GLEW_GET_VAR(__GLEW_NV_vertex_attrib_integer_64bit) + +#endif /* GL_NV_vertex_attrib_integer_64bit */ + +/* ------------------- GL_NV_vertex_buffer_unified_memory ------------------ */ + +#ifndef GL_NV_vertex_buffer_unified_memory +#define GL_NV_vertex_buffer_unified_memory 1 + +#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E +#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F +#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 +#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 +#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 +#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 +#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 +#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 +#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 +#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 +#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 +#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 +#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A +#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B +#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C +#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D +#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E +#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F +#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 +#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 +#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 +#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 +#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 +#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); + +#define glBufferAddressRangeNV GLEW_GET_FUN(__glewBufferAddressRangeNV) +#define glColorFormatNV GLEW_GET_FUN(__glewColorFormatNV) +#define glEdgeFlagFormatNV GLEW_GET_FUN(__glewEdgeFlagFormatNV) +#define glFogCoordFormatNV GLEW_GET_FUN(__glewFogCoordFormatNV) +#define glGetIntegerui64i_vNV GLEW_GET_FUN(__glewGetIntegerui64i_vNV) +#define glIndexFormatNV GLEW_GET_FUN(__glewIndexFormatNV) +#define glNormalFormatNV GLEW_GET_FUN(__glewNormalFormatNV) +#define glSecondaryColorFormatNV GLEW_GET_FUN(__glewSecondaryColorFormatNV) +#define glTexCoordFormatNV GLEW_GET_FUN(__glewTexCoordFormatNV) +#define glVertexAttribFormatNV GLEW_GET_FUN(__glewVertexAttribFormatNV) +#define glVertexAttribIFormatNV GLEW_GET_FUN(__glewVertexAttribIFormatNV) +#define glVertexFormatNV GLEW_GET_FUN(__glewVertexFormatNV) + +#define GLEW_NV_vertex_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_vertex_buffer_unified_memory) + +#endif /* GL_NV_vertex_buffer_unified_memory */ + +/* -------------------------- GL_NV_vertex_program ------------------------- */ + +#ifndef GL_NV_vertex_program +#define GL_NV_vertex_program 1 + +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#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 GLvoid *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) +#define glDeleteProgramsNV GLEW_GET_FUN(__glewDeleteProgramsNV) +#define glExecuteProgramNV GLEW_GET_FUN(__glewExecuteProgramNV) +#define glGenProgramsNV GLEW_GET_FUN(__glewGenProgramsNV) +#define glGetProgramParameterdvNV GLEW_GET_FUN(__glewGetProgramParameterdvNV) +#define glGetProgramParameterfvNV GLEW_GET_FUN(__glewGetProgramParameterfvNV) +#define glGetProgramStringNV GLEW_GET_FUN(__glewGetProgramStringNV) +#define glGetProgramivNV GLEW_GET_FUN(__glewGetProgramivNV) +#define glGetTrackMatrixivNV GLEW_GET_FUN(__glewGetTrackMatrixivNV) +#define glGetVertexAttribPointervNV GLEW_GET_FUN(__glewGetVertexAttribPointervNV) +#define glGetVertexAttribdvNV GLEW_GET_FUN(__glewGetVertexAttribdvNV) +#define glGetVertexAttribfvNV GLEW_GET_FUN(__glewGetVertexAttribfvNV) +#define glGetVertexAttribivNV GLEW_GET_FUN(__glewGetVertexAttribivNV) +#define glIsProgramNV GLEW_GET_FUN(__glewIsProgramNV) +#define glLoadProgramNV GLEW_GET_FUN(__glewLoadProgramNV) +#define glProgramParameter4dNV GLEW_GET_FUN(__glewProgramParameter4dNV) +#define glProgramParameter4dvNV GLEW_GET_FUN(__glewProgramParameter4dvNV) +#define glProgramParameter4fNV GLEW_GET_FUN(__glewProgramParameter4fNV) +#define glProgramParameter4fvNV GLEW_GET_FUN(__glewProgramParameter4fvNV) +#define glProgramParameters4dvNV GLEW_GET_FUN(__glewProgramParameters4dvNV) +#define glProgramParameters4fvNV GLEW_GET_FUN(__glewProgramParameters4fvNV) +#define glRequestResidentProgramsNV GLEW_GET_FUN(__glewRequestResidentProgramsNV) +#define glTrackMatrixNV GLEW_GET_FUN(__glewTrackMatrixNV) +#define glVertexAttrib1dNV GLEW_GET_FUN(__glewVertexAttrib1dNV) +#define glVertexAttrib1dvNV GLEW_GET_FUN(__glewVertexAttrib1dvNV) +#define glVertexAttrib1fNV GLEW_GET_FUN(__glewVertexAttrib1fNV) +#define glVertexAttrib1fvNV GLEW_GET_FUN(__glewVertexAttrib1fvNV) +#define glVertexAttrib1sNV GLEW_GET_FUN(__glewVertexAttrib1sNV) +#define glVertexAttrib1svNV GLEW_GET_FUN(__glewVertexAttrib1svNV) +#define glVertexAttrib2dNV GLEW_GET_FUN(__glewVertexAttrib2dNV) +#define glVertexAttrib2dvNV GLEW_GET_FUN(__glewVertexAttrib2dvNV) +#define glVertexAttrib2fNV GLEW_GET_FUN(__glewVertexAttrib2fNV) +#define glVertexAttrib2fvNV GLEW_GET_FUN(__glewVertexAttrib2fvNV) +#define glVertexAttrib2sNV GLEW_GET_FUN(__glewVertexAttrib2sNV) +#define glVertexAttrib2svNV GLEW_GET_FUN(__glewVertexAttrib2svNV) +#define glVertexAttrib3dNV GLEW_GET_FUN(__glewVertexAttrib3dNV) +#define glVertexAttrib3dvNV GLEW_GET_FUN(__glewVertexAttrib3dvNV) +#define glVertexAttrib3fNV GLEW_GET_FUN(__glewVertexAttrib3fNV) +#define glVertexAttrib3fvNV GLEW_GET_FUN(__glewVertexAttrib3fvNV) +#define glVertexAttrib3sNV GLEW_GET_FUN(__glewVertexAttrib3sNV) +#define glVertexAttrib3svNV GLEW_GET_FUN(__glewVertexAttrib3svNV) +#define glVertexAttrib4dNV GLEW_GET_FUN(__glewVertexAttrib4dNV) +#define glVertexAttrib4dvNV GLEW_GET_FUN(__glewVertexAttrib4dvNV) +#define glVertexAttrib4fNV GLEW_GET_FUN(__glewVertexAttrib4fNV) +#define glVertexAttrib4fvNV GLEW_GET_FUN(__glewVertexAttrib4fvNV) +#define glVertexAttrib4sNV GLEW_GET_FUN(__glewVertexAttrib4sNV) +#define glVertexAttrib4svNV GLEW_GET_FUN(__glewVertexAttrib4svNV) +#define glVertexAttrib4ubNV GLEW_GET_FUN(__glewVertexAttrib4ubNV) +#define glVertexAttrib4ubvNV GLEW_GET_FUN(__glewVertexAttrib4ubvNV) +#define glVertexAttribPointerNV GLEW_GET_FUN(__glewVertexAttribPointerNV) +#define glVertexAttribs1dvNV GLEW_GET_FUN(__glewVertexAttribs1dvNV) +#define glVertexAttribs1fvNV GLEW_GET_FUN(__glewVertexAttribs1fvNV) +#define glVertexAttribs1svNV GLEW_GET_FUN(__glewVertexAttribs1svNV) +#define glVertexAttribs2dvNV GLEW_GET_FUN(__glewVertexAttribs2dvNV) +#define glVertexAttribs2fvNV GLEW_GET_FUN(__glewVertexAttribs2fvNV) +#define glVertexAttribs2svNV GLEW_GET_FUN(__glewVertexAttribs2svNV) +#define glVertexAttribs3dvNV GLEW_GET_FUN(__glewVertexAttribs3dvNV) +#define glVertexAttribs3fvNV GLEW_GET_FUN(__glewVertexAttribs3fvNV) +#define glVertexAttribs3svNV GLEW_GET_FUN(__glewVertexAttribs3svNV) +#define glVertexAttribs4dvNV GLEW_GET_FUN(__glewVertexAttribs4dvNV) +#define glVertexAttribs4fvNV GLEW_GET_FUN(__glewVertexAttribs4fvNV) +#define glVertexAttribs4svNV GLEW_GET_FUN(__glewVertexAttribs4svNV) +#define glVertexAttribs4ubvNV GLEW_GET_FUN(__glewVertexAttribs4ubvNV) + +#define GLEW_NV_vertex_program GLEW_GET_VAR(__GLEW_NV_vertex_program) + +#endif /* GL_NV_vertex_program */ + +/* ------------------------ GL_NV_vertex_program1_1 ------------------------ */ + +#ifndef GL_NV_vertex_program1_1 +#define GL_NV_vertex_program1_1 1 + +#define GLEW_NV_vertex_program1_1 GLEW_GET_VAR(__GLEW_NV_vertex_program1_1) + +#endif /* GL_NV_vertex_program1_1 */ + +/* ------------------------- GL_NV_vertex_program2 ------------------------- */ + +#ifndef GL_NV_vertex_program2 +#define GL_NV_vertex_program2 1 + +#define GLEW_NV_vertex_program2 GLEW_GET_VAR(__GLEW_NV_vertex_program2) + +#endif /* GL_NV_vertex_program2 */ + +/* ---------------------- GL_NV_vertex_program2_option --------------------- */ + +#ifndef GL_NV_vertex_program2_option +#define GL_NV_vertex_program2_option 1 + +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 + +#define GLEW_NV_vertex_program2_option GLEW_GET_VAR(__GLEW_NV_vertex_program2_option) + +#endif /* GL_NV_vertex_program2_option */ + +/* ------------------------- GL_NV_vertex_program3 ------------------------- */ + +#ifndef GL_NV_vertex_program3 +#define GL_NV_vertex_program3 1 + +#define MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C + +#define GLEW_NV_vertex_program3 GLEW_GET_VAR(__GLEW_NV_vertex_program3) + +#endif /* GL_NV_vertex_program3 */ + +/* ------------------------- GL_NV_vertex_program4 ------------------------- */ + +#ifndef GL_NV_vertex_program4 +#define GL_NV_vertex_program4 1 + +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD + +#define GLEW_NV_vertex_program4 GLEW_GET_VAR(__GLEW_NV_vertex_program4) + +#endif /* GL_NV_vertex_program4 */ + +/* -------------------------- GL_NV_video_capture -------------------------- */ + +#ifndef GL_NV_video_capture +#define GL_NV_video_capture 1 + +#define GL_VIDEO_BUFFER_NV 0x9020 +#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 +#define GL_FIELD_UPPER_NV 0x9022 +#define GL_FIELD_LOWER_NV 0x9023 +#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 +#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 +#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 +#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 +#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 +#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 +#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A +#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B +#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C +#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D +#define GL_PARTIAL_SUCCESS_NV 0x902E +#define GL_SUCCESS_NV 0x902F +#define GL_FAILURE_NV 0x9030 +#define GL_YCBYCR8_422_NV 0x9031 +#define GL_YCBAYCR8A_4224_NV 0x9032 +#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 +#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 +#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 +#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 +#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 +#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 +#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 +#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A +#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); + +#define glBeginVideoCaptureNV GLEW_GET_FUN(__glewBeginVideoCaptureNV) +#define glBindVideoCaptureStreamBufferNV GLEW_GET_FUN(__glewBindVideoCaptureStreamBufferNV) +#define glBindVideoCaptureStreamTextureNV GLEW_GET_FUN(__glewBindVideoCaptureStreamTextureNV) +#define glEndVideoCaptureNV GLEW_GET_FUN(__glewEndVideoCaptureNV) +#define glGetVideoCaptureStreamdvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamdvNV) +#define glGetVideoCaptureStreamfvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamfvNV) +#define glGetVideoCaptureStreamivNV GLEW_GET_FUN(__glewGetVideoCaptureStreamivNV) +#define glGetVideoCaptureivNV GLEW_GET_FUN(__glewGetVideoCaptureivNV) +#define glVideoCaptureNV GLEW_GET_FUN(__glewVideoCaptureNV) +#define glVideoCaptureStreamParameterdvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterdvNV) +#define glVideoCaptureStreamParameterfvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterfvNV) +#define glVideoCaptureStreamParameterivNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterivNV) + +#define GLEW_NV_video_capture GLEW_GET_VAR(__GLEW_NV_video_capture) + +#endif /* GL_NV_video_capture */ + +/* ------------------------ GL_OES_byte_coordinates ------------------------ */ + +#ifndef GL_OES_byte_coordinates +#define GL_OES_byte_coordinates 1 + +#define GLEW_OES_byte_coordinates GLEW_GET_VAR(__GLEW_OES_byte_coordinates) + +#endif /* GL_OES_byte_coordinates */ + +/* ------------------- GL_OES_compressed_paletted_texture ------------------ */ + +#ifndef GL_OES_compressed_paletted_texture +#define GL_OES_compressed_paletted_texture 1 + +#define GL_PALETTE4_RGB8_OES 0x8B90 +#define GL_PALETTE4_RGBA8_OES 0x8B91 +#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 +#define GL_PALETTE4_RGBA4_OES 0x8B93 +#define GL_PALETTE4_RGB5_A1_OES 0x8B94 +#define GL_PALETTE8_RGB8_OES 0x8B95 +#define GL_PALETTE8_RGBA8_OES 0x8B96 +#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 +#define GL_PALETTE8_RGBA4_OES 0x8B98 +#define GL_PALETTE8_RGB5_A1_OES 0x8B99 + +#define GLEW_OES_compressed_paletted_texture GLEW_GET_VAR(__GLEW_OES_compressed_paletted_texture) + +#endif /* GL_OES_compressed_paletted_texture */ + +/* --------------------------- GL_OES_read_format -------------------------- */ + +#ifndef GL_OES_read_format +#define GL_OES_read_format 1 + +#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B + +#define GLEW_OES_read_format GLEW_GET_VAR(__GLEW_OES_read_format) + +#endif /* GL_OES_read_format */ + +/* ------------------------ GL_OES_single_precision ------------------------ */ + +#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); + +#define glClearDepthfOES GLEW_GET_FUN(__glewClearDepthfOES) +#define glClipPlanefOES GLEW_GET_FUN(__glewClipPlanefOES) +#define glDepthRangefOES GLEW_GET_FUN(__glewDepthRangefOES) +#define glFrustumfOES GLEW_GET_FUN(__glewFrustumfOES) +#define glGetClipPlanefOES GLEW_GET_FUN(__glewGetClipPlanefOES) +#define glOrthofOES GLEW_GET_FUN(__glewOrthofOES) + +#define GLEW_OES_single_precision GLEW_GET_VAR(__GLEW_OES_single_precision) + +#endif /* GL_OES_single_precision */ + +/* ---------------------------- GL_OML_interlace --------------------------- */ + +#ifndef GL_OML_interlace +#define GL_OML_interlace 1 + +#define GL_INTERLACE_OML 0x8980 +#define GL_INTERLACE_READ_OML 0x8981 + +#define GLEW_OML_interlace GLEW_GET_VAR(__GLEW_OML_interlace) + +#endif /* GL_OML_interlace */ + +/* ---------------------------- GL_OML_resample ---------------------------- */ + +#ifndef GL_OML_resample +#define GL_OML_resample 1 + +#define GL_PACK_RESAMPLE_OML 0x8984 +#define GL_UNPACK_RESAMPLE_OML 0x8985 +#define GL_RESAMPLE_REPLICATE_OML 0x8986 +#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 +#define GL_RESAMPLE_AVERAGE_OML 0x8988 +#define GL_RESAMPLE_DECIMATE_OML 0x8989 + +#define GLEW_OML_resample GLEW_GET_VAR(__GLEW_OML_resample) + +#endif /* GL_OML_resample */ + +/* ---------------------------- GL_OML_subsample --------------------------- */ + +#ifndef GL_OML_subsample +#define GL_OML_subsample 1 + +#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 +#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 + +#define GLEW_OML_subsample GLEW_GET_VAR(__GLEW_OML_subsample) + +#endif /* GL_OML_subsample */ + +/* --------------------------- GL_PGI_misc_hints --------------------------- */ + +#ifndef GL_PGI_misc_hints +#define GL_PGI_misc_hints 1 + +#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000 +#define GL_CONSERVE_MEMORY_HINT_PGI 107005 +#define GL_RECLAIM_MEMORY_HINT_PGI 107006 +#define GL_NATIVE_GRAPHICS_HANDLE_PGI 107010 +#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011 +#define GL_NATIVE_GRAPHICS_END_HINT_PGI 107012 +#define GL_ALWAYS_FAST_HINT_PGI 107020 +#define GL_ALWAYS_SOFT_HINT_PGI 107021 +#define GL_ALLOW_DRAW_OBJ_HINT_PGI 107022 +#define GL_ALLOW_DRAW_WIN_HINT_PGI 107023 +#define GL_ALLOW_DRAW_FRG_HINT_PGI 107024 +#define GL_ALLOW_DRAW_MEM_HINT_PGI 107025 +#define GL_STRICT_DEPTHFUNC_HINT_PGI 107030 +#define GL_STRICT_LIGHTING_HINT_PGI 107031 +#define GL_STRICT_SCISSOR_HINT_PGI 107032 +#define GL_FULL_STIPPLE_HINT_PGI 107033 +#define GL_CLIP_NEAR_HINT_PGI 107040 +#define GL_CLIP_FAR_HINT_PGI 107041 +#define GL_WIDE_LINE_HINT_PGI 107042 +#define GL_BACK_NORMALS_HINT_PGI 107043 + +#define GLEW_PGI_misc_hints GLEW_GET_VAR(__GLEW_PGI_misc_hints) + +#endif /* GL_PGI_misc_hints */ + +/* -------------------------- GL_PGI_vertex_hints -------------------------- */ + +#ifndef GL_PGI_vertex_hints +#define GL_PGI_vertex_hints 1 + +#define GL_VERTEX23_BIT_PGI 0x00000004 +#define GL_VERTEX4_BIT_PGI 0x00000008 +#define GL_COLOR3_BIT_PGI 0x00010000 +#define GL_COLOR4_BIT_PGI 0x00020000 +#define GL_EDGEFLAG_BIT_PGI 0x00040000 +#define GL_INDEX_BIT_PGI 0x00080000 +#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 +#define GL_VERTEX_DATA_HINT_PGI 107050 +#define GL_VERTEX_CONSISTENT_HINT_PGI 107051 +#define GL_MATERIAL_SIDE_HINT_PGI 107052 +#define GL_MAX_VERTEX_HINT_PGI 107053 +#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 +#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 +#define GL_MAT_EMISSION_BIT_PGI 0x00800000 +#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 +#define GL_MAT_SHININESS_BIT_PGI 0x02000000 +#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 +#define GL_NORMAL_BIT_PGI 0x08000000 +#define GL_TEXCOORD1_BIT_PGI 0x10000000 +#define GL_TEXCOORD2_BIT_PGI 0x20000000 +#define GL_TEXCOORD3_BIT_PGI 0x40000000 +#define GL_TEXCOORD4_BIT_PGI 0x80000000 + +#define GLEW_PGI_vertex_hints GLEW_GET_VAR(__GLEW_PGI_vertex_hints) + +#endif /* GL_PGI_vertex_hints */ + +/* ---------------------- GL_REGAL_ES1_0_compatibility --------------------- */ + +#ifndef GL_REGAL_ES1_0_compatibility +#define GL_REGAL_ES1_0_compatibility 1 + +typedef int GLclampx; + +typedef void (GLAPIENTRY * PFNGLALPHAFUNCXPROC) (GLenum func, GLclampx ref); +typedef void (GLAPIENTRY * PFNGLCLEARCOLORXPROC) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); +typedef void (GLAPIENTRY * PFNGLCLEARDEPTHXPROC) (GLclampx depth); +typedef void (GLAPIENTRY * PFNGLCOLOR4XPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEXPROC) (GLclampx zNear, GLclampx zFar); +typedef void (GLAPIENTRY * PFNGLFOGXPROC) (GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLFOGXVPROC) (GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLFRUSTUMFPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +typedef void (GLAPIENTRY * PFNGLFRUSTUMXPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +typedef void (GLAPIENTRY * PFNGLLIGHTMODELXPROC) (GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLLIGHTMODELXVPROC) (GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLLIGHTXPROC) (GLenum light, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLLIGHTXVPROC) (GLenum light, GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLLINEWIDTHXPROC) (GLfixed width); +typedef void (GLAPIENTRY * PFNGLLOADMATRIXXPROC) (const GLfixed* m); +typedef void (GLAPIENTRY * PFNGLMATERIALXPROC) (GLenum face, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLMATERIALXVPROC) (GLenum face, GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLMULTMATRIXXPROC) (const GLfixed* m); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4XPROC) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +typedef void (GLAPIENTRY * PFNGLNORMAL3XPROC) (GLfixed nx, GLfixed ny, GLfixed nz); +typedef void (GLAPIENTRY * PFNGLORTHOFPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +typedef void (GLAPIENTRY * PFNGLORTHOXPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +typedef void (GLAPIENTRY * PFNGLPOINTSIZEXPROC) (GLfixed size); +typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETXPROC) (GLfixed factor, GLfixed units); +typedef void (GLAPIENTRY * PFNGLROTATEXPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEXPROC) (GLclampx value, GLboolean invert); +typedef void (GLAPIENTRY * PFNGLSCALEXPROC) (GLfixed x, GLfixed y, GLfixed z); +typedef void (GLAPIENTRY * PFNGLTEXENVXPROC) (GLenum target, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLTEXENVXVPROC) (GLenum target, GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERXPROC) (GLenum target, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLTRANSLATEXPROC) (GLfixed x, GLfixed y, GLfixed z); + +#define glAlphaFuncx GLEW_GET_FUN(__glewAlphaFuncx) +#define glClearColorx GLEW_GET_FUN(__glewClearColorx) +#define glClearDepthx GLEW_GET_FUN(__glewClearDepthx) +#define glColor4x GLEW_GET_FUN(__glewColor4x) +#define glDepthRangex GLEW_GET_FUN(__glewDepthRangex) +#define glFogx GLEW_GET_FUN(__glewFogx) +#define glFogxv GLEW_GET_FUN(__glewFogxv) +#define glFrustumf GLEW_GET_FUN(__glewFrustumf) +#define glFrustumx GLEW_GET_FUN(__glewFrustumx) +#define glLightModelx GLEW_GET_FUN(__glewLightModelx) +#define glLightModelxv GLEW_GET_FUN(__glewLightModelxv) +#define glLightx GLEW_GET_FUN(__glewLightx) +#define glLightxv GLEW_GET_FUN(__glewLightxv) +#define glLineWidthx GLEW_GET_FUN(__glewLineWidthx) +#define glLoadMatrixx GLEW_GET_FUN(__glewLoadMatrixx) +#define glMaterialx GLEW_GET_FUN(__glewMaterialx) +#define glMaterialxv GLEW_GET_FUN(__glewMaterialxv) +#define glMultMatrixx GLEW_GET_FUN(__glewMultMatrixx) +#define glMultiTexCoord4x GLEW_GET_FUN(__glewMultiTexCoord4x) +#define glNormal3x GLEW_GET_FUN(__glewNormal3x) +#define glOrthof GLEW_GET_FUN(__glewOrthof) +#define glOrthox GLEW_GET_FUN(__glewOrthox) +#define glPointSizex GLEW_GET_FUN(__glewPointSizex) +#define glPolygonOffsetx GLEW_GET_FUN(__glewPolygonOffsetx) +#define glRotatex GLEW_GET_FUN(__glewRotatex) +#define glSampleCoveragex GLEW_GET_FUN(__glewSampleCoveragex) +#define glScalex GLEW_GET_FUN(__glewScalex) +#define glTexEnvx GLEW_GET_FUN(__glewTexEnvx) +#define glTexEnvxv GLEW_GET_FUN(__glewTexEnvxv) +#define glTexParameterx GLEW_GET_FUN(__glewTexParameterx) +#define glTranslatex GLEW_GET_FUN(__glewTranslatex) + +#define GLEW_REGAL_ES1_0_compatibility GLEW_GET_VAR(__GLEW_REGAL_ES1_0_compatibility) + +#endif /* GL_REGAL_ES1_0_compatibility */ + +/* ---------------------- GL_REGAL_ES1_1_compatibility --------------------- */ + +#ifndef GL_REGAL_ES1_1_compatibility +#define GL_REGAL_ES1_1_compatibility 1 + +typedef void (GLAPIENTRY * PFNGLCLIPPLANEFPROC) (GLenum plane, const GLfloat* equation); +typedef void (GLAPIENTRY * PFNGLCLIPPLANEXPROC) (GLenum plane, const GLfixed* equation); +typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFPROC) (GLenum pname, GLfloat eqn[4]); +typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEXPROC) (GLenum pname, GLfixed eqn[4]); +typedef void (GLAPIENTRY * PFNGLGETFIXEDVPROC) (GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLGETLIGHTXVPROC) (GLenum light, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLGETMATERIALXVPROC) (GLenum face, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLGETTEXENVXVPROC) (GLenum env, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERXVPROC) (GLenum target, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERXPROC) (GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERXVPROC) (GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLPOINTSIZEPOINTEROESPROC) (GLenum type, GLsizei stride, const GLvoid* pointer); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERXVPROC) (GLenum target, GLenum pname, const GLfixed* params); + +#define glClipPlanef GLEW_GET_FUN(__glewClipPlanef) +#define glClipPlanex GLEW_GET_FUN(__glewClipPlanex) +#define glGetClipPlanef GLEW_GET_FUN(__glewGetClipPlanef) +#define glGetClipPlanex GLEW_GET_FUN(__glewGetClipPlanex) +#define glGetFixedv GLEW_GET_FUN(__glewGetFixedv) +#define glGetLightxv GLEW_GET_FUN(__glewGetLightxv) +#define glGetMaterialxv GLEW_GET_FUN(__glewGetMaterialxv) +#define glGetTexEnvxv GLEW_GET_FUN(__glewGetTexEnvxv) +#define glGetTexParameterxv GLEW_GET_FUN(__glewGetTexParameterxv) +#define glPointParameterx GLEW_GET_FUN(__glewPointParameterx) +#define glPointParameterxv GLEW_GET_FUN(__glewPointParameterxv) +#define glPointSizePointerOES GLEW_GET_FUN(__glewPointSizePointerOES) +#define glTexParameterxv GLEW_GET_FUN(__glewTexParameterxv) + +#define GLEW_REGAL_ES1_1_compatibility GLEW_GET_VAR(__GLEW_REGAL_ES1_1_compatibility) + +#endif /* GL_REGAL_ES1_1_compatibility */ + +/* ---------------------------- GL_REGAL_enable ---------------------------- */ + +#ifndef GL_REGAL_enable +#define GL_REGAL_enable 1 + +#define GL_ERROR_REGAL 0x9322 +#define GL_DEBUG_REGAL 0x9323 +#define GL_LOG_REGAL 0x9324 +#define GL_EMULATION_REGAL 0x9325 +#define GL_DRIVER_REGAL 0x9326 +#define GL_MISSING_REGAL 0x9360 +#define GL_TRACE_REGAL 0x9361 +#define GL_CACHE_REGAL 0x9362 +#define GL_CODE_REGAL 0x9363 +#define GL_STATISTICS_REGAL 0x9364 + +#define GLEW_REGAL_enable GLEW_GET_VAR(__GLEW_REGAL_enable) + +#endif /* GL_REGAL_enable */ + +/* ------------------------- GL_REGAL_error_string ------------------------- */ + +#ifndef GL_REGAL_error_string +#define GL_REGAL_error_string 1 + +typedef const GLchar* (GLAPIENTRY * PFNGLERRORSTRINGREGALPROC) (GLenum error); + +#define glErrorStringREGAL GLEW_GET_FUN(__glewErrorStringREGAL) + +#define GLEW_REGAL_error_string GLEW_GET_VAR(__GLEW_REGAL_error_string) + +#endif /* GL_REGAL_error_string */ + +/* ------------------------ GL_REGAL_extension_query ----------------------- */ + +#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); + +#define glGetExtensionREGAL GLEW_GET_FUN(__glewGetExtensionREGAL) +#define glIsSupportedREGAL GLEW_GET_FUN(__glewIsSupportedREGAL) + +#define GLEW_REGAL_extension_query GLEW_GET_VAR(__GLEW_REGAL_extension_query) + +#endif /* GL_REGAL_extension_query */ + +/* ------------------------------ GL_REGAL_log ----------------------------- */ + +#ifndef GL_REGAL_log +#define GL_REGAL_log 1 + +#define GL_LOG_ERROR_REGAL 0x9319 +#define GL_LOG_WARNING_REGAL 0x931A +#define GL_LOG_INFO_REGAL 0x931B +#define GL_LOG_APP_REGAL 0x931C +#define GL_LOG_DRIVER_REGAL 0x931D +#define GL_LOG_INTERNAL_REGAL 0x931E +#define GL_LOG_DEBUG_REGAL 0x931F +#define GL_LOG_STATUS_REGAL 0x9320 +#define GL_LOG_HTTP_REGAL 0x9321 + +typedef void (APIENTRY *GLLOGPROCREGAL)(GLenum stream, GLsizei length, const GLchar *message, GLvoid *context); + +typedef void (GLAPIENTRY * PFNGLLOGMESSAGECALLBACKREGALPROC) (GLLOGPROCREGAL callback); + +#define glLogMessageCallbackREGAL GLEW_GET_FUN(__glewLogMessageCallbackREGAL) + +#define GLEW_REGAL_log GLEW_GET_VAR(__GLEW_REGAL_log) + +#endif /* GL_REGAL_log */ + +/* ----------------------- GL_REND_screen_coordinates ---------------------- */ + +#ifndef GL_REND_screen_coordinates +#define GL_REND_screen_coordinates 1 + +#define GL_SCREEN_COORDINATES_REND 0x8490 +#define GL_INVERTED_SCREEN_W_REND 0x8491 + +#define GLEW_REND_screen_coordinates GLEW_GET_VAR(__GLEW_REND_screen_coordinates) + +#endif /* GL_REND_screen_coordinates */ + +/* ------------------------------- GL_S3_s3tc ------------------------------ */ + +#ifndef GL_S3_s3tc +#define GL_S3_s3tc 1 + +#define GL_RGB_S3TC 0x83A0 +#define GL_RGB4_S3TC 0x83A1 +#define GL_RGBA_S3TC 0x83A2 +#define GL_RGBA4_S3TC 0x83A3 +#define GL_RGBA_DXT5_S3TC 0x83A4 +#define GL_RGBA4_DXT5_S3TC 0x83A5 + +#define GLEW_S3_s3tc GLEW_GET_VAR(__GLEW_S3_s3tc) + +#endif /* GL_S3_s3tc */ + +/* -------------------------- GL_SGIS_color_range -------------------------- */ + +#ifndef GL_SGIS_color_range +#define GL_SGIS_color_range 1 + +#define GL_EXTENDED_RANGE_SGIS 0x85A5 +#define GL_MIN_RED_SGIS 0x85A6 +#define GL_MAX_RED_SGIS 0x85A7 +#define GL_MIN_GREEN_SGIS 0x85A8 +#define GL_MAX_GREEN_SGIS 0x85A9 +#define GL_MIN_BLUE_SGIS 0x85AA +#define GL_MAX_BLUE_SGIS 0x85AB +#define GL_MIN_ALPHA_SGIS 0x85AC +#define GL_MAX_ALPHA_SGIS 0x85AD + +#define GLEW_SGIS_color_range GLEW_GET_VAR(__GLEW_SGIS_color_range) + +#endif /* GL_SGIS_color_range */ + +/* ------------------------- GL_SGIS_detail_texture ------------------------ */ + +#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); + +#define glDetailTexFuncSGIS GLEW_GET_FUN(__glewDetailTexFuncSGIS) +#define glGetDetailTexFuncSGIS GLEW_GET_FUN(__glewGetDetailTexFuncSGIS) + +#define GLEW_SGIS_detail_texture GLEW_GET_VAR(__GLEW_SGIS_detail_texture) + +#endif /* GL_SGIS_detail_texture */ + +/* -------------------------- GL_SGIS_fog_function ------------------------- */ + +#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); + +#define glFogFuncSGIS GLEW_GET_FUN(__glewFogFuncSGIS) +#define glGetFogFuncSGIS GLEW_GET_FUN(__glewGetFogFuncSGIS) + +#define GLEW_SGIS_fog_function GLEW_GET_VAR(__GLEW_SGIS_fog_function) + +#endif /* GL_SGIS_fog_function */ + +/* ------------------------ GL_SGIS_generate_mipmap ------------------------ */ + +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 + +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 + +#define GLEW_SGIS_generate_mipmap GLEW_GET_VAR(__GLEW_SGIS_generate_mipmap) + +#endif /* GL_SGIS_generate_mipmap */ + +/* -------------------------- GL_SGIS_multisample -------------------------- */ + +#ifndef GL_SGIS_multisample +#define GL_SGIS_multisample 1 + +#define GL_MULTISAMPLE_SGIS 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F +#define GL_SAMPLE_MASK_SGIS 0x80A0 +#define GL_1PASS_SGIS 0x80A1 +#define GL_2PASS_0_SGIS 0x80A2 +#define GL_2PASS_1_SGIS 0x80A3 +#define GL_4PASS_0_SGIS 0x80A4 +#define GL_4PASS_1_SGIS 0x80A5 +#define GL_4PASS_2_SGIS 0x80A6 +#define GL_4PASS_3_SGIS 0x80A7 +#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 +#define GL_SAMPLES_SGIS 0x80A9 +#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA +#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); + +#define glSampleMaskSGIS GLEW_GET_FUN(__glewSampleMaskSGIS) +#define glSamplePatternSGIS GLEW_GET_FUN(__glewSamplePatternSGIS) + +#define GLEW_SGIS_multisample GLEW_GET_VAR(__GLEW_SGIS_multisample) + +#endif /* GL_SGIS_multisample */ + +/* ------------------------- GL_SGIS_pixel_texture ------------------------- */ + +#ifndef GL_SGIS_pixel_texture +#define GL_SGIS_pixel_texture 1 + +#define GLEW_SGIS_pixel_texture GLEW_GET_VAR(__GLEW_SGIS_pixel_texture) + +#endif /* GL_SGIS_pixel_texture */ + +/* ----------------------- GL_SGIS_point_line_texgen ----------------------- */ + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 + +#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 +#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 +#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 +#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 +#define GL_EYE_POINT_SGIS 0x81F4 +#define GL_OBJECT_POINT_SGIS 0x81F5 +#define GL_EYE_LINE_SGIS 0x81F6 +#define GL_OBJECT_LINE_SGIS 0x81F7 + +#define GLEW_SGIS_point_line_texgen GLEW_GET_VAR(__GLEW_SGIS_point_line_texgen) + +#endif /* GL_SGIS_point_line_texgen */ + +/* ------------------------ GL_SGIS_sharpen_texture ------------------------ */ + +#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); + +#define glGetSharpenTexFuncSGIS GLEW_GET_FUN(__glewGetSharpenTexFuncSGIS) +#define glSharpenTexFuncSGIS GLEW_GET_FUN(__glewSharpenTexFuncSGIS) + +#define GLEW_SGIS_sharpen_texture GLEW_GET_VAR(__GLEW_SGIS_sharpen_texture) + +#endif /* GL_SGIS_sharpen_texture */ + +/* --------------------------- GL_SGIS_texture4D --------------------------- */ + +#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 GLvoid *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 GLvoid *pixels); + +#define glTexImage4DSGIS GLEW_GET_FUN(__glewTexImage4DSGIS) +#define glTexSubImage4DSGIS GLEW_GET_FUN(__glewTexSubImage4DSGIS) + +#define GLEW_SGIS_texture4D GLEW_GET_VAR(__GLEW_SGIS_texture4D) + +#endif /* GL_SGIS_texture4D */ + +/* ---------------------- GL_SGIS_texture_border_clamp --------------------- */ + +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 + +#define GL_CLAMP_TO_BORDER_SGIS 0x812D + +#define GLEW_SGIS_texture_border_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_border_clamp) + +#endif /* GL_SGIS_texture_border_clamp */ + +/* ----------------------- GL_SGIS_texture_edge_clamp ---------------------- */ + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 + +#define GL_CLAMP_TO_EDGE_SGIS 0x812F + +#define GLEW_SGIS_texture_edge_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_edge_clamp) + +#endif /* GL_SGIS_texture_edge_clamp */ + +/* ------------------------ GL_SGIS_texture_filter4 ------------------------ */ + +#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); + +#define glGetTexFilterFuncSGIS GLEW_GET_FUN(__glewGetTexFilterFuncSGIS) +#define glTexFilterFuncSGIS GLEW_GET_FUN(__glewTexFilterFuncSGIS) + +#define GLEW_SGIS_texture_filter4 GLEW_GET_VAR(__GLEW_SGIS_texture_filter4) + +#endif /* GL_SGIS_texture_filter4 */ + +/* -------------------------- GL_SGIS_texture_lod -------------------------- */ + +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 + +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D + +#define GLEW_SGIS_texture_lod GLEW_GET_VAR(__GLEW_SGIS_texture_lod) + +#endif /* GL_SGIS_texture_lod */ + +/* ------------------------- GL_SGIS_texture_select ------------------------ */ + +#ifndef GL_SGIS_texture_select +#define GL_SGIS_texture_select 1 + +#define GLEW_SGIS_texture_select GLEW_GET_VAR(__GLEW_SGIS_texture_select) + +#endif /* GL_SGIS_texture_select */ + +/* ----------------------------- GL_SGIX_async ----------------------------- */ + +#ifndef GL_SGIX_async +#define GL_SGIX_async 1 + +#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); + +#define glAsyncMarkerSGIX GLEW_GET_FUN(__glewAsyncMarkerSGIX) +#define glDeleteAsyncMarkersSGIX GLEW_GET_FUN(__glewDeleteAsyncMarkersSGIX) +#define glFinishAsyncSGIX GLEW_GET_FUN(__glewFinishAsyncSGIX) +#define glGenAsyncMarkersSGIX GLEW_GET_FUN(__glewGenAsyncMarkersSGIX) +#define glIsAsyncMarkerSGIX GLEW_GET_FUN(__glewIsAsyncMarkerSGIX) +#define glPollAsyncSGIX GLEW_GET_FUN(__glewPollAsyncSGIX) + +#define GLEW_SGIX_async GLEW_GET_VAR(__GLEW_SGIX_async) + +#endif /* GL_SGIX_async */ + +/* ------------------------ GL_SGIX_async_histogram ------------------------ */ + +#ifndef GL_SGIX_async_histogram +#define GL_SGIX_async_histogram 1 + +#define GL_ASYNC_HISTOGRAM_SGIX 0x832C +#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D + +#define GLEW_SGIX_async_histogram GLEW_GET_VAR(__GLEW_SGIX_async_histogram) + +#endif /* GL_SGIX_async_histogram */ + +/* -------------------------- GL_SGIX_async_pixel -------------------------- */ + +#ifndef GL_SGIX_async_pixel +#define GL_SGIX_async_pixel 1 + +#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C +#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D +#define GL_ASYNC_READ_PIXELS_SGIX 0x835E +#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F +#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 +#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 + +#define GLEW_SGIX_async_pixel GLEW_GET_VAR(__GLEW_SGIX_async_pixel) + +#endif /* GL_SGIX_async_pixel */ + +/* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */ + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_SGIX_blend_alpha_minmax 1 + +#define GL_ALPHA_MIN_SGIX 0x8320 +#define GL_ALPHA_MAX_SGIX 0x8321 + +#define GLEW_SGIX_blend_alpha_minmax GLEW_GET_VAR(__GLEW_SGIX_blend_alpha_minmax) + +#endif /* GL_SGIX_blend_alpha_minmax */ + +/* ---------------------------- GL_SGIX_clipmap ---------------------------- */ + +#ifndef GL_SGIX_clipmap +#define GL_SGIX_clipmap 1 + +#define GLEW_SGIX_clipmap GLEW_GET_VAR(__GLEW_SGIX_clipmap) + +#endif /* GL_SGIX_clipmap */ + +/* ---------------------- GL_SGIX_convolution_accuracy --------------------- */ + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 + +#define GL_CONVOLUTION_HINT_SGIX 0x8316 + +#define GLEW_SGIX_convolution_accuracy GLEW_GET_VAR(__GLEW_SGIX_convolution_accuracy) + +#endif /* GL_SGIX_convolution_accuracy */ + +/* ------------------------- GL_SGIX_depth_texture ------------------------- */ + +#ifndef GL_SGIX_depth_texture +#define GL_SGIX_depth_texture 1 + +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 + +#define GLEW_SGIX_depth_texture GLEW_GET_VAR(__GLEW_SGIX_depth_texture) + +#endif /* GL_SGIX_depth_texture */ + +/* -------------------------- GL_SGIX_flush_raster ------------------------- */ + +#ifndef GL_SGIX_flush_raster +#define GL_SGIX_flush_raster 1 + +typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); + +#define glFlushRasterSGIX GLEW_GET_FUN(__glewFlushRasterSGIX) + +#define GLEW_SGIX_flush_raster GLEW_GET_VAR(__GLEW_SGIX_flush_raster) + +#endif /* GL_SGIX_flush_raster */ + +/* --------------------------- GL_SGIX_fog_offset -------------------------- */ + +#ifndef GL_SGIX_fog_offset +#define GL_SGIX_fog_offset 1 + +#define GL_FOG_OFFSET_SGIX 0x8198 +#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 + +#define GLEW_SGIX_fog_offset GLEW_GET_VAR(__GLEW_SGIX_fog_offset) + +#endif /* GL_SGIX_fog_offset */ + +/* -------------------------- GL_SGIX_fog_texture -------------------------- */ + +#ifndef GL_SGIX_fog_texture +#define GL_SGIX_fog_texture 1 + +#define GL_TEXTURE_FOG_SGIX 0 +#define GL_FOG_PATCHY_FACTOR_SGIX 0 +#define GL_FRAGMENT_FOG_SGIX 0 + +typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); + +#define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX) + +#define GLEW_SGIX_fog_texture GLEW_GET_VAR(__GLEW_SGIX_fog_texture) + +#endif /* GL_SGIX_fog_texture */ + +/* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */ + +#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); + +#define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX) +#define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX) +#define glFragmentLightModelfvSGIX GLEW_GET_FUN(__glewFragmentLightModelfvSGIX) +#define glFragmentLightModeliSGIX GLEW_GET_FUN(__glewFragmentLightModeliSGIX) +#define glFragmentLightModelivSGIX GLEW_GET_FUN(__glewFragmentLightModelivSGIX) +#define glFragmentLightfSGIX GLEW_GET_FUN(__glewFragmentLightfSGIX) +#define glFragmentLightfvSGIX GLEW_GET_FUN(__glewFragmentLightfvSGIX) +#define glFragmentLightiSGIX GLEW_GET_FUN(__glewFragmentLightiSGIX) +#define glFragmentLightivSGIX GLEW_GET_FUN(__glewFragmentLightivSGIX) +#define glFragmentMaterialfSGIX GLEW_GET_FUN(__glewFragmentMaterialfSGIX) +#define glFragmentMaterialfvSGIX GLEW_GET_FUN(__glewFragmentMaterialfvSGIX) +#define glFragmentMaterialiSGIX GLEW_GET_FUN(__glewFragmentMaterialiSGIX) +#define glFragmentMaterialivSGIX GLEW_GET_FUN(__glewFragmentMaterialivSGIX) +#define glGetFragmentLightfvSGIX GLEW_GET_FUN(__glewGetFragmentLightfvSGIX) +#define glGetFragmentLightivSGIX GLEW_GET_FUN(__glewGetFragmentLightivSGIX) +#define glGetFragmentMaterialfvSGIX GLEW_GET_FUN(__glewGetFragmentMaterialfvSGIX) +#define glGetFragmentMaterialivSGIX GLEW_GET_FUN(__glewGetFragmentMaterialivSGIX) + +#define GLEW_SGIX_fragment_specular_lighting GLEW_GET_VAR(__GLEW_SGIX_fragment_specular_lighting) + +#endif /* GL_SGIX_fragment_specular_lighting */ + +/* --------------------------- GL_SGIX_framezoom --------------------------- */ + +#ifndef GL_SGIX_framezoom +#define GL_SGIX_framezoom 1 + +typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); + +#define glFrameZoomSGIX GLEW_GET_FUN(__glewFrameZoomSGIX) + +#define GLEW_SGIX_framezoom GLEW_GET_VAR(__GLEW_SGIX_framezoom) + +#endif /* GL_SGIX_framezoom */ + +/* --------------------------- GL_SGIX_interlace --------------------------- */ + +#ifndef GL_SGIX_interlace +#define GL_SGIX_interlace 1 + +#define GL_INTERLACE_SGIX 0x8094 + +#define GLEW_SGIX_interlace GLEW_GET_VAR(__GLEW_SGIX_interlace) + +#endif /* GL_SGIX_interlace */ + +/* ------------------------- GL_SGIX_ir_instrument1 ------------------------ */ + +#ifndef GL_SGIX_ir_instrument1 +#define GL_SGIX_ir_instrument1 1 + +#define GLEW_SGIX_ir_instrument1 GLEW_GET_VAR(__GLEW_SGIX_ir_instrument1) + +#endif /* GL_SGIX_ir_instrument1 */ + +/* ------------------------- GL_SGIX_list_priority ------------------------- */ + +#ifndef GL_SGIX_list_priority +#define GL_SGIX_list_priority 1 + +#define GLEW_SGIX_list_priority GLEW_GET_VAR(__GLEW_SGIX_list_priority) + +#endif /* GL_SGIX_list_priority */ + +/* ------------------------- GL_SGIX_pixel_texture ------------------------- */ + +#ifndef GL_SGIX_pixel_texture +#define GL_SGIX_pixel_texture 1 + +typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); + +#define glPixelTexGenSGIX GLEW_GET_FUN(__glewPixelTexGenSGIX) + +#define GLEW_SGIX_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_pixel_texture) + +#endif /* GL_SGIX_pixel_texture */ + +/* ----------------------- GL_SGIX_pixel_texture_bits ---------------------- */ + +#ifndef GL_SGIX_pixel_texture_bits +#define GL_SGIX_pixel_texture_bits 1 + +#define GLEW_SGIX_pixel_texture_bits GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_bits) + +#endif /* GL_SGIX_pixel_texture_bits */ + +/* ------------------------ GL_SGIX_reference_plane ------------------------ */ + +#ifndef GL_SGIX_reference_plane +#define GL_SGIX_reference_plane 1 + +typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equation); + +#define glReferencePlaneSGIX GLEW_GET_FUN(__glewReferencePlaneSGIX) + +#define GLEW_SGIX_reference_plane GLEW_GET_VAR(__GLEW_SGIX_reference_plane) + +#endif /* GL_SGIX_reference_plane */ + +/* ---------------------------- GL_SGIX_resample --------------------------- */ + +#ifndef GL_SGIX_resample +#define GL_SGIX_resample 1 + +#define GL_PACK_RESAMPLE_SGIX 0x842E +#define GL_UNPACK_RESAMPLE_SGIX 0x842F +#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 +#define GL_RESAMPLE_REPLICATE_SGIX 0x8433 +#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434 + +#define GLEW_SGIX_resample GLEW_GET_VAR(__GLEW_SGIX_resample) + +#endif /* GL_SGIX_resample */ + +/* ----------------------------- GL_SGIX_shadow ---------------------------- */ + +#ifndef GL_SGIX_shadow +#define GL_SGIX_shadow 1 + +#define GL_TEXTURE_COMPARE_SGIX 0x819A +#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B +#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C +#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D + +#define GLEW_SGIX_shadow GLEW_GET_VAR(__GLEW_SGIX_shadow) + +#endif /* GL_SGIX_shadow */ + +/* ------------------------- GL_SGIX_shadow_ambient ------------------------ */ + +#ifndef GL_SGIX_shadow_ambient +#define GL_SGIX_shadow_ambient 1 + +#define GL_SHADOW_AMBIENT_SGIX 0x80BF + +#define GLEW_SGIX_shadow_ambient GLEW_GET_VAR(__GLEW_SGIX_shadow_ambient) + +#endif /* GL_SGIX_shadow_ambient */ + +/* ----------------------------- GL_SGIX_sprite ---------------------------- */ + +#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); + +#define glSpriteParameterfSGIX GLEW_GET_FUN(__glewSpriteParameterfSGIX) +#define glSpriteParameterfvSGIX GLEW_GET_FUN(__glewSpriteParameterfvSGIX) +#define glSpriteParameteriSGIX GLEW_GET_FUN(__glewSpriteParameteriSGIX) +#define glSpriteParameterivSGIX GLEW_GET_FUN(__glewSpriteParameterivSGIX) + +#define GLEW_SGIX_sprite GLEW_GET_VAR(__GLEW_SGIX_sprite) + +#endif /* GL_SGIX_sprite */ + +/* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */ + +#ifndef GL_SGIX_tag_sample_buffer +#define GL_SGIX_tag_sample_buffer 1 + +typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); + +#define glTagSampleBufferSGIX GLEW_GET_FUN(__glewTagSampleBufferSGIX) + +#define GLEW_SGIX_tag_sample_buffer GLEW_GET_VAR(__GLEW_SGIX_tag_sample_buffer) + +#endif /* GL_SGIX_tag_sample_buffer */ + +/* ------------------------ GL_SGIX_texture_add_env ------------------------ */ + +#ifndef GL_SGIX_texture_add_env +#define GL_SGIX_texture_add_env 1 + +#define GLEW_SGIX_texture_add_env GLEW_GET_VAR(__GLEW_SGIX_texture_add_env) + +#endif /* GL_SGIX_texture_add_env */ + +/* -------------------- GL_SGIX_texture_coordinate_clamp ------------------- */ + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_SGIX_texture_coordinate_clamp 1 + +#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 +#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A +#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B + +#define GLEW_SGIX_texture_coordinate_clamp GLEW_GET_VAR(__GLEW_SGIX_texture_coordinate_clamp) + +#endif /* GL_SGIX_texture_coordinate_clamp */ + +/* ------------------------ GL_SGIX_texture_lod_bias ----------------------- */ + +#ifndef GL_SGIX_texture_lod_bias +#define GL_SGIX_texture_lod_bias 1 + +#define GLEW_SGIX_texture_lod_bias GLEW_GET_VAR(__GLEW_SGIX_texture_lod_bias) + +#endif /* GL_SGIX_texture_lod_bias */ + +/* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */ + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_SGIX_texture_multi_buffer 1 + +#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E + +#define GLEW_SGIX_texture_multi_buffer GLEW_GET_VAR(__GLEW_SGIX_texture_multi_buffer) + +#endif /* GL_SGIX_texture_multi_buffer */ + +/* ------------------------- GL_SGIX_texture_range ------------------------- */ + +#ifndef GL_SGIX_texture_range +#define GL_SGIX_texture_range 1 + +#define GL_RGB_SIGNED_SGIX 0x85E0 +#define GL_RGBA_SIGNED_SGIX 0x85E1 +#define GL_ALPHA_SIGNED_SGIX 0x85E2 +#define GL_LUMINANCE_SIGNED_SGIX 0x85E3 +#define GL_INTENSITY_SIGNED_SGIX 0x85E4 +#define GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5 +#define GL_RGB16_SIGNED_SGIX 0x85E6 +#define GL_RGBA16_SIGNED_SGIX 0x85E7 +#define GL_ALPHA16_SIGNED_SGIX 0x85E8 +#define GL_LUMINANCE16_SIGNED_SGIX 0x85E9 +#define GL_INTENSITY16_SIGNED_SGIX 0x85EA +#define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB +#define GL_RGB_EXTENDED_RANGE_SGIX 0x85EC +#define GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED +#define GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE +#define GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF +#define GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0 +#define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1 +#define GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2 +#define GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3 +#define GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4 +#define GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5 +#define GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6 +#define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7 +#define GL_MIN_LUMINANCE_SGIS 0x85F8 +#define GL_MAX_LUMINANCE_SGIS 0x85F9 +#define GL_MIN_INTENSITY_SGIS 0x85FA +#define GL_MAX_INTENSITY_SGIS 0x85FB + +#define GLEW_SGIX_texture_range GLEW_GET_VAR(__GLEW_SGIX_texture_range) + +#endif /* GL_SGIX_texture_range */ + +/* ----------------------- GL_SGIX_texture_scale_bias ---------------------- */ + +#ifndef GL_SGIX_texture_scale_bias +#define GL_SGIX_texture_scale_bias 1 + +#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 +#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A +#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B +#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C + +#define GLEW_SGIX_texture_scale_bias GLEW_GET_VAR(__GLEW_SGIX_texture_scale_bias) + +#endif /* GL_SGIX_texture_scale_bias */ + +/* ------------------------- GL_SGIX_vertex_preclip ------------------------ */ + +#ifndef GL_SGIX_vertex_preclip +#define GL_SGIX_vertex_preclip 1 + +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF + +#define GLEW_SGIX_vertex_preclip GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip) + +#endif /* GL_SGIX_vertex_preclip */ + +/* ---------------------- GL_SGIX_vertex_preclip_hint ---------------------- */ + +#ifndef GL_SGIX_vertex_preclip_hint +#define GL_SGIX_vertex_preclip_hint 1 + +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF + +#define GLEW_SGIX_vertex_preclip_hint GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip_hint) + +#endif /* GL_SGIX_vertex_preclip_hint */ + +/* ----------------------------- GL_SGIX_ycrcb ----------------------------- */ + +#ifndef GL_SGIX_ycrcb +#define GL_SGIX_ycrcb 1 + +#define GLEW_SGIX_ycrcb GLEW_GET_VAR(__GLEW_SGIX_ycrcb) + +#endif /* GL_SGIX_ycrcb */ + +/* -------------------------- GL_SGI_color_matrix -------------------------- */ + +#ifndef GL_SGI_color_matrix +#define GL_SGI_color_matrix 1 + +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB + +#define GLEW_SGI_color_matrix GLEW_GET_VAR(__GLEW_SGI_color_matrix) + +#endif /* GL_SGI_color_matrix */ + +/* --------------------------- GL_SGI_color_table -------------------------- */ + +#ifndef GL_SGI_color_table +#define GL_SGI_color_table 1 + +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#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 GLvoid *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, GLvoid *table); + +#define glColorTableParameterfvSGI GLEW_GET_FUN(__glewColorTableParameterfvSGI) +#define glColorTableParameterivSGI GLEW_GET_FUN(__glewColorTableParameterivSGI) +#define glColorTableSGI GLEW_GET_FUN(__glewColorTableSGI) +#define glCopyColorTableSGI GLEW_GET_FUN(__glewCopyColorTableSGI) +#define glGetColorTableParameterfvSGI GLEW_GET_FUN(__glewGetColorTableParameterfvSGI) +#define glGetColorTableParameterivSGI GLEW_GET_FUN(__glewGetColorTableParameterivSGI) +#define glGetColorTableSGI GLEW_GET_FUN(__glewGetColorTableSGI) + +#define GLEW_SGI_color_table GLEW_GET_VAR(__GLEW_SGI_color_table) + +#endif /* GL_SGI_color_table */ + +/* ----------------------- GL_SGI_texture_color_table ---------------------- */ + +#ifndef GL_SGI_texture_color_table +#define GL_SGI_texture_color_table 1 + +#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC +#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD + +#define GLEW_SGI_texture_color_table GLEW_GET_VAR(__GLEW_SGI_texture_color_table) + +#endif /* GL_SGI_texture_color_table */ + +/* ------------------------- GL_SUNX_constant_data ------------------------- */ + +#ifndef GL_SUNX_constant_data +#define GL_SUNX_constant_data 1 + +#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 +#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 + +typedef void (GLAPIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void); + +#define glFinishTextureSUNX GLEW_GET_FUN(__glewFinishTextureSUNX) + +#define GLEW_SUNX_constant_data GLEW_GET_VAR(__GLEW_SUNX_constant_data) + +#endif /* GL_SUNX_constant_data */ + +/* -------------------- GL_SUN_convolution_border_modes -------------------- */ + +#ifndef GL_SUN_convolution_border_modes +#define GL_SUN_convolution_border_modes 1 + +#define GL_WRAP_BORDER_SUN 0x81D4 + +#define GLEW_SUN_convolution_border_modes GLEW_GET_VAR(__GLEW_SUN_convolution_border_modes) + +#endif /* GL_SUN_convolution_border_modes */ + +/* -------------------------- GL_SUN_global_alpha -------------------------- */ + +#ifndef GL_SUN_global_alpha +#define GL_SUN_global_alpha 1 + +#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); + +#define glGlobalAlphaFactorbSUN GLEW_GET_FUN(__glewGlobalAlphaFactorbSUN) +#define glGlobalAlphaFactordSUN GLEW_GET_FUN(__glewGlobalAlphaFactordSUN) +#define glGlobalAlphaFactorfSUN GLEW_GET_FUN(__glewGlobalAlphaFactorfSUN) +#define glGlobalAlphaFactoriSUN GLEW_GET_FUN(__glewGlobalAlphaFactoriSUN) +#define glGlobalAlphaFactorsSUN GLEW_GET_FUN(__glewGlobalAlphaFactorsSUN) +#define glGlobalAlphaFactorubSUN GLEW_GET_FUN(__glewGlobalAlphaFactorubSUN) +#define glGlobalAlphaFactoruiSUN GLEW_GET_FUN(__glewGlobalAlphaFactoruiSUN) +#define glGlobalAlphaFactorusSUN GLEW_GET_FUN(__glewGlobalAlphaFactorusSUN) + +#define GLEW_SUN_global_alpha GLEW_GET_VAR(__GLEW_SUN_global_alpha) + +#endif /* GL_SUN_global_alpha */ + +/* --------------------------- GL_SUN_mesh_array --------------------------- */ + +#ifndef GL_SUN_mesh_array +#define GL_SUN_mesh_array 1 + +#define GL_QUAD_MESH_SUN 0x8614 +#define GL_TRIANGLE_MESH_SUN 0x8615 + +#define GLEW_SUN_mesh_array GLEW_GET_VAR(__GLEW_SUN_mesh_array) + +#endif /* GL_SUN_mesh_array */ + +/* ------------------------ GL_SUN_read_video_pixels ----------------------- */ + +#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); + +#define glReadVideoPixelsSUN GLEW_GET_FUN(__glewReadVideoPixelsSUN) + +#define GLEW_SUN_read_video_pixels GLEW_GET_VAR(__GLEW_SUN_read_video_pixels) + +#endif /* GL_SUN_read_video_pixels */ + +/* --------------------------- GL_SUN_slice_accum -------------------------- */ + +#ifndef GL_SUN_slice_accum +#define GL_SUN_slice_accum 1 + +#define GL_SLICE_ACCUM_SUN 0x85CC + +#define GLEW_SUN_slice_accum GLEW_GET_VAR(__GLEW_SUN_slice_accum) + +#endif /* GL_SUN_slice_accum */ + +/* -------------------------- GL_SUN_triangle_list ------------------------- */ + +#ifndef GL_SUN_triangle_list +#define GL_SUN_triangle_list 1 + +#define GL_RESTART_SUN 0x01 +#define GL_REPLACE_MIDDLE_SUN 0x02 +#define GL_REPLACE_OLDEST_SUN 0x03 +#define GL_TRIANGLE_LIST_SUN 0x81D7 +#define GL_REPLACEMENT_CODE_SUN 0x81D8 +#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 +#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 +#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 +#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 +#define GL_R1UI_V3F_SUN 0x85C4 +#define GL_R1UI_C4UB_V3F_SUN 0x85C5 +#define GL_R1UI_C3F_V3F_SUN 0x85C6 +#define GL_R1UI_N3F_V3F_SUN 0x85C7 +#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 +#define GL_R1UI_T2F_V3F_SUN 0x85C9 +#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 GLvoid *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) +#define glReplacementCodeubvSUN GLEW_GET_FUN(__glewReplacementCodeubvSUN) +#define glReplacementCodeuiSUN GLEW_GET_FUN(__glewReplacementCodeuiSUN) +#define glReplacementCodeuivSUN GLEW_GET_FUN(__glewReplacementCodeuivSUN) +#define glReplacementCodeusSUN GLEW_GET_FUN(__glewReplacementCodeusSUN) +#define glReplacementCodeusvSUN GLEW_GET_FUN(__glewReplacementCodeusvSUN) + +#define GLEW_SUN_triangle_list GLEW_GET_VAR(__GLEW_SUN_triangle_list) + +#endif /* GL_SUN_triangle_list */ + +/* ----------------------------- GL_SUN_vertex ----------------------------- */ + +#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); + +#define glColor3fVertex3fSUN GLEW_GET_FUN(__glewColor3fVertex3fSUN) +#define glColor3fVertex3fvSUN GLEW_GET_FUN(__glewColor3fVertex3fvSUN) +#define glColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fSUN) +#define glColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fvSUN) +#define glColor4ubVertex2fSUN GLEW_GET_FUN(__glewColor4ubVertex2fSUN) +#define glColor4ubVertex2fvSUN GLEW_GET_FUN(__glewColor4ubVertex2fvSUN) +#define glColor4ubVertex3fSUN GLEW_GET_FUN(__glewColor4ubVertex3fSUN) +#define glColor4ubVertex3fvSUN GLEW_GET_FUN(__glewColor4ubVertex3fvSUN) +#define glNormal3fVertex3fSUN GLEW_GET_FUN(__glewNormal3fVertex3fSUN) +#define glNormal3fVertex3fvSUN GLEW_GET_FUN(__glewNormal3fVertex3fvSUN) +#define glReplacementCodeuiColor3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fSUN) +#define glReplacementCodeuiColor3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fvSUN) +#define glReplacementCodeuiColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fSUN) +#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fvSUN) +#define glReplacementCodeuiColor4ubVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fSUN) +#define glReplacementCodeuiColor4ubVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fvSUN) +#define glReplacementCodeuiNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fSUN) +#define glReplacementCodeuiNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fvSUN) +#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) +#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) +#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) +#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) +#define glReplacementCodeuiTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fSUN) +#define glReplacementCodeuiTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fvSUN) +#define glReplacementCodeuiVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fSUN) +#define glReplacementCodeuiVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fvSUN) +#define glTexCoord2fColor3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fSUN) +#define glTexCoord2fColor3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fvSUN) +#define glTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fSUN) +#define glTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fvSUN) +#define glTexCoord2fColor4ubVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fSUN) +#define glTexCoord2fColor4ubVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fvSUN) +#define glTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fSUN) +#define glTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fvSUN) +#define glTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fSUN) +#define glTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fvSUN) +#define glTexCoord4fColor4fNormal3fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fSUN) +#define glTexCoord4fColor4fNormal3fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fvSUN) +#define glTexCoord4fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fSUN) +#define glTexCoord4fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fvSUN) + +#define GLEW_SUN_vertex GLEW_GET_VAR(__GLEW_SUN_vertex) + +#endif /* GL_SUN_vertex */ + +/* -------------------------- GL_WIN_phong_shading ------------------------- */ + +#ifndef GL_WIN_phong_shading +#define GL_WIN_phong_shading 1 + +#define GL_PHONG_WIN 0x80EA +#define GL_PHONG_HINT_WIN 0x80EB + +#define GLEW_WIN_phong_shading GLEW_GET_VAR(__GLEW_WIN_phong_shading) + +#endif /* GL_WIN_phong_shading */ + +/* -------------------------- GL_WIN_specular_fog -------------------------- */ + +#ifndef GL_WIN_specular_fog +#define GL_WIN_specular_fog 1 + +#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC + +#define GLEW_WIN_specular_fog GLEW_GET_VAR(__GLEW_WIN_specular_fog) + +#endif /* GL_WIN_specular_fog */ + +/* ---------------------------- GL_WIN_swap_hint --------------------------- */ + +#ifndef GL_WIN_swap_hint +#define GL_WIN_swap_hint 1 + +typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); + +#define glAddSwapHintRectWIN GLEW_GET_FUN(__glewAddSwapHintRectWIN) + +#define GLEW_WIN_swap_hint GLEW_GET_VAR(__GLEW_WIN_swap_hint) + +#endif /* GL_WIN_swap_hint */ + +/* ------------------------------------------------------------------------- */ + +#if defined(GLEW_MX) && defined(_WIN32) +#define GLEW_FUN_EXPORT +#else +#define GLEW_FUN_EXPORT GLEWAPI +#endif /* GLEW_MX */ + +#if defined(GLEW_MX) +#define GLEW_VAR_EXPORT +#else +#define GLEW_VAR_EXPORT GLEWAPI +#endif /* GLEW_MX */ + +#if defined(GLEW_MX) && defined(_WIN32) +struct GLEWContextStruct +{ +#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 PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD; + +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 PFNGLTEXSTORAGESPARSEAMDPROC __glewTexStorageSparseAMD; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGESPARSEAMDPROC __glewTextureStorageSparseAMD; + +GLEW_FUN_EXPORT PFNGLSTENCILOPVALUEAMDPROC __glewStencilOpValueAMD; + +GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD; +GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD; + +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERANGLEPROC __glewBlitFramebufferANGLE; + +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC __glewRenderbufferStorageMultisampleANGLE; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDANGLEPROC __glewDrawArraysInstancedANGLE; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDANGLEPROC __glewDrawElementsInstancedANGLE; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORANGLEPROC __glewVertexAttribDivisorANGLE; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYANGLEPROC __glewBeginQueryANGLE; +GLEW_FUN_EXPORT PFNGLDELETEQUERIESANGLEPROC __glewDeleteQueriesANGLE; +GLEW_FUN_EXPORT PFNGLENDQUERYANGLEPROC __glewEndQueryANGLE; +GLEW_FUN_EXPORT PFNGLGENQUERIESANGLEPROC __glewGenQueriesANGLE; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VANGLEPROC __glewGetQueryObjecti64vANGLE; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVANGLEPROC __glewGetQueryObjectivANGLE; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VANGLEPROC __glewGetQueryObjectui64vANGLE; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVANGLEPROC __glewGetQueryObjectuivANGLE; +GLEW_FUN_EXPORT PFNGLGETQUERYIVANGLEPROC __glewGetQueryivANGLE; +GLEW_FUN_EXPORT PFNGLISQUERYANGLEPROC __glewIsQueryANGLE; +GLEW_FUN_EXPORT PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE; + +GLEW_FUN_EXPORT PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE; + +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 PFNGLGETIMAGEHANDLEARBPROC __glewGetImageHandleARB; +GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLEARBPROC __glewGetTextureHandleARB; +GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLEARBPROC __glewGetTextureSamplerHandleARB; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VARBPROC __glewGetVertexAttribLui64vARB; +GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTARBPROC __glewIsImageHandleResidentARB; +GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTARBPROC __glewIsTextureHandleResidentARB; +GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC __glewMakeImageHandleNonResidentARB; +GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTARBPROC __glewMakeImageHandleResidentARB; +GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC __glewMakeTextureHandleNonResidentARB; +GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTARBPROC __glewMakeTextureHandleResidentARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC __glewProgramUniformHandleui64ARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC __glewProgramUniformHandleui64vARB; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64ARBPROC __glewUniformHandleui64ARB; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VARBPROC __glewUniformHandleui64vARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64ARBPROC __glewVertexAttribL1ui64ARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VARBPROC __glewVertexAttribL1ui64vARB; + +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed; +GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; + +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEPROC __glewBufferStorage; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT; + +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 PFNGLCLEARTEXIMAGEPROC __glewClearTexImage; +GLEW_FUN_EXPORT PFNGLCLEARTEXSUBIMAGEPROC __glewClearTexSubImage; + +GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB; + +GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEPROC __glewDispatchCompute; +GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEINDIRECTPROC __glewDispatchComputeIndirect; + +GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC __glewDispatchComputeGroupSizeARB; + +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 PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC __glewMultiDrawArraysIndirectCountARB; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC __glewMultiDrawElementsIndirectCountARB; + +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 PFNGLBINDBUFFERSBASEPROC __glewBindBuffersBase; +GLEW_FUN_EXPORT PFNGLBINDBUFFERSRANGEPROC __glewBindBuffersRange; +GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTURESPROC __glewBindImageTextures; +GLEW_FUN_EXPORT PFNGLBINDSAMPLERSPROC __glewBindSamplers; +GLEW_FUN_EXPORT PFNGLBINDTEXTURESPROC __glewBindTextures; +GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERSPROC __glewBindVertexBuffers; + +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 PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB; +GLEW_FUN_EXPORT PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT; + +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 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 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 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 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 PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT; +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 PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL; +GLEW_FUN_EXPORT PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL; +GLEW_FUN_EXPORT PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL; + +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 PFNGLOBJECTLABELPROC __glewObjectLabel; +GLEW_FUN_EXPORT PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel; +GLEW_FUN_EXPORT PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup; +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 PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX; +GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX; + +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV; + +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 PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV; +GLEW_FUN_EXPORT PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV; + +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 PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV; + +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 PFNGLALPHAFUNCXPROC __glewAlphaFuncx; +GLEW_FUN_EXPORT PFNGLCLEARCOLORXPROC __glewClearColorx; +GLEW_FUN_EXPORT PFNGLCLEARDEPTHXPROC __glewClearDepthx; +GLEW_FUN_EXPORT PFNGLCOLOR4XPROC __glewColor4x; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEXPROC __glewDepthRangex; +GLEW_FUN_EXPORT PFNGLFOGXPROC __glewFogx; +GLEW_FUN_EXPORT PFNGLFOGXVPROC __glewFogxv; +GLEW_FUN_EXPORT PFNGLFRUSTUMFPROC __glewFrustumf; +GLEW_FUN_EXPORT PFNGLFRUSTUMXPROC __glewFrustumx; +GLEW_FUN_EXPORT PFNGLLIGHTMODELXPROC __glewLightModelx; +GLEW_FUN_EXPORT PFNGLLIGHTMODELXVPROC __glewLightModelxv; +GLEW_FUN_EXPORT PFNGLLIGHTXPROC __glewLightx; +GLEW_FUN_EXPORT PFNGLLIGHTXVPROC __glewLightxv; +GLEW_FUN_EXPORT PFNGLLINEWIDTHXPROC __glewLineWidthx; +GLEW_FUN_EXPORT PFNGLLOADMATRIXXPROC __glewLoadMatrixx; +GLEW_FUN_EXPORT PFNGLMATERIALXPROC __glewMaterialx; +GLEW_FUN_EXPORT PFNGLMATERIALXVPROC __glewMaterialxv; +GLEW_FUN_EXPORT PFNGLMULTMATRIXXPROC __glewMultMatrixx; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4XPROC __glewMultiTexCoord4x; +GLEW_FUN_EXPORT PFNGLNORMAL3XPROC __glewNormal3x; +GLEW_FUN_EXPORT PFNGLORTHOFPROC __glewOrthof; +GLEW_FUN_EXPORT PFNGLORTHOXPROC __glewOrthox; +GLEW_FUN_EXPORT PFNGLPOINTSIZEXPROC __glewPointSizex; +GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETXPROC __glewPolygonOffsetx; +GLEW_FUN_EXPORT PFNGLROTATEXPROC __glewRotatex; +GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEXPROC __glewSampleCoveragex; +GLEW_FUN_EXPORT PFNGLSCALEXPROC __glewScalex; +GLEW_FUN_EXPORT PFNGLTEXENVXPROC __glewTexEnvx; +GLEW_FUN_EXPORT PFNGLTEXENVXVPROC __glewTexEnvxv; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERXPROC __glewTexParameterx; +GLEW_FUN_EXPORT PFNGLTRANSLATEXPROC __glewTranslatex; + +GLEW_FUN_EXPORT PFNGLCLIPPLANEFPROC __glewClipPlanef; +GLEW_FUN_EXPORT PFNGLCLIPPLANEXPROC __glewClipPlanex; +GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFPROC __glewGetClipPlanef; +GLEW_FUN_EXPORT PFNGLGETCLIPPLANEXPROC __glewGetClipPlanex; +GLEW_FUN_EXPORT PFNGLGETFIXEDVPROC __glewGetFixedv; +GLEW_FUN_EXPORT PFNGLGETLIGHTXVPROC __glewGetLightxv; +GLEW_FUN_EXPORT PFNGLGETMATERIALXVPROC __glewGetMaterialxv; +GLEW_FUN_EXPORT PFNGLGETTEXENVXVPROC __glewGetTexEnvxv; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERXVPROC __glewGetTexParameterxv; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERXPROC __glewPointParameterx; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERXVPROC __glewPointParameterxv; +GLEW_FUN_EXPORT PFNGLPOINTSIZEPOINTEROESPROC __glewPointSizePointerOES; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERXVPROC __glewTexParameterxv; + +GLEW_FUN_EXPORT PFNGLERRORSTRINGREGALPROC __glewErrorStringREGAL; + +GLEW_FUN_EXPORT PFNGLGETEXTENSIONREGALPROC __glewGetExtensionREGAL; +GLEW_FUN_EXPORT PFNGLISSUPPORTEDREGALPROC __glewIsSupportedREGAL; + +GLEW_FUN_EXPORT PFNGLLOGMESSAGECALLBACKREGALPROC __glewLogMessageCallbackREGAL; + +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; + +#if defined(GLEW_MX) && !defined(_WIN32) +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_VERSION_4_4; +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_interleaved_elements; +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_shader_trinary_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sparse_texture; +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_ANGLE_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_blit; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_instanced_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_pack_reverse_row_order; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt1; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt3; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt5; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_usage; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_translated_shader_source; +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_bindless_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_buffer_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_texture; +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_compute_variable_group_size; +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_enhanced_layouts; +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_indirect_parameters; +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_bind; +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_query_buffer_object; +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_seamless_cubemap_per_texture; +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_draw_parameters; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_group_vote; +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_sparse_texture; +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_mirror_clamp_to_edge; +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_stencil8; +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_10f_11f_11f_rev; +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_map_texture; +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_conditional_render; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced_coherent; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_program5; +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_deep_texture3D; +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_draw_texture; +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_program5_mem_extended; +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_counters; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_storage_buffer_object; +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_ES1_0_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_1_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_enable; +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 */ +#endif /* GLEW_MX */ + +/* ------------------------------------------------------------------------- */ + +/* 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 */ + +/* string codes */ +#define GLEW_VERSION 1 +#define GLEW_VERSION_MAJOR 2 +#define GLEW_VERSION_MINOR 3 +#define GLEW_VERSION_MICRO 4 + +/* API */ +#ifdef GLEW_MX + +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)) +#ifdef _WIN32 +# define GLEW_GET_FUN(x) glewGetContext()->x +#else +# define GLEW_GET_FUN(x) x +#endif + +#else /* GLEW_MX */ + +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_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); + +#ifdef __cplusplus +} +#endif + +#ifdef GLEW_APIENTRY_DEFINED +#undef GLEW_APIENTRY_DEFINED +#undef APIENTRY +#undef GLAPIENTRY +#define GLAPIENTRY +#endif + +#ifdef GLEW_CALLBACK_DEFINED +#undef GLEW_CALLBACK_DEFINED +#undef CALLBACK +#endif + +#ifdef GLEW_WINGDIAPI_DEFINED +#undef GLEW_WINGDIAPI_DEFINED +#undef WINGDIAPI +#endif + +#undef GLAPI +/* #undef GLEWAPI */ + +#endif /* __glew_h__ */ diff --git a/Gem/develop/include/Gem/Gem/glxew.h b/Gem/develop/include/Gem/Gem/glxew.h new file mode 100644 index 0000000..9c1909f --- /dev/null +++ b/Gem/develop/include/Gem/Gem/glxew.h @@ -0,0 +1,1669 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * Mesa 3-D graphics library + * Version: 7.0 + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * + * 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 + * BRIAN PAUL 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. + */ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are 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 Materials. +** +** THE MATERIALS ARE 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 +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __glxew_h__ +#define __glxew_h__ +#define __GLXEW_H__ + +#ifdef __glxext_h_ +#error glxext.h included before glxew.h +#endif + +#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__) +#error glx.h included before glxew.h +#endif + +#define __glxext_h_ + +#define GLX_H +#define __GLX_glx_h__ +#define __glx_h__ + +#include +#include +#include +#include "glew.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ---------------------------- GLX_VERSION_1_0 --------------------------- */ + +#ifndef GLX_VERSION_1_0 +#define GLX_VERSION_1_0 1 + +#define GLX_USE_GL 1 +#define GLX_BUFFER_SIZE 2 +#define GLX_LEVEL 3 +#define GLX_RGBA 4 +#define GLX_DOUBLEBUFFER 5 +#define GLX_STEREO 6 +#define GLX_AUX_BUFFERS 7 +#define GLX_RED_SIZE 8 +#define GLX_GREEN_SIZE 9 +#define GLX_BLUE_SIZE 10 +#define GLX_ALPHA_SIZE 11 +#define GLX_DEPTH_SIZE 12 +#define GLX_STENCIL_SIZE 13 +#define GLX_ACCUM_RED_SIZE 14 +#define GLX_ACCUM_GREEN_SIZE 15 +#define GLX_ACCUM_BLUE_SIZE 16 +#define GLX_ACCUM_ALPHA_SIZE 17 +#define GLX_BAD_SCREEN 1 +#define GLX_BAD_ATTRIBUTE 2 +#define GLX_NO_EXTENSION 3 +#define GLX_BAD_VISUAL 4 +#define GLX_BAD_CONTEXT 5 +#define GLX_BAD_VALUE 6 +#define GLX_BAD_ENUM 7 + +typedef XID GLXDrawable; +typedef XID GLXPixmap; +#ifdef __sun +typedef struct __glXContextRec *GLXContext; +#else +typedef struct __GLXcontextRec *GLXContext; +#endif + +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); + +#define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0) + +#endif /* GLX_VERSION_1_0 */ + +/* ---------------------------- GLX_VERSION_1_1 --------------------------- */ + +#ifndef GLX_VERSION_1_1 +#define GLX_VERSION_1_1 + +#define GLX_VENDOR 0x1 +#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); + +#define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1) + +#endif /* GLX_VERSION_1_1 */ + +/* ---------------------------- GLX_VERSION_1_2 ---------------------------- */ + +#ifndef GLX_VERSION_1_2 +#define GLX_VERSION_1_2 1 + +typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void); + +#define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay) + +#define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2) + +#endif /* GLX_VERSION_1_2 */ + +/* ---------------------------- GLX_VERSION_1_3 ---------------------------- */ + +#ifndef GLX_VERSION_1_3 +#define GLX_VERSION_1_3 1 + +#define GLX_RGBA_BIT 0x00000001 +#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 +#define GLX_WINDOW_BIT 0x00000001 +#define GLX_COLOR_INDEX_BIT 0x00000002 +#define GLX_PIXMAP_BIT 0x00000002 +#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 +#define GLX_PBUFFER_BIT 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 +#define GLX_AUX_BUFFERS_BIT 0x00000010 +#define GLX_CONFIG_CAVEAT 0x20 +#define GLX_DEPTH_BUFFER_BIT 0x00000020 +#define GLX_X_VISUAL_TYPE 0x22 +#define GLX_TRANSPARENT_TYPE 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24 +#define GLX_TRANSPARENT_RED_VALUE 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 +#define GLX_STENCIL_BUFFER_BIT 0x00000040 +#define GLX_ACCUM_BUFFER_BIT 0x00000080 +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_VISUAL_ID 0x800B +#define GLX_SCREEN 0x800C +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_DRAWABLE_TYPE 0x8010 +#define GLX_RENDER_TYPE 0x8011 +#define GLX_X_RENDERABLE 0x8012 +#define GLX_FBCONFIG_ID 0x8013 +#define GLX_RGBA_TYPE 0x8014 +#define GLX_COLOR_INDEX_TYPE 0x8015 +#define GLX_MAX_PBUFFER_WIDTH 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT 0x8017 +#define GLX_MAX_PBUFFER_PIXELS 0x8018 +#define GLX_PRESERVED_CONTENTS 0x801B +#define GLX_LARGEST_PBUFFER 0x801C +#define GLX_WIDTH 0x801D +#define GLX_HEIGHT 0x801E +#define GLX_EVENT_MASK 0x801F +#define GLX_DAMAGED 0x8020 +#define GLX_SAVED 0x8021 +#define GLX_WINDOW 0x8022 +#define GLX_PBUFFER 0x8023 +#define GLX_PBUFFER_HEIGHT 0x8040 +#define GLX_PBUFFER_WIDTH 0x8041 +#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 +#define GLX_DONT_CARE 0xFFFFFFFF + +typedef XID GLXFBConfigID; +typedef XID GLXPbuffer; +typedef XID GLXWindow; +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; +} GLXPbufferClobberEvent; +typedef union __GLXEvent { + 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); + +#define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig) +#define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext) +#define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer) +#define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap) +#define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow) +#define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer) +#define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap) +#define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow) +#define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable) +#define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib) +#define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs) +#define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent) +#define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig) +#define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent) +#define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext) +#define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable) +#define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent) + +#define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3) + +#endif /* GLX_VERSION_1_3 */ + +/* ---------------------------- GLX_VERSION_1_4 ---------------------------- */ + +#ifndef GLX_VERSION_1_4 +#define GLX_VERSION_1_4 1 + +#define GLX_SAMPLE_BUFFERS 100000 +#define GLX_SAMPLES 100001 + +extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); + +#define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4) + +#endif /* GLX_VERSION_1_4 */ + +/* -------------------------- GLX_3DFX_multisample ------------------------- */ + +#ifndef GLX_3DFX_multisample +#define GLX_3DFX_multisample 1 + +#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 +#define GLX_SAMPLES_3DFX 0x8051 + +#define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample) + +#endif /* GLX_3DFX_multisample */ + +/* ------------------------ GLX_AMD_gpu_association ------------------------ */ + +#ifndef GLX_AMD_gpu_association +#define GLX_AMD_gpu_association 1 + +#define GLX_GPU_VENDOR_AMD 0x1F00 +#define GLX_GPU_RENDERER_STRING_AMD 0x1F01 +#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 +#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 +#define GLX_GPU_RAM_AMD 0x21A3 +#define GLX_GPU_CLOCK_AMD 0x21A4 +#define GLX_GPU_NUM_PIPES_AMD 0x21A5 +#define GLX_GPU_NUM_SIMD_AMD 0x21A6 +#define GLX_GPU_NUM_RB_AMD 0x21A7 +#define GLX_GPU_NUM_SPI_AMD 0x21A8 + +typedef void ( * PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC) (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef GLXContext ( * PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC) (unsigned int id, GLXContext share_list); +typedef GLXContext ( * PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (unsigned int id, GLXContext share_context, const int* attribList); +typedef Bool ( * PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC) (GLXContext ctx); +typedef unsigned int ( * PFNGLXGETCONTEXTGPUIDAMDPROC) (GLXContext ctx); +typedef GLXContext ( * PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); +typedef unsigned int ( * PFNGLXGETGPUIDSAMDPROC) (unsigned int maxCount, unsigned int* ids); +typedef int ( * PFNGLXGETGPUINFOAMDPROC) (unsigned int id, int property, GLenum dataType, unsigned int size, void* data); +typedef Bool ( * PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (GLXContext ctx); + +#define glXBlitContextFramebufferAMD GLXEW_GET_FUN(__glewXBlitContextFramebufferAMD) +#define glXCreateAssociatedContextAMD GLXEW_GET_FUN(__glewXCreateAssociatedContextAMD) +#define glXCreateAssociatedContextAttribsAMD GLXEW_GET_FUN(__glewXCreateAssociatedContextAttribsAMD) +#define glXDeleteAssociatedContextAMD GLXEW_GET_FUN(__glewXDeleteAssociatedContextAMD) +#define glXGetContextGPUIDAMD GLXEW_GET_FUN(__glewXGetContextGPUIDAMD) +#define glXGetCurrentAssociatedContextAMD GLXEW_GET_FUN(__glewXGetCurrentAssociatedContextAMD) +#define glXGetGPUIDsAMD GLXEW_GET_FUN(__glewXGetGPUIDsAMD) +#define glXGetGPUInfoAMD GLXEW_GET_FUN(__glewXGetGPUInfoAMD) +#define glXMakeAssociatedContextCurrentAMD GLXEW_GET_FUN(__glewXMakeAssociatedContextCurrentAMD) + +#define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association) + +#endif /* GLX_AMD_gpu_association */ + +/* ------------------------- GLX_ARB_create_context ------------------------ */ + +#ifndef GLX_ARB_create_context +#define GLX_ARB_create_context 1 + +#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 +#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#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); + +#define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) + +#define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context) + +#endif /* GLX_ARB_create_context */ + +/* --------------------- GLX_ARB_create_context_profile -------------------- */ + +#ifndef GLX_ARB_create_context_profile +#define GLX_ARB_create_context_profile 1 + +#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 + +#define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile) + +#endif /* GLX_ARB_create_context_profile */ + +/* ------------------- GLX_ARB_create_context_robustness ------------------- */ + +#ifndef GLX_ARB_create_context_robustness +#define GLX_ARB_create_context_robustness 1 + +#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 + +#define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness) + +#endif /* GLX_ARB_create_context_robustness */ + +/* ------------------------- GLX_ARB_fbconfig_float ------------------------ */ + +#ifndef GLX_ARB_fbconfig_float +#define GLX_ARB_fbconfig_float 1 + +#define GLX_RGBA_FLOAT_BIT 0x00000004 +#define GLX_RGBA_FLOAT_TYPE 0x20B9 + +#define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float) + +#endif /* GLX_ARB_fbconfig_float */ + +/* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */ + +#ifndef GLX_ARB_framebuffer_sRGB +#define GLX_ARB_framebuffer_sRGB 1 + +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2 + +#define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB) + +#endif /* GLX_ARB_framebuffer_sRGB */ + +/* ------------------------ GLX_ARB_get_proc_address ----------------------- */ + +#ifndef GLX_ARB_get_proc_address +#define GLX_ARB_get_proc_address 1 + +extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void); + +#define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address) + +#endif /* GLX_ARB_get_proc_address */ + +/* -------------------------- GLX_ARB_multisample -------------------------- */ + +#ifndef GLX_ARB_multisample +#define GLX_ARB_multisample 1 + +#define GLX_SAMPLE_BUFFERS_ARB 100000 +#define GLX_SAMPLES_ARB 100001 + +#define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample) + +#endif /* GLX_ARB_multisample */ + +/* ---------------- GLX_ARB_robustness_application_isolation --------------- */ + +#ifndef GLX_ARB_robustness_application_isolation +#define GLX_ARB_robustness_application_isolation 1 + +#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 + +#define GLXEW_ARB_robustness_application_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_application_isolation) + +#endif /* GLX_ARB_robustness_application_isolation */ + +/* ---------------- GLX_ARB_robustness_share_group_isolation --------------- */ + +#ifndef GLX_ARB_robustness_share_group_isolation +#define GLX_ARB_robustness_share_group_isolation 1 + +#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 + +#define GLXEW_ARB_robustness_share_group_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_share_group_isolation) + +#endif /* GLX_ARB_robustness_share_group_isolation */ + +/* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */ + +#ifndef GLX_ARB_vertex_buffer_object +#define GLX_ARB_vertex_buffer_object 1 + +#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 + +#define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object) + +#endif /* GLX_ARB_vertex_buffer_object */ + +/* ----------------------- GLX_ATI_pixel_format_float ---------------------- */ + +#ifndef GLX_ATI_pixel_format_float +#define GLX_ATI_pixel_format_float 1 + +#define GLX_RGBA_FLOAT_ATI_BIT 0x00000100 + +#define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float) + +#endif /* GLX_ATI_pixel_format_float */ + +/* ------------------------- GLX_ATI_render_texture ------------------------ */ + +#ifndef GLX_ATI_render_texture +#define GLX_ATI_render_texture 1 + +#define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800 +#define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801 +#define GLX_TEXTURE_FORMAT_ATI 0x9802 +#define GLX_TEXTURE_TARGET_ATI 0x9803 +#define GLX_MIPMAP_TEXTURE_ATI 0x9804 +#define GLX_TEXTURE_RGB_ATI 0x9805 +#define GLX_TEXTURE_RGBA_ATI 0x9806 +#define GLX_NO_TEXTURE_ATI 0x9807 +#define GLX_TEXTURE_CUBE_MAP_ATI 0x9808 +#define GLX_TEXTURE_1D_ATI 0x9809 +#define GLX_TEXTURE_2D_ATI 0x980A +#define GLX_MIPMAP_LEVEL_ATI 0x980B +#define GLX_CUBE_MAP_FACE_ATI 0x980C +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810 +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811 +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812 +#define GLX_FRONT_LEFT_ATI 0x9813 +#define GLX_FRONT_RIGHT_ATI 0x9814 +#define GLX_BACK_LEFT_ATI 0x9815 +#define GLX_BACK_RIGHT_ATI 0x9816 +#define GLX_AUX0_ATI 0x9817 +#define GLX_AUX1_ATI 0x9818 +#define GLX_AUX2_ATI 0x9819 +#define GLX_AUX3_ATI 0x981A +#define GLX_AUX4_ATI 0x981B +#define GLX_AUX5_ATI 0x981C +#define GLX_AUX6_ATI 0x981D +#define GLX_AUX7_ATI 0x981E +#define GLX_AUX8_ATI 0x981F +#define GLX_AUX9_ATI 0x9820 +#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); + +#define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI) +#define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI) +#define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI) + +#define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture) + +#endif /* GLX_ATI_render_texture */ + +/* --------------------------- GLX_EXT_buffer_age -------------------------- */ + +#ifndef GLX_EXT_buffer_age +#define GLX_EXT_buffer_age 1 + +#define GLX_BACK_BUFFER_AGE_EXT 0x20F4 + +#define GLXEW_EXT_buffer_age GLXEW_GET_VAR(__GLXEW_EXT_buffer_age) + +#endif /* GLX_EXT_buffer_age */ + +/* ------------------- GLX_EXT_create_context_es2_profile ------------------ */ + +#ifndef GLX_EXT_create_context_es2_profile +#define GLX_EXT_create_context_es2_profile 1 + +#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 + +#define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile) + +#endif /* GLX_EXT_create_context_es2_profile */ + +/* ------------------- GLX_EXT_create_context_es_profile ------------------- */ + +#ifndef GLX_EXT_create_context_es_profile +#define GLX_EXT_create_context_es_profile 1 + +#define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 + +#define GLXEW_EXT_create_context_es_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es_profile) + +#endif /* GLX_EXT_create_context_es_profile */ + +/* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */ + +#ifndef GLX_EXT_fbconfig_packed_float +#define GLX_EXT_fbconfig_packed_float 1 + +#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 +#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 + +#define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float) + +#endif /* GLX_EXT_fbconfig_packed_float */ + +/* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */ + +#ifndef GLX_EXT_framebuffer_sRGB +#define GLX_EXT_framebuffer_sRGB 1 + +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 + +#define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB) + +#endif /* GLX_EXT_framebuffer_sRGB */ + +/* ------------------------- GLX_EXT_import_context ------------------------ */ + +#ifndef GLX_EXT_import_context +#define GLX_EXT_import_context 1 + +#define GLX_SHARE_CONTEXT_EXT 0x800A +#define GLX_VISUAL_ID_EXT 0x800B +#define GLX_SCREEN_EXT 0x800C + +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); + +#define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT) +#define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT) +#define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT) +#define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT) + +#define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context) + +#endif /* GLX_EXT_import_context */ + +/* -------------------------- GLX_EXT_scene_marker ------------------------- */ + +#ifndef GLX_EXT_scene_marker +#define GLX_EXT_scene_marker 1 + +#define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker) + +#endif /* GLX_EXT_scene_marker */ + +/* -------------------------- GLX_EXT_swap_control ------------------------- */ + +#ifndef GLX_EXT_swap_control +#define GLX_EXT_swap_control 1 + +#define GLX_SWAP_INTERVAL_EXT 0x20F1 +#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 + +typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval); + +#define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT) + +#define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control) + +#endif /* GLX_EXT_swap_control */ + +/* ----------------------- GLX_EXT_swap_control_tear ----------------------- */ + +#ifndef GLX_EXT_swap_control_tear +#define GLX_EXT_swap_control_tear 1 + +#define GLX_LATE_SWAPS_TEAR_EXT 0x20F3 + +#define GLXEW_EXT_swap_control_tear GLXEW_GET_VAR(__GLXEW_EXT_swap_control_tear) + +#endif /* GLX_EXT_swap_control_tear */ + +/* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */ + +#ifndef GLX_EXT_texture_from_pixmap +#define GLX_EXT_texture_from_pixmap 1 + +#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 +#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 +#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 +#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 +#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 +#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 +#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 +#define GLX_Y_INVERTED_EXT 0x20D4 +#define GLX_TEXTURE_FORMAT_EXT 0x20D5 +#define GLX_TEXTURE_TARGET_EXT 0x20D6 +#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 +#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 +#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 +#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA +#define GLX_TEXTURE_1D_EXT 0x20DB +#define GLX_TEXTURE_2D_EXT 0x20DC +#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD +#define GLX_FRONT_LEFT_EXT 0x20DE +#define GLX_FRONT_RIGHT_EXT 0x20DF +#define GLX_BACK_LEFT_EXT 0x20E0 +#define GLX_BACK_RIGHT_EXT 0x20E1 +#define GLX_AUX0_EXT 0x20E2 +#define GLX_AUX1_EXT 0x20E3 +#define GLX_AUX2_EXT 0x20E4 +#define GLX_AUX3_EXT 0x20E5 +#define GLX_AUX4_EXT 0x20E6 +#define GLX_AUX5_EXT 0x20E7 +#define GLX_AUX6_EXT 0x20E8 +#define GLX_AUX7_EXT 0x20E9 +#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); + +#define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) +#define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) + +#define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap) + +#endif /* GLX_EXT_texture_from_pixmap */ + +/* -------------------------- GLX_EXT_visual_info -------------------------- */ + +#ifndef GLX_EXT_visual_info +#define GLX_EXT_visual_info 1 + +#define GLX_X_VISUAL_TYPE_EXT 0x22 +#define GLX_TRANSPARENT_TYPE_EXT 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 +#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 +#define GLX_NONE_EXT 0x8000 +#define GLX_TRUE_COLOR_EXT 0x8002 +#define GLX_DIRECT_COLOR_EXT 0x8003 +#define GLX_PSEUDO_COLOR_EXT 0x8004 +#define GLX_STATIC_COLOR_EXT 0x8005 +#define GLX_GRAY_SCALE_EXT 0x8006 +#define GLX_STATIC_GRAY_EXT 0x8007 +#define GLX_TRANSPARENT_RGB_EXT 0x8008 +#define GLX_TRANSPARENT_INDEX_EXT 0x8009 + +#define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info) + +#endif /* GLX_EXT_visual_info */ + +/* ------------------------- GLX_EXT_visual_rating ------------------------- */ + +#ifndef GLX_EXT_visual_rating +#define GLX_EXT_visual_rating 1 + +#define GLX_VISUAL_CAVEAT_EXT 0x20 +#define GLX_SLOW_VISUAL_EXT 0x8001 +#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D + +#define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating) + +#endif /* GLX_EXT_visual_rating */ + +/* -------------------------- GLX_INTEL_swap_event ------------------------- */ + +#ifndef GLX_INTEL_swap_event +#define GLX_INTEL_swap_event 1 + +#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 +#define GLX_COPY_COMPLETE_INTEL 0x8181 +#define GLX_FLIP_COMPLETE_INTEL 0x8182 +#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 + +#define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event) + +#endif /* GLX_INTEL_swap_event */ + +/* -------------------------- GLX_MESA_agp_offset -------------------------- */ + +#ifndef GLX_MESA_agp_offset +#define GLX_MESA_agp_offset 1 + +typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer); + +#define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA) + +#define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset) + +#endif /* GLX_MESA_agp_offset */ + +/* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */ + +#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); + +#define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA) + +#define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer) + +#endif /* GLX_MESA_copy_sub_buffer */ + +/* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */ + +#ifndef GLX_MESA_pixmap_colormap +#define GLX_MESA_pixmap_colormap 1 + +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); + +#define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA) + +#define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap) + +#endif /* GLX_MESA_pixmap_colormap */ + +/* ------------------------ GLX_MESA_release_buffers ----------------------- */ + +#ifndef GLX_MESA_release_buffers +#define GLX_MESA_release_buffers 1 + +typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d); + +#define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA) + +#define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers) + +#endif /* GLX_MESA_release_buffers */ + +/* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */ + +#ifndef GLX_MESA_set_3dfx_mode +#define GLX_MESA_set_3dfx_mode 1 + +#define GLX_3DFX_WINDOW_MODE_MESA 0x1 +#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 + +typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode); + +#define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA) + +#define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode) + +#endif /* GLX_MESA_set_3dfx_mode */ + +/* ------------------------- GLX_MESA_swap_control ------------------------- */ + +#ifndef GLX_MESA_swap_control +#define GLX_MESA_swap_control 1 + +typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC) (void); +typedef int ( * PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval); + +#define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA) +#define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA) + +#define GLXEW_MESA_swap_control GLXEW_GET_VAR(__GLXEW_MESA_swap_control) + +#endif /* GLX_MESA_swap_control */ + +/* --------------------------- GLX_NV_copy_image --------------------------- */ + +#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); + +#define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV) + +#define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image) + +#endif /* GLX_NV_copy_image */ + +/* -------------------------- GLX_NV_float_buffer -------------------------- */ + +#ifndef GLX_NV_float_buffer +#define GLX_NV_float_buffer 1 + +#define GLX_FLOAT_COMPONENTS_NV 0x20B0 + +#define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer) + +#endif /* GLX_NV_float_buffer */ + +/* ---------------------- GLX_NV_multisample_coverage ---------------------- */ + +#ifndef GLX_NV_multisample_coverage +#define GLX_NV_multisample_coverage 1 + +#define GLX_COLOR_SAMPLES_NV 0x20B3 +#define GLX_COVERAGE_SAMPLES_NV 100001 + +#define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage) + +#endif /* GLX_NV_multisample_coverage */ + +/* -------------------------- GLX_NV_present_video ------------------------- */ + +#ifndef GLX_NV_present_video +#define GLX_NV_present_video 1 + +#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); + +#define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) +#define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) + +#define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video) + +#endif /* GLX_NV_present_video */ + +/* --------------------------- GLX_NV_swap_group --------------------------- */ + +#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); + +#define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) +#define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV) +#define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV) +#define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV) +#define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV) +#define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV) + +#define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group) + +#endif /* GLX_NV_swap_group */ + +/* ----------------------- GLX_NV_vertex_array_range ----------------------- */ + +#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); + +#define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV) +#define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV) + +#define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range) + +#endif /* GLX_NV_vertex_array_range */ + +/* -------------------------- GLX_NV_video_capture ------------------------- */ + +#ifndef GLX_NV_video_capture +#define GLX_NV_video_capture 1 + +#define GLX_DEVICE_ID_NV 0x20CD +#define GLX_UNIQUE_ID_NV 0x20CE +#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF + +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); + +#define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV) +#define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV) +#define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV) +#define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV) +#define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV) + +#define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture) + +#endif /* GLX_NV_video_capture */ + +/* -------------------------- GLX_NV_video_output -------------------------- */ + +#ifndef GLX_NV_video_output +#define GLX_NV_video_output 1 + +#define GLX_VIDEO_OUT_COLOR_NV 0x20C3 +#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 +#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 +#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 +#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 +#define GLX_VIDEO_OUT_FRAME_NV 0x20C8 +#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 +#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA +#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); + +#define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) +#define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) +#define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV) +#define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV) +#define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV) +#define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV) + +#define GLXEW_NV_video_output GLXEW_GET_VAR(__GLXEW_NV_video_output) + +#endif /* GLX_NV_video_output */ + +/* -------------------------- GLX_OML_swap_method -------------------------- */ + +#ifndef GLX_OML_swap_method +#define GLX_OML_swap_method 1 + +#define GLX_SWAP_METHOD_OML 0x8060 +#define GLX_SWAP_EXCHANGE_OML 0x8061 +#define GLX_SWAP_COPY_OML 0x8062 +#define GLX_SWAP_UNDEFINED_OML 0x8063 + +#define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method) + +#endif /* GLX_OML_swap_method */ + +/* -------------------------- GLX_OML_sync_control ------------------------- */ + +#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); + +#define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML) +#define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML) +#define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML) +#define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML) +#define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML) + +#define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control) + +#endif /* GLX_OML_sync_control */ + +/* ------------------------ GLX_SGIS_blended_overlay ----------------------- */ + +#ifndef GLX_SGIS_blended_overlay +#define GLX_SGIS_blended_overlay 1 + +#define GLX_BLENDED_RGBA_SGIS 0x8025 + +#define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay) + +#endif /* GLX_SGIS_blended_overlay */ + +/* -------------------------- GLX_SGIS_color_range ------------------------- */ + +#ifndef GLX_SGIS_color_range +#define GLX_SGIS_color_range 1 + +#define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range) + +#endif /* GLX_SGIS_color_range */ + +/* -------------------------- GLX_SGIS_multisample ------------------------- */ + +#ifndef GLX_SGIS_multisample +#define GLX_SGIS_multisample 1 + +#define GLX_SAMPLE_BUFFERS_SGIS 100000 +#define GLX_SAMPLES_SGIS 100001 + +#define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample) + +#endif /* GLX_SGIS_multisample */ + +/* ---------------------- GLX_SGIS_shared_multisample ---------------------- */ + +#ifndef GLX_SGIS_shared_multisample +#define GLX_SGIS_shared_multisample 1 + +#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 +#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 + +#define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample) + +#endif /* GLX_SGIS_shared_multisample */ + +/* --------------------------- GLX_SGIX_fbconfig --------------------------- */ + +#ifndef GLX_SGIX_fbconfig +#define GLX_SGIX_fbconfig 1 + +#define GLX_WINDOW_BIT_SGIX 0x00000001 +#define GLX_RGBA_BIT_SGIX 0x00000001 +#define GLX_PIXMAP_BIT_SGIX 0x00000002 +#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 +#define GLX_SCREEN_EXT 0x800C +#define GLX_DRAWABLE_TYPE_SGIX 0x8010 +#define GLX_RENDER_TYPE_SGIX 0x8011 +#define GLX_X_RENDERABLE_SGIX 0x8012 +#define GLX_FBCONFIG_ID_SGIX 0x8013 +#define GLX_RGBA_TYPE_SGIX 0x8014 +#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 + +typedef XID GLXFBConfigIDSGIX; +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); + +#define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX) +#define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX) +#define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX) +#define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX) +#define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX) +#define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX) + +#define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig) + +#endif /* GLX_SGIX_fbconfig */ + +/* --------------------------- GLX_SGIX_hyperpipe -------------------------- */ + +#ifndef GLX_SGIX_hyperpipe +#define GLX_SGIX_hyperpipe 1 + +#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 +#define GLX_PIPE_RECT_SGIX 0x00000001 +#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 +#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 +#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 +#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 +#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 +#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 +#define GLX_BAD_HYPERPIPE_SGIX 92 +#define GLX_HYPERPIPE_ID_SGIX 0x8030 + +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; +} GLXPipeRectLimits; +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; +} 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); + +#define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX) +#define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX) +#define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX) +#define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX) +#define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX) +#define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX) +#define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX) +#define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX) + +#define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe) + +#endif /* GLX_SGIX_hyperpipe */ + +/* ---------------------------- GLX_SGIX_pbuffer --------------------------- */ + +#ifndef GLX_SGIX_pbuffer +#define GLX_SGIX_pbuffer 1 + +#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 +#define GLX_PBUFFER_BIT_SGIX 0x00000004 +#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 +#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 +#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 +#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 +#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 +#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 +#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 +#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 +#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 +#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A +#define GLX_PRESERVED_CONTENTS_SGIX 0x801B +#define GLX_LARGEST_PBUFFER_SGIX 0x801C +#define GLX_WIDTH_SGIX 0x801D +#define GLX_HEIGHT_SGIX 0x801E +#define GLX_EVENT_MASK_SGIX 0x801F +#define GLX_DAMAGED_SGIX 0x8020 +#define GLX_SAVED_SGIX 0x8021 +#define GLX_WINDOW_SGIX 0x8022 +#define GLX_PBUFFER_SGIX 0x8023 +#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); + +#define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX) +#define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX) +#define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX) +#define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX) +#define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX) + +#define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer) + +#endif /* GLX_SGIX_pbuffer */ + +/* ------------------------- GLX_SGIX_swap_barrier ------------------------- */ + +#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); + +#define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX) +#define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX) + +#define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier) + +#endif /* GLX_SGIX_swap_barrier */ + +/* -------------------------- GLX_SGIX_swap_group -------------------------- */ + +#ifndef GLX_SGIX_swap_group +#define GLX_SGIX_swap_group 1 + +typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); + +#define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX) + +#define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group) + +#endif /* GLX_SGIX_swap_group */ + +/* ------------------------- GLX_SGIX_video_resize ------------------------- */ + +#ifndef GLX_SGIX_video_resize +#define GLX_SGIX_video_resize 1 + +#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); + +#define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX) +#define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX) +#define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX) +#define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX) +#define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX) + +#define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize) + +#endif /* GLX_SGIX_video_resize */ + +/* ---------------------- GLX_SGIX_visual_select_group --------------------- */ + +#ifndef GLX_SGIX_visual_select_group +#define GLX_SGIX_visual_select_group 1 + +#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 + +#define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group) + +#endif /* GLX_SGIX_visual_select_group */ + +/* ---------------------------- GLX_SGI_cushion ---------------------------- */ + +#ifndef GLX_SGI_cushion +#define GLX_SGI_cushion 1 + +typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion); + +#define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI) + +#define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion) + +#endif /* GLX_SGI_cushion */ + +/* ----------------------- GLX_SGI_make_current_read ----------------------- */ + +#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); + +#define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI) +#define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI) + +#define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read) + +#endif /* GLX_SGI_make_current_read */ + +/* -------------------------- GLX_SGI_swap_control ------------------------- */ + +#ifndef GLX_SGI_swap_control +#define GLX_SGI_swap_control 1 + +typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); + +#define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI) + +#define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control) + +#endif /* GLX_SGI_swap_control */ + +/* --------------------------- GLX_SGI_video_sync -------------------------- */ + +#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); + +#define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI) +#define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI) + +#define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync) + +#endif /* GLX_SGI_video_sync */ + +/* --------------------- GLX_SUN_get_transparent_index --------------------- */ + +#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); + +#define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN) + +#define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index) + +#endif /* GLX_SUN_get_transparent_index */ + +/* -------------------------- GLX_SUN_video_resize ------------------------- */ + +#ifndef GLX_SUN_video_resize +#define GLX_SUN_video_resize 1 + +#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); + +#define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN) +#define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN) + +#define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize) + +#endif /* GLX_SUN_video_resize */ + +/* ------------------------------------------------------------------------- */ + +#ifdef GLEW_MX +#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT +#define GLXEW_VAR_EXPORT +#else +#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT +#define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT +#endif /* GLEW_MX */ + +GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay; + +GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig; +GLXEW_FUN_EXPORT PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext; +GLXEW_FUN_EXPORT PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer; +GLXEW_FUN_EXPORT PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap; +GLXEW_FUN_EXPORT PFNGLXCREATEWINDOWPROC __glewXCreateWindow; +GLXEW_FUN_EXPORT PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer; +GLXEW_FUN_EXPORT PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap; +GLXEW_FUN_EXPORT PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow; +GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable; +GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib; +GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs; +GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent; +GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig; +GLXEW_FUN_EXPORT PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent; +GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTPROC __glewXQueryContext; +GLXEW_FUN_EXPORT PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable; +GLXEW_FUN_EXPORT PFNGLXSELECTEVENTPROC __glewXSelectEvent; + +GLXEW_FUN_EXPORT PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC __glewXBlitContextFramebufferAMD; +GLXEW_FUN_EXPORT PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC __glewXCreateAssociatedContextAMD; +GLXEW_FUN_EXPORT PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __glewXCreateAssociatedContextAttribsAMD; +GLXEW_FUN_EXPORT PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC __glewXDeleteAssociatedContextAMD; +GLXEW_FUN_EXPORT PFNGLXGETCONTEXTGPUIDAMDPROC __glewXGetContextGPUIDAMD; +GLXEW_FUN_EXPORT PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC __glewXGetCurrentAssociatedContextAMD; +GLXEW_FUN_EXPORT PFNGLXGETGPUIDSAMDPROC __glewXGetGPUIDsAMD; +GLXEW_FUN_EXPORT PFNGLXGETGPUINFOAMDPROC __glewXGetGPUInfoAMD; +GLXEW_FUN_EXPORT PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __glewXMakeAssociatedContextCurrentAMD; + +GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB; + +GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI; +GLXEW_FUN_EXPORT PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI; +GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI; + +GLXEW_FUN_EXPORT PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT; +GLXEW_FUN_EXPORT PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT; +GLXEW_FUN_EXPORT PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT; +GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT; + +GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT; + +GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT; +GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT; + +GLXEW_FUN_EXPORT PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA; + +GLXEW_FUN_EXPORT PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA; + +GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA; + +GLXEW_FUN_EXPORT PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA; + +GLXEW_FUN_EXPORT PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA; + +GLXEW_FUN_EXPORT PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA; +GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA; + +GLXEW_FUN_EXPORT PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV; + +GLXEW_FUN_EXPORT PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV; +GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV; + +GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV; +GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV; +GLXEW_FUN_EXPORT PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV; +GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV; +GLXEW_FUN_EXPORT PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV; +GLXEW_FUN_EXPORT PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV; + +GLXEW_FUN_EXPORT PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV; +GLXEW_FUN_EXPORT PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV; + +GLXEW_FUN_EXPORT PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV; +GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV; +GLXEW_FUN_EXPORT PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV; +GLXEW_FUN_EXPORT PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV; +GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV; + +GLXEW_FUN_EXPORT PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV; +GLXEW_FUN_EXPORT PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV; +GLXEW_FUN_EXPORT PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV; +GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV; +GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV; +GLXEW_FUN_EXPORT PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV; + +GLXEW_FUN_EXPORT PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML; +GLXEW_FUN_EXPORT PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML; +GLXEW_FUN_EXPORT PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML; +GLXEW_FUN_EXPORT PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML; +GLXEW_FUN_EXPORT PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML; + +GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX; +GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX; +GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX; + +GLXEW_FUN_EXPORT PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX; +GLXEW_FUN_EXPORT PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX; +GLXEW_FUN_EXPORT PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX; + +GLXEW_FUN_EXPORT PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX; +GLXEW_FUN_EXPORT PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX; +GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX; +GLXEW_FUN_EXPORT PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX; + +GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX; + +GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX; + +GLXEW_FUN_EXPORT PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX; +GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX; +GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX; + +GLXEW_FUN_EXPORT PFNGLXCUSHIONSGIPROC __glewXCushionSGI; + +GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI; +GLXEW_FUN_EXPORT PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI; + +GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI; + +GLXEW_FUN_EXPORT PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI; +GLXEW_FUN_EXPORT PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI; + +GLXEW_FUN_EXPORT PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN; + +GLXEW_FUN_EXPORT PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN; +GLXEW_FUN_EXPORT PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN; + +#if defined(GLEW_MX) +struct GLXEWContextStruct +{ +#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_buffer_age; +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_output; +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 */ +#endif /* GLEW_MX */ + +/* ------------------------------------------------------------------------ */ + +#ifdef GLEW_MX + +typedef struct GLXEWContextStruct GLXEWContext; +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_FUN(x) x + +#else /* GLEW_MX */ + +#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) +#define GLXEW_GET_FUN(x) x + +GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name); + +#endif /* GLEW_MX */ + +GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name); + +#ifdef __cplusplus +} +#endif + +#endif /* __glxew_h__ */ diff --git a/Gem/develop/include/Gem/Gem/wglew.h b/Gem/develop/include/Gem/Gem/wglew.h new file mode 100644 index 0000000..80cd99e --- /dev/null +++ b/Gem/develop/include/Gem/Gem/wglew.h @@ -0,0 +1,1421 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are 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 Materials. +** +** THE MATERIALS ARE 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 +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __wglew_h__ +#define __wglew_h__ +#define __WGLEW_H__ + +#ifdef __wglext_h_ +#error wglext.h included before wglew.h +#endif + +#define __wglext_h_ + +#if !defined(WINAPI) +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN 1 +# endif +#include +# undef WIN32_LEAN_AND_MEAN +#endif + +/* + * GLEW_STATIC needs to be set when using the static version. + * GLEW_BUILD is set when building the DLL version. + */ +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# ifdef GLEW_BUILD +# define GLEWAPI extern __declspec(dllexport) +# else +# define GLEWAPI extern __declspec(dllimport) +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* -------------------------- WGL_3DFX_multisample ------------------------- */ + +#ifndef WGL_3DFX_multisample +#define WGL_3DFX_multisample 1 + +#define WGL_SAMPLE_BUFFERS_3DFX 0x2060 +#define WGL_SAMPLES_3DFX 0x2061 + +#define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample) + +#endif /* WGL_3DFX_multisample */ + +/* ------------------------- WGL_3DL_stereo_control ------------------------ */ + +#ifndef WGL_3DL_stereo_control +#define WGL_3DL_stereo_control 1 + +#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 +#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 +#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 +#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 + +typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); + +#define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL) + +#define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control) + +#endif /* WGL_3DL_stereo_control */ + +/* ------------------------ WGL_AMD_gpu_association ------------------------ */ + +#ifndef WGL_AMD_gpu_association +#define WGL_AMD_gpu_association 1 + +#define WGL_GPU_VENDOR_AMD 0x1F00 +#define WGL_GPU_RENDERER_STRING_AMD 0x1F01 +#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 +#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 +#define WGL_GPU_RAM_AMD 0x21A3 +#define WGL_GPU_CLOCK_AMD 0x21A4 +#define WGL_GPU_NUM_PIPES_AMD 0x21A5 +#define WGL_GPU_NUM_SIMD_AMD 0x21A6 +#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); + +#define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD) +#define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD) +#define wglCreateAssociatedContextAttribsAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAttribsAMD) +#define wglDeleteAssociatedContextAMD WGLEW_GET_FUN(__wglewDeleteAssociatedContextAMD) +#define wglGetContextGPUIDAMD WGLEW_GET_FUN(__wglewGetContextGPUIDAMD) +#define wglGetCurrentAssociatedContextAMD WGLEW_GET_FUN(__wglewGetCurrentAssociatedContextAMD) +#define wglGetGPUIDsAMD WGLEW_GET_FUN(__wglewGetGPUIDsAMD) +#define wglGetGPUInfoAMD WGLEW_GET_FUN(__wglewGetGPUInfoAMD) +#define wglMakeAssociatedContextCurrentAMD WGLEW_GET_FUN(__wglewMakeAssociatedContextCurrentAMD) + +#define WGLEW_AMD_gpu_association WGLEW_GET_VAR(__WGLEW_AMD_gpu_association) + +#endif /* WGL_AMD_gpu_association */ + +/* ------------------------- WGL_ARB_buffer_region ------------------------- */ + +#ifndef WGL_ARB_buffer_region +#define WGL_ARB_buffer_region 1 + +#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 +#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 +#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); + +#define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB) +#define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB) +#define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB) +#define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB) + +#define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region) + +#endif /* WGL_ARB_buffer_region */ + +/* ------------------------- WGL_ARB_create_context ------------------------ */ + +#ifndef WGL_ARB_create_context +#define WGL_ARB_create_context 1 + +#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 +#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 +#define WGL_CONTEXT_FLAGS_ARB 0x2094 +#define ERROR_INVALID_VERSION_ARB 0x2095 +#define ERROR_INVALID_PROFILE_ARB 0x2096 + +typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); + +#define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB) + +#define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context) + +#endif /* WGL_ARB_create_context */ + +/* --------------------- WGL_ARB_create_context_profile -------------------- */ + +#ifndef WGL_ARB_create_context_profile +#define WGL_ARB_create_context_profile 1 + +#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 + +#define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile) + +#endif /* WGL_ARB_create_context_profile */ + +/* ------------------- WGL_ARB_create_context_robustness ------------------- */ + +#ifndef WGL_ARB_create_context_robustness +#define WGL_ARB_create_context_robustness 1 + +#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 + +#define WGLEW_ARB_create_context_robustness WGLEW_GET_VAR(__WGLEW_ARB_create_context_robustness) + +#endif /* WGL_ARB_create_context_robustness */ + +/* ----------------------- WGL_ARB_extensions_string ----------------------- */ + +#ifndef WGL_ARB_extensions_string +#define WGL_ARB_extensions_string 1 + +typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); + +#define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB) + +#define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string) + +#endif /* WGL_ARB_extensions_string */ + +/* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */ + +#ifndef WGL_ARB_framebuffer_sRGB +#define WGL_ARB_framebuffer_sRGB 1 + +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 + +#define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB) + +#endif /* WGL_ARB_framebuffer_sRGB */ + +/* ----------------------- WGL_ARB_make_current_read ----------------------- */ + +#ifndef WGL_ARB_make_current_read +#define WGL_ARB_make_current_read 1 + +#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); + +#define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB) +#define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB) + +#define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read) + +#endif /* WGL_ARB_make_current_read */ + +/* -------------------------- WGL_ARB_multisample -------------------------- */ + +#ifndef WGL_ARB_multisample +#define WGL_ARB_multisample 1 + +#define WGL_SAMPLE_BUFFERS_ARB 0x2041 +#define WGL_SAMPLES_ARB 0x2042 + +#define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample) + +#endif /* WGL_ARB_multisample */ + +/* ---------------------------- WGL_ARB_pbuffer ---------------------------- */ + +#ifndef WGL_ARB_pbuffer +#define WGL_ARB_pbuffer 1 + +#define WGL_DRAW_TO_PBUFFER_ARB 0x202D +#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E +#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F +#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 +#define WGL_PBUFFER_LARGEST_ARB 0x2033 +#define WGL_PBUFFER_WIDTH_ARB 0x2034 +#define WGL_PBUFFER_HEIGHT_ARB 0x2035 +#define WGL_PBUFFER_LOST_ARB 0x2036 + +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); + +#define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB) +#define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB) +#define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB) +#define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB) +#define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB) + +#define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer) + +#endif /* WGL_ARB_pbuffer */ + +/* -------------------------- WGL_ARB_pixel_format ------------------------- */ + +#ifndef WGL_ARB_pixel_format +#define WGL_ARB_pixel_format 1 + +#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 +#define WGL_DRAW_TO_WINDOW_ARB 0x2001 +#define WGL_DRAW_TO_BITMAP_ARB 0x2002 +#define WGL_ACCELERATION_ARB 0x2003 +#define WGL_NEED_PALETTE_ARB 0x2004 +#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 +#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 +#define WGL_SWAP_METHOD_ARB 0x2007 +#define WGL_NUMBER_OVERLAYS_ARB 0x2008 +#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 +#define WGL_TRANSPARENT_ARB 0x200A +#define WGL_SHARE_DEPTH_ARB 0x200C +#define WGL_SHARE_STENCIL_ARB 0x200D +#define WGL_SHARE_ACCUM_ARB 0x200E +#define WGL_SUPPORT_GDI_ARB 0x200F +#define WGL_SUPPORT_OPENGL_ARB 0x2010 +#define WGL_DOUBLE_BUFFER_ARB 0x2011 +#define WGL_STEREO_ARB 0x2012 +#define WGL_PIXEL_TYPE_ARB 0x2013 +#define WGL_COLOR_BITS_ARB 0x2014 +#define WGL_RED_BITS_ARB 0x2015 +#define WGL_RED_SHIFT_ARB 0x2016 +#define WGL_GREEN_BITS_ARB 0x2017 +#define WGL_GREEN_SHIFT_ARB 0x2018 +#define WGL_BLUE_BITS_ARB 0x2019 +#define WGL_BLUE_SHIFT_ARB 0x201A +#define WGL_ALPHA_BITS_ARB 0x201B +#define WGL_ALPHA_SHIFT_ARB 0x201C +#define WGL_ACCUM_BITS_ARB 0x201D +#define WGL_ACCUM_RED_BITS_ARB 0x201E +#define WGL_ACCUM_GREEN_BITS_ARB 0x201F +#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 +#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 +#define WGL_DEPTH_BITS_ARB 0x2022 +#define WGL_STENCIL_BITS_ARB 0x2023 +#define WGL_AUX_BUFFERS_ARB 0x2024 +#define WGL_NO_ACCELERATION_ARB 0x2025 +#define WGL_GENERIC_ACCELERATION_ARB 0x2026 +#define WGL_FULL_ACCELERATION_ARB 0x2027 +#define WGL_SWAP_EXCHANGE_ARB 0x2028 +#define WGL_SWAP_COPY_ARB 0x2029 +#define WGL_SWAP_UNDEFINED_ARB 0x202A +#define WGL_TYPE_RGBA_ARB 0x202B +#define WGL_TYPE_COLORINDEX_ARB 0x202C +#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 +#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 +#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 +#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); + +#define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB) +#define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB) +#define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB) + +#define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format) + +#endif /* WGL_ARB_pixel_format */ + +/* ----------------------- WGL_ARB_pixel_format_float ---------------------- */ + +#ifndef WGL_ARB_pixel_format_float +#define WGL_ARB_pixel_format_float 1 + +#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 + +#define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float) + +#endif /* WGL_ARB_pixel_format_float */ + +/* ------------------------- WGL_ARB_render_texture ------------------------ */ + +#ifndef WGL_ARB_render_texture +#define WGL_ARB_render_texture 1 + +#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 +#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 +#define WGL_TEXTURE_FORMAT_ARB 0x2072 +#define WGL_TEXTURE_TARGET_ARB 0x2073 +#define WGL_MIPMAP_TEXTURE_ARB 0x2074 +#define WGL_TEXTURE_RGB_ARB 0x2075 +#define WGL_TEXTURE_RGBA_ARB 0x2076 +#define WGL_NO_TEXTURE_ARB 0x2077 +#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 +#define WGL_TEXTURE_1D_ARB 0x2079 +#define WGL_TEXTURE_2D_ARB 0x207A +#define WGL_MIPMAP_LEVEL_ARB 0x207B +#define WGL_CUBE_MAP_FACE_ARB 0x207C +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 +#define WGL_FRONT_LEFT_ARB 0x2083 +#define WGL_FRONT_RIGHT_ARB 0x2084 +#define WGL_BACK_LEFT_ARB 0x2085 +#define WGL_BACK_RIGHT_ARB 0x2086 +#define WGL_AUX0_ARB 0x2087 +#define WGL_AUX1_ARB 0x2088 +#define WGL_AUX2_ARB 0x2089 +#define WGL_AUX3_ARB 0x208A +#define WGL_AUX4_ARB 0x208B +#define WGL_AUX5_ARB 0x208C +#define WGL_AUX6_ARB 0x208D +#define WGL_AUX7_ARB 0x208E +#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); + +#define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB) +#define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB) +#define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB) + +#define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture) + +#endif /* WGL_ARB_render_texture */ + +/* ---------------- WGL_ARB_robustness_application_isolation --------------- */ + +#ifndef WGL_ARB_robustness_application_isolation +#define WGL_ARB_robustness_application_isolation 1 + +#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 + +#define WGLEW_ARB_robustness_application_isolation WGLEW_GET_VAR(__WGLEW_ARB_robustness_application_isolation) + +#endif /* WGL_ARB_robustness_application_isolation */ + +/* ---------------- WGL_ARB_robustness_share_group_isolation --------------- */ + +#ifndef WGL_ARB_robustness_share_group_isolation +#define WGL_ARB_robustness_share_group_isolation 1 + +#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 + +#define WGLEW_ARB_robustness_share_group_isolation WGLEW_GET_VAR(__WGLEW_ARB_robustness_share_group_isolation) + +#endif /* WGL_ARB_robustness_share_group_isolation */ + +/* ----------------------- WGL_ATI_pixel_format_float ---------------------- */ + +#ifndef WGL_ATI_pixel_format_float +#define WGL_ATI_pixel_format_float 1 + +#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 +#define GL_RGBA_FLOAT_MODE_ATI 0x8820 +#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 + +#define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float) + +#endif /* WGL_ATI_pixel_format_float */ + +/* -------------------- WGL_ATI_render_texture_rectangle ------------------- */ + +#ifndef WGL_ATI_render_texture_rectangle +#define WGL_ATI_render_texture_rectangle 1 + +#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5 + +#define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle) + +#endif /* WGL_ATI_render_texture_rectangle */ + +/* ------------------- WGL_EXT_create_context_es2_profile ------------------ */ + +#ifndef WGL_EXT_create_context_es2_profile +#define WGL_EXT_create_context_es2_profile 1 + +#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 + +#define WGLEW_EXT_create_context_es2_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es2_profile) + +#endif /* WGL_EXT_create_context_es2_profile */ + +/* ------------------- WGL_EXT_create_context_es_profile ------------------- */ + +#ifndef WGL_EXT_create_context_es_profile +#define WGL_EXT_create_context_es_profile 1 + +#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 + +#define WGLEW_EXT_create_context_es_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es_profile) + +#endif /* WGL_EXT_create_context_es_profile */ + +/* -------------------------- WGL_EXT_depth_float -------------------------- */ + +#ifndef WGL_EXT_depth_float +#define WGL_EXT_depth_float 1 + +#define WGL_DEPTH_FLOAT_EXT 0x2040 + +#define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float) + +#endif /* WGL_EXT_depth_float */ + +/* ---------------------- WGL_EXT_display_color_table ---------------------- */ + +#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); + +#define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT) +#define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT) +#define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT) +#define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT) + +#define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table) + +#endif /* WGL_EXT_display_color_table */ + +/* ----------------------- WGL_EXT_extensions_string ----------------------- */ + +#ifndef WGL_EXT_extensions_string +#define WGL_EXT_extensions_string 1 + +typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); + +#define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT) + +#define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string) + +#endif /* WGL_EXT_extensions_string */ + +/* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */ + +#ifndef WGL_EXT_framebuffer_sRGB +#define WGL_EXT_framebuffer_sRGB 1 + +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 + +#define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB) + +#endif /* WGL_EXT_framebuffer_sRGB */ + +/* ----------------------- WGL_EXT_make_current_read ----------------------- */ + +#ifndef WGL_EXT_make_current_read +#define WGL_EXT_make_current_read 1 + +#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 + +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) + +#define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read) + +#endif /* WGL_EXT_make_current_read */ + +/* -------------------------- WGL_EXT_multisample -------------------------- */ + +#ifndef WGL_EXT_multisample +#define WGL_EXT_multisample 1 + +#define WGL_SAMPLE_BUFFERS_EXT 0x2041 +#define WGL_SAMPLES_EXT 0x2042 + +#define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample) + +#endif /* WGL_EXT_multisample */ + +/* ---------------------------- WGL_EXT_pbuffer ---------------------------- */ + +#ifndef WGL_EXT_pbuffer +#define WGL_EXT_pbuffer 1 + +#define WGL_DRAW_TO_PBUFFER_EXT 0x202D +#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E +#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F +#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 +#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 +#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 +#define WGL_PBUFFER_LARGEST_EXT 0x2033 +#define WGL_PBUFFER_WIDTH_EXT 0x2034 +#define WGL_PBUFFER_HEIGHT_EXT 0x2035 + +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); + +#define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT) +#define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT) +#define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT) +#define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT) +#define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT) + +#define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer) + +#endif /* WGL_EXT_pbuffer */ + +/* -------------------------- WGL_EXT_pixel_format ------------------------- */ + +#ifndef WGL_EXT_pixel_format +#define WGL_EXT_pixel_format 1 + +#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 +#define WGL_DRAW_TO_WINDOW_EXT 0x2001 +#define WGL_DRAW_TO_BITMAP_EXT 0x2002 +#define WGL_ACCELERATION_EXT 0x2003 +#define WGL_NEED_PALETTE_EXT 0x2004 +#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 +#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 +#define WGL_SWAP_METHOD_EXT 0x2007 +#define WGL_NUMBER_OVERLAYS_EXT 0x2008 +#define WGL_NUMBER_UNDERLAYS_EXT 0x2009 +#define WGL_TRANSPARENT_EXT 0x200A +#define WGL_TRANSPARENT_VALUE_EXT 0x200B +#define WGL_SHARE_DEPTH_EXT 0x200C +#define WGL_SHARE_STENCIL_EXT 0x200D +#define WGL_SHARE_ACCUM_EXT 0x200E +#define WGL_SUPPORT_GDI_EXT 0x200F +#define WGL_SUPPORT_OPENGL_EXT 0x2010 +#define WGL_DOUBLE_BUFFER_EXT 0x2011 +#define WGL_STEREO_EXT 0x2012 +#define WGL_PIXEL_TYPE_EXT 0x2013 +#define WGL_COLOR_BITS_EXT 0x2014 +#define WGL_RED_BITS_EXT 0x2015 +#define WGL_RED_SHIFT_EXT 0x2016 +#define WGL_GREEN_BITS_EXT 0x2017 +#define WGL_GREEN_SHIFT_EXT 0x2018 +#define WGL_BLUE_BITS_EXT 0x2019 +#define WGL_BLUE_SHIFT_EXT 0x201A +#define WGL_ALPHA_BITS_EXT 0x201B +#define WGL_ALPHA_SHIFT_EXT 0x201C +#define WGL_ACCUM_BITS_EXT 0x201D +#define WGL_ACCUM_RED_BITS_EXT 0x201E +#define WGL_ACCUM_GREEN_BITS_EXT 0x201F +#define WGL_ACCUM_BLUE_BITS_EXT 0x2020 +#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 +#define WGL_DEPTH_BITS_EXT 0x2022 +#define WGL_STENCIL_BITS_EXT 0x2023 +#define WGL_AUX_BUFFERS_EXT 0x2024 +#define WGL_NO_ACCELERATION_EXT 0x2025 +#define WGL_GENERIC_ACCELERATION_EXT 0x2026 +#define WGL_FULL_ACCELERATION_EXT 0x2027 +#define WGL_SWAP_EXCHANGE_EXT 0x2028 +#define WGL_SWAP_COPY_EXT 0x2029 +#define WGL_SWAP_UNDEFINED_EXT 0x202A +#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); + +#define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT) +#define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT) +#define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT) + +#define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format) + +#endif /* WGL_EXT_pixel_format */ + +/* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */ + +#ifndef WGL_EXT_pixel_format_packed_float +#define WGL_EXT_pixel_format_packed_float 1 + +#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 + +#define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float) + +#endif /* WGL_EXT_pixel_format_packed_float */ + +/* -------------------------- WGL_EXT_swap_control ------------------------- */ + +#ifndef WGL_EXT_swap_control +#define WGL_EXT_swap_control 1 + +typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); +typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); + +#define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT) +#define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT) + +#define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control) + +#endif /* WGL_EXT_swap_control */ + +/* ----------------------- WGL_EXT_swap_control_tear ----------------------- */ + +#ifndef WGL_EXT_swap_control_tear +#define WGL_EXT_swap_control_tear 1 + +#define WGLEW_EXT_swap_control_tear WGLEW_GET_VAR(__WGLEW_EXT_swap_control_tear) + +#endif /* WGL_EXT_swap_control_tear */ + +/* --------------------- WGL_I3D_digital_video_control --------------------- */ + +#ifndef WGL_I3D_digital_video_control +#define WGL_I3D_digital_video_control 1 + +#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 +#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 +#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); + +#define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D) +#define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D) + +#define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control) + +#endif /* WGL_I3D_digital_video_control */ + +/* ----------------------------- WGL_I3D_gamma ----------------------------- */ + +#ifndef WGL_I3D_gamma +#define WGL_I3D_gamma 1 + +#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); + +#define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D) +#define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D) +#define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D) +#define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D) + +#define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma) + +#endif /* WGL_I3D_gamma */ + +/* ---------------------------- WGL_I3D_genlock ---------------------------- */ + +#ifndef WGL_I3D_genlock +#define WGL_I3D_genlock 1 + +#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 +#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045 +#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046 +#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047 +#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 +#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 +#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A +#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); + +#define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D) +#define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D) +#define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D) +#define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D) +#define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D) +#define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D) +#define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D) +#define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D) +#define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D) +#define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D) +#define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D) +#define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D) + +#define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock) + +#endif /* WGL_I3D_genlock */ + +/* -------------------------- WGL_I3D_image_buffer ------------------------- */ + +#ifndef WGL_I3D_image_buffer +#define WGL_I3D_image_buffer 1 + +#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); + +#define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D) +#define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D) +#define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D) +#define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D) + +#define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer) + +#endif /* WGL_I3D_image_buffer */ + +/* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */ + +#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); + +#define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D) +#define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D) +#define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D) +#define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D) + +#define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock) + +#endif /* WGL_I3D_swap_frame_lock */ + +/* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */ + +#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); + +#define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D) +#define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D) +#define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D) +#define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D) + +#define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage) + +#endif /* WGL_I3D_swap_frame_usage */ + +/* --------------------------- WGL_NV_DX_interop --------------------------- */ + +#ifndef WGL_NV_DX_interop +#define WGL_NV_DX_interop 1 + +#define WGL_ACCESS_READ_ONLY_NV 0x0000 +#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); + +#define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV) +#define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV) +#define wglDXObjectAccessNV WGLEW_GET_FUN(__wglewDXObjectAccessNV) +#define wglDXOpenDeviceNV WGLEW_GET_FUN(__wglewDXOpenDeviceNV) +#define wglDXRegisterObjectNV WGLEW_GET_FUN(__wglewDXRegisterObjectNV) +#define wglDXSetResourceShareHandleNV WGLEW_GET_FUN(__wglewDXSetResourceShareHandleNV) +#define wglDXUnlockObjectsNV WGLEW_GET_FUN(__wglewDXUnlockObjectsNV) +#define wglDXUnregisterObjectNV WGLEW_GET_FUN(__wglewDXUnregisterObjectNV) + +#define WGLEW_NV_DX_interop WGLEW_GET_VAR(__WGLEW_NV_DX_interop) + +#endif /* WGL_NV_DX_interop */ + +/* --------------------------- WGL_NV_DX_interop2 -------------------------- */ + +#ifndef WGL_NV_DX_interop2 +#define WGL_NV_DX_interop2 1 + +#define WGLEW_NV_DX_interop2 WGLEW_GET_VAR(__WGLEW_NV_DX_interop2) + +#endif /* WGL_NV_DX_interop2 */ + +/* --------------------------- WGL_NV_copy_image --------------------------- */ + +#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); + +#define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV) + +#define WGLEW_NV_copy_image WGLEW_GET_VAR(__WGLEW_NV_copy_image) + +#endif /* WGL_NV_copy_image */ + +/* -------------------------- WGL_NV_float_buffer -------------------------- */ + +#ifndef WGL_NV_float_buffer +#define WGL_NV_float_buffer 1 + +#define WGL_FLOAT_COMPONENTS_NV 0x20B0 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 +#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 +#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 +#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 +#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 + +#define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer) + +#endif /* WGL_NV_float_buffer */ + +/* -------------------------- WGL_NV_gpu_affinity -------------------------- */ + +#ifndef WGL_NV_gpu_affinity +#define WGL_NV_gpu_affinity 1 + +#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 +#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; +} 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); + +#define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV) +#define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV) +#define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV) +#define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV) +#define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV) + +#define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity) + +#endif /* WGL_NV_gpu_affinity */ + +/* ---------------------- WGL_NV_multisample_coverage ---------------------- */ + +#ifndef WGL_NV_multisample_coverage +#define WGL_NV_multisample_coverage 1 + +#define WGL_COVERAGE_SAMPLES_NV 0x2042 +#define WGL_COLOR_SAMPLES_NV 0x20B9 + +#define WGLEW_NV_multisample_coverage WGLEW_GET_VAR(__WGLEW_NV_multisample_coverage) + +#endif /* WGL_NV_multisample_coverage */ + +/* -------------------------- WGL_NV_present_video ------------------------- */ + +#ifndef WGL_NV_present_video +#define WGL_NV_present_video 1 + +#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 + +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); + +#define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV) +#define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV) +#define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV) + +#define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video) + +#endif /* WGL_NV_present_video */ + +/* ---------------------- WGL_NV_render_depth_texture ---------------------- */ + +#ifndef WGL_NV_render_depth_texture +#define WGL_NV_render_depth_texture 1 + +#define WGL_NO_TEXTURE_ARB 0x2077 +#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 +#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 +#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 +#define WGL_DEPTH_COMPONENT_NV 0x20A7 + +#define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture) + +#endif /* WGL_NV_render_depth_texture */ + +/* -------------------- WGL_NV_render_texture_rectangle -------------------- */ + +#ifndef WGL_NV_render_texture_rectangle +#define WGL_NV_render_texture_rectangle 1 + +#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 +#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 + +#define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle) + +#endif /* WGL_NV_render_texture_rectangle */ + +/* --------------------------- WGL_NV_swap_group --------------------------- */ + +#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); + +#define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) +#define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV) +#define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV) +#define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV) +#define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV) +#define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV) + +#define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group) + +#endif /* WGL_NV_swap_group */ + +/* ----------------------- WGL_NV_vertex_array_range ----------------------- */ + +#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); + +#define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV) +#define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV) + +#define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range) + +#endif /* WGL_NV_vertex_array_range */ + +/* -------------------------- WGL_NV_video_capture ------------------------- */ + +#ifndef WGL_NV_video_capture +#define WGL_NV_video_capture 1 + +#define WGL_UNIQUE_ID_NV 0x20CE +#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF + +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); + +#define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV) +#define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV) +#define wglLockVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewLockVideoCaptureDeviceNV) +#define wglQueryVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewQueryVideoCaptureDeviceNV) +#define wglReleaseVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoCaptureDeviceNV) + +#define WGLEW_NV_video_capture WGLEW_GET_VAR(__WGLEW_NV_video_capture) + +#endif /* WGL_NV_video_capture */ + +/* -------------------------- WGL_NV_video_output -------------------------- */ + +#ifndef WGL_NV_video_output +#define WGL_NV_video_output 1 + +#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 +#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 +#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 +#define WGL_VIDEO_OUT_COLOR_NV 0x20C3 +#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 +#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 +#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 +#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 +#define WGL_VIDEO_OUT_FRAME 0x20C8 +#define WGL_VIDEO_OUT_FIELD_1 0x20C9 +#define WGL_VIDEO_OUT_FIELD_2 0x20CA +#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB +#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC + +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); + +#define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV) +#define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV) +#define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV) +#define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV) +#define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV) +#define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV) + +#define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output) + +#endif /* WGL_NV_video_output */ + +/* -------------------------- WGL_OML_sync_control ------------------------- */ + +#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); + +#define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML) +#define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML) +#define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML) +#define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML) +#define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML) +#define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML) + +#define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control) + +#endif /* WGL_OML_sync_control */ + +/* ------------------------------------------------------------------------- */ + +#ifdef GLEW_MX +#define WGLEW_FUN_EXPORT +#define WGLEW_VAR_EXPORT +#else +#define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT +#define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT +#endif /* GLEW_MX */ + +#ifdef GLEW_MX +struct WGLEWContextStruct +{ +#endif /* GLEW_MX */ + +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_ARB_robustness_application_isolation; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_share_group_isolation; +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 */ +#endif /* GLEW_MX */ + +/* ------------------------------------------------------------------------- */ + +#ifdef GLEW_MX + +typedef struct WGLEWContextStruct WGLEWContext; +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_FUN(x) wglewGetContext()->x + +#else /* GLEW_MX */ + +#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) +#define WGLEW_GET_FUN(x) x + +GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name); + +#endif /* GLEW_MX */ + +GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name); + +#ifdef __cplusplus +} +#endif + +#undef GLEWAPI + +#endif /* __wglew_h__ */ diff --git a/Gem/develop/include/Gem/RTE/Array.h b/Gem/develop/include/Gem/RTE/Array.h new file mode 100644 index 0000000..6546266 --- /dev/null +++ b/Gem/develop/include/Gem/RTE/Array.h @@ -0,0 +1,51 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + access arrays of the RTE + + Copyright (c) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ +#ifndef _INCLUDE__GEM_RTE_ARRAY_H_ +#define _INCLUDE__GEM_RTE_ARRAY_H_ + + +#include "Gem/ExportDef.h" +#include + +namespace gem { + namespace RTE { + class GEM_EXTERN Array { + private: + class PIMPL; + PIMPL*m_pimpl; + + public: + Array(void); + Array(const gem::RTE::Array&a); + Array(const std::string&name); + + virtual ~Array(void); + + /* check whether we hold a valid reference to an array */ + virtual bool isValid(); + + /* reference another array */ + virtual bool name(const std::string&s); + virtual const std::string name(void); + + virtual bool resize(const size_t newsize); + virtual size_t size(void); + + virtual t_float&operator[](const unsigned int&index); + + virtual void set(const t_float f); + + virtual Array&operator=(const Array&); + }; + }; +}; +#endif /* _INCLUDE__GEM_RTE_ARRAY_H_ */ diff --git a/Gem/develop/include/Gem/RTE/MessageCallbacks.h b/Gem/develop/include/Gem/RTE/MessageCallbacks.h new file mode 100644 index 0000000..b4df71b --- /dev/null +++ b/Gem/develop/include/Gem/RTE/MessageCallbacks.h @@ -0,0 +1,151 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + helper-functions¯os for message callbacks to objects + + Copyright (c) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ + +// these utility macros warp the callback functions from the RTE, no need add them to your headers! + +// NOTE: this is very experimental; you should not include this header unless you know what you are doing +// once this has proven to work (test on M$VC!), it is likely to be included automatically + +/* usage: + * void myclass::obj_setupCallback(t_class*classPtr) { + * CPPEXTERN_MSG (classPtr, "foo", gimmeMess); // A_GIMME + * CPPEXTERN_MSG0(classPtr, "doit", bangMess); // no args + * CPPEXTERN_MSG1(classPtr, "name", nameMess, t_symbol*); // 1 arg (A_SYMBOL) + * CPPEXTERN_MSG1(classPtr, "title", titleMess, std::string); // 1 arg (A_SYMBOL) + * CPPEXTERN_MSG3(classPtr, "values", tripletMess, t_float, t_float, t_float); // 3 args (A_FLOAT) + * } + * void myclass::gimmeMess (t_symbol*s, int argc, t_atom*argv) {;} + * void myclass::bangMess (void) {;} + * void myclass::nameMess (t_symbol*s) {;} + * void myclass::titleMess (std::string s) {;} + * void myclass::tripletMess(t_float a, t_float b, t_float c) {;} + */ +#ifndef _INCLUDE__GEM_RTE_MESSAGECALLBACKS_H_ +#define _INCLUDE__GEM_RTE_MESSAGECALLBACKS_H_ + +namespace gem { + namespace RteMess { + class NoneType {}; // just a dummy class + template + struct TypeTemplateCore{ + static t_atomtype atomtype_id(void) { return A_NULL; } + static T1 cast(T value) { return static_cast(value); } + typedef T proxyType; + virtual ~TypeTemplateCore(void) { } + }; + template + struct TypeTemplate : TypeTemplateCore { + }; + template<> + struct TypeTemplate : TypeTemplateCore { + static t_atomtype atomtype_id(void) { return A_FLOAT; } + }; + template<> + struct TypeTemplate : TypeTemplateCore { + static t_atomtype atomtype_id(void) { return A_FLOAT; } + }; + template<> + struct TypeTemplate : TypeTemplateCore { + static t_atomtype atomtype_id(void) { return A_FLOAT; } + }; + template<> + struct TypeTemplate : TypeTemplateCore { + static t_atomtype atomtype_id(void) { return A_FLOAT; } + }; + template<> + struct TypeTemplate : TypeTemplateCore { + static t_atomtype atomtype_id(void) { return A_FLOAT; } + static unsigned int cast(t_float f) { return (f>0.)?static_cast(f):0; } + }; + template<> + struct TypeTemplate : TypeTemplateCore { + static t_atomtype atomtype_id(void) { return A_FLOAT; } + static bool cast(t_float f) {return (f>0.5); } + }; + template<> + struct TypeTemplate : TypeTemplateCore { + static t_atomtype atomtype_id(void) { return A_DEFSYMBOL; } + }; + template<> + struct TypeTemplate : TypeTemplateCore { + static t_atomtype atomtype_id(void) { return A_DEFSYMBOL; } + static std::string cast(t_symbol*s) {return std::string(s->s_name); } + }; + }; }; +#define MSG_CONCAT3(a, b, c) _##a##_##b##_##c + + + + +#define CPPEXTERN_MSG_(line, cp, selector, fun) \ + struct MSG_CONCAT3(CallbackClass, fun, line) { \ + static void callback(void*data, t_symbol*s, int argc, t_atom*argv) { GetMyClass(data)->fun(s, argc, argv); } \ + MSG_CONCAT3(CallbackClass, fun, line) (t_class*c, std::string s) { class_addmethod(c, reinterpret_cast(callback), gensym(s.c_str()), A_GIMME, A_NULL); } \ + }; \ + MSG_CONCAT3(CallbackClass, fun, line) MSG_CONCAT3(CallbackClassInstance, fun, line) (cp, selector) +#define CPPEXTERN_MSG0_(line, cp, selector, fun) \ + struct MSG_CONCAT3(CallbackClass, fun, line) { \ + static void callback(void*data) { GetMyClass(data)->fun(); } \ + MSG_CONCAT3(CallbackClass, fun, line) (t_class*c, std::string s) { class_addmethod(c, reinterpret_cast(callback), gensym(s.c_str()), A_NULL); } \ + }; \ + MSG_CONCAT3(CallbackClass, fun, line) MSG_CONCAT3(CallbackClassInstance, fun, line) (cp, selector) +#define CPPEXTERN_MSG1_(line, cp, selector, fun, typ0) \ + struct MSG_CONCAT3(CallbackClass, fun, line) { \ + static void callback(void*data, gem::RteMess::TypeTemplate::proxyType v0) \ + { GetMyClass(data)->fun(gem::RteMess::TypeTemplate::cast(v0)); } \ + MSG_CONCAT3(CallbackClass, fun, line) (t_class*c, std::string s) { class_addmethod(c, reinterpret_cast(callback), gensym(s.c_str()), ("symbol"==s)?A_SYMBOL:(gem::RteMess::TypeTemplate::atomtype_id()), A_NULL); } \ + }; \ + MSG_CONCAT3(CallbackClass, fun, line) MSG_CONCAT3(CallbackClassInstance, fun, line) (cp, selector) +#define CPPEXTERN_MSG2_(line, cp, selector, fun, typ0, typ1) \ + struct MSG_CONCAT3(CallbackClass, fun, line) { \ + static void callback(void*data, gem::RteMess::TypeTemplate::proxyType v0, gem::RteMess::TypeTemplate::proxyType v1) \ + { GetMyClass(data)->fun(gem::RteMess::TypeTemplate::cast(v0), gem::RteMess::TypeTemplate::cast(v1)); } \ + MSG_CONCAT3(CallbackClass, fun, line) (t_class*c, std::string s) { class_addmethod(c, reinterpret_cast(callback), gensym(s.c_str()), gem::RteMess::TypeTemplate::atomtype_id(), gem::RteMess::TypeTemplate::atomtype_id(), A_NULL); } \ + }; \ + MSG_CONCAT3(CallbackClass, fun, line) MSG_CONCAT3(CallbackClassInstance, fun, line) (cp, selector) + +#define CPPEXTERN_MSG3_(line, cp, selector, fun, typ0, typ1, typ2) \ + struct MSG_CONCAT3(CallbackClass, fun, line) { \ + static void callback(void*data, gem::RteMess::TypeTemplate::proxyType v0, gem::RteMess::TypeTemplate::proxyType v1, gem::RteMess::TypeTemplate::proxyType v2) \ + { GetMyClass(data)->fun(gem::RteMess::TypeTemplate::cast(v0), gem::RteMess::TypeTemplate::cast(v1), gem::RteMess::TypeTemplate::cast(v2)); } \ + MSG_CONCAT3(CallbackClass, fun, line) (t_class*c, std::string s) { class_addmethod(c, reinterpret_cast(callback), gensym(s.c_str()), gem::RteMess::TypeTemplate::atomtype_id(), gem::RteMess::TypeTemplate::atomtype_id(), gem::RteMess::TypeTemplate::atomtype_id(), A_NULL); } \ + }; \ + MSG_CONCAT3(CallbackClass, fun, line) MSG_CONCAT3(CallbackClassInstance, fun, line) (cp, selector) + +#define CPPEXTERN_MSG4_(line, cp, selector, fun, typ0, typ1, typ2, typ3) \ + struct MSG_CONCAT3(CallbackClass, fun, line) { \ + static void callback(void*data, gem::RteMess::TypeTemplate::proxyType v0, gem::RteMess::TypeTemplate::proxyType v1, gem::RteMess::TypeTemplate::proxyType v2, gem::RteMess::TypeTemplate::proxyType v3) \ + { GetMyClass(data)->fun(gem::RteMess::TypeTemplate::cast(v0), gem::RteMess::TypeTemplate::cast(v1), gem::RteMess::TypeTemplate::cast(v2), gem::RteMess::TypeTemplate::cast(v3)); } \ + MSG_CONCAT3(CallbackClass, fun, line) (t_class*c, std::string s) { class_addmethod(c, reinterpret_cast(callback), gensym(s.c_str()), gem::RteMess::TypeTemplate::atomtype_id(), gem::RteMess::TypeTemplate::atomtype_id(), gem::RteMess::TypeTemplate::atomtype_id(), gem::RteMess::TypeTemplate::atomtype_id(), A_NULL); } \ + }; \ + MSG_CONCAT3(CallbackClass, fun, line) MSG_CONCAT3(CallbackClassInstance, fun, line) (cp, selector) +#define CPPEXTERN_MSG5_(line, cp, selector, fun, typ0, typ1, typ2, typ3, typ4) \ + struct MSG_CONCAT3(CallbackClass, fun, line) { \ + static void callback(void*data, gem::RteMess::TypeTemplate::proxyType v0, gem::RteMess::TypeTemplate::proxyType v1, gem::RteMess::TypeTemplate::proxyType v2, gem::RteMess::TypeTemplate::proxyType v3, gem::RteMess::TypeTemplate::proxyType v4) \ + { GetMyClass(data)->fun(gem::RteMess::TypeTemplate::cast(v0), gem::RteMess::TypeTemplate::cast(v1), gem::RteMess::TypeTemplate::cast(v2), gem::RteMess::TypeTemplate::cast(v3), gem::RteMess::TypeTemplate::cast(v4)); } \ + MSG_CONCAT3(CallbackClass, fun, line) (t_class*c, std::string s) { class_addmethod(c, reinterpret_cast(callback), gensym(s.c_str()), gem::RteMess::TypeTemplate::atomtype_id(), gem::RteMess::TypeTemplate::atomtype_id(), gem::RteMess::TypeTemplate::atomtype_id(), gem::RteMess::TypeTemplate::atomtype_id(), gem::RteMess::TypeTemplate::atomtype_id(), A_NULL); } \ + }; \ + MSG_CONCAT3(CallbackClass, fun, line) MSG_CONCAT3(CallbackClassInstance, fun, line) (cp, selector) + + +#define CPPEXTERN_MSG(cp, selector, fun) CPPEXTERN_MSG_ ( __LINE__ , cp, selector, fun) +#define CPPEXTERN_MSG0(cp, selector, fun) CPPEXTERN_MSG0_ ( __LINE__ , cp, selector, fun) +#define CPPEXTERN_MSG1(cp, selector, fun, typ) CPPEXTERN_MSG1_ ( __LINE__ , cp, selector, fun, typ) +#define CPPEXTERN_MSG2(cp, selector, fun, typ0, typ1) CPPEXTERN_MSG2_ ( __LINE__ , cp, selector, fun, typ0, typ1) +#define CPPEXTERN_MSG3(cp, selector, fun, typ0, typ1, typ2) CPPEXTERN_MSG3_ ( __LINE__ , cp, selector, fun, typ0, typ1, typ2) +#define CPPEXTERN_MSG4(cp, selector, fun, typ0, typ1, typ2, typ3) CPPEXTERN_MSG4_ ( __LINE__ , cp, selector, fun, typ0, typ1, typ2, typ3) +#define CPPEXTERN_MSG5(cp, selector, fun, typ0, typ1, typ2, typ3, typ4) CPPEXTERN_MSG5_ ( __LINE__ , cp, selector, fun, typ0, typ1, typ2, typ3, typ4) + + + + +#endif /* _INCLUDE__GEM_RTE_MESSAGECALLBACKS_H_ */ diff --git a/Gem/develop/include/Gem/RTE/RTE.h b/Gem/develop/include/Gem/RTE/RTE.h new file mode 100644 index 0000000..bbcad94 --- /dev/null +++ b/Gem/develop/include/Gem/RTE/RTE.h @@ -0,0 +1,56 @@ +/*----------------------------------------------------------------- + LOG + GEM - Graphics Environment for Multimedia + + generic access to RTE + + Copyright (c) 2012 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + + -----------------------------------------------------------------*/ +#ifndef _INCLUDE__GEM_RTE_RTE_H_ +#define _INCLUDE__GEM_RTE_RTE_H_ + + +#include "Gem/ExportDef.h" +#include + +namespace gem { + namespace RTE { + class GEM_EXTERN RTE { + private: + class PIMPL; + PIMPL*m_pimpl; + + RTE(void); + virtual ~RTE(void); + + public: + static RTE*getRuntimeEnvironment(void); + + /** + * get the Runtime Environemnt's version + */ + virtual const std::string getVersion(unsigned int&major, unsigned int&minor); + + /** + * get the Runtime Environemnt's name + */ + virtual const std::string getName(void); + + /** + * resolve a function-name in the current RTE + * @return pointer to the function named 'name', or NULL if it doesn't exist + */ + virtual void*getFunction(const std::string&name); + + /** + * find a file in the given context(canvas), searching RTEs search paths + * @return expanded filename + */ + virtual std::string findFile(const std::string&name, const std::string&ext, const void*context) const; + }; + }; +}; +#endif /* _INCLUDE__GEM_RTE_RTE_H_ */ diff --git a/Gem/develop/include/Gem/Utils/Functions.h b/Gem/develop/include/Gem/Utils/Functions.h new file mode 100644 index 0000000..b025e29 --- /dev/null +++ b/Gem/develop/include/Gem/Utils/Functions.h @@ -0,0 +1,357 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + GemFuncUtil.h + - contains functions for graphics + - part of GEM + + Copyright (c) 1997-2000 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_UTILS_FUNCTIONS_H_ +#define _INCLUDE__GEM_UTILS_FUNCTIONS_H_ + +#include "Gem/ExportDef.h" + +/* this should be included for ALL platforms: + * should we define __MMX__ for windows in there ? + */ +#include "Utils/SIMD.h" +#include "Utils/GemMath.h" + +// for rand() +#include + +/////////////////////////////////////////////////////////////////////////////// +// powerOfTwo +// get the next higher 2^n-number (if value isn't 2^n by itself) +/////////////////////////////////////////////////////////////////////////////// +inline int powerOfTwo(int value) +{ +/* + int x = 1; + // while(x <= value) x <<= 1; + while(x < value) x <<= 1; + return(x); +*/ +// optimization from "Hacker's Delight" +// - above loop executes in 4n+3 instructions, where n is the power of 2 of returned int +// - below code is branch-free and only 12 instructions! + value = value - 1; + value = value | (value >> 1); + value = value | (value >> 2); + value = value | (value >> 4); + value = value | (value >> 8); + value = value | (value >> 16); + return (value + 1); +} + +/////////////////////////////////////////////////////////////////////////////// +// min/max functions +// +/////////////////////////////////////////////////////////////////////////////// +#ifndef MIN +template +inline T MIN(T x, T y) { return (x +inline T MAX(T x, T y) { return (x>y)?x:y; } +#endif + +template +inline T TRI_MAX(T v1, T v2, T v3){ + if (v1 > v2 && v1 > v3) return(v1); + if (v2 > v3) return(v2); + return(v3); +} +template +inline T TRI_MIN(T v1, T v2, T v3){ + if (v1 < v2 && v1 < v3) return(v1); + if (v2 < v3) return(v2); + return(v3); +} + +/////////////////////////////////////////////////////////////////////////////// +// Clamp functions +// +/////////////////////////////////////////////////////////////////////////////// +////////// +// Clamp a value high +inline unsigned char CLAMP_HIGH(int x) + { return((unsigned char )((x > 255) ? 255 : x)); } + +////////// +// Clamp a value low +inline unsigned char CLAMP_LOW(int x) + { return((unsigned char )((x < 0) ? 0 : x)); } + +////////// +// Clamp an int to the range of an unsigned char +inline unsigned char CLAMP(int x) + { return((unsigned char)((x > 255) ? 255 : ( (x < 0) ? 0 : x))); } + +////////// +// Clamp a float to the range of an unsigned char +template +inline unsigned char CLAMP(T x) +{ return((unsigned char)((x > (T)255) ? (T)255 : ( (x < (T)0) ? (T)0 : x))); } + +////////// +// Clamp a float to 0. <= x <= 1.0 +template +inline float FLOAT_CLAMP(T x) + { return((x > 1.) ? 1. : ( (x < 0.) ? 0. : x)); } + +///////// +// Clamp the Y channel of YUV (16%235) +inline unsigned char CLAMP_Y(int x) + { return((unsigned char)((x > 235) ? 235 : ( (x < 16) ? 16 : x))); } + +/////////////////////////////////////////////////////////////////////////////// +// Multiply and interpolation +// +/////////////////////////////////////////////////////////////////////////////// +////////// +// Exactly multiply two unsigned chars +// This avoids a float value (important on Intel...) +// From Alvy Ray Smith paper +inline unsigned char INT_MULT(unsigned int a, unsigned int b) + { int t = (unsigned int)a * (unsigned int)b + 0x80; + return((unsigned char)(((t >> 8) + t) >> 8)); } + +////////// +// Exactly LERPs two values +// This avoids a float value (important on Intel...) +// From Alvy Ray Smith paper +inline unsigned char INT_LERP(unsigned int p, unsigned int q, unsigned int a) + { return((unsigned char)(p + INT_MULT(a, q - p))); } + +////////// +// Floating point LERP +template +inline T FLOAT_LERP(T p, T q, T a) + { return( a * (q - p) + p); } + + +/////////////////////////////////////////////////////////////////////////////// +// Step function +// +/////////////////////////////////////////////////////////////////////////////// +template +inline int stepFunc(T x, T a) + { return(x >= a); } + +/////////////////////////////////////////////////////////////////////////////// +// Pulse function +// +/////////////////////////////////////////////////////////////////////////////// +template +inline int pulseFunc(T x, T a, T b) + { return(stepFunc(a, x) - stepFunc(b, x)); } + +/////////////////////////////////////////////////////////////////////////////// +// Clamp function +// +/////////////////////////////////////////////////////////////////////////////// +template +inline T clampFunc(T x, T a, T b) + { return(x < a ? a : (x > b ? b : x)); } +/* +inline void* clampFunc(void* x, void* a, void* b) + { return(x < a ? a : (x > b ? b : x)); } +*/ +/* + inline int GateInt(int nValue,int nMin,int nMax) + inline float GateFlt(float nValue,float nMin,float nMax) + inline void* GatePtr(void* pValue,void* pMin,void* pMax) +*/ + + +/////////////////////////////////////////////////////////////////////////////// +// absolute integer +// +/////////////////////////////////////////////////////////////////////////////// +inline int AbsInt(int inValue) { return (inValue>0)?inValue:-inValue; } +static inline int GetSign(int inValue) { return (inValue<0)?-1:1; } + +/////////////////////////////////////////////////////////////////////////////// +// wrapping functions for integers +// +/////////////////////////////////////////////////////////////////////////////// + +inline int GetTiled(int inValue,const int nMax) { + int nOutValue=(inValue%nMax); + if (nOutValue<0)nOutValue=((nMax-1)+nOutValue); + return nOutValue; +} + +inline int GetMirrored(int inValue,const int nMax) { + const int nTwoMax=(nMax*2); + int nOutValue=GetTiled(inValue,nTwoMax); + if (nOutValue>=nMax)nOutValue=((nTwoMax-1)-nOutValue); + return nOutValue; +} + + +/////////////////////////////////////////////////////////////////////////////// +// 2D-algebra +// +/////////////////////////////////////////////////////////////////////////////// +static inline void Get2dTangent(float inX,float inY,float* poutX,float* poutY) { + *poutX=inY; + *poutY=-inX; +} +/////////////////////////////////////////////////////////////////////////////// +// 2D-dot product +/////////////////////////////////////////////////////////////////////////////// +static inline float Dot2d(float Ax,float Ay,float Bx,float By) { + return ((Ax*Bx)+(Ay*By)); +} +/////////////////////////////////////////////////////////////////////////////// +// 2D-vector normalization +/////////////////////////////////////////////////////////////////////////////// +static inline void Normalise2d(float* pX,float* pY) { + const float MagSqr=Dot2d(*pX,*pY,*pX,*pY); + float Magnitude=(float)sqrt(MagSqr); + if (Magnitude<=0.0f) { + Magnitude=0.001f; + } + const float RecipMag=1.0f/Magnitude; + + *pX*=RecipMag; + *pY*=RecipMag; +} + +/////////////////////////////////////////////////////////////////////////////// +// higher algebra +// +/////////////////////////////////////////////////////////////////////////////// +inline float GetRandomFloat(void) { + return rand()/static_cast(RAND_MAX); +} + + +/////////////////////////////////////////////////////////////////////////////// +// Smooth step function (3x^2 - 2x^3) +// +/////////////////////////////////////////////////////////////////////////////// +GEM_EXTERN extern float smoothStep(float x, float a, float b); +GEM_EXTERN extern int smoothStep(int x, int a, int b); +GEM_EXTERN extern unsigned char smoothStep(unsigned char x, unsigned char a, unsigned char b); + +/////////////////////////////////////////////////////////////////////////////// +// Bias function +// +// Remap unit interval (curve) +// If a == 0.5, then is linear mapping. +/////////////////////////////////////////////////////////////////////////////// +GEM_EXTERN extern float biasFunc(float x, float a); + +/////////////////////////////////////////////////////////////////////////////// +// Gain function +// +// Remap unit interval (S-curve) +// Will always return 0.5 when x is 0.5 +// If a == 0.5, then is linear mapping. +/////////////////////////////////////////////////////////////////////////////// +GEM_EXTERN extern float gainFunc(float x, float a); + +/////////////////////////////////////////////////////////////////////////////// +// Linear function +// +// val should be 0 <= val <= 1. +// ret should point at a float of enough dimensions to hold the returned value +// For instance, numDimen == 2, should have a ret[2] +// numDimen is the number of dimensions to compute +// npnts is the number of points per dimension. +// +/////////////////////////////////////////////////////////////////////////////// +GEM_EXTERN extern void linearFunc(float val, float *ret, int numDimen, int npnts, float *pnts); +GEM_EXTERN extern void linearFunc(double val, double *ret, int numDimen, int npnts, double *pnts); + +/////////////////////////////////////////////////////////////////////////////// +// Spline function +// +// val should be 0 <= val <= 1. +// ret should point at a float of enough dimensions to hold the returned value +// For instance, numDimen == 2, should have a ret[2] +// numDimen is the number of dimensions to compute +// nknots is the number of knots per dimension. +// There must be at least four knots! +// +// Thanks to +// _Texturing and Modeling: A Procedural Approach_ +// David S. Ebert, Ed. +/////////////////////////////////////////////////////////////////////////////// +GEM_EXTERN extern void splineFunc(float val, float *ret, int numDimen, int nknots, float *knot); +GEM_EXTERN extern void splineFunc(double val, double *ret, int numDimen, int nknots, double *knot); + + +/////////////////////////////////////////////////////////////////////////////// +// Pixel access functions +// +/////////////////////////////////////////////////////////////////////////////// +// +// Accelerated Pixel Manipulations +// This is sort on a vector operation on 8 chars at the same time .... could be +// implemented in MMX +// Alpha channel is not added !! (would be nr 3 and 7) + +#define ADD8_NOALPHA(a,b) \ + ((unsigned char*)(a))[0] = CLAMP_HIGH((int)((unsigned char*)(a))[0] + ((unsigned char*)(b))[0]);\ + ((unsigned char*)(a))[1] = CLAMP_HIGH((int)((unsigned char*)(a))[1] + ((unsigned char*)(b))[1]);\ + ((unsigned char*)(a))[2] = CLAMP_HIGH((int)((unsigned char*)(a))[2] + ((unsigned char*)(b))[2]);\ + ((unsigned char*)(a))[4] = CLAMP_HIGH((int)((unsigned char*)(a))[4] + ((unsigned char*)(b))[4]);\ + ((unsigned char*)(a))[5] = CLAMP_HIGH((int)((unsigned char*)(a))[5] + ((unsigned char*)(b))[5]);\ + ((unsigned char*)(a))[6] = CLAMP_HIGH((int)((unsigned char*)(a))[6] + ((unsigned char*)(b))[6]);\ + +#define SUB8_NOALPHA(a,b) \ + ((unsigned char*)(a))[0] = CLAMP_LOW((int)((unsigned char*)(a))[0] - ((unsigned char*)(b))[0]);\ + ((unsigned char*)(a))[1] = CLAMP_LOW((int)((unsigned char*)(a))[1] - ((unsigned char*)(b))[1]);\ + ((unsigned char*)(a))[2] = CLAMP_LOW((int)((unsigned char*)(a))[2] - ((unsigned char*)(b))[2]);\ + ((unsigned char*)(a))[4] = CLAMP_LOW((int)((unsigned char*)(a))[4] - ((unsigned char*)(b))[4]);\ + ((unsigned char*)(a))[5] = CLAMP_LOW((int)((unsigned char*)(a))[5] - ((unsigned char*)(b))[5]);\ + ((unsigned char*)(a))[6] = CLAMP_LOW((int)((unsigned char*)(a))[6] - ((unsigned char*)(b))[6]);\ + +#define ADD8(a,b) \ + ((unsigned char*)(a))[0] = CLAMP_HIGH((int)((unsigned char*)(a))[0] + ((unsigned char*)(b))[0]);\ + ((unsigned char*)(a))[1] = CLAMP_HIGH((int)((unsigned char*)(a))[1] + ((unsigned char*)(b))[1]);\ + ((unsigned char*)(a))[2] = CLAMP_HIGH((int)((unsigned char*)(a))[2] + ((unsigned char*)(b))[2]);\ + ((unsigned char*)(a))[3] = CLAMP_HIGH((int)((unsigned char*)(a))[3] + ((unsigned char*)(b))[3]);\ + ((unsigned char*)(a))[4] = CLAMP_HIGH((int)((unsigned char*)(a))[4] + ((unsigned char*)(b))[4]);\ + ((unsigned char*)(a))[5] = CLAMP_HIGH((int)((unsigned char*)(a))[5] + ((unsigned char*)(b))[5]);\ + ((unsigned char*)(a))[6] = CLAMP_HIGH((int)((unsigned char*)(a))[6] + ((unsigned char*)(b))[6]);\ + ((unsigned char*)(a))[7] = CLAMP_HIGH((int)((unsigned char*)(a))[7] + ((unsigned char*)(b))[7]);\ + +#define SUB8(a,b) \ + ((unsigned char*)(a))[0] = CLAMP_LOW((int)((unsigned char*)(a))[0] - ((unsigned char*)(b))[0]);\ + ((unsigned char*)(a))[1] = CLAMP_LOW((int)((unsigned char*)(a))[1] - ((unsigned char*)(b))[1]);\ + ((unsigned char*)(a))[2] = CLAMP_LOW((int)((unsigned char*)(a))[2] - ((unsigned char*)(b))[2]);\ + ((unsigned char*)(a))[3] = CLAMP_LOW((int)((unsigned char*)(a))[3] - ((unsigned char*)(b))[3]);\ + ((unsigned char*)(a))[4] = CLAMP_LOW((int)((unsigned char*)(a))[4] - ((unsigned char*)(b))[4]);\ + ((unsigned char*)(a))[5] = CLAMP_LOW((int)((unsigned char*)(a))[5] - ((unsigned char*)(b))[5]);\ + ((unsigned char*)(a))[6] = CLAMP_LOW((int)((unsigned char*)(a))[6] - ((unsigned char*)(b))[6]);\ + ((unsigned char*)(a))[7] = CLAMP_LOW((int)((unsigned char*)(a))[7] - ((unsigned char*)(b))[7]);\ + + + +#ifdef __APPLE__ +//Ian Ollman's function to determine the cache prefetch for altivec vec_dst() +#include + +inline uint32_t GetPrefetchConstant( int blockSizeInVectors, int blockCount, int blockStride ) +{ + return ((blockSizeInVectors << 24) & 0x1F000000) | ((blockCount << 16) & 0x00FF0000) | (blockStride & 0xFFFF); +} +#endif + + +#endif // for header file + diff --git a/Gem/develop/include/Gem/Utils/GLUtil.h b/Gem/develop/include/Gem/Utils/GLUtil.h new file mode 100644 index 0000000..c550c07 --- /dev/null +++ b/Gem/develop/include/Gem/Utils/GLUtil.h @@ -0,0 +1,100 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + GemGLUtil.h + - contains functions for graphics + - part of GEM + + Copyright (c) 1997-2000 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_UTILS_GLUTIL_H_ +#define _INCLUDE__GEM_UTILS_GLUTIL_H_ + +#include "Gem/ExportDef.h" + +/* for t_symbol/t_atom */ +/* LATER get rid of that (std::string) */ +struct _atom; +struct _symbol; +#include + +/* for GLenum */ +#include "Gem/GemGL.h" +#include "Gem/Exception.h" + + +namespace gem {namespace utils {namespace gl { +GEM_EXTERN extern GLenum glReportError (bool verbose=true); +GEM_EXTERN extern int getGLdefine(const char *name); +GEM_EXTERN extern int getGLdefine(const struct _symbol *name); +GEM_EXTERN extern int getGLdefine(const struct _atom *name); +GEM_EXTERN extern int getGLbitfield(int argc, struct _atom *argv); + + + + /* mapping between GLSL-program IDs and float */ + /* this can also return different IDs for different contexts */ + class GEM_EXTERN GLuintMap { + public: + GLuintMap(const std::string&name); + virtual ~GLuintMap(); + GLuint get(float) throw(GemException&); + /* map a GLuint to float; if float is 0, the new mapping is created, + * else we just update an existing one + * updating is especially useful with multiple contexts */ + float set(GLuint, float f=0); + + void del(float); + + + /* usage: + mapper=GLuintMap("glsl_program"); + prog=glCreateProgram(); + progMapped=mapper.set(prog); + // for multi-context, you probably want to have a single float map to multiple + // programIDs; you add (or update) an existing mapping with: + // progMapped=mapper.set(prog, progMapped)); + outlet_float(m_out, mapper.get(progMapped)); + + // ... somewhere else + mapper=GLuintMap("glsl_program"); + GLuint id = mapper.get(atom_getfloat(ap)); + */ + + /* multi-context: + mapper=GLuintMap("glsl_program"); + float progF=0; + switchContext(A); + prog=glCreateProgram(); + progF=mapper.set(prog, progF); + print(prog,progF); // "3" "3.1415" + switchContext(B); + prog=glCreateProgram(); + progF=mapper.set(prog, progF); + print(prog,progF); // "6" "3.1415" + + // ...somewhere else + mapper=GLuintMap("glsl_program"); + prog=mapper.get(progF); + print(prog,progF); // "3" "3.1415" + switchContext(B); + prog=mapper.get(progF); + print(prog,progF); // "6" "3.1415" + */ + private: + struct PIMPL; + PIMPL*m_pimpl; + GLuintMap(); + GLuintMap&operator=(const GLuintMap&); + }; +};};}; /* namespace */ + +#endif // for header file + diff --git a/Gem/develop/include/Gem/Utils/GemMath.h b/Gem/develop/include/Gem/Utils/GemMath.h new file mode 100644 index 0000000..769edec --- /dev/null +++ b/Gem/develop/include/Gem/Utils/GemMath.h @@ -0,0 +1,85 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + Matrix class + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_UTILS_GEMMATH_H_ +#define _INCLUDE__GEM_UTILS_GEMMATH_H_ +#include + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +#ifdef __APPLE__ +# include +# if defined (MAC_OS_X_VERSION_10_3) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3 +# else + +#define sqrtf(v) (float)sqrt((double)(v)) +#define cosf(v) (float)cos((double)(v)) +#define sinf(v) (float)sin((double)(v)) +#define tanf(v) (float)tan((double)(v)) +#define logf(v) (float)log((double)(v)) +#define expf(v) (float)exp((double)(v)) + +#define atan2f(v,p) (float)atan2((double)(v), (double)(p)) +#define powf(v,p) (float)pow((double)(v), (double)(p)) + +# endif /* OSX_10_3 */ +#endif /* __APPLE__ */ + + +/////////////////////////////////////////////////////////////////////////////// +// Speedup found via Shark: ppc only +// +// If you do not require full precision, you can use the PowerPC floating-point +// reciprocal square-root estimate instruction (frsqrte) instead of calling sqrt(). +// +// If needed, you can increase the precision of the estimate returned by +// frsqrte (5-bits of precision) by using the Newton-Raphson method for improving +// the estimate (x0) for 1/sqrt(a) (x1 = 0.5 * x0 * [3.0 - a * x0 * x0]). +/////////////////////////////////////////////////////////////////////////////// +#ifdef __ppc__ +# include +# ifdef sqrt +# undef sqrt +# endif +# ifdef sqrtf +# undef sqrtf +# endif + +# define sqrt fast_sqrtf +# define sqrtf fast_sqrtf + +inline double fast_sqrt(double x) +{ + register double est = __frsqrte(x); + return x * 0.5 * est * __fnmsub(est * est, x, 3.0); +} + +inline float fast_sqrtf(float x) +{ + register float est = (float)__frsqrte(x); + return x * 0.5f * est * __fnmsubs(est * est, x, 3.0f); +} +#endif /* __ppc__ */ + +#ifdef _WIN32 +/* seems like there is no drand48() on w32 */ +/* JMZ: this should really return "double" instead of "float", + * but we need only float... */ +# define drand48() ((float)rand())/((float)RAND_MAX) +#endif /* _WIN32 */ + + +#endif // for header file diff --git a/Gem/develop/include/Gem/Utils/GemString.h b/Gem/develop/include/Gem/Utils/GemString.h new file mode 100644 index 0000000..d134f50 --- /dev/null +++ b/Gem/develop/include/Gem/Utils/GemString.h @@ -0,0 +1,35 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + - bidirectional text support + + Copyright (c) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + + + +#ifndef _INCLUDE__GEM_GEM_STRING_H_ +#define _INCLUDE__GEM_GEM_STRING_H_ + +#include +#include "Gem/ExportDef.h" + +class CPPExtern; +namespace gem { + + namespace string { + + /* convert a string to it's visual representation (UTF-8) */ + GEM_EXTERN std::wstring getVisualLine(const std::string&); + GEM_EXTERN std::wstring getVisualLine(const std::wstring&); + + /* convert a UTF-8 string to wchar */ + GEM_EXTERN std::wstring toWstring(const char*str) throw(int); + }; +}; + +#endif /* _INCLUDE__GEM_GEM_BIDI_H_ */ diff --git a/Gem/develop/include/Gem/Utils/Matrix.h b/Gem/develop/include/Gem/Utils/Matrix.h new file mode 100644 index 0000000..0137f89 --- /dev/null +++ b/Gem/develop/include/Gem/Utils/Matrix.h @@ -0,0 +1,78 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + Matrix class + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_UTILS_MATRIX_H_ +#define _INCLUDE__GEM_UTILS_MATRIX_H_ + +#include "Gem/ExportDef.h" + +/*----------------------------------------------------------------- +------------------------------------------------------------------- +CLASS + Matrix + + 4x4 Matrix class + +DESCRIPTION + + Post-concatenation + Column-major + +-----------------------------------------------------------------*/ +class GEM_EXTERN Matrix +{ + public: + + ////////// + // Constructor + // Sets the matrix to identity + Matrix(void); + + ////////// + // Set the matrix to the identity + void identity(void); + + ////////// + // Post mulitply the matrix + void multiply(Matrix *pMatrix); + + ////////// + void scale(float x, float y, float z); + + ////////// + void translate(float x, float y, float z); + + ////////// + void rotateX(float degrees); + + ////////// + void rotateY(float degrees); + + ////////// + void rotateZ(float degrees); + + ////////// + void transform(float srcX, float srcY, float srcZ, float *dstX, float *dstY, float *dstZ) const; + + ////////// + // The actual matrix values + float mat[4][4]; + + ////////// + // Utility functions + static void generateNormal(const float *v1, const float *v2, const float *v3, float *dst); +}; + + +#endif // for header file diff --git a/Gem/develop/include/Gem/Utils/PixPete.h b/Gem/develop/include/Gem/Utils/PixPete.h new file mode 100644 index 0000000..cc8005a --- /dev/null +++ b/Gem/develop/include/Gem/Utils/PixPete.h @@ -0,0 +1,227 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + helper stuff for ports of Pete's Plugins + + http://www.petewarden.com + + Copyright (c) 2004-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ +#ifndef _INCLUDE__GEM_UTILS_PIXPETE_H_ +#define _INCLUDE__GEM_UTILS_PIXPETE_H_ + +#include + +// utility functions from PeteHelpers.h + +#ifndef _MSC_VER +# include +typedef uint32_t U32; +typedef uint16_t U16; +typedef uint8_t U8; +#else +typedef unsigned long U32; +typedef unsigned short U16; +typedef unsigned char U8; +#endif + +/* is this only on my system ? + i thought Gem's YUV is UYVY and not YVYU + seems weird... (jmz) +*/ +#ifdef __APPLE__ + +# define SHIFT_ALPHA (24) +# define SHIFT_RED (16) +# define SHIFT_GREEN (8) +# define SHIFT_BLUE (0) + +# define SHIFT_U (24) +# define SHIFT_Y1 (16) +# define SHIFT_V (8) +# define SHIFT_Y2 (0) + +#else + +# define SHIFT_ALPHA (24) +# define SHIFT_RED (16) +# define SHIFT_GREEN (8) +# define SHIFT_BLUE (0) + +# define SHIFT_U (0) +# define SHIFT_Y1 (8) +# define SHIFT_V (16) +# define SHIFT_Y2 (24) +#endif + +const float Pete_Pi=3.141582f; +const float Pete_TwoPi=(2.0f*Pete_Pi); +const float Pete_HalfPi=(0.5f*Pete_Pi); + +static inline void Pete_ZeroMemory(void* pMemory,int nCount) { + char* pCurrent=(char*)pMemory; + char* pEnd=(pCurrent+nCount); + // while (pCurrent=pBufferStart) { + + *((PETE_PIXELDATA32*)pBuffer32Current)= + *((PETE_PIXELDATA24*)pBuffer24Current); + + pBuffer32Current-=SIZEOF_PETE_PIXELDATA32; + pBuffer24Current-=SIZEOF_PETE_PIXELDATA24; + } +} + +static inline void Pete_CopyAndConvert16Bit565To32Bit(PETE_PIXELDATA16* pSource,PETE_PIXELDATA32* pOutput,int nPixelCount) { + + char* pSourceEnd=((char*)pSource)+(nPixelCount*SIZEOF_PETE_PIXELDATA16); + char* pCurrentSource=((char*)pSource); + char* pCurrentOutput=((char*)pOutput); + + while (pCurrentSource>11)&31; + const int nMaskedGreen=(SourceColour>>5)&63; + const int nMaskedBlue=(SourceColour>>0)&31; + + const int nNormalizedRed=(nMaskedRed<<3)|(nMaskedRed>>2); + const int nNormalizedGreen=(nMaskedGreen<<2)|(nMaskedGreen>>4); + const int nNormalizedBlue=(nMaskedBlue<<3)|(nMaskedBlue>>2); + + const PETE_PIXELDATA32 OutputColour= + (nNormalizedRed<<16)| + (nNormalizedGreen<<8)| + (nNormalizedBlue<<0); + + *((PETE_PIXELDATA32*)pCurrentOutput)=OutputColour; + + pCurrentSource+=SIZEOF_PETE_PIXELDATA16; + pCurrentOutput+=SIZEOF_PETE_PIXELDATA32; + + } + +} + +static inline void Pete_CopyAndConvert32BitTo16Bit565(PETE_PIXELDATA32* pSource,PETE_PIXELDATA16* pOutput,int nPixelCount) { + + char* pSourceEnd=((char*)pSource)+(nPixelCount*SIZEOF_PETE_PIXELDATA32); + char* pCurrentSource=((char*)pSource); + char* pCurrentOutput=((char*)pOutput); + + while (pCurrentSource>16)&0xff; + const int nSourceGreen=(SourceColour>>8)&0xff; + const int nSourceBlue=(SourceColour>>0)&0xff; + + const int nMaskedRed=(nSourceRed>>3); + const int nMaskedGreen=(nSourceGreen>>2); + const int nMaskedBlue=(nSourceBlue>>3); + + PETE_PIXELDATA16 OutputColour= + (nMaskedRed<<11)| + (nMaskedGreen<<5)| + (nMaskedBlue<<0); + + *((PETE_PIXELDATA16*)pCurrentOutput)=OutputColour; + + pCurrentSource+=SIZEOF_PETE_PIXELDATA32; + pCurrentOutput+=SIZEOF_PETE_PIXELDATA16; + } +} +typedef void* SPete_MemHandle; + +inline SPete_MemHandle Pete_NewHandle(int nBytesToAlloc) { + return malloc(nBytesToAlloc); +} + +inline void Pete_FreeHandle(SPete_MemHandle InHandle) { + free(InHandle); +} + +inline void* Pete_LockHandle(SPete_MemHandle InHandle) { + return InHandle; +} + +inline void Pete_UnLockHandle(SPete_MemHandle InHandle) { + // do nothing +} + +const int cnBiggestSignedInt=0x7fffffff; + +inline int GetLuminance(const U32 inColour) { + const int nRed=(inColour&(0xff<>16; + const int nGreen=(inColour&(0xff<>8; + const int nBlue=(inColour&(0xff<>0; + + const int nLuminance = + ((77 * nRed)+ + (150* nGreen)+ // used to be 50 which is plain wrong + (29 * nBlue)); + + return nLuminance; +} + +#endif /* _INCLUDE__GEM_UTILS_PIXPETE_H_ */ +// end of PeteHelpers.h stuff diff --git a/Gem/develop/include/Gem/Utils/SIMD.h b/Gem/develop/include/Gem/Utils/SIMD.h new file mode 100644 index 0000000..02db219 --- /dev/null +++ b/Gem/develop/include/Gem/Utils/SIMD.h @@ -0,0 +1,118 @@ + +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + include file for SIMD + + Copyright (c) 1997-1999 Mark Danks. mark@danks.org + Copyright (c) Günther Geiger. geiger@epy.co.at + Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +/* + * compiler-issues: + * + * gcc: when gcc is invoked with "-mmmx" (or "-msse2" or "-maltivec") + * the defines __MMX__ (or corresponding) will be defined automatically + * + * vc6: you will have to install the microsoft processor-pack to use MMX/SSE2 + * you have to have the sp5 for vc6 installed (note: do not install sp6!!) + * vc6/vc7: (i think) you need to define __MMX__ (and friends) by hand + */ + +#ifndef _INCLUDE__GEM_UTILS_SIMD_H_ +#define _INCLUDE__GEM_UTILS_SIMD_H_ + +#define GEM_VECTORALIGNMENT 128 + +const int GEM_SIMD_NONE=0; +const int GEM_SIMD_MMX=1; +const int GEM_SIMD_SSE2=2; +const int GEM_SIMD_ALTIVEC=3; + +#if defined __APPLE__ +# if defined __VEC__ && !defined __APPLE_ALTIVEC__ +# undef __VEC__ +# endif + +# include +#endif /* APPLE */ + +/* include for SIMD on PC's */ +#ifdef __SSE2__ +# include +// for icc this should be +typedef union{ + unsigned char c[16]; + __m128i v; +} vector_128; +#elif defined __VEC__ +/* for AltiVec (PowerPC) */ +typedef union{ + unsigned char c[16]; + vector unsigned char v; +} vector_128; +#endif + +#if defined __MMX__ +# include +// for icc this should be +typedef union{ + __m64 v; unsigned char c[8]; +} vector64i; + +#endif + + +#ifdef __SSE__ +#include + +typedef union{ + __m128 m; float f[4]; +} vector128f; +#endif + +#include "Gem/ExportDef.h" + + +/* this is a help-class to query the capabilities of the cpu + * whenever you want to use SIMD-optimized code, you should + * make sure you chose the code-block based on the "cpuid" value + * of this class and NOT simply on preprocessor defines. + * + * this class needs only be instantiated once (and it is done in GemMan) + * this sets the cpuid + */ +class GEM_EXTERN GemSIMD +{ + public: + GemSIMD(void); + virtual ~GemSIMD(void); + + /* this gets the "cpuid" (something like GEM_SIMD_NONE) */ + static int getCPU(void); + + /* change the cpuid returned by getCPU() + * you can only set the cpuid to something that is actually supported + * by your processor + */ + static int requestCPU(int cpuid); + + /* performs a runtime-check (if possible) to determine the capabilities + * of the CPU + * sets realcpuid appropriately and returns this value + */ + static int simd_runtime_check(void); + + private: + /* this is the maximum capability of the CPU */ + static int realcpuid; + /* this is the current chosen capability (normally this equals realcpuid) */ + static int cpuid; +}; + +#endif /* _INCLUDE__GEM_UTILS_SIMD_H_ */ diff --git a/Gem/develop/include/Gem/Utils/SynchedWorkerThread.h b/Gem/develop/include/Gem/Utils/SynchedWorkerThread.h new file mode 100644 index 0000000..6f5135e --- /dev/null +++ b/Gem/develop/include/Gem/Utils/SynchedWorkerThread.h @@ -0,0 +1,65 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + Synchedworkerthread.h + - part of GEM + - a worker thread that automatically dequeues in the main thread + + Copyright (c) 2011-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_SYNCHEDWORKERTHREAD_H_ +#define _INCLUDE__GEM_GEM_SYNCHEDWORKERTHREAD_H_ + +#include "Utils/WorkerThread.h" + +namespace gem { namespace thread { + class GEM_EXTERN SynchedWorkerThread : public WorkerThread { + private: + class PIMPL; + PIMPL*m_pimpl; + friend class PIMPL; + /* dummy implementations */ + SynchedWorkerThread(const SynchedWorkerThread&); + SynchedWorkerThread&operator=(const SynchedWorkerThread&); + + public: + SynchedWorkerThread(bool autostart=true); + virtual ~SynchedWorkerThread(void); + + /* + * turn on "polling" mode + * when in polling mode, the calling thread has to call 'dequeue()' in order to + * deqeue any DONE data + * when in pushing mode, the data is pushed automatically within the RTE main thread + * + * returns TRUE is now in polling mode, or FALSE if now in pushing mode + * (might be different from what was requested) + * + * this MUST be called from the main thread + */ + virtual bool setPolling(bool value=true); + + /** + * deqeues the entire DONE queue + * returns the number of elements dequeued + */ + virtual unsigned int dequeue(void); + + protected: + // this get's called from the main thread(!) with each + // finished data chunk + virtual void done(id_t ID, void*data) = 0; + + ////// + // tell RTE to call back asap + virtual void signal(void); + + };};}; + + +#endif /* _INCLUDE__GEM_GEM_SYNCHEDWORKERTHREAD_H_ */ diff --git a/Gem/develop/include/Gem/Utils/Thread.h b/Gem/develop/include/Gem/Utils/Thread.h new file mode 100644 index 0000000..ca861cc --- /dev/null +++ b/Gem/develop/include/Gem/Utils/Thread.h @@ -0,0 +1,66 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + Thread.h + - part of GEM + - simple platform independent thread abstraction + + Copyright (c) 2011-2012 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_THREAD_H_ +#define _INCLUDE__GEM_GEM_THREAD_H_ + +#include "Gem/ExportDef.h" + +namespace gem { namespace thread { + /** + * get the number of available CPUs on the system + */ + GEM_EXTERN unsigned int getCPUCount(void); + + class GEM_EXTERN Thread { + private: + class PIMPL; + PIMPL*m_pimpl; + friend class PIMPL; + + Thread(const Thread&); + Thread&operator=(const Thread&); + public: + Thread(void); + virtual ~Thread(void); + + //// + // start thread + virtual bool start(void); + //// + // stop thread + // waits for at most wait4usec microseconds + // is wait4usec==0, waits until process terminates (e.g. forever) + virtual bool stop(unsigned int wait4usec=0); + + protected: + //// + // the worker! + // get's called from an alternative thread + // if TRUE is returned, process() will be called again + // until stop() is called + // if FALSE is returned, the thread may exit + virtual bool process(void) = 0; + }; + + + //////// + // wrapper around select() or whatever + GEM_EXTERN void usleep(unsigned long usec); +};}; // namespace + + + + +#endif /* _INCLUDE__GEM_GEM_THREAD_H_ */ diff --git a/Gem/develop/include/Gem/Utils/ThreadMutex.h b/Gem/develop/include/Gem/Utils/ThreadMutex.h new file mode 100644 index 0000000..c2851b5 --- /dev/null +++ b/Gem/develop/include/Gem/Utils/ThreadMutex.h @@ -0,0 +1,38 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + - locks a thread (wrapper around pthread_mutex) + + Copyright (c) 2011-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_THREADMUTEX_H_ +#define _INCLUDE__GEM_GEM_THREADMUTEX_H_ + + +#include "Gem/ExportDef.h" + +namespace gem { + namespace thread { + class GEM_EXTERN Mutex { + private: + class PIMPL; + PIMPL*m_pimpl; + public: + Mutex(void); + virtual ~Mutex(void); + + Mutex(const Mutex&); + Mutex&operator=(const Mutex&); + + void lock (void); + void unlock (void); + bool trylock(void); + }; + }; +}; +#endif /* _INCLUDE__GEM_GEM_THREADMUTEX_H_ */ diff --git a/Gem/develop/include/Gem/Utils/ThreadSemaphore.h b/Gem/develop/include/Gem/Utils/ThreadSemaphore.h new file mode 100644 index 0000000..3a57a4c --- /dev/null +++ b/Gem/develop/include/Gem/Utils/ThreadSemaphore.h @@ -0,0 +1,39 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + - locks a thread (wrapper around pthread's cond_t) + + Copyright (c) 2011-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_THREADSEMAPHORE_H_ +#define _INCLUDE__GEM_GEM_THREADSEMAPHORE_H_ + + +#include "Gem/ExportDef.h" + +namespace gem { + namespace thread { + class GEM_EXTERN Semaphore { + private: + class PIMPL; + PIMPL*m_pimpl; + public: + Semaphore(void); + virtual ~Semaphore(void); + Semaphore(const Semaphore&); + + /** block the current thread until the Semaphore is thaw()ed again */ + void freeze (void); + /** unblock any waiting threads */ + void thaw (void); + + virtual Semaphore&operator=(const Semaphore&); + }; + }; +}; +#endif /* _INCLUDE__GEM_GEM_THREADSEMAPHORE_H_ */ diff --git a/Gem/develop/include/Gem/Utils/Vector.h b/Gem/develop/include/Gem/Utils/Vector.h new file mode 100644 index 0000000..e427f04 --- /dev/null +++ b/Gem/develop/include/Gem/Utils/Vector.h @@ -0,0 +1,77 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + vector-classes + + zmoelnig@iem.at, tigital@mac.com + + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_UTILS_VECTOR_H_ +#define _INCLUDE__GEM_UTILS_VECTOR_H_ + +#include "Gem/ExportDef.h" + + + +// This is our 2D point class. This will be used to store the UV coordinates. +class GEM_EXTERN CVector2 { +public: + float x, y; +}; + + +// This is our basic 3D point/vector class +class GEM_EXTERN CVector3 { +public: + // the elements of a vector: + float x, y, z; + + // A default constructor + CVector3(void); + + // This is our constructor that allows us to initialize our data upon creating an instance + CVector3(float X, float Y, float Z); + + // Here we overload the + operator so we can add vectors together + CVector3 operator+(CVector3 vVector) const; + + // Here we overload the - operator so we can subtract vectors + CVector3 operator-(CVector3 vVector) const; + + // Here we overload the - operator so we can negate the vector + CVector3 operator-(void) const; + + // Here we overload the * operator so we can multiply by scalars + CVector3 operator*(float num) const; + + // Here we overload the * operator so we can dot-multiply + float operator*(CVector3 vVector) const; + + // cross-multiplication + CVector3 cross(CVector3 vVector) const; + + // Here we overload the / operator so we can divide by a scalar + CVector3 operator/(float num) const; + + + // here we calculate the absolute-value of the vector + float abs(void) const; + + // here we calculate the square of the absolute-value of the vector + float abs2(void) const; + + // here we normalize the vector + CVector3 normalize(void) const; + + // here we compare 2 vectors on approx. equality + bool equals(CVector3 vVector, float epsilon) const; + + +}; + +#endif /* _INCLUDE__GEM_UTILS_VECTOR_H_ */ diff --git a/Gem/develop/include/Gem/Utils/WorkerThread.h b/Gem/develop/include/Gem/Utils/WorkerThread.h new file mode 100644 index 0000000..9ab2285 --- /dev/null +++ b/Gem/develop/include/Gem/Utils/WorkerThread.h @@ -0,0 +1,81 @@ +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + WorkerThread.h + - part of GEM + - baseclass for queueing/dequeueing workloads for threaded + + Copyright (c) 2011-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_GEM_WORKERTHREAD_H_ +#define _INCLUDE__GEM_GEM_WORKERTHREAD_H_ + +#include "Gem/ExportDef.h" + +namespace gem { namespace thread { + class GEM_EXTERN WorkerThread { + private: + class PIMPL; + PIMPL*m_pimpl; + friend class PIMPL; + /* dummy implementations */ + WorkerThread(const WorkerThread&); + WorkerThread&operator=(const WorkerThread&); + public: + WorkerThread(void); + virtual ~WorkerThread(void); + + //// + // start/stop thread(s) + virtual bool start(void); + virtual bool stop(bool wait=true); + + typedef unsigned int id_t; + static const id_t INVALID; + static const id_t IMMEDIATE; + + // queue a 'data' chunk onto the TODO queue + // the returned 'ID' can be used to interact with the queues + // if queuing failed, FALSE is returned and ID is set to INVALID + virtual bool queue(id_t&ID, void*data); + + ////// + // cancel a datachunk from the TODO-queue + // if the chunk was successfully removed, returns TRUE + // (FALSE is returned, if e.g. the given datachunk was not found in the queue) + // note that items already processed cannot be cancelled anymore + virtual bool cancel(const id_t ID); + + // dequeue the next datachunk from the DONE queue + // if the queue is empty, FALSE is returned and ID is set to INVALID + virtual bool dequeue(id_t&ID, void*&data); + + protected: + + //// + // the worker! + // get's called from an alternative thread(s) + // when the queue is non-empty, + // the first element is removed from the TODO queue, + // and this function is called with the 1st element as data + // the result returned is added to the done queue (alongside the ID) + virtual void* process(id_t ID, void*data) = 0; + + //// + // this get's called to indicate that new data is in the DONE queue + // you can use it to set a semaphore in the main thread, to fetch + // the data + // it get's called once after process() has been successful + // and will nott be called before dequeue has been called at least once + // + virtual void signal(void); + + };};}; + + +#endif /* _INCLUDE__GEM_GEM_WORKERTHREAD_H_ */ diff --git a/Gem/develop/include/Gem/Utils/any.h b/Gem/develop/include/Gem/Utils/any.h new file mode 100644 index 0000000..fc66b46 --- /dev/null +++ b/Gem/develop/include/Gem/Utils/any.h @@ -0,0 +1,318 @@ +/* + * (C) Copyright Christopher Diggins 2005 + * (C) Copyright Pablo Aguilar 2005 + * (C) Copyright Kevlin Henney 2001 + * + * Copyright (C) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + * downloaded this code from http://www.codeproject.com/KB/cpp/dynamic_typing.aspx + * changed namespace/defines "cdiggins" to something "gem" + * + * Distributed under the Boost Software License, Version 1.0. (See + * accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ + +#ifndef GEM_ANY_HPP +#define GEM_ANY_HPP + +#include "Gem/ExportDef.h" + +#ifdef _MSC_VER +# pragma warning( push ) +# pragma warning( disable: 4275 ) +#endif + +#include +#include +#include +#include + + +namespace gem +{ + struct GEM_EXTERN bad_any_cast : std::bad_cast { + bad_any_cast(const std::type_info& src, const std::type_info& dest) + : result(std::string("bad cast (")+src.name() + "->" + dest.name()+")") + { } + virtual ~bad_any_cast(void) throw() + { } + virtual const char* what(void) const throw() { + return result.c_str(); + } + const std::string result; + }; + + namespace any_detail { + // function pointer table + + struct fxn_ptr_table { + const std::type_info& (*get_type)(void); + void (*static_delete)(void**); + void (*clone)(void* const*, void**); + void (*move)(void* const*,void**); + }; + + // static functions for small value-types + + template + struct fxns + { + template + struct type { + static const std::type_info& get_type(void) { + const std::type_info&res=typeid(T); + // the following is a dummy use of the type_info struct + // to make the template engine work properly on OSX/10.9 + static std::string _ = res.name(); + return res; + } + static void static_delete(void** x) { + reinterpret_cast(x)->~T(); + } + static void clone(void* const* src, void** dest) { + new(dest) T(*reinterpret_cast(src)); + } + static void move(void* const* src, void** dest) { + reinterpret_cast(dest)->~T(); + *reinterpret_cast(dest) = *reinterpret_cast(src); + } + }; + }; + + // static functions for big value-types (bigger than a void*) + + template<> + struct fxns + { + template + struct type { + static const std::type_info& get_type(void) { + const std::type_info&res=typeid(T); + return res; + } + static void static_delete(void** x) { + delete(*reinterpret_cast(x)); + } + static void clone(void* const* src, void** dest) { + *dest = new T(**reinterpret_cast(src)); + } + static void move(void* const* src, void** dest) { + (*reinterpret_cast(dest))->~T(); + **reinterpret_cast(dest) = **reinterpret_cast(src); + } + }; + }; + + template + struct get_table + { + static const bool is_small = sizeof(T) <= sizeof(void*); + + static fxn_ptr_table* get(void) + { + static fxn_ptr_table static_table = { + fxns::template type::get_type + , fxns::template type::static_delete + , fxns::template type::clone + , fxns::template type::move + }; + return &static_table; + } + }; + + struct empty { + }; + } // namespace any_detail + + + struct GEM_EXTERN any + { + // structors + + template + any(const T& x) : table(NULL), object(NULL) { + table = any_detail::get_table::get(); + if (sizeof(T) <= sizeof(void*)) { + new(&object) T(x); + } + else { + object = new T(x); + } + } + + any(void) : table(NULL), object(NULL) { + table = any_detail::get_table::get(); + object = NULL; + } + + any(const any& x) : table(NULL), object(NULL) { + table = any_detail::get_table::get(); + assign(x); + } + + virtual ~any(void) { + table->static_delete(&object); + } + + // assignment + + any& assign(const any& x) { + // are we copying between the same type? + + if (table == x.table) { + // if so, we can avoid reallocation + + table->move(&x.object, &object); + } + else { + reset(); + x.table->clone(&x.object, &object); + table = x.table; + } + return *this; + } + + template + any& assign(const T& x) + { + // are we copying between the same type? + + any_detail::fxn_ptr_table* x_table = any_detail::get_table::get(); + if (table == x_table) { + // if so, we can avoid deallocating and resuse memory + + if (sizeof(T) <= sizeof(void*)) { + // create copy on-top of object pointer itself + + new(&object) T(x); + } + else { + // create copy on-top of old version + + new(object) T(x); + } + } + else { + reset(); + if (sizeof(T) <= sizeof(void*)) { + // create copy on-top of object pointer itself + + new(&object) T(x); + // update table pointer + + table = x_table; + } + else { + object = new T(x); + table = x_table; + } + } + return *this; + } + + // assignment operator + + template + any& operator=(T const& x) { + return assign(x); + } + any& operator=(const any& x) { + return assign(x); + } + + // utility functions + + any& swap(any& x) { + std::swap(table, x.table); + std::swap(object, x.object); + return *this; + } + + const std::type_info& get_type(void) const { + return table->get_type(); + } + + template + const T& cast(void) const { + if (!compatible()) { + throw bad_any_cast(get_type(), typeid(T)); + } + if (sizeof(T) <= sizeof(void*)) { + return *reinterpret_cast(&object); + } + else { + return *reinterpret_cast(object); + } + } + + /// Returns true if the two types are the same. + bool compatible(const any& x) const { + return get_type() == x.get_type(); + } + /// Returns true if the two types are the same. + template + bool compatible() const { + return (get_type() == typeid(T)); + } + + // implicit casting is disabled by default + + #ifdef ANY_IMPLICIT_CASTING + // automatic casting operator + + template + operator T(void) const { + return cast(); + } + #endif // implicit casting + + + bool empty(void) const { + return table == any_detail::get_table::get(); + } + + void reset(void) + { + if (empty()) return; + table->static_delete(&object); + table = any_detail::get_table::get(); + object = NULL; + } + + // fields + + any_detail::fxn_ptr_table* table; + void* object; + }; + + // boost::any-like casting + + template + T* any_cast(any* this_) { + if (this_->get_type() != typeid(T)) { + throw bad_any_cast(this_->get_type(), typeid(T)); + } + if (sizeof(T) <= sizeof(void*)) { + return reinterpret_cast(&this_->object); + } + else { + return reinterpret_cast(this_->object); + } + } + + template + T const* any_cast(any const* this_) { + return any_cast(const_cast(this_)); + } + + template + T const& any_cast(any const& this_){ + return *any_cast(const_cast(&this_)); + } +} + +#ifdef _MSC_VER +# pragma warning( pop ) +#endif + +#endif // GEM_ANY_HPP diff --git a/Gem/develop/include/Gem/plugins/PluginFactory.h b/Gem/develop/include/Gem/plugins/PluginFactory.h new file mode 100644 index 0000000..e3d7f0e --- /dev/null +++ b/Gem/develop/include/Gem/plugins/PluginFactory.h @@ -0,0 +1,106 @@ +#ifndef _INCLUDE__GEM_PLUGINS_PLUGINFACTORY_H_ +#define _INCLUDE__GEM_PLUGINS_PLUGINFACTORY_H_ + +#include "Gem/ExportDef.h" + + +#include +#include +#include + +#include +#include + +namespace gem { + + class GEM_EXTERN BasePluginFactory { + protected: + int doLoadPlugins(std::string basename, std::string path); + BasePluginFactory(void); + virtual ~BasePluginFactory(void); + + std::vectorget(void); + void*get(std::string); + void set(std::string, void*); + + private: + class Pimpl; + Pimpl*m_pimpl; + }; + + template + class GEM_EXPORT PluginFactory : public BasePluginFactory { + public: + + /** + * constructor function type (without arguments) + */ + typedef Class*(ctor_t)(void); + + /** + * register a a constructor associated with a given ID + */ + static void registerClass(std::string id, ctor_t*c); + /** + * get an instance of class constructed by the constructor associated with the given ID + */ + static Class*getInstance(std::string id); + + /** + * get a list of all IDs currently registered with this factory + */ + static std::vectorgetIDs(void); + + /** + * load more plugins + */ + static int loadPlugins(std::string basename, std::string path=std::string("")); + + private: + static PluginFactory*s_factory; + public: + static PluginFactory*getPluginFactory(void); + + private: + void doRegisterClass(std::string id, ctor_t*c); + Class*doGetInstance(std::string id); + std::vectordoGetIDs(void); + }; + + + namespace PluginFactoryRegistrar { + /** + * creates a new ChildClass and returns it as a (pointer to) an instance of BaseClass + */ + template + static BaseClass* allocator(void); + + /** + * registers a ChildClass with a certain ID in the BaseClass factory + * + * example: + * static gem::PluginFactoryRegistrar basefac_childreg("childID"); // register Child as 'childID' + * Base*instance=gem::PluginFactory::getInstance("childID"); // returns an instance of Child + */ + template + struct registrar { + registrar(std::string ID); + }; + + /** + * registers a dummy constructor with a default ID + */ + template + struct dummy { + dummy(void); + }; + }; + +/* include the actual implementation */ +#include "PluginFactoryTimple.h" + + +}; // namespace gem + + +#endif /* _INCLUDE__GEM_PLUGINS_PLUGINFACTORY_H_ */ diff --git a/Gem/develop/include/Gem/plugins/PluginFactoryTimple.h b/Gem/develop/include/Gem/plugins/PluginFactoryTimple.h new file mode 100644 index 0000000..700d0a2 --- /dev/null +++ b/Gem/develop/include/Gem/plugins/PluginFactoryTimple.h @@ -0,0 +1,157 @@ + +/*----------------------------------------------------------------- +LOG + GEM - Graphics Environment for Multimedia + + - template implementation for PluginFactory + + Copyright (c) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at + For information on usage and redistribution, and for a DISCLAIMER OF ALL + WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_PLUGINS_PLUGINFACTORY_H_ +# error you must not include PluginFactory Implementation directly! include PluginFactory.h instead +#endif + +#if 0 /* set to 1 to enable some debugging printout */ +# define GEM_PLUGFAC_DEBUG 1 +#else +# define GEM_PLUGFAC_DEBUG 0 +#endif + +/* on W32 (regardless of whether we use MinGW or M$VC) we must _not_ + * define the template-implementation in the plugins, if we want to + * use the same implementation in both host and plugin + * (if we do, the host and the plugin will see different factories!) + * + * on linux/gcc we have to provide the implementation + * (on osx/gcc as well, it seems) + */ +#if defined _WIN32 && !defined GEM_INTERNAL +# define OMIT_PLUGINFACTORY_TEMPLATE_IMPLEMENATION +#endif + +#ifndef OMIT_PLUGINFACTORY_TEMPLATE_IMPLEMENATION + +/* Implementation of templated PluginFactory */ +/* actually this should be done in a cpp file rather than a header-file, + * but since virtually no compiler can handle this it is done here... + */ + + +/* ********************************************************************* */ +/* Implementation of PluginFactory */ + +template + PluginFactory* PluginFactory::s_factory=NULL; + +template + PluginFactory* PluginFactory::getPluginFactory(void) { + if(NULL==s_factory) { + s_factory=new PluginFactory; + } +#if GEM_PLUGFAC_DEBUG + std::cerr << "factory @ " << (void*)s_factory << " --> " << typeid(s_factory).name() << std::endl; +#endif /* GEM_PLUGFAC_DEBUG */ + return s_factory; +} + +template + void PluginFactory::doRegisterClass(std::string id, ctor_t*c) { + set(id, (void*)c); +} + +template + Class*PluginFactory::doGetInstance(std::string id) { + ctor_t*ctor=(ctor_t*)get(id); + if(ctor) + return ctor(); + else + return NULL; +} + +template +void PluginFactory::registerClass(std::string id, ctor_t*c) { + PluginFactory*fac=getPluginFactory(); + if(NULL==fac) { + std::cerr << "unable to get a factory!" << std::endl; + } +#if GEM_PLUGFAC_DEBUG + std::cerr << "register " << typeid(Class).name() << " @ factory: " << (void*)fac << std::endl; +#endif /* GEM_PLUGFAC_DEBUG */ + fac->doRegisterClass(id, c); +} + +template +Class*PluginFactory::getInstance(std::string id) { + PluginFactory*fac=getPluginFactory(); +#if GEM_PLUGFAC_DEBUG + std::cerr << "getting " << typeid(Class).name() << " instance '" << id << "' from factory: " << (void*)fac << std::endl; +#endif /* GEM_PLUGFAC_DEBUG */ + if(NULL==fac) { + return NULL; + } + return(fac->doGetInstance(id)); +} + +template + int PluginFactory::loadPlugins(std::string basename, std::string path) { + PluginFactory*fac=getPluginFactory(); +#if GEM_PLUGFAC_DEBUG + std::cerr << "loading " << typeid(Class).name() << " plugins from factory: " << (void*)fac << std::endl; +#endif /* GEM_PLUGFAC_DEBUG */ + if(NULL==fac) { + return 0; + } + return fac->doLoadPlugins(basename, path); +} + +template + std::vectorPluginFactory::doGetIDs() { + return get(); +} + +template + std::vectorPluginFactory::getIDs() { + std::vectorresult; + PluginFactory*fac=getPluginFactory(); + if(fac) { + return fac->doGetIDs(); + } + return result; +} + +#endif /* !OMIT_PLUGINFACTORY_TEMPLATE_IMPLEMENATION */ + +/* ********************************************************************* */ +/* Implementation of PluginFactoryRegistrar */ + +namespace PluginFactoryRegistrar { + template + BaseClass* allocator() { + ChildClass* res0 = new ChildClass(); + BaseClass* res1 = dynamic_cast(res0); + if(NULL==res1) { + /* if ChildClass is derived from BaseClass and we successfully allocated an object, + * this code cannot never be reached; + * the compiler can check this during template expansion, be we don't */ + /* coverity[dead_error_line] FIXXME stackoverflow:23489764 */ + delete res0; + } + return res1; + } + + template + registrar :: registrar(std::string id) { + PluginFactory::registerClass(id, allocator); + } + template + dummy :: dummy() { + std::string id; // default ID + PluginFactory::registerClass(id, NULL); + } + +}; + diff --git a/Gem/develop/include/Gem/plugins/film.h b/Gem/develop/include/Gem/plugins/film.h new file mode 100644 index 0000000..679c753 --- /dev/null +++ b/Gem/develop/include/Gem/plugins/film.h @@ -0,0 +1,173 @@ +/* ----------------------------------------------------------------- + +GEM - Graphics Environment for Multimedia + +Load an digital video (like AVI, Mpeg, Quicktime) into a pix block +(OS independent parent-class) + +Copyright (c) 1997-1999 Mark Danks. mark@danks.org +Copyright (c) Günther Geiger. geiger@epy.co.at +Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_PLUGINS_FILM_H_ +#define _INCLUDE__GEM_PLUGINS_FILM_H_ + +#include "Gem/ExportDef.h" +#include "Gem/GemGL.h" +#include + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + film + + parent class for the system- and library-dependent film-loader classes + + KEYWORDS + pix film movie + + DESCRIPTION + + -----------------------------------------------------------------*/ + +struct pixBlock; +namespace gem { + class Properties; +} +namespace gem { namespace plugins { +class GEM_EXTERN film +{ + public: + + ////////// + // returns an instance wrapping all plugins or NULL + // if NULL is returned, you might still try your luck with manually accessing the + // PluginFactory + static film*getInstance(void); + + ///////// + // dtor must be virtual + virtual ~film(void); + + ////////// + // open a movie up + /* open the film "filename" (think better about URIs ?) + * + * try to open the film with the requested properties + * + * about properties: + * requestprops: are properties that can change the behaviour of how the + * film is opened; examples are "colorspace" (e.g. GL_RGBA) or + * "streaming" (rather than random frame access) + * the backend need not implement any of the properties + * + * resultprops: give feedback about the opened film + * if the film could not be opened, the content is undefined + * if the film was successfully opened, following properties should be set + * if a property can not be determined (e.g. variable fps), it should be set unset + * + * + * discussion: should the colourspace be only a hint or should we force it + * (evt. by converting the actual cs by hand to the desired one) + * more discussion: i guess the cs should really be forced somehow by [pix_film] + * now i don't know, whether the cs-conversion should be done by [pix_film] itself or + * rather by the film*-classes. + * but i guess film* makes more sense, because then, [pix_film] doesn't have to know + * anything about the internal cs of the decoder + */ + /* returns TRUE if loading was successful, FALSE otherwise */ + virtual bool open(const std::string, + const gem::Properties&requestprops) = 0; + + /* some error codes */ + enum errCode { SUCCESS = 0, + FAILURE = 1, + DONTKNOW= 2 }; + + ////////// + // Change which image to display + /* this is the second core function of this class: + * most decoding-libraries can set the frame-number on a random-access basis. + * some cannot, then this might do nothing + * you could also switch between various tracks of a file (if the format supports it) + * specifying trackNum as -1 means "same track as before" + */ + virtual errCode changeImage(int imgNum, int trackNum=-1) = 0; + + ////////// + // get the next frame + /* this is the core-function of this class !!!! + * when called it returns the current frame in the *pixBlock structure + * dev: you can use "m_image" for this (and "return &m_image;") + * if the image cannot be read, returns 0 + * dev: you probably want to set the whole meta-information + * (xsize,ysize,csize,format) over again + * if you are smart and the colour-space is fine, just point + * if this is a "new" frame (e.g. freshly decoded), + * pixblock.newimage should be set to 1 + */ + virtual pixBlock* getFrame(void) = 0; + + ////////// + // close the movie file + /* close the file and clean up temporary things */ + virtual void close(void) = 0; + + + //////// + // returns true if instance can be used in thread + virtual bool isThreadable(void) = 0; + + /** + * list all properties the currently opened film supports + * if no film is opened, this returns generic backend properties + * which can be different from media specific properties + * after calling, "readable" will hold a list of all properties that can be read + * and "writeable" will hold a list of all properties that can be set + * if the enumeration fails, this returns false + */ + + virtual bool enumProperties(gem::Properties&readable, + gem::Properties&writeable) = 0; + + /** + * set a number of properties (as defined by "props") + * the "props" may hold properties not supported by the currently opened media, + * which is legal; in this case the superfluous properties are simply ignored + * this function MAY modify the props; + * namely one-shot properties should be removed from the props + * + * examples: "colorspace" GL_RGBA + * "auto" 1 + */ + virtual void setProperties(gem::Properties&props) = 0; + + /** + * get the current value of the given properties from the media + * if props holds properties that can not be read for the media, they are set to UNSET + * + * "width" (width of each frame in pixels) + * "height" (height of each frame in pixels) + * "fps" (frames per second) + * "frames" (framecount) + */ + virtual void getProperties(gem::Properties&props) = 0; +}; + +};}; // namespace gem::plugins + + +/** + * \fn REGISTER_FILMFACTORY(const char *id, Class filmClass) + * registers a new class "filmClass" with the film-factory + * + * \param id a symbolic (const char*) ID for the given class + * \param filmClass a class derived from "film" + */ +#define REGISTER_FILMFACTORY(id, TYP) static gem::PluginFactoryRegistrar::registrar fac_film_ ## TYP (id) + +#endif // for header file diff --git a/Gem/develop/include/Gem/plugins/imageloader.h b/Gem/develop/include/Gem/plugins/imageloader.h new file mode 100644 index 0000000..9fe904d --- /dev/null +++ b/Gem/develop/include/Gem/plugins/imageloader.h @@ -0,0 +1,75 @@ +/* ----------------------------------------------------------------- + +GEM - Graphics Environment for Multimedia + +Load an image and return the frame(OS independent interface) + +Copyright (c) 2011-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_PLUGINS_IMAGELOADER_H_ +#define _INCLUDE__GEM_PLUGINS_IMAGELOADER_H_ + +#include "Gem/Image.h" +#include "Gem/Properties.h" + +#include + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + imageloader + + interface for the system- and library-dependent imageloader classes + + KEYWORDS + pix load an image + + DESCRIPTION + + -----------------------------------------------------------------*/ +namespace gem { namespace plugins { + class GEM_EXTERN imageloader + { + public: + + ////////// + // returns an instance wrapping all plugins or NULL + // if NULL is returned, you might still try your luck with manually accessing the + // PluginFactory + static imageloader*getInstance(void); + + //////// + // dtor must be virtual + virtual ~imageloader(void); + + /* read a image + * + * props can be filled by the loader with additional information on the image + * e.g. EXIF tags,... + */ + /* returns TRUE if loading was successful, FALSE otherwise */ + virtual bool load(std::string filename, + imageStruct&result, + gem::Properties&props) = 0; + + /* returns TRUE if this object can be used from within a thread */ + virtual bool isThreadable(void) = 0; + }; + + };}; // namespace gem + + +/** + * \fn REGISTER_IMAGELOADERFACTORY(const char *id, Class imageloaderClass) + * registers a new class "imageloaderClass" with the imageloader-factory + * + * \param id a symbolic (const char*) ID for the given class + * \param imageloaderClass a class derived from "imageloader" + */ +#define REGISTER_IMAGELOADERFACTORY(id, TYP) static gem::PluginFactoryRegistrar::registrar fac_imageloader_ ## TYP (id) + +#endif // for header file diff --git a/Gem/develop/include/Gem/plugins/imagesaver.h b/Gem/develop/include/Gem/plugins/imagesaver.h new file mode 100644 index 0000000..4ba2515 --- /dev/null +++ b/Gem/develop/include/Gem/plugins/imagesaver.h @@ -0,0 +1,126 @@ +/* ----------------------------------------------------------------- + +GEM - Graphics Environment for Multimedia + +Load an image and return the frame(OS independent interface) + +Copyright (c) 2011-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_PLUGINS_IMAGESAVER_H_ +#define _INCLUDE__GEM_PLUGINS_IMAGESAVER_H_ + +#include "Gem/Image.h" +#include "Gem/Properties.h" + +#include + + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + imagesaver + + interface for the system- and library-dependent imagesaver classes + + KEYWORDS + save a pix to disk + + DESCRIPTION + + -----------------------------------------------------------------*/ +namespace gem { namespace plugins { + class GEM_EXTERN imagesaver + { + public: + + ////////// + // returns an instance wrapping all plugins or NULL + // if NULL is returned, you might still try your luck with manually accessing the + // PluginFactory + static imagesaver*getInstance(void); + + //////// + // dtor must be virtual + virtual ~imagesaver(void); + + /* save the image 'img' under the filename 'filename', respecting as many 'props' as possible + * + * returns TRUE if saving was successful, FALSE otherwise */ + virtual bool save(const imageStruct&img, const std::string&filename, const std::string&mimetype, const gem::Properties&props) = 0; + + /* estimate how 'well' we could save the 'img' + * this is used to rate the different backends for a given image + * + * e.g. if the user requests saving of an image as , virtually all backends will have a way to to as requested + * however, if filename was "bla.jpg", a TIFF-backend might save as a TIFF-image with a .jpg extension, + * which is probably not what the user expected (esp. if there _is_ a JPEG-backend, which for whatever reasons + * would only have been called after the TIFF-backend) + * + * the solution is quite simple: each backend is first asked, how well it could save a given image according to properties + * the backend that returns the highest value, will be chosen first; if it fails to save the image + * (returning FALSE in the save() function), the backend with the next higher rating will be chosen and so on + * + * + * mimetype and properties are the main factors for rating; + * 'mimetype' (string): mimetype of the image; e.g. 'image/jpeg' means 'write the image as JPEG' + * if not empty, the mimetype will override all other ways to set the output format (like filename) + * even though we only expect mimetypes of type 'image/*', the prefix ('image/') is mandatory + * a predefined properties (for legacy reasons) is: + * 'quality' (float) : for lossy formats, this is the quality (in percent) + * + * expected return values: + * <=0: 'USE ME IF YOU MUST (but rather not)' + * 0 is returned, if the backend expects to be able to save the given image under the given + * filename to disk, but it will ignore all properties (including the mimetype!) and will + * ignore all file extensions + * it is hoped that '0' is never the winner (for any feasible format) + * example: saves a TIFF-image as /tmp/foo.doc + * 100: 'YES' + * 100 is returned, if the plugin knows how to handle the given 'mimetype' property + * if 'mimetype' is empty and the plugin has performed an heuristic based on the filename + * to determine that the user wants a format that is provided by this very plugin, it can return 100 as well. + * however, if 'mimetype' and file extension contradict each other, 'mimetype' wins! + * 100+: 'YES, ABSOLUTELY' + * every additional property that can be applied, gains an extra point + * example: both the JPG and the JPEG2K backend provide saving of jpegs, but only JPG can set the quality + * the user requests: filename=img.jpg,mimetype='image/jpeg',quality=20 + * JPG returns 101, whereas JPEG2K returns 100, so JPG wins and writes + * 0..50: the backend knows how to handle some of the properties (but it has no clue about the output format requested + * example: filename=img.tif,mimetype='image/tiff',quality=20 + * JPG knows how to handle the 'quality' property, but not the 'mimetype', so it scores 1 point + * TIFF knows how to handle the 'mimetype' but not the 'quality', so it scores 100 points + */ + virtual float estimateSave( const imageStruct&img, const std::string&filename, const std::string&mimetype, const gem::Properties&props) = 0; + + /** + * get writing capabilities of this backend (informative) + * + * list all (known) mimetypes and properties this backend supports for writing + * both can be empty, if they are not known when requested + * if only some properties/mimetypes are explicitly known (but it is likely that more are supported), + * it is generally better, to list the few rather than nothing + */ + virtual void getWriteCapabilities(std::vector&mimetypes, gem::Properties&props) = 0; + + /* returns TRUE, if it is save to use this backend from multple threads + */ + virtual bool isThreadable(void) = 0; + }; + + }; }; // namespace gem + + +/** + * \fn REGISTER_IMAGESAVERFACTORY(const char *id, Class imagesaverClass) + * registers a new class "imagesaverClass" with the imagesaver-factory + * + * \param id a symbolic (const char*) ID for the given class + * \param imagesaverClass a class derived from "imagesaver" + */ +#define REGISTER_IMAGESAVERFACTORY(id, TYP) static gem::PluginFactoryRegistrar::registrar fac_imagesaver_ ## TYP (id) + +#endif // for header file diff --git a/Gem/develop/include/Gem/plugins/record.h b/Gem/develop/include/Gem/plugins/record.h new file mode 100644 index 0000000..b2aa254 --- /dev/null +++ b/Gem/develop/include/Gem/plugins/record.h @@ -0,0 +1,108 @@ +/* ----------------------------------------------------------------- + +GEM - Graphics Environment for Multimedia + +Load an digital video (like AVI, Mpeg, Quicktime) into a pix block +(OS independent interface) + +Copyright (c) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_PLUGINS_RECORD_H_ +#define _INCLUDE__GEM_PLUGINS_RECORD_H_ + +#include "Gem/Image.h" +#include "Gem/Properties.h" +#include + + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + record + + parent class for the system- and library-dependent record-loader classes + + KEYWORDS + pix record movie + + DESCRIPTION + + -----------------------------------------------------------------*/ +namespace gem { namespace plugins { + class GEM_EXTERN record +{ +public: + + ////////// + // returns an instance wrapping all plugins or NULL + // if NULL is returned, you might still try your luck with manually accessing the + // PluginFactory + static record*getInstance(void); + + ///////// + // dtor must be virtual + virtual ~record(void); + + /** + * get a list of supported codecs (short-form names, e.g. "mjpa") + */ + virtual std::vectorgetCodecs(void) = 0; + /** + * get a human readable description of the given codec (e.g. "Motion Jpeg A") + */ + virtual const std::string getCodecDescription(const std::string codecname) = 0; + /** + * set the current codec + */ + virtual bool setCodec(const std::string name) = 0; + + /** + * list all properties the currently selected codec supports + * if the enumeration fails, this returns false + */ + virtual bool enumProperties(gem::Properties&props) = 0; + + ////////// + // popup a dialog to set the codec interactively (interesting on os-x and w32) + // just return FALSE if you don't support dialogs + virtual bool dialog(void) = 0; + + ////////// + // start recording + /* + * returns TRUE if opening was successful, FALSE otherwise + */ + virtual bool start(const std::string filename, gem::Properties&props) = 0; + + ////////// + // record a frame + virtual bool write(imageStruct*) = 0; + + ////////// + // stop recording + virtual void stop (void) = 0; + + }; +}; }; + + + +/* + * factory code: + * to use these macros, you have to include "plugins/PluginFactory.h" + */ + +/** + * \fn REGISTER_RECORDFACTORY(const char *id, Class recordClass) + * registers a new class "recordClass" with the record-factory + * + * \param id a symbolic (const char*) ID for the given class + * \param recordClass a class derived from "record" + */ +#define REGISTER_RECORDFACTORY(id, TYP) static gem::PluginFactoryRegistrar::registrar fac_record_ ## TYP (id) + +#endif // for header file diff --git a/Gem/develop/include/Gem/plugins/video.h b/Gem/develop/include/Gem/plugins/video.h new file mode 100644 index 0000000..7be968d --- /dev/null +++ b/Gem/develop/include/Gem/plugins/video.h @@ -0,0 +1,221 @@ +/*----------------------------------------------------------------- + +GEM - Graphics Environment for Multimedia + +Base Class for Video Capture Plugins + +Copyright (c) 2010-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_PLUGINS_VIDEO_H_ +#define _INCLUDE__GEM_PLUGINS_VIDEO_H_ + +#include "Gem/Properties.h" +#include +#include + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + video + + a OS-indendent interface for grabbing video-frames + + KEYWORDS + pix, capture + + -----------------------------------------------------------------*/ +struct pixBlock; +namespace gem { namespace plugins { + class GEM_EXTERN video { + public: + + ////////// + // returns an instance wrapping all plugins or NULL + // if NULL is returned, you might still try your luck with manually accessing the + // PluginFactory + static video*getInstance(void); + + //////// + // dtor must be virtual + virtual ~video(void); + + ////////////////////// + // device settings + + /** + * enumerate known devices + * \return a list of device names (if they can be enumerated) + */ + virtual std::vectorenumerate(void) = 0; + + /** + * set the device to be opened next time + * the ID provided should match an index in the list returned by enumerate() + * after the device has been set, the caller(!) has to restart + * (close() the current handle, try open() with the new settings) + * the default implementation (which you normally shouldn't need to override) + * will simply set m_devicenum and clear m_devicename + */ + virtual bool setDevice(int ID) = 0; + + /** + * set the device to be opened next time + * the list returned by enumerate() provides a set of valid names to use here + * depending on the backend, other names might be possible as well (e.g. IP-cameras) + * after the device has been set, the caller(!) has to restart + * (close() the current handle, try open() with the new settings) + * the default implementation (which you normally shouldn't need to override) + * will simply set m_devicename and clear m_devicenum + */ + virtual bool setDevice(const std::string) = 0; + + + //! open the device (calls openDevice()) + virtual bool open(gem::Properties&props) = 0; + //! start the transmission (calls startTransfer()) + virtual bool start(void) = 0; + + /** + * get the next frame (called when rendering) + * grab the next frame from the device + * if no new frame is available, this should set the "newimage" flag to false + * \return the new frame or NULL on error + */ + virtual pixBlock *getFrame(void) = 0; + + /** + * release a frame (after use) + * this gets called once for each frame retrieved via getFrame() + * if you are using DMA or the like, now is the time to release the resource + */ + virtual void releaseFrame(void) = 0; + + + //! stop the transmission (calls stopTransfer()) + virtual bool stop(void) = 0; + //! close the device (calls closeDevice()) + virtual void close(void) = 0; + + /** + * reset the backend, possibly re-enumerating devices + * returns TRUE if reset was successful + */ + virtual bool reset(void) = 0; + + + /** + * list all properties the currently opened device supports + * after calling, "readable" will hold a list of all properties that can be read + * and "writeable" will hold a list of all properties that can be set + * if the enumeration fails, this returns false + * + * the backend has to provide the names for the properties + * these are defined by default, and need not be enumerated! + * "width" "dimen" message (float) + * "height" "dimen" message (float) + * "leftmargin" ("dimen" message) (float) + * "rightmargin" ("dimen" message) (float) + * "toptmargin" ("dimen" message) (float) + * "bottommargin" ("dimen" message) (float) + * "channel" "channel" message (float) + * "frequency" "channel" message (float) + * "norm" "norm" message (string) + * "quality" "quality" message (float) + */ + virtual bool enumProperties(gem::Properties&readable, + gem::Properties&writeable) = 0; + + /** + * set a number of properties (as defined by "props") + * the "props" may hold properties not supported by the currently opened device, + * which is legal; in this case the superfluous properties are simply ignored + * this function MAY modify the props; + * namely one-shot properties (e.g. "do-white-balance-now") + * should be removed from the props + */ + virtual void setProperties(gem::Properties&props) = 0; + + /** + * get the current value of the given properties from the device + * if props holds properties that can not be read from the device, they are set to UNSET + */ + virtual void getProperties(gem::Properties&props) = 0; + + + /** + * call a system-specific configuration dialog + * if your system provides a GUI for configuring the device, here is the time to open it + * of several dialogs are available (for different properties), the user can specify which one + * they want with the string list + * if the list is empty, provide sane defaults (e.g. ALL dialogs) + * if the system does not support dialogs, return FALSE + * if the system does support dialogs and the user has specified which one they want, + * return TRUE if at least one dialog could be handled + */ + virtual bool dialog(std::vectornames=std::vector()) = 0; + /** + * enumerate list of possible dialogs (if any) + */ + virtual std::vectordialogs(void) = 0; + + + + + + /** + * returns TRUE if the object can be used in a thread or FALSE otherwise + * if a backend implements threading itself, it should return FALSE + * in order to prevent double threading + */ + virtual bool isThreadable(void) = 0; + + + /** turn on/off "asynchronous"-grabbing + * default is "true" + * "asynchronous" means, that the device is constantly grabbing, and grabFrame() returns the current frame + * non-"continuous" means, that the device will only issue a new grab when a frame has read + * (thus potentially reducing the CPU-load to what is needed, at the cost of slightly outdated images + * returns: the old state + */ + virtual bool grabAsynchronous(bool) = 0; + + /** + * Set the preferred colorspace (of the frames returned by getFrame() + * \return FALSE if the colorspace cannot be set (e.g. while grabbing is active) + */ + virtual bool setColor(int) = 0; + + + // meta information about the plugin + + // for pix_video: query whether this backend provides access to this class of devices + // (e.g. "dv") + virtual bool provides(const std::string) = 0; + // get a list of all provided devices + virtual std::vectorprovides(void) = 0; + + // get's the name of the backend (e.g. "v4l") + virtual const std::string getName(void) = 0; + }; + };}; // namespace + +/* + * factory code: + * to use these macros, you have to include "plugins/PluginFactory.h" + */ + + +/** + * \fn REGISTER_VIDEOFACTORY(const char *id, Class videoClass) + * registers a new class "videoClass" with the video-factory + * + * \param id a symbolic (const char*) ID for the given class + * \param videoClass a class derived from "video" + */ +#define REGISTER_VIDEOFACTORY(id, TYP) static gem::PluginFactoryRegistrar::registrar fac_video_ ## TYP (id) + +#endif // for header file diff --git a/Gem/develop/pkgconfig/Gem.pc b/Gem/develop/pkgconfig/Gem.pc new file mode 100644 index 0000000..5b88216 --- /dev/null +++ b/Gem/develop/pkgconfig/Gem.pc @@ -0,0 +1,14 @@ +# Gem pkg-config file + +prefix=/usr/local +exec_prefix=${prefix} +libdir=${exec_prefix}/lib/pd/extra +includedir=${prefix}/include + +############################### +# core configuration +Name: Gem +Description: Gem plugins and externals +Version: 0.93 +Cflags: -I${includedir}/Gem +Libs: -L${libdir}/Gem diff --git a/Gem/diffuse-help.pd b/Gem/diffuse-help.pd new file mode 100644 index 0000000..a9c9d69 --- /dev/null +++ b/Gem/diffuse-help.pd @@ -0,0 +1,68 @@ +#N canvas 61 22 630 385 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 180 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 34 198 Inlets:; +#X text 58 211 Inlet 1: gemlist; +#X text 34 252 Outlets:; +#X text 52 265 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 514 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 293 pd gemwin; +#X msg 519 274 create; +#X text 515 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X obj 451 193 cube; +#X obj 500 192 gemhead; +#X obj 500 230 world_light; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X msg 478 130 0.4 0.8 1; +#X text 58 229 Inlet 2: list: 3(RGB) or 4(RGBA) float values; +#X text 50 12 Synopsis: [diffuse]; +#X text 29 77 Description: diffuse colouring; +#X text 61 170 defaults: 0.8 0.8 0.8 1; +#X text 22 91 [diffuse] accepts a gemList and sets the diffuse-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X floatatom 561 190 5 0 0 0 - - -; +#X obj 500 211 rotate 66 1 0 0; +#X obj 451 156 diffuse 0 1 0; +#X obj 451 355 diffuseRGB; +#X text 448 332 see also:; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 30 0; +#X connect 19 0 29 0; +#X connect 22 0 30 1; +#X connect 28 0 29 1; +#X connect 29 0 20 0; +#X connect 30 0 18 0; diff --git a/Gem/diffuseRGB-help.pd b/Gem/diffuseRGB-help.pd new file mode 100644 index 0000000..9bad398 --- /dev/null +++ b/Gem/diffuseRGB-help.pd @@ -0,0 +1,75 @@ +#N canvas 61 22 632 388 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 180 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 292 Outlets:; +#X text 57 305 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 514 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 293 pd gemwin; +#X msg 519 274 create; +#X text 515 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X obj 451 193 cube; +#X obj 500 192 gemhead; +#X obj 500 230 world_light; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 63 229 Inlet 2: float: red value; +#X text 63 244 Inlet 3: float: green value; +#X text 63 259 Inlet 4: float: blue value; +#X text 63 274 Inlet 5: float: alpha value; +#X floatatom 477 122 3 0 1 0 - - -; +#X floatatom 504 122 3 0 1 0 - - -; +#X floatatom 531 122 3 0 1 0 - - -; +#X floatatom 558 122 3 0 1 0 - - -; +#X text 50 12 Synopsis: [diffuseRGB]; +#X text 29 77 Description: diffuse colouring; +#X text 22 91 [diffuseRGB] accepts a gemList and sets the diffuse-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X obj 451 156 diffuseRGB 0 1 0; +#X text 60 171 defaults: 0.8 0.8 0.8 1; +#X obj 500 211 rotate 63 1 0 0; +#X text 447 331 see also:; +#X obj 449 353 diffuse; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 33 0; +#X connect 19 0 35 0; +#X connect 26 0 33 1; +#X connect 27 0 33 2; +#X connect 28 0 33 3; +#X connect 29 0 33 4; +#X connect 33 0 18 0; +#X connect 35 0 20 0; diff --git a/Gem/disk-help.pd b/Gem/disk-help.pd new file mode 100644 index 0000000..c5f94d7 --- /dev/null +++ b/Gem/disk-help.pd @@ -0,0 +1,72 @@ +#N canvas 291 154 710 345 10; +#X text 54 30 Class: geometric object; +#X obj 479 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 544 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 549 263 pd gemwin; +#X msg 549 244 create; +#X text 545 223 Create window:; +#X text 485 29 Example:; +#X obj 7 65 cnv 15 450 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 120 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 166 cnv 15 450 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 165 Arguments:; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 307 Outlets:; +#X text 21 320 Outlet 1: gemlist; +#X obj 481 81 cnv 15 160 140 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 485 95 draw line; +#X msg 485 116 draw fill; +#X msg 485 138 draw point; +#X obj 553 54 gemhead; +#X floatatom 564 102 5 0 0 1 R - -; +#X floatatom 576 122 3 0 0 1 segments - -; +#X floatatom 589 147 5 0 0 1 r - -; +#X text 27 261 Inlet 2: float: size (= outer radius); +#X text 33 14 Synopsis: [disk]; +#X text 7 69 Description: Renders a disk.; +#X text 14 86 The disk object renders a flat disk with a hole in the +middle at the current position with current color. The look of the +disk can be changed with the draw message \, its size can be changed +via the second inlet \, the size of the hole via the third inlet.; +#X text 26 286 Inlet 4: float: inner radius (default: 0); +#X obj 553 199 disk 1; +#X text 27 273 Inlet 3: int: number of segments (default: 10); +#X text 28 177 disk size(=outer radius) \, segments \, hole size(=inner +radius); +#X text 29 191 defaults: 1 \, 10 \, 0; +#X text 27 247 Inlet 1: message: draw [line|fill|point|default]; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 17 0 29 0; +#X connect 18 0 29 0; +#X connect 19 0 29 0; +#X connect 20 0 29 0; +#X connect 21 0 29 1; +#X connect 22 0 29 2; +#X connect 23 0 29 3; diff --git a/Gem/emission-help.pd b/Gem/emission-help.pd new file mode 100644 index 0000000..dae2398 --- /dev/null +++ b/Gem/emission-help.pd @@ -0,0 +1,66 @@ +#N canvas 61 22 639 342 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 252 Outlets:; +#X text 57 265 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 200 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 510 209 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X msg 277 206 lighting \$1; +#X obj 313 182 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 8 0; +#X restore 515 248 pd gemwin; +#X msg 515 229 create; +#X text 511 208 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X obj 451 193 cube; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X msg 478 130 0.4 0.8 1; +#X text 63 229 Inlet 2: list: 3(RGB) or 4(RGBA) float values; +#X text 60 171 defaults: 0 0 0 1; +#X text 50 12 Synopsis: [emission]; +#X obj 451 156 emission 0 1 0; +#X text 29 77 Description: emission colouring; +#X text 21 91 [emission] accepts a gemList and sets the emission-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X text 448 285 see also:; +#X obj 450 308 emissionRGB; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 24 0; +#X connect 20 0 24 1; +#X connect 24 0 18 0; diff --git a/Gem/emissionRGB-help.pd b/Gem/emissionRGB-help.pd new file mode 100644 index 0000000..b2137af --- /dev/null +++ b/Gem/emissionRGB-help.pd @@ -0,0 +1,70 @@ +#N canvas 61 22 639 342 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 292 Outlets:; +#X text 57 305 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 200 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 509 208 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 514 247 pd gemwin; +#X msg 514 228 create; +#X text 510 207 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X obj 451 193 cube; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 63 229 Inlet 2: float: red value; +#X text 63 244 Inlet 3: float: green value; +#X text 63 259 Inlet 4: float: blue value; +#X text 63 274 Inlet 5: float: alpha value; +#X floatatom 479 122 3 0 1 0 - - -; +#X floatatom 508 122 3 0 1 0 - - -; +#X floatatom 536 122 3 0 1 0 - - -; +#X floatatom 565 122 3 0 1 0 - - -; +#X obj 451 156 emissionRGB 0 1 0; +#X text 60 171 defaults: 0 0 0 1; +#X text 29 77 Description: emission colouring; +#X text 50 12 Synopsis: [emissionRGB]; +#X text 22 91 [emissionRGB] accepts a gemList and sets the emission-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X text 449 284 see also:; +#X obj 451 307 emission; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 28 0; +#X connect 24 0 28 1; +#X connect 25 0 28 2; +#X connect 26 0 28 3; +#X connect 27 0 28 4; +#X connect 28 0 18 0; diff --git a/Gem/examples/01.basic/01.redSquare.pd b/Gem/examples/01.basic/01.redSquare.pd new file mode 100644 index 0000000..c64e4a2 --- /dev/null +++ b/Gem/examples/01.basic/01.redSquare.pd @@ -0,0 +1,63 @@ +#N canvas 139 83 602 502 10; +#X obj 240 186 gemhead; +#X floatatom 348 258 0 0 0 0 - - -; +#X obj 240 246 color; +#X msg 342 191 1 1 1; +#X msg 342 156 1 0 0; +#X obj 240 339 square; +#X text 109 26 this demonstrates how to create a red square; +#X text 328 119 change the color; +#X text 341 226 rotate the square; +#X msg 343 302 draw line; +#X msg 343 322 draw fill; +#X msg 346 375 width 1; +#X msg 347 395 width 10; +#X obj 240 297 rotate; +#X obj 20 59 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 65 t b b; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 103 pd gemwin; +#X msg 25 79 create; +#X text 21 59 Create window and render; +#X text 386 157 red; +#X text 389 192 white; +#X text 379 260 (in degree); +#X connect 0 0 2 0; +#X connect 1 0 13 1; +#X connect 2 0 13 0; +#X connect 3 0 2 1; +#X connect 4 0 2 1; +#X connect 9 0 5 0; +#X connect 10 0 5 0; +#X connect 11 0 5 0; +#X connect 12 0 5 0; +#X connect 13 0 5 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; diff --git a/Gem/examples/01.basic/02.blueRectangle.pd b/Gem/examples/01.basic/02.blueRectangle.pd new file mode 100644 index 0000000..5d522bc --- /dev/null +++ b/Gem/examples/01.basic/02.blueRectangle.pd @@ -0,0 +1,65 @@ +#N canvas 396 160 600 500 10; +#X obj 350 159 gemhead; +#X obj 350 337 rotate; +#X floatatom 409 275 0 0 0 0 - - -; +#X msg 452 144 1 1 1; +#X text 438 92 change the color; +#X msg 237 313 draw line; +#X msg 237 346 draw fill; +#X text 111 28 this demonstrates how to create a blue rectangle; +#X obj 350 379 rectangle 2 1; +#X text 382 260 rotate the rectangle; +#X msg 452 169 0 0 1; +#X floatatom 427 336 0 0 0 0 - - -; +#X floatatom 482 337 0 0 0 0 - - -; +#X text 419 314 width; +#X text 477 313 height; +#X obj 20 59 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 65 t b b; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 103 pd gemwin; +#X msg 25 79 create; +#X text 21 59 Create window and render; +#X text 504 170 blue; +#X text 495 146 white; +#X obj 350 219 color 0 0 1; +#X text 422 221 (blue); +#X connect 0 0 21 0; +#X connect 1 0 8 0; +#X connect 2 0 1 1; +#X connect 3 0 21 1; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 10 0 21 1; +#X connect 11 0 8 1; +#X connect 12 0 8 2; +#X connect 16 0 17 0; +#X connect 17 0 16 0; +#X connect 21 0 1 0; diff --git a/Gem/examples/01.basic/03.disk.pd b/Gem/examples/01.basic/03.disk.pd new file mode 100644 index 0000000..e65fbf8 --- /dev/null +++ b/Gem/examples/01.basic/03.disk.pd @@ -0,0 +1,59 @@ +#N canvas 28 208 601 392 10; +#X obj 274 138 gemhead; +#X floatatom 350 169 0 0 0 0 - - -; +#X obj 22 325 world_light; +#X obj 22 283 gemhead 1; +#X text 369 251 change the number of slices; +#X msg 421 269 15; +#X obj 274 207 rotateXYZ 26 26 0; +#X floatatom 299 277 0 1 4 2 size - -; +#X floatatom 400 330 0 0 0.9 2 inner_radius - -; +#X obj 274 356 disk 2 5 1; +#X msg 384 269 10; +#X obj 30 59 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 65 t b b; +#X msg 59 94 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 35 103 pd gemwin; +#X msg 35 79 create; +#X text 31 59 Create window and render; +#X connect 0 0 6 0; +#X connect 1 0 6 1; +#X connect 1 0 6 2; +#X connect 3 0 2 0; +#X connect 5 0 9 2; +#X connect 6 0 9 0; +#X connect 7 0 9 1; +#X connect 8 0 9 3; +#X connect 10 0 9 2; +#X connect 12 0 13 0; +#X connect 13 0 12 0; diff --git a/Gem/examples/01.basic/04.PrimTri.pd b/Gem/examples/01.basic/04.PrimTri.pd new file mode 100644 index 0000000..98de642 --- /dev/null +++ b/Gem/examples/01.basic/04.PrimTri.pd @@ -0,0 +1,65 @@ +#N canvas 173 -28 667 537 12; +#X obj 306 137 gemhead; +#X obj 306 248 rotate; +#X floatatom 372 194 0 0 0 0 - - -; +#X msg 124 207 draw line; +#X msg 142 240 draw fill; +#X obj 306 431 primTri; +#X text 48 23 this demonstrates how to create a triangle primitive +; +#X text 337 172 rotate the triangle; +#X msg 561 306 1 0 0; +#X msg 561 342 0 1 0; +#X msg 561 378 0 0 1; +#X text 555 270 colors; +#X text 420 264 vertices; +#X msg 423 286 1 1 0; +#X msg 422 357 -1 1 0; +#X msg 423 322 1 -2 0; +#X text 192 52 the colors can be RGB or RGBA; +#X obj 30 109 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 35 153 pd gemwin; +#X msg 35 129 create; +#X text 31 109 Create window and render; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 2 0 1 1; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 8 0 5 4; +#X connect 9 0 5 5; +#X connect 10 0 5 6; +#X connect 13 0 5 1; +#X connect 14 0 5 3; +#X connect 15 0 5 2; +#X connect 18 0 19 0; +#X connect 19 0 18 0; diff --git a/Gem/examples/01.basic/05.cube.pd b/Gem/examples/01.basic/05.cube.pd new file mode 100644 index 0000000..dd5d72e --- /dev/null +++ b/Gem/examples/01.basic/05.cube.pd @@ -0,0 +1,44 @@ +#N canvas 361 165 602 280 10; +#X obj 372 91 gemhead; +#X floatatom 416 122 0 -4.5 4.5 0 - - -; +#X obj 372 197 cube; +#X obj 372 159 translateXYZ; +#X obj 30 109 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 35 153 pd gemwin; +#X msg 35 129 create; +#X text 31 109 Create window and render; +#X connect 0 0 3 0; +#X connect 1 0 3 1; +#X connect 1 0 3 2; +#X connect 3 0 2 0; +#X connect 5 0 6 0; +#X connect 6 0 5 0; diff --git a/Gem/examples/01.basic/06.sphere.pd b/Gem/examples/01.basic/06.sphere.pd new file mode 100644 index 0000000..9117bf7 --- /dev/null +++ b/Gem/examples/01.basic/06.sphere.pd @@ -0,0 +1,55 @@ +#N canvas 393 222 603 394 10; +#X obj 275 174 gemhead; +#X floatatom 319 205 0 0 0 0 - - -; +#X obj 275 317 sphere; +#X obj 22 325 world_light; +#X obj 22 283 gemhead 1; +#X text 377 279 change the number of slices; +#X obj 275 242 rotateXYZ; +#X msg 340 280 15; +#X msg 303 280 5; +#X obj 31 53 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X msg 51 75 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 36 97 pd gemwin; +#X msg 36 73 create; +#X text 32 53 Create window and render; +#X connect 0 0 6 0; +#X connect 1 0 6 1; +#X connect 1 0 6 2; +#X connect 4 0 3 0; +#X connect 6 0 2 0; +#X connect 7 0 2 2; +#X connect 8 0 2 2; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/01.basic/07.cylinder.pd b/Gem/examples/01.basic/07.cylinder.pd new file mode 100644 index 0000000..fcc9bfe --- /dev/null +++ b/Gem/examples/01.basic/07.cylinder.pd @@ -0,0 +1,62 @@ +#N canvas 393 222 603 394 10; +#X obj 274 138 gemhead; +#X floatatom 318 169 0 0 0 0 - - -; +#X obj 22 325 world_light; +#X obj 22 283 gemhead 1; +#X text 369 251 change the number of slices; +#X msg 421 269 15; +#X msg 384 269 5; +#X obj 274 356 cylinder; +#X obj 274 207 rotateXYZ 26 26 0; +#X floatatom 299 303 0 0 0 2 size - -; +#X obj 31 53 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X msg 51 75 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 36 97 pd gemwin; +#X msg 36 73 create; +#X text 32 53 Create window and render; +#X obj 94 325 world_light; +#X obj 94 283 gemhead 1; +#X obj 94 302 rotateXYZ 12 54 20; +#X connect 0 0 8 0; +#X connect 1 0 8 1; +#X connect 1 0 8 2; +#X connect 3 0 2 0; +#X connect 5 0 7 2; +#X connect 6 0 7 2; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 15 0 16 0; +#X connect 16 0 14 0; diff --git a/Gem/examples/01.basic/08.model.pd b/Gem/examples/01.basic/08.model.pd new file mode 100644 index 0000000..882095e --- /dev/null +++ b/Gem/examples/01.basic/08.model.pd @@ -0,0 +1,61 @@ +#N canvas 348 152 673 462 12; +#X floatatom 460 79 0 0 0 0 - - -; +#X obj 385 44 gemhead; +#X floatatom 446 179 0 0 0 0 - - -; +#X obj 212 283 gemhead 1; +#X obj 212 321 world_light; +#X text 185 21 load in a model file; +#X obj 33 85 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 165 79 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X obj 167 38 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 54 75 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 5 0; +#X connect 3 1 1 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 38 129 pd gemwin; +#X msg 38 105 create; +#X text 34 85 Create window and render; +#X text 69 378 Gem can load 3d-models in the alias|wavefront .obj format +; +#X obj 385 255 model ../data/venus.obj; +#X obj 385 205 rotate 0 0 1 0; +#X obj 385 134 translate 0 0 0 1; +#X obj 460 103 / 100; +#X connect 0 0 14 0; +#X connect 1 0 13 0; +#X connect 2 0 12 1; +#X connect 3 0 4 0; +#X connect 7 0 8 0; +#X connect 8 0 7 0; +#X connect 12 0 11 0; +#X connect 13 0 12 0; +#X connect 14 0 13 1; diff --git a/Gem/examples/01.basic/09.yelloTeapot.pd b/Gem/examples/01.basic/09.yelloTeapot.pd new file mode 100644 index 0000000..328e9b8 --- /dev/null +++ b/Gem/examples/01.basic/09.yelloTeapot.pd @@ -0,0 +1,65 @@ +#N canvas 56 98 635 502 12; +#X obj 350 226 gemhead; +#X floatatom 458 298 0 0 0 0 - - -; +#X obj 350 286 color; +#X msg 452 231 1 1 1; +#X text 438 159 change the color; +#X obj 350 379 teapot; +#X obj 350 337 rotateXYZ; +#X obj 29 398 gemhead; +#X obj 29 420 world_light; +#X msg 452 196 1 1 0; +#X text 109 29 this demonstrates how to create a yellow teapot; +#X text 449 277 rotate the teapot; +#X msg 456 365 draw line; +#X msg 453 395 draw fill; +#X obj 31 73 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X msg 51 75 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 36 117 pd gemwin; +#X msg 36 93 create; +#X text 32 73 Create window and render; +#X text 32 261 this is the famous; +#X text 52 294 utah teapot; +#X connect 0 0 2 0; +#X connect 1 0 6 1; +#X connect 1 0 6 2; +#X connect 2 0 6 0; +#X connect 3 0 2 1; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 9 0 2 1; +#X connect 12 0 5 0; +#X connect 13 0 5 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; diff --git a/Gem/examples/02.advanced/00.gemwin-subpatch.pd b/Gem/examples/02.advanced/00.gemwin-subpatch.pd new file mode 100644 index 0000000..5f0fc8f --- /dev/null +++ b/Gem/examples/02.advanced/00.gemwin-subpatch.pd @@ -0,0 +1,61 @@ +#N canvas 0 0 725 412 10; +#N canvas 95 194 290 179 Gem.init 0; +#X obj 83 30 loadbang; +#X msg 83 67 reset; +#X obj 83 107 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 100 115 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 100 134 pd gemwin; +#X text 247 146 just enable the toggle labeled "rendering" to create +a window and start rendering \; switching the toggle off will destroy +the window; +#X text 260 60 by now we assume that you know how to control a Gem-window +; +#X text 252 268 apart from that \, the subpatch is really the same +as [gemwin] itself \; e.g. you can send any message to it that [gemwin] +understands.; +#X text 249 204 thus you don't have to click on [create( and then [1( +anymore...; +#X text 249 113 for the sake of simplicity \, from now on the examples +will use the subpatch on the left side to control the Gem-window.; +#X connect 0 0 1 0; diff --git a/Gem/examples/02.advanced/01.Separator.pd b/Gem/examples/02.advanced/01.Separator.pd new file mode 100644 index 0000000..06d4c7a --- /dev/null +++ b/Gem/examples/02.advanced/01.Separator.pd @@ -0,0 +1,143 @@ +#N canvas 215 32 781 537 10; +#X obj 607 137 separator; +#X msg 697 200 1; +#X msg 734 199 0; +#X text 206 264 on; +#X text 243 262 off; +#X msg 19 288 1; +#X msg 55 290 0; +#X msg 200 290 1; +#X msg 238 290 0; +#X obj 276 308 gemhead 1; +#X obj 482 240 int 0; +#X obj 534 241 + 2; +#X floatatom 646 302 0 0 0 0 - - -; +#X obj 607 464 sphere; +#X obj 488 19 gemhead; +#X floatatom 482 273 0 0 0 0 - - -; +#X obj 97 350 world_light; +#X obj 97 295 gemhead 1; +#X obj 443 418 sphere; +#X obj 646 275 int 0; +#X obj 276 364 light; +#X msg 644 431 20; +#X msg 480 388 5; +#X text 31 246 global light; +#X text 242 236 local light; +#X text 25 266 on; +#X text 55 267 off; +#X obj 482 206 metro 50; +#X msg 482 176 1; +#X msg 519 178 0; +#X obj 646 241 metro 100; +#X obj 708 273 + 1; +#X obj 443 142 separator; +#X obj 443 338 translateXYZ 2 0 0; +#X obj 443 301 rotate 0 1 0; +#X obj 607 341 rotate 1 0 0; +#X obj 607 374 translateXYZ 0 2 0; +#X obj 607 179 color 0 1 0; +#X obj 644 401 r initstuff; +#X obj 480 362 r initstuff; +#X obj 94 473 s initstuff; +#X obj 94 443 loadbang; +#X obj 488 99 translateXYZ; +#X floatatom 540 62 0 0 0 0 - - -; +#X text 582 60 change this number; +#N canvas 95 194 290 179 Gem.init 0; +#X obj 83 30 loadbang; +#X msg 161 76 reset; +#X obj 45 107 outlet; +#X msg 45 75 dimen 300 300; +#X obj 88 51 t b b; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 230 117 pd Gem.init; +#X msg 100 102 lighting \$1; +#X text 89 60 turn lighting on/off; +#X obj 100 78 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 100 134 pd gemwin; +#X connect 0 0 37 0; +#X connect 1 0 30 0; +#X connect 2 0 30 0; +#X connect 2 0 19 0; +#X connect 5 0 16 0; +#X connect 6 0 16 0; +#X connect 7 0 20 0; +#X connect 8 0 20 0; +#X connect 9 0 20 0; +#X connect 10 0 11 0; +#X connect 10 0 15 0; +#X connect 11 0 10 1; +#X connect 12 0 35 1; +#X connect 14 0 42 0; +#X connect 15 0 34 1; +#X connect 17 0 16 0; +#X connect 19 0 12 0; +#X connect 19 0 31 0; +#X connect 21 0 13 2; +#X connect 22 0 18 2; +#X connect 27 0 10 0; +#X connect 28 0 27 0; +#X connect 29 0 27 0; +#X connect 29 0 10 0; +#X connect 30 0 19 0; +#X connect 31 0 19 1; +#X connect 32 0 34 0; +#X connect 33 0 18 0; +#X connect 34 0 33 0; +#X connect 35 0 36 0; +#X connect 36 0 13 0; +#X connect 37 0 35 0; +#X connect 38 0 21 0; +#X connect 39 0 22 0; +#X connect 41 0 40 0; +#X connect 42 0 32 0; +#X connect 42 0 0 0; +#X connect 43 0 42 2; +#X connect 45 0 49 0; +#X connect 46 0 49 0; +#X connect 48 0 46 0; diff --git a/Gem/examples/02.advanced/02.Ortho.pd b/Gem/examples/02.advanced/02.Ortho.pd new file mode 100644 index 0000000..329b2f8 --- /dev/null +++ b/Gem/examples/02.advanced/02.Ortho.pd @@ -0,0 +1,87 @@ +#N canvas 396 100 600 500 10; +#X obj 358 140 gemhead; +#X floatatom 377 222 0 0 0 0 - - -; +#X obj 358 256 rotateXYZ; +#X obj 150 135 gemhead 60; +#X obj 150 162 ortho; +#X obj 150 314 colorRGB 0 1 0; +#X obj 358 332 model ../data/venus.obj; +#X obj 150 347 model ../data/venus.obj; +#X obj 12 257 gemhead 1; +#X obj 12 296 world_light; +#X floatatom 169 213 0 0 0 0 - - -; +#X obj 150 249 rotateXYZ; +#X obj 358 182 translateXYZ 1 0 0; +#X obj 150 189 translateXYZ -1 0 0; +#X obj 358 301 scale 3; +#X obj 150 282 scale 3; +#X text 168 6 display two models; +#X text 136 85 rotate the two models to see the effect; +#N canvas 22 20 213 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 43 61 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 18 95 pd gemwin; +#X text 142 32 one model is in "perspective" mode; +#X text 159 54 the other is in "orthographic" mode; +#X connect 0 0 12 0; +#X connect 1 0 2 1; +#X connect 2 0 14 0; +#X connect 3 0 4 0; +#X connect 4 0 13 0; +#X connect 5 0 7 0; +#X connect 8 0 9 0; +#X connect 10 0 11 1; +#X connect 11 0 15 0; +#X connect 12 0 2 0; +#X connect 13 0 11 0; +#X connect 14 0 6 0; +#X connect 15 0 5 0; +#X connect 18 0 19 0; diff --git a/Gem/examples/02.advanced/03.View.pd b/Gem/examples/02.advanced/03.View.pd new file mode 100644 index 0000000..835e551 --- /dev/null +++ b/Gem/examples/02.advanced/03.View.pd @@ -0,0 +1,85 @@ +#N canvas 55 43 729 499 10; +#X obj 309 426 gemhead; +#X obj 179 426 gemhead 1; +#X obj 179 464 world_light; +#X obj 309 464 model ../data/venus.obj; +#X msg 240 111 view 0 0 \$1; +#X floatatom 240 85 0 0 0 0 - - -; +#X text 344 85 move the camera; +#X msg 240 183 view 0 0 4 \$1; +#X floatatom 240 147 0 0 0 0 - - -; +#X text 343 106 default is 0 \, 0 \, 4; +#X text 370 168 turn left and right; +#X floatatom 236 220 0 0 0 0 - - -; +#X msg 236 256 view 0 0 4 0 \$1; +#X text 363 237 turn up and down; +#X floatatom 237 294 0 0 0 0 - - -; +#X msg 237 330 view 0 0 4 \$1 \$1; +#X text 296 301 turn left and right and up and down; +#N canvas 22 20 213 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 29 176 pd Gem.init; +#X text 185 21 change the view-point; +#X msg 542 107 view x y z; +#X msg 547 184 view x y z phi; +#X msg 550 267 view x y z phi theta; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 29 200 pd gemwin; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 4 0 22 0; +#X connect 5 0 4 0; +#X connect 7 0 22 0; +#X connect 8 0 7 0; +#X connect 11 0 12 0; +#X connect 12 0 22 0; +#X connect 14 0 15 0; +#X connect 15 0 22 0; +#X connect 17 0 22 0; diff --git a/Gem/examples/02.advanced/03.View_OSD.pd b/Gem/examples/02.advanced/03.View_OSD.pd new file mode 100644 index 0000000..e376276 --- /dev/null +++ b/Gem/examples/02.advanced/03.View_OSD.pd @@ -0,0 +1,317 @@ +#N canvas 50 151 946 464 10; +#N canvas 50 173 290 229 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X msg 155 164 lighting 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X restore 48 98 pd Gem.init; +#X obj 249 195 cube; +#X msg 249 121 set \$1; +#X floatatom 249 98 5 0 0 0 - - -; +#X obj 249 169 translateXYZ 1 2 -3; +#X obj 77 130 r view_mess; +#N canvas 298 685 450 300 lighting 0; +#X obj 214 196 world_light; +#X obj 214 136 gemhead 1; +#X obj 65 157 world_light; +#X obj 65 105 gemhead 1; +#X msg 278 97 0.5 0.8 0.6; +#X obj 271 67 loadbang; +#X obj 65 129 rotateXYZ -104 160 0; +#X obj 214 164 rotateXYZ 104 -100 0; +#X msg 137 98 1 1 1; +#X obj 65 44 - 1; +#X obj 65 18 inlet; +#X msg 65 68 set \$1; +#X connect 1 0 7 0; +#X connect 3 0 6 0; +#X connect 4 0 0 1; +#X connect 5 0 8 0; +#X connect 5 0 4 0; +#X connect 6 0 2 0; +#X connect 7 0 0 0; +#X connect 8 0 2 1; +#X connect 9 0 11 0; +#X connect 10 0 9 0; +#X connect 11 0 3 0; +#X connect 11 0 1 0; +#X restore 604 108 pd lighting; +#X obj 271 291 translateXYZ 0 -2 -2; +#X obj 271 265 gemhead -50; +#X obj 550 108 gemhead; +#X obj 550 131 model ../data/venus.obj; +#X obj 249 145 gemhead -50; +#X obj 271 315 text2d; +#N canvas 6 51 381 205 textinit 0; +#X obj 85 140 outlet; +#X obj 94 63 loadbang; +#X msg 100 107 text press left button and move mouse; +#X msg 82 86 font ../data/vera.ttf; +#X connect 1 0 3 0; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X restore 469 297 pd textinit; +#X obj 249 56 tgl 15 0 empty stay_cube empty 0 -6 0 8 -262144 -1 -1 +0 100; +#X obj 249 76 - 50; +#X text 125 6 change the view-point \, but keep some objects at a fixed +position; +#X text 307 120 set the priority for rendering; +#X text 431 188 a priority<0 will be rendered AFTER all other things +\, and with viewpoint set to the origin! (objects will not be affected +by a change of view); +#X text 431 240 this is good for displaying logos \, help messages +and cetera...; +#X obj 588 282 gemhead -50; +#N canvas 108 327 419 265 textinit 0; +#X obj 82 198 outlet; +#X obj 78 82 loadbang; +#X msg 97 165 text occasionally press right button; +#X obj 225 10 gemhead -1; +#X obj 225 80 spigot; +#X obj 225 39 t b b; +#X obj 225 102 t b f; +#X obj 264 60 f 1; +#X msg 225 126 font ../data/vera.ttf; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 4 0; +#X connect 5 1 7 0; +#X connect 6 0 8 0; +#X connect 6 1 7 1; +#X connect 7 0 4 1; +#X connect 8 0 0 0; +#X restore 786 389 pd textinit; +#X obj 588 407 text3d; +#X obj 588 380 rotateXYZ; +#X obj 588 332 render_trigger; +#X obj 634 353 i; +#X obj 687 353 % 360; +#X obj 660 353 - 5; +#X obj 588 308 translateXYZ 0 -7 -10; +#N canvas 231 652 445 426 mousemove 0; +#X obj 129 8 gemmouse; +#X obj 136 88 pack; +#X obj 136 110 spigot; +#X obj 136 131 unpack; +#X obj 136 196 t f f; +#X obj 36 16 gemkeyname; +#X obj 36 39 pack 0 s; +#X obj 36 62 route 1; +#X msg 36 107 0; +#X msg 136 365 view \$2 \$3 \$1 0 0 0 0 1 0; +#X obj 136 173 +; +#X obj 136 221 * -1; +#X obj 201 237 t f f; +#X obj 201 174 +; +#X obj 201 262 * -1; +#X obj 36 129 t f f f; +#X obj 136 388 s view_mess; +#X text 61 106 reset; +#N canvas 292 198 304 356 coordinates 0; +#X obj 89 52 inlet; +#X obj 94 331 outlet; +#X obj 193 62 atan; +#X msg 193 41 1; +#X obj 193 84 / 45; +#X obj 193 20 loadbang; +#X text 94 29 r phi theta; +#X obj 89 78 unpack 0 0 0; +#X obj 128 123 *; +#X obj 168 123 *; +#X obj 120 197 cos; +#X obj 150 198 sin; +#X obj 120 166 t f f; +#X obj 183 198 cos; +#X obj 213 199 sin; +#X obj 183 167 t f f; +#X obj 120 230 *; +#X obj 150 231 *; +#X obj 85 275 *; +#X obj 125 275 *; +#X obj 174 277 *; +#X obj 66 242 t f f f; +#X obj 91 308 pack 0 0 0; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 9 1; +#X connect 4 0 8 1; +#X connect 5 0 3 0; +#X connect 7 0 21 0; +#X connect 7 1 8 0; +#X connect 7 2 9 0; +#X connect 8 0 12 0; +#X connect 9 0 15 0; +#X connect 10 0 16 0; +#X connect 11 0 17 0; +#X connect 12 0 10 0; +#X connect 12 1 11 0; +#X connect 13 0 16 1; +#X connect 13 0 17 1; +#X connect 14 0 20 1; +#X connect 15 0 13 0; +#X connect 15 1 14 0; +#X connect 16 0 18 1; +#X connect 17 0 19 1; +#X connect 18 0 22 0; +#X connect 19 0 22 1; +#X connect 20 0 22 2; +#X connect 21 0 18 0; +#X connect 21 1 19 0; +#X connect 21 2 20 0; +#X connect 22 0 1 0; +#X restore 136 310 pd coordinates; +#X obj 136 249 t b f; +#X obj 136 289 pack 4 0 0; +#X obj 177 46 t f f; +#X obj 177 67 -; +#X obj 136 45 t f f; +#X obj 136 66 -; +#X obj 278 57 s stay_cube; +#X obj 278 35 select 1; +#X obj 201 151 * 0.5; +#X obj 136 153 * 0.5; +#X obj 201 209 clip -90 90; +#N canvas 1020 394 450 300 space 0; +#X obj 42 13 inlet; +#X obj 42 35 symbol; +#X obj 42 87 select space; +#X obj 123 111 select space; +#X obj 204 87 makefilename %c; +#X msg 204 59 32; +#X obj 42 57 t s b; +#X obj 42 159 t b; +#X obj 42 181 outlet; +#X connect 0 0 1 0; +#X connect 1 0 6 0; +#X connect 2 0 7 0; +#X connect 2 1 3 0; +#X connect 3 0 7 0; +#X connect 4 0 3 1; +#X connect 5 0 4 0; +#X connect 6 0 2 0; +#X connect 6 1 5 0; +#X connect 7 0 8 0; +#X restore 36 85 pd space; +#X connect 0 0 23 0; +#X connect 0 1 21 0; +#X connect 0 2 2 1; +#X connect 0 4 26 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 28 0; +#X connect 3 1 27 0; +#X connect 4 0 11 0; +#X connect 4 1 10 1; +#X connect 5 0 6 0; +#X connect 5 1 6 1; +#X connect 6 0 7 0; +#X connect 7 0 30 0; +#X connect 8 0 15 0; +#X connect 9 0 16 0; +#X connect 10 0 4 0; +#X connect 11 0 19 0; +#X connect 12 0 14 0; +#X connect 12 1 13 1; +#X connect 13 0 29 0; +#X connect 14 0 20 2; +#X connect 15 0 10 0; +#X connect 15 1 10 1; +#X connect 15 1 13 0; +#X connect 15 2 13 1; +#X connect 18 0 9 0; +#X connect 19 0 20 0; +#X connect 19 1 20 1; +#X connect 20 0 18 0; +#X connect 21 0 22 1; +#X connect 21 1 22 0; +#X connect 22 0 1 1; +#X connect 23 0 24 1; +#X connect 23 1 24 0; +#X connect 24 0 1 0; +#X connect 26 0 25 0; +#X connect 27 0 13 0; +#X connect 28 0 10 0; +#X connect 29 0 12 0; +#X connect 30 0 8 0; +#X restore 731 34 pd mousemove; +#X text 275 48 0...[cube] is rendered OSD; +#X text 275 60 1...[cube] is rendered at "view"; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 48 204 pd gemwin; +#X obj 604 88 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 2 +2; +#X text 632 87 <- should the view affect light position or not; +#X connect 0 0 32 0; +#X connect 2 0 11 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 32 0; +#X connect 7 0 12 0; +#X connect 8 0 7 0; +#X connect 9 0 10 0; +#X connect 11 0 4 0; +#X connect 13 0 12 0; +#X connect 14 0 15 0; +#X connect 15 0 3 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 23 0 22 0; +#X connect 24 0 23 0; +#X connect 24 1 25 0; +#X connect 25 0 27 0; +#X connect 25 0 23 1; +#X connect 26 0 25 1; +#X connect 27 0 26 0; +#X connect 28 0 24 0; +#X connect 33 0 6 0; diff --git a/Gem/examples/02.advanced/04.Fog.pd b/Gem/examples/02.advanced/04.Fog.pd new file mode 100644 index 0000000..28991af --- /dev/null +++ b/Gem/examples/02.advanced/04.Fog.pd @@ -0,0 +1,99 @@ +#N canvas 275 99 721 506 10; +#X floatatom 414 85 0 0 0 0 - - -; +#X obj 385 44 gemhead; +#X floatatom 403 165 0 0 0 0 - - -; +#X obj 268 149 gemhead 1; +#X obj 268 187 world_light; +#X obj 385 279 model ../data/venus.obj; +#X obj 385 134 translateXYZ; +#X obj 385 205 rotateXYZ; +#X obj 385 238 scale 3; +#X obj 40 198 r fogmess; +#X msg 335 395 \; fogmess fogmode 2 \; fogmess fog 0.1; +#X msg 11 394 \; fogmess fogmode 0; +#X msg 172 393 \; fogmess fogmode 1 \; fogmess fog 0.7; +#X text 39 349 no fog; +#X text 190 354 linear fog; +#X text 371 353 exp fog; +#X text 520 357 exp^2 fog; +#X msg 485 399 \; fogmess fogmode 3 \; fogmess fog 0.1; +#X text 184 21 various fog types; +#X obj 522 132 gemhead; +#X floatatom 458 97 5 0 0 0 - - -; +#X obj 522 170 rotateXYZ 0 -117 0; +#X obj 522 189 square 5; +#X obj 522 151 translateXYZ -3.5 0 -6.57; +#X obj 385 22 tgl 15 1 empty empty empty 20 8 0 8 -262144 -1 -1 1 1 +; +#X obj 522 113 tgl 15 1 empty empty empty 20 8 0 8 -262144 -1 -1 1 +1; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X msg 131 165 fogcolor 1 0 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X restore 59 219 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 40 258 pd gemwin; +#X connect 0 0 6 3; +#X connect 1 0 6 0; +#X connect 2 0 7 1; +#X connect 3 0 4 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 5 0; +#X connect 9 0 27 0; +#X connect 19 0 23 0; +#X connect 20 0 6 1; +#X connect 21 0 22 0; +#X connect 23 0 21 0; +#X connect 24 0 1 0; +#X connect 25 0 19 0; +#X connect 26 0 27 0; diff --git a/Gem/examples/02.advanced/05.Stereo.pd b/Gem/examples/02.advanced/05.Stereo.pd new file mode 100644 index 0000000..8fc351e --- /dev/null +++ b/Gem/examples/02.advanced/05.Stereo.pd @@ -0,0 +1,97 @@ +#N canvas 631 50 600 504 10; +#X obj 426 54 gemhead; +#X floatatom 464 134 0 0 0 0 - - -; +#X obj 464 307 gemhead 1; +#X obj 464 332 world_light; +#X obj 426 181 model ../data/venus.obj; +#X text 185 21 load in a model file; +#X obj 426 81 translateXYZ 0 0 2; +#X obj 426 157 rotateXYZ; +#X text 149 40 and display it stereoscopically; +#X msg 221 130 stereoSep \$1; +#X msg 318 129 stereoFoc \$1; +#X floatatom 221 92 0 0 0 0 - - -; +#X floatatom 318 87 0 0 0 0 - - -; +#X text 23 295 The default stereoSep is -15; +#X text 23 315 The model may appear inside out depending on what viewing +method you use.; +#X text 23 350 If it does \, change the stereoSep to 15; +#N canvas 30 60 290 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X msg 148 165 stereo 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X restore 58 173 pd Gem.init; +#X msg 271 206 stereo 1; +#X msg 271 228 stereo 2; +#X msg 271 271 stereo 0; +#X text 335 207 2 separate images; +#X text 338 230 red/green stereo; +#X text 336 273 no stereo; +#X msg 271 248 stereo 3; +#X text 338 250 crystal eyes stereo; +#X text 32 402 NOTE: you need special hardware to use "crystal eyes +stereo"; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 58 207 pd gemwin; +#X connect 0 0 6 0; +#X connect 1 0 7 2; +#X connect 2 0 3 0; +#X connect 6 0 7 0; +#X connect 7 0 4 0; +#X connect 9 0 26 0; +#X connect 10 0 26 0; +#X connect 11 0 9 0; +#X connect 12 0 10 0; +#X connect 16 0 26 0; +#X connect 17 0 26 0; +#X connect 18 0 26 0; +#X connect 19 0 26 0; +#X connect 23 0 26 0; diff --git a/Gem/examples/02.advanced/06.StereoParticle.pd b/Gem/examples/02.advanced/06.StereoParticle.pd new file mode 100644 index 0000000..80b1f06 --- /dev/null +++ b/Gem/examples/02.advanced/06.StereoParticle.pd @@ -0,0 +1,88 @@ +#N canvas 396 160 600 500 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 136 part_color; +#X obj 198 447 part_draw; +#X msg 335 69 0 1 0; +#X text 329 37 set the color range; +#X obj 198 331 part_gravity 0 -0.01 0; +#X obj 198 206 part_velsphere 0 0.2 0 0.2; +#X text 310 269 set the number per frame; +#X text 310 378 set the age to kill at; +#X text 366 327 gravity to affect the particles; +#X text 408 174 the velocity domain; +#X text 406 191 a sphere at 0 \, 0.2 \, 0; +#X msg 219 413 draw line; +#X msg 298 413 draw point; +#X msg 393 69 1 0 0; +#X obj 198 270 part_source 25; +#X obj 198 381 part_killold 45; +#X text 406 208 radius = 0.2; +#X msg 31 131 stereoSep 15; +#X obj 198 174 part_size 2; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 stereo 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 87 170 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 31 187 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 20 0; +#X connect 4 0 2 1; +#X connect 6 0 17 0; +#X connect 7 0 16 0; +#X connect 13 0 3 0; +#X connect 14 0 3 0; +#X connect 15 0 2 2; +#X connect 16 0 6 0; +#X connect 17 0 3 0; +#X connect 19 0 22 0; +#X connect 20 0 7 0; +#X connect 21 0 22 0; diff --git a/Gem/examples/02.advanced/07.Snapshot1.pd b/Gem/examples/02.advanced/07.Snapshot1.pd new file mode 100644 index 0000000..55b7776 --- /dev/null +++ b/Gem/examples/02.advanced/07.Snapshot1.pd @@ -0,0 +1,87 @@ +#N canvas 396 100 600 375 10; +#X obj 210 252 gemhead; +#X obj 210 312 model ../data/venus.obj; +#X text 117 4 snap a portion of the graphics window into a texture +; +#X obj 210 278 translateXYZ 0 0 2; +#X obj 423 193 gemhead; +#X obj 423 255 pix_texture; +#X msg 294 88 snap; +#X msg 275 56 bang; +#X msg 355 148 bang; +#X msg 328 120 bang; +#X obj 423 226 pix_snap 0 0 256 256; +#X obj 423 284 rotateXYZ 0 45 25; +#X obj 423 317 square 4; +#X text 327 54 draw the model; +#X text 348 87 snap the frame buffer; +#X text 390 120 clear the frame buffer; +#X text 407 146 draw the snapped texture; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 dimen 256 256; +#X msg 179 165 buffer 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X restore 30 120 pd Gem.init; +#X text 123 20 notice that this is using single buffered (see Gem.init) +drawing!; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 30 137 pd gemwin; +#X connect 0 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 10 0; +#X connect 5 0 11 0; +#X connect 6 0 10 0; +#X connect 7 0 0 0; +#X connect 8 0 4 0; +#X connect 9 0 19 0; +#X connect 10 0 5 0; +#X connect 11 0 12 0; +#X connect 17 0 19 0; diff --git a/Gem/examples/02.advanced/08.Snapshot2.pd b/Gem/examples/02.advanced/08.Snapshot2.pd new file mode 100644 index 0000000..ef84f34 --- /dev/null +++ b/Gem/examples/02.advanced/08.Snapshot2.pd @@ -0,0 +1,138 @@ +#N canvas 389 0 635 537 10; +#X obj 64 405 gemhead; +#X obj 64 509 model ../data/venus.obj; +#X text 115 2 snap a portion of the graphics window into a texture +; +#X obj 399 365 pix_texture; +#X obj 399 430 rotateXYZ; +#X floatatom 500 399 0 0 0 0 - - -; +#X msg 339 350 snap; +#X msg 110 370 0; +#X obj 399 256 render_trigger; +#X obj 399 329 pix_snap 0 0 256 256; +#X obj 399 219 gemhead 60; +#X obj 399 453 square 3; +#X msg 34 94 \; render 1; +#X msg 32 50 \; render 0; +#X obj 18 181 r render; +#X obj 180 360 r render; +#X obj 295 322 t b b; +#X obj 295 197 r render; +#X msg 295 260 clear; +#X obj 295 229 sel 1; +#X obj 233 400 gemhead; +#X obj 233 510 model ../data/venus.obj; +#X obj 233 472 color 1 0 0; +#X obj 64 478 color 0 1 0; +#X obj 233 432 translateXYZ 1 0 1; +#X obj 64 438 translateXYZ -1 0 1; +#X text 369 155 notice that we use render_trigger; +#X text 369 172 to make sure that we snap before; +#X text 373 190 the square is drawn; +#X text 126 42 you may need to turn rendering off \, then on; +#X text 128 59 to get the snap to work right. This is because; +#X text 127 77 the first time rendering is turned on \, we might; +#X text 128 95 have garbage in the frame buffer; +#X text 127 126 rotate the square to see the texture; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 dimen 256 256; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 84 181 pd Gem.init; +#N canvas 0 0 450 300 oneshot 0; +#X obj 93 82 inlet; +#X obj 187 148 bang; +#X msg 187 167 1; +#X obj 93 214 spigot; +#X msg 155 168 0; +#X obj 93 172 t a b; +#X obj 93 240 t a b; +#X obj 136 192 i 1; +#X obj 93 107 route clear; +#X obj 93 262 outlet; +#X connect 0 0 8 0; +#X connect 1 0 2 0; +#X connect 2 0 7 1; +#X connect 3 0 6 0; +#X connect 4 0 7 1; +#X connect 5 0 3 0; +#X connect 5 1 7 0; +#X connect 6 0 9 0; +#X connect 6 1 4 0; +#X connect 7 0 3 1; +#X connect 8 0 1 0; +#X connect 8 1 5 0; +#X restore 295 287 pd oneshot; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 18 206 pd gemwin; +#X connect 0 0 25 0; +#X connect 3 0 4 0; +#X connect 4 0 11 0; +#X connect 5 0 4 2; +#X connect 6 0 9 0; +#X connect 7 0 0 0; +#X connect 7 0 20 0; +#X connect 8 0 9 0; +#X connect 8 1 35 0; +#X connect 9 0 3 0; +#X connect 10 0 8 0; +#X connect 14 0 36 0; +#X connect 15 0 0 0; +#X connect 15 0 20 0; +#X connect 16 0 7 0; +#X connect 16 1 6 0; +#X connect 17 0 19 0; +#X connect 18 0 35 0; +#X connect 19 0 18 0; +#X connect 20 0 24 0; +#X connect 22 0 21 0; +#X connect 23 0 1 0; +#X connect 24 0 22 0; +#X connect 25 0 23 0; +#X connect 34 0 36 0; +#X connect 35 0 16 0; diff --git a/Gem/examples/02.advanced/09.SnapshotSave.pd b/Gem/examples/02.advanced/09.SnapshotSave.pd new file mode 100644 index 0000000..92bc2eb --- /dev/null +++ b/Gem/examples/02.advanced/09.SnapshotSave.pd @@ -0,0 +1,145 @@ +#N canvas 54 216 940 412 10; +#N canvas 338 262 290 225 Gem.init 0; +#X obj 83 30 loadbang; +#X msg 161 76 reset; +#X obj 45 184 outlet; +#X obj 88 51 t b b; +#X msg 45 75 dimen 128 128; +#X msg 71 109 lighting 1; +#X msg 127 171 color 0.5 0.3 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 0 6 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X connect 6 0 2 0; +#X restore 51 96 pd Gem.init; +#X obj 255 118 gemhead; +#X obj 255 144 render_trigger; +#X obj 332 256 + 1; +#X obj 362 256 % 360; +#X obj 255 279 rotateXYZ; +#X obj 255 359 pix_texture; +#X obj 62 265 gemhead; +#X obj 62 291 world_light; +#X obj 652 251 gemhead 99; +#X obj 548 154 savepanel; +#X msg 673 293 file \$1; +#X obj 420 182 symbol /tmp/gemshot; +#X obj 420 110 bng 30 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 420 280 makefilename %s00000.tif; +#X msg 420 308 open \$1; +#X obj 255 387 square 4; +#X obj 255 334 pix_image; +#X msg 134 269 list 1 1 0.4; +#X obj 255 306 color 1 0.3 1; +#X obj 134 248 loadbang; +#X obj 420 210 t b s b s; +#X obj 420 258 symbol; +#X obj 420 234 del 500; +#X obj 301 188 spigot; +#X obj 338 165 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X floatatom 301 238 5 0 0 0 - - -; +#X obj 301 216 i; +#X obj 548 134 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 338 123 loadbang; +#X text 186 22 similar to the previous example: [pix_write] gets the +current output window and writes it not into a texture but into a file +(TIFF or JPEG); +#X text 492 364 mind the 99: [pix_write] has to be called late \, to +ensure that all that you want is already rendered onto the screen. +; +#X msg 789 285 auto \$1; +#X obj 793 263 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 51 113 pd gemwin; +#X obj 60 321 gemhead; +#X obj 60 341 translate 1 0 1 0; +#X obj 60 362 color 0 1 0; +#X obj 60 382 sphere 0.5; +#X obj 652 326 pix_write; +#X connect 0 0 34 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 2 1 24 0; +#X connect 3 0 4 0; +#X connect 4 0 27 1; +#X connect 5 0 19 0; +#X connect 6 0 16 0; +#X connect 7 0 8 0; +#X connect 9 0 39 0; +#X connect 10 0 12 1; +#X connect 11 0 39 0; +#X connect 12 0 21 0; +#X connect 13 0 12 0; +#X connect 14 0 15 0; +#X connect 15 0 17 0; +#X connect 17 0 6 0; +#X connect 18 0 8 1; +#X connect 19 0 17 0; +#X connect 20 0 18 0; +#X connect 21 0 23 0; +#X connect 21 1 22 1; +#X connect 21 2 39 0; +#X connect 21 3 11 0; +#X connect 22 0 14 0; +#X connect 23 0 22 0; +#X connect 24 0 27 0; +#X connect 25 0 24 1; +#X connect 26 0 3 0; +#X connect 26 0 5 1; +#X connect 26 0 5 2; +#X connect 26 0 5 3; +#X connect 27 0 26 0; +#X connect 28 0 10 0; +#X connect 29 0 25 0; +#X connect 32 0 39 0; +#X connect 33 0 32 0; +#X connect 35 0 36 0; +#X connect 36 0 37 0; +#X connect 37 0 38 0; diff --git a/Gem/examples/02.advanced/09.SnapshotSaveHD.pd b/Gem/examples/02.advanced/09.SnapshotSaveHD.pd new file mode 100644 index 0000000..b14083b --- /dev/null +++ b/Gem/examples/02.advanced/09.SnapshotSaveHD.pd @@ -0,0 +1,44 @@ +#N canvas 73 51 832 392 10; +#X msg 26 26 create \, 1; +#X msg 39 53 destroy; +#X obj 340 29 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 151 29 gemhead; +#X text 256 220 <- the scene you want to save in the given resolution +; +#X text 359 29 <- save the scene in the given resolution; +#X obj 26 77 gemwin; +#X text 147 283 [snapshotHD] gives the possibility to capture a scene +in a defined resolution. You can see the proportion of the capture +in the GEM window with the white rectangle edge.; +#X obj 151 170 t a b; +#X obj 151 220 accumrotate; +#X obj 151 241 teapot; +#X msg 193 196 1; +#X obj 151 72 s \$0-gemhead; +#X obj 151 125 gemreceive \$0-gemhead; +#X obj 151 145 separator; +#X text 303 136 <-- a [gemhead] replacement; +#X text 407 50 1st and 2nd arguments : resolution (here : 3000x2000 +pixels); +#X obj 151 52 snapshotHD 4000 2000 /tmp/myPic.tif; +#X text 410 68 3rd argument : TIFF file name (here : /tmp/myPic.tif) +; +#X text 152 333 [snapshotHD] uses openGL-framebuffers. thus the maximum +resolution is limited by your openGL-implementation!; +#X msg 342 90 symbol /tmp/foo.tif; +#X text 485 93 <- save as another imagefile.; +#X connect 0 0 6 0; +#X connect 1 0 6 0; +#X connect 2 0 17 1; +#X connect 3 0 17 0; +#X connect 8 0 9 0; +#X connect 8 1 11 0; +#X connect 9 0 10 0; +#X connect 11 0 9 2; +#X connect 11 0 9 3; +#X connect 11 0 9 1; +#X connect 13 0 14 0; +#X connect 14 0 8 0; +#X connect 17 0 12 0; +#X connect 20 0 17 1; diff --git a/Gem/examples/02.advanced/10.LinearPath.pd b/Gem/examples/02.advanced/10.LinearPath.pd new file mode 100644 index 0000000..1a75686 --- /dev/null +++ b/Gem/examples/02.advanced/10.LinearPath.pd @@ -0,0 +1,87 @@ +#N canvas 372 134 624 496 10; +#X floatatom 481 249 0 0 0 0 - - -; +#X msg 422 21 1; +#X msg 455 21 0; +#X floatatom 451 172 0 0 0 0 - - -; +#X obj 350 184 gemhead; +#X obj 350 240 color; +#X obj 350 364 square; +#N canvas 21 297 600 400 arrays 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array array2 15 float 0; +#X array array3 24 float 0; +#X coords 0 1 15 -1 400 300 1; +#X restore 63 4 graph; +#X restore 38 447 page arrays; +#X obj 422 124 line; +#X msg 422 95 0 \, 1 2000; +#X obj 350 334 translate 1 0 0 0; +#X msg 39 347 \; array2 resize 15 \; array2 read ../data/valcolor.tab +\; array3 resize 24 \; array3 read ../data/valmotion.tab; +#X obj 422 63 metro 2000; +#X obj 422 213 linear_path 3 array2; +#X obj 464 300 linear_path 3 array3; +#X text 109 29 this demonstrates the linear_path object; +#X obj 39 313 loadbang; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 68 196 outlet; +#X obj 68 86 loadbang; +#X msg 68 136 reset; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 54 134 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 54 151 pd gemwin; +#X connect 0 0 14 0; +#X connect 1 0 12 0; +#X connect 2 0 12 0; +#X connect 3 0 13 0; +#X connect 4 0 5 0; +#X connect 5 0 10 0; +#X connect 8 0 13 0; +#X connect 8 0 14 0; +#X connect 9 0 8 0; +#X connect 10 0 6 0; +#X connect 12 0 9 0; +#X connect 13 0 5 1; +#X connect 14 0 10 2; +#X connect 16 0 11 0; +#X connect 17 0 18 0; diff --git a/Gem/examples/02.advanced/11.SplinePath.pd b/Gem/examples/02.advanced/11.SplinePath.pd new file mode 100644 index 0000000..3938ed8 --- /dev/null +++ b/Gem/examples/02.advanced/11.SplinePath.pd @@ -0,0 +1,87 @@ +#N canvas 355 106 641 505 10; +#X floatatom 492 288 0 0 0 0 - - -; +#X msg 421 55 1; +#X msg 461 55 0; +#X floatatom 463 210 0 0 0 0 - - -; +#X obj 350 226 gemhead; +#X obj 350 289 color; +#X obj 350 403 square; +#N canvas 21 297 600 400 arrays 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array array2 18 float 0; +#X array array3 24 float 0; +#X coords 0 1 15 -1 400 300 1; +#X restore 63 4 graph; +#X restore 26 474 page arrays; +#X obj 421 254 spline_path 3 array2; +#X obj 421 163 line; +#X msg 421 129 0 \, 1 2000; +#X obj 350 351 translate 1 0 0 0; +#X obj 464 320 spline_path 3 array3; +#X obj 421 98 metro 2000; +#X text 109 29 this demonstrates the spline_path object; +#X obj 28 345 loadbang; +#X msg 28 380 \; array2 resize 18 \; array2 read ../data/valcolor.tab +\; array3 resize 24 \; array3 read ../data/valmotion.tab; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 68 196 outlet; +#X obj 68 86 loadbang; +#X msg 68 136 reset; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 33 148 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 33 171 pd gemwin; +#X connect 0 0 12 0; +#X connect 1 0 13 0; +#X connect 2 0 13 0; +#X connect 3 0 8 0; +#X connect 4 0 5 0; +#X connect 5 0 11 0; +#X connect 8 0 5 1; +#X connect 9 0 8 0; +#X connect 9 0 12 0; +#X connect 10 0 9 0; +#X connect 11 0 6 0; +#X connect 12 0 11 2; +#X connect 13 0 10 0; +#X connect 15 0 16 0; +#X connect 17 0 18 0; diff --git a/Gem/examples/02.advanced/12.Hsv.pd b/Gem/examples/02.advanced/12.Hsv.pd new file mode 100644 index 0000000..28379a2 --- /dev/null +++ b/Gem/examples/02.advanced/12.Hsv.pd @@ -0,0 +1,105 @@ +#N canvas 433 87 762 506 12; +#X obj 248 352 gemhead; +#X obj 248 412 color; +#X msg 559 202 1 1 1; +#X msg 524 156 1 0 0; +#X obj 248 441 square; +#X text 396 19 change the color; +#X text 2 90 create and destroy the graphics window; +#X obj 524 266 rgb2hsv; +#X obj 379 303 hsv2rgb; +#X obj 379 330 unpack 0 0 0; +#X floatatom 379 363 0 0 0 3 red - -; +#X floatatom 431 361 0 0 0 3 green - -; +#X floatatom 490 361 0 0 0 3 blue - -; +#X obj 541 327 unpack 0 0 0; +#X floatatom 541 416 0 0 0 3 hue - -; +#X floatatom 593 391 0 0 0 3 saturation - -; +#X floatatom 632 353 0 0 0 3 value - -; +#X msg 612 246 0 1 0; +#X floatatom 379 85 0 0 1 2 hue #0-hue -; +#X floatatom 400 121 0 0 1 2 saturation #0-saturation -; +#X obj 399 174 t b f; +#X floatatom 437 148 0 0 1 2 value #0-value -; +#X obj 437 174 t b f; +#X text 526 139 red; +#X text 559 185 white; +#X text 614 224 green; +#X obj 379 203 pack 0 1 1; +#N canvas 30 60 290 300 Gem.init 0; +#X obj 68 196 outlet; +#X obj 68 86 loadbang; +#X msg 68 136 reset; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 26 133 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 26 162 pd gemwin; +#X obj 532 52 hsl 128 15 0 1 0 0 \$0-hue empty hue -2 -8 0 10 -262144 +-1 -1 0 1; +#X obj 532 82 hsl 128 15 0 1 0 0 \$0-saturation empty saturation -2 +-8 0 10 -262144 -1 -1 0 1; +#X obj 532 112 hsl 128 15 0 1 0 0 \$0-value empty value -2 -8 0 10 +-262144 -1 -1 0 1; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 0 7 0; +#X connect 3 0 7 0; +#X connect 7 0 8 0; +#X connect 7 0 13 0; +#X connect 8 0 1 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 9 1 11 0; +#X connect 9 2 12 0; +#X connect 13 0 14 0; +#X connect 13 1 15 0; +#X connect 13 2 16 0; +#X connect 17 0 7 0; +#X connect 18 0 26 0; +#X connect 19 0 20 0; +#X connect 20 0 26 0; +#X connect 20 1 26 1; +#X connect 21 0 22 0; +#X connect 22 0 26 0; +#X connect 22 1 26 2; +#X connect 26 0 8 0; +#X connect 27 0 28 0; diff --git a/Gem/examples/02.advanced/13.ModelRescale.pd b/Gem/examples/02.advanced/13.ModelRescale.pd new file mode 100644 index 0000000..3da2927 --- /dev/null +++ b/Gem/examples/02.advanced/13.ModelRescale.pd @@ -0,0 +1,107 @@ +#N canvas 8 40 682 502 12; +#X floatatom 241 220 0 0 0 0 - - -; +#X obj 208 268 translate; +#X msg 275 220 0 0 1; +#X obj 208 178 gemhead; +#X floatatom 237 304 0 0 0 0 - - -; +#X obj 43 357 gemhead 1; +#X obj 43 395 world_light; +#X msg 285 307 open ../data/venus.obj; +#X floatatom 511 227 0 0 0 0 - - -; +#X obj 478 275 translate; +#X msg 545 227 0 0 1; +#X obj 478 185 gemhead; +#X msg 521 321 0 1 0; +#X obj 478 346 rotate; +#X floatatom 499 298 0 0 0 0 - - -; +#X obj 478 396 model ../data/venus.obj; +#X obj 208 339 scaleXYZ; +#X obj 327 149 loadbang; +#X msg 271 187 -10; +#X msg 325 246 0.1; +#X obj 333 278 t b b; +#X text 224 34 notice that the 'rescale 0' message is sent; +#X text 227 90 notice the size difference due to the scale and; +#X text 229 109 translate objects on the left chain; +#N canvas 22 20 213 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 34 98 pd Gem.init; +#X msg 289 347 rescale 0; +#X obj 208 389 model; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 124 pd gemwin; +#X text 228 51 before the 'open' occurs; +#X connect 0 0 1 1; +#X connect 1 0 16 0; +#X connect 2 0 1 2; +#X connect 3 0 1 0; +#X connect 4 0 16 1; +#X connect 4 0 16 2; +#X connect 4 0 16 3; +#X connect 5 0 6 0; +#X connect 7 0 26 0; +#X connect 8 0 9 1; +#X connect 9 0 13 0; +#X connect 10 0 9 2; +#X connect 11 0 9 0; +#X connect 12 0 13 2; +#X connect 13 0 15 0; +#X connect 14 0 13 1; +#X connect 16 0 26 0; +#X connect 17 0 2 0; +#X connect 17 0 18 0; +#X connect 17 0 19 0; +#X connect 17 0 20 0; +#X connect 18 0 0 0; +#X connect 19 0 4 0; +#X connect 20 0 7 0; +#X connect 20 1 25 0; +#X connect 24 0 27 0; +#X connect 25 0 26 0; diff --git a/Gem/examples/02.advanced/14.RenderOrder.pd b/Gem/examples/02.advanced/14.RenderOrder.pd new file mode 100644 index 0000000..a199d0b --- /dev/null +++ b/Gem/examples/02.advanced/14.RenderOrder.pd @@ -0,0 +1,149 @@ +#N canvas 0 0 986 385 10; +#X text 276 35 Blue Sphere; +#N canvas 95 194 290 179 Gem.init 0; +#X obj 118 18 loadbang; +#X msg 201 78 reset; +#X obj 118 113 outlet; +#X obj 118 45 t b b; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 1 1 0; +#X restore 72 145 pd Gem.init; +#X obj 265 98 color 0 0 1 0.5; +#X obj 265 229 pix_texture; +#X obj 265 182 pix_image ../data/dancer.JPG; +#X obj 265 251 alpha; +#X obj 265 207 pix_alpha; +#X obj 265 68 gemhead 50; +#X obj 681 244 alpha; +#X obj 681 173 gemhead 50; +#X obj 681 197 color 0 1 0 0.5; +#X obj 681 222 translateXYZ 0 -0.5 -1; +#X obj 849 123 int 0; +#X obj 891 123 + 1; +#X obj 849 100 metro 50; +#X obj 923 122 % 50; +#X obj 849 81 tgl 15 0 empty render_onoff empty 0 -6 0 8 -262144 -1 +-1 0 1; +#X obj 849 146 / 25; +#X obj 849 168 - 1; +#X msg 681 124 set \$1; +#X floatatom 681 101 5 0 0 0 - - -; +#X msg 679 9 40; +#X msg 696 32 60; +#X obj 849 191 t f f; +#X msg 709 54 auto; +#N canvas 189 208 450 300 set-priority 0; +#X obj 103 59 inlet; +#X obj 94 277 outlet; +#X obj 103 96 route auto; +#X obj 352 59 inlet; +#X obj 352 88 < 0; +#X obj 352 112 change; +#X obj 352 135 select 1 0; +#X msg 327 169 40; +#X msg 363 170 60; +#X obj 94 247 spigot; +#X obj 168 120 t f b; +#X msg 198 145 0; +#X msg 103 117 10; +#X obj 103 138 t f f; +#X connect 0 0 2 0; +#X connect 2 0 12 0; +#X connect 2 1 10 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 6 1 8 0; +#X connect 7 0 9 0; +#X connect 8 0 9 0; +#X connect 9 0 1 0; +#X connect 10 0 1 0; +#X connect 10 1 11 0; +#X connect 11 0 9 1; +#X connect 12 0 13 0; +#X connect 13 0 9 1; +#X connect 13 1 5 0; +#X restore 693 76 pd set-priority; +#X obj 265 272 square 3; +#X obj 681 266 square 3; +#X text 866 81 movement on/off; +#X text 736 9 priority 40 (<50); +#X text 735 28 priority 60 (>50); +#X text 748 51 dynamic ordering; +#X text 218 299 the rendering order does matter \, when doing things +like alpha-blending: alpha-blending only works if the semi-transparent +(alpha<1) object is rendered AFTER the objects that shine through; +#X text 596 291 this turns out to be a problem in dynamic scenes (eg: +with moving objects/viewpoint):: if a semi-transparent object used +to be "in front" of another semi-transparent object \, but suddenly +becomes "behind" \, the rendering order has to be changed. do this +\, by giving the [gemhead] a "set" message; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 72 168 pd gemwin; +#X connect 1 0 34 0; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 26 0; +#X connect 6 0 3 0; +#X connect 7 0 2 0; +#X connect 8 0 27 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 8 0; +#X connect 12 0 13 0; +#X connect 12 0 17 0; +#X connect 13 0 15 0; +#X connect 14 0 12 0; +#X connect 15 0 12 1; +#X connect 16 0 14 0; +#X connect 17 0 18 0; +#X connect 18 0 23 0; +#X connect 19 0 9 0; +#X connect 20 0 19 0; +#X connect 21 0 25 0; +#X connect 22 0 25 0; +#X connect 23 0 11 3; +#X connect 23 1 25 1; +#X connect 24 0 25 0; +#X connect 25 0 20 0; diff --git a/Gem/examples/02.advanced/15.GemWin.pd b/Gem/examples/02.advanced/15.GemWin.pd new file mode 100644 index 0000000..a414b15 --- /dev/null +++ b/Gem/examples/02.advanced/15.GemWin.pd @@ -0,0 +1,73 @@ +#N canvas 51 56 650 553 10; +#X obj 53 224 gemwin; +#X obj 38 397 gemmouse; +#X obj 109 206 r gemwin_mess; +#X obj 63 459 s gemwin_mess; +#X obj 63 418 del 100; +#X msg 63 439 destroy; +#X obj 15 86 cnv 15 100 100 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 53 105 create; +#X msg 26 143 destroy; +#X obj 238 3 cnv 15 400 480 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X obj 14 296 cnv 15 180 80 empty empty cursor 20 0 0 14 -195568 -66577 +0; +#X msg 20 327 \; gemwin_mess cursor \$1; +#X obj 20 308 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X text 39 306 show/hide cursor; +#X text 32 484 press the left-mouse-button to kill the gem-window; +#X obj 247 36 cnv 15 380 120 empty empty title-bar 20 0 0 14 -233017 +-66577 0; +#X msg 253 49 title Graphic's_Environment_for_Multimedia; +#X msg 286 94 title \$1; +#X symbolatom 286 72 10 0 0; +#X text 359 94 type your own title; +#X obj 253 125 s gemwin_mess; +#X obj 247 259 cnv 15 380 120 empty empty dimensions+positioning 20 +0 0 14 -233017 -66577 0; +#X obj 253 348 s gemwin_mess; +#X obj 248 167 cnv 15 380 80 empty empty window-decorations 20 0 0 +14 -233017 -66577 0; +#X obj 258 185 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X msg 258 204 \; gemwin_mess border \$1; +#X msg 253 285 dimen 500 500; +#X msg 273 315 dimen 200 421; +#X obj 417 347 s gemwin_mess; +#X msg 417 284 offset 0 0; +#X msg 437 314 offset 500 70; +#X text 277 183 with/out borders; +#X text 534 282 offset might; +#X text 540 298 work only; +#X text 552 315 without; +#X text 548 330 borders !; +#X obj 247 391 cnv 15 380 80 empty empty full-screen 20 0 0 14 -233017 +-66577 0; +#X obj 257 409 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X msg 257 428 \; gemwin_mess fullscreen \$1; +#X text 276 407 fullscreen/windowed; +#X text 11 14 how to control the GEM-window; +#X text 291 7 use these BEFORE creating the window!; +#X text 466 398 titles \, borders \,; +#X text 458 415 dimensions & offsets; +#X text 468 432 mean nothing in; +#X text 463 448 fullscreen mode !; +#X connect 1 2 4 0; +#X connect 2 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 12 0 11 0; +#X connect 16 0 20 0; +#X connect 17 0 20 0; +#X connect 18 0 17 0; +#X connect 24 0 25 0; +#X connect 26 0 22 0; +#X connect 27 0 22 0; +#X connect 29 0 28 0; +#X connect 30 0 28 0; +#X connect 37 0 38 0; diff --git a/Gem/examples/02.advanced/16.vertex_program.pd b/Gem/examples/02.advanced/16.vertex_program.pd new file mode 100644 index 0000000..3d940b4 --- /dev/null +++ b/Gem/examples/02.advanced/16.vertex_program.pd @@ -0,0 +1,189 @@ +#N canvas 27 90 540 557 10; +#X obj 404 142 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 235 42 gemhead; +#X obj 235 111 pix_texture; +#X obj 235 497 rotateXYZ; +#X obj 106 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 167 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 395 250 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 -0.25 256; +#X obj 425 267 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0.5 256; +#X obj 458 285 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0.2 256; +#X obj 425 304 t b f; +#X obj 462 304 t b f; +#X obj 303 413 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 34336 256; +#X obj 371 355 nbx 5 14 -1e+37 1e+37 0 0 empty empty parameter# 0 -6 +0 10 -262144 -1 -1 0 256; +#X obj 440 324 pack 0 0 0 0; +#X obj 235 431 GEMglProgramEnvParameter4fvARB; +#X obj 242 358 loadbang; +#X obj 242 390 GLdefine GL_VERTEX_PROGRAM_ARB; +#X text 253 374 GL_VERTEX_PROGRAM_ARB = 34336; +#X msg 188 136 print; +#X text 382 23 open a texture; +#X text 343 123 open a vertex-program; +#X text 420 469 open a model; +#N canvas 0 0 450 300 defaults 0; +#X obj 112 43 loadbang; +#X msg 102 121 0; +#X obj 102 186 outlet; +#X obj 102 84 t b b; +#X obj 164 156 unpack 0 0 0; +#X obj 168 188 outlet; +#X obj 217 189 outlet; +#X obj 263 189 outlet; +#X text 101 208 param#; +#X text 205 216 param-values; +#X obj 179 44 inlet; +#X msg 161 122 -0.25 0.5 0.2; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 1 0; +#X connect 3 1 11 0; +#X connect 4 0 5 0; +#X connect 4 1 6 0; +#X connect 4 2 7 0; +#X connect 10 0 3 0; +#X connect 11 0 4 0; +#X restore 371 228 pd defaults; +#X msg 371 211 default; +#X obj 235 531 model ../data/venus.obj; +#X obj 235 82 pix_image ../data/64shade.tif; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 347 141 pd open; +#X obj 418 46 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 361 45 pd open; +#X msg 361 65 open ../data/64shade.tif; +#X obj 434 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 377 494 pd open; +#X msg 377 514 open ../data/venus.obj; +#X obj 44 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X msg 66 313 bang; +#X text 60 294 2nd click me; +#X obj 143 330 t b b b; +#X text 54 448 3rd play me; +#X text 79 18 1st click me; +#X text 295 275 4th play me; +#X msg 347 161 open ../data/toon.vp; +#X obj 235 178 vertex_program ../data/toon.vp; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 54 83 pd gemwin; +#X connect 0 0 26 0; +#X connect 1 0 25 0; +#X connect 2 0 41 0; +#X connect 3 0 24 0; +#X connect 4 0 3 2; +#X connect 5 0 3 3; +#X connect 6 0 13 0; +#X connect 7 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 13 0; +#X connect 9 1 13 1; +#X connect 10 0 13 0; +#X connect 10 1 13 2; +#X connect 11 0 14 1; +#X connect 12 0 14 2; +#X connect 13 0 14 3; +#X connect 14 0 3 0; +#X connect 15 0 16 0; +#X connect 16 0 11 0; +#X connect 18 0 41 0; +#X connect 22 0 12 0; +#X connect 22 1 6 0; +#X connect 22 2 7 0; +#X connect 22 3 8 0; +#X connect 23 0 22 0; +#X connect 25 0 2 0; +#X connect 26 0 40 0; +#X connect 27 0 28 0; +#X connect 28 0 29 0; +#X connect 29 0 25 0; +#X connect 30 0 31 0; +#X connect 31 0 32 0; +#X connect 32 0 24 0; +#X connect 33 0 3 1; +#X connect 34 0 36 0; +#X connect 36 0 32 0; +#X connect 36 1 40 0; +#X connect 36 2 29 0; +#X connect 40 0 41 0; +#X connect 41 0 14 0; diff --git a/Gem/examples/02.advanced/17.fragment_program.pd b/Gem/examples/02.advanced/17.fragment_program.pd new file mode 100644 index 0000000..2b1ce3b --- /dev/null +++ b/Gem/examples/02.advanced/17.fragment_program.pd @@ -0,0 +1,126 @@ +#N canvas 27 90 540 557 10; +#X obj 404 142 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 235 42 gemhead; +#X obj 235 497 rotateXYZ; +#X obj 106 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 167 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X msg 188 136 print; +#X text 343 123 open a vertex-program; +#X text 420 469 open a model; +#X obj 235 531 model ../data/venus.obj; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 347 141 pd open; +#X obj 434 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 377 494 pd open; +#X msg 377 514 open ../data/venus.obj; +#X obj 44 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X msg 66 313 bang; +#X text 60 294 2nd click me; +#X obj 143 330 t b b b; +#X text 54 448 3rd play me; +#X msg 347 161 open ../data/random.fp; +#X floatatom 318 49 5 0 0 0 - - -; +#X obj 235 85 colorRGB 1 1 1; +#X obj 66 247 world_light; +#X obj 60 214 gemhead 1; +#X obj 235 178 fragment_program ../data/random.fp; +#X text 362 48 play me; +#X obj 380 390 gemhead; +#X obj 380 412 translateXYZ -2 0 0; +#X obj 235 416 translateXYZ 2 0 0; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 70 126 pd gemwin; +#N canvas 0 0 450 300 Gem.init 0; +#X obj 85 239 outlet; +#X msg 85 215 reset \, lighting 1; +#X obj 85 192 loadbang; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X restore 70 104 pd Gem.init; +#X connect 0 0 9 0; +#X connect 1 0 20 0; +#X connect 2 0 8 0; +#X connect 3 0 2 2; +#X connect 4 0 2 3; +#X connect 5 0 23 0; +#X connect 9 0 18 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 8 0; +#X connect 13 0 2 1; +#X connect 14 0 16 0; +#X connect 16 0 12 0; +#X connect 16 1 18 0; +#X connect 18 0 23 0; +#X connect 19 0 20 2; +#X connect 20 0 23 0; +#X connect 22 0 21 0; +#X connect 23 0 27 0; +#X connect 25 0 26 0; +#X connect 26 0 2 0; +#X connect 27 0 2 0; +#X connect 29 0 28 0; diff --git a/Gem/examples/02.advanced/18.gl_shading_language.pd b/Gem/examples/02.advanced/18.gl_shading_language.pd new file mode 100644 index 0000000..2562b27 --- /dev/null +++ b/Gem/examples/02.advanced/18.gl_shading_language.pd @@ -0,0 +1,182 @@ +#N canvas 54 22 842 789 10; +#X obj 225 24 gemhead 1; +#X obj 225 47 world_light; +#X obj 77 112 gemhead; +#X obj 77 171 glsl_vertex; +#X obj 148 131 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 170 129 open a vertex-program; +#N canvas 0 22 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 91 130 pd open; +#X msg 35 142 print; +#X obj 77 733 rotateXYZ; +#X obj 126 714 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 126 697 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 126 680 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 206 25 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 77 576 glsl_program; +#X obj 150 393 pack 0 0; +#X obj 143 246 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 22 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 86 245 pd open; +#X text 164 244 open a fragment-program; +#X msg 34 266 print; +#X obj 171 373 t b f; +#X msg 335 92 bang; +#X obj 77 753 teapot; +#X obj 171 328 change; +#X obj 149 190 change; +#X msg 150 433 link \$1 \$2; +#X msg 33 486 print; +#X msg 266 546 Phong \$1; +#X obj 269 508 hsl 128 15 -1 1 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X floatatom 266 528 5 0 0 0 - - -; +#X obj 77 612 t a b; +#X obj 107 632 spigot; +#X obj 144 614 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 107 652 i; +#X obj 135 652 + 1; +#X obj 163 652 % 360; +#X text 435 96 click here to load both the vertex- and the fragment-shader +; +#X text 165 172 the vertex shader; +#X obj 77 308 glsl_fragment; +#X text 191 311 the fragment shader; +#X text 222 395 whenever either the fragment-shader ID or the vertex-shader +ID has changed \, we trigger the linking of the 2 modules; +#X floatatom 171 354 2 0 0 0 ID - -; +#X floatatom 149 213 2 0 0 0 ID - -; +#X obj 168 454 print linking; +#X text 264 441 order of module IDs does not matter...; +#X text 96 487 after linking \, click "print" to get some info about +the compiled shader program; +#X text 330 550 the Toon-shader has a unifom variable "Phong" (see +"print") \, which we can change to modify the effect.; +#X text 213 264 pd's search path is searched for the given filename +\; just add the examples/data folder to your path options and this +example should work; +#X obj 335 133 t s s; +#X msg 91 150 open \$1.vert; +#X msg 86 265 open \$1.frag; +#X symbolatom 381 93 0 0 0 0 - - -; +#X obj 335 114 symbol ../data/Toon; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 39 51 pd gemwin; +#X msg 39 29 lighting \$1; +#X obj 39 10 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X connect 0 0 1 0; +#X connect 2 0 3 0; +#X connect 3 0 37 0; +#X connect 3 1 23 0; +#X connect 4 0 6 0; +#X connect 6 0 48 0; +#X connect 7 0 3 0; +#X connect 8 0 21 0; +#X connect 9 0 8 3; +#X connect 10 0 8 2; +#X connect 11 0 8 1; +#X connect 12 0 0 0; +#X connect 13 0 29 0; +#X connect 14 0 24 0; +#X connect 15 0 16 0; +#X connect 16 0 49 0; +#X connect 18 0 37 0; +#X connect 19 0 14 0; +#X connect 19 1 14 1; +#X connect 20 0 51 0; +#X connect 22 0 40 0; +#X connect 23 0 41 0; +#X connect 24 0 13 0; +#X connect 24 0 42 0; +#X connect 25 0 13 0; +#X connect 26 0 13 0; +#X connect 27 0 28 0; +#X connect 28 0 26 0; +#X connect 29 0 8 0; +#X connect 29 1 30 0; +#X connect 30 0 32 0; +#X connect 31 0 30 1; +#X connect 32 0 33 0; +#X connect 32 0 11 0; +#X connect 32 0 10 0; +#X connect 32 0 9 0; +#X connect 33 0 34 0; +#X connect 34 0 32 1; +#X connect 37 0 13 0; +#X connect 37 1 22 0; +#X connect 40 0 19 0; +#X connect 41 0 14 0; +#X connect 47 0 48 0; +#X connect 47 1 49 0; +#X connect 48 0 3 0; +#X connect 49 0 37 0; +#X connect 50 0 51 0; +#X connect 51 0 47 0; +#X connect 53 0 52 0; +#X connect 54 0 53 0; diff --git a/Gem/examples/02.advanced/19.pointer.pd b/Gem/examples/02.advanced/19.pointer.pd new file mode 100644 index 0000000..7db5c4f --- /dev/null +++ b/Gem/examples/02.advanced/19.pointer.pd @@ -0,0 +1,217 @@ +#N canvas 102 54 864 638 10; +#X obj 209 223 gemhead; +#X obj 241 277 t a a a; +#X obj 264 320 cube 1; +#X obj 238 66 world_light; +#X obj 238 41 gemhead; +#X obj 37 226 gemhead; +#X obj 37 321 sphere 1.3 33; +#X obj 287 300 rotateXYZ 60 30 0; +#X obj 37 300 rotateXYZ 60 30 0; +#X text 36 184 #1:; +#X text 209 181 #2:; +#X obj 37 428 sphere 1.3 33; +#X obj 37 407 rotateXYZ 60 30 0; +#X obj 209 248 t a a; +#X obj 595 288 gemlist; +#X obj 595 223 gemhead; +#X obj 595 250 t b b a; +#X obj 37 202 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 209 198 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 595 198 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 37 342 translateXYZ 2 0 0; +#X obj 37 449 translateXYZ 2 0 0; +#X obj 241 341 translateXYZ 2 0 0; +#X obj 209 386 t a a a; +#X obj 232 429 cube 1; +#X obj 255 409 rotateXYZ 60 30 0; +#X obj 209 450 translateXYZ 2 0 0; +#X obj 595 410 rotateXYZ 60 30 0; +#X obj 595 452 translateXYZ 2 0 0; +#X obj 595 431 sphere 1.6 4; +#X text 29 498 example #1 is the usual way to use Gem \, but the technique +shown in example #2 can be more flexible...; +#N canvas 186 321 446 463 more_interating_1 0; +#X obj 22 64 gemhead; +#X obj 22 351 rotateXYZ 0 0 12; +#X obj 22 274 scaleXYZ 0.97 0.9 1; +#X obj 22 296 translateXYZ 0.5 0 0; +#X obj 22 376 circle 0.2; +#X floatatom 131 331 5 0 0 0 - - -; +#X obj 22 226 gemlist; +#X obj 22 204 until; +#X msg 22 180 100; +#X obj 22 158 t b a; +#X obj 22 111 translateXYZ -3 0 0; +#X obj 22 43 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X text 85 198 "repeat" 100 times the same "gemlist"; +#X connect 0 0 10 0; +#X connect 1 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 5 0 1 3; +#X connect 6 0 2 0; +#X connect 7 0 6 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 9 1 6 1; +#X connect 10 0 9 0; +#X connect 11 0 0 0; +#X restore 32 561 pd more_interating_1; +#N canvas 178 159 464 582 more_interating_2 0; +#X obj 22 69 gemhead; +#X obj 22 377 scaleXYZ 0.97 0.9 1; +#X obj 22 505 circle 0.2; +#X obj 22 235 gemlist; +#X obj 22 213 until; +#X msg 22 189 100; +#X obj 22 167 t b a; +#X obj 185 322 f; +#X obj 277 309 random 1000; +#X obj 22 480 rotateXYZ 0 0 0; +#X obj 185 420 *; +#X obj 22 132 t a b; +#X obj 22 264 t a b b; +#X msg 277 283 seed \$1; +#X obj 277 256 f; +#X floatatom 295 234 5 0 0 0 - - -; +#X obj 277 334 - 500; +#X obj 185 441 / 1000; +#X obj 22 400 translateXYZ -0.5 0 0; +#X obj 22 103 translateXYZ 3 0 0; +#X obj 22 42 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X text 343 233 <- change random; +#X text 276 356 rotation angle is random; +#X text 200 390 amplitude decrease; +#X msg 203 296 100; +#X obj 222 351 - 1; +#X connect 0 0 19 0; +#X connect 1 0 18 0; +#X connect 3 0 12 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 5 0; +#X connect 6 1 3 1; +#X connect 7 0 25 0; +#X connect 7 0 10 0; +#X connect 8 0 16 0; +#X connect 9 0 2 0; +#X connect 10 0 17 0; +#X connect 11 0 6 0; +#X connect 11 1 24 0; +#X connect 11 1 14 0; +#X connect 12 0 1 0; +#X connect 12 1 7 0; +#X connect 12 2 8 0; +#X connect 13 0 8 0; +#X connect 14 0 13 0; +#X connect 15 0 14 1; +#X connect 16 0 10 1; +#X connect 17 0 9 3; +#X connect 18 0 9 0; +#X connect 19 0 11 0; +#X connect 20 0 0 0; +#X connect 24 0 7 1; +#X connect 25 0 7 1; +#X restore 32 581 pd more_interating_2; +#X obj 445 223 gemhead; +#X obj 445 198 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 443 178 #3:; +#X obj 445 410 rotateXYZ 60 30 0; +#X obj 445 452 translateXYZ 2 0 0; +#X obj 445 271 t a a; +#X text 593 178 #4:; +#X text 611 314 [gemlist] stores the current state; +#X text 613 330 and outputs it when banged; +#X text 30 528 The example #4 can easily be extended to use many primitives. +; +#X text 31 122 [gemhead]'s output is a special message describing the +"state" of the system. This state is changed by the GEM objects. This +means that the examples below are equivalent:; +#X obj 445 431 teapot 1; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 44 55 pd gemwin; +#N canvas 0 0 450 300 Gem.init 0; +#X obj 94 232 outlet; +#X obj 94 183 loadbang; +#X msg 94 208 lighting 1; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 44 36 pd Gem.init; +#X connect 0 0 13 0; +#X connect 1 0 22 0; +#X connect 1 1 2 0; +#X connect 1 2 7 0; +#X connect 4 0 3 0; +#X connect 5 0 8 0; +#X connect 6 0 20 0; +#X connect 8 0 6 0; +#X connect 11 0 21 0; +#X connect 12 0 11 0; +#X connect 13 0 23 0; +#X connect 13 1 1 0; +#X connect 14 0 27 0; +#X connect 15 0 16 0; +#X connect 16 0 14 0; +#X connect 16 1 14 0; +#X connect 16 2 14 1; +#X connect 17 0 5 0; +#X connect 18 0 0 0; +#X connect 19 0 15 0; +#X connect 20 0 12 0; +#X connect 23 0 26 0; +#X connect 23 1 24 0; +#X connect 23 2 25 0; +#X connect 27 0 29 0; +#X connect 29 0 28 0; +#X connect 33 0 38 0; +#X connect 34 0 33 0; +#X connect 36 0 44 0; +#X connect 38 0 36 0; +#X connect 38 1 36 0; +#X connect 44 0 37 0; +#X connect 46 0 45 0; diff --git a/Gem/examples/02.advanced/20.double-gemhead_vs_repeat.pd b/Gem/examples/02.advanced/20.double-gemhead_vs_repeat.pd new file mode 100644 index 0000000..518e853 --- /dev/null +++ b/Gem/examples/02.advanced/20.double-gemhead_vs_repeat.pd @@ -0,0 +1,184 @@ +#N canvas 265 100 742 519 10; +#X obj 93 144 gemhead; +#X obj 93 205 b; +#X obj 93 124 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 93 336 gemhead; +#X msg 25 305 0; +#X obj 25 285 loadbang; +#X obj 93 260 t b a; +#X obj 156 336 unpack 0 0 0; +#X obj 93 385 translateXYZ 0 -2 0; +#X msg 93 225 0 -2 0 \, 0 2 0; +#X text 203 225 two messages in one; +#X text 151 144 [gemhead]-"metro"; +#X obj 93 426 circle 0.2; +#X text 40 25 the "double [gemhead] idiom" vs. [repeat]; +#X obj 438 146 gemhead; +#X obj 438 128 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 479 375 unpack 0 0 0; +#X text 525 206 two messages in one; +#X obj 438 425 square 0.2; +#X obj 479 307 select 0 1; +#X obj 479 284 f; +#X obj 438 404 translateXYZ 0 0 0; +#X obj 354 341 loadbang; +#X msg 354 368 draw line; +#X obj 438 206 t a a b; +#X obj 438 229 separator; +#X obj 438 257 t a b; +#X msg 497 259 0; +#X msg 479 328 0 -2 0; +#X msg 511 348 0 2 0; +#X obj 508 284 + 1; +#X text 258 65 The gemhead object resets the states for OpenGL and +also some pix_ settings. Anything after it is starts as a clean state +similar to combining [separator] and [pix_separator]. (cc); +#N canvas 220 0 701 555 more_on_the_"repeat"_technics 0; +#X obj 21 54 gemhead; +#X obj 21 281 separator; +#X obj 21 128 t a b; +#X msg 118 270 seed 1; +#X obj 21 445 translateXYZ; +#X obj 21 470 circle 0.1; +#X obj 118 354 random 200; +#X obj 199 354 random 200; +#X obj 118 376 - 100; +#X obj 199 377 - 100; +#X obj 199 398 / 30; +#X obj 118 397 / 30; +#X msg 199 270 seed 2; +#X obj 21 310 t a b b; +#X obj 118 313 spigot 0; +#X obj 199 312 spigot 0; +#X obj 278 276 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 311 274 <- if you reset the random at the begining of each +frame \, then all frames look the same.; +#X obj 21 101 scaleXYZ 1 1 1; +#X floatatom 52 80 5 0 0 0 - - -; +#X floatatom 95 80 5 0 0 0 - - -; +#X obj 21 230 gemlist; +#X obj 21 208 until; +#X msg 21 184 100; +#X obj 21 162 t b a; +#X text 23 504 This patch shows how to draw the same primitive with +the a single [gemhead] many times; +#X obj 21 35 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X connect 0 0 18 0; +#X connect 1 0 13 0; +#X connect 2 0 24 0; +#X connect 2 1 3 0; +#X connect 2 1 12 0; +#X connect 3 0 14 0; +#X connect 4 0 5 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 4 2; +#X connect 11 0 4 1; +#X connect 12 0 15 0; +#X connect 13 0 4 0; +#X connect 13 1 6 0; +#X connect 13 1 7 0; +#X connect 14 0 6 0; +#X connect 15 0 7 0; +#X connect 16 0 14 1; +#X connect 16 0 15 1; +#X connect 18 0 2 0; +#X connect 19 0 18 1; +#X connect 20 0 18 2; +#X connect 21 0 1 0; +#X connect 22 0 21 0; +#X connect 23 0 22 0; +#X connect 24 0 23 0; +#X connect 24 1 21 1; +#X connect 26 0 0 0; +#X restore 370 469 pd more_on_the_"repeat"_technics; +#X obj 93 186 translateXYZ; +#X floatatom 120 168 5 0 0 0 - - -; +#X text 168 167 <- fun!; +#X obj 438 187 translateXYZ; +#X floatatom 465 169 5 0 0 0 - - -; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 53 69 pd gemwin; +#X connect 0 0 33 0; +#X connect 1 0 9 0; +#X connect 2 0 0 0; +#X connect 3 0 8 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 3 0; +#X connect 6 1 7 0; +#X connect 7 0 8 1; +#X connect 7 1 8 2; +#X connect 7 2 8 3; +#X connect 8 0 12 0; +#X connect 9 0 6 0; +#X connect 14 0 36 0; +#X connect 15 0 14 0; +#X connect 16 0 21 1; +#X connect 16 1 21 2; +#X connect 16 2 21 3; +#X connect 19 0 28 0; +#X connect 19 1 29 0; +#X connect 20 0 19 0; +#X connect 20 0 30 0; +#X connect 21 0 18 0; +#X connect 22 0 23 0; +#X connect 23 0 18 0; +#X connect 24 0 25 0; +#X connect 24 1 25 0; +#X connect 24 2 27 0; +#X connect 25 0 26 0; +#X connect 26 0 21 0; +#X connect 26 1 20 0; +#X connect 27 0 20 1; +#X connect 28 0 16 0; +#X connect 29 0 16 0; +#X connect 30 0 20 1; +#X connect 33 0 1 0; +#X connect 34 0 33 1; +#X connect 36 0 24 0; +#X connect 37 0 36 1; diff --git a/Gem/examples/02.advanced/21.basic_LSystem.pd b/Gem/examples/02.advanced/21.basic_LSystem.pd new file mode 100644 index 0000000..301b09a --- /dev/null +++ b/Gem/examples/02.advanced/21.basic_LSystem.pd @@ -0,0 +1,138 @@ +#N canvas 515 27 647 743 10; +#X obj 15 16 gemhead; +#X obj 76 483 GEMglPushMatrix; +#X obj 96 462 GEMglPopMatrix; +#X floatatom 353 502 5 0 0 0 - - -; +#X obj 15 63 rotateXYZ 0 0 90; +#X floatatom 201 508 5 0 0 0 - - -; +#X floatatom 201 486 5 0 0 0 - - -; +#X obj 262 35 gemhead; +#X obj 262 61 world_light; +#X obj 15 607 translateXYZ 0.05 0 0; +#X obj 15 140 route F; +#X text 271 163 <- rule 1; +#X obj 15 187 route F; +#X msg 15 211 F \, [ \, - \, F \, F \, ] \, F \, [ \, + \, F \, ] \, +F; +#X obj 15 235 route F; +#X text 272 209 <- rule 2; +#X text 271 257 <- rule 3; +#X msg 15 110 F; +#X obj 15 85 t b a; +#X obj 15 558 translateXYZ 0.05 0 0; +#X obj 15 583 rectangle 0.1 0.01; +#X obj 15 41 translateXYZ 0 -3 0; +#X obj 35 530 rotateXYZ 0 0 50; +#X obj 54 506 rotateXYZ 0 0 -40; +#X obj 353 521 / 100; +#X msg 353 479 10; +#X obj 353 456 loadbang; +#X text 243 485 <- try this; +#X text 125 310 <- create the primitive according to the Lsystem; +#X text 270 276 These rules create an Lsystem; +#X text 152 381 <- Store the current state sent by [gemhead] and distribute +it to the corresponding primitives; +#X text 397 502 <- size of the system; +#X msg 15 164 F \, [ \, - \, F \, ] \, F \, [ \, + \, F \, ] \, F; +#X text 12 640 This is a basic implementation of Lindenmayer System +(LSystem) in GEM. Wikipedia is a good place for informations about +Lsystems; +#X obj 15 351 gemlist; +#X obj 47 110 s \$0-gemlist; +#X obj 35 372 gemlist; +#X obj 54 395 gemlist; +#X obj 76 417 gemlist; +#X obj 96 438 gemlist; +#X obj 142 330 r \$0-gemlist; +#X obj 15 309 route F + - [ ]; +#X msg 15 259 F \, [ \, - \, F \, F \, ] \, F \, [ \, + \, F \, ] \, +F; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 377 62 pd gemwin; +#N canvas 0 0 450 300 Gem.init 0; +#X obj 67 72 loadbang; +#X msg 67 93 lighting 1; +#X obj 67 114 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 377 40 pd Gem.init; +#X connect 0 0 21 0; +#X connect 3 0 24 0; +#X connect 4 0 18 0; +#X connect 5 0 22 3; +#X connect 6 0 23 3; +#X connect 7 0 8 0; +#X connect 10 0 32 0; +#X connect 10 1 12 0; +#X connect 12 0 13 0; +#X connect 12 1 14 0; +#X connect 13 0 14 0; +#X connect 14 0 42 0; +#X connect 14 1 41 0; +#X connect 17 0 10 0; +#X connect 18 0 17 0; +#X connect 18 1 35 0; +#X connect 19 0 20 0; +#X connect 20 0 9 0; +#X connect 21 0 4 0; +#X connect 24 0 9 1; +#X connect 24 0 19 1; +#X connect 24 0 20 1; +#X connect 25 0 3 0; +#X connect 26 0 25 0; +#X connect 32 0 12 0; +#X connect 34 0 19 0; +#X connect 36 0 22 0; +#X connect 37 0 23 0; +#X connect 38 0 1 0; +#X connect 39 0 2 0; +#X connect 40 0 34 1; +#X connect 40 0 36 1; +#X connect 40 0 37 1; +#X connect 40 0 38 1; +#X connect 40 0 39 1; +#X connect 41 0 34 0; +#X connect 41 1 36 0; +#X connect 41 2 37 0; +#X connect 41 3 38 0; +#X connect 41 4 39 0; +#X connect 42 0 41 0; +#X connect 44 0 43 0; diff --git a/Gem/examples/02.advanced/22.double-iterative.pd b/Gem/examples/02.advanced/22.double-iterative.pd new file mode 100644 index 0000000..218c30f --- /dev/null +++ b/Gem/examples/02.advanced/22.double-iterative.pd @@ -0,0 +1,118 @@ +#N canvas 0 0 473 588 10; +#X obj 32 103 gemhead; +#X obj 106 235 gemlist; +#X msg 106 192 20; +#X obj 106 213 until; +#X obj 32 149 route gem_state; +#X obj 32 171 route float; +#X obj 32 127 t a a; +#X obj 106 259 rotateXYZ 10 20 30; +#X obj 180 413 gemlist; +#X msg 180 370 20; +#X obj 180 391 until; +#X obj 106 327 route gem_state; +#X obj 106 349 route float; +#X obj 106 305 t a a; +#X obj 180 437 rotateXYZ 10 20 30; +#X obj 180 497 cube 0.1; +#X obj 106 280 separator; +#N canvas 0 0 450 300 light 0; +#X obj 225 45 gemhead 10; +#X floatatom 258 78 5 0 0 0 - - -; +#X floatatom 299 77 5 0 0 0 - - -; +#X floatatom 341 78 5 0 0 0 - - -; +#X msg 319 150 1 0 0; +#X obj 225 227 world_light; +#X msg 333 173 0.4 0.4 0.4; +#X msg 309 127 0 0 0; +#X obj 228 160 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X msg 228 181 debug \$1; +#X obj 225 103 rotateXYZ 0 30 0; +#X obj 27 51 gemhead 10; +#X floatatom 60 84 5 0 0 0 - - -; +#X floatatom 101 83 5 0 0 0 - - -; +#X floatatom 143 84 5 0 0 0 - - -; +#X msg 121 156 1 0 0; +#X obj 27 233 world_light; +#X msg 130 173 0.4 0.4 0.4; +#X msg 111 133 0 0 0; +#X obj 30 166 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 30 187 debug \$1; +#X obj 27 109 rotateXYZ 0 -90 0; +#X msg 362 225 0.8 0.8 0.8; +#X msg 144 199 0.7 0.7 0.7; +#X msg 346 198 0.6 0.6 0.6; +#X obj 408 87 loadbang; +#X connect 0 0 10 0; +#X connect 1 0 10 1; +#X connect 2 0 10 2; +#X connect 3 0 10 3; +#X connect 4 0 5 1; +#X connect 6 0 5 1; +#X connect 7 0 5 1; +#X connect 8 0 9 0; +#X connect 9 0 5 0; +#X connect 10 0 5 0; +#X connect 11 0 21 0; +#X connect 12 0 21 1; +#X connect 13 0 21 2; +#X connect 14 0 21 3; +#X connect 15 0 16 1; +#X connect 17 0 16 1; +#X connect 18 0 16 1; +#X connect 19 0 20 0; +#X connect 20 0 16 0; +#X connect 21 0 16 0; +#X connect 22 0 5 1; +#X connect 23 0 16 1; +#X connect 24 0 5 1; +#X connect 25 0 23 0; +#X connect 25 0 24 0; +#X restore 300 152 pd light; +#X obj 300 131 gemwin; +#X msg 300 104 lighting 1 \, create \, 1; +#X obj 180 477 translateXYZ 0.3 0 0; +#X floatatom 252 414 5 0 0 0 - - -; +#X floatatom 292 415 5 0 0 0 - - -; +#X floatatom 334 415 5 0 0 0 - - -; +#X floatatom 254 456 5 0 0 0 - - -; +#X floatatom 300 456 5 0 0 0 - - -; +#X floatatom 342 457 5 0 0 0 - - -; +#X floatatom 176 236 5 0 0 0 - - -; +#X floatatom 216 237 5 0 0 0 - - -; +#X floatatom 258 237 5 0 0 0 - - -; +#X text 309 238 <- fun 1; +#X text 386 416 <- fun 2; +#X text 389 457 <- fun 3; +#X text 136 30 double iterative process; +#X connect 0 0 6 0; +#X connect 1 0 7 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 5 1 2 0; +#X connect 6 0 4 0; +#X connect 6 1 1 1; +#X connect 7 0 16 0; +#X connect 8 0 14 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 12 0; +#X connect 12 1 9 0; +#X connect 13 0 11 0; +#X connect 13 1 8 1; +#X connect 14 0 20 0; +#X connect 16 0 13 0; +#X connect 19 0 18 0; +#X connect 20 0 15 0; +#X connect 21 0 14 1; +#X connect 22 0 14 2; +#X connect 23 0 14 3; +#X connect 24 0 20 1; +#X connect 25 0 20 2; +#X connect 26 0 20 3; +#X connect 27 0 7 1; +#X connect 28 0 7 2; +#X connect 29 0 7 3; diff --git a/Gem/examples/02.advanced/23.SplitScreen.pd b/Gem/examples/02.advanced/23.SplitScreen.pd new file mode 100644 index 0000000..8c8a237 --- /dev/null +++ b/Gem/examples/02.advanced/23.SplitScreen.pd @@ -0,0 +1,342 @@ +#N canvas 26 51 799 698 10; +#N canvas 22 50 213 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 24 75 pd Gem.init; +#N canvas 330 97 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X obj 350 150 t b b; +#X msg 418 214 reset \, lighting 1 \, color 0.3 0.3 0.3; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 17 0; +#X connect 10 1 12 0; +#X connect 11 0 14 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 0 0; +#X connect 17 0 11 0; +#X connect 17 1 18 0; +#X connect 18 0 7 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 24 99 pd gemwin; +#X obj 36 576 rotateXYZ; +#X obj 36 499 t a b; +#X obj 88 501 i; +#X obj 141 501 + 1; +#X obj 141 523 % 360; +#X obj 36 669 teapot; +#X obj 142 101 gemhead; +#X obj 142 123 world_light; +#X obj 36 417 gemreceive framehead 50; +#X obj 36 648 scale 1; +#N canvas 223 51 450 300 scale 0; +#X obj 114 26 inlet bang; +#X obj 114 256 outlet scale; +#X obj 114 48 t b b; +#X msg 145 116 5 \$1; +#X obj 114 117 del; +#X msg 114 159 1 \$1; +#X msg 114 71 1000; +#X msg 209 93 stop; +#X obj 209 115 t a a; +#X obj 114 138 f; +#X obj 115 95 t f f f; +#X obj 114 184 t a a; +#X obj 114 206 line; +#X msg 251 53 bang; +#X connect 0 0 2 0; +#X connect 2 0 6 0; +#X connect 2 1 7 0; +#X connect 3 0 11 0; +#X connect 4 0 9 0; +#X connect 5 0 11 0; +#X connect 6 0 10 0; +#X connect 7 0 8 0; +#X connect 8 0 4 0; +#X connect 9 0 5 0; +#X connect 10 0 4 0; +#X connect 10 1 3 0; +#X connect 10 2 9 1; +#X connect 11 0 12 0; +#X connect 12 0 1 0; +#X connect 13 0 2 0; +#X restore 120 620 pd scale; +#X msg 120 595 bang; +#X obj 88 523 t f f; +#X obj 88 545 t f f; +#X obj 120 574 select 0; +#X obj 36 439 separator; +#X obj 246 459 separator; +#X obj 246 525 t a b; +#X obj 298 527 i; +#X obj 351 527 + 1; +#X obj 351 549 % 360; +#X obj 298 549 t f f; +#X obj 298 571 t f f; +#X obj 246 437 gemreceive framehead 60; +#X obj 246 602 rotateXYZ 45 0 0; +#X obj 246 481 color 0 0 1; +#X obj 36 461 color 1 1 1; +#X obj 423 474 gemreceive framehead 70; +#X obj 423 496 separator; +#X obj 423 518 color 0 1 0; +#X obj 423 642 cube 0.5; +#X obj 423 562 depth; +#X obj 423 622 translateXYZ -0.4 -0.4 0.4; +#N canvas 1 51 450 447 move 0; +#X obj 128 403 outlet; +#X obj 128 326 unpack 0 0 0; +#X obj 128 380 pack 0 0 0; +#X obj 128 358 * -3.1; +#X obj 179 358 * -3.1; +#X obj 235 358 * 3.1; +#X obj 128 275 line; +#X obj 128 297 pack 0 0 0; +#X obj 223 248 line; +#X obj 223 270 t b f; +#X obj 297 247 line; +#X obj 297 269 t b f; +#X obj 133 159 select 0 1 2 3 4 5; +#X msg 116 188 1; +#X msg 152 187 1; +#X msg 223 189 1; +#X msg 190 190 0; +#X msg 255 187 0; +#X msg 290 185 0; +#X obj 133 78 loadbang; +#X obj 202 83 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 133 122 random 6; +#X obj 133 100 metro 500; +#X msg 129 251 \$1 1000; +#X msg 223 223 \$1 1000; +#X msg 297 222 \$1 1000; +#X connect 1 0 3 0; +#X connect 1 1 4 0; +#X connect 1 2 5 0; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 1 0; +#X connect 8 0 9 0; +#X connect 9 0 7 0; +#X connect 9 1 7 1; +#X connect 10 0 11 0; +#X connect 11 0 7 0; +#X connect 11 1 7 2; +#X connect 12 0 13 0; +#X connect 12 1 14 0; +#X connect 12 2 16 0; +#X connect 12 3 15 0; +#X connect 12 4 17 0; +#X connect 12 5 18 0; +#X connect 13 0 23 0; +#X connect 14 0 24 0; +#X connect 15 0 25 0; +#X connect 16 0 24 0; +#X connect 17 0 23 0; +#X connect 18 0 25 0; +#X connect 19 0 22 0; +#X connect 20 0 22 0; +#X connect 21 0 12 0; +#X connect 22 0 21 0; +#X connect 23 0 6 0; +#X connect 24 0 8 0; +#X connect 25 0 10 0; +#X restore 517 558 pd move; +#X obj 423 584 translateXYZ; +#X obj 517 580 unpack 0 0 0; +#X obj 630 620 sphere; +#X obj 630 590 color 1 0 0; +#X obj 630 568 translateXYZ 0 3 0; +#X obj 630 522 gemreceive framehead1; +#X obj 630 544 separator; +#X text 38 23 split-screen; +#X obj 260 13 cnv 15 500 240 empty empty SplitScreen1 20 12 0 14 -233017 +-66577 0; +#X obj 260 260 cnv 15 500 140 empty empty SplitScreen2 20 12 0 14 -233017 +-66577 0; +#X obj 276 286 gemhead 1; +#X obj 588 346 pix_texture; +#X obj 276 308 gemframebuffer; +#X obj 276 372 s framehead; +#X obj 588 301 gemhead 60; +#X obj 588 322 translateXYZ 2 0 0; +#X obj 276 330 rotateXYZ 90 0 0; +#X obj 276 350 translateXYZ 0 -4 0; +#X obj 588 368 square 1.9; +#X obj 277 41 gemhead 1; +#X obj 588 117 pix_texture; +#X obj 277 141 translateXYZ 0 0 -4; +#X obj 588 71 gemhead 50; +#X obj 588 93 translateXYZ -2 0 0; +#X obj 309 185 s framehead; +#N canvas 1 51 450 300 view 0; +#X obj 89 284 outlet rotate; +#X obj 237 283 outlet translate; +#X obj 81 50 inlet; +#X obj 81 72 route view; +#X obj 81 124 unpack 0 0 0 0 0; +#X obj 81 146 pack 0 0 0; +#X obj 89 245 pack 0 0 0; +#X obj 81 94 pack 0 0 0 0 0; +#X obj 89 222 f; +#X obj 89 199 t b f; +#X connect 2 0 3 0; +#X connect 3 0 7 0; +#X connect 4 0 5 0; +#X connect 4 1 5 1; +#X connect 4 2 5 2; +#X connect 4 3 9 0; +#X connect 4 4 8 1; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 4 0; +#X connect 8 0 6 0; +#X connect 9 0 8 0; +#X connect 9 1 6 1; +#X restore 454 64 pd view; +#X obj 277 63 gemframebuffer; +#X obj 588 139 square 1.9; +#X obj 277 163 t a a; +#X obj 326 121 unpack 0 0 0; +#X obj 305 82 unpack 0 0 0; +#X obj 277 102 rotateXYZ 0 0 0; +#X msg 454 40 view 0 0 -4 \$1; +#X obj 277 213 s framehead1; +#X obj 588 50 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 263 17 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 263 263 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 588 278 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 423 540 ortho; +#X obj 246 664 square 1; +#X obj 246 503 translateXYZ 3 -2 0; +#X text 14 161 this will render a single scene; +#X text 13 189 from two different view-points; +#X text 13 175 into two framebuffers.; +#X text 16 224 the red sphere is only rendered; +#X text 18 240 in the left-hand "screen".; +#X obj 454 23 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 +-262144 -1 -1 0 256; +#X floatatom 141 549 5 0 0 0 - - -, f 5; +#X connect 0 0 1 0; +#X connect 2 0 11 0; +#X connect 3 0 2 0; +#X connect 3 1 4 0; +#X connect 4 0 14 0; +#X connect 5 0 6 0; +#X connect 6 0 4 1; +#X connect 8 0 9 0; +#X connect 10 0 17 0; +#X connect 11 0 7 0; +#X connect 12 0 11 1; +#X connect 13 0 12 0; +#X connect 14 0 15 0; +#X connect 14 1 5 0; +#X connect 15 0 2 1; +#X connect 15 1 16 0; +#X connect 16 0 13 0; +#X connect 17 0 28 0; +#X connect 18 0 27 0; +#X connect 19 0 26 0; +#X connect 19 1 20 0; +#X connect 20 0 23 0; +#X connect 21 0 22 0; +#X connect 22 0 20 1; +#X connect 23 0 24 0; +#X connect 23 1 21 0; +#X connect 24 0 26 3; +#X connect 25 0 18 0; +#X connect 26 0 75 0; +#X connect 27 0 76 0; +#X connect 28 0 3 0; +#X connect 29 0 30 0; +#X connect 30 0 31 0; +#X connect 31 0 74 0; +#X connect 33 0 36 0; +#X connect 34 0 32 0; +#X connect 35 0 37 0; +#X connect 36 0 34 0; +#X connect 37 0 36 1; +#X connect 37 1 36 2; +#X connect 37 2 36 3; +#X connect 39 0 38 0; +#X connect 40 0 39 0; +#X connect 41 0 42 0; +#X connect 42 0 40 0; +#X connect 46 0 48 0; +#X connect 47 0 54 0; +#X connect 48 0 52 0; +#X connect 48 1 47 1; +#X connect 50 0 51 0; +#X connect 51 0 47 0; +#X connect 52 0 53 0; +#X connect 53 0 49 0; +#X connect 55 0 62 0; +#X connect 56 0 63 0; +#X connect 57 0 64 0; +#X connect 58 0 59 0; +#X connect 59 0 56 0; +#X connect 61 0 66 0; +#X connect 61 1 65 0; +#X connect 62 0 67 0; +#X connect 62 1 56 1; +#X connect 64 0 69 0; +#X connect 64 1 60 0; +#X connect 65 0 57 1; +#X connect 65 1 57 2; +#X connect 65 2 57 3; +#X connect 66 0 67 1; +#X connect 66 1 67 2; +#X connect 66 2 67 3; +#X connect 67 0 57 0; +#X connect 68 0 61 0; +#X connect 70 0 58 0; +#X connect 71 0 55 0; +#X connect 72 0 46 0; +#X connect 73 0 50 0; +#X connect 74 0 33 0; +#X connect 76 0 19 0; +#X connect 82 0 68 0; +#X connect 83 0 2 2; diff --git a/Gem/examples/02.advanced/snapshotHD.pd b/Gem/examples/02.advanced/snapshotHD.pd new file mode 100644 index 0000000..1e3d1bd --- /dev/null +++ b/Gem/examples/02.advanced/snapshotHD.pd @@ -0,0 +1,114 @@ +#N canvas 143 49 609 575 10; +#X obj 152 105 gemframebuffer; +#X obj 179 148 translateXYZ 0 0 -4; +#X obj 152 126 t a a; +#X obj 242 181 inlet; +#X msg 224 84 dimen \$1 \$2; +#X obj 179 169 outlet; +#X obj 224 64 t l l; +#X obj 317 41 /; +#X obj 317 62 t f f; +#X obj 317 82 * -1; +#X obj 317 103 pack f f; +#X msg 317 126 perspec \$1 \$2 -1 1 1 20; +#X obj 374 352 pix_texture; +#X obj 70 16 loadbang; +#X obj 365 181 * 4; +#X msg 365 202 \$1 4; +#X obj 435 181 /; +#X msg 435 161 4 \$1; +#X msg 435 202 4 \$1; +#X obj 365 225 spigot; +#X obj 435 225 spigot; +#X obj 402 263 unpack f f; +#X obj 374 373 rectangle 4 4; +#X obj 347 394 rectangle 4 4; +#X obj 295 342 loadbang; +#X msg 295 363 draw line; +#X obj 401 202 < 1; +#X obj 477 202 >= 1; +#X obj 347 321 t a a; +#X obj 152 84 inlet; +#X obj 347 300 gemhead 100000; +#X msg 225 13 bang; +#X obj 152 548 pix_buffer \$0-buf 1; +#X obj 167 432 pix_buffer_write \$0-buf; +#X msg 313 392 0; +#X msg 152 521 save \$1 0; +#X msg 152 474 bang; +#X obj 152 323 spigot; +#X msg 185 303 1; +#X msg 200 323 0; +#X obj 242 201 route symbol; +#X obj 242 219 symbol; +#X obj 242 239 t s b; +#X obj 294 237 t b; +#X obj 224 43 pack \$1 \$2; +#X obj 167 410 pix_snap 0 0 \$1 \$2; +#X obj 152 501 symbol \$3; +#X obj 152 343 t b a b b b; +#X obj 167 374 t a b a; +#X text 453 523 (c) Jack/RYBN 2011; +#X connect 0 0 2 0; +#X connect 0 1 12 1; +#X connect 1 0 5 0; +#X connect 2 0 37 0; +#X connect 2 1 1 0; +#X connect 3 0 40 0; +#X connect 4 0 0 0; +#X connect 6 0 4 0; +#X connect 6 1 7 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 8 0 14 0; +#X connect 8 0 17 0; +#X connect 8 1 10 1; +#X connect 8 1 26 0; +#X connect 8 1 27 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 0 0; +#X connect 12 0 22 0; +#X connect 13 0 44 0; +#X connect 14 0 15 0; +#X connect 15 0 19 0; +#X connect 16 0 18 0; +#X connect 17 0 16 0; +#X connect 18 0 20 0; +#X connect 19 0 21 0; +#X connect 20 0 21 0; +#X connect 21 0 22 1; +#X connect 21 0 23 1; +#X connect 21 1 22 2; +#X connect 21 1 23 2; +#X connect 24 0 25 0; +#X connect 25 0 23 0; +#X connect 26 0 19 1; +#X connect 27 0 20 1; +#X connect 28 0 23 0; +#X connect 28 1 12 0; +#X connect 29 0 0 0; +#X connect 30 0 28 0; +#X connect 31 0 44 0; +#X connect 34 0 33 1; +#X connect 35 0 32 0; +#X connect 36 0 46 0; +#X connect 37 0 47 0; +#X connect 38 0 37 1; +#X connect 39 0 37 1; +#X connect 40 0 41 0; +#X connect 40 1 43 0; +#X connect 41 0 42 0; +#X connect 42 0 46 1; +#X connect 42 1 43 0; +#X connect 43 0 38 0; +#X connect 44 0 6 0; +#X connect 45 0 33 0; +#X connect 46 0 35 0; +#X connect 47 0 36 0; +#X connect 47 1 48 0; +#X connect 47 3 34 0; +#X connect 47 4 39 0; +#X connect 48 0 45 0; +#X connect 48 1 45 0; +#X connect 48 2 45 0; diff --git a/Gem/examples/03.lighting/01.world_light.pd b/Gem/examples/03.lighting/01.world_light.pd new file mode 100644 index 0000000..8987c38 --- /dev/null +++ b/Gem/examples/03.lighting/01.world_light.pd @@ -0,0 +1,84 @@ +#N canvas 139 90 771 570 10; +#X obj 518 59 gemhead; +#X msg 86 180 lighting 1; +#X obj 518 170 rotate; +#X floatatom 563 132 0 0 0 0 - - -; +#X obj 318 508 world_light; +#X obj 318 394 gemhead 1; +#X msg 86 149 lighting 0; +#X obj 518 194 sphere; +#X text 150 38 create a sphere with and without lighting; +#X text 533 105 rotate the sphere; +#X text 139 545 creates a light an infinite distance away.; +#X text 314 341 gemhead has a value of 1 so that it is rendered before +the sphere is; +#X text 52 124 you can turn lighting on and off while it is running +; +#X msg 457 466 1 1 1; +#X msg 404 464 1 0 1; +#X text 508 460 change the lights color; +#X obj 318 456 rotateXYZ; +#X floatatom 409 399 0 0 0 0 - - -; +#X msg 185 424 debug 0; +#X msg 186 455 debug 1; +#X text 96 400 figure out where the light is; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 2 0; +#X connect 1 0 22 0; +#X connect 2 0 7 0; +#X connect 3 0 2 1; +#X connect 5 0 16 0; +#X connect 6 0 22 0; +#X connect 13 0 4 1; +#X connect 14 0 4 1; +#X connect 16 0 4 0; +#X connect 17 0 16 2; +#X connect 18 0 4 0; +#X connect 19 0 4 0; +#X connect 21 0 22 0; diff --git a/Gem/examples/03.lighting/02.light.pd b/Gem/examples/03.lighting/02.light.pd new file mode 100644 index 0000000..21f8811 --- /dev/null +++ b/Gem/examples/03.lighting/02.light.pd @@ -0,0 +1,96 @@ +#N canvas 253 63 751 605 10; +#X obj 532 45 gemhead; +#X msg 107 177 lighting 1; +#X obj 532 156 rotate; +#X floatatom 580 137 4 0 0 0 - - -; +#X obj 313 354 gemhead 1; +#X msg 107 146 lighting 0; +#X obj 532 177 sphere; +#X text 150 38 create a sphere with and without lighting; +#X text 547 91 rotate the sphere; +#X text 313 314 gemhead has a value of 1 so that it is rendered before +the sphere is; +#X text 46 125 you can turn lighting on and off while it is running +; +#X msg 398 507 1 1 1; +#X msg 345 505 1 0 1; +#X text 449 501 change the lights color; +#X floatatom 389 355 0 0 0 0 - - -; +#X msg 185 424 debug 0; +#X msg 186 455 debug 1; +#X text 96 400 figure out where the light is; +#X obj 313 535 light; +#X text 240 558 creates a local light; +#X msg 434 436 2; +#X msg 477 436 3; +#X msg 390 438 1.1; +#X text 389 417 change the position of the light; +#X obj 313 395 rotateXYZ 0 -60 0; +#X obj 313 475 translateXYZ 2 0 0; +#X obj 566 118 hsl 128 15 0 360 0 0 empty empty empty -2 -6 0 10 -233472 +-1 -1 0 1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 62 264 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 32 281 pd gemwin; +#X connect 0 0 2 0; +#X connect 1 0 28 0; +#X connect 2 0 6 0; +#X connect 4 0 24 0; +#X connect 5 0 28 0; +#X connect 11 0 18 1; +#X connect 12 0 18 1; +#X connect 14 0 24 2; +#X connect 15 0 18 0; +#X connect 16 0 18 0; +#X connect 20 0 25 1; +#X connect 21 0 25 1; +#X connect 22 0 25 1; +#X connect 24 0 25 0; +#X connect 25 0 18 0; +#X connect 26 0 2 1; +#X connect 26 0 3 0; +#X connect 27 0 28 0; diff --git a/Gem/examples/03.lighting/03.controlLights.pd b/Gem/examples/03.lighting/03.controlLights.pd new file mode 100644 index 0000000..04a3dae --- /dev/null +++ b/Gem/examples/03.lighting/03.controlLights.pd @@ -0,0 +1,97 @@ +#N canvas 396 160 600 500 10; +#X obj 373 75 gemhead; +#X msg 128 75 lighting 1; +#X msg 128 107 lighting 0; +#X obj 373 115 sphere; +#X obj 148 268 gemhead; +#X obj 148 424 light; +#X obj 148 308 rotateXYZ; +#X floatatom 238 274 0 0 0 0 - - -; +#X msg 55 355 debug 1; +#X msg 56 388 debug 0; +#X msg 178 399 1 0 0; +#X obj 148 346 translateXYZ 3 0 0; +#X obj 399 256 gemhead; +#X obj 399 296 rotateXYZ; +#X floatatom 489 262 0 0 0 0 - - -; +#X msg 305 352 debug 1; +#X msg 306 385 debug 0; +#X msg 471 396 0 1 0; +#X obj 399 426 world_light; +#X obj 471 364 loadbang; +#X obj 178 370 loadbang; +#X floatatom 246 305 0 0 0 0 - - -; +#X text 263 177 notice that translation affects the; +#X text 261 190 light object \, but not the world_light; +#X obj 399 336 translateXYZ 3 0 0; +#X floatatom 476 312 0 0 0 0 - - -; +#X text 504 311 quite useless; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 148 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 165 pd gemwin; +#X connect 0 0 3 0; +#X connect 1 0 28 0; +#X connect 2 0 28 0; +#X connect 4 0 6 0; +#X connect 6 0 11 0; +#X connect 7 0 6 2; +#X connect 8 0 5 0; +#X connect 9 0 5 0; +#X connect 10 0 5 1; +#X connect 11 0 5 0; +#X connect 12 0 13 0; +#X connect 13 0 24 0; +#X connect 14 0 13 1; +#X connect 15 0 18 0; +#X connect 16 0 18 0; +#X connect 17 0 18 1; +#X connect 19 0 17 0; +#X connect 20 0 10 0; +#X connect 21 0 11 1; +#X connect 24 0 18 0; +#X connect 25 0 24 1; +#X connect 27 0 28 0; diff --git a/Gem/examples/03.lighting/04.moveSpheres.pd b/Gem/examples/03.lighting/04.moveSpheres.pd new file mode 100644 index 0000000..b2df9dd --- /dev/null +++ b/Gem/examples/03.lighting/04.moveSpheres.pd @@ -0,0 +1,128 @@ +#N canvas 172 20 824 640 10; +#X text 745 116 on; +#X text 782 114 off; +#X text 557 122 on; +#X text 594 120 off; +#X msg 742 143 1; +#X msg 779 142 0; +#X text 303 503 on; +#X text 340 501 off; +#X msg 116 527 1; +#X msg 152 529 0; +#X msg 297 529 1; +#X msg 335 529 0; +#X obj 373 547 gemhead 1; +#X obj 483 231 int 0; +#X obj 532 231 + 2; +#X obj 634 118 gemhead; +#X floatatom 673 252 0 0 0 0 - - -; +#X obj 444 115 gemhead; +#X msg 34 171 dimen 300 300; +#X msg 64 102 lighting 1; +#X floatatom 483 264 0 0 0 0 - - -; +#X obj 194 573 world_light; +#X obj 194 534 gemhead 1; +#X msg 63 74 lighting 0; +#X obj 673 225 int 0; +#X obj 373 584 light; +#X text 125 480 global light; +#X text 303 483 local light; +#X text 122 505 on; +#X text 152 506 off; +#X text 13 133 set the window size to 300 x 300; +#X text 28 48 you can turn lighting on and off while it is running +; +#X obj 483 197 metro 50; +#X msg 555 145 1; +#X msg 591 146 0; +#X obj 673 191 metro 100; +#X obj 735 223 + 1; +#X obj 444 147 colorRGB 1 0 1; +#X obj 634 146 colorRGB 0 1 0; +#X obj 444 301 rotate 0 1 0; +#X obj 444 342 translate 2 1 0 0; +#X obj 634 329 translate 2 0 1 0; +#X obj 634 287 rotate 1 0 0; +#X text 446 69 Purple sphere; +#X text 636 74 Green sphere; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X obj 444 424 sphere 1 5; +#X obj 634 416 sphere 1 20; +#X connect 4 0 35 0; +#X connect 5 0 35 0; +#X connect 8 0 21 0; +#X connect 9 0 21 0; +#X connect 10 0 25 0; +#X connect 11 0 25 0; +#X connect 12 0 25 0; +#X connect 13 0 14 0; +#X connect 13 0 20 0; +#X connect 14 0 13 1; +#X connect 15 0 38 0; +#X connect 16 0 42 1; +#X connect 17 0 37 0; +#X connect 18 0 46 0; +#X connect 19 0 46 0; +#X connect 20 0 39 1; +#X connect 22 0 21 0; +#X connect 23 0 46 0; +#X connect 24 0 16 0; +#X connect 24 0 36 0; +#X connect 32 0 13 0; +#X connect 33 0 32 0; +#X connect 34 0 32 0; +#X connect 35 0 24 0; +#X connect 36 0 24 1; +#X connect 37 0 39 0; +#X connect 38 0 42 0; +#X connect 39 0 40 0; +#X connect 40 0 47 0; +#X connect 41 0 48 0; +#X connect 42 0 41 0; +#X connect 45 0 46 0; diff --git a/Gem/examples/03.lighting/05.materials.pd b/Gem/examples/03.lighting/05.materials.pd new file mode 100644 index 0000000..9d722f5 --- /dev/null +++ b/Gem/examples/03.lighting/05.materials.pd @@ -0,0 +1,86 @@ +#N canvas 253 63 743 597 10; +#X obj 349 34 gemhead; +#X obj 349 307 rotate; +#X floatatom 367 272 0 0 0 0 - - -; +#X obj 220 436 gemhead 1; +#X text 83 397 gemhead has a value of 1 so that it is rendered before +the sphere is; +#X obj 220 539 light; +#X text 271 543 creates a local light; +#X obj 220 507 translateXYZ 3 0 0; +#X text 150 38 apply materials to a sphere; +#X obj 349 122 diffuse 0.2 0 0; +#X obj 349 224 ambientRGB 0 0 0; +#X obj 349 163 specular 0 0 0.9; +#X obj 349 78 shininess 128; +#X obj 349 361 sphere 2; +#X msg 428 322 50; +#X msg 469 32 10; +#X msg 506 32 100; +#X obj 220 477 rotateXYZ 0 -90 0; +#N canvas 91 174 290 179 Gem.init 0; +#X obj 118 18 loadbang; +#X msg 201 78 reset; +#X obj 118 113 outlet; +#X obj 118 45 t b b; +#X msg 118 79 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 34 138 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 155 pd gemwin; +#X connect 0 0 12 0; +#X connect 1 0 13 0; +#X connect 2 0 1 1; +#X connect 3 0 17 0; +#X connect 7 0 5 0; +#X connect 9 0 11 0; +#X connect 10 0 1 0; +#X connect 11 0 10 0; +#X connect 12 0 9 0; +#X connect 14 0 13 2; +#X connect 15 0 12 1; +#X connect 16 0 12 1; +#X connect 17 0 7 0; +#X connect 18 0 19 0; diff --git a/Gem/examples/04.pix/01.image.pd b/Gem/examples/04.pix/01.image.pd new file mode 100644 index 0000000..0abd4a9 --- /dev/null +++ b/Gem/examples/04.pix/01.image.pd @@ -0,0 +1,60 @@ +#N canvas 452 108 681 502 12; +#X text 172 376 click on the pix_image object to display the loaded +image with imgview; +#X obj 179 199 gemhead; +#X obj 179 351 pix_draw; +#X text 196 18 display an image using pix_draw; +#X obj 179 227 pix_image ../data/dancer.JPG; +#X obj 179 309 translateXYZ; +#X floatatom 315 261 0 0 0 0 - - -; +#X text 176 177 notice that Z doesn't change the size of the image +; +#X text 62 442 On most machines \, pix_draw is MUCH slower than pix_texture. +However \, pix_draw is easier to use in an example patch.; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 315 284 / 100; +#X floatatom 264 261 0 0 0 0 - - -; +#X obj 264 284 / 100; +#X floatatom 213 261 0 0 0 0 - - -; +#X obj 213 284 / 100; +#X connect 1 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X connect 6 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; +#X connect 13 0 5 3; +#X connect 14 0 15 0; +#X connect 15 0 5 2; +#X connect 16 0 17 0; +#X connect 17 0 5 1; diff --git a/Gem/examples/04.pix/02.multiimage.pd b/Gem/examples/04.pix/02.multiimage.pd new file mode 100644 index 0000000..5f0c519 --- /dev/null +++ b/Gem/examples/04.pix/02.multiimage.pd @@ -0,0 +1,49 @@ +#N canvas 411 137 739 504 12; +#X msg 345 170 1; +#X msg 345 202 0; +#X obj 278 200 gemhead; +#X msg 344 133 2; +#X text 206 104 select one of the three images to display; +#X text 154 29 display images use pix_multiimage; +#X obj 278 255 pix_multiimage ../data/temp*.JPG 2; +#X obj 20 209 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 253 pd gemwin; +#X msg 25 229 create; +#X text 21 209 Create window and render; +#X obj 278 313 pix_texture; +#X obj 278 335 square 3; +#X connect 0 0 6 1; +#X connect 1 0 6 1; +#X connect 2 0 6 0; +#X connect 3 0 6 1; +#X connect 6 0 11 0; +#X connect 8 0 9 0; +#X connect 9 0 8 0; +#X connect 11 0 12 0; diff --git a/Gem/examples/04.pix/04.ImageInPlace.pd b/Gem/examples/04.pix/04.ImageInPlace.pd new file mode 100644 index 0000000..72e6f0b --- /dev/null +++ b/Gem/examples/04.pix/04.ImageInPlace.pd @@ -0,0 +1,64 @@ +#N canvas 314 61 654 599 12; +#X msg 489 227 1; +#X msg 489 259 0; +#X obj 375 254 gemhead; +#X msg 488 190 2; +#X text 254 156 select one of the three images to display; +#X obj 375 308 pix_imageInPlace; +#X msg 121 288 download; +#X msg 124 318 purge; +#X obj 375 367 square; +#X text 206 20 display images use pix_imageInPlace; +#X text 64 389 pix_imageInPlace is slightly different than pix_multiimage. +When you select an image to display with pix_multiimage \, it copies +over the image data to the pix_buffer \, which is then used by pix_texture. +; +#X text 62 451 This is potentially slow if you are trying to change +between a lot of images \, but it doesn't use a lot of texture ram. +; +#X text 62 503 pix_imageInPlace sends all of the image data to texture +RAM when the preload message is received. This means that you cannot +process any of the pixel data \, but it is extremely quick to change +between the various images.; +#X msg 119 255 preload ../data/temp*.JPG 2; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 5 1; +#X connect 1 0 5 1; +#X connect 2 0 5 0; +#X connect 3 0 5 1; +#X connect 5 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 5 0; +#X connect 13 0 5 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; diff --git a/Gem/examples/04.pix/05.film.pd b/Gem/examples/04.pix/05.film.pd new file mode 100644 index 0000000..601dd7b --- /dev/null +++ b/Gem/examples/04.pix/05.film.pd @@ -0,0 +1,121 @@ +#N canvas 61 44 827 553 12; +#X obj 90 186 gemhead; +#X floatatom 220 155 5 0 0 0 - - -; +#X msg 150 156 auto \$1; +#X obj 150 137 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X floatatom 124 261 5 0 0 0 - - -; +#X msg 197 392 -1 -2 -1 -2 8 -2 1 -2 1; +#X obj 90 467 pix_convolve 3 3; +#X text 472 233 load and play-back a movie; +#X text 368 28 win32:; +#X text 212 134 frame; +#N canvas 243 65 604 505 README 0; +#X text 49 38 the pix_film is the same as pix_movie but does not texture +the movie immediately onto a Geo.; +#X text 50 77 therefore it is possible to manipulate the frames; +#X text 48 106 the pix_film object will return the movie in it's (more +or less) native color-space. most of the times \, this will probably +be not RGBA but RGB or BGR (on windows machines).; +#X text 48 153 do not worry about this. however \, most of the pix-manips +will only work correctly on RGBA-pixes. if this is the case and you +send it a non-RGBA pixture it will say something like "pix_object cannot +handle gray image".; +#X text 49 226 to avoid this \, you can convert your pix-buff to RGBA +using "pix_rgba". this will be a no-cost operation if the pix_buf already +is in RGBA.; +#X text 36 334 you might notice a significant performance-enhancement +by just turning the [pix_rgba] off (via the toggle). however \, not +[pix_rgba] is expensive but actually the [pix_convolve] (which appears to do +nothing when initialized with "0 0 0 0 1 0 0 0 0". When [pix_rgba] +is "off" \, the [pix_convolve] will be bypassed \, and therefore be +very fast.; +#X restore 635 187 pd README; +#X obj 90 573 square 4; +#X obj 90 233 pix_film; +#X floatatom 149 547 5 0 0 0 - - -; +#X msg 393 48 open ../data/homer.avi; +#X msg 386 111 open ../data/anim-1.mov; +#X msg 391 156 open ../data/alea.mpg; +#X text 247 502 you have to texture the movie by hand; +#X text 256 466 manipulate the movie (expensive!); +#X text 26 10 load \, play and manipulate digital videos; +#X text 423 397 edge detection; +#X msg 230 424 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 +; +#X text 715 422 smoothing; +#X obj 289 252 t f; +#X obj 197 368 loadbang; +#X obj 110 439 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X obj 90 500 pix_texture; +#X obj 20 49 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 93 pd gemwin; +#X msg 25 69 create; +#X text 21 49 Create window and render; +#X text 358 91 linux \, os-X:; +#X text 363 140 linux \, ??:; +#X obj 345 181 t a; +#X msg 410 207 open \$1; +#X obj 410 185 symbol; +#X obj 471 185 openpanel; +#X obj 563 185 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 90 309 pix_rgba; +#X text 178 289 transform the movie into RGBA-space (if the image is +not RGBA \, [pix_convolve] might not be able to process the image and +therefore will do nothing \, which will dramatically "increase" performance) +; +#X connect 0 0 12 0; +#X connect 1 0 12 1; +#X connect 2 0 12 0; +#X connect 3 0 2 0; +#X connect 5 0 6 2; +#X connect 6 0 26 0; +#X connect 12 0 38 0; +#X connect 12 1 4 0; +#X connect 12 2 23 0; +#X connect 13 0 11 1; +#X connect 14 0 33 0; +#X connect 15 0 33 0; +#X connect 16 0 33 0; +#X connect 21 0 6 2; +#X connect 23 0 12 1; +#X connect 24 0 5 0; +#X connect 25 0 6 0; +#X connect 26 0 11 0; +#X connect 28 0 29 0; +#X connect 29 0 28 0; +#X connect 33 0 12 0; +#X connect 34 0 33 0; +#X connect 35 0 34 0; +#X connect 36 0 35 0; +#X connect 37 0 36 0; +#X connect 38 0 6 0; diff --git a/Gem/examples/04.pix/05.movie.pd b/Gem/examples/04.pix/05.movie.pd new file mode 100644 index 0000000..a6227d3 --- /dev/null +++ b/Gem/examples/04.pix/05.movie.pd @@ -0,0 +1,89 @@ +#N canvas 133 25 637 554 12; +#X obj 157 59 gemhead; +#X floatatom 336 167 0 0 0 0 - - -; +#X obj 157 385 rotateXYZ; +#X obj 157 437 cube; +#X floatatom 224 359 0 0 0 0 - - -; +#X obj 224 310 metro 50; +#X obj 203 412 translateXYZ 2 1 0; +#X obj 203 438 cube; +#X obj 157 201 pix_movie; +#X text 377 167 control which frame; +#X text 256 436 automatically textures; +#X obj 177 238 print frames; +#X msg 287 25 open ../data/homer.avi; +#X obj 224 290 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X obj 325 282 print done; +#X msg 336 135 auto \$1; +#X obj 336 116 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X text 43 486 the texturing is done automatically: there is no need +to care for the image-size (it doesn't have to be a power of 2). on +the other hand \, you cannot do image-processing !! use [pix_film] +for this; +#X msg 325 259 reached the end !!!; +#X obj 293 235 t f b; +#X text 449 13 Win32; +#X text 461 73 linux; +#X msg 297 56 open ../data/anim-1.mov; +#X msg 307 87 open ../data/alea.mpg; +#X text 8 264 notice: you don't need pix_texture; +#X text 406 131 play the movie !; +#X obj 224 335 i; +#X obj 259 335 + 1; +#X obj 295 335 % 360; +#X text 471 42 apple; +#X obj 505 415 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X msg 234 221 dimen 500 500; +#X msg 279 189 dimen 1024 768; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 0 0; +#X restore 510 453 pd gemwin; +#X msg 510 430 create; +#X text 506 413 Create window:; +#X connect 0 0 8 0; +#X connect 1 0 8 1; +#X connect 2 0 3 0; +#X connect 2 0 6 0; +#X connect 4 0 2 2; +#X connect 4 0 2 3; +#X connect 5 0 26 0; +#X connect 6 0 7 0; +#X connect 8 0 2 0; +#X connect 8 1 11 0; +#X connect 8 2 19 0; +#X connect 12 0 8 0; +#X connect 13 0 5 0; +#X connect 15 0 8 0; +#X connect 16 0 15 0; +#X connect 18 0 14 0; +#X connect 19 0 8 1; +#X connect 19 1 18 0; +#X connect 22 0 8 0; +#X connect 23 0 8 0; +#X connect 26 0 27 0; +#X connect 26 0 4 0; +#X connect 27 0 28 0; +#X connect 28 0 26 1; +#X connect 31 0 32 0; +#X connect 32 0 31 0; diff --git a/Gem/examples/04.pix/06.PixRect.pd b/Gem/examples/04.pix/06.PixRect.pd new file mode 100644 index 0000000..93f5fba --- /dev/null +++ b/Gem/examples/04.pix/06.PixRect.pd @@ -0,0 +1,88 @@ +#N canvas 183 99 635 638 12; +#X obj 179 176 gemhead; +#X obj 179 587 pix_texture; +#X msg 291 536 1 0 0; +#X obj 179 612 square 3; +#X floatatom 329 238 0 -10 250 0 - - -; +#X obj 420 434 t b f; +#X obj 420 408 + 40; +#X obj 342 420 + 40; +#X text 372 182 the position; +#X text 433 539 the color; +#X obj 291 513 loadbang; +#X obj 179 204 pix_image ../data/fractal.JPG; +#X obj 329 308 t f f; +#X obj 380 308 t f f; +#X text 375 241 x-pos; +#X text 423 269 y-pos; +#X floatatom 466 304 0 -50 250 0 - - -; +#X text 512 307 width; +#X text 560 335 height; +#X obj 466 374 t b f; +#X obj 517 374 t b f; +#X obj 342 443 t b f; +#X floatatom 380 271 0 -10 250 0 - - -; +#X floatatom 517 333 0 -50 250 0 - - -; +#X msg 373 538 0 1 0; +#X obj 235 488 pack 0 0 40 40; +#X obj 179 561 pix_rectangle; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X text 118 26 draw a rectangle onto an image; +#X connect 0 0 11 0; +#X connect 1 0 3 0; +#X connect 2 0 26 2; +#X connect 4 0 12 0; +#X connect 5 0 25 0; +#X connect 5 1 25 3; +#X connect 6 0 5 0; +#X connect 7 0 21 0; +#X connect 10 0 2 0; +#X connect 11 0 26 0; +#X connect 12 0 25 0; +#X connect 12 1 7 0; +#X connect 13 0 6 0; +#X connect 13 1 25 1; +#X connect 16 0 19 0; +#X connect 19 0 7 0; +#X connect 19 1 7 1; +#X connect 20 0 6 0; +#X connect 20 1 6 1; +#X connect 21 0 25 0; +#X connect 21 1 25 2; +#X connect 22 0 13 0; +#X connect 23 0 20 0; +#X connect 24 0 26 2; +#X connect 25 0 26 1; +#X connect 26 0 1 0; +#X connect 28 0 29 0; +#X connect 29 0 28 0; diff --git a/Gem/examples/04.pix/07.PixSet.pd b/Gem/examples/04.pix/07.PixSet.pd new file mode 100644 index 0000000..b6deab3 --- /dev/null +++ b/Gem/examples/04.pix/07.PixSet.pd @@ -0,0 +1,69 @@ +#N canvas 243 272 754 536 10; +#X obj 143 110 gemhead; +#X text 99 37 ========; +#X msg 149 366 quality 0; +#X obj 143 409 square 2; +#X obj 149 343 loadbang; +#X text 101 487 maybe have a look at; +#X text 101 24 pix_set; +#X text 246 23 set the pixles of the image; +#X msg 279 165 rgb; +#X msg 279 141 rgba; +#X msg 279 189 grey; +#X msg 229 108 0 0.8 0 0 0.9 0 0.1 0 1 1 1 10; +#X msg 268 227 set 2 4; +#X text 461 109 a list of pixel-values; +#X text 331 163 interpret the list as; +#X text 514 136 r1 g1 b1 a1 r2 g2 b2 a2 r3...; +#X text 512 165 r1 g1 b1 r2 g2 b2 r3...; +#X text 512 194 grey1 grey2 grey3...; +#X text 507 236 set the imagesize to "X Y"; +#X text 306 317 creation arguments :: [X Y] of the image buffer; +#X msg 265 249 set 1 1; +#X text 253 487 [pix_dump]; +#X obj 143 243 pix_set 64 64; +#X obj 143 387 pix_texture; +#X obj 450 389 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 455 433 pd gemwin; +#X msg 455 409 create; +#X text 451 389 Create window and render; +#X connect 0 0 22 0; +#X connect 2 0 23 0; +#X connect 4 0 2 0; +#X connect 8 0 22 0; +#X connect 9 0 22 0; +#X connect 10 0 22 0; +#X connect 11 0 22 1; +#X connect 12 0 22 0; +#X connect 20 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 3 0; +#X connect 25 0 26 0; +#X connect 26 0 25 0; diff --git a/Gem/examples/04.pix/08.PixDump.pd b/Gem/examples/04.pix/08.PixDump.pd new file mode 100644 index 0000000..a21b273 --- /dev/null +++ b/Gem/examples/04.pix/08.PixDump.pd @@ -0,0 +1,64 @@ +#N canvas 53 47 761 536 10; +#X obj 143 110 gemhead; +#X obj 143 203 pix_dump; +#X text 101 24 pix_dump; +#X text 99 37 ========; +#X msg 369 184 bang; +#X obj 143 387 pix_texture; +#X msg 149 366 quality 0; +#X obj 143 409 square 2; +#X obj 149 343 loadbang; +#X text 412 184 trigger the pix_dump; +#X text 246 24 dump the pixels of the image; +#X obj 194 254 print dump; +#X text 297 265 this produces an output like; +#X text 292 285 "r1 g1 b1 a1 r2 g2 b2 a2 r3 ..."; +#X text 292 302 (r=red \; g=green \; b=blue \; a=alpha); +#X obj 474 371 repack; +#X text 278 369 maybe you would like to use; +#X text 525 373 (part of zexy); +#X text 275 389 to excerpt pixel information out of this; +#X text 101 487 maybe have a look at; +#X obj 250 487 pix_set; +#X obj 455 54 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 460 98 pd gemwin; +#X msg 460 74 create; +#X text 456 54 Create window and render; +#X obj 143 135 pix_image ../data/blob2.tif; +#X connect 0 0 25 0; +#X connect 1 0 5 0; +#X connect 1 1 11 0; +#X connect 4 0 1 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 8 0 6 0; +#X connect 22 0 23 0; +#X connect 23 0 22 0; +#X connect 25 0 1 0; diff --git a/Gem/examples/04.pix/09.Histogram.pd b/Gem/examples/04.pix/09.Histogram.pd new file mode 100644 index 0000000..5922a8e --- /dev/null +++ b/Gem/examples/04.pix/09.Histogram.pd @@ -0,0 +1,89 @@ +#N canvas 0 0 764 557 10; +#N canvas 412 247 681 394 tables 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array red 256 float 0; +#X coords 0 1 255 0 256 140 1; +#X restore 95 30 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array green 256 float 0; +#X coords 0 1 255 0 256 140 1; +#X restore 399 29 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array blue 256 float 0; +#X coords 0 1 255 0 256 140 1; +#X restore 98 214 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array alpha 64 float 0; +#X coords 0 1 63 0 256 140 1; +#X restore 396 212 graph; +#X restore 379 211 pd tables; +#X obj 34 192 gemhead; +#X obj 34 476 pix_texture; +#N canvas 0 0 450 300 (subpatch) 0; +#X array rgb 64 float 0; +#X coords 0 1 63 0 256 140 1; +#X restore 287 53 graph; +#X text 78 8 pix_curve: adjust the colour of an image; +#X text 451 213 separate tables for r \, g \, b and a; +#X msg 185 192 1; +#X msg 155 192 0; +#X msg 214 192 2; +#X obj 34 497 square 3; +#X msg 95 289 set red green blue alpha; +#X msg 99 325 set red green blue; +#X msg 99 365 set rgb; +#X obj 34 395 pix_histo rgb; +#X msg 564 57 \; rgb resize 32; +#X msg 565 93 \; rgb resize 64; +#X msg 564 135 \; rgb normalize 1; +#X obj 300 367 pix_histo rgb; +#X obj 303 328 pix_histo red green blue; +#X obj 302 288 pix_histo red green blue alpha; +#X text 313 388 one histogramm for all channels (making grey out of +rgb); +#X text 326 346 histograms for r \, g \, b; +#X text 337 306 histograms for r \, g \, b \, a; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 34 217 pix_multiimage ../data/temp*.JPG 2; +#X connect 1 0 27 0; +#X connect 2 0 9 0; +#X connect 6 0 27 1; +#X connect 7 0 27 1; +#X connect 8 0 27 1; +#X connect 10 0 13 0; +#X connect 11 0 13 0; +#X connect 12 0 13 0; +#X connect 13 0 2 0; +#X connect 24 0 25 0; +#X connect 25 0 24 0; +#X connect 27 0 13 0; diff --git a/Gem/examples/04.pix/10.PixDataSimple.pd b/Gem/examples/04.pix/10.PixDataSimple.pd new file mode 100644 index 0000000..36bb4e6 --- /dev/null +++ b/Gem/examples/04.pix/10.PixDataSimple.pd @@ -0,0 +1,90 @@ +#N canvas 284 93 594 539 10; +#X obj 46 186 gemwin; +#X obj 319 173 gemhead; +#X obj 258 329 pix_data; +#X msg 244 103 1; +#X msg 243 128 0; +#X msg 87 48 create; +#X msg 114 104 destroy; +#X msg 319 143 bang; +#X msg 205 103 bang; +#X obj 205 73 t b b; +#X msg 205 54 bang; +#X obj 233 422 translateXYZ; +#X obj 233 360 gemhead; +#X obj 233 449 color; +#X obj 233 200 t b b b b; +#X obj 369 328 * 6; +#X obj 444 328 * 6; +#X obj 444 348 - 3; +#X obj 369 348 - 3; +#X msg 348 42 1; +#X msg 391 42 0; +#X obj 84 302 world_light; +#X obj 84 274 gemhead; +#X obj 348 93 metro 5; +#X obj 233 478 sphere 0.1; +#X text 79 13 click here to begin; +#X text 320 18 turn on/off the metro; +#X obj 319 202 pix_image ../data/fractal.JPG; +#N canvas 95 194 290 179 Gem.init 0; +#X obj 118 18 loadbang; +#X msg 201 78 reset; +#X obj 118 113 outlet; +#X obj 118 45 t b b; +#X msg 118 79 lighting 1; +#X msg 22 77 buffer 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X restore 25 153 pd Gem.init; +#X text 93 34 1; +#X text 209 38 2; +#X obj 337 253 random 1000; +#X obj 337 270 / 1000; +#X obj 337 288 t f f; +#X obj 419 253 random 1000; +#X obj 419 270 / 1000; +#X obj 419 288 t f f; +#X connect 1 0 27 0; +#X connect 2 1 13 1; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 1 0; +#X connect 8 0 0 0; +#X connect 9 0 7 0; +#X connect 9 0 8 0; +#X connect 9 1 3 0; +#X connect 10 0 9 0; +#X connect 11 0 13 0; +#X connect 12 0 11 0; +#X connect 13 0 24 0; +#X connect 14 0 12 0; +#X connect 14 1 2 0; +#X connect 14 1 22 0; +#X connect 14 2 31 0; +#X connect 14 3 34 0; +#X connect 15 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 11 2; +#X connect 18 0 11 1; +#X connect 19 0 23 0; +#X connect 20 0 23 0; +#X connect 22 0 21 0; +#X connect 23 0 14 0; +#X connect 27 0 2 1; +#X connect 28 0 0 0; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 2 2; +#X connect 33 1 15 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 36 0 2 3; +#X connect 36 1 16 0; diff --git a/Gem/examples/04.pix/11.PixDataComplex.pd b/Gem/examples/04.pix/11.PixDataComplex.pd new file mode 100644 index 0000000..cb8d846 --- /dev/null +++ b/Gem/examples/04.pix/11.PixDataComplex.pd @@ -0,0 +1,117 @@ +#N canvas 331 86 929 574 10; +#X obj 30 159 gemwin; +#X obj 372 135 gemhead; +#X obj 372 164 pix_image ../data/fractal.JPG; +#X obj 285 311 pix_data; +#X msg 183 110 1; +#X msg 218 110 0; +#X msg 48 37 create; +#X msg 49 87 destroy; +#X msg 372 105 bang; +#X msg 138 111 bang; +#X obj 214 61 t b b; +#X msg 214 36 bang; +#X obj 206 400 translateXYZ; +#X obj 206 338 gemhead; +#X obj 206 436 color; +#X obj 266 205 t b b b b; +#X obj 443 313 * 6; +#X obj 443 339 - 3; +#X obj 385 341 - 3; +#X msg 292 30 1; +#X msg 325 30 0; +#X obj 84 320 world_light; +#X obj 84 274 gemhead; +#X obj 206 471 rotate 1 1 1; +#X obj 337 397 * 90; +#X obj 292 114 metro 5; +#X obj 485 313 pix_data; +#X obj 501 237 gemhead; +#N canvas 99 214 290 179 Gem.init 0; +#X obj 118 18 loadbang; +#X msg 215 80 reset; +#X obj 118 113 outlet; +#X obj 118 45 t b b; +#X msg 118 79 lighting 1; +#X msg 34 80 buffer 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X restore 30 125 pd Gem.init; +#X text 53 22 1; +#X text 217 19 2; +#X obj 336 236 random 1000; +#X obj 336 254 / 1000; +#X obj 336 272 t f f; +#X obj 418 236 random 1000; +#X obj 418 254 / 1000; +#X obj 418 272 t f f; +#X floatatom 385 366 5 0 0 0 - - -; +#X floatatom 443 366 5 0 0 0 - - -; +#X obj 385 314 * 6; +#X floatatom 341 429 5 0 0 0 - - -; +#X obj 206 506 cube 0; +#X msg 500 197 bang; +#X obj 501 272 pix_image ../data/dancer.JPG; +#X floatatom 537 423 5 0 0 0 - - -; +#X obj 537 473 * 0.2; +#X obj 537 369 f; +#X connect 1 0 2 0; +#X connect 2 0 3 1; +#X connect 3 1 14 1; +#X connect 3 2 24 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 1 0; +#X connect 8 0 27 0; +#X connect 9 0 0 0; +#X connect 10 0 8 0; +#X connect 10 0 9 0; +#X connect 10 1 4 0; +#X connect 11 0 10 0; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 23 0; +#X connect 15 0 13 0; +#X connect 15 1 3 0; +#X connect 15 1 22 0; +#X connect 15 1 26 0; +#X connect 15 2 31 0; +#X connect 15 3 34 0; +#X connect 16 0 17 0; +#X connect 17 0 12 2; +#X connect 17 0 38 0; +#X connect 18 0 12 1; +#X connect 18 0 37 0; +#X connect 19 0 25 0; +#X connect 20 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 41 0; +#X connect 24 0 23 1; +#X connect 24 0 40 0; +#X connect 25 0 15 0; +#X connect 26 1 46 0; +#X connect 27 0 43 0; +#X connect 28 0 0 0; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 3 2; +#X connect 33 0 26 2; +#X connect 33 1 39 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 36 0 3 3; +#X connect 36 0 26 3; +#X connect 36 1 16 0; +#X connect 39 0 18 0; +#X connect 42 0 27 0; +#X connect 43 0 26 1; +#X connect 44 0 45 0; +#X connect 45 0 41 1; +#X connect 46 0 44 0; diff --git a/Gem/examples/04.pix/12.add.pd b/Gem/examples/04.pix/12.add.pd new file mode 100644 index 0000000..2b5dc7f --- /dev/null +++ b/Gem/examples/04.pix/12.add.pd @@ -0,0 +1,52 @@ +#N canvas 542 198 681 468 10; +#X obj 270 175 pix_image ../data/dancer.JPG; +#X obj 270 342 pix_texture; +#X obj 270 383 square; +#X msg 329 364 3; +#X obj 369 209 gemhead 20; +#X obj 270 142 gemhead; +#X msg 370 141 open ../data/dancer.JPG; +#X obj 369 232 pix_image ../data/fractal.JPG; +#X obj 270 282 pix_add; +#X obj 20 79 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 123 pd gemwin; +#X msg 25 106 create; +#X text 21 79 Create window and render; +#X text 135 60 blending \, using pixel addition; +#X connect 0 0 8 0; +#X connect 1 0 2 0; +#X connect 3 0 2 1; +#X connect 4 0 7 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 8 1; +#X connect 8 0 1 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/04.pix/12.blending.pd b/Gem/examples/04.pix/12.blending.pd new file mode 100644 index 0000000..473c48e --- /dev/null +++ b/Gem/examples/04.pix/12.blending.pd @@ -0,0 +1,173 @@ +#N canvas 138 0 775 371 10; +#X obj 254 305 pix_texture; +#X obj 290 112 gemhead 20; +#X obj 254 65 gemhead; +#X text 257 30 various methods for blending images; +#N canvas 165 295 561 386 blending 0; +#X obj 28 65 inlet; +#X obj 191 354 outlet; +#X obj 173 285 inlet; +#X obj 320 8 inlet; +#X obj 28 322 pix_composite; +#X obj 129 323 pix_add; +#X obj 285 322 pix_diff; +#X obj 191 322 pix_subtract; +#X obj 28 227 pix_alpha; +#N canvas 445 182 508 174 select 0; +#X obj 88 35 inlet; +#X msg 88 98 1; +#X msg 144 98 2; +#X msg 201 97 3; +#X msg 257 97 0; +#X obj 88 121 outlet; +#X msg 329 100 4; +#X obj 88 59 select pix_add pix_subtract pix_diff pix_composite pix_multiply +; +#X connect 0 0 7 0; +#X connect 1 0 5 0; +#X connect 2 0 5 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 6 0 5 0; +#X connect 7 0 1 0; +#X connect 7 1 2 0; +#X connect 7 2 3 0; +#X connect 7 3 4 0; +#X connect 7 4 6 0; +#X restore 350 82 pd select blending method; +#X obj 360 324 pix_multiply; +#N canvas 172 373 450 300 demux5 0; +#X obj 59 30 inlet; +#X obj 283 17 inlet; +#X obj 59 193 outlet; +#X obj 59 137 spigot; +#X obj 96 109 == 0; +#X obj 106 137 spigot; +#X obj 153 139 spigot; +#X obj 200 137 spigot; +#X obj 246 137 spigot; +#X obj 143 109 == 1; +#X obj 190 109 == 2; +#X obj 237 109 == 3; +#X obj 283 109 == 4; +#X obj 96 83 loadbang; +#X obj 59 52 t a a a a a; +#X obj 106 194 outlet; +#X obj 153 195 outlet; +#X obj 200 196 outlet; +#X obj 246 195 outlet; +#X obj 283 61 f; +#X connect 0 0 14 0; +#X connect 1 0 19 0; +#X connect 3 0 2 0; +#X connect 4 0 3 1; +#X connect 5 0 15 0; +#X connect 6 0 16 0; +#X connect 7 0 17 0; +#X connect 8 0 18 0; +#X connect 9 0 5 1; +#X connect 10 0 6 1; +#X connect 11 0 7 1; +#X connect 12 0 8 1; +#X connect 13 0 4 0; +#X connect 14 0 3 0; +#X connect 14 1 5 0; +#X connect 14 2 6 0; +#X connect 14 3 7 0; +#X connect 14 4 8 0; +#X connect 19 0 4 0; +#X connect 19 0 9 0; +#X connect 19 0 10 0; +#X connect 19 0 11 0; +#X connect 19 0 12 0; +#X restore 28 189 pd demux5; +#X obj 320 28 t b a; +#X obj 28 129 pix_buf; +#X text 26 39 pix1; +#X text 176 269 pix2; +#X obj 350 56 symbol; +#X text 99 232 we need an alpha componenct for 'composite'; +#X text 85 115 [pix_add] and friends will overwrite the original (left) +image with the blend. [pix_buf] holds a local copy of the original +image and will refresh the output when banged.; +#X connect 0 0 13 0; +#X connect 2 0 5 1; +#X connect 2 0 4 1; +#X connect 2 0 7 1; +#X connect 2 0 6 1; +#X connect 2 0 10 1; +#X connect 3 0 12 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 1 0; +#X connect 7 0 1 0; +#X connect 8 0 4 0; +#X connect 9 0 11 1; +#X connect 10 0 1 0; +#X connect 11 0 8 0; +#X connect 11 1 5 0; +#X connect 11 2 7 0; +#X connect 11 3 6 0; +#X connect 11 4 10 0; +#X connect 12 0 13 0; +#X connect 12 1 16 0; +#X connect 13 0 11 0; +#X connect 16 0 9 0; +#X restore 254 250 pd blending; +#X obj 254 328 square 3; +#X text 461 210 additive blending (likely to get white); +#X text 461 231 subtractive blending (likely to get black); +#X text 467 184 alpha blending; +#X msg 367 281 pix_multiply; +#X msg 368 256 pix_diff; +#X msg 366 232 pix_subtract; +#X msg 366 207 pix_add; +#X msg 367 184 pix_composite; +#X text 469 281 multiply 2 images together; +#X obj 254 87 pix_image ../data/dancer.JPG; +#X obj 290 136 pix_image ../data/fractal.JPG; +#X text 465 259 difference; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 5 0; +#X connect 1 0 16 0; +#X connect 2 0 15 0; +#X connect 4 0 0 0; +#X connect 9 0 4 2; +#X connect 10 0 4 2; +#X connect 11 0 4 2; +#X connect 12 0 4 2; +#X connect 13 0 4 2; +#X connect 15 0 4 0; +#X connect 16 0 4 1; +#X connect 19 0 20 0; +#X connect 20 0 19 0; diff --git a/Gem/examples/04.pix/12.composite.pd b/Gem/examples/04.pix/12.composite.pd new file mode 100644 index 0000000..ce3a790 --- /dev/null +++ b/Gem/examples/04.pix/12.composite.pd @@ -0,0 +1,54 @@ +#N canvas 246 168 681 468 10; +#X obj 270 175 pix_image ../data/dancer.JPG; +#X obj 270 338 pix_texture; +#X obj 270 379 square; +#X msg 329 360 3; +#X obj 270 278 pix_composite; +#X obj 369 209 gemhead 20; +#X obj 270 142 gemhead; +#X obj 270 207 pix_alpha; +#X msg 370 141 open ../data/dancer.JPG; +#X obj 369 244 pix_image ../data/fractal.JPG; +#X text 135 60 blending \, using the alpha-mask; +#X obj 20 79 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 123 pd gemwin; +#X msg 25 105 create; +#X text 21 79 Create window and render; +#X connect 0 0 7 0; +#X connect 1 0 2 0; +#X connect 3 0 2 1; +#X connect 4 0 1 0; +#X connect 5 0 9 0; +#X connect 6 0 0 0; +#X connect 7 0 4 0; +#X connect 8 0 0 0; +#X connect 9 0 4 1; +#X connect 12 0 13 0; +#X connect 13 0 12 0; diff --git a/Gem/examples/04.pix/12.pix_multiply.pd b/Gem/examples/04.pix/12.pix_multiply.pd new file mode 100644 index 0000000..1826175 --- /dev/null +++ b/Gem/examples/04.pix/12.pix_multiply.pd @@ -0,0 +1,55 @@ +#N canvas 58 175 600 500 10; +#X obj 288 247 pix_image ../data/dancer.JPG; +#X obj 270 153 gemhead; +#X obj 270 188 pix_image ../data/fractal.JPG; +#X obj 288 214 gemhead 20; +#X obj 270 278 pix_multiply; +#X text 296 84 multiply two images together; +#X text 270 116 the dancer image is just black and white; +#X text 104 25 blending \, using multiplication; +#X obj 270 318 pix_texture; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 689 152 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X msg 27 83 color 1 1 1 0; +#X obj 66 65 t b b; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 270 379 square 3; +#X connect 0 0 4 1; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 8 0; +#X connect 8 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/04.pix/13.maskDancer.pd b/Gem/examples/04.pix/13.maskDancer.pd new file mode 100644 index 0000000..957a941 --- /dev/null +++ b/Gem/examples/04.pix/13.maskDancer.pd @@ -0,0 +1,55 @@ +#N canvas 4 20 600 500 10; +#X obj 270 278 pix_mask; +#X obj 288 247 pix_image ../data/dancer.JPG; +#X obj 270 153 gemhead; +#X obj 270 312 alpha; +#X obj 270 188 pix_image ../data/fractal.JPG; +#X obj 270 338 pix_texture; +#X obj 288 214 gemhead 20; +#X obj 270 379 square 3; +#X text 234 59 blending \, using mask; +#X obj 20 89 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 88 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X msg 25 82 color 1 1 1 0; +#X obj 88 64 t b b; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 133 pd gemwin; +#X msg 25 109 create; +#X text 21 89 Create window and render; +#X connect 0 0 3 0; +#X connect 1 0 0 1; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 0 0; +#X connect 5 0 7 0; +#X connect 6 0 1 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/04.pix/14.takeAlpha.pd b/Gem/examples/04.pix/14.takeAlpha.pd new file mode 100644 index 0000000..535056c --- /dev/null +++ b/Gem/examples/04.pix/14.takeAlpha.pd @@ -0,0 +1,64 @@ +#N canvas 426 68 613 402 10; +#X obj 257 92 gemhead; +#X obj 343 168 gemhead; +#X obj 257 244 pix_takealpha; +#X text 18 24 takes the alpha-channel of another image; +#X obj 456 269 pix_texture; +#X obj 456 336 square; +#X obj 456 310 translateXYZ 2 0 0; +#X obj 257 314 translateXYZ -2 0 0; +#X obj 456 289 alpha; +#X obj 257 342 square 2; +#X obj 257 270 pix_texture; +#X obj 257 290 alpha; +#X text 403 173 load an image with an alpha-mask; +#X text 355 245 take the alpha-mask of img2; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 343 210 t a a; +#X obj 257 125 pix_image ../data/temp2.JPG; +#X obj 343 190 pix_image ../data/fractalAlpha.TIF; +#X connect 0 0 19 0; +#X connect 1 0 20 0; +#X connect 2 0 10 0; +#X connect 4 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 9 0; +#X connect 8 0 6 0; +#X connect 10 0 11 0; +#X connect 11 0 7 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; +#X connect 18 0 2 1; +#X connect 18 1 4 0; +#X connect 19 0 2 0; +#X connect 20 0 18 0; diff --git a/Gem/examples/04.pix/15.pix_alpha.pd b/Gem/examples/04.pix/15.pix_alpha.pd new file mode 100644 index 0000000..de645f2 --- /dev/null +++ b/Gem/examples/04.pix/15.pix_alpha.pd @@ -0,0 +1,82 @@ +#N canvas 78 67 719 587 10; +#X obj 332 30 gemhead; +#X obj 332 371 pix_texture; +#X msg 375 394 4; +#X obj 332 76 pix_image ../data/fractal.JPG; +#X obj 332 302 pix_alpha; +#X obj 332 421 square; +#X obj 332 336 alpha; +#X msg 456 166 1 1 1; +#X msg 459 243 0 0 0; +#X msg 356 219 0.5; +#X msg 348 185 1; +#X msg 457 209 1 0.5 0.5; +#X msg 362 255 0; +#X text 212 222 set the alpha value; +#X text 394 138 set the high threshold; +#N canvas 12 0 271 246 cube 0; +#X obj 69 39 gemhead 20; +#X obj 69 71 translateXYZ 0 0 -4; +#X obj 69 205 cube; +#X obj 69 180 rotateXYZ; +#X obj 69 112 render_trigger; +#X obj 115 141 i; +#X obj 145 142 + 1; +#X obj 180 143 % 360; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 5 0; +#X connect 5 0 6 0; +#X connect 5 0 3 1; +#X connect 5 0 3 2; +#X connect 5 0 3 3; +#X connect 6 0 7 0; +#X connect 7 0 5 1; +#X restore 444 551 pd cube in the back; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 3 0; +#X connect 1 0 5 0; +#X connect 2 0 5 1; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 6 0 1 0; +#X connect 7 0 4 3; +#X connect 8 0 4 3; +#X connect 9 0 4 1; +#X connect 10 0 4 1; +#X connect 11 0 4 3; +#X connect 12 0 4 1; +#X connect 17 0 18 0; +#X connect 18 0 17 0; diff --git a/Gem/examples/04.pix/16.alphaGrey.pd b/Gem/examples/04.pix/16.alphaGrey.pd new file mode 100644 index 0000000..9d5405b --- /dev/null +++ b/Gem/examples/04.pix/16.alphaGrey.pd @@ -0,0 +1,78 @@ +#N canvas 28 0 713 500 10; +#X obj 135 336 pix_texture; +#X obj 135 393 square 2; +#X obj 135 171 pix_image ../data/fractalAlpha.TIF; +#X obj 135 308 pix_a_2grey 0.5; +#X obj 135 215 translateXYZ -2 0 0; +#X obj 386 140 gemhead; +#X obj 386 309 pix_texture; +#X obj 386 402 square 2; +#X obj 386 171 pix_image ../data/fractalAlpha.TIF; +#X obj 386 348 alpha; +#X obj 386 209 translateXYZ 2 0 0; +#X obj 228 13 pix_a_2grey; +#X text 261 55 grey's out all pixels \, of which the alpha-channel +is above a certain threshold; +#X obj 240 269 hsl 128 15 -1 1 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 3100 1; +#X msg 237 246 0; +#X msg 266 246 0.5; +#X obj 20 39 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 21 39 Create window and render; +#X obj 135 139 gemhead; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 28 61 pd gemwin; +#X floatatom 237 288 5 -1 1 0 - - -; +#X connect 0 0 1 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 8 0; +#X connect 6 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 7 0; +#X connect 10 0 6 0; +#X connect 13 0 20 0; +#X connect 14 0 13 0; +#X connect 15 0 13 0; +#X connect 18 0 2 0; +#X connect 20 0 3 1; diff --git a/Gem/examples/04.pix/16.pix_2grey.pd b/Gem/examples/04.pix/16.pix_2grey.pd new file mode 100644 index 0000000..e2552c1 --- /dev/null +++ b/Gem/examples/04.pix/16.pix_2grey.pd @@ -0,0 +1,45 @@ +#N canvas 204 170 691 547 10; +#X obj 308 140 gemhead; +#X obj 308 374 pix_texture; +#X obj 308 402 square 2; +#X obj 308 171 pix_image ../data/fractalAlpha.TIF; +#X obj 308 297 pix_2grey; +#X obj 20 159 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 203 pd gemwin; +#X msg 25 179 create; +#X text 21 159 Create window and render; +#X text 64 81 greys out all pixels (but pixel-values are still in RGBA) +; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 6 0 7 0; +#X connect 7 0 6 0; diff --git a/Gem/examples/04.pix/17.pix_gain.pd b/Gem/examples/04.pix/17.pix_gain.pd new file mode 100644 index 0000000..3b6ae5e --- /dev/null +++ b/Gem/examples/04.pix/17.pix_gain.pd @@ -0,0 +1,72 @@ +#N canvas 111 106 885 510 10; +#X floatatom 664 182 0 0 0 0 - - -; +#X obj 664 210 / 100; +#X floatatom 610 163 0 0 0 0 - - -; +#X obj 610 192 / 100; +#X obj 343 56 gemhead; +#X obj 343 319 pix_texture; +#X msg 394 359 4; +#X floatatom 556 121 0 0 0 0 - - -; +#X obj 556 149 / 100; +#X obj 343 268 pix_gain; +#X obj 556 241 pack 0 0 0; +#X obj 343 387 triangle; +#X text 356 341 click here to change the size of the triangle; +#X msg 570 213 bang; +#X obj 343 82 pix_image ../data/fractal.JPG; +#X obj 364 134 vsl 15 128 0 1 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X text 382 141 overall factor; +#X text 632 121 color-wise factor; +#X text 103 453 using [pix_gain] is probably very expensive (since +it does operations on your CPU). Try using [color] if your card has +openGL-hw-accleration...; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 1 0; +#X connect 1 0 10 2; +#X connect 1 0 13 0; +#X connect 2 0 3 0; +#X connect 3 0 10 1; +#X connect 3 0 13 0; +#X connect 4 0 14 0; +#X connect 5 0 11 0; +#X connect 6 0 11 1; +#X connect 7 0 8 0; +#X connect 8 0 10 0; +#X connect 9 0 5 0; +#X connect 10 0 9 2; +#X connect 13 0 10 0; +#X connect 14 0 9 0; +#X connect 15 0 9 1; +#X connect 20 0 21 0; +#X connect 21 0 20 0; diff --git a/Gem/examples/04.pix/18.Curves.pd b/Gem/examples/04.pix/18.Curves.pd new file mode 100644 index 0000000..ca02c91 --- /dev/null +++ b/Gem/examples/04.pix/18.Curves.pd @@ -0,0 +1,180 @@ +#N canvas 119 33 764 634 10; +#N canvas 285 0 681 629 tables 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array red 256 float 0; +#X coords 0 255 255 0 256 140 1; +#X restore 95 30 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array green 256 float 0; +#X coords 0 255 255 0 256 140 1; +#X restore 399 29 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array blue 256 float 0; +#X coords 0 255 255 0 256 140 1; +#X restore 98 214 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array alpha 64 float 0; +#X coords 0 255 63 0 256 140 1; +#X restore 396 212 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array edge 8 float 0; +#X coords 0 255 7 0 256 140 1; +#X restore 49 440 graph; +#X text 319 459 set all black and white pixels to black.; +#X text 318 477 set all "grey" pixels (the transients) to white.; +#X restore 219 225 pd tables; +#X obj 30 272 gemhead; +#X obj 30 468 pix_texture; +#N canvas 0 0 450 300 (subpatch) 0; +#X array rgba 67 float 0; +#X coords 0 256 66 0 256 140 1; +#X restore 217 70 graph; +#X text 78 8 pix_curve: adjust the colour of an image; +#X text 291 227 separate tables for r \, g \, b and a; +#X obj 466 274 pix_curve rgba; +#X obj 469 324 pix_curve red green blue; +#X obj 470 373 pix_curve red green blue alpha; +#X text 504 291 one curve for all channels; +#X text 505 391 curves for r \, g \, b \, a; +#X text 500 341 curves for r \, g \, b \; leave a unchanged; +#X msg 507 127 \; rgba cosinesum 64 128 128; +#X obj 30 393 pix_curve rgba; +#N canvas 328 58 600 502 init 0; +#X obj 93 39 loadbang; +#X msg 115 87 \; rgba resize 256 \; red resize 256 green resize 256 +\; blue resize 256 \; alpha resize 64 \; alpha const 128; +#X obj 93 197 t b b; +#X msg 93 219 256; +#X msg 125 218 0; +#X obj 93 241 until; +#X obj 93 262 i; +#X obj 123 261 + 1; +#X msg 93 177 bang; +#X obj 93 283 t f f f; +#X obj 93 370 tabwrite rgba; +#X msg 93 348 \$1 \$1; +#X obj 210 304 / 255; +#X obj 210 326 sqrt; +#X obj 210 347 * 255; +#X obj 210 395 tabwrite red; +#X obj 210 373 pack 0 0; +#X obj 319 456 tabwrite green; +#X obj 104 395 tabwrite blue; +#X obj 93 63 t b b b; +#X msg 364 83 \; edge resize 8 \; edge const 255 \; edge 0 0 \; edge +7 0; +#X obj 319 393 unpack; +#X obj 319 413 - 255; +#X obj 319 432 * -1; +#X obj 362 413 - 255; +#X obj 362 432 * -1; +#X connect 0 0 19 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 6 0 9 0; +#X connect 7 0 6 1; +#X connect 8 0 2 0; +#X connect 9 0 11 0; +#X connect 9 1 12 0; +#X connect 9 2 16 1; +#X connect 11 0 10 0; +#X connect 11 0 18 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 16 0; +#X connect 16 0 15 0; +#X connect 16 0 21 0; +#X connect 19 0 8 0; +#X connect 19 1 1 0; +#X connect 19 2 20 0; +#X connect 21 0 22 0; +#X connect 21 1 24 0; +#X connect 22 0 23 0; +#X connect 23 0 17 0; +#X connect 24 0 25 0; +#X connect 25 0 17 1; +#X restore 604 470 pd init; +#X msg 284 275 set rgba; +#X msg 282 325 set red green blue; +#X msg 278 375 set red green blue alpha; +#X text 505 110 an alternative colour-curve; +#X text 228 56 paint your own curve; +#X obj 30 509 square 2; +#X obj 30 488 translateXYZ -2 0 0; +#X obj 244 486 gemhead; +#X obj 244 548 pix_texture; +#X obj 244 569 translateXYZ 2 0 0; +#X obj 244 527 pix_curve edge; +#N canvas 80 38 600 318 pix_update 0; +#X obj 59 115 inlet; +#X obj 59 227 outlet; +#X text 61 19 this is quite a dummy-routine:; +#X text 78 47 just multiply the pix-buffer with 1 (do nothing !) \, +and make it thereby dirty \, so that the pix_curve routines are going +to be called....; +#X text 56 272 maybe this could be done more easily..?; +#X obj 59 202 pix_buf; +#X obj 59 156 t a b; +#X connect 0 0 6 0; +#X connect 5 0 1 0; +#X connect 6 0 5 0; +#X connect 6 1 5 0; +#X restore 30 331 pd pix_update; +#X obj 244 592 square 2; +#X obj 30 435 alpha; +#X obj 30 303 pix_image ../data/fractal.JPG; +#X obj 244 506 pix_image ../data/dancer.JPG; +#X obj 11 151 cnv 15 200 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X obj 132 193 gemwin; +#X obj 132 135 t a; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 5 0; +#X connect 2 1 4 0; +#X connect 2 1 6 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 9 0; +#X connect 6 0 9 0; +#X connect 7 0 9 0; +#X connect 9 0 8 0; +#X restore 16 195 pd gemwin; +#X msg 16 171 create; +#X text 12 151 Create window and render; +#X connect 1 0 29 0; +#X connect 2 0 21 0; +#X connect 13 0 28 0; +#X connect 15 0 13 0; +#X connect 16 0 13 0; +#X connect 17 0 13 0; +#X connect 21 0 20 0; +#X connect 22 0 30 0; +#X connect 23 0 24 0; +#X connect 24 0 27 0; +#X connect 25 0 23 0; +#X connect 26 0 13 0; +#X connect 28 0 2 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 32 0 33 0; +#X connect 33 0 32 0; diff --git a/Gem/examples/04.pix/19.colorMatrix.pd b/Gem/examples/04.pix/19.colorMatrix.pd new file mode 100644 index 0000000..c53ab1a --- /dev/null +++ b/Gem/examples/04.pix/19.colorMatrix.pd @@ -0,0 +1,60 @@ +#N canvas 10 20 769 486 10; +#X obj 252 258 gemhead; +#X obj 252 313 pix_image ../data/fractal.JPG; +#X obj 252 343 pix_colormatrix; +#X msg 351 223 0 1 0 0 0 1 1 0 0; +#X msg 321 157 0 0 1 1 0 0 0 1 0; +#X msg 284 61 1 0 0 0 0 1 0 1 0; +#X obj 252 371 pix_texture; +#X obj 252 411 square; +#X msg 312 110 1 0 0 0 1 0 0 0 1; +#X text 460 156 shift colors: red->[0 \, 0 \, 1]=blue \; green->[1 +\, 0 \, 0]=red \; blue->[0 \, 1 \, 0]=green; +#X text 469 97 unity matrix: [1 \, 0 \, 0 \; 0 \, 1 \, 0 \; 0 \, 0 +\, 1]; +#X text 446 47 swap green and blue: [1 \, 0 \, 0 \; 0 \, 0 \, 1 \; +0 \, 1 \, 0]; +#X text 480 210 shift colors: red->[0 \, 1 \, 0]=green \; green->[0 +\, 0 \, 1]=blue \; blue->[1 \, 0 \, 0]=red; +#X text 26 23 matrix-multiply the RGB-vector; +#X obj 41 142 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 46 186 pd gemwin; +#X msg 46 162 create; +#X text 42 142 Create window and render; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 3 0 2 1; +#X connect 4 0 2 1; +#X connect 5 0 2 1; +#X connect 6 0 7 0; +#X connect 8 0 2 1; +#X connect 15 0 16 0; +#X connect 16 0 15 0; diff --git a/Gem/examples/04.pix/20.convolve.pd b/Gem/examples/04.pix/20.convolve.pd new file mode 100644 index 0000000..bf3999f --- /dev/null +++ b/Gem/examples/04.pix/20.convolve.pd @@ -0,0 +1,106 @@ +#N canvas 150 20 846 728 12; +#X obj 575 515 s matrix; +#X obj 502 516 s scale; +#X msg 502 483 1; +#X obj 575 404 s matrix; +#X obj 502 405 s scale; +#X msg 502 372 1; +#X obj 572 311 s matrix; +#X obj 499 312 s scale; +#X msg 499 279 1; +#X obj 572 206 s matrix; +#X obj 499 207 s scale; +#X msg 499 174 1; +#X obj 576 106 s matrix; +#X obj 503 107 s scale; +#X msg 503 74 1; +#X obj 320 153 s matrix; +#X obj 247 154 s scale; +#X msg 247 121 1; +#X msg 576 47 -1 -1 -1 -1 8 -1 -1 -1 -1; +#X msg 572 146 -1 -4 -1 -4 20 -4 -1 -4 -1; +#X msg 314 517 1 2 1 2 4 2 1 2 1; +#X text 506 10 edge detection matrices; +#X text 506 26 scale = 1; +#X text 234 497 scale = 16; +#X text 234 482 smoothing matrix; +#X obj 14 330 gemhead; +#X obj 14 522 pix_texture; +#X obj 14 356 pix_image ../data/fractal.JPG; +#X obj 14 455 pix_convolve 3 3; +#X msg 320 92 0 0 0 0 1 0 0 0 0; +#X msg 572 248 0 -1 0 0 2 0 0 -1 0; +#X msg 575 450 -1 0 -1 0 4 0 -1 0 -1; +#X msg 575 343 0 0 0 -1 2 -1 0 0 0; +#X obj 314 596 s matrix; +#X obj 153 423 r matrix; +#X obj 241 596 s scale; +#X obj 83 422 r scale; +#X text 241 72 scale = 1; +#X text 241 55 identity matrix; +#X obj 14 547 square 4; +#X obj 20 219 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 263 pd gemwin; +#X msg 25 239 create; +#X text 21 219 Create window and render; +#X msg 241 545 1 16; +#X obj 241 571 /; +#X text 43 650 a good start for the scale is the sum of all the elements +; +#X connect 2 0 1 0; +#X connect 5 0 4 0; +#X connect 8 0 7 0; +#X connect 11 0 10 0; +#X connect 14 0 13 0; +#X connect 17 0 16 0; +#X connect 18 0 14 0; +#X connect 18 0 12 0; +#X connect 19 0 11 0; +#X connect 19 0 9 0; +#X connect 20 0 44 0; +#X connect 20 0 33 0; +#X connect 25 0 27 0; +#X connect 26 0 39 0; +#X connect 27 0 28 0; +#X connect 28 0 26 0; +#X connect 29 0 17 0; +#X connect 29 0 15 0; +#X connect 30 0 8 0; +#X connect 30 0 6 0; +#X connect 31 0 2 0; +#X connect 31 0 0 0; +#X connect 32 0 5 0; +#X connect 32 0 3 0; +#X connect 34 0 28 2; +#X connect 36 0 28 1; +#X connect 41 0 42 0; +#X connect 42 0 41 0; +#X connect 44 0 45 0; +#X connect 45 0 35 0; diff --git a/Gem/examples/04.pix/22.biquad.pd b/Gem/examples/04.pix/22.biquad.pd new file mode 100644 index 0000000..6e9934e --- /dev/null +++ b/Gem/examples/04.pix/22.biquad.pd @@ -0,0 +1,108 @@ +#N canvas 269 10 753 499 10; +#X msg 360 312 set; +#X floatatom 401 209 4 0 0 0 - - -; +#X floatatom 442 209 4 0 0 0 - - -; +#X obj 441 229 t b f; +#X floatatom 491 209 4 0 0 0 - - -; +#X obj 490 229 t b f; +#X floatatom 532 208 4 0 0 0 - - -; +#X obj 531 228 t b f; +#X floatatom 576 210 4 0 0 0 - - -; +#X obj 575 230 t b f; +#X text 257 23 calculates the following difference equation:; +#X text 261 38 y(n) = ff1 * w(n) + ff2 * w(n-1) + ff3 * w(n-2); +#X floatatom 621 210 4 0 0 0 - - -; +#X obj 620 230 t b f; +#X obj 407 260 pack 0 0 0 0 0 0; +#X text 265 55 w(n) = fb0 * x(n) + fb1 * w(n-1) + fb2 * w(n-2); +#X msg 403 98 1 0 0 1 0 0; +#X msg 403 121 1 0 0 0.2 0.2 0.6; +#X obj 35 224 gemhead; +#X obj 35 300 pix_texture; +#X obj 35 324 square 3; +#X text 403 190 fb0; +#X text 443 190 fb1; +#X text 494 189 fb2; +#X text 533 186 ff1; +#X text 582 187 ff2; +#X text 623 186 ff3; +#X obj 355 257 t l; +#X msg 175 218 0; +#X msg 202 218 1; +#X msg 231 218 2; +#X text 551 94 route through; +#X text 553 120 a low-pass; +#X text 34 391 pix_biquad: fb0 fb1 fb2 ff1 ff2 ff3; +#X text 338 377 very(*) similar to the pd-object; +#X obj 572 375 biquad~; +#X text 336 406 *: but not exactly the same; +#X text 390 312 set w(n-1) and w(n-2) to the next(!) x(n); +#X obj 35 274 pix_biquad; +#X msg 404 150 0.05 0.8 0.15 0.2 0.2 0.6; +#X text 587 148 a LOW-pass; +#X text 397 331 (important for hard feedback-loops); +#X text 98 455 no sanity check is done for the coefficients !; +#X text 151 200 click these OFTEN !; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 35 247 pix_multiimage ../data/temp*.JPG 2; +#X connect 0 0 38 0; +#X connect 1 0 14 0; +#X connect 2 0 3 0; +#X connect 3 0 14 0; +#X connect 3 1 14 1; +#X connect 4 0 5 0; +#X connect 5 0 14 0; +#X connect 5 1 14 2; +#X connect 6 0 7 0; +#X connect 7 0 14 0; +#X connect 7 1 14 3; +#X connect 8 0 9 0; +#X connect 9 0 14 0; +#X connect 9 1 14 4; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 13 1 14 5; +#X connect 14 0 27 0; +#X connect 16 0 27 0; +#X connect 17 0 27 0; +#X connect 18 0 48 0; +#X connect 19 0 20 0; +#X connect 27 0 38 0; +#X connect 28 0 48 1; +#X connect 29 0 48 1; +#X connect 30 0 48 1; +#X connect 38 0 19 0; +#X connect 39 0 27 0; +#X connect 45 0 46 0; +#X connect 46 0 45 0; +#X connect 48 0 38 0; diff --git a/Gem/examples/04.pix/23.gravity.pd b/Gem/examples/04.pix/23.gravity.pd new file mode 100644 index 0000000..9821f94 --- /dev/null +++ b/Gem/examples/04.pix/23.gravity.pd @@ -0,0 +1,108 @@ +#N canvas 0 0 626 514 10; +#X floatatom 107 437 5 0 0 0 - - -; +#X floatatom 160 436 5 0 0 0 - - -; +#X floatatom 219 435 5 0 0 0 - - -; +#X obj 54 338 pix_blob 1; +#X msg 86 227 0; +#X msg 94 250 1; +#X msg 101 271 2; +#X msg 107 292 3; +#X msg 110 313 4; +#X text 119 456 X; +#X text 173 456 Y; +#X text 230 455 size; +#X text 135 228 grey (default); +#X text 136 250 red; +#X text 136 269 green; +#X text 137 291 blue; +#X text 137 313 alpha; +#X text 327 20 pix_blob; +#X text 324 32 =========; +#X text 276 48 get the center of gravity in a picture; +#X msg 288 298 1 0.5 0.5 1; +#X msg 284 274 0.33; +#X msg 276 252 1 1 2; +#X text 328 252 ==; +#X msg 355 251 1 1 2 0; +#X msg 356 274 0.33 0.33 0.33 0; +#X text 326 275 ==; +#X msg 363 112 bang; +#X obj 363 134 t b b; +#X msg 428 114 bang; +#X obj 428 136 t b b; +#X text 341 454 size = 0..1; +#X text 341 425 x/y-coordinates from lower-left \; 0..1; +#X text 329 96 upper-left; +#X text 428 93 lower-right; +#X obj 54 176 pix_multiimage ../data/blob*.tif 2; +#X obj 54 148 gemhead; +#X msg 154 116 0; +#X msg 154 136 1; +#X msg 154 154 2; +#X obj 54 469 pix_texture; +#X obj 54 492 square 4; +#X msg 139 496 quality 0; +#X obj 139 475 loadbang; +#X text 307 233 rgb(a)-color; +#X obj 276 320 t b l; +#X obj 20 19 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 63 pd gemwin; +#X msg 25 39 create; +#X text 21 19 Create window and render; +#X connect 3 0 40 0; +#X connect 3 1 0 0; +#X connect 3 2 1 0; +#X connect 3 3 2 0; +#X connect 4 0 3 1; +#X connect 5 0 3 1; +#X connect 6 0 3 1; +#X connect 7 0 3 1; +#X connect 8 0 3 1; +#X connect 20 0 45 0; +#X connect 21 0 45 0; +#X connect 22 0 45 0; +#X connect 27 0 28 0; +#X connect 28 0 39 0; +#X connect 28 1 5 0; +#X connect 29 0 30 0; +#X connect 30 0 39 0; +#X connect 30 1 7 0; +#X connect 35 0 3 0; +#X connect 36 0 35 0; +#X connect 37 0 35 1; +#X connect 38 0 35 1; +#X connect 39 0 35 1; +#X connect 40 0 41 0; +#X connect 42 0 40 0; +#X connect 43 0 42 0; +#X connect 45 0 39 0; +#X connect 45 1 3 2; +#X connect 47 0 48 0; +#X connect 48 0 47 0; diff --git a/Gem/examples/04.pix/24.time-filtering.pd b/Gem/examples/04.pix/24.time-filtering.pd new file mode 100644 index 0000000..c1ca697 --- /dev/null +++ b/Gem/examples/04.pix/24.time-filtering.pd @@ -0,0 +1,102 @@ +#N canvas 228 84 794 352 10; +#X floatatom 279 191 5 0 0 0 - - -; +#X obj 266 241 pix_tIIR 2 2; +#X obj 279 211 * 0.01; +#X obj 279 146 unpack 30 60 10 50 50 -20; +#X floatatom 328 191 5 0 0 0 - - -; +#X obj 328 211 * 0.01; +#X floatatom 375 191 5 0 0 0 - - -; +#X obj 375 211 * 0.01; +#X floatatom 424 191 5 0 0 0 - - -; +#X obj 424 211 * 0.01; +#X floatatom 471 191 5 0 0 0 - - -; +#X obj 471 211 * 0.01; +#X floatatom 520 191 5 0 0 0 - - -; +#X obj 520 211 * 0.01; +#X msg 279 100 bang; +#X obj 266 38 gemhead; +#X msg 601 44 auto \$1; +#X obj 601 25 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 279 122 pack 30 60 10 50 50 -20; +#X floatatom 461 64 5 0 0 0 - - -; +#X floatatom 351 86 5 0 0 0 - - -; +#X obj 266 262 pix_texture; +#X msg 421 27 open ../data/alea.mpg; +#X msg 421 7 open \$1; +#X obj 483 7 openpanel; +#X obj 573 5 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 446 63 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 266 61 pix_film ../data/alea.mpg; +#X obj 266 309 square 3; +#X obj 266 286 rotateXYZ 0 -30 0; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 2 0; +#X connect 1 0 21 0; +#X connect 2 0 1 1; +#X connect 3 0 0 0; +#X connect 3 1 4 0; +#X connect 3 2 6 0; +#X connect 3 3 8 0; +#X connect 3 4 10 0; +#X connect 3 5 12 0; +#X connect 4 0 5 0; +#X connect 5 0 1 2; +#X connect 6 0 7 0; +#X connect 7 0 1 3; +#X connect 8 0 9 0; +#X connect 9 0 1 4; +#X connect 10 0 11 0; +#X connect 11 0 1 5; +#X connect 12 0 13 0; +#X connect 13 0 1 6; +#X connect 14 0 18 0; +#X connect 15 0 27 0; +#X connect 16 0 27 0; +#X connect 17 0 16 0; +#X connect 18 0 3 0; +#X connect 19 0 27 1; +#X connect 21 0 29 0; +#X connect 22 0 27 0; +#X connect 23 0 27 0; +#X connect 24 0 23 0; +#X connect 25 0 24 0; +#X connect 26 0 19 0; +#X connect 27 0 1 0; +#X connect 27 1 20 0; +#X connect 27 2 26 0; +#X connect 29 0 28 0; +#X connect 31 0 32 0; +#X connect 32 0 31 0; diff --git a/Gem/examples/04.pix/25.buffer.pd b/Gem/examples/04.pix/25.buffer.pd new file mode 100644 index 0000000..857cdaf --- /dev/null +++ b/Gem/examples/04.pix/25.buffer.pd @@ -0,0 +1,137 @@ +#N canvas 0 0 832 589 10; +#X obj 62 327 gemhead; +#X obj 62 369 pix_texture; +#X obj 62 392 square 4; +#X obj 316 316 gemhead; +#X obj 316 342 pix_film; +#X obj 316 387 t a b; +#X obj 361 430 i; +#X obj 388 430 + 1; +#X obj 361 408 spigot; +#X obj 398 364 t b b; +#X msg 398 387 1; +#X msg 455 388 0; +#X obj 398 339 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 419 339 start recording into the buffer; +#X msg 398 296 open \$1; +#X obj 398 275 openpanel; +#X obj 398 257 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 477 240 ../data/anim-1.mov; +#X msg 477 260 ../data/alea.mpg; +#X msg 478 216 ../data/homer.avi; +#X obj 477 282 symbol; +#X floatatom 155 321 5 0 0 0 - - -; +#X text 195 320 index; +#X msg 408 408 0; +#X obj 571 401 gemhead; +#X obj 571 427 pix_image ../data/fractal.JPG; +#X floatatom 423 497 5 0 0 0 - - -; +#X msg 405 318 auto 1; +#X msg 457 319 0; +#X obj 361 456 moses 10; +#X floatatom 663 406 5 0 0 0 - - -; +#X msg 663 386 5; +#X text 467 493 put the next image into "myImages" @ index; +#X msg 140 390 set yourImages; +#X msg 212 490 set yourImages; +#X text 213 473 set the storage-name; +#X obj 62 349 pix_buffer_read myImages; +#X obj 316 515 pix_buffer_write myImages; +#X obj 571 453 pix_buffer_write myImages; +#X text 291 539 write an image into a certain storage-buffer; +#X text 15 422 read an image from a certain storage-buffer; +#X text 17 302 get an image from the pix_buffer; +#X obj 33 227 pix_buffer yourImages 10; +#X obj 20 69 cnv 15 200 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X text 284 32 ============; +#X text 236 48 store/get images into/from a buffer; +#X msg 226 77 bang; +#X floatatom 226 174 5 0 0 0 - - -; +#X text 265 77 get the size of the depot; +#X msg 237 116 allocate 128 64 4; +#X text 371 104 pre-allocate each image-buffer to hold at east 128*64*4 +pixels; +#X text 388 155 a storage-place for "10" pix-images called "myImages" +; +#X obj 226 153 pix_buffer myImages 10; +#X text 287 20 [pix_buffer]; +#X msg 353 181 open ../data/fractal.JPG 5; +#X text 524 182 load an image into a certain storage-buffer; +#X connect 0 0 36 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 37 0; +#X connect 5 1 8 0; +#X connect 6 0 7 0; +#X connect 6 0 29 0; +#X connect 7 0 6 1; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 9 1 23 0; +#X connect 10 0 8 1; +#X connect 11 0 8 1; +#X connect 11 0 31 0; +#X connect 12 0 9 0; +#X connect 14 0 4 0; +#X connect 14 0 12 0; +#X connect 14 0 27 0; +#X connect 14 0 28 0; +#X connect 15 0 14 0; +#X connect 16 0 15 0; +#X connect 17 0 20 0; +#X connect 18 0 20 0; +#X connect 19 0 20 0; +#X connect 20 0 14 0; +#X connect 21 0 36 1; +#X connect 23 0 6 1; +#X connect 24 0 25 0; +#X connect 25 0 38 0; +#X connect 26 0 37 1; +#X connect 27 0 4 0; +#X connect 28 0 4 1; +#X connect 29 0 26 0; +#X connect 29 1 11 0; +#X connect 30 0 38 1; +#X connect 31 0 30 0; +#X connect 33 0 36 0; +#X connect 34 0 37 0; +#X connect 36 0 1 0; +#X connect 44 0 45 0; +#X connect 45 0 44 0; +#X connect 49 0 55 0; +#X connect 52 0 55 0; +#X connect 55 0 50 0; +#X connect 57 0 55 0; diff --git a/Gem/examples/04.pix/26.framebuffer_readback.pd b/Gem/examples/04.pix/26.framebuffer_readback.pd new file mode 100644 index 0000000..3f49f1e --- /dev/null +++ b/Gem/examples/04.pix/26.framebuffer_readback.pd @@ -0,0 +1,88 @@ +#N canvas 0 0 826 651 10; +#X msg 112 86 create \, 1; +#X obj 112 131 gemwin; +#X obj 311 112 pix_buffer \$0-framebuffer 2; +#X obj 620 108 gemhead 5; +#X obj 620 129 world_light; +#X msg 129 108 lighting 1; +#X text 44 5 you can render a scene into a framebuffer \, then take +a snapshot of the framebuffer with [pix_snap] and use this as an ordinary +pix (where you can apply effects and all kind of weird things); +#X obj 75 439 cnv 15 250 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 161 269 cnv 15 150 150 empty empty scene 20 12 0 14 -233017 +-66577 0; +#X obj 82 196 gemhead 20; +#X obj 82 220 gemframebuffer; +#X msg 163 195 dimen 256 256; +#X obj 167 331 rotateXYZ; +#X obj 167 376 teapot; +#X obj 82 266 t a a b; +#X obj 187 293 i; +#X obj 220 292 + 1; +#X obj 250 291 % 360; +#X obj 82 453 t a b; +#X msg 114 474 snap; +#X obj 82 522 t a b; +#X msg 296 527 1; +#X obj 82 547 pix_buffer_write \$0-framebuffer; +#X obj 410 262 gemhead 30; +#X obj 410 306 t a b; +#X msg 465 307 1; +#X obj 410 331 pix_buffer_read \$0-framebuffer; +#X obj 410 411 pix_texture; +#X obj 410 476 square 3; +#X obj 82 243 translateXYZ 0 0 -4; +#X obj 82 498 pix_snap 0 0 256 256; +#X obj 167 353 color 1 0 1; +#X floatatom 226 313 5 0 0 0 - - -; +#X obj 410 453 rotateXYZ; +#X floatatom 445 433 5 0 0 0 - - -; +#X text 318 130 temporary storage; +#X obj 163 175 loadbang; +#X text 130 451 later usage; +#X text 129 436 snapshot and store image for; +#X text 562 308 fetch framebuffer-pix; +#X text 535 379 apply some nifty FX; +#X text 73 597 note \, that there are more efficient ways to apply +FX to framebuffers (noteably openGL-shaders: see examples/10.glsl/ +for more information); +#X obj 425 358 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 410 380 pix_kaleidoscope; +#X connect 0 0 1 0; +#X connect 3 0 4 0; +#X connect 5 0 1 0; +#X connect 9 0 10 0; +#X connect 10 0 29 0; +#X connect 11 0 10 0; +#X connect 12 0 31 0; +#X connect 14 0 18 0; +#X connect 14 1 12 0; +#X connect 14 2 15 0; +#X connect 15 0 16 0; +#X connect 15 0 12 1; +#X connect 15 0 12 2; +#X connect 16 0 17 0; +#X connect 17 0 15 1; +#X connect 18 0 30 0; +#X connect 18 1 19 0; +#X connect 19 0 30 0; +#X connect 20 0 22 0; +#X connect 20 1 21 0; +#X connect 21 0 22 1; +#X connect 23 0 24 0; +#X connect 24 0 26 0; +#X connect 24 1 25 0; +#X connect 25 0 26 1; +#X connect 26 0 43 0; +#X connect 27 0 33 0; +#X connect 29 0 14 0; +#X connect 30 0 20 0; +#X connect 31 0 13 0; +#X connect 32 0 12 3; +#X connect 33 0 28 0; +#X connect 34 0 33 2; +#X connect 36 0 11 0; +#X connect 42 0 43 0; +#X connect 43 0 27 0; diff --git a/Gem/examples/04.pix/27.bitmap_font.pd b/Gem/examples/04.pix/27.bitmap_font.pd new file mode 100644 index 0000000..c6b182d --- /dev/null +++ b/Gem/examples/04.pix/27.bitmap_font.pd @@ -0,0 +1,152 @@ +#N canvas 656 222 901 508 10; +#X obj 191 413 pix_texture; +#X obj 463 158 gemwin; +#X msg 506 135 0 \, destroy; +#X msg 125 362 quality 0; +#X obj 31 200 pix_crop 0 0 6 8; +#X obj 125 342 loadbang; +#X obj 31 10 gemhead 10; +#N canvas 472 238 750 406 grab-ascii 0; +#X obj 76 144 moses 65; +#X obj 121 164 moses 91; +#X obj 166 194 moses 97; +#X obj 211 214 moses 123; +#X obj 153 308 outlet; +#X obj 211 234 - 97; +#X text 174 164 from A to Z (65 to 90); +#X text 276 212 from a to z (97 to 122); +#X text 137 331 remap from 0 to 25; +#X obj 121 185 - 65; +#X obj 334 342 outlet; +#X text 326 359 bang on ; +#X obj 455 342 outlet; +#X obj 334 289 sel 10 32 8; +#X obj 565 342 outlet; +#X text 556 359 bang on ; +#X text 446 359 bang on ; +#X obj 303 319 loadbang; +#X obj 76 114 key; +#X connect 0 0 13 0; +#X connect 0 1 1 0; +#X connect 1 0 9 0; +#X connect 1 1 2 0; +#X connect 2 1 3 0; +#X connect 3 0 5 0; +#X connect 5 0 4 0; +#X connect 9 0 4 0; +#X connect 13 0 10 0; +#X connect 13 1 12 0; +#X connect 13 2 14 0; +#X connect 17 0 10 0; +#X connect 18 0 0 0; +#X restore 73 51 pd grab-ascii; +#X obj 100 132 f; +#X obj 413 248 loadbang; +#X obj 260 189 * 6; +#X obj 73 158 * 6; +#X msg 135 92 0; +#X obj 191 263 gemhead 9; +#X obj 135 71 t b b; +#X obj 75 178 t b b f; +#X obj 31 29 pix_image ../data/bitmap_font_6x8.bmp; +#X obj 463 64 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1 +-1; +#X text 310 22 <- this is the bitmap font; +#X obj 31 138 pix_grey; +#X obj 73 92 t f b; +#X obj 127 132 + 1; +#X text 485 231 - key in range A-Z and a-z; +#X text 510 212 features :; +#X text 485 241 - space bar add a space...; +#X text 485 251 - enter reset all; +#X text 520 283 purpose :; +#X text 495 299 - orginally design to drive a LED matrix; +#X msg 260 298 roi \$1 \$2 \$3 \$4; +#X obj 260 211 t f f; +#X obj 260 253 pack 0 0 0 8; +#X obj 314 232 + 6; +#N canvas 12 50 450 300 normalize 0; +#X obj 84 70 inlet x1 y1 x2 y2; +#X obj 84 92 unpack 0 0 0 0; +#X obj 84 184 pack 0 0 0 0; +#X obj 84 206 outlet X1 Y1 X2 Y2; +#X obj 84 144 / 120; +#X obj 134 144 / 8; +#X obj 184 144 / 120; +#X obj 234 144 / 8; +#X text 288 112 adding 0.5 to make; +#X text 288 125 rounding easier...; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 5 0; +#X connect 1 2 6 0; +#X connect 1 3 7 0; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 2 1; +#X connect 6 0 2 2; +#X connect 7 0 2 3; +#X restore 260 277 pd normalize; +#X msg 413 268 grey \, fill 1 \, bang; +#X obj 31 250 pix_dump; +#X text 481 65 <- 1 click here to start rendering; +#X obj 191 334 pix_roi 0 0 0 0; +#X text 306 336 initialize to non-existent ROI; +#X obj 191 362 pix_set 120 8; +#X obj 191 165 t b f; +#X obj 225 124 t b b b; +#X msg 264 144 roi 0 0 1 1; +#X obj 225 105 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 463 117 dimen 1024 128 \, color 1 1 1 1 \, create \, 1; +#X obj 191 433 translateXYZ 0 0 0; +#X obj 191 483 rectangle 32 -2; +#X text 501 84 2 click on this patch (to focuses it) and type something +with your keyboard; +#X connect 0 0 44 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 4 0 34 0; +#X connect 5 0 3 0; +#X connect 6 0 16 0; +#X connect 7 0 20 0; +#X connect 7 1 14 0; +#X connect 7 2 8 0; +#X connect 8 0 21 0; +#X connect 8 0 39 0; +#X connect 9 0 33 0; +#X connect 10 0 29 0; +#X connect 11 0 15 0; +#X connect 12 0 8 0; +#X connect 13 0 36 0; +#X connect 14 0 12 0; +#X connect 14 0 13 0; +#X connect 14 1 42 0; +#X connect 15 0 34 0; +#X connect 15 1 6 0; +#X connect 15 2 4 3; +#X connect 16 0 19 0; +#X connect 17 0 43 0; +#X connect 19 0 4 0; +#X connect 20 0 11 0; +#X connect 20 1 8 0; +#X connect 21 0 8 1; +#X connect 28 0 36 0; +#X connect 29 0 30 0; +#X connect 29 1 31 0; +#X connect 30 0 32 0; +#X connect 31 0 30 2; +#X connect 32 0 28 0; +#X connect 33 0 38 0; +#X connect 34 1 38 1; +#X connect 36 0 38 0; +#X connect 38 0 0 0; +#X connect 39 0 13 0; +#X connect 39 1 10 0; +#X connect 40 0 33 0; +#X connect 40 1 13 0; +#X connect 40 2 41 0; +#X connect 41 0 36 0; +#X connect 42 0 40 0; +#X connect 43 0 1 0; +#X connect 44 0 45 0; diff --git a/Gem/examples/04.video/00.SimpleVideo.pd b/Gem/examples/04.video/00.SimpleVideo.pd new file mode 100644 index 0000000..7b59713 --- /dev/null +++ b/Gem/examples/04.video/00.SimpleVideo.pd @@ -0,0 +1,87 @@ +#N canvas 147 59 659 387 12; +#X obj 134 180 cnv 15 500 40 empty empty empty 20 12 0 14 -245500 -66577 +0; +#X obj 55 78 gemhead; +#X obj 55 299 rectangle 4 3; +#X obj 55 265 pix_texture; +#X obj 55 229 pix_video; +#X msg 142 190 dialog; +#X text 49 16 Click on the [create( message to see live video in Gem. +(You must have a camera attached before loading this patch).; +#X text 199 188 pop-up dialog to configure the camera (Windows and +Mac OS X); +#X msg 98 139 device 0; +#N canvas 162 133 570 420 serin 0; +#X obj 205 60 cnv 20 20 20 empty \$0-open-canvas 0 4 10 0 16 -233017 +-1 0; +#X obj 60 61 hradio 18 1 1 8 empty empty empty 0 -6 0 8 -225271 -1 +-1 0; +#X obj 60 13 inlet; +#X msg 200 202 label \$1; +#X obj 200 180 makefilename %d; +#X obj 59 108 int; +#X obj 59 337 outlet; +#X msg 201 306 set \$1 \$2; +#X obj 59 266 trigger bang anything; +#X obj 201 286 list; +#X obj 200 225 send \$0-open-canvas; +#X msg 60 210 device \$1; +#X connect 1 0 5 0; +#X connect 2 0 1 0; +#X connect 3 0 10 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 5 0 11 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 8 1 9 0; +#X connect 9 0 7 0; +#X connect 11 0 8 0; +#X coords 0 -1 1 1 165 20 1 60 60; +#X restore 98 115 pd serin; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 502 304 pd gemwin; +#X connect 1 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 8 0 4 0; +#X connect 9 0 8 0; diff --git a/Gem/examples/04.video/01.VideoPaint.pd b/Gem/examples/04.video/01.VideoPaint.pd new file mode 100644 index 0000000..9c38a80 --- /dev/null +++ b/Gem/examples/04.video/01.VideoPaint.pd @@ -0,0 +1,123 @@ +#N canvas 38 374 800 574 10; +#X obj 50 130 gemhead; +#X obj 50 493 square; +#X obj 50 371 alpha; +#X obj 50 174 pix_video; +#X obj 50 267 pix_texture; +#X msg 136 456 4; +#X msg 167 456 2; +#X obj 50 392 depth; +#X obj 50 243 pix_threshold; +#X text 375 217 click on bang to; +#X text 187 90 click on these for fun; +#X text 388 69 turn on rendering before turning on the metro.; +#X text 437 86 If you don't \, it may crash/not work; +#X text 375 229 clear the screen; +#X obj 50 447 rotate; +#X obj 50 89 t b b; +#X floatatom 192 179 5 0 100 2 threshold - -; +#X obj 50 9 tgl 15 0 empty empty run 0 -6 0 10 -4034 -1 -1 0 1; +#X obj 195 144 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 10 -228856 +-1 -1 0 1; +#X obj 176 230 hsl 128 15 0 1 0 1 empty empty R 12 8 1 12 -261689 -1 +-1 12700 1; +#X obj 176 250 hsl 128 15 0 1 0 1 empty empty G 12 8 1 12 -225271 -1 +-1 12700 1; +#X obj 176 270 hsl 128 15 0 1 0 1 empty empty B 12 8 1 12 -228992 -1 +-1 12700 1; +#X obj 218 458 hsl 128 15 0.5 5 0 0 empty empty empty -2 -6 0 10 -232576 +-1 -1 0 1; +#X floatatom 219 481 5 0 0 0 - - -; +#X obj 83 40 hsl 128 15 10 127 0 1 empty empty empty -2 -6 0 10 -204786 +-1 -1 9900 1; +#X floatatom 93 63 5 0 0 0 - - -; +#X obj 50 62 metro; +#X obj 207 354 + 1; +#X obj 482 243 bng 15 250 50 0 empty empty empty 0 -6 0 10 -128992 +-1 -1; +#X msg 80 18 100; +#X obj 176 290 hsl 128 15 0 1 0 1 empty empty A 12 8 1 12 -195568 -1 +-1 12700 1; +#X obj 50 319 colorRGB 1 1 1 0.15; +#X obj 233 354 % 360; +#X obj 180 354 i; +#X floatatom 180 375 5 0 0 0 - - -; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, buffer 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 533 345 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 503 362 pd gemwin; +#X connect 0 0 3 0; +#X connect 2 0 7 0; +#X connect 3 0 8 0; +#X connect 4 0 31 0; +#X connect 5 0 1 1; +#X connect 6 0 1 1; +#X connect 7 0 14 0; +#X connect 8 0 4 0; +#X connect 14 0 1 0; +#X connect 15 0 0 0; +#X connect 15 1 33 0; +#X connect 16 0 8 1; +#X connect 17 0 26 0; +#X connect 18 0 16 0; +#X connect 19 0 31 1; +#X connect 20 0 31 2; +#X connect 21 0 31 3; +#X connect 22 0 1 1; +#X connect 22 0 23 0; +#X connect 24 0 25 0; +#X connect 24 0 26 1; +#X connect 26 0 15 0; +#X connect 27 0 32 0; +#X connect 28 0 36 0; +#X connect 29 0 24 0; +#X connect 30 0 31 4; +#X connect 31 0 2 0; +#X connect 32 0 33 1; +#X connect 33 0 27 0; +#X connect 33 0 34 0; +#X connect 34 0 14 1; +#X connect 35 0 36 0; diff --git a/Gem/examples/04.video/02.VideoSphere.pd b/Gem/examples/04.video/02.VideoSphere.pd new file mode 100644 index 0000000..165b5c5 --- /dev/null +++ b/Gem/examples/04.video/02.VideoSphere.pd @@ -0,0 +1,99 @@ +#N canvas 84 483 743 466 10; +#X obj 57 215 pix_texture; +#X text 187 75 click on any of these; +#X text 40 25 texture live video onto a sphere; +#X obj 183 196 hsl 128 15 0 360 0 0 empty empty X 12 8 1 12 -233017 +-1 -1 0 1; +#X obj 183 216 hsl 128 15 0 360 0 0 empty empty Y 12 8 1 12 -233017 +-1 -1 0 1; +#X obj 183 236 hsl 128 15 0 360 0 0 empty empty Z 12 8 1 12 -233017 +-1 -1 0 1; +#X obj 57 255 rotateXYZ 0 0 0; +#X obj 183 266 hsl 128 15 0 1 0 1 empty empty R 12 8 1 12 -261689 -1 +-1 12700 1; +#X obj 183 286 hsl 128 15 0 1 0 1 empty empty G 12 8 1 12 -225271 -1 +-1 12700 1; +#X obj 183 306 hsl 128 15 0 1 0 1 empty empty B 12 8 1 12 -228992 -1 +-1 12700 1; +#X obj 57 325 colorRGB 1 1 1; +#X obj 57 70 gemhead; +#X obj 57 114 pix_video; +#X obj 57 163 pix_threshold; +#X floatatom 185 122 5 0 100 1 threshold - -; +#X obj 184 103 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 10 -228856 +-1 -1 0 1; +#X obj 183 348 hsl 128 15 0.5 5 0 1 empty empty empty -2 -6 0 10 -232576 +-1 -1 4233 1; +#X floatatom 185 367 5 0 0 1 size - -; +#X obj 183 388 hsl 128 15 5 50 0 1 empty empty empty -2 -6 0 10 -204800 +-1 -1 12700 1; +#X floatatom 185 407 5 0 0 1 segments - -; +#X obj 57 410 sphere; +#X msg 182 143 0.1 0.1 0.1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 488 249 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 458 266 pd gemwin; +#X connect 0 0 6 0; +#X connect 3 0 6 1; +#X connect 4 0 6 2; +#X connect 5 0 6 3; +#X connect 6 0 10 0; +#X connect 7 0 10 1; +#X connect 8 0 10 2; +#X connect 9 0 10 3; +#X connect 10 0 20 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 0 0; +#X connect 15 0 14 0; +#X connect 15 0 13 1; +#X connect 16 0 17 0; +#X connect 16 0 20 1; +#X connect 18 0 19 0; +#X connect 18 0 20 2; +#X connect 21 0 13 2; +#X connect 22 0 23 0; diff --git a/Gem/examples/04.video/03.movement_detection.pd b/Gem/examples/04.video/03.movement_detection.pd new file mode 100644 index 0000000..34efdef --- /dev/null +++ b/Gem/examples/04.video/03.movement_detection.pd @@ -0,0 +1,87 @@ +#N canvas 378 405 793 522 10; +#X floatatom 227 258 6 0 0 0 - - -; +#X floatatom 280 258 6 0 0 0 - - -; +#X floatatom 339 258 6 0 0 0 - - -; +#X obj 44 222 pix_blob 4; +#X obj 44 91 gemhead; +#X obj 44 150 pix_movement; +#X obj 44 364 pix_texture; +#X obj 44 401 square 4; +#X obj 201 383 gemhead; +#X obj 201 407 translateXYZ; +#X obj 201 434 cube 0.5; +#X obj 227 304 * 8; +#X obj 227 326 - 4; +#X obj 280 304 * 8; +#X obj 280 326 - 4; +#X obj 339 325 * 2; +#X obj 44 117 pix_video; +#X text 57 40 a very simple movement detector; +#X text 388 255 <<- calculate world-coordinates from normalized pix-coordinates +; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 511 359 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 481 376 pd gemwin; +#X connect 0 0 11 0; +#X connect 1 0 13 0; +#X connect 2 0 15 0; +#X connect 3 0 6 0; +#X connect 3 1 0 0; +#X connect 3 2 1 0; +#X connect 3 3 2 0; +#X connect 4 0 16 0; +#X connect 5 0 3 0; +#X connect 6 0 7 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 11 0 12 0; +#X connect 12 0 9 1; +#X connect 13 0 14 0; +#X connect 14 0 9 2; +#X connect 15 0 9 3; +#X connect 16 0 5 0; +#X connect 19 0 20 0; diff --git a/Gem/examples/04.video/04.videoRTX.pd b/Gem/examples/04.video/04.videoRTX.pd new file mode 100644 index 0000000..6d71805 --- /dev/null +++ b/Gem/examples/04.video/04.videoRTX.pd @@ -0,0 +1,101 @@ +#N canvas 67 70 636 509 10; +#X obj 43 89 gemhead; +#X obj 190 380 pix_texture; +#X obj 43 380 pix_texture; +#X obj 190 298 pix_rtx; +#X msg 328 180 clear; +#X msg 327 270 mode 1; +#X msg 327 247 mode 0; +#X text 380 179 clear the buffer; +#X text 47 14 pix_rtx; +#X text 188 14 transform the x-axis into the t-axis and vice-versa +on the fly; +#X text 42 447 upper-picture; +#X text 198 448 lower-picture; +#X text 38 465 NO transformation; +#X text 198 467 RTX-tranformed; +#X text 46 24 =======; +#X text 380 248 lock time on x-axis; +#X text 376 272 lock x on x-axis; +#X text 495 272 (default); +#X msg 329 211 set; +#X text 363 213 fill the buffer with current frame; +#X obj 43 113 pix_video; +#X obj 190 401 translateXYZ 0 -2 0; +#X obj 43 184 separator; +#X obj 190 185 separator; +#X obj 43 401 translateXYZ 0 2 0; +#X obj 190 208 pix_separator; +#X obj 190 422 rectangle 3 1.5; +#X obj 43 422 rectangle 3 1.5; +#X msg 177 96 dimen 256 128; +#X msg 177 117 dimen 64 64; +#X text 281 101 pix-streams to be rtx-transformed must have the same +properties (width \, height \, colorspace) \;; +#X obj 43 149 trigger anything anything; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 454 405 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 424 422 pd gemwin; +#X connect 0 0 20 0; +#X connect 1 0 21 0; +#X connect 2 0 24 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 18 0 3 0; +#X connect 20 0 31 0; +#X connect 21 0 26 0; +#X connect 22 0 2 0; +#X connect 23 0 25 0; +#X connect 24 0 27 0; +#X connect 25 0 3 0; +#X connect 28 0 20 0; +#X connect 29 0 20 0; +#X connect 31 0 22 0; +#X connect 31 1 23 0; +#X connect 32 0 33 0; diff --git a/Gem/examples/04.video/05.buffer_rtx.pd b/Gem/examples/04.video/05.buffer_rtx.pd new file mode 100644 index 0000000..4a29ad6 --- /dev/null +++ b/Gem/examples/04.video/05.buffer_rtx.pd @@ -0,0 +1,109 @@ +#N canvas 109 48 758 483 10; +#X obj 29 30 gemhead; +#X obj 29 163 pix_video; +#X obj 29 100 gemframebuffer; +#X obj 29 122 translateXYZ 0 0 -4; +#X obj 559 342 pix_texture; +#X obj 559 410 rectangle 4 3; +#X obj 559 315 pix_rtx; +#X obj 29 185 pix_texture; +#X obj 29 245 square 4; +#X obj 159 365 pix_snap; +#X obj 204 322 loadbang; +#X msg 69 325 snap; +#X obj 159 434 pix_buffer_write \$0-depot; +#X obj 43 56 loadbang; +#X obj 559 262 pix_buffer_read \$0-depot; +#X obj 559 172 gemhead 51; +#X floatatom 116 193 5 0 0 0 - - -; +#X obj 29 215 rotateXYZ 0 0 0; +#X msg 306 413 0; +#X obj 362 420 pix_buffer \$0-depot 1; +#X msg 700 241 0; +#X text 43 11 render rotated video into buffer; +#X text 528 148 feed the buffer into pix_rtx; +#X obj 119 171 hsl 128 15 0 360 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X obj 159 387 trigger anything bang; +#X text 117 155 rotate the video image; +#X text 111 280 this is how you write to a framebuffer (pix_buffer) +; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 547 62 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 546 79 pd gemwin; +#X msg 204 344 256 256; +#X msg 43 76 dimen 256 256; +#X obj 69 305 t b a; +#X obj 559 212 t a b; +#X connect 0 0 2 0; +#X connect 1 0 7 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 6 0 4 0; +#X connect 7 0 17 0; +#X connect 8 0 31 0; +#X connect 9 0 24 0; +#X connect 10 0 29 0; +#X connect 11 0 9 0; +#X connect 13 0 30 0; +#X connect 14 0 6 0; +#X connect 15 0 32 0; +#X connect 16 0 17 3; +#X connect 17 0 8 0; +#X connect 18 0 12 1; +#X connect 20 0 14 1; +#X connect 23 0 16 0; +#X connect 24 0 12 0; +#X connect 24 1 18 0; +#X connect 27 0 28 0; +#X connect 29 0 9 2; +#X connect 30 0 2 0; +#X connect 31 0 11 0; +#X connect 31 1 9 0; +#X connect 32 0 14 0; +#X connect 32 1 20 0; diff --git a/Gem/examples/04.video/06.frame_diff_tracking.pd b/Gem/examples/04.video/06.frame_diff_tracking.pd new file mode 100644 index 0000000..3ade8da --- /dev/null +++ b/Gem/examples/04.video/06.frame_diff_tracking.pd @@ -0,0 +1,184 @@ +#N canvas 42 41 639 499 10; +#X obj 140 80 gemhead; +#X obj 140 271 pix_diff; +#X obj 23 397 pix_texture; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 534 15 pd gemwin; +#X obj 23 442 rectangle 4 3; +#X obj 140 198 pix_separator; +#X obj 229 198 pix_separator; +#X obj 140 134 pix_grey; +#X obj 140 109 pix_video; +#X obj 140 346 pix_blob; +#N canvas 10 40 620 460 cursor 0; +#X obj 17 14 inlet; +#X obj 89 18 inlet; +#X obj 101 346 translateXYZ; +#X text 63 148 0.64; +#X text 37 151 1; +#X obj 23 63 t f f; +#X obj 37 176 -; +#X text 62 177 X-Range; +#X text 196 176 Y-Range; +#X obj 63 240 expr (8/$f1); +#X obj 33 241 -; +#X obj 51 267 *; +#X obj 29 95 max 0; +#X obj 71 95 min 10; +#X obj 59 132 f; +#X obj 33 131 f; +#X obj 52 293 - 4; +#X text 193 146 0.64; +#X text 167 149 1; +#X obj 153 61 t f f; +#X obj 167 174 -; +#X obj 193 238 expr (8/$f1); +#X obj 163 239 -; +#X obj 181 265 *; +#X obj 159 93 max 0; +#X obj 201 93 min 10; +#X obj 189 130 f; +#X obj 163 129 f; +#X text 188 171 comment; +#X obj 154 298 expr (-1*$f1)+4; +#X obj 293 27 inlet; +#X obj 94 320 gemhead 15; +#X obj 157 509 circle 0.1; +#X obj 17 423 separator; +#X obj 87 423 separator; +#X obj 17 484 rectangle 0.2 0.01; +#X obj 157 423 separator; +#X msg 185 478 draw line; +#X obj 185 457 loadbang; +#X obj 77 386 colorRGB 1 0 0 1; +#X obj 17 462 rectangle 0.01 0.2; +#X msg 256 478 width \$1; +#X obj 296 342 int; +#X obj 275 413 + 1; +#X obj 283 63 * 100; +#X connect 0 0 5 0; +#X connect 1 0 19 0; +#X connect 2 0 39 0; +#X connect 5 0 10 0; +#X connect 5 0 12 0; +#X connect 5 1 13 0; +#X connect 6 0 9 0; +#X connect 9 0 11 1; +#X connect 10 0 11 0; +#X connect 11 0 16 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 6 1; +#X connect 14 0 10 1; +#X connect 14 0 13 1; +#X connect 15 0 6 0; +#X connect 15 0 12 1; +#X connect 16 0 2 1; +#X connect 19 0 22 0; +#X connect 19 0 24 0; +#X connect 19 1 25 0; +#X connect 20 0 21 0; +#X connect 21 0 23 1; +#X connect 22 0 23 0; +#X connect 23 0 29 0; +#X connect 24 0 27 0; +#X connect 25 0 26 0; +#X connect 26 0 20 1; +#X connect 26 0 22 1; +#X connect 26 0 25 1; +#X connect 27 0 20 0; +#X connect 27 0 24 1; +#X connect 29 0 2 2; +#X connect 30 0 44 0; +#X connect 31 0 2 0; +#X connect 33 0 40 0; +#X connect 34 0 35 0; +#X connect 36 0 32 0; +#X connect 37 0 32 0; +#X connect 38 0 37 0; +#X connect 39 0 33 0; +#X connect 39 0 34 0; +#X connect 39 0 36 0; +#X connect 41 0 32 0; +#X connect 42 0 43 0; +#X connect 43 0 41 0; +#X connect 44 0 32 1; +#X connect 44 0 42 0; +#X restore 154 388 pd cursor; +#X obj 23 420 translateXYZ 0 0 -0.1; +#X obj 140 316 pix_threshold; +#X obj 180 294 hsl 128 15 0 1 0 1 empty empty threshold 8 8 0 10 -262130 +-1 -1 900 0; +#X obj 229 230 pix_delay 1; +#X text 28 12 This is an example of simple video tracking using the +difference between the current frame and the previous frame \, then +using blob detection.; +#X text 356 108 <-- get the video camera; +#X text 356 133 <-- convert to grey for easier tracking; +#X text 356 196 <-- make two copies of the frame; +#X obj 140 165 trigger anything anything; +#X text 356 229 <-- delay one copy by one frame; +#X text 356 305 <-- set the threshold to filter out; +#X text 381 281 difference between the two frames; +#X text 356 270 <-- find the absolute value of the; +#X text 381 316 small changes; +#X text 356 344 <-- track the (x \, y) coordinates and size; +#X text 380 357 of the "blob" of the difference; +#X text 356 384 <-- render a cursor using the (x \, y) and size; +#X text 6 460 render the video of the; +#X text 6 472 frame difference; +#X connect 0 0 8 0; +#X connect 1 0 12 0; +#X connect 2 0 11 0; +#X connect 5 0 1 0; +#X connect 6 0 14 0; +#X connect 7 0 19 0; +#X connect 8 0 7 0; +#X connect 9 1 10 0; +#X connect 9 2 10 1; +#X connect 9 3 10 2; +#X connect 11 0 4 0; +#X connect 12 0 9 0; +#X connect 12 0 2 0; +#X connect 13 0 12 1; +#X connect 14 0 1 1; +#X connect 19 0 6 0; +#X connect 19 1 5 0; diff --git a/Gem/examples/04.video/07.bg_subtract_tracking.pd b/Gem/examples/04.video/07.bg_subtract_tracking.pd new file mode 100644 index 0000000..7527569 --- /dev/null +++ b/Gem/examples/04.video/07.bg_subtract_tracking.pd @@ -0,0 +1,184 @@ +#N canvas 22 22 620 460 10; +#X obj 8 10 cnv 15 400 40 empty empty tracking_using_background_subtraction +20 12 0 16 -228992 -66577 0; +#X obj 179 223 pix_grey; +#X msg 204 251 reset; +#X obj 179 280 pix_background; +#X msg 272 259 \$1 \$1 \$1; +#X obj 123 316 pix_blob; +#N canvas 10 40 620 460 cursor 0; +#X obj 17 14 inlet; +#X obj 89 18 inlet; +#X obj 101 346 translateXYZ; +#X text 63 148 0.64; +#X text 37 151 1; +#X obj 23 63 t f f; +#X obj 37 176 -; +#X text 62 177 X-Range; +#X text 196 176 Y-Range; +#X obj 63 240 expr (8/$f1); +#X obj 33 241 -; +#X obj 51 267 *; +#X obj 29 95 max 0; +#X obj 71 95 min 10; +#X obj 59 132 f; +#X obj 33 131 f; +#X obj 52 293 - 4; +#X text 193 146 0.64; +#X text 167 149 1; +#X obj 153 61 t f f; +#X obj 167 174 -; +#X obj 193 238 expr (8/$f1); +#X obj 163 239 -; +#X obj 181 265 *; +#X obj 159 93 max 0; +#X obj 201 93 min 10; +#X obj 189 130 f; +#X obj 163 129 f; +#X text 188 171 comment; +#X obj 154 298 expr (-1*$f1)+4; +#X obj 293 27 inlet; +#X obj 283 63 * 10; +#X obj 94 320 gemhead 15; +#X obj 157 509 circle 0.1; +#X obj 17 423 separator; +#X obj 87 423 separator; +#X obj 17 484 rectangle 0.2 0.01; +#X obj 157 423 separator; +#X msg 185 478 draw line; +#X obj 185 457 loadbang; +#X obj 77 386 colorRGB 1 0 0 1; +#X obj 17 462 rectangle 0.01 0.2; +#X msg 256 478 width \$1; +#X obj 296 342 int; +#X obj 275 413 + 1; +#X connect 0 0 5 0; +#X connect 1 0 19 0; +#X connect 2 0 40 0; +#X connect 5 0 10 0; +#X connect 5 0 12 0; +#X connect 5 1 13 0; +#X connect 6 0 9 0; +#X connect 9 0 11 1; +#X connect 10 0 11 0; +#X connect 11 0 16 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 6 1; +#X connect 14 0 10 1; +#X connect 14 0 13 1; +#X connect 15 0 6 0; +#X connect 15 0 12 1; +#X connect 16 0 2 1; +#X connect 19 0 22 0; +#X connect 19 0 24 0; +#X connect 19 1 25 0; +#X connect 20 0 21 0; +#X connect 21 0 23 1; +#X connect 22 0 23 0; +#X connect 23 0 29 0; +#X connect 24 0 27 0; +#X connect 25 0 26 0; +#X connect 26 0 20 1; +#X connect 26 0 22 1; +#X connect 26 0 25 1; +#X connect 27 0 20 0; +#X connect 27 0 24 1; +#X connect 29 0 2 2; +#X connect 30 0 31 0; +#X connect 31 0 33 1; +#X connect 31 0 43 0; +#X connect 32 0 2 0; +#X connect 34 0 41 0; +#X connect 35 0 36 0; +#X connect 37 0 33 0; +#X connect 38 0 33 0; +#X connect 39 0 38 0; +#X connect 40 0 34 0; +#X connect 40 0 35 0; +#X connect 40 0 37 0; +#X connect 42 0 33 0; +#X connect 43 0 44 0; +#X connect 44 0 42 0; +#X restore 137 348 pd cursor; +#X obj 392 163 separator; +#X obj 392 184 pix_texture; +#X obj 392 205 square 4; +#X obj 378 368 pix_texture; +#X obj 179 200 separator; +#X obj 378 348 alpha; +#X obj 378 328 colourRGB 1 1 1 0.65; +#X obj 378 388 translateXYZ -2.4 -2.4 0; +#X obj 378 408 square 1.5; +#X obj 337 98 gemhead 10; +#X obj 337 119 pix_video; +#X text 376 309 Show pix_background output; +#X text 136 369 Show centroid/size; +#X text 368 257 Set noise threshold; +#X text 391 145 Render source video; +#X obj 275 237 hsl 128 15 0 1 0 1 empty empty empty -2 -8 0 10 -262130 +-1 -1 1200 1; +#X floatatom 331 259 5 0 0 0 - - -; +#X text 21 64 1) make sure no one is in the camera picture; +#X text 21 84 2) click the [reset( message; +#X text 21 104 3) set the noise threshold for best results; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 483 25 pd gemwin; +#X connect 1 0 3 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 3 0 13 0; +#X connect 4 0 3 1; +#X connect 5 1 6 0; +#X connect 5 2 6 1; +#X connect 5 3 6 2; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 10 0 14 0; +#X connect 11 0 1 0; +#X connect 12 0 10 0; +#X connect 13 0 12 0; +#X connect 14 0 15 0; +#X connect 16 0 17 0; +#X connect 17 0 7 0; +#X connect 17 0 11 0; +#X connect 22 0 23 0; +#X connect 22 0 4 0; diff --git a/Gem/examples/04.video/08.color_classification.pd b/Gem/examples/04.video/08.color_classification.pd new file mode 100644 index 0000000..dd933b2 --- /dev/null +++ b/Gem/examples/04.video/08.color_classification.pd @@ -0,0 +1,109 @@ +#N canvas 55 233 930 428 10; +#X obj 297 283 separator; +#X obj 297 304 pix_texture; +#X obj 96 130 gemhead 10; +#X obj 96 190 pix_video; +#X text 298 264 Render source video; +#X obj 297 344 square 4; +#X msg 166 153 device 2; +#N canvas 162 133 570 420 serin 0; +#X obj 205 60 cnv 20 20 20 empty \$0-open-canvas 2 4 10 0 16 -233017 +-1 0; +#X obj 60 61 hradio 18 1 1 8 empty empty empty 0 -6 0 8 -225271 -1 +-1 2; +#X obj 60 13 inlet; +#X msg 200 202 label \$1; +#X obj 200 180 makefilename %d; +#X obj 59 108 int; +#X obj 59 337 outlet; +#X msg 201 306 set \$1 \$2; +#X obj 59 266 trigger bang anything; +#X obj 201 286 list; +#X obj 200 225 send \$0-open-canvas; +#X msg 60 210 device \$1; +#X connect 1 0 5 0; +#X connect 2 0 1 0; +#X connect 3 0 10 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 5 0 11 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 8 1 9 0; +#X connect 9 0 7 0; +#X connect 11 0 8 0; +#X coords 0 -1 1 1 165 20 1 60 60; +#X restore 166 129 pd serin; +#X msg 321 153 colorspace RGBA; +#X msg 430 152 dialog; +#X obj 297 324 rotateXYZ 0 180 0; +#X obj 65 285 pix_texture; +#X obj 65 347 square 1.5; +#X obj 65 326 rotateXYZ 0 180 0; +#X obj 65 305 translateXYZ -2.4 -2.4 0.1; +#X text 72 264 Show color detection output; +#N canvas 249 346 1447 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 388 14 pd gemwin; +#X text 6 21 Reliable colors are detected in an incoming video \, each +pixel being classified into 6 classes: Red \, Green \, Blue \, Yellow +\, Black \, and White. A light brown color is used to visualize the +pixels whose color could not be reliably classified. The detector is +high precision with moderate recall \, meaning it avoids false positives +at the expense of a smaller number of classified pixels.; +#X msg 228 153 dimen 320 240; +#X obj 65 240 pix_colorclassify; +#X text 7 385 Author: Ricardo Fabbri labmacambira.sf.net rfabbri at +gmail; +#X connect 0 0 1 0; +#X connect 1 0 10 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X connect 3 0 19 0; +#X connect 6 0 3 0; +#X connect 7 0 6 0; +#X connect 8 0 3 0; +#X connect 9 0 3 0; +#X connect 10 0 5 0; +#X connect 11 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 13 0; +#X connect 18 0 3 0; +#X connect 19 0 11 0; diff --git a/Gem/examples/05.text/01.Text.pd b/Gem/examples/05.text/01.Text.pd new file mode 100644 index 0000000..3cde23a --- /dev/null +++ b/Gem/examples/05.text/01.Text.pd @@ -0,0 +1,120 @@ +#N canvas 262 20 734 641 10; +#X floatatom 623 223 0 0 0 0 - - -; +#X floatatom 322 240 0 0 0 0 - - -; +#X msg 490 144 1; +#X msg 494 168 0; +#X floatatom 694 403 0 0 0 0 - - -; +#X floatatom 529 284 3 0 0 0 - - -; +#X floatatom 578 222 0 0 0 0 - - -; +#X obj 479 194 gemhead; +#X floatatom 533 223 0 0 0 0 - - -; +#X msg 213 155 1; +#X msg 217 179 0; +#X floatatom 395 478 0 0 0 0 - - -; +#X floatatom 226 305 4 0 0 0 - - -; +#X floatatom 279 240 0 0 0 0 - - -; +#X obj 209 207 gemhead; +#X floatatom 235 240 0 0 0 0 - - -; +#X obj 208 496 text3d hello world; +#X obj 209 386 rotate; +#X obj 479 421 textoutline hello world; +#X msg 279 320 0 1 0; +#X msg 283 344 1 0 0; +#X msg 5 449 justify right top; +#X obj 209 281 translateXYZ; +#X msg 532 334 justify left bottom; +#X msg 4 422 justify center center; +#X text 205 111 3-D polygonal text; +#X text 480 99 3-D outline text; +#X obj 479 308 rotateXYZ; +#X text 401 496 size; +#X obj 479 257 translateXYZ 0 2 0; +#X msg 218 433 font ../data/vera.ttf; +#X msg 515 364 font ../data/vera.ttf; +#X msg 225 463 font \$1; +#X msg 511 390 font \$1; +#X obj 297 462 openpanel; +#X msg 377 461 bang; +#X obj 577 390 openpanel; +#X msg 657 389 bang; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 29 3; +#X connect 1 0 22 3; +#X connect 2 0 7 0; +#X connect 3 0 7 0; +#X connect 4 0 18 1; +#X connect 5 0 27 2; +#X connect 6 0 29 2; +#X connect 7 0 29 0; +#X connect 8 0 29 1; +#X connect 9 0 14 0; +#X connect 10 0 14 0; +#X connect 11 0 16 1; +#X connect 12 0 17 1; +#X connect 13 0 22 2; +#X connect 14 0 22 0; +#X connect 15 0 22 1; +#X connect 17 0 16 0; +#X connect 19 0 17 2; +#X connect 20 0 17 2; +#X connect 21 0 16 0; +#X connect 22 0 17 0; +#X connect 23 0 18 0; +#X connect 24 0 16 0; +#X connect 27 0 18 0; +#X connect 29 0 27 0; +#X connect 30 0 16 0; +#X connect 31 0 18 0; +#X connect 32 0 16 0; +#X connect 33 0 18 0; +#X connect 34 0 32 0; +#X connect 35 0 34 0; +#X connect 36 0 33 0; +#X connect 37 0 36 0; +#X connect 38 0 39 0; diff --git a/Gem/examples/05.text/01.TextNoLoadBang.pd b/Gem/examples/05.text/01.TextNoLoadBang.pd new file mode 100644 index 0000000..43bb335 --- /dev/null +++ b/Gem/examples/05.text/01.TextNoLoadBang.pd @@ -0,0 +1,112 @@ +#N canvas 262 20 734 641 10; +#X floatatom 623 223 0 0 0 0 - - -; +#X floatatom 322 240 0 0 0 0 - - -; +#X msg 490 144 1; +#X msg 494 168 0; +#X floatatom 694 403 0 0 0 0 - - -; +#X floatatom 529 284 3 0 0 0 - - -; +#X floatatom 578 222 0 0 0 0 - - -; +#X obj 479 194 gemhead; +#X floatatom 533 223 0 0 0 0 - - -; +#X msg 213 155 1; +#X msg 217 179 0; +#X floatatom 395 478 0 0 0 0 - - -; +#X floatatom 226 305 4 0 0 0 - - -; +#X floatatom 279 240 0 0 0 0 - - -; +#X obj 209 207 gemhead; +#X floatatom 235 240 0 0 0 0 - - -; +#X obj 208 496 text3d hello world; +#X obj 209 386 rotate; +#X obj 479 421 textoutline hello world; +#X msg 279 320 0 1 0; +#X msg 283 344 1 0 0; +#X msg 5 449 justify right top; +#X obj 209 281 translateXYZ; +#X msg 532 334 justify left bottom; +#X msg 4 422 justify center center; +#X text 205 111 3-D polygonal text; +#X text 480 99 3-D outline text; +#X obj 479 308 rotateXYZ; +#X text 401 496 size; +#X obj 479 257 translateXYZ 0 2 0; +#X msg 218 433 font ../data/vera.ttf; +#X msg 515 364 font ../data/vera.ttf; +#X msg 225 463 font \$1; +#X msg 511 390 font \$1; +#X obj 297 462 openpanel; +#X msg 377 461 bang; +#X obj 577 390 openpanel; +#X msg 657 389 bang; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 29 3; +#X connect 1 0 22 3; +#X connect 2 0 7 0; +#X connect 3 0 7 0; +#X connect 4 0 18 1; +#X connect 5 0 27 2; +#X connect 6 0 29 2; +#X connect 7 0 29 0; +#X connect 8 0 29 1; +#X connect 9 0 14 0; +#X connect 10 0 14 0; +#X connect 11 0 16 1; +#X connect 12 0 17 1; +#X connect 13 0 22 2; +#X connect 14 0 22 0; +#X connect 15 0 22 1; +#X connect 17 0 16 0; +#X connect 19 0 17 2; +#X connect 20 0 17 2; +#X connect 21 0 16 0; +#X connect 22 0 17 0; +#X connect 23 0 18 0; +#X connect 24 0 16 0; +#X connect 27 0 18 0; +#X connect 29 0 27 0; +#X connect 30 0 16 0; +#X connect 31 0 18 0; +#X connect 32 0 16 0; +#X connect 33 0 18 0; +#X connect 34 0 32 0; +#X connect 35 0 34 0; +#X connect 36 0 33 0; +#X connect 37 0 36 0; diff --git a/Gem/examples/05.text/03.ChangeText.pd b/Gem/examples/05.text/03.ChangeText.pd new file mode 100644 index 0000000..e93314e --- /dev/null +++ b/Gem/examples/05.text/03.ChangeText.pd @@ -0,0 +1,102 @@ +#N canvas 262 100 734 532 10; +#X floatatom 495 359 0 0 0 0 - - -; +#X obj 451 243 gemhead; +#X obj 451 484 text3d hello world; +#X text 354 25 3-D polygonal text; +#X msg 240 303 text something really cool; +#X msg 222 275 text bar; +#X msg 188 248 text foo; +#X msg 141 225 text and now with 1 4.5; +#X obj 201 180 sel 0 1 2 3 4; +#X msg 216 50 1; +#X msg 250 50 0; +#X obj 216 111 metro 250; +#X obj 216 142 random 7; +#X msg 262 342 text good bye again; +#X msg 324 267 text rand \$1; +#X obj 451 270 translateXYZ 0 0 -3.5; +#X obj 495 298 metro 20; +#X obj 451 397 rotateXYZ; +#X obj 497 439 loadbang; +#X obj 495 321 i; +#X obj 527 321 + 1; +#X obj 557 321 % 360; +#X obj 216 79 t f; +#X msg 497 461 font ../data/vera.ttf; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 345 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 362 pd gemwin; +#X connect 0 0 17 2; +#X connect 1 0 15 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X connect 6 0 2 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X connect 8 2 5 0; +#X connect 8 3 4 0; +#X connect 8 4 13 0; +#X connect 8 5 14 0; +#X connect 9 0 22 0; +#X connect 10 0 22 0; +#X connect 11 0 12 0; +#X connect 12 0 8 0; +#X connect 13 0 2 0; +#X connect 14 0 2 0; +#X connect 15 0 17 0; +#X connect 16 0 19 0; +#X connect 17 0 2 0; +#X connect 18 0 23 0; +#X connect 19 0 20 0; +#X connect 19 0 0 0; +#X connect 20 0 21 0; +#X connect 21 0 19 1; +#X connect 22 0 11 0; +#X connect 22 0 16 0; +#X connect 23 0 2 0; +#X connect 24 0 25 0; diff --git a/Gem/examples/05.text/03.ChangeTextNoLoadBang.pd b/Gem/examples/05.text/03.ChangeTextNoLoadBang.pd new file mode 100644 index 0000000..bb01724 --- /dev/null +++ b/Gem/examples/05.text/03.ChangeTextNoLoadBang.pd @@ -0,0 +1,92 @@ +#N canvas 262 100 734 532 10; +#X floatatom 495 359 0 0 0 0 - - -; +#X obj 451 243 gemhead; +#X obj 451 484 text3d hello world; +#X text 354 25 3-D polygonal text; +#X msg 240 303 text something really cool; +#X msg 222 275 text bar; +#X msg 188 248 text foo; +#X msg 141 225 text and now with 1 4.5; +#X obj 201 180 sel 0 1 2 3 4; +#X msg 179 44 1; +#X msg 216 43 0; +#X obj 216 107 metro 250; +#X obj 216 142 random 7; +#X msg 262 342 text good bye again; +#X msg 324 267 text rand \$1; +#X obj 451 270 translateXYZ 0 0 -3.5; +#X obj 495 298 metro 20; +#X obj 451 397 rotateXYZ; +#X msg 497 461 font ../data/vera.ttf; +#X obj 216 85 t f; +#X obj 495 327 i; +#X obj 526 327 + 1; +#X obj 556 327 % 360; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 17 2; +#X connect 1 0 15 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X connect 6 0 2 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X connect 8 2 5 0; +#X connect 8 3 4 0; +#X connect 8 4 13 0; +#X connect 8 5 14 0; +#X connect 9 0 19 0; +#X connect 10 0 19 0; +#X connect 11 0 12 0; +#X connect 12 0 8 0; +#X connect 13 0 2 0; +#X connect 14 0 2 0; +#X connect 15 0 17 0; +#X connect 16 0 20 0; +#X connect 17 0 2 0; +#X connect 18 0 2 0; +#X connect 19 0 11 0; +#X connect 19 0 16 0; +#X connect 20 0 21 0; +#X connect 20 0 0 0; +#X connect 21 0 22 0; +#X connect 22 0 20 1; diff --git a/Gem/examples/05.text/vera.ttf b/Gem/examples/05.text/vera.ttf new file mode 100644 index 0000000..58cd6b5 Binary files /dev/null and b/Gem/examples/05.text/vera.ttf differ diff --git a/Gem/examples/06.particle/01.simple.pd b/Gem/examples/06.particle/01.simple.pd new file mode 100644 index 0000000..a618273 --- /dev/null +++ b/Gem/examples/06.particle/01.simple.pd @@ -0,0 +1,69 @@ +#N canvas 509 196 487 398 10; +#X obj 167 160 gemhead; +#X obj 167 192 part_head; +#X obj 167 328 part_draw; +#X text 277 258 set the number per frame; +#X text 291 290 set the age to kill at; +#X text 296 110 the velocity domain; +#X text 295 125 a sphere at 0 \, 0.2 \, 0; +#X text 296 144 radius = 0.3; +#X msg 271 170 0 0.2 0 0.3; +#X msg 358 169 0.2 0 0 0.3; +#X obj 167 228 part_velocity sphere 0 0.2 0 0.3; +#X obj 167 261 part_source 20; +#X obj 167 292 part_killold 50; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 67 48 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 37 65 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 10 0; +#X connect 8 0 10 2; +#X connect 9 0 10 2; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 2 0; +#X connect 13 0 14 0; diff --git a/Gem/examples/06.particle/02.fountain.pd b/Gem/examples/06.particle/02.fountain.pd new file mode 100644 index 0000000..a12a37d --- /dev/null +++ b/Gem/examples/06.particle/02.fountain.pd @@ -0,0 +1,86 @@ +#N canvas 396 160 600 500 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 136 part_color; +#X obj 198 447 part_draw; +#X msg 335 69 0 1 0; +#X text 329 37 set the color range; +#X obj 198 174 part_size 1; +#X text 299 126 set the size; +#X obj 198 331 part_gravity 0 -0.01 0; +#X obj 198 206 part_velocity sphere 0 0.2 0 0.2; +#X text 310 269 set the number per frame; +#X text 310 378 set the age to kill at; +#X text 366 327 gravity to affect the particles; +#X text 428 174 the velocity domain; +#X text 426 191 a sphere at 0 \, 0.2 \, 0; +#X msg 219 413 draw line; +#X msg 298 413 draw point; +#X msg 309 151 2; +#X msg 393 69 1 0 0; +#X obj 198 270 part_source 25; +#X obj 198 381 part_killold 45; +#X text 426 208 radius = 0.2; +#X msg 126 51 speed 0.1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 159 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 176 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 4 0 2 1; +#X connect 6 0 9 0; +#X connect 8 0 20 0; +#X connect 9 0 19 0; +#X connect 15 0 3 0; +#X connect 16 0 3 0; +#X connect 17 0 6 1; +#X connect 18 0 2 2; +#X connect 19 0 8 0; +#X connect 20 0 3 0; +#X connect 22 0 1 0; +#X connect 23 0 24 0; diff --git a/Gem/examples/06.particle/03.orbit.pd b/Gem/examples/06.particle/03.orbit.pd new file mode 100644 index 0000000..2791db1 --- /dev/null +++ b/Gem/examples/06.particle/03.orbit.pd @@ -0,0 +1,88 @@ +#N canvas 396 160 600 500 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 136 part_color; +#X obj 198 447 part_draw; +#X text 329 37 set the color range; +#X text 299 174 set the size; +#X text 310 269 set the number per frame; +#X text 310 378 set the age to kill at; +#X text 414 196 the velocity domain; +#X msg 219 413 draw line; +#X msg 298 413 draw point; +#X obj 198 270 part_source 25; +#X obj 198 381 part_killold 45; +#X text 412 230 radius = 0.2; +#X msg 336 97 1 0 1; +#X msg 396 98 0 1 0; +#X obj 198 220 part_velocity sphere 0 0 0 0.2; +#X floatatom 375 301 0 0 0 0 - - -; +#X obj 198 334 part_orbitpoint 0 1 0 0.08; +#X text 390 333 orbit point and gravity; +#X obj 198 174 part_size 0.4; +#X obj 360 61 loadbang; +#X text 411 213 a sphere at 0 0 0; +#X text 415 299 keep the gravity low; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 20 0; +#X connect 9 0 3 0; +#X connect 10 0 3 0; +#X connect 11 0 18 0; +#X connect 12 0 3 0; +#X connect 14 0 2 1; +#X connect 15 0 2 2; +#X connect 16 0 11 0; +#X connect 17 0 18 2; +#X connect 18 0 12 0; +#X connect 20 0 16 0; +#X connect 21 0 15 0; +#X connect 21 0 14 0; +#X connect 24 0 25 0; diff --git a/Gem/examples/06.particle/04.combo.pd b/Gem/examples/06.particle/04.combo.pd new file mode 100644 index 0000000..37d9afd --- /dev/null +++ b/Gem/examples/06.particle/04.combo.pd @@ -0,0 +1,104 @@ +#N canvas 125 39 600 634 10; +#X obj 41 197 gemwin; +#X msg 41 39 create; +#X msg 58 68 destroy; +#X obj 198 39 gemhead; +#X obj 198 136 part_color; +#X obj 198 615 part_draw; +#X text 391 35 set the color range; +#X text 309 174 set the size; +#X text 330 269 set the number per frame; +#X text 330 458 set the age to kill at; +#X text 464 196 the velocity domain; +#X text 462 230 radius = 0.2; +#X floatatom 382 383 0 0 0 0 - - -; +#X text 420 413 orbit point and gravity; +#X obj 422 59 loadbang; +#X text 426 384 keep the gravity low; +#X obj 198 461 part_killold 35; +#X msg 398 95 0 0 1; +#X obj 198 174 part_size 0.8; +#X text 461 214 a sphere at -1 0 0; +#X text 373 300 apply a gravity to the right; +#X msg 85 357 0 1 0; +#X msg 143 357 0 -1 0; +#X obj 198 305 part_gravity 0.07 0 0; +#X obj 198 579 translateXYZ -1 0.5 0; +#X obj 198 544 rotateXYZ 0 1 0; +#X floatatom 20 442 0 0 0 0 - - -; +#X obj 198 414 part_orbitpoint 0 -1 0 0.88; +#X obj 198 497 part_gravity 0 0 -0.05; +#X obj 198 220 part_velocity sphere -1 0 0 0.05; +#X msg 458 96 1 0 0; +#X text 390 498 apply a gravity in Z; +#X obj 85 290 metro 2000; +#X obj 20 290 metro 50; +#X obj 198 82 part_head 2000; +#X text 204 60 maximum of 2000 particles; +#X obj 198 276 part_source 10; +#N canvas 91 174 290 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 90 175 pd Gem.init; +#X obj 79 104 tgl 40 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 55 249 t f f; +#X obj 20 403 i; +#X obj 51 403 + 1; +#X obj 81 403 % 360; +#X obj 79 149 t f f; +#N canvas 0 0 450 300 alternate 0; +#X obj 82 126 inlet; +#X obj 82 239 outlet; +#X obj 82 192 select 0 1; +#X obj 145 239 outlet; +#X obj 82 147 i; +#X obj 117 146 == 0; +#X obj 82 167 t f f; +#X connect 0 0 4 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 4 0 6 0; +#X connect 5 0 4 1; +#X connect 6 0 2 0; +#X connect 6 1 5 0; +#X restore 85 327 pd alternate; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 34 0; +#X connect 4 0 18 0; +#X connect 12 0 27 2; +#X connect 14 0 30 0; +#X connect 14 0 17 0; +#X connect 16 0 28 0; +#X connect 17 0 4 1; +#X connect 18 0 29 0; +#X connect 21 0 27 1; +#X connect 22 0 27 1; +#X connect 23 0 27 0; +#X connect 24 0 5 0; +#X connect 25 0 24 0; +#X connect 26 0 25 2; +#X connect 27 0 16 0; +#X connect 28 0 25 0; +#X connect 29 0 36 0; +#X connect 30 0 4 2; +#X connect 32 0 44 0; +#X connect 33 0 40 0; +#X connect 34 0 4 0; +#X connect 36 0 23 0; +#X connect 37 0 0 0; +#X connect 38 0 43 0; +#X connect 39 0 33 0; +#X connect 39 1 32 0; +#X connect 40 0 41 0; +#X connect 40 0 26 0; +#X connect 41 0 42 0; +#X connect 42 0 40 1; +#X connect 43 0 0 0; +#X connect 43 1 39 0; +#X connect 44 0 21 0; +#X connect 44 1 22 0; diff --git a/Gem/examples/06.particle/05.twoSrc.pd b/Gem/examples/06.particle/05.twoSrc.pd new file mode 100644 index 0000000..5884f75 --- /dev/null +++ b/Gem/examples/06.particle/05.twoSrc.pd @@ -0,0 +1,173 @@ +#N canvas 336 24 600 774 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 136 part_color; +#X obj 198 620 part_draw; +#X text 329 37 set the color range; +#X text 299 174 set the size; +#X text 310 269 set the number per frame; +#X text 321 588 set the age to kill at; +#X text 444 196 the velocity domain; +#X text 442 230 radius = 0.2; +#X obj 360 61 loadbang; +#X obj 198 586 part_killold 35; +#X obj 198 174 part_size 0.8; +#X text 441 214 a sphere at -1 0 0; +#X text 361 318 apply a gravity to the right; +#X obj 198 317 part_gravity 0.07 0 0; +#X obj 198 461 part_color; +#X obj 251 383 loadbang; +#X msg 275 421 0.4 0.4 0.4; +#X msg 227 420 1 0 0; +#X obj 198 277 part_source 5; +#X obj 198 497 part_source 5; +#X obj 198 537 part_gravity -0.01 -0.02 0; +#X obj 198 352 part_velocity sphere 0 0.2 0 0.05; +#X msg 324 96 0.4 0.4 0.4; +#X msg 423 96 0 1 0; +#X obj 198 220 part_velocity sphere -0.2 0 0 0.1; +#X obj 375 419 metro 1000; +#N canvas 0 22 450 300 tripleRand 0; +#X obj 94 71 inlet; +#X obj 94 252 outlet; +#X obj 94 221 pack 0 0 0; +#X obj 94 104 t b b b; +#X obj 94 134 random 1000; +#X obj 94 154 / 1000; +#X obj 94 175 * 0.1; +#X obj 194 134 random 1000; +#X obj 194 154 / 1000; +#X obj 294 134 random 1000; +#X obj 294 154 / 1000; +#X obj 194 175 * 0.2; +#X obj 294 175 * 0; +#X connect 0 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 1 7 0; +#X connect 3 2 9 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 2 0; +#X connect 7 0 8 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 12 0; +#X connect 11 0 2 1; +#X connect 12 0 2 2; +#X restore 375 453 pd tripleRand (0.1 0.2 0); +#N canvas 0 22 450 300 v* 0; +#X obj 90 62 unpack 0 0 0; +#X obj 90 42 inlet; +#X obj 90 137 pack 0 0 0; +#X obj 90 156 outlet; +#X obj 90 90 * -1; +#X obj 127 110 * -1; +#X obj 165 90 * -1; +#X connect 0 0 4 0; +#X connect 0 1 5 0; +#X connect 0 2 6 0; +#X connect 1 0 0 0; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 2 1; +#X connect 6 0 2 2; +#X restore 375 483 pd v* (-1); +#N canvas 0 22 450 300 tripleLine 0; +#X obj 94 71 inlet; +#X obj 94 252 outlet; +#X obj 94 104 unpack 0 0 0; +#X obj 94 221 pack 0 0 0; +#X obj 94 176 line; +#X msg 94 153 \$1 1000; +#X obj 164 176 line; +#X msg 164 153 \$1 1000; +#X obj 234 176 line; +#X msg 234 153 \$1 1000; +#X connect 0 0 2 0; +#X connect 2 0 5 0; +#X connect 2 1 7 0; +#X connect 2 2 9 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 3 1; +#X connect 7 0 6 0; +#X connect 8 0 3 2; +#X connect 9 0 8 0; +#X restore 375 505 pd tripleLine (1000); +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X obj 375 392 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 12 0; +#X connect 10 0 25 0; +#X connect 10 0 24 0; +#X connect 11 0 3 0; +#X connect 12 0 26 0; +#X connect 15 0 23 0; +#X connect 16 0 21 0; +#X connect 17 0 18 0; +#X connect 17 0 19 0; +#X connect 18 0 16 2; +#X connect 19 0 16 1; +#X connect 20 0 15 0; +#X connect 21 0 22 0; +#X connect 22 0 11 0; +#X connect 23 0 16 0; +#X connect 24 0 2 1; +#X connect 25 0 2 2; +#X connect 26 0 20 0; +#X connect 27 0 28 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 22 1; +#X connect 31 0 32 0; +#X connect 33 0 27 0; diff --git a/Gem/examples/06.particle/06.target.pd b/Gem/examples/06.particle/06.target.pd new file mode 100644 index 0000000..35237ad --- /dev/null +++ b/Gem/examples/06.particle/06.target.pd @@ -0,0 +1,74 @@ +#N canvas 396 160 600 500 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 447 part_draw; +#X obj 198 331 part_gravity 0 -0.01 0; +#X obj 198 160 part_velocity sphere 0 0.2 0 0.2; +#X text 310 269 set the number per frame; +#X text 310 378 set the age to kill at; +#X text 366 327 gravity to affect the particles; +#X text 331 94 the velocity domain; +#X text 329 111 a sphere at 0 \, 0.2 \, 0; +#X obj 198 270 part_source 25; +#X obj 198 381 part_killold 45; +#X text 329 128 radius = 0.2; +#X obj 198 116 part_size 0.1; +#X obj 198 236 part_targetcolor 0 0 1; +#X obj 198 201 part_targetsize 3; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 13 0; +#X connect 3 0 11 0; +#X connect 4 0 15 0; +#X connect 10 0 3 0; +#X connect 11 0 2 0; +#X connect 13 0 4 0; +#X connect 14 0 10 0; +#X connect 15 0 14 0; +#X connect 16 0 17 0; diff --git a/Gem/examples/06.particle/07.render.pd b/Gem/examples/06.particle/07.render.pd new file mode 100644 index 0000000..8fd3c0c --- /dev/null +++ b/Gem/examples/06.particle/07.render.pd @@ -0,0 +1,86 @@ +#N canvas 136 52 487 571 10; +#X obj 167 53 gemhead; +#X obj 167 81 part_head; +#X text 293 262 set the number per frame; +#X text 291 290 set the age to kill at; +#X text 296 110 the velocity domain; +#X text 295 125 a sphere at 0 \, 0.2 \, 0; +#X text 296 144 radius = 0.3; +#X msg 271 170 0 0.2 0 0.3; +#X msg 358 169 0.2 0 0 0.3; +#X obj 167 231 part_velocity sphere 0 0.2 0 0.3; +#X obj 167 330 part_render; +#X obj 167 393 sphere 0.2; +#X obj 47 308 gemhead; +#X obj 47 331 world_light; +#X obj 167 128 part_size 1; +#X msg 257 105 2; +#X obj 167 204 part_color; +#X msg 190 150 1 0 0; +#X obj 167 261 part_source 5; +#X obj 167 292 part_killold 10; +#X msg 202 178 0 1 0; +#X msg 227 104 1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, lighting 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 66 131 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 36 148 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 14 0; +#X connect 7 0 9 2; +#X connect 8 0 9 2; +#X connect 9 0 18 0; +#X connect 10 0 11 0; +#X connect 12 0 13 0; +#X connect 14 0 16 0; +#X connect 15 0 14 1; +#X connect 16 0 9 0; +#X connect 17 0 16 1; +#X connect 18 0 19 0; +#X connect 19 0 10 0; +#X connect 20 0 16 2; +#X connect 21 0 14 1; +#X connect 22 0 23 0; diff --git a/Gem/examples/06.particle/08.info.pd b/Gem/examples/06.particle/08.info.pd new file mode 100644 index 0000000..5b00adb --- /dev/null +++ b/Gem/examples/06.particle/08.info.pd @@ -0,0 +1,117 @@ +#N canvas 22 71 611 571 10; +#X obj 169 18 gemhead; +#X obj 168 85 part_head; +#X text 278 259 set the number per frame; +#X text 292 291 set the age to kill at; +#X msg 290 201 0 0.2 0 0.3; +#X msg 377 200 0.2 0 0 0.3; +#X obj 168 229 part_velocity sphere 0 0.2 0 0.3; +#X obj 168 132 part_size 1; +#X obj 168 254 part_source 5; +#X obj 168 279 part_killold 10; +#X obj 169 300 part_info; +#X obj 169 382 separator; +#X obj 169 408 translate 1 0 0 0; +#X obj 169 431 color; +#X obj 169 471 scale; +#X msg 278 518 draw line; +#X msg 257 105 2; +#X obj 170 502 rotateXYZ; +#X obj 320 435 unpack 0 0 0; +#X text 375 400 this is rather velocity; +#X text 379 416 than rotation; +#X obj 279 498 loadbang; +#X obj 170 537 square 0.2; +#X msg 300 378 \$1 \$2 0; +#X obj 169 56 rotateXYZ; +#X floatatom 272 20 5 0 0 0 - - -; +#X obj 168 205 part_color; +#X msg 200 180 1 0 0; +#X msg 252 180 0 0 1; +#X text 254 362 we don't allow particles spread along the z-axis; +#X msg 257 76 1; +#X obj 255 463 * 360; +#X obj 315 461 * 360; +#X obj 382 460 * 360; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 24 0; +#X connect 1 0 7 0; +#X connect 4 0 6 2; +#X connect 5 0 6 2; +#X connect 6 0 8 0; +#X connect 7 0 26 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 10 2 23 0; +#X connect 10 3 13 1; +#X connect 10 4 18 0; +#X connect 10 5 14 1; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 17 0; +#X connect 15 0 22 0; +#X connect 16 0 7 1; +#X connect 17 0 22 0; +#X connect 18 0 31 0; +#X connect 18 1 32 0; +#X connect 18 2 33 0; +#X connect 21 0 15 0; +#X connect 23 0 12 2; +#X connect 24 0 1 0; +#X connect 25 0 24 2; +#X connect 26 0 6 0; +#X connect 27 0 26 1; +#X connect 28 0 26 2; +#X connect 30 0 7 1; +#X connect 31 0 17 1; +#X connect 32 0 17 2; +#X connect 33 0 17 3; +#X connect 34 0 35 0; diff --git a/Gem/examples/06.particle/09.sink.pd b/Gem/examples/06.particle/09.sink.pd new file mode 100644 index 0000000..d22b5ac --- /dev/null +++ b/Gem/examples/06.particle/09.sink.pd @@ -0,0 +1,100 @@ +#N canvas 424 93 600 500 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 136 part_color; +#X obj 199 447 part_draw; +#X msg 335 69 0 1 0; +#X text 329 37 set the color range; +#X obj 198 174 part_size 1; +#X text 299 126 set the size; +#X obj 198 206 part_velocity sphere 0 0.2 0 0.2; +#X text 310 239 set the number per frame; +#X text 311 378 set the age to kill at; +#X text 309 255 gravity to affect the particles; +#X text 428 174 the velocity domain; +#X text 426 191 a sphere at 0 \, 0.2 \, 0; +#X msg 220 413 draw line; +#X msg 299 413 draw point; +#X msg 309 151 2; +#X msg 393 69 1 0 0; +#X obj 198 240 part_source 25; +#X obj 199 381 part_killold 45; +#X text 426 208 radius = 0.2; +#X msg 126 51 speed 0.1; +#X obj 245 303 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 389 314 5 0 0 0 - - -; +#X msg 389 331 0 \$1 0 0 1 0; +#X obj 198 271 part_gravity 0 -0.1 0; +#X obj 198 355 part_sink plane 0 -1 0 0 1 0; +#X msg 245 322 kill \$1; +#X obj 392 293 hsl 128 15 -4 0.1 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 4 0 2 1; +#X connect 6 0 8 0; +#X connect 8 0 18 0; +#X connect 14 0 3 0; +#X connect 15 0 3 0; +#X connect 16 0 6 1; +#X connect 17 0 2 2; +#X connect 18 0 25 0; +#X connect 19 0 3 0; +#X connect 21 0 1 0; +#X connect 22 0 27 0; +#X connect 23 0 24 0; +#X connect 24 0 26 2; +#X connect 25 0 26 0; +#X connect 26 0 19 0; +#X connect 27 0 26 0; +#X connect 28 0 23 0; +#X connect 29 0 30 0; diff --git a/Gem/examples/07.texture/01.texture.pd b/Gem/examples/07.texture/01.texture.pd new file mode 100644 index 0000000..da6dedc --- /dev/null +++ b/Gem/examples/07.texture/01.texture.pd @@ -0,0 +1,60 @@ +#N canvas 180 41 560 399 10; +#X floatatom 369 147 0 0 0 0 - - -; +#X obj 325 202 pix_image ../data/fractal.JPG; +#X obj 325 245 pix_texture; +#X obj 325 171 rotate 0 1 1; +#X obj 325 277 cube; +#X obj 325 124 gemhead; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 90 153 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 60 170 pd gemwin; +#X connect 0 0 3 1; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 5 0 3 0; +#X connect 6 0 7 0; diff --git a/Gem/examples/07.texture/02.TexCoord.pd b/Gem/examples/07.texture/02.TexCoord.pd new file mode 100644 index 0000000..951c700 --- /dev/null +++ b/Gem/examples/07.texture/02.TexCoord.pd @@ -0,0 +1,70 @@ +#N canvas 127 46 642 483 10; +#X obj 251 46 gemhead; +#X obj 251 424 square; +#X obj 251 369 pix_coordinate; +#X obj 251 118 pix_texture; +#X obj 251 87 pix_image ../data/fractal.JPG; +#X msg 363 227 0 0 1 0 1 1 0 1; +#X msg 349 203 0 0 2 0 2 2 0 2; +#X msg 369 253 0 0 0.5 0 0.5 0.5 0 0.5; +#X floatatom 400 285 5 0 0 0 - - -; +#X text 258 170 set the texture coordinates [x1 y1 x2 y2 x3 y3 x4 y4] +; +#X msg 400 308 0 0 \$1 0 \$1 \$1 0 \$1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, dimen 300 300; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 4 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 5 0 2 1; +#X connect 6 0 2 1; +#X connect 7 0 2 1; +#X connect 8 0 10 0; +#X connect 10 0 2 1; +#X connect 11 0 12 0; diff --git a/Gem/examples/07.texture/04.moveImages.pd b/Gem/examples/07.texture/04.moveImages.pd new file mode 100644 index 0000000..8107c0c --- /dev/null +++ b/Gem/examples/07.texture/04.moveImages.pd @@ -0,0 +1,153 @@ +#N canvas 180 41 816 619 10; +#X text 730 64 on; +#X text 767 62 off; +#X text 513 71 on; +#X text 578 69 off; +#X obj 633 450 pix_texture; +#X obj 670 477 r initstuff; +#X msg 724 86 1; +#X msg 761 85 0; +#X text 216 393 on; +#X text 255 391 off; +#X msg 29 417 1; +#X msg 65 419 0; +#X msg 210 419 1; +#X msg 248 419 0; +#X obj 286 437 gemhead 1; +#X obj 454 166 int 0; +#X obj 506 167 + 2; +#X floatatom 672 197 0 0 0 0 - - -; +#X obj 633 537 sphere; +#X floatatom 454 199 0 0 0 0 - - -; +#X obj 107 479 world_light; +#X obj 107 424 gemhead 1; +#X obj 415 445 sphere; +#X obj 672 170 int 0; +#X obj 286 493 light; +#X msg 670 507 20; +#X text 108 370 global light; +#X text 283 370 local light; +#X text 35 395 on; +#X text 65 396 off; +#X obj 454 132 metro 50; +#X msg 506 97 1; +#X msg 543 99 0; +#X obj 672 136 metro 100; +#X obj 734 168 + 1; +#X obj 66 580 send initstuff; +#X obj 452 383 r initstuff; +#X obj 415 311 pix_image ../data/fractal.JPG; +#X obj 415 354 pix_texture; +#X obj 633 314 pix_image ../data/dancer.JPG; +#X obj 633 377 alpha; +#X obj 633 414 pix_alpha; +#X obj 633 53 gemhead 60; +#X obj 415 228 rotate 0 1 1; +#X obj 633 227 rotate 1 0 1; +#X text 426 35 Blue Sphere; +#X text 641 18 Red Sphere; +#X obj 633 86 color 1 0 0; +#X obj 415 272 translateXYZ 2 0 0; +#X obj 633 274 translateXYZ 1 1 0; +#X msg 452 417 30; +#X obj 66 545 loadbang; +#X obj 415 68 gemhead 60; +#X obj 415 98 color 0 0 1; +#X msg 690 338 test 1; +#X msg 745 339 test 0; +#X msg 179 113 lighting \$1; +#X obj 179 93 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, lighting 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 4 0 18 0; +#X connect 5 0 25 0; +#X connect 6 0 33 0; +#X connect 7 0 33 0; +#X connect 7 0 34 0; +#X connect 10 0 20 0; +#X connect 11 0 20 0; +#X connect 12 0 24 0; +#X connect 13 0 24 0; +#X connect 14 0 24 0; +#X connect 15 0 16 0; +#X connect 15 0 19 0; +#X connect 16 0 15 1; +#X connect 17 0 44 1; +#X connect 19 0 43 1; +#X connect 21 0 20 0; +#X connect 23 0 17 0; +#X connect 23 0 34 0; +#X connect 25 0 18 2; +#X connect 30 0 15 0; +#X connect 31 0 30 0; +#X connect 32 0 30 0; +#X connect 32 0 16 0; +#X connect 33 0 23 0; +#X connect 34 0 23 1; +#X connect 36 0 50 0; +#X connect 37 0 38 0; +#X connect 38 0 22 0; +#X connect 39 0 40 0; +#X connect 40 0 41 0; +#X connect 41 0 4 0; +#X connect 42 0 47 0; +#X connect 43 0 48 0; +#X connect 44 0 49 0; +#X connect 47 0 44 0; +#X connect 48 0 37 0; +#X connect 49 0 39 0; +#X connect 50 0 22 2; +#X connect 51 0 35 0; +#X connect 52 0 53 0; +#X connect 53 0 43 0; +#X connect 54 0 40 0; +#X connect 55 0 40 0; +#X connect 56 0 59 0; +#X connect 57 0 56 0; +#X connect 58 0 59 0; diff --git a/Gem/examples/07.texture/05.newWave.pd b/Gem/examples/07.texture/05.newWave.pd new file mode 100644 index 0000000..52c631b --- /dev/null +++ b/Gem/examples/07.texture/05.newWave.pd @@ -0,0 +1,201 @@ +#N canvas 110 90 876 486 10; +#X text 653 313 Inlet 1: gemlist; +#X obj 209 277 gemhead; +#X floatatom 622 130 5 0 0 2 size - -; +#X floatatom 539 84 5 0 0 2 height - -; +#X floatatom 241 339 5 0 0 0 - - -; +#X msg 322 5 draw line; +#X msg 322 25 draw fill; +#X msg 322 45 draw point; +#X text 653 188 00..retrigger current action; +#X text 653 200 01..flat; +#X text 653 211 02..spike; +#X text 653 221 03..diagonal wall; +#X text 652 234 04..sidewall; +#X text 652 245 05..hole; +#X text 652 256 06..middleblock; +#X text 652 267 07..diagonalblock; +#X text 652 278 08..cornerblock; +#X text 652 288 09..hill; +#X obj 718 28 vradio 11 1 0 11 empty empty action -10 -6 0 8 -262144 +-1 -1 0; +#X text 651 299 10..hill4 (default); +#X floatatom 274 339 5 0 0 0 - - -; +#X floatatom 308 339 5 0 0 0 - - -; +#X floatatom 13 -15 5 0 0 0 - - -; +#X msg 415 228 force 25 25 30; +#X msg 539 45 0.06; +#X obj 539 17 loadbang; +#X obj 13 3 / 100; +#X floatatom 173 -15 5 0 0 0 - - -; +#X obj 173 4 / 100; +#X obj 401 39 random 50; +#X obj 444 59 random 50; +#X obj 401 81 pack 0 0; +#X obj 401 15 metro 300; +#X msg 415 273 position 10 10 100; +#X msg 718 155 mode \$1; +#X msg 415 250 force 4 2 50; +#X msg 538 101 height \$1; +#X floatatom 65 -16 5 0 0 0 - - -; +#X obj 65 2 / 100; +#X floatatom 216 -16 5 0 0 0 - - -; +#X obj 216 3 / 100; +#X floatatom 114 -17 5 0 0 0 - - -; +#X obj 114 1 / 100; +#X floatatom 258 -17 5 0 0 0 - - -; +#X obj 258 2 / 100; +#X obj 623 74 loadbang; +#X msg 23 48 K1 0.05; +#X msg 13 24 K1 \$1; +#X msg 179 46 D1 0.1; +#X msg 173 25 D1 \$1; +#X msg 65 23 K2 \$1; +#X msg 114 22 K3 \$1; +#X msg 75 47 K2 0.05; +#X msg 124 46 K3 0.05; +#X msg 216 24 D2 \$1; +#X msg 222 45 D2 0.1; +#X msg 258 23 D3 \$1; +#X obj 13 235 newWave 50; +#X msg 264 44 D3 0.01; +#X msg 329 67 width 1; +#X msg 330 87 width 10; +#X obj 402 -3 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 87 411 \; pd quit \;; +#N canvas 0 22 247 188 cpu 0; +#X obj 30 45 metro 1000; +#X obj 32 22 loadbang; +#X obj 33 96 cputime; +#X obj 30 69 t b b; +#X obj 34 125 / 10; +#X obj 33 150 outlet; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 3 1 2 1; +#X connect 4 0 5 0; +#X restore 20 396 pd cpu; +#X floatatom 20 426 5 0 0 0 - - -; +#X obj 87 348 gemhead; +#X obj 87 374 world_light; +#X obj 209 382 render_trigger; +#X obj 209 360 rotateXYZ 300 0 0; +#X obj 311 -18 loadbang; +#X msg 415 207 force 20 20 30; +#X msg 623 97 2; +#X obj 209 317 pix_texture; +#X obj 209 298 pix_image ../data/fractal.JPG; +#X msg 400 101 force \$1 \$2 -0.1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 532 385 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 502 402 pd gemwin; +#X connect 1 0 73 0; +#X connect 2 0 57 1; +#X connect 3 0 36 0; +#X connect 4 0 68 1; +#X connect 5 0 57 0; +#X connect 6 0 57 0; +#X connect 7 0 57 0; +#X connect 18 0 34 0; +#X connect 20 0 68 2; +#X connect 21 0 68 3; +#X connect 22 0 26 0; +#X connect 23 0 57 0; +#X connect 24 0 3 0; +#X connect 25 0 24 0; +#X connect 26 0 47 0; +#X connect 27 0 28 0; +#X connect 28 0 49 0; +#X connect 29 0 31 0; +#X connect 30 0 31 1; +#X connect 31 0 74 0; +#X connect 32 0 29 0; +#X connect 32 0 30 0; +#X connect 33 0 57 0; +#X connect 34 0 57 0; +#X connect 35 0 57 0; +#X connect 36 0 57 0; +#X connect 37 0 38 0; +#X connect 38 0 50 0; +#X connect 39 0 40 0; +#X connect 40 0 54 0; +#X connect 41 0 42 0; +#X connect 42 0 51 0; +#X connect 43 0 44 0; +#X connect 44 0 56 0; +#X connect 45 0 71 0; +#X connect 46 0 57 0; +#X connect 47 0 57 0; +#X connect 48 0 57 0; +#X connect 49 0 57 0; +#X connect 50 0 57 0; +#X connect 51 0 57 0; +#X connect 52 0 57 0; +#X connect 53 0 57 0; +#X connect 54 0 57 0; +#X connect 55 0 57 0; +#X connect 56 0 57 0; +#X connect 58 0 57 0; +#X connect 59 0 57 0; +#X connect 60 0 57 0; +#X connect 61 0 32 0; +#X connect 63 0 64 0; +#X connect 65 0 66 0; +#X connect 67 0 57 0; +#X connect 67 2 57 0; +#X connect 68 0 67 0; +#X connect 69 0 48 0; +#X connect 69 0 46 0; +#X connect 70 0 57 0; +#X connect 71 0 2 0; +#X connect 72 0 68 0; +#X connect 73 0 72 0; +#X connect 74 0 57 0; +#X connect 75 0 76 0; diff --git a/Gem/examples/07.texture/06.ripple.pd b/Gem/examples/07.texture/06.ripple.pd new file mode 100644 index 0000000..a329550 --- /dev/null +++ b/Gem/examples/07.texture/06.ripple.pd @@ -0,0 +1,114 @@ +#N canvas 153 39 582 638 10; +#X obj 299 39 openpanel; +#X msg 34 50 dimen 640 480; +#X obj 174 115 gemhead; +#X msg 381 41 auto \$1; +#X obj 384 13 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X floatatom 185 429 5 0 0 0 - - -; +#X obj 299 11 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 72 92 profile 1; +#X msg 81 130 profile 0; +#X msg 384 84 open ../data/anim-1.mov; +#X msg 299 66 open \$1; +#X obj 113 429 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 198 445 5 0 0 0 - - -; +#X floatatom 227 460 5 0 0 0 - - -; +#X floatatom 214 261 5 0 0 0 - - -; +#X floatatom 254 261 5 0 0 0 - - -; +#X floatatom 295 261 5 0 0 0 - - -; +#X floatatom 242 487 5 0 0 0 - - -; +#X floatatom 196 306 5 0 0 0 - - -; +#X floatatom 207 349 4 0 0 0 - - -; +#X floatatom 240 349 4 0 0 0 - - -; +#X floatatom 274 349 4 0 0 0 - - -; +#X obj 174 171 pix_film; +#X obj 174 324 scale 6; +#X obj 174 278 translateXYZ 0 0 0; +#X obj 174 212 pix_texture; +#X obj 241 172 t f; +#X msg 384 124 open ../data/alea.mpg; +#X obj 174 366 rotateXYZ 0 0 0; +#X obj 174 517 ripple; +#X msg 384 104 open ../data/homer.avi; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 168 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 185 pd gemwin; +#X connect 0 0 10 0; +#X connect 1 0 32 0; +#X connect 2 0 22 0; +#X connect 3 0 22 0; +#X connect 4 0 3 0; +#X connect 5 0 29 1; +#X connect 6 0 0 0; +#X connect 7 0 32 0; +#X connect 8 0 32 0; +#X connect 9 0 22 0; +#X connect 10 0 22 0; +#X connect 11 0 29 0; +#X connect 12 0 29 2; +#X connect 13 0 29 3; +#X connect 14 0 24 1; +#X connect 15 0 24 2; +#X connect 16 0 24 3; +#X connect 17 0 29 4; +#X connect 18 0 23 1; +#X connect 19 0 28 1; +#X connect 20 0 28 2; +#X connect 21 0 28 3; +#X connect 22 0 25 0; +#X connect 22 2 26 0; +#X connect 23 0 28 0; +#X connect 24 0 23 0; +#X connect 25 0 24 0; +#X connect 26 0 22 1; +#X connect 27 0 22 0; +#X connect 28 0 29 0; +#X connect 30 0 22 0; +#X connect 31 0 32 0; diff --git a/Gem/examples/07.texture/07.feedback.pd b/Gem/examples/07.texture/07.feedback.pd new file mode 100644 index 0000000..a402cfe --- /dev/null +++ b/Gem/examples/07.texture/07.feedback.pd @@ -0,0 +1,92 @@ +#N canvas 4 50 630 424 10; +#X msg 320 121 snap; +#X obj 320 68 gemhead 15; +#X obj 39 64 gemhead 10; +#X obj 39 126 scaleXYZ 6 0.1 6; +#X obj 55 95 hsl 128 15 0.02 1.53 0 0 empty empty empty -2 -6 0 8 -262139 +-1 -1 0 1; +#X obj 39 259 cube 0.34; +#X obj 320 260 rotateXYZ; +#X obj 357 237 hsl 128 15 -34 34 0 0 empty empty empty -2 -6 0 8 -261879 +-1 -1 6350 1; +#X obj 40 364 light; +#X obj 40 341 translateXYZ 0 0 4; +#X obj 320 154 pix_snap2tex 0 0 512 512; +#X obj 320 300 sphere 3.64 50; +#X obj 40 318 gemhead 1; +#X msg 354 216 0; +#X obj 354 195 loadbang; +#X obj 125 158 hsl 128 15 0 1 0 1 empty empty R 12 8 1 12 -261689 -1 +-1 12700 1; +#X obj 125 178 hsl 128 15 0 1 0 1 empty empty G 12 8 1 12 -225271 -1 +-1 12700 1; +#X obj 125 198 hsl 128 15 0 1 0 1 empty empty B 12 8 1 12 -228992 -1 +-1 12700 1; +#X obj 39 227 colorRGB 1 1 1; +#X obj 320 92 trigger bang anything; +#N canvas 89 204 317 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, dimen 512 512 \, lighting 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 485 338 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 455 355 pd gemwin; +#X connect 0 0 10 0; +#X connect 1 0 19 0; +#X connect 2 0 3 0; +#X connect 3 0 18 0; +#X connect 4 0 3 2; +#X connect 6 0 11 0; +#X connect 7 0 6 2; +#X connect 9 0 8 0; +#X connect 10 0 6 0; +#X connect 12 0 9 0; +#X connect 13 0 7 0; +#X connect 14 0 13 0; +#X connect 15 0 18 1; +#X connect 16 0 18 2; +#X connect 17 0 18 3; +#X connect 18 0 5 0; +#X connect 19 0 0 0; +#X connect 19 1 10 0; +#X connect 20 0 21 0; diff --git a/Gem/examples/07.texture/08.MotionBlur.pd b/Gem/examples/07.texture/08.MotionBlur.pd new file mode 100644 index 0000000..ca5e121 --- /dev/null +++ b/Gem/examples/07.texture/08.MotionBlur.pd @@ -0,0 +1,130 @@ +#N canvas 13 0 1023 406 10; +#X obj 33 260 world_light; +#X msg 282 164 bang; +#X obj 282 144 metro 500; +#X obj 282 126 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 593 113 gemhead -1; +#X obj 593 234 pix_snap2tex; +#X msg 638 210 0 0; +#X msg 684 209 500 500; +#X obj 638 187 t b b; +#X obj 593 194 t b a; +#X obj 593 272 alpha; +#X floatatom 766 262 5 0 0 0 - - -; +#X obj 593 340 square 4; +#X obj 771 114 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X msg 47 118 frame \$1; +#X floatatom 47 100 5 0 0 0 - - -; +#X obj 593 296 colorRGB 1 1 1 0.888; +#X obj 33 236 gemhead; +#X obj 638 168 loadbang; +#N canvas 0 0 749 590 moving 0; +#X obj 193 81 gemhead; +#X obj 193 384 translateXYZ; +#X obj 276 67 t b b; +#X obj 276 104 random 100; +#X obj 193 357 colorRGB 1 1 1; +#X obj 276 39 inlet; +#X obj 193 411 teapot; +#X obj 276 135 pack 0 1000; +#X obj 276 181 / 100; +#X obj 276 201 * 8; +#X obj 276 221 - 4; +#X obj 375 104 random 100; +#X obj 375 135 pack 0 1000; +#X obj 375 181 / 100; +#X obj 375 201 * 8; +#X obj 375 221 - 4; +#X obj 276 159 line 50 10; +#X obj 375 159 line 50 10; +#X connect 0 0 4 0; +#X connect 1 0 6 0; +#X connect 2 0 3 0; +#X connect 2 1 11 0; +#X connect 3 0 7 0; +#X connect 4 0 1 0; +#X connect 5 0 2 0; +#X connect 7 0 16 0; +#X connect 8 0 9 0; +#X connect 8 0 4 1; +#X connect 9 0 10 0; +#X connect 10 0 1 1; +#X connect 11 0 12 0; +#X connect 12 0 17 0; +#X connect 13 0 14 0; +#X connect 13 0 4 2; +#X connect 14 0 15 0; +#X connect 15 0 1 2; +#X connect 16 0 8 0; +#X connect 17 0 13 0; +#X restore 282 186 pd moving object; +#X text 267 31 FullScreen Motion Blur:; +#N canvas 87 154 414 208 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, frame 100 \, lighting 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 77 143 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 47 160 pd gemwin; +#X connect 1 0 19 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 5 1; +#X connect 7 0 5 2; +#X connect 8 0 6 0; +#X connect 8 1 7 0; +#X connect 9 0 5 0; +#X connect 9 1 5 0; +#X connect 10 0 16 0; +#X connect 11 0 16 4; +#X connect 13 0 11 0; +#X connect 14 0 22 0; +#X connect 15 0 14 0; +#X connect 16 0 12 0; +#X connect 17 0 0 0; +#X connect 18 0 8 0; +#X connect 21 0 22 0; diff --git a/Gem/examples/07.texture/09.sharedTextures.pd b/Gem/examples/07.texture/09.sharedTextures.pd new file mode 100644 index 0000000..bd8cb84 --- /dev/null +++ b/Gem/examples/07.texture/09.sharedTextures.pd @@ -0,0 +1,79 @@ +#N canvas 180 41 1035 404 10; +#X floatatom 370 259 0 0 0 0 - - -; +#X obj 325 122 pix_image ../data/fractal.JPG; +#X obj 325 155 pix_texture; +#X obj 325 279 rotate 0 1 1; +#X obj 325 307 cube; +#X obj 704 209 pix_texture; +#X obj 325 237 translateXYZ -2 1 0; +#X obj 704 283 circle; +#X obj 704 253 translateXYZ 2 1 0; +#X obj 325 84 gemhead 10; +#X obj 704 154 gemhead 30; +#X obj 570 272 gemhead 20; +#X obj 570 299 pix_texture; +#X obj 570 328 pix_coordinate; +#X obj 570 351 translateXYZ 0 -1 0; +#X obj 570 381 triangle; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 121 174 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 91 191 pd gemwin; +#X connect 0 0 3 1; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 2 1 5 1; +#X connect 3 0 4 0; +#X connect 5 0 8 0; +#X connect 6 0 3 0; +#X connect 8 0 7 0; +#X connect 9 0 1 0; +#X connect 10 0 5 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 16 0 17 0; diff --git a/Gem/examples/07.texture/10.framebuffer.pd b/Gem/examples/07.texture/10.framebuffer.pd new file mode 100644 index 0000000..7717e47 --- /dev/null +++ b/Gem/examples/07.texture/10.framebuffer.pd @@ -0,0 +1,195 @@ +#N canvas 446 42 834 667 10; +#X obj 202 83 gemhead 20; +#X obj 491 166 gemhead; +#X floatatom 532 391 5 0 0 0 - - -; +#X floatatom 481 392 5 0 0 0 - - -; +#X obj 581 389 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X msg 286 97 dim 320 240; +#X msg 286 117 dim 256 256; +#X obj 278 634 rotateXYZ; +#X floatatom 334 617 5 0 0 0 - - -; +#X floatatom 346 636 5 0 0 0 - - -; +#X floatatom 295 617 5 0 0 0 - - -; +#X floatatom 299 443 5 0 0 0 - - -; +#X floatatom 348 443 5 0 0 0 - - -; +#X floatatom 250 443 5 0 0 0 - - -; +#X obj 278 333 separator; +#X obj -56 319 gemhead 1; +#X obj -56 339 world_light; +#X msg 286 137 dim 512 512; +#X floatatom 507 322 5 0 0 0 - - -; +#X floatatom 582 333 5 0 0 0 - - -; +#X msg 289 45 color 0 0 1 0; +#X msg 286 157 dim 1024 1024; +#X msg 289 69 color 0 0 0 0; +#X obj 203 507 rotateXYZ; +#X floatatom 226 490 5 0 0 0 - - -; +#X floatatom 269 490 5 0 0 0 - - -; +#X floatatom 318 496 5 0 0 0 - - -; +#X msg -21 72 color 0 0 0 0; +#X obj 278 554 t a b; +#X msg -33 51 color 0 1 1 0; +#X msg -12 121 lighting \$1; +#X obj -12 100 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 554 433 5 0 0 0 - - -; +#X obj 202 302 t a a; +#X obj 202 355 color 1 1 1; +#X obj 203 413 pix_texture; +#X msg 406 94 mode \$1; +#X obj 406 67 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 203 467 translateXYZ -0.5 -0.8 -1; +#X msg 229 374 open data/fractal.JPG; +#X floatatom 376 507 5 0 0 0 - - -; +#X msg 289 10 type FLOAT; +#X obj 460 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 342 281 5 0 0 0 - - -; +#X obj 203 527 sphere 0.4; +#X obj 491 357 rotateXYZ 28 0 200; +#X obj 491 431 square 2; +#X obj 491 410 translateXYZ 0 0 1.53; +#X obj 202 281 translateXYZ 0 0 -4; +#X obj 278 681 cube 0.57; +#X obj 278 527 translateXYZ 2 0 -1; +#X obj 202 135 color 0 1 0; +#X obj 179 195 cnv 15 400 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 202 200 gemframebuffer; +#X obj 491 233 pix_texture; +#X obj -56 410 gemhead; +#X obj -56 459 teapot 0.3; +#X obj -56 435 translateXYZ -3 3 0; +#X text -52 726 this example renders a scene (cube and sphere) into +a framebuffer \, which is then used as a texture onto a square. teapot +and square live in a "meta"-world in relation to cube and sphere.; +#X obj 362 575 % 360; +#X obj 308 575 i; +#X obj 491 265 t a b; +#X obj 567 286 + 1; +#X obj 334 575 + 5; +#X obj 521 286 i 200; +#X obj 595 286 % 3600; +#X obj 582 313 / 10; +#X text 435 65 <-- click me to change between normalized(0) and rectangle(1) +textures.; +#X text 399 717 you need framebuffer support on your gfx-card; +#X text 395 738 (and its driver!); +#X obj 202 394 pix_image ../data/fractal.JPG; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore -3 160 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore -33 177 pd gemwin; +#X connect 0 0 51 0; +#X connect 1 0 54 0; +#X connect 2 0 47 2; +#X connect 3 0 47 1; +#X connect 4 0 47 3; +#X connect 5 0 53 0; +#X connect 6 0 53 0; +#X connect 7 0 49 0; +#X connect 8 0 7 2; +#X connect 9 0 7 3; +#X connect 10 0 7 1; +#X connect 11 0 38 2; +#X connect 12 0 38 3; +#X connect 13 0 38 1; +#X connect 14 0 50 0; +#X connect 15 0 16 0; +#X connect 17 0 53 0; +#X connect 18 0 45 1; +#X connect 19 0 45 3; +#X connect 20 0 53 0; +#X connect 21 0 53 0; +#X connect 22 0 53 0; +#X connect 23 0 44 0; +#X connect 24 0 23 1; +#X connect 25 0 23 2; +#X connect 26 0 23 3; +#X connect 27 0 72 0; +#X connect 28 0 7 0; +#X connect 28 1 60 0; +#X connect 29 0 72 0; +#X connect 30 0 72 0; +#X connect 31 0 30 0; +#X connect 32 0 46 1; +#X connect 33 0 34 0; +#X connect 33 1 14 0; +#X connect 34 0 70 0; +#X connect 35 0 38 0; +#X connect 36 0 53 0; +#X connect 37 0 36 0; +#X connect 38 0 23 0; +#X connect 39 0 70 0; +#X connect 40 0 50 3; +#X connect 41 0 53 0; +#X connect 42 0 1 0; +#X connect 43 0 48 3; +#X connect 45 0 47 0; +#X connect 47 0 46 0; +#X connect 48 0 33 0; +#X connect 50 0 28 0; +#X connect 51 0 53 0; +#X connect 53 0 48 0; +#X connect 53 1 54 1; +#X connect 54 0 61 0; +#X connect 55 0 57 0; +#X connect 57 0 56 0; +#X connect 59 0 60 1; +#X connect 60 0 8 0; +#X connect 60 0 63 0; +#X connect 61 0 45 0; +#X connect 61 1 64 0; +#X connect 62 0 65 0; +#X connect 63 0 59 0; +#X connect 64 0 62 0; +#X connect 64 0 66 0; +#X connect 65 0 64 1; +#X connect 66 0 19 0; +#X connect 70 0 35 0; +#X connect 71 0 72 0; diff --git a/Gem/examples/07.texture/11.multiples_gemhead_in_a_framebuffer.pd b/Gem/examples/07.texture/11.multiples_gemhead_in_a_framebuffer.pd new file mode 100644 index 0000000..69ef470 --- /dev/null +++ b/Gem/examples/07.texture/11.multiples_gemhead_in_a_framebuffer.pd @@ -0,0 +1,116 @@ +#N canvas 39 70 764 536 10; +#X obj 108 279 cnv 15 300 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 112 112 cnv 15 300 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 116 50 gemhead; +#X obj 112 440 translateXYZ 1 0 0; +#X obj 260 443 translateXYZ -1 0 0; +#X obj 260 483 circle; +#X obj 116 239 rotateXYZ; +#X floatatom 156 222 5 0 0 0 - - -; +#X floatatom 194 423 5 0 0 0 - - -; +#X floatatom 346 426 5 0 0 0 - - -; +#X obj 322 50 gemhead; +#X floatatom 342 71 5 0 0 0 - - -; +#X obj 116 114 gemframebuffer; +#X obj 112 483 triangle; +#X obj 322 147 pix_texture; +#X obj 116 197 translateXYZ 0 0 -4; +#X obj 260 463 color 1 0 0; +#X obj 322 89 rotateXYZ; +#X obj 322 195 square 3; +#X obj 148 282 s gemfbhead_trigger1; +#X obj 116 259 t b b; +#X obj 112 336 r gemfbhead_trigger1; +#X obj 112 420 gemhead; +#X msg 44 389 0; +#X obj 44 366 loadbang; +#X obj 260 423 gemhead; +#X obj 260 336 r gemfbhead_trigger2; +#X obj 116 306 s gemfbhead_trigger2; +#X text 203 221 <- rotate all the render chain; +#X text 201 238 (it change even after a new gemhead \, this is not +very intuitive); +#X text 323 283 <- continue the render chain. The gemhead did not start +a new gemchain \, because it is banged during a frambuffer rendering +; +#X text 113 10 This example show how to draw multiples gemhead in a +single framebuffer; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 625 90 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 595 107 pd gemwin; +#X msg 595 63 color \$1 \$1 \$1; +#X obj 595 44 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +0.5; +#X connect 2 0 12 0; +#X connect 3 0 13 0; +#X connect 4 0 16 0; +#X connect 6 0 20 0; +#X connect 7 0 6 2; +#X connect 8 0 3 2; +#X connect 9 0 4 2; +#X connect 10 0 17 0; +#X connect 11 0 17 1; +#X connect 12 0 15 0; +#X connect 12 1 14 1; +#X connect 14 0 18 0; +#X connect 15 0 6 0; +#X connect 16 0 5 0; +#X connect 17 0 14 0; +#X connect 20 0 27 0; +#X connect 20 1 19 0; +#X connect 21 0 22 0; +#X connect 22 0 3 0; +#X connect 23 0 22 0; +#X connect 23 0 25 0; +#X connect 24 0 23 0; +#X connect 25 0 4 0; +#X connect 26 0 25 0; +#X connect 32 0 33 0; +#X connect 34 0 33 0; +#X connect 35 0 34 0; diff --git a/Gem/examples/08.io/01.Mouse.pd b/Gem/examples/08.io/01.Mouse.pd new file mode 100644 index 0000000..fcf7d93 --- /dev/null +++ b/Gem/examples/08.io/01.Mouse.pd @@ -0,0 +1,84 @@ +#N canvas 396 160 600 500 10; +#X text 303 95 left button; +#X obj 302 193 spigot; +#X floatatom 391 324 0 0 0 0 - - -; +#X obj 193 275 gemhead; +#X floatatom 302 322 0 0 0 0 - - -; +#X obj 193 401 square; +#X text 109 29 this demonstrates how to use gemmouse; +#X obj 193 304 color 1 0 0; +#X obj 193 358 translateXYZ; +#X obj 302 262 - 1; +#X obj 302 294 * 4; +#X obj 391 189 spigot; +#X text 272 66 the outputs of gemmouse are:; +#X text 191 94 x pos; +#X text 247 94 y pos; +#X text 396 95 middle button; +#X text 499 96 right button; +#X obj 391 267 - 1; +#X obj 391 296 * -4; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X obj 338 143 gemmouse 2 2; +#X connect 1 0 9 0; +#X connect 2 0 8 2; +#X connect 3 0 7 0; +#X connect 4 0 8 1; +#X connect 7 0 8 0; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 10 0 4 0; +#X connect 11 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 2 0; +#X connect 19 0 20 0; +#X connect 21 0 1 0; +#X connect 21 1 11 0; +#X connect 21 2 11 1; +#X connect 21 2 1 1; diff --git a/Gem/examples/08.io/02.Tablet.pd b/Gem/examples/08.io/02.Tablet.pd new file mode 100644 index 0000000..c633ee7 --- /dev/null +++ b/Gem/examples/08.io/02.Tablet.pd @@ -0,0 +1,124 @@ +#N canvas 308 107 688 553 10; +#X msg 197 266 bang; +#X obj 375 326 spigot; +#X floatatom 448 437 0 0 0; +#X obj 12 444 gemwin; +#X msg 26 150 create; +#X obj 197 299 gemhead; +#X msg 38 179 destroy; +#X msg 63 227 1; +#X msg 70 251 0; +#X floatatom 375 438 0 0 0; +#X obj 197 358 translateXYZ; +#X obj 375 382 - 1; +#X obj 375 410 * 4; +#X obj 448 321 spigot; +#X text 120 71 x pos; +#X text 171 73 y pos; +#X obj 400 103 gemtablet; +#X msg 61 321 bang; +#X obj 197 439 alpha; +#X text 114 55 the outputs of gemtablet are:; +#X text 229 75 pressure; +#X text 298 76 azimuth; +#X text 364 75 altitude; +#X text 439 75 twist; +#X text 114 26 Be aware that your tablet might not have all of the +rotation variables.; +#X obj 266 160 / 90; +#X obj 197 329 colorRGB 1 0 0; +#X obj 375 354 / 200; +#X obj 448 352 / 200; +#X obj 448 381 - 1; +#X obj 448 409 * -4; +#X text 117 7 this demonstrates how to use gemtablet; +#X obj 400 265 s xPos; +#X obj 409 238 s yPos; +#X obj 375 295 r xPos; +#X obj 447 294 r yPos; +#X obj 458 139 s lBut; +#X obj 501 290 r lBut; +#X obj 419 213 s press; +#X obj 234 492 r press; +#X obj 290 280 r press; +#X obj 429 187 s azimuth; +#X obj 438 162 s altitude; +#X obj 236 385 r azimuth; +#X obj 266 132 r altitude; +#X text 45 298 clear screen; +#X obj 197 408 rotate 0 0 1; +#X obj 197 518 square; +#X obj 197 471 scaleXYZ 1 0.05 1; +#X obj 219 190 t b f; +#X obj 220 241 - 1; +#X msg 219 215 1; +#X obj 290 303 / 6; +#X text 527 74 middle; +#X text 488 75 left; +#X text 581 74 right; +#X obj 514 140 s mBut; +#X obj 570 139 s rBut; +#X obj 553 289 r mBut; +#X obj 605 289 r rBut; +#N canvas 421 80 290 179 Gem.init 0; +#X obj 83 30 loadbang; +#X msg 161 76 reset; +#X obj 45 146 outlet; +#X obj 88 51 t b b; +#X msg 45 75 dimen 400 400; +#X msg 90 114 buffer 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X restore 61 417 pd Gem.init; +#X connect 0 0 5 0; +#X connect 1 0 0 0; +#X connect 1 0 27 0; +#X connect 2 0 10 2; +#X connect 4 0 3 0; +#X connect 5 0 26 0; +#X connect 6 0 3 0; +#X connect 7 0 3 0; +#X connect 8 0 3 0; +#X connect 9 0 10 1; +#X connect 10 0 46 0; +#X connect 11 0 12 0; +#X connect 12 0 9 0; +#X connect 13 0 28 0; +#X connect 16 0 32 0; +#X connect 16 1 33 0; +#X connect 16 2 38 0; +#X connect 16 3 41 0; +#X connect 16 4 42 0; +#X connect 16 6 36 0; +#X connect 16 7 56 0; +#X connect 16 8 57 0; +#X connect 17 0 3 0; +#X connect 18 0 48 0; +#X connect 25 0 49 0; +#X connect 25 0 26 3; +#X connect 26 0 10 0; +#X connect 27 0 11 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 2 0; +#X connect 34 0 1 0; +#X connect 35 0 13 0; +#X connect 37 0 13 1; +#X connect 37 0 1 1; +#X connect 39 0 47 1; +#X connect 40 0 52 0; +#X connect 43 0 46 1; +#X connect 44 0 25 0; +#X connect 46 0 18 0; +#X connect 48 0 47 0; +#X connect 49 0 51 0; +#X connect 49 1 50 1; +#X connect 50 0 26 1; +#X connect 51 0 50 0; +#X connect 52 0 26 4; +#X connect 60 0 3 0; diff --git a/Gem/examples/08.io/03.Orb.pd b/Gem/examples/08.io/03.Orb.pd new file mode 100644 index 0000000..6e50d58 --- /dev/null +++ b/Gem/examples/08.io/03.Orb.pd @@ -0,0 +1,51 @@ +#N canvas 396 160 600 500 10; +#X text 52 292 x pos; +#X text 94 292 y pos; +#X obj 234 146 gemorb 2; +#X floatatom 82 267 0 0 0; +#X floatatom 117 267 0 0 0; +#X floatatom 152 267 0 0 0; +#X floatatom 202 271 0 0 0; +#X floatatom 237 271 0 0 0; +#X floatatom 272 271 0 0 0; +#X text 133 90 the outputs of gemorb are:; +#X text 134 292 z pos; +#X text 197 293 x rot; +#X text 239 293 y rot; +#X text 279 293 z rot; +#X obj 91 230 unpack 0 0 0; +#X obj 204 230 unpack 0 0 0; +#X floatatom 333 270 0 0 0; +#X floatatom 368 270 0 0 0; +#X floatatom 403 270 0 0 0; +#X obj 385 231 unpack 0 0 0 0 0 0; +#X floatatom 448 271 0 0 0; +#X floatatom 483 271 0 0 0; +#X floatatom 518 271 0 0 0; +#X text 133 111 position; +#X text 224 110 rotation; +#X text 317 109 button status; +#X text 340 290 a; +#X text 377 293 b; +#X text 411 290 c; +#X text 457 293 d; +#X text 491 291 e; +#X text 529 295 f; +#X text 94 56 The argument should be the serial port number of the +orb; +#X text 255 17 gemorb; +#X connect 2 0 14 0; +#X connect 2 1 15 0; +#X connect 2 2 19 0; +#X connect 14 0 3 0; +#X connect 14 1 4 0; +#X connect 14 2 5 0; +#X connect 15 0 6 0; +#X connect 15 1 7 0; +#X connect 15 2 8 0; +#X connect 19 0 16 0; +#X connect 19 1 17 0; +#X connect 19 2 18 0; +#X connect 19 3 20 0; +#X connect 19 4 21 0; +#X connect 19 5 22 0; diff --git a/Gem/examples/08.io/04.UseOrb.pd b/Gem/examples/08.io/04.UseOrb.pd new file mode 100644 index 0000000..cecdfa4 --- /dev/null +++ b/Gem/examples/08.io/04.UseOrb.pd @@ -0,0 +1,86 @@ +#N canvas 396 160 600 366 10; +#X obj 41 324 gemwin; +#X msg 70 111 create; +#X obj 223 109 gemhead; +#X msg 76 138 destroy; +#X msg 96 184 1; +#X msg 96 208 0; +#X obj 223 260 square; +#X text 109 29 this demonstrates how to create a red square; +#X msg 467 228 draw line; +#X obj 338 68 gemorb 2; +#X obj 223 227 rotateXYZ; +#X obj 367 109 unpack 0 0 0; +#X obj 223 195 color; +#X obj 467 158 unpack 0 0 0; +#X msg 506 208 draw fill; +#X obj 467 184 sel 1; +#X obj 506 184 sel 1; +#N canvas 91 174 290 179 Gem.init 0; +#X obj 83 30 loadbang; +#X msg 161 76 reset; +#X obj 45 107 outlet; +#X msg 45 75 dimen 300 300; +#X obj 88 51 t b b; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 78 297 pd Gem.init; +#X obj 367 136 * 0.25; +#X obj 393 156 * 0.25; +#X obj 411 179 * 0.25; +#N canvas 0 0 450 300 process 0; +#X obj 185 63 unpack 0 0 0; +#X obj 185 199 pack 0 0 0; +#X obj 185 107 / 500; +#X obj 185 127 abs; +#X obj 185 147 + 0.1; +#X obj 235 107 / 500; +#X obj 235 127 abs; +#X obj 235 147 + 0.1; +#X obj 285 107 / 500; +#X obj 285 127 abs; +#X obj 285 147 + 0.1; +#X obj 185 226 outlet; +#X obj 185 36 inlet; +#X connect 0 0 2 0; +#X connect 0 1 5 0; +#X connect 0 2 8 0; +#X connect 1 0 11 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 1 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 2; +#X connect 12 0 0 0; +#X restore 338 89 pd process; +#X connect 1 0 0 0; +#X connect 2 0 12 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 8 0 6 0; +#X connect 9 0 21 0; +#X connect 9 1 11 0; +#X connect 9 2 13 0; +#X connect 10 0 6 0; +#X connect 11 0 18 0; +#X connect 11 1 19 0; +#X connect 11 2 20 0; +#X connect 12 0 10 0; +#X connect 13 0 15 0; +#X connect 13 1 16 0; +#X connect 14 0 6 0; +#X connect 15 0 8 0; +#X connect 16 0 14 0; +#X connect 17 0 0 0; +#X connect 18 0 10 1; +#X connect 19 0 10 2; +#X connect 20 0 10 3; +#X connect 21 0 12 1; diff --git a/Gem/examples/09.openGL/01.primQuad.pd b/Gem/examples/09.openGL/01.primQuad.pd new file mode 100644 index 0000000..da187b2 --- /dev/null +++ b/Gem/examples/09.openGL/01.primQuad.pd @@ -0,0 +1,107 @@ +#N canvas 50 20 769 629 10; +#X obj 469 17 gemhead; +#X obj 468 504 GEMglEnd; +#X obj 469 233 GEMglColor4f 1 0 0 0; +#X obj 469 254 GEMglVertex3f -1 0 0; +#X obj 469 366 GEMglColor3f 0 1 0; +#X obj 468 387 GEMglVertex3f 1 0 0; +#X obj 469 307 GEMglColor3f 0 0 1; +#X obj 469 330 GEMglVertex3f 0 -1 0; +#X floatatom 502 45 5 0 0 0 - - -; +#X obj 469 77 GEMglRotatef 0 1 1 1; +#X obj 605 127 GLdefine GL_SMOOTH; +#X obj 605 105 loadbang; +#X obj 605 147 loadbang; +#X obj 605 169 GLdefine GL_POLYGON; +#X obj 469 187 GEMglBegin; +#X obj 469 145 GEMglShadeModel; +#X obj 621 487 loadbang; +#X obj 468 527 GEMglShadeModel; +#X obj 621 509 GLdefine GL_FLAT; +#X text 52 17 this is an example how to use Gem as an openGL-wrapper: +; +#X text 47 79 you can use "any" openGL-command (like "glBegin") as +a Gem-object with a prepended "GEM" (like [GEMglBegin]); +#X text 32 378 to make use of GL-constants (like "GL_TRIANGLE") \, +use the object [GLdefine] \, that maps symbols to their corresponding +values.; +#X obj 468 436 GEMglColor3fv 1 1 0; +#X obj 468 459 GEMglVertex3fv 0 1 0; +#X msg 613 413 1 0 1; +#X msg 655 413 1 1 0; +#X floatatom 650 260 3 0 100 0 - - -; +#X obj 650 281 * 0.01; +#X msg 672 103 bang; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 104 170 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 74 187 pd gemwin; +#X connect 0 0 9 0; +#X connect 1 0 17 0; +#X connect 2 0 3 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 22 0; +#X connect 6 0 7 0; +#X connect 7 0 4 0; +#X connect 8 0 9 1; +#X connect 9 0 15 0; +#X connect 10 0 15 1; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 13 0 14 1; +#X connect 14 0 2 0; +#X connect 15 0 14 0; +#X connect 16 0 18 0; +#X connect 18 0 17 1; +#X connect 22 0 23 0; +#X connect 23 0 1 0; +#X connect 24 0 22 1; +#X connect 25 0 22 1; +#X connect 26 0 27 0; +#X connect 27 0 6 2; +#X connect 28 0 10 0; +#X connect 29 0 30 0; diff --git a/Gem/examples/09.openGL/02.displayList.pd b/Gem/examples/09.openGL/02.displayList.pd new file mode 100644 index 0000000..d6ec2e6 --- /dev/null +++ b/Gem/examples/09.openGL/02.displayList.pd @@ -0,0 +1,185 @@ +#N canvas 76 58 1137 553 10; +#X obj 366 251 GEMglGenLists 1; +#X obj 336 418 GEMglNewList; +#X obj 147 432 GEMglCallList; +#N canvas 0 0 450 300 once 0; +#X obj 91 62 inlet; +#X obj 91 266 outlet; +#X obj 91 150 spigot 1; +#X obj 91 175 t a b; +#X msg 121 197 0; +#X obj 298 57 inlet open; +#X obj 298 92 t b; +#X msg 142 128 1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 3 1 4 0; +#X connect 4 0 2 1; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 2 1; +#X restore 366 229 pd once; +#N canvas 0 0 450 300 once 0; +#X obj 91 62 inlet; +#X obj 91 266 outlet; +#X obj 91 150 spigot 1; +#X obj 91 175 t a b; +#X msg 121 197 0; +#X obj 298 57 inlet open; +#X obj 298 92 t b; +#X msg 142 128 1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 3 1 4 0; +#X connect 4 0 2 1; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 2 1; +#X restore 336 392 pd once; +#X obj 549 281 t b f; +#X obj 415 374 loadbang; +#X obj 415 393 GLdefine GL_COMPILE; +#X msg 417 199 bang; +#X obj 336 508 GEMglEndList; +#X obj 336 445 t a a; +#X obj 366 466 separator; +#X obj 336 173 gemhead 1; +#X obj 336 198 t a a; +#X obj 466 271 t f b; +#X obj 345 298 t f f; +#X text 26 21 this is an example of how to use Gem's openGL-wrapper-objects +to speed up things; +#X obj 147 248 gemhead; +#X obj 147 311 translateXYZ; +#X obj 147 364 rotateXYZ; +#X floatatom 549 236 5 -2 2 2 pos - -; +#X floatatom 199 282 5 -4 4 0 - - -; +#X floatatom 185 339 5 0 0 0 - - -; +#X text 346 25 1 generate a displaylist with [GEMglGenLists]; +#X text 376 38 you should do this only once; +#X text 346 65 2 compile what is between [GEMglNewList] and [GEMglEndList] +; +#X text 377 82 you should do this \, whenever a parameter of the display-list +has changed; +#X text 346 125 3 call the displaylist with [GEMglCallList]; +#N canvas 0 0 450 300 weird 0; +#X obj 37 9 inlet gemlist; +#X obj 37 125 cylinder; +#X obj 190 30 inlet dist; +#X obj 360 30 inlet tearot; +#X obj 67 204 rotate 0 0 1 0; +#X obj 67 231 teapot 0.2; +#X obj 67 173 translate 1 0 0 2; +#X obj 67 144 color 1 0 0; +#X obj 37 103 color 1 1 1 0.5; +#X obj 37 81 alpha; +#X obj 37 34 t a a; +#X obj 67 56 separator; +#X connect 0 0 10 0; +#X connect 2 0 6 1; +#X connect 3 0 4 1; +#X connect 4 0 5 0; +#X connect 6 0 4 0; +#X connect 7 0 6 0; +#X connect 8 0 1 0; +#X connect 9 0 8 0; +#X connect 10 0 9 0; +#X connect 10 1 11 0; +#X connect 11 0 7 0; +#X restore 366 487 pd weird thing; +#X msg 496 318 bang; +#X floatatom 660 269 5 0 0 2 rot - -; +#X text 535 320 recompile the display-list; +#X obj 147 400 spigot; +#X obj 249 365 t b f; +#X msg 202 400 1; +#X text 461 190 CLICK ME to generate the display-list \, once the rendering +is turned on; +#X text 598 231 when you change this \, the display-list will be recompiled +; +#X text 706 258 when you change this \, the display-list will NOT be +recompiled. You have to do that by hand!; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 119 99 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 89 116 pd gemwin; +#X connect 0 1 14 0; +#X connect 1 0 10 0; +#X connect 3 0 0 0; +#X connect 4 0 1 0; +#X connect 5 0 29 0; +#X connect 5 1 28 1; +#X connect 6 0 7 0; +#X connect 7 0 1 2; +#X connect 8 0 3 1; +#X connect 10 0 9 0; +#X connect 10 1 11 0; +#X connect 11 0 28 0; +#X connect 12 0 13 0; +#X connect 13 0 4 0; +#X connect 13 1 3 0; +#X connect 14 0 15 0; +#X connect 14 1 29 0; +#X connect 15 0 33 0; +#X connect 15 1 1 1; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 32 0; +#X connect 20 0 5 0; +#X connect 21 0 18 1; +#X connect 21 0 18 2; +#X connect 22 0 19 1; +#X connect 22 0 19 2; +#X connect 22 0 19 3; +#X connect 29 0 4 1; +#X connect 30 0 28 2; +#X connect 32 0 2 0; +#X connect 33 0 34 0; +#X connect 33 1 2 1; +#X connect 34 0 32 1; +#X connect 38 0 39 0; diff --git a/Gem/examples/09.openGL/03.stencilBuffer.pd b/Gem/examples/09.openGL/03.stencilBuffer.pd new file mode 100644 index 0000000..44f1e61 --- /dev/null +++ b/Gem/examples/09.openGL/03.stencilBuffer.pd @@ -0,0 +1,251 @@ +#N canvas 431 30 849 872 10; +#X obj 39 330 GEMglEnable; +#X floatatom 125 332 5 0 0 0 - - -; +#X obj 111 282 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 111 305 GLdefine GL_STENCIL_TEST; +#X obj 129 280 loadbang; +#X obj 104 382 GLdefine GL_STENCIL_BUFFER_BIT; +#X obj 166 361 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 119 407 5 0 0 0 - - -; +#X obj 104 359 loadbang; +#X obj 39 249 GEMglClearStencil 0; +#X obj 39 407 GEMglClear; +#X obj 39 33 gemhead 45; +#X obj 39 506 GEMglStencilFunc; +#X msg 146 480 1; +#X obj 75 436 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 74 459 GLdefine GL_ALWAYS; +#X obj 96 436 loadbang; +#X floatatom 100 480 5 0 0 0 - - -; +#X obj 39 586 GEMglStencilOp; +#X floatatom 156 581 5 0 0 0 - - -; +#X obj 70 486 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 70 552 GLdefine GL_REPLACE; +#X obj 95 530 loadbang; +#X obj 239 743 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 170 742 loadbang; +#X obj 39 810 GEMglClear; +#X floatatom 156 812 5 0 0 0 - - -; +#X obj 145 788 GLdefine GL_DEPTH_BUFFER_BIT; +#X obj 126 743 t b b; +#X obj 490 287 GEMglStencilFunc; +#X msg 597 263 1; +#X obj 525 220 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 546 218 loadbang; +#X floatatom 535 264 5 0 0 0 - - -; +#X obj 525 241 GLdefine GL_NOTEQUAL; +#X obj 490 396 color 1 0 0; +#X obj 490 659 GEMglStencilFunc; +#X msg 597 634 1; +#X obj 525 594 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 547 592 loadbang; +#X floatatom 536 638 5 0 0 0 - - -; +#X obj 490 709 rotateXYZ 0 0 45; +#X obj 525 615 GLdefine GL_EQUAL; +#X obj 490 685 color 1 1 0; +#X obj 126 766 GLdefine GL_COLOR_BUFFER_BIT; +#X obj 490 365 GEMglStencilOp; +#X floatatom 601 364 5 0 0 0 - - -; +#X obj 521 310 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 544 307 loadbang; +#X obj 521 331 GLdefine GL_KEEP; +#X floatatom 58 144 5 0 0 0 - - -; +#X floatatom 97 144 5 0 0 0 - - -; +#X obj 39 187 colorRGB 0 0 1; +#X obj 126 810 |; +#X floatatom 587 830 5 0 0 0 - - -; +#X obj 569 782 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 569 805 GLdefine GL_STENCIL_TEST; +#X obj 587 780 loadbang; +#X obj 490 830 GEMglDisable; +#X text 67 212 allow \, clear and configure stencil buffer; +#X obj 39 695 circle 1.5; +#X text 131 685 draw in all buffer; +#X text 104 840 clear color and depth buffer; +#X text 488 189 draw where the stencil buffer is not 1; +#X obj 490 423 square 3; +#X text 522 565 draw where the stencil buffer is 1; +#X obj 529 21 gemhead 10; +#X floatatom 562 41 5 0 0 0 - - -; +#X floatatom 602 41 5 0 0 0 - - -; +#X floatatom 642 41 5 0 0 0 - - -; +#X obj 529 87 world_light; +#X obj 529 62 rotateXYZ 0 0 0; +#X obj 39 167 rotateXYZ; +#X text 151 144 <- play with this.; +#X text 238 858 (c) Cyrille Henry 2006; +#X obj 39 56 t a b; +#X obj 74 78 i; +#X obj 122 56 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 103 78 + 0; +#X obj 74 123 t f f; +#X obj 74 100 spigot; +#X obj 104 673 teapot 1.5; +#X obj 39 657 spigot; +#X obj 104 654 spigot; +#X obj 79 610 loadbang; +#X obj 147 632 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 82 634 == 0; +#X msg 147 611 0; +#X obj 131 77 % 360; +#X obj 490 754 sphere 1.2 25; +#X obj 36 6 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, lighting 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 372 38 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 342 55 pd gemwin; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 3 0 0 1; +#X connect 4 0 3 0; +#X connect 5 0 7 0; +#X connect 5 0 10 1; +#X connect 6 0 5 0; +#X connect 8 0 5 0; +#X connect 9 0 0 0; +#X connect 10 0 12 0; +#X connect 11 0 75 0; +#X connect 12 0 18 0; +#X connect 13 0 12 3; +#X connect 13 0 12 2; +#X connect 14 0 15 0; +#X connect 14 0 13 0; +#X connect 15 0 12 1; +#X connect 15 0 17 0; +#X connect 16 0 13 0; +#X connect 16 0 15 0; +#X connect 18 0 82 0; +#X connect 18 0 83 0; +#X connect 20 0 21 0; +#X connect 21 0 19 0; +#X connect 21 0 18 1; +#X connect 21 0 18 2; +#X connect 21 0 18 3; +#X connect 22 0 20 0; +#X connect 23 0 28 0; +#X connect 24 0 28 0; +#X connect 25 0 29 0; +#X connect 27 0 53 1; +#X connect 28 0 44 0; +#X connect 28 1 27 0; +#X connect 29 0 45 0; +#X connect 30 0 29 3; +#X connect 30 0 29 2; +#X connect 31 0 34 0; +#X connect 32 0 30 0; +#X connect 32 0 34 0; +#X connect 34 0 29 1; +#X connect 34 0 33 0; +#X connect 35 0 64 0; +#X connect 36 0 43 0; +#X connect 37 0 36 3; +#X connect 37 0 36 2; +#X connect 38 0 42 0; +#X connect 39 0 37 0; +#X connect 39 0 42 0; +#X connect 41 0 89 0; +#X connect 42 0 36 1; +#X connect 42 0 40 0; +#X connect 43 0 41 0; +#X connect 44 0 53 0; +#X connect 45 0 35 0; +#X connect 47 0 49 0; +#X connect 48 0 47 0; +#X connect 49 0 46 0; +#X connect 49 0 45 1; +#X connect 49 0 45 2; +#X connect 49 0 45 3; +#X connect 50 0 72 1; +#X connect 51 0 72 2; +#X connect 52 0 9 0; +#X connect 53 0 26 0; +#X connect 53 0 25 1; +#X connect 55 0 56 0; +#X connect 56 0 54 0; +#X connect 56 0 58 1; +#X connect 57 0 56 0; +#X connect 60 0 25 0; +#X connect 64 0 36 0; +#X connect 66 0 71 0; +#X connect 67 0 71 1; +#X connect 68 0 71 2; +#X connect 69 0 71 3; +#X connect 71 0 70 0; +#X connect 72 0 52 0; +#X connect 75 0 72 0; +#X connect 75 1 76 0; +#X connect 76 0 78 0; +#X connect 76 0 80 0; +#X connect 77 0 78 1; +#X connect 77 0 80 1; +#X connect 78 0 88 0; +#X connect 79 0 50 0; +#X connect 79 1 51 0; +#X connect 80 0 79 0; +#X connect 81 0 25 0; +#X connect 82 0 60 0; +#X connect 83 0 81 0; +#X connect 84 0 87 0; +#X connect 85 0 83 1; +#X connect 85 0 86 0; +#X connect 86 0 82 1; +#X connect 87 0 85 0; +#X connect 88 0 76 1; +#X connect 89 0 58 0; +#X connect 90 0 11 0; +#X connect 91 0 92 0; diff --git a/Gem/examples/09.openGL/04.clearZ.pd b/Gem/examples/09.openGL/04.clearZ.pd new file mode 100644 index 0000000..e4947ff --- /dev/null +++ b/Gem/examples/09.openGL/04.clearZ.pd @@ -0,0 +1,27 @@ +#N canvas 0 0 710 401 10; +#X obj 111 162 loadbang; +#X obj 44 209 GEMglClear; +#X obj 111 186 GLdefine GL_DEPTH_BUFFER_BIT; +#X obj 173 164 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 44 75 gemhead; +#X obj 44 255 translateXYZ 0 0 -2; +#X obj 339 129 gemwin; +#X msg 352 101 create \, 1; +#X obj 44 281 color 1 0 0; +#X obj 44 126 circle 1; +#X obj 44 310 circle 1; +#X text 206 11 Clear Depth Buffer; +#X text 205 352 this is related to the depth object that turn off depth +buffer test \, but not quite the same...; +#X text 176 213 <- clear Depth buffer \, so that you can draw anything +even if it is behind something else; +#X connect 0 0 2 0; +#X connect 1 0 5 0; +#X connect 2 0 1 1; +#X connect 3 0 2 0; +#X connect 4 0 9 0; +#X connect 5 0 8 0; +#X connect 7 0 6 0; +#X connect 8 0 10 0; +#X connect 9 0 1 0; diff --git a/Gem/examples/09.openGL/05.load_identity_matrix.pd b/Gem/examples/09.openGL/05.load_identity_matrix.pd new file mode 100644 index 0000000..2db138a --- /dev/null +++ b/Gem/examples/09.openGL/05.load_identity_matrix.pd @@ -0,0 +1,74 @@ +#N canvas 0 0 784 537 10; +#X obj 64 47 gemhead; +#X obj 96 94 gemlist_info; +#X floatatom 177 138 5 0 0 0 - - -; +#X floatatom 217 138 5 0 0 0 - - -; +#X floatatom 258 138 5 0 0 0 - - -; +#X obj 177 115 unpack f f f; +#X text 185 97 position; +#X obj 64 71 t a a; +#X obj 64 328 GEMglLoadIdentity; +#X obj 64 204 translateXYZ 2 1 3; +#X obj 96 254 gemlist_info; +#X floatatom 177 298 5 0 0 0 - - -; +#X floatatom 217 298 5 0 0 0 - - -; +#X floatatom 258 298 5 0 0 0 - - -; +#X obj 177 275 unpack f f f; +#X text 185 257 position; +#X obj 64 231 t a a; +#X obj 96 384 gemlist_info; +#X floatatom 177 428 5 0 0 0 - - -; +#X floatatom 217 428 5 0 0 0 - - -; +#X floatatom 258 428 5 0 0 0 - - -; +#X obj 177 405 unpack f f f; +#X text 185 387 position; +#X obj 64 361 t a a; +#X obj 64 532 circle; +#X floatatom 105 179 5 0 0 0 - - -; +#X obj 391 101 gemwin; +#X msg 400 78 create \, 1; +#X obj 64 457 translateXYZ 0 0 -4; +#X obj 96 504 gemlist_info; +#X floatatom 177 548 5 0 0 0 - - -; +#X floatatom 217 548 5 0 0 0 - - -; +#X floatatom 258 548 5 0 0 0 - - -; +#X obj 177 525 unpack f f f; +#X text 185 507 position; +#X obj 64 481 t a a; +#X text 272 197 <- this translation does not affect the circle \, because +of the "load identity" object that resets the transformation; +#X text 209 333 <- this object reset the gemlist sent by the gemhead. +; +#X text 211 457 <- move the object regarding the camera position (this +is normally done automatically by the gemwin \, but since we have reset +the transformation matrix we have to do it ourselves...); +#X connect 0 0 7 0; +#X connect 1 4 5 0; +#X connect 5 0 2 0; +#X connect 5 1 3 0; +#X connect 5 2 4 0; +#X connect 7 0 9 0; +#X connect 7 1 1 0; +#X connect 8 0 23 0; +#X connect 9 0 16 0; +#X connect 10 4 14 0; +#X connect 14 0 11 0; +#X connect 14 1 12 0; +#X connect 14 2 13 0; +#X connect 16 0 8 0; +#X connect 16 1 10 0; +#X connect 17 4 21 0; +#X connect 21 0 18 0; +#X connect 21 1 19 0; +#X connect 21 2 20 0; +#X connect 23 0 28 0; +#X connect 23 1 17 0; +#X connect 25 0 9 1; +#X connect 27 0 26 0; +#X connect 28 0 35 0; +#X connect 29 4 33 0; +#X connect 33 0 30 0; +#X connect 33 1 31 0; +#X connect 33 2 32 0; +#X connect 35 0 24 0; +#X connect 35 1 29 0; diff --git a/Gem/examples/10.glsl/01.simple_texture.pd b/Gem/examples/10.glsl/01.simple_texture.pd new file mode 100644 index 0000000..2d1c6ba --- /dev/null +++ b/Gem/examples/10.glsl/01.simple_texture.pd @@ -0,0 +1,124 @@ +#N canvas 486 82 722 633 10; +#X obj 76 22 gemhead; +#X obj 76 367 glsl_program; +#X obj 169 329 print linking; +#X obj 76 411 rotateXYZ; +#X floatatom 96 389 5 0 0 0 - - -; +#X floatatom 140 389 5 0 0 0 - - -; +#X floatatom 182 389 5 0 0 0 - - -; +#X obj 76 580 pix_texture; +#X msg 548 116 color 1 0 0; +#X obj 106 69 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 106 154 open texture.frag; +#X obj 76 197 glsl_fragment; +#X text 215 459 <- load texture; +#X obj 106 535 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 76 489 pix_image img1.jpg; +#X msg 103 460 open img2.jpg; +#X msg 243 154 open texture_rect.frag; +#X msg 114 114 0; +#X obj 243 72 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 275 70 <-load an other shader; +#X text 279 84 (using rectangular texturing); +#X msg 254 113 1; +#X msg 351 258 B \$1; +#X msg 364 297 C \$1; +#X floatatom 351 241 5 0 0 0 - - -; +#X floatatom 364 280 5 0 0 0 - - -; +#X text 408 280 <- adjust Contrast; +#X text 400 240 <- adjust Brightness; +#X text 138 67 <- load shader; +#X obj 76 604 square 3; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 566 142 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 548 163 pd gemwin; +#X msg 106 555 rectangle \$1; +#X obj 254 134 s rectangle; +#X obj 114 135 s rectangle; +#X obj 106 512 r rectangle; +#X msg 32 167 print; +#X msg 39 340 print; +#X floatatom 192 372 0 0 0 0 - - -; +#X msg 151 308 link \$1; +#X obj 151 259 change; +#X connect 0 0 11 0; +#X connect 1 0 3 0; +#X connect 1 1 38 0; +#X connect 3 0 14 0; +#X connect 4 0 3 1; +#X connect 5 0 3 2; +#X connect 6 0 3 3; +#X connect 7 0 29 0; +#X connect 8 0 31 0; +#X connect 9 0 10 0; +#X connect 9 0 17 0; +#X connect 10 0 11 0; +#X connect 11 0 1 0; +#X connect 11 1 40 0; +#X connect 13 0 32 0; +#X connect 14 0 7 0; +#X connect 15 0 14 0; +#X connect 16 0 11 0; +#X connect 17 0 34 0; +#X connect 18 0 16 0; +#X connect 18 0 21 0; +#X connect 21 0 33 0; +#X connect 22 0 1 0; +#X connect 23 0 1 0; +#X connect 24 0 22 0; +#X connect 25 0 23 0; +#X connect 30 0 31 0; +#X connect 32 0 7 0; +#X connect 35 0 13 0; +#X connect 36 0 11 0; +#X connect 37 0 1 0; +#X connect 39 0 1 0; +#X connect 39 0 2 0; +#X connect 40 0 39 0; diff --git a/Gem/examples/10.glsl/02.primitive_distortion.pd b/Gem/examples/10.glsl/02.primitive_distortion.pd new file mode 100644 index 0000000..9a5280a --- /dev/null +++ b/Gem/examples/10.glsl/02.primitive_distortion.pd @@ -0,0 +1,125 @@ +#N canvas 462 82 520 667 10; +#X obj 74 -1 gemhead; +#X msg 29 80 print; +#X obj 74 262 glsl_program; +#X obj 146 121 change; +#X msg 98 233 print; +#X floatatom 146 144 2 0 0 0 ID - -; +#X obj 164 212 print linking; +#X obj 74 102 glsl_vertex; +#X obj 74 451 pix_texture; +#X obj 124 59 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 74 24 alpha; +#X obj 101 397 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 292 202 5 0 0 0 - - -; +#X msg 101 375 0; +#X msg 292 223 K \$1; +#X obj 74 494 sphere 2 30; +#N canvas 0 50 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 124 38 pd load_shader; +#N canvas 50 82 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 153 286 pd init_shader; +#X obj 101 354 loadbang; +#X text 347 201 <- 2; +#X text 395 670 ch 20007; +#X msg 103 305 open texture.jpg; +#X obj 74 471 rotateXYZ -90 0 0; +#X msg 292 177 0.1; +#X obj 74 328 pix_image img3.jpg; +#X msg 88 80 open P_distord.vert; +#X text 69 527 this shader create a dirty pseudo random value \, and +move all vertices separatly; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 389 41 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 359 58 pd gemwin; +#X msg 101 417 rectangle \$1; +#X msg 146 191 link \$1; +#X connect 0 0 10 0; +#X connect 1 0 7 0; +#X connect 2 0 24 0; +#X connect 2 1 17 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 5 0 30 0; +#X connect 7 0 2 0; +#X connect 7 1 3 0; +#X connect 8 0 22 0; +#X connect 9 0 25 0; +#X connect 10 0 7 0; +#X connect 11 0 29 0; +#X connect 12 0 14 0; +#X connect 13 0 11 0; +#X connect 14 0 2 0; +#X connect 16 0 9 0; +#X connect 17 0 23 0; +#X connect 18 0 13 0; +#X connect 21 0 24 0; +#X connect 22 0 15 0; +#X connect 23 0 12 0; +#X connect 24 0 8 0; +#X connect 25 0 7 0; +#X connect 27 0 28 0; +#X connect 29 0 8 0; +#X connect 30 0 2 0; +#X connect 30 0 6 0; diff --git a/Gem/examples/10.glsl/03.texture_distortion.pd b/Gem/examples/10.glsl/03.texture_distortion.pd new file mode 100644 index 0000000..be30c96 --- /dev/null +++ b/Gem/examples/10.glsl/03.texture_distortion.pd @@ -0,0 +1,144 @@ +#N canvas 10 10 552 667 10; +#X text 381 660 ch 20007; +#X obj 74 -1 gemhead; +#X msg 29 80 print; +#X obj 74 382 glsl_program; +#X obj 147 281 pack 0 0; +#X msg 31 162 print; +#X obj 168 261 t b f; +#X obj 168 216 change; +#X obj 146 121 change; +#X msg 147 304 link \$1 \$2; +#X msg 98 353 print; +#X floatatom 168 242 2 0 0 0 ID - -; +#X floatatom 146 144 2 0 0 0 ID - -; +#X obj 165 325 print linking; +#X obj 74 196 glsl_fragment; +#X obj 74 102 glsl_vertex; +#X obj 74 571 pix_texture; +#X obj 124 59 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 74 24 alpha; +#X obj 124 522 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 361 352 5 0 0 0 - - -; +#X floatatom 476 353 5 0 0 0 - - -; +#X msg 124 500 0; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 124 38 pd load_shader; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 155 405 pd init_shader; +#X obj 124 479 loadbang; +#X text 416 351 <- 2; +#X msg 92 431 open texture.jpg; +#X msg 361 373 K1 \$1; +#X msg 361 327 1; +#X msg 476 375 seed \$1; +#X msg 88 80 open T_distord.vert; +#X msg 85 166 open T_distord.frag; +#X obj 74 458 pix_image img3.jpg; +#X obj 74 596 rectangle 4 4; +#X text 73 627 This shader compute a dirty pseudo random number \, +and distort the texture this with value; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 384 41 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 354 58 pd gemwin; +#X msg 124 542 rectangle \$1; +#X connect 1 0 18 0; +#X connect 2 0 15 0; +#X connect 3 0 33 0; +#X connect 3 1 24 0; +#X connect 4 0 9 0; +#X connect 5 0 14 0; +#X connect 6 0 4 0; +#X connect 6 1 4 1; +#X connect 7 0 11 0; +#X connect 8 0 12 0; +#X connect 9 0 3 0; +#X connect 9 0 13 0; +#X connect 10 0 3 0; +#X connect 11 0 6 0; +#X connect 12 0 4 0; +#X connect 14 0 3 0; +#X connect 14 1 7 0; +#X connect 15 0 14 0; +#X connect 15 1 8 0; +#X connect 16 0 34 0; +#X connect 17 0 31 0; +#X connect 17 0 32 0; +#X connect 18 0 15 0; +#X connect 19 0 38 0; +#X connect 20 0 28 0; +#X connect 21 0 30 0; +#X connect 22 0 19 0; +#X connect 23 0 17 0; +#X connect 24 0 29 0; +#X connect 25 0 22 0; +#X connect 27 0 33 0; +#X connect 28 0 3 0; +#X connect 29 0 20 0; +#X connect 30 0 3 0; +#X connect 31 0 15 0; +#X connect 32 0 14 0; +#X connect 33 0 16 0; +#X connect 36 0 37 0; +#X connect 38 0 16 0; diff --git a/Gem/examples/10.glsl/04.game_of_life.pd b/Gem/examples/10.glsl/04.game_of_life.pd new file mode 100644 index 0000000..16ccb57 --- /dev/null +++ b/Gem/examples/10.glsl/04.game_of_life.pd @@ -0,0 +1,138 @@ +#N canvas 10 10 599 681 10; +#X obj 316 488 pix_snap2tex; +#X msg 356 461 0 0; +#X msg 402 460 500 500; +#X obj 356 438 t b b; +#X obj 316 513 alpha; +#X obj 316 563 square 4; +#X msg 52 75 frame \$1; +#X floatatom 52 57 5 0 0 0 - - -; +#X obj 356 419 loadbang; +#X msg 271 95 print; +#X obj 316 370 glsl_program; +#X obj 389 296 pack 0 0; +#X msg 273 177 print; +#X obj 410 276 t b f; +#X obj 410 231 change; +#X obj 388 136 change; +#X msg 389 321 link \$1 \$2; +#X msg 272 333 print; +#X floatatom 410 257 2 0 0 0 ID - -; +#X floatatom 388 159 2 0 0 0 ID - -; +#X obj 407 342 print linking; +#X obj 316 211 glsl_fragment; +#X obj 316 117 glsl_vertex; +#X obj 338 68 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 316 37 gemhead -1; +#X obj 316 537 colorRGB 1 1 1 1; +#X msg 330 95 open game.vert; +#X msg 327 181 open game.frag; +#X obj 39 259 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 39 281 gemhead 50; +#X obj 39 311 translateXYZ 0 0 1; +#X obj 39 409 rectangle; +#X obj 39 216 loadbang; +#X msg 39 237 0; +#X text 157 261 <- 3; +#X text 375 69 <- 2 : load shader; +#X obj 316 392 t b a; +#X floatatom 69 362 5 0 0 0 - - -; +#X floatatom 124 363 5 0 0 0 - - -; +#X obj 69 381 / 100; +#X obj 124 384 / 100; +#X text 13 634 This is an example of iterative process : the output +of the shader is used for next frame input; +#X text 145 140 <----- 1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 82 100 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 52 117 pd gemwin; +#X connect 0 0 4 0; +#X connect 1 0 0 1; +#X connect 2 0 0 2; +#X connect 3 0 1 0; +#X connect 3 1 2 0; +#X connect 4 0 25 0; +#X connect 6 0 44 0; +#X connect 7 0 6 0; +#X connect 8 0 3 0; +#X connect 9 0 22 0; +#X connect 10 0 36 0; +#X connect 11 0 16 0; +#X connect 12 0 21 0; +#X connect 13 0 11 0; +#X connect 13 1 11 1; +#X connect 14 0 18 0; +#X connect 15 0 19 0; +#X connect 16 0 10 0; +#X connect 16 0 20 0; +#X connect 17 0 10 0; +#X connect 18 0 13 0; +#X connect 19 0 11 0; +#X connect 21 0 10 0; +#X connect 21 1 14 0; +#X connect 22 0 21 0; +#X connect 22 1 15 0; +#X connect 23 0 26 0; +#X connect 23 0 27 0; +#X connect 24 0 22 0; +#X connect 25 0 5 0; +#X connect 26 0 22 0; +#X connect 27 0 21 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 31 0; +#X connect 32 0 33 0; +#X connect 33 0 28 0; +#X connect 36 0 0 0; +#X connect 36 1 0 0; +#X connect 37 0 39 0; +#X connect 38 0 40 0; +#X connect 39 0 31 1; +#X connect 40 0 31 2; +#X connect 43 0 44 0; diff --git a/Gem/examples/10.glsl/05.multitexture.pd b/Gem/examples/10.glsl/05.multitexture.pd new file mode 100644 index 0000000..d80c9a4 --- /dev/null +++ b/Gem/examples/10.glsl/05.multitexture.pd @@ -0,0 +1,201 @@ +#N canvas 10 10 930 667 10; +#X obj 76 5 gemhead; +#X obj 75 429 glsl_program; +#X obj 149 268 pack 0 0; +#X obj 170 248 t b f; +#X obj 164 203 change; +#X msg 149 294 link \$1 \$2; +#X floatatom 170 229 2 0 0 0 ID - -; +#X floatatom 148 121 2 0 0 0 ID - -; +#X obj 167 315 print linking; +#X msg 365 23 color 1 0 0; +#X obj 142 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 76 79 glsl_vertex; +#X obj 76 183 glsl_fragment; +#X obj 463 464 pix_texture; +#X obj 546 271 openpanel; +#X obj 546 248 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 90 57 open multitexture.vert; +#X msg 86 153 open multitexture.frag; +#X obj 463 230 gemhead 11; +#X obj 463 204 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 463 90 1) turn on rendering; +#X msg 503 432 texunit 1; +#X obj 687 467 pix_texture; +#X obj 768 271 openpanel; +#X obj 768 250 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 687 204 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 725 430 texunit 0; +#X obj 462 488 translateXYZ -2 0 0; +#X obj 685 490 translateXYZ 2 0 0; +#X msg 187 406 MyTex 0; +#X obj 75 644 pix_texture; +#X obj 218 498 openpanel; +#X obj 218 477 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 254 381 MyTex1 1; +#X msg 255 406 MyTex 1; +#X msg 186 381 MyTex1 0; +#X msg 321 382 MyTex1 2; +#X msg 326 407 MyTex 2; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 142 5 pd load_shader; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 156 450 pd init_shader; +#X msg 546 296 set open \$1 \, bang; +#X obj 491 387 loadbang; +#X msg 218 519 set open \$1 \, bang; +#X msg 768 294 set open \$1 \, bang; +#X obj 482 295 loadbang; +#X obj 153 519 loadbang; +#X obj 704 294 loadbang; +#X obj 220 569 loadbang; +#X obj 716 388 loadbang; +#X obj 687 229 gemhead 22; +#X text 187 360 2) change shader texuinit; +#X msg 482 320 open img2.jpg; +#X obj 463 349 pix_image img2.jpg; +#X obj 687 346 pix_image img3.jpg; +#X msg 704 318 open img3.jpg; +#X msg 153 544 open img1.jpg; +#X obj 75 613 pix_image img1.jpg; +#X obj 148 98 change; +#X text 343 147 This is an example of multitexturing \, this shader +mixes 2 textures; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 395 47 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 365 64 pd gemwin; +#X obj 75 670 rectangle 3 3; +#X obj 462 514 square 2; +#X obj 685 516 square 2; +#X msg 220 591 texunit 2 \, rectangle 0; +#X msg 491 409 texunit 0 \, rectangle 0; +#X msg 716 409 texunit 1 \, rectangle 0; +#X connect 0 0 11 0; +#X connect 1 0 56 0; +#X connect 1 1 39 0; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 3 1 2 1; +#X connect 4 0 6 0; +#X connect 5 0 1 0; +#X connect 5 0 8 0; +#X connect 6 0 3 0; +#X connect 7 0 2 0; +#X connect 9 0 60 0; +#X connect 10 0 16 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 11 1 57 0; +#X connect 12 0 1 0; +#X connect 12 1 4 0; +#X connect 13 0 27 0; +#X connect 14 0 40 0; +#X connect 15 0 14 0; +#X connect 16 0 11 0; +#X connect 17 0 12 0; +#X connect 18 0 52 0; +#X connect 19 0 18 0; +#X connect 21 0 13 0; +#X connect 22 0 28 0; +#X connect 23 0 43 0; +#X connect 24 0 23 0; +#X connect 25 0 49 0; +#X connect 26 0 22 0; +#X connect 29 0 1 0; +#X connect 30 0 61 0; +#X connect 31 0 42 0; +#X connect 32 0 31 0; +#X connect 33 0 1 0; +#X connect 34 0 1 0; +#X connect 35 0 1 0; +#X connect 36 0 1 0; +#X connect 37 0 1 0; +#X connect 38 0 10 0; +#X connect 39 0 33 0; +#X connect 39 0 29 0; +#X connect 40 0 51 0; +#X connect 41 0 65 0; +#X connect 42 0 55 0; +#X connect 43 0 54 0; +#X connect 44 0 51 0; +#X connect 45 0 55 0; +#X connect 46 0 54 0; +#X connect 47 0 64 0; +#X connect 48 0 66 0; +#X connect 49 0 53 0; +#X connect 51 0 52 0; +#X connect 52 0 13 0; +#X connect 53 0 22 0; +#X connect 54 0 53 0; +#X connect 55 0 56 0; +#X connect 56 0 30 0; +#X connect 57 0 7 0; +#X connect 59 0 60 0; +#X connect 64 0 30 0; +#X connect 65 0 13 0; +#X connect 66 0 22 0; diff --git a/Gem/examples/10.glsl/05.multitexture_bis.pd b/Gem/examples/10.glsl/05.multitexture_bis.pd new file mode 100644 index 0000000..63652ff --- /dev/null +++ b/Gem/examples/10.glsl/05.multitexture_bis.pd @@ -0,0 +1,200 @@ +#N canvas 207 200 1100 637 10; +#X obj 76 5 gemhead; +#X obj 75 429 glsl_program; +#X obj 149 268 pack 0 0; +#X obj 170 248 t b f; +#X obj 164 203 change; +#X msg 149 294 link \$1 \$2; +#X floatatom 170 229 2 0 0 0 ID - -; +#X floatatom 148 121 2 0 0 0 ID - -; +#X obj 167 315 print linking; +#X msg 365 23 color 1 0 0; +#X obj 142 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 76 79 glsl_vertex; +#X obj 76 183 glsl_fragment; +#X obj 749 262 openpanel; +#X obj 749 239 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 90 57 open multitexture.vert; +#X msg 86 153 open multitexture.frag; +#X obj 666 221 gemhead 11; +#X obj 666 195 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 463 90 1) turn on rendering; +#X obj 971 262 openpanel; +#X obj 971 241 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 890 195 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 187 406 MyTex 0; +#X msg 254 381 MyTex1 1; +#X msg 255 406 MyTex 1; +#X msg 186 381 MyTex1 0; +#X msg 321 382 MyTex1 2; +#X msg 326 407 MyTex 2; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 142 5 pd load_shader; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 156 450 pd init_shader; +#X msg 749 287 set open \$1 \, bang; +#X obj 694 378 loadbang; +#X msg 971 285 set open \$1 \, bang; +#X obj 685 286 loadbang; +#X obj 907 285 loadbang; +#X obj 919 379 loadbang; +#X obj 890 220 gemhead 22; +#X text 187 360 2) change shader texuinit; +#X msg 685 311 open img2.jpg; +#X obj 666 340 pix_image img2.jpg; +#X obj 890 337 pix_image img3.jpg; +#X msg 907 309 open img3.jpg; +#X obj 148 98 change; +#X text 343 147 This is an example of multitexturing \, this shader +mixes 2 textures; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 395 47 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 365 64 pd gemwin; +#X obj 75 550 rectangle 3 3; +#X obj 75 520 pix_multitexture 3; +#X obj 666 425 pix_texture; +#X obj 890 428 pix_texture; +#X msg 694 400 rectangle 0; +#X msg 919 400 rectangle 0; +#X obj 526 264 openpanel; +#X obj 526 241 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 443 223 gemhead 11; +#X obj 443 197 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 526 289 set open \$1 \, bang; +#X obj 471 380 loadbang; +#X obj 462 288 loadbang; +#X obj 443 427 pix_texture; +#X msg 471 402 rectangle 0; +#X msg 462 313 open img1.jpg; +#X obj 443 342 pix_image img1.jpg; +#X connect 0 0 11 0; +#X connect 1 0 48 0; +#X connect 1 1 30 0; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 3 1 2 1; +#X connect 4 0 6 0; +#X connect 5 0 1 0; +#X connect 5 0 8 0; +#X connect 6 0 3 0; +#X connect 7 0 2 0; +#X connect 9 0 46 0; +#X connect 10 0 15 0; +#X connect 10 0 16 0; +#X connect 11 0 12 0; +#X connect 11 1 43 0; +#X connect 12 0 1 0; +#X connect 12 1 4 0; +#X connect 13 0 31 0; +#X connect 14 0 13 0; +#X connect 15 0 11 0; +#X connect 16 0 12 0; +#X connect 17 0 40 0; +#X connect 18 0 17 0; +#X connect 20 0 33 0; +#X connect 21 0 20 0; +#X connect 22 0 37 0; +#X connect 23 0 1 0; +#X connect 24 0 1 0; +#X connect 25 0 1 0; +#X connect 26 0 1 0; +#X connect 27 0 1 0; +#X connect 28 0 1 0; +#X connect 29 0 10 0; +#X connect 30 0 24 0; +#X connect 30 0 23 0; +#X connect 31 0 39 0; +#X connect 32 0 51 0; +#X connect 33 0 42 0; +#X connect 34 0 39 0; +#X connect 35 0 42 0; +#X connect 36 0 52 0; +#X connect 37 0 41 0; +#X connect 39 0 40 0; +#X connect 40 0 49 0; +#X connect 41 0 50 0; +#X connect 42 0 41 0; +#X connect 43 0 7 0; +#X connect 45 0 46 0; +#X connect 48 0 47 0; +#X connect 49 1 48 2; +#X connect 50 1 48 3; +#X connect 51 0 49 0; +#X connect 52 0 50 0; +#X connect 53 0 57 0; +#X connect 54 0 53 0; +#X connect 55 0 63 0; +#X connect 56 0 55 0; +#X connect 57 0 62 0; +#X connect 58 0 61 0; +#X connect 59 0 62 0; +#X connect 60 1 48 1; +#X connect 61 0 60 0; +#X connect 62 0 63 0; +#X connect 63 0 60 0; diff --git a/Gem/examples/10.glsl/06.rectangle_multitexture.pd b/Gem/examples/10.glsl/06.rectangle_multitexture.pd new file mode 100644 index 0000000..48e6600 --- /dev/null +++ b/Gem/examples/10.glsl/06.rectangle_multitexture.pd @@ -0,0 +1,199 @@ +#N canvas 511 97 648 675 10; +#X obj 279 76 gemhead; +#X obj 295 208 loadbang; +#X obj 279 251 pix_texture; +#X msg 295 231 rectangle 1 \, texunit 1; +#X obj 334 97 openpanel; +#X msg 334 118 open \$1; +#X obj 334 76 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1 +-1; +#X obj 459 76 gemhead; +#X obj 475 208 loadbang; +#X obj 459 251 pix_texture; +#X obj 514 97 openpanel; +#X msg 514 118 open \$1; +#X obj 514 76 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1 +-1; +#X msg 475 231 rectangle 1 \, texunit 2; +#X obj 279 275 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 284 314 pd gemwin; +#X msg 284 295 create; +#X text 280 274 Create window:; +#X obj 101 358 cnv 15 100 120 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 37 538 glsl_program; +#X obj 100 259 pack 0 0; +#X obj 118 236 t b f; +#X obj 118 194 change; +#X msg 100 285 link \$1 \$2; +#X floatatom 118 217 2 0 0 0 ID - -; +#X floatatom 100 133 2 0 0 0 ID - -; +#X obj 105 309 print linking; +#X obj 124 43 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 37 88 glsl_vertex; +#X obj 37 174 glsl_fragment; +#N canvas 0 0 450 300 load_shader 0; +#X msg 116 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X obj 89 100 t b b; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 3 1 0 0; +#X restore 124 21 pd load_shader; +#X obj 100 110 change; +#X obj 106 581 loadbang; +#X obj 37 21 gemhead 51; +#X msg 109 371 add; +#X msg 109 431 multiply; +#X msg 109 451 mix; +#N canvas 0 0 450 300 route 0; +#X obj 113 53 inlet; +#X msg 113 95 0; +#X msg 155 95 1; +#X msg 198 95 2; +#X msg 240 95 3; +#X obj 113 126 outlet; +#X msg 283 95 4; +#X obj 113 74 route add subtract diff multiply mix; +#X connect 0 0 7 0; +#X connect 1 0 5 0; +#X connect 2 0 5 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 6 0 5 0; +#X connect 7 0 1 0; +#X connect 7 1 2 0; +#X connect 7 2 3 0; +#X connect 7 3 4 0; +#X connect 7 4 6 0; +#X restore 72 486 pd route; +#X msg 184 540 Ttex1 1; +#X msg 240 540 Ttex2 2; +#X msg 72 507 style \$1; +#X obj 109 337 loadbang; +#X obj 37 625 pix_texture; +#X msg 106 603 rectangle 1 \, texunit 0; +#X obj 37 598 pix_set; +#X obj 142 457 hsl 50 10 0 1 0 0 empty empty MIX_FACTOR -2 -4 0 7 -262144 +-1 -1 0 1; +#X msg 51 66 open GLSL_mix.vert; +#X msg 51 151 open GLSL_mix.frag; +#X msg 109 411 diff; +#X text 383 295 <- 1 : create GEM window; +#X text 248 375 add : add two texture together (it is easy to get a +white out); +#X msg 109 391 subtract; +#X text 277 16 This shader program give you the possibility to mix +two sources of different size. You can add \, subtract \, diff \, multiply +and mix the two sources.; +#X text 248 401 subtract : subtract two texture together (it is easy +to get a black out); +#X text 248 427 diff : subtract two texture together (get absolute +value); +#X text 248 441 multiply : multiply two texture together; +#X text 248 455 mix : mix two texture together (use the mix factor +for crossfading); +#N canvas 242 260 450 300 onebang 0; +#X obj 120 71 inlet; +#X obj 120 151 outlet; +#X obj 120 120 t b; +#X obj 120 100 change; +#X msg 161 71 set -1; +#X obj 161 11 gemhead; +#X obj 161 51 route 0; +#X obj 161 31 route gem_state; +#X connect 0 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 5 0 7 0; +#X connect 6 0 4 0; +#X connect 7 0 6 0; +#X restore 106 559 pd onebang; +#X text 206 357 <- 2 : test differents mix; +#X obj 459 167 pix_resize 512 512; +#X obj 279 167 pix_resize 234 543; +#X obj 279 147 pix_image img3.jpg; +#X obj 459 147 pix_image img2.jpg; +#X text 292 186 images have diferents sizes; +#X msg 139 507 mix_factor \$1; +#X obj 37 646 square 4; +#X connect 0 0 61 0; +#X connect 1 0 3 0; +#X connect 3 0 2 0; +#X connect 4 0 5 0; +#X connect 5 0 61 0; +#X connect 6 0 4 0; +#X connect 7 0 62 0; +#X connect 8 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 62 0; +#X connect 12 0 10 0; +#X connect 13 0 9 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; +#X connect 19 0 44 0; +#X connect 19 1 57 0; +#X connect 20 0 23 0; +#X connect 21 0 20 0; +#X connect 21 1 20 1; +#X connect 22 0 24 0; +#X connect 23 0 19 0; +#X connect 23 0 26 0; +#X connect 24 0 21 0; +#X connect 25 0 20 0; +#X connect 27 0 46 0; +#X connect 27 0 47 0; +#X connect 28 0 29 0; +#X connect 28 1 31 0; +#X connect 29 0 19 0; +#X connect 29 1 22 0; +#X connect 30 0 27 0; +#X connect 31 0 25 0; +#X connect 32 0 43 0; +#X connect 33 0 28 0; +#X connect 34 0 37 0; +#X connect 35 0 37 0; +#X connect 36 0 37 0; +#X connect 37 0 40 0; +#X connect 38 0 19 0; +#X connect 39 0 19 0; +#X connect 40 0 19 0; +#X connect 41 0 34 0; +#X connect 42 0 65 0; +#X connect 43 0 42 0; +#X connect 44 0 42 0; +#X connect 45 0 64 0; +#X connect 46 0 28 0; +#X connect 47 0 29 0; +#X connect 48 0 37 0; +#X connect 51 0 37 0; +#X connect 57 0 38 0; +#X connect 57 0 39 0; +#X connect 59 0 9 0; +#X connect 60 0 2 0; +#X connect 61 0 60 0; +#X connect 62 0 59 0; +#X connect 64 0 19 0; diff --git a/Gem/examples/10.glsl/07.framebuffer_and_shader.pd b/Gem/examples/10.glsl/07.framebuffer_and_shader.pd new file mode 100644 index 0000000..c829e8f --- /dev/null +++ b/Gem/examples/10.glsl/07.framebuffer_and_shader.pd @@ -0,0 +1,418 @@ +#N canvas 1 25 1126 659 10; +#X obj 9 470 translateXYZ 0 0 -4; +#X obj 9 234 ortho; +#X floatatom 83 538 5 0 0 0 - - -; +#X msg 83 515 \$1; +#X obj 9 365 gemframebuffer; +#X obj 9 494 pix_texture; +#X obj 218 474 translateXYZ 0 0 -4; +#X obj 218 501 pix_texture; +#X floatatom 484 153 5 0 0 0 - - -; +#X msg 484 131 \$1; +#X floatatom 325 550 5 0 0 0 - - -; +#X msg 325 528 \$1; +#X floatatom 104 412 5 0 0 0 - - -; +#X msg 104 389 \$1; +#X floatatom 294 411 5 0 0 0 - - -; +#X msg 294 388 \$1; +#X obj 435 58 loadbang; +#X obj 199 364 gemframebuffer; +#N canvas 573 206 496 427 shader 0; +#X obj 32 294 glsl_program; +#X obj 126 137 change; +#X obj 126 183 print linking; +#X obj 32 117 glsl_fragment; +#X floatatom 130 239 5 0 0 0 - - -; +#X floatatom 232 239 5 0 0 0 - - -; +#X floatatom 181 239 5 0 0 0 - - -; +#X msg 130 260 K1 \$1; +#X msg 181 260 K3 \$1; +#X msg 232 260 D1 \$1; +#X msg 130 214 0.25; +#X msg 126 158 link \$1; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 42 70 pd load_shader; +#X obj 32 36 inlet; +#X obj 32 363 outlet; +#X obj 304 38 inlet; +#X obj 139 343 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 113 318 pd init_shader; +#X obj 112 341 t b; +#X obj 395 43 inlet; +#X msg 181 213 0; +#X msg 232 215 0; +#X msg 193 151 text 0; +#X msg 42 93 open wave.frag; +#X connect 0 0 14 0; +#X connect 0 1 17 0; +#X connect 1 0 11 0; +#X connect 3 0 0 0; +#X connect 3 1 1 0; +#X connect 4 0 7 0; +#X connect 5 0 9 0; +#X connect 6 0 8 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 0 0; +#X connect 10 0 4 0; +#X connect 11 0 0 0; +#X connect 11 0 2 0; +#X connect 12 0 23 0; +#X connect 13 0 3 0; +#X connect 15 0 23 0; +#X connect 16 0 18 0; +#X connect 17 0 18 0; +#X connect 18 0 10 0; +#X connect 18 0 20 0; +#X connect 18 0 21 0; +#X connect 18 0 22 0; +#X connect 19 0 16 0; +#X connect 20 0 6 0; +#X connect 21 0 5 0; +#X connect 22 0 0 0; +#X connect 23 0 3 0; +#X restore 9 274 pd shader; +#X obj 137 289 t a; +#X obj 137 197 t b; +#X obj 147 177 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 137 156 loadbang; +#X obj 218 421 t a a; +#X obj 402 518 separator; +#X obj 218 447 separator; +#X obj 218 537 color 1 1 1; +#X obj 218 563 rectangle 4 4; +#X obj 9 563 rectangle 4 4; +#X obj 66 250 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 93 251 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 390 472 t a; +#N canvas 0 0 857 562 border 0; +#X obj 14 10 inlet; +#X obj 13 46 separator; +#X obj 13 68 translateXYZ 0 4 -3.9; +#X obj 13 115 rectangle 5 0.12; +#X obj 182 46 separator; +#X obj 182 115 rectangle 5 0.12; +#X obj 351 45 separator; +#X obj 182 68 translateXYZ 0 -4 -3.9; +#X obj 351 67 translateXYZ 4 0 -3.9; +#X obj 351 114 rectangle 0.12 5; +#X obj 528 39 separator; +#X obj 528 108 rectangle 0.12 5; +#X obj 528 61 translateXYZ -4 0 -3.9; +#X obj 528 85 color 0.5 0.5 0.5; +#X obj 351 91 color 0.5 0.5 0.5; +#X obj 181 93 color 0.5 0.5 0.5; +#X obj 13 92 color 0.5 0.5 0.5; +#X connect 0 0 1 0; +#X connect 0 0 4 0; +#X connect 0 0 6 0; +#X connect 0 0 10 0; +#X connect 1 0 2 0; +#X connect 2 0 16 0; +#X connect 4 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 15 0; +#X connect 8 0 14 0; +#X connect 10 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 11 0; +#X connect 14 0 9 0; +#X connect 15 0 5 0; +#X connect 16 0 3 0; +#X restore 390 569 pd border; +#X obj 774 148 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 774 172 gemhead 40; +#X floatatom 825 519 5 0 0 0 - - -; +#X obj 774 484 pix_texture; +#X floatatom 876 520 5 0 0 0 - - -; +#X obj 442 357 pix_texture; +#X floatatom 867 236 5 0 0 0 - - -; +#X obj 653 216 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 454 308 loadbang; +#X obj 786 442 loadbang; +#N canvas 693 153 804 667 _glsl 0; +#X obj 80 426 glsl_program; +#X obj 261 238 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 22 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 204 237 pd open; +#X msg 33 296 print; +#X obj 166 331 change; +#X msg 34 420 print; +#X obj 80 310 glsl_fragment; +#X floatatom 166 355 2 0 0 0 ID - -; +#X obj 184 400 print linking; +#X obj 13 52 inlet; +#X obj 80 462 outlet; +#X msg 93 273 open \$1.frag; +#X msg 204 261 open \$1; +#X obj 422 77 inlet; +#X obj 13 75 route bang; +#X obj 140 83 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 140 109 t b b; +#X msg 140 202 symbol \$1/\$2; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 159 447 change; +#X obj 159 468 t b; +#X obj 159 491 outlet; +#X msg 166 379 link \$1; +#X obj 140 133 symbol vague; +#X connect 0 0 10 0; +#X connect 0 1 22 0; +#X connect 1 0 2 0; +#X connect 2 0 12 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 6 1 4 0; +#X connect 7 0 25 0; +#X connect 9 0 14 0; +#X connect 11 0 6 0; +#X connect 12 0 6 0; +#X connect 13 0 0 0; +#X connect 14 0 16 0; +#X connect 14 1 6 0; +#X connect 15 0 16 0; +#X connect 16 0 26 0; +#X connect 17 0 11 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 21 0 16 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 25 0 0 0; +#X connect 25 0 8 0; +#X connect 26 0 11 0; +#X restore 774 326 pd _glsl; +#X obj 743 302 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 435 82 texunit 3; +#X obj 410 108 pix_texture; +#X obj 181 299 t a; +#N canvas 0 0 450 300 gouttes 0; +#X obj 27 79 translateXYZ 0 0 -4; +#X obj 27 101 t a b b; +#X obj 27 195 translateXYZ 0 0 0.1; +#X obj 50 123 random 1000; +#X obj 50 147 - 500; +#X obj 136 123 random 1000; +#X obj 136 147 - 500; +#X obj 50 171 / 130; +#X obj 136 171 / 130; +#X obj 27 242 circle 0.02; +#X obj 27 218 color 0.3 0.3 0.3; +#X obj 28 51 inlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 1 2 5 0; +#X connect 2 0 10 0; +#X connect 3 0 4 0; +#X connect 4 0 7 0; +#X connect 5 0 6 0; +#X connect 6 0 8 0; +#X connect 7 0 2 1; +#X connect 8 0 2 2; +#X connect 10 0 9 0; +#X connect 11 0 0 0; +#X restore 402 542 pd gouttes; +#X msg 244 284 quality 0; +#X obj 774 541 rectangle -4 -4; +#X obj 9 155 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 220 180 delay 1000; +#N canvas 0 0 450 300 init 0; +#X obj 89 154 outlet; +#X obj 89 100 change; +#X obj 89 127 t b; +#X obj 91 52 gemhead; +#X msg 91 73 1; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X restore 220 157 pd init; +#X obj 410 34 gemhead 16; +#X obj 199 342 gemhead 12; +#X obj 442 214 gemhead 17; +#X obj 9 177 gemhead 10; +#X obj 442 240 pix_image img2.jpg; +#X msg 867 215 111; +#X text 33 612 This shader is rendered into a framebuffer \, in order +to use it in the next frame for a simple physical modeling simulation +; +#X text 345 168 This creates a texture (texunit 3) from the shaders' +output; +#X text 437 386 this loads a texture (texunit 2); +#X text 691 411 not used \, just to set texture coordinate; +#X text 633 594 This uses the two textures (texunit 2 and 3) in order +to render the final images; +#X text 201 9 This is an example of rendering to texture (using framebuffer) +and multitextures; +#X obj 402 497 t a a a a a; +#X obj 774 393 pix_set 512 512; +#N canvas 87 154 452 208 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, dimen 800 600; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 760 47 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 730 64 pd gemwin; +#X msg 786 463 rectangle 1; +#X msg 454 331 texunit 2 \, quality 1 \, rectangle 1; +#X msg 137 222 type FLOAT \, dimen 512 512 \, rectangle 1; +#X msg 220 202 quality 1 \, rectangle 1; +#X msg 867 255 K \$1 \, texture1 2 \, texture2 3; +#X text 880 276 texture1==base; +#X text 882 294 texture2==deformation; +#X connect 0 0 5 0; +#X connect 1 0 18 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X connect 4 1 7 1; +#X connect 4 1 13 0; +#X connect 5 0 28 0; +#X connect 5 1 3 0; +#X connect 6 0 7 0; +#X connect 7 0 26 0; +#X connect 7 1 11 0; +#X connect 7 1 46 1; +#X connect 9 0 8 0; +#X connect 11 0 10 0; +#X connect 13 0 12 0; +#X connect 15 0 14 0; +#X connect 16 0 45 0; +#X connect 17 0 23 0; +#X connect 17 1 5 1; +#X connect 17 1 15 0; +#X connect 18 0 4 0; +#X connect 19 0 4 0; +#X connect 19 0 17 0; +#X connect 20 0 72 0; +#X connect 21 0 20 0; +#X connect 22 0 20 0; +#X connect 23 0 25 0; +#X connect 23 1 31 0; +#X connect 24 0 48 0; +#X connect 25 0 6 0; +#X connect 26 0 27 0; +#X connect 29 0 18 1; +#X connect 30 0 18 2; +#X connect 31 0 66 0; +#X connect 33 0 34 0; +#X connect 34 0 43 0; +#X connect 35 0 50 1; +#X connect 36 0 50 0; +#X connect 37 0 50 2; +#X connect 39 0 74 0; +#X connect 40 0 59 0; +#X connect 41 0 71 0; +#X connect 42 0 70 0; +#X connect 43 0 67 0; +#X connect 43 1 40 0; +#X connect 44 0 43 0; +#X connect 45 0 46 0; +#X connect 46 1 9 0; +#X connect 47 0 5 0; +#X connect 47 0 46 0; +#X connect 47 0 7 0; +#X connect 49 0 47 0; +#X connect 51 0 57 0; +#X connect 52 0 73 0; +#X connect 53 0 52 0; +#X connect 54 0 46 0; +#X connect 55 0 17 0; +#X connect 56 0 58 0; +#X connect 57 0 1 0; +#X connect 58 0 38 0; +#X connect 59 0 39 0; +#X connect 66 0 24 0; +#X connect 66 1 24 0; +#X connect 66 2 24 0; +#X connect 66 3 24 0; +#X connect 66 4 24 0; +#X connect 67 0 36 0; +#X connect 68 0 69 0; +#X connect 70 0 36 0; +#X connect 71 0 38 0; +#X connect 72 0 19 0; +#X connect 73 0 47 0; +#X connect 74 0 43 1; diff --git a/Gem/examples/10.glsl/08.multi_pass_rendering.pd b/Gem/examples/10.glsl/08.multi_pass_rendering.pd new file mode 100644 index 0000000..5ada6be --- /dev/null +++ b/Gem/examples/10.glsl/08.multi_pass_rendering.pd @@ -0,0 +1,341 @@ +#N canvas 208 184 980 477 10; +#X obj 42 315 square 4; +#X obj 42 199 translateXYZ 0 0 -4; +#X obj 671 399 pix_texture; +#X obj 671 419 square 4; +#N canvas 370 126 407 295 init 0; +#X obj 106 175 outlet; +#X msg 125 89 type FLOAT; +#X obj 124 68 loadbang; +#X msg 146 109 dimen 1024 1024; +#X msg 211 147 rectangle 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 2 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X restore 56 157 pd init; +#X obj 650 230 pix_texture; +#X obj 650 252 square 4; +#X floatatom 724 255 5 0 0 0 - - -; +#N canvas 157 111 392 206 init 0; +#X obj 93 68 t b; +#X obj 93 47 loadbang; +#X obj 93 159 outlet; +#X msg 93 118 type FLOAT \, dimen 1024 1024 \, rectangle 0; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 3 0 2 0; +#X restore 669 120 pd init; +#X obj 353 199 translateXYZ 0 0 -4; +#N canvas 700 0 407 295 init 0; +#X obj 106 175 outlet; +#X obj 106 68 loadbang; +#X msg 106 118 type FLOAT \, dimen 1024 1024 \, rectangle 0; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 373 156 pd init; +#X text 6 4 first input \, render whatever in a frambuffer; +#X obj 691 357 loadbang; +#X obj 42 222 pix_image img1.jpg; +#X obj 42 54 gemhead 11; +#X obj 666 187 loadbang; +#X obj 650 166 translateXYZ 0 0 -4; +#X obj 650 142 gemframebuffer; +#X obj 353 177 gemframebuffer; +#N canvas 330 106 589 635 shader1 0; +#X obj 94 500 glsl_program; +#X obj 94 340 glsl_fragment; +#X obj 94 160 glsl_vertex; +#X obj 172 400 pack 0 0; +#X obj 162 200 change; +#X obj 182 375 change; +#X msg 172 420 link \$1 \$2; +#X obj 162 220 t b f; +#X obj 176 444 print linking; +#X obj 94 66 inlet; +#X obj 94 530 outlet; +#X obj 464 245 inlet; +#X floatatom 182 179 0 0 0 0 - - -; +#X floatatom 234 377 0 0 0 0 - - -; +#X msg 56 472 print; +#X msg 246 65 1; +#X obj 246 106 t b; +#X obj 246 46 gemhead 1; +#X obj 175 548 t b; +#X obj 175 571 outlet; +#X msg 246 135 open T_distord.vert; +#X msg 289 160 open T_distord.frag; +#X obj 246 86 change -1; +#X obj 175 524 change; +#X connect 0 0 10 0; +#X connect 0 1 23 0; +#X connect 1 0 0 0; +#X connect 1 1 5 0; +#X connect 1 1 13 0; +#X connect 2 0 1 0; +#X connect 2 1 4 0; +#X connect 2 1 12 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 3 0; +#X connect 6 0 0 0; +#X connect 6 0 8 0; +#X connect 7 0 3 0; +#X connect 7 1 3 1; +#X connect 9 0 2 0; +#X connect 11 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 22 0; +#X connect 16 0 20 0; +#X connect 16 0 21 0; +#X connect 17 0 15 0; +#X connect 18 0 19 0; +#X connect 20 0 2 0; +#X connect 21 0 1 0; +#X connect 22 0 16 0; +#X connect 23 0 18 0; +#X restore 42 81 pd shader1; +#N canvas 476 68 589 635 shader2 0; +#X obj 94 500 glsl_program; +#X obj 94 340 glsl_fragment; +#X obj 94 160 glsl_vertex; +#X obj 172 400 pack 0 0; +#X obj 162 200 change; +#X obj 182 375 change; +#X msg 172 420 link \$1 \$2; +#X obj 162 220 t b f; +#X obj 176 444 print linking; +#X obj 94 66 inlet; +#X obj 94 530 outlet; +#X obj 464 245 inlet; +#X floatatom 182 179 0 0 0 0 - - -; +#X floatatom 234 377 0 0 0 0 - - -; +#X msg 56 472 print; +#X msg 246 65 1; +#X obj 246 106 t b; +#X obj 246 46 gemhead 1; +#X obj 175 548 t b; +#X obj 175 571 outlet; +#X msg 246 135 open P_distord.vert; +#X msg 289 160 open P_distord.frag; +#X obj 246 86 change -1; +#X obj 175 524 change; +#X connect 0 0 10 0; +#X connect 0 1 23 0; +#X connect 1 0 0 0; +#X connect 1 1 5 0; +#X connect 1 1 13 0; +#X connect 2 0 1 0; +#X connect 2 1 4 0; +#X connect 2 1 12 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 3 0; +#X connect 6 0 0 0; +#X connect 6 0 8 0; +#X connect 7 0 3 0; +#X connect 7 1 3 1; +#X connect 9 0 2 0; +#X connect 11 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 22 0; +#X connect 16 0 20 0; +#X connect 16 0 21 0; +#X connect 17 0 15 0; +#X connect 18 0 19 0; +#X connect 20 0 2 0; +#X connect 21 0 1 0; +#X connect 22 0 16 0; +#X connect 23 0 18 0; +#X restore 353 78 pd shader2; +#N canvas 660 91 589 635 shader3 0; +#X obj 94 500 glsl_program; +#X obj 94 340 glsl_fragment; +#X obj 94 160 glsl_vertex; +#X obj 172 400 pack 0 0; +#X obj 162 200 change; +#X obj 182 375 change; +#X msg 172 420 link \$1 \$2; +#X obj 162 220 t b f; +#X obj 176 444 print linking; +#X obj 94 66 inlet; +#X obj 94 530 outlet; +#X obj 464 245 inlet; +#X floatatom 182 179 0 0 0 0 - - -; +#X floatatom 234 377 0 0 0 0 - - -; +#X msg 56 472 print; +#X msg 246 65 1; +#X obj 246 106 t b; +#X obj 246 46 gemhead 1; +#X obj 175 548 t b; +#X obj 175 571 outlet; +#X msg 326 429 MyTex 1; +#X msg 336 451 MyTex1 2; +#X msg 247 135 open multitexture.vert; +#X msg 291 160 open multitexture.frag; +#X obj 246 86 change -1; +#X obj 175 524 change; +#X connect 0 0 10 0; +#X connect 0 1 25 0; +#X connect 1 0 0 0; +#X connect 1 1 5 0; +#X connect 1 1 13 0; +#X connect 2 0 1 0; +#X connect 2 1 4 0; +#X connect 2 1 12 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 3 0; +#X connect 6 0 0 0; +#X connect 6 0 8 0; +#X connect 7 0 3 0; +#X connect 7 1 3 1; +#X connect 9 0 2 0; +#X connect 11 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 24 0; +#X connect 16 0 22 0; +#X connect 16 0 23 0; +#X connect 17 0 15 0; +#X connect 18 0 19 0; +#X connect 18 0 20 0; +#X connect 18 0 21 0; +#X connect 20 0 0 0; +#X connect 21 0 0 0; +#X connect 22 0 2 0; +#X connect 23 0 1 0; +#X connect 24 0 16 0; +#X connect 25 0 18 0; +#X restore 650 79 pd shader3; +#X obj 650 54 gemhead 31; +#X obj 671 314 gemhead 32; +#X obj 56 248 loadbang; +#X obj 367 245 loadbang; +#X msg 56 270 rectangle 0; +#X msg 367 267 rectangle 0; +#X obj 42 295 pix_texture; +#X msg 55 135 texunit 1; +#X obj 55 113 loadbang; +#X obj 366 115 loadbang; +#X msg 366 136 texunit 2; +#X msg 141 48 1; +#X floatatom 141 69 5 0 0 0 - - -; +#X msg 141 88 K1 \$1; +#X text 183 69 change effect; +#X text 347 1 second input : same as 1st.; +#X text 7 22 put framebuffer as texunit 1 \, for futur use; +#X text 348 17 render an image in framebuffer.; +#X text 350 31 put framebuffer in texunit 2; +#X text 632 8 finally :; +#X text 631 23 shader mixing 2 textures in a framebuffer; +#X floatatom 449 79 5 0 0 0 - - -; +#X text 491 79 change effect; +#X msg 449 98 K \$1; +#X msg 449 58 0.1; +#X text 161 433 <-------------------; +#X text 569 442 draw the final frambuffer (without shader); +#X obj 671 335 rotateXYZ -20 0 0; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 58 46 loadbang; +#X obj 58 113 outlet; +#X msg 58 80 reset \, dimen 320 240; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 99 394 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 69 411 pd gemwin; +#X obj 42 177 gemframebuffer; +#X obj 353 332 mesh_square 10 10; +#X obj 353 311 scaleXYZ 4 4 1; +#X obj 353 57 gemhead 21; +#X obj 353 222 pix_image img2.jpg; +#X obj 353 291 pix_texture; +#X msg 666 209 rectangle 0; +#X msg 691 378 rectangle 0; +#X connect 1 0 13 0; +#X connect 2 0 3 0; +#X connect 4 0 52 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 8 0 17 0; +#X connect 9 0 56 0; +#X connect 10 0 18 0; +#X connect 12 0 59 0; +#X connect 13 0 28 0; +#X connect 14 0 19 0; +#X connect 15 0 58 0; +#X connect 16 0 5 0; +#X connect 17 0 16 0; +#X connect 17 1 2 1; +#X connect 18 0 9 0; +#X connect 19 0 52 0; +#X connect 19 1 33 0; +#X connect 20 0 18 0; +#X connect 20 1 46 0; +#X connect 21 0 17 0; +#X connect 22 0 21 0; +#X connect 23 0 49 0; +#X connect 24 0 26 0; +#X connect 25 0 27 0; +#X connect 26 0 28 0; +#X connect 27 0 57 0; +#X connect 28 0 0 0; +#X connect 29 0 52 0; +#X connect 30 0 29 0; +#X connect 31 0 32 0; +#X connect 32 0 18 0; +#X connect 33 0 34 0; +#X connect 34 0 35 0; +#X connect 35 0 19 1; +#X connect 43 0 45 0; +#X connect 45 0 20 1; +#X connect 46 0 43 0; +#X connect 49 0 2 0; +#X connect 50 0 51 0; +#X connect 52 0 1 0; +#X connect 54 0 53 0; +#X connect 55 0 20 0; +#X connect 56 0 57 0; +#X connect 57 0 54 0; +#X connect 58 0 5 0; +#X connect 59 0 2 0; diff --git a/Gem/examples/10.glsl/09.vertex_texture_fetching.pd b/Gem/examples/10.glsl/09.vertex_texture_fetching.pd new file mode 100644 index 0000000..e1439c4 --- /dev/null +++ b/Gem/examples/10.glsl/09.vertex_texture_fetching.pd @@ -0,0 +1,142 @@ +#N canvas 239 0 785 526 10; +#X obj 504 69 gemhead; +#X obj 576 346 pack 0 0; +#X obj 597 326 t b f; +#X msg 576 369 link \$1 \$2; +#X floatatom 597 307 2 0 0 0 ID - -; +#X floatatom 576 206 2 0 0 0 ID - -; +#X obj 594 390 print linking; +#X obj 504 480 pix_texture; +#X obj 540 118 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 28 199 gemhead 1; +#X obj 28 311 gemframebuffer; +#X obj 28 485 pix_texture; +#X obj 28 336 translateXYZ 0 0 -4; +#X obj 28 510 square 4; +#X obj 504 261 glsl_fragment; +#X obj 504 164 glsl_vertex; +#X obj 576 183 change; +#X obj 597 281 change; +#X obj 504 409 glsl_program; +#X floatatom 542 505 5 0 0 0 - - -; +#X obj 49 231 loadbang; +#X obj 44 419 loadbang; +#X msg 520 456 quality 0; +#N canvas 703 231 450 300 load_glsl 0; +#X obj 51 22 gemhead; +#X obj 51 98 outlet; +#X obj 51 50 route gem_state; +#X obj 51 74 route 1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X restore 540 93 pd load_glsl; +#X msg 514 231 open fetching.frag; +#X msg 518 142 open fetching.vert; +#X obj 504 525 rotateXYZ -30 0 0; +#X obj 504 551 scaleXYZ 3 3 1; +#X obj 28 388 pix_image img1.jpg; +#X msg 46 363 open img2.jpg; +#X text 137 11 This patch need a glsl 3 compliant hardware; +#X text 26 535 draw an image in a frambuffer; +#X text 49 274 this configuration is very important to have full hardware +support for vertex texture fetching; +#X text 306 603 this example uses the framebuffer image in the vertex +shader in the same way you can do in the pixel shader. This is only +possible in this specific configuration (it's a hardware limitation) +; +#X text 137 56 (nvidia 7000 and 8000 serie should work \, ati X1000 +serie does not \, but later should); +#X obj 504 579 mesh_square 200; +#X text 138 28 As in 2007 \, only good (and new) graphic cards are +able to run this patch.; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 56 77 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 26 94 pd gemwin; +#X msg 49 255 rectangle 0 \, type BYTE \, format RGB32 \, dimen 1024 +1024; +#X msg 44 439 rectangle 0 \, quality 0; +#X obj 520 437 loadbang; +#X connect 0 0 15 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 2 1 1 1; +#X connect 3 0 6 0; +#X connect 3 0 18 0; +#X connect 4 0 2 0; +#X connect 5 0 1 0; +#X connect 7 0 26 0; +#X connect 8 0 25 0; +#X connect 8 0 24 0; +#X connect 9 0 10 0; +#X connect 10 0 12 0; +#X connect 10 1 7 1; +#X connect 11 0 13 0; +#X connect 12 0 28 0; +#X connect 14 0 18 0; +#X connect 14 1 17 0; +#X connect 15 0 14 0; +#X connect 15 1 16 0; +#X connect 16 0 5 0; +#X connect 17 0 4 0; +#X connect 18 0 7 0; +#X connect 19 0 26 1; +#X connect 20 0 39 0; +#X connect 21 0 40 0; +#X connect 22 0 7 0; +#X connect 23 0 8 0; +#X connect 24 0 14 0; +#X connect 25 0 15 0; +#X connect 26 0 27 0; +#X connect 27 0 35 0; +#X connect 28 0 11 0; +#X connect 29 0 28 0; +#X connect 37 0 38 0; +#X connect 39 0 10 0; +#X connect 40 0 11 0; +#X connect 41 0 22 0; diff --git a/Gem/examples/10.glsl/10.GPGPU_Physical_model.pd b/Gem/examples/10.glsl/10.GPGPU_Physical_model.pd new file mode 100644 index 0000000..6d44970 --- /dev/null +++ b/Gem/examples/10.glsl/10.GPGPU_Physical_model.pd @@ -0,0 +1,1246 @@ +#N struct 1002-xy-pad-knob-1 float x0 float y0 float id; +#N canvas 875 218 764 482 10; +#X obj 27 380 hradio 15 1 0 5 empty empty empty 0 -8 0 10 -262144 -1 +-1 0; +#X floatatom 185 212 5 0 0 0 - - -; +#N canvas 4 106 187 219 fps 0; +#X obj 22 62 realtime; +#X obj 22 41 t b b; +#X obj 22 19 gemhead; +#X obj 22 170 outlet; +#X msg 22 84 1000 \$1; +#X obj 22 105 /; +#X obj 22 126 + 0.5; +#X obj 22 147 i; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 1 1 0 1; +#X connect 2 0 1 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 3 0; +#X restore 185 192 pd fps; +#N canvas 93 66 1183 666 shaders_PM 0; +#X obj 718 34 gemhead; +#X obj 718 57 route gem_state; +#X obj 718 79 route 1 0; +#X obj 24 477 translateXYZ 0 0 -4; +#X obj 24 609 square 4; +#X msg 50 399 texunit 1; +#X obj 50 378 loadbang; +#N canvas 573 206 607 627 shader 0; +#X obj 126 247 change; +#X obj 126 323 print linking; +#X obj 32 227 glsl_fragment; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 148 49 pd load_shader; +#X obj 32 36 inlet; +#X obj 32 423 outlet; +#X obj 155 18 inlet; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 113 378 pd init_shader; +#X obj 278 25 inlet; +#X obj 113 408 outlet; +#X msg 42 203 open mass.frag; +#X obj 32 354 glsl_program; +#X obj 32 137 glsl_vertex; +#X msg 42 113 open mass.vert; +#X obj 94 74 t b b; +#X obj 126 272 pack f f; +#X msg 126 296 link \$1 \$2; +#X connect 0 0 15 0; +#X connect 2 0 11 0; +#X connect 2 1 0 0; +#X connect 3 0 14 0; +#X connect 4 0 12 0; +#X connect 6 0 14 0; +#X connect 7 0 9 0; +#X connect 8 0 11 0; +#X connect 10 0 2 0; +#X connect 11 0 5 0; +#X connect 11 1 7 0; +#X connect 12 0 2 0; +#X connect 12 1 15 1; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 14 1 13 0; +#X connect 15 0 16 0; +#X connect 16 0 1 0; +#X connect 16 0 11 0; +#X restore 24 257 pd shader; +#X obj 53 234 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 506 468 translateXYZ 0 0 -4; +#X obj 506 610 square 4; +#X obj 261 477 translateXYZ 0 0 -4; +#X obj 290 368 loadbang; +#N canvas 1062 27 528 709 shader 0; +#X obj 32 384 glsl_program; +#X obj 32 36 inlet; +#X obj 32 453 outlet; +#X obj 155 18 inlet; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 113 408 pd init_shader; +#X obj 278 25 inlet; +#X obj 113 438 outlet; +#X obj 126 247 change; +#X obj 126 323 print linking; +#X obj 32 227 glsl_fragment; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 148 49 pd load_shader; +#X obj 32 137 glsl_vertex; +#X obj 94 74 t b b; +#X obj 126 272 pack f f; +#X msg 126 296 link \$1 \$2; +#X msg 42 113 open link.vert; +#X msg 42 203 open link.frag; +#X connect 0 0 2 0; +#X connect 0 1 4 0; +#X connect 1 0 11 0; +#X connect 3 0 12 0; +#X connect 4 0 6 0; +#X connect 5 0 0 0; +#X connect 7 0 13 0; +#X connect 9 0 0 0; +#X connect 9 1 7 0; +#X connect 10 0 12 0; +#X connect 11 0 9 0; +#X connect 11 1 13 1; +#X connect 12 0 16 0; +#X connect 12 1 15 0; +#X connect 13 0 14 0; +#X connect 14 0 8 0; +#X connect 14 0 0 0; +#X connect 15 0 11 0; +#X connect 16 0 9 0; +#X restore 261 256 pd shader; +#X obj 292 231 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 280 539 loadbang; +#X obj 119 448 s texture_mass; +#X obj 359 444 s texture_link; +#X obj 530 373 loadbang; +#X msg 530 394 texunit 2; +#X msg 286 390 texunit 3; +#X obj 601 440 s texture_mass2; +#X obj 321 229 r shader_link; +#X obj 321 277 s init_shader_link; +#X obj 261 612 square 4; +#X obj 613 34 inlet; +#X obj 24 201 gemhead 2; +#X obj 261 185 gemhead 11; +#X obj 506 236 gemhead 21; +#X msg 41 561 rectangle 1 \, quality 0; +#X msg 280 560 rectangle 1 \, quality 0; +#X obj 615 58 t b b; +#X obj 658 36 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 621 113 s init_shader_link; +#X obj 84 233 r shader_mass; +#X obj 84 281 s init_shader_mass; +#X obj 601 140 s init_shader_mass; +#X obj 261 589 pix_texture; +#X obj 261 418 gemframebuffer; +#X obj 24 588 pix_texture; +#X obj 24 425 gemframebuffer; +#X obj 65 310 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 506 418 gemframebuffer; +#X obj 524 513 loadbang; +#X msg 524 532 rectangle 1 \, quality 0; +#X obj 506 588 pix_texture; +#X obj 580 565 r texture_mass; +#X obj 103 260 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 341 251 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 616 79 delay 500; +#N canvas 0 0 446 324 init_fb 0; +#X msg 100 173 type BYTE; +#X msg 78 151 format RGB32; +#X obj 46 121 t b b; +#X obj 78 261 t a; +#X obj 78 285 outlet; +#X msg 137 215 rectangle 1; +#X msg 46 196 dimen 128 128; +#X obj 46 11 inlet; +#X msg 137 42 0; +#X obj 46 49 spigot 1; +#X obj 46 72 t a b; +#X connect 0 0 3 0; +#X connect 1 0 3 0; +#X connect 2 0 6 0; +#X connect 2 1 1 0; +#X connect 2 1 0 0; +#X connect 2 1 5 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 7 0 9 0; +#X connect 8 0 9 1; +#X connect 9 0 10 0; +#X connect 10 0 2 0; +#X connect 10 1 8 0; +#X restore 56 337 pd init_fb; +#X obj 24 306 t a b; +#X obj 302 300 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 0 0 450 300 init_fb 0; +#X msg 100 153 type BYTE; +#X msg 78 131 format RGB32; +#X obj 46 101 t b b; +#X obj 78 241 t a; +#X obj 78 265 outlet; +#X msg 137 195 rectangle 1; +#X msg 46 176 dimen 128 128; +#X obj 46 11 inlet; +#X msg 137 42 0; +#X obj 46 49 spigot 1; +#X obj 46 72 t a b; +#X connect 0 0 3 0; +#X connect 1 0 3 0; +#X connect 2 0 6 0; +#X connect 2 1 1 0; +#X connect 2 1 0 0; +#X connect 2 1 5 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 7 0 9 0; +#X connect 8 0 9 1; +#X connect 9 0 10 0; +#X connect 10 0 2 0; +#X connect 10 1 8 0; +#X restore 293 327 pd init_fb; +#X obj 261 296 t a b; +#X obj 547 298 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 0 0 450 300 init_fb 0; +#X msg 100 153 type BYTE; +#X msg 78 131 format RGB32; +#X obj 46 101 t b b; +#X obj 78 241 t a; +#X obj 78 265 outlet; +#X msg 137 195 rectangle 1; +#X msg 46 176 dimen 128 128; +#X obj 46 11 inlet; +#X msg 137 42 0; +#X obj 46 49 spigot 1; +#X obj 46 72 t a b; +#X connect 0 0 3 0; +#X connect 1 0 3 0; +#X connect 2 0 6 0; +#X connect 2 1 1 0; +#X connect 2 1 0 0; +#X connect 2 1 5 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 7 0 9 0; +#X connect 8 0 9 1; +#X connect 9 0 10 0; +#X connect 10 0 2 0; +#X connect 10 1 8 0; +#X restore 538 325 pd init_fb; +#X obj 506 294 t a b; +#X obj 32 29 gemhead 2; +#X msg 271 106 0; +#X obj 271 82 loadbang; +#X msg 33 59 20; +#X obj 32 90 until; +#X obj 44 540 loadbang; +#X msg 804 378 init \$1; +#X floatatom 804 360 5 0 1 0 - - -; +#X obj 762 371 t b; +#X obj 762 254 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 762 407 texture_link 3; +#X msg 804 338 1; +#X msg 950 229 gravite \$1; +#X floatatom 948 189 5 0 0 0 - - -; +#X floatatom 1012 190 5 0 0 0 - - -; +#X msg 1012 206 D \$1; +#X msg 1063 208 K1 \$1; +#X floatatom 1062 189 5 0 0 0 - - -; +#X obj 948 207 / 100; +#X obj 950 251 t a; +#X obj 950 526 s shader_link; +#X obj 952 90 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 952 70 r init_shader_link; +#X obj 950 146 t b; +#X obj 952 127 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 1059 168 0.05; +#X msg 950 169 -0.0025; +#X msg 1009 170 0.004; +#X obj 842 314 delay 1000; +#X msg 842 337 0; +#X obj 762 454 s shader_mass; +#X obj 762 225 r init_shader_mass; +#X obj 804 286 t b; +#X msg 992 362 init \$1; +#X floatatom 992 344 5 0 1 0 - - -; +#X msg 992 322 1; +#X obj 1030 298 delay 1000; +#X msg 1030 321 0; +#X obj 991 270 t b; +#X msg 1049 470 texture_mass 1; +#X msg 1040 496 texture_mass_old 2; +#X obj 1040 419 t b; +#X msg 771 426 texture_mass_old 2; +#X msg 1071 391 N \$1; +#X msg 1071 367 0.01; +#X msg 1121 368 0; +#X obj 1078 340 delay 100; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 31 0; +#X connect 3 0 39 0; +#X connect 5 0 40 0; +#X connect 6 0 5 0; +#X connect 7 0 51 0; +#X connect 7 1 35 0; +#X connect 8 0 7 1; +#X connect 9 0 45 0; +#X connect 11 0 37 0; +#X connect 12 0 20 0; +#X connect 13 0 54 0; +#X connect 13 1 23 0; +#X connect 14 0 13 1; +#X connect 15 0 30 0; +#X connect 18 0 19 0; +#X connect 19 0 42 0; +#X connect 20 0 38 0; +#X connect 22 0 13 2; +#X connect 25 0 31 0; +#X connect 26 0 7 0; +#X connect 27 0 13 0; +#X connect 28 0 57 0; +#X connect 29 0 39 0; +#X connect 30 0 37 0; +#X connect 31 0 49 0; +#X connect 31 1 8 0; +#X connect 31 1 14 0; +#X connect 32 0 31 0; +#X connect 34 0 7 2; +#X connect 37 0 24 0; +#X connect 38 0 11 0; +#X connect 38 1 17 0; +#X connect 38 1 37 1; +#X connect 39 0 4 0; +#X connect 40 0 3 0; +#X connect 40 1 16 0; +#X connect 40 1 39 1; +#X connect 41 0 50 0; +#X connect 42 0 9 0; +#X connect 42 1 21 0; +#X connect 43 0 44 0; +#X connect 44 0 45 0; +#X connect 45 0 10 0; +#X connect 46 0 45 1; +#X connect 47 0 35 0; +#X connect 48 0 23 0; +#X connect 49 0 33 0; +#X connect 49 0 36 0; +#X connect 50 0 40 0; +#X connect 51 0 40 0; +#X connect 51 1 50 0; +#X connect 52 0 53 0; +#X connect 53 0 38 0; +#X connect 54 0 38 0; +#X connect 54 1 53 0; +#X connect 55 0 56 0; +#X connect 56 0 42 0; +#X connect 57 0 42 0; +#X connect 57 1 56 0; +#X connect 58 0 61 0; +#X connect 59 0 26 0; +#X connect 59 0 27 0; +#X connect 59 0 28 0; +#X connect 60 0 59 0; +#X connect 61 0 62 0; +#X connect 62 0 26 0; +#X connect 62 0 27 0; +#X connect 62 0 28 0; +#X connect 63 0 29 0; +#X connect 64 0 88 0; +#X connect 65 0 64 0; +#X connect 66 0 68 0; +#X connect 66 0 100 0; +#X connect 67 0 66 0; +#X connect 67 0 90 0; +#X connect 68 0 88 0; +#X connect 69 0 65 0; +#X connect 70 0 77 0; +#X connect 71 0 76 0; +#X connect 72 0 73 0; +#X connect 73 0 77 0; +#X connect 74 0 77 0; +#X connect 75 0 74 0; +#X connect 76 0 70 0; +#X connect 77 0 78 0; +#X connect 79 0 82 0; +#X connect 79 0 96 0; +#X connect 80 0 79 0; +#X connect 81 0 84 0; +#X connect 81 0 85 0; +#X connect 81 0 83 0; +#X connect 82 0 81 0; +#X connect 83 0 75 0; +#X connect 84 0 71 0; +#X connect 85 0 72 0; +#X connect 86 0 87 0; +#X connect 87 0 65 0; +#X connect 89 0 67 0; +#X connect 90 0 69 0; +#X connect 90 0 86 0; +#X connect 91 0 78 0; +#X connect 92 0 91 0; +#X connect 93 0 92 0; +#X connect 94 0 95 0; +#X connect 94 0 102 0; +#X connect 94 0 104 0; +#X connect 95 0 92 0; +#X connect 96 0 93 0; +#X connect 96 0 94 0; +#X connect 96 0 99 0; +#X connect 97 0 78 0; +#X connect 98 0 78 0; +#X connect 99 0 97 0; +#X connect 99 0 98 0; +#X connect 100 0 88 0; +#X connect 101 0 78 0; +#X connect 102 0 101 0; +#X connect 103 0 101 0; +#X connect 104 0 103 0; +#X restore 27 323 pd shaders_PM _________________; +#N canvas 267 495 450 300 config 0; +#X msg 16 75 W \$1; +#X floatatom 225 101 5 0 0 0 - - -; +#X msg 225 120 f \$1; +#X obj 133 155 t a; +#X msg 133 83 N \$1; +#X text 141 101 bruit; +#X obj 16 53 / 11000; +#X obj 225 78 + 5; +#X obj 225 55 * 5; +#X obj 133 61 / 5000; +#X msg 338 120 t \$1; +#X obj 338 31 gemhead 77; +#X obj 338 56 t b; +#X obj 338 79 f; +#X obj 338 99 + 0.3; +#X obj 338 141 s shader_link; +#X obj 133 181 s shader_link; +#X obj 16 29 r oscillation1; +#X obj 133 31 r qqt_noise; +#X obj 225 31 r force_wind; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 16 0; +#X connect 4 0 3 0; +#X connect 6 0 0 0; +#X connect 7 0 1 0; +#X connect 8 0 7 0; +#X connect 9 0 4 0; +#X connect 10 0 15 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 13 1; +#X connect 14 0 10 0; +#X connect 17 0 6 0; +#X connect 18 0 9 0; +#X connect 19 0 8 0; +#X restore 27 361 pd config _____________________; +#N canvas 0 0 450 300 render 0; +#X obj 43 137 pix_texture; +#X obj 43 181 square 4; +#X obj 43 115 gemhead 66; +#X obj 241 120 != 0; +#X obj 210 119 == 0; +#X obj 133 58 r texture_link; +#X obj 146 77 r texture_interpol; +#X obj 210 146 s aff_drapeau; +#X obj 120 39 r texture_mass; +#X msg 43 94 0; +#X obj 43 73 loadbang; +#N canvas 0 0 656 297 spigot4 0; +#X obj 40 21 inlet; +#X obj 458 22 inlet; +#X obj 40 179 outlet; +#X obj 113 24 inlet; +#X obj 112 91 spigot 0; +#X obj 196 24 inlet; +#X obj 195 91 spigot 0; +#X obj 86 68 == 1; +#X obj 159 71 == 2; +#X obj 240 71 == 3; +#X obj 40 88 spigot 0; +#X obj 283 29 inlet; +#X obj 282 96 spigot 0; +#X obj 327 76 == 4; +#X obj 361 32 inlet; +#X obj 360 99 spigot 0; +#X obj 405 79 == 5; +#X connect 0 0 10 0; +#X connect 1 0 7 0; +#X connect 1 0 8 0; +#X connect 1 0 9 0; +#X connect 1 0 13 0; +#X connect 1 0 16 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 5 0 6 0; +#X connect 6 0 2 0; +#X connect 7 0 10 1; +#X connect 8 0 4 1; +#X connect 9 0 6 1; +#X connect 10 0 2 0; +#X connect 11 0 12 0; +#X connect 12 0 2 0; +#X connect 13 0 12 1; +#X connect 14 0 15 0; +#X connect 15 0 2 0; +#X connect 16 0 15 1; +#X restore 120 115 pd spigot4; +#X obj 160 96 r texture_normal; +#X obj 43 160 translateXYZ 0 0 -40; +#X obj 240 27 f; +#X obj 238 5 inlet; +#X connect 0 0 13 0; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 4 0 7 0; +#X connect 5 0 11 1; +#X connect 6 0 11 2; +#X connect 8 0 11 0; +#X connect 9 0 2 0; +#X connect 10 0 9 0; +#X connect 11 0 0 1; +#X connect 12 0 11 3; +#X connect 13 0 1 0; +#X connect 14 0 3 0; +#X connect 14 0 4 0; +#X connect 14 0 11 5; +#X connect 15 0 14 0; +#X restore 27 398 pd render _____________________; +#X text 288 6 Made by Cyrille Henry 2008 10 24; +#N canvas 452 305 812 549 shader_render 0; +#X obj 315 429 pix_texture; +#X obj 67 256 gemframebuffer; +#X obj 67 443 pix_texture; +#X obj 67 305 translateXYZ 0 0 -4; +#X obj 67 462 square 4; +#X obj 85 369 loadbang; +#N canvas 224 312 1052 398 init 0; +#X obj 14 130 outlet; +#X obj 14 30 inlet; +#X obj 14 53 spigot 1; +#X obj 31 81 t b; +#X msg 67 31 0; +#X msg 14 104 rectangle 1 \, type BYTE \, format RGB32 \, dim 256 256 +; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 2 1; +#X connect 5 0 0 0; +#X restore 99 223 pd init; +#N canvas 573 206 496 427 shader 0; +#X obj 32 264 glsl_program; +#X obj 126 187 change; +#X obj 126 233 print linking; +#X obj 32 167 glsl_fragment; +#X msg 126 208 link \$1; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 30; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 120 89 pd load_shader; +#X obj 32 36 inlet; +#X obj 32 333 outlet; +#X obj 155 18 inlet; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 113 288 pd init_shader; +#X obj 278 25 inlet; +#X obj 113 318 outlet; +#X msg 43 143 open interpol.frag; +#X msg 135 265 set -1; +#X connect 0 0 7 0; +#X connect 0 1 9 0; +#X connect 1 0 4 0; +#X connect 3 0 0 0; +#X connect 3 1 1 0; +#X connect 4 0 0 0; +#X connect 4 0 2 0; +#X connect 5 0 12 0; +#X connect 6 0 3 0; +#X connect 8 0 12 0; +#X connect 8 0 13 0; +#X connect 9 0 11 0; +#X connect 10 0 0 0; +#X connect 12 0 3 0; +#X connect 13 0 9 0; +#X restore 67 175 pd shader; +#X obj 92 156 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 146 134 t b; +#X msg 146 155 texture_mass 1; +#N canvas 668 405 301 465 shader 0; +#X obj 110 298 pack 0 0; +#X obj 131 278 t b f; +#X msg 110 321 link \$1 \$2; +#X floatatom 131 259 2 0 0 0 ID - -; +#X floatatom 110 158 2 0 0 0 ID - -; +#X obj 128 342 print linking; +#X obj 74 70 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 38 213 glsl_fragment; +#X obj 38 116 glsl_vertex; +#X obj 110 135 change; +#X obj 131 233 change; +#X obj 38 371 glsl_program; +#N canvas 703 231 450 300 load_glsl 0; +#X obj 51 22 gemhead; +#X obj 51 98 outlet; +#X obj 51 50 route gem_state; +#X obj 51 74 route 1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X restore 74 45 pd load_glsl; +#X obj 41 13 inlet; +#X obj 37 397 outlet; +#X obj 150 10 inlet; +#X obj 265 14 inlet; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 107 399 pd init_shader; +#X obj 107 429 outlet; +#X msg 52 94 open fetching2.vert; +#X msg 48 183 open fetching2.frag; +#X msg 132 373 set -1; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 1 1 0 1; +#X connect 2 0 5 0; +#X connect 2 0 11 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X connect 6 0 19 0; +#X connect 6 0 20 0; +#X connect 7 0 11 0; +#X connect 7 1 10 0; +#X connect 8 0 7 0; +#X connect 8 1 9 0; +#X connect 9 0 4 0; +#X connect 10 0 3 0; +#X connect 11 0 14 0; +#X connect 11 1 17 0; +#X connect 12 0 6 0; +#X connect 13 0 8 0; +#X connect 15 0 6 0; +#X connect 15 0 21 0; +#X connect 16 0 11 0; +#X connect 17 0 18 0; +#X connect 19 0 8 0; +#X connect 20 0 7 0; +#X connect 21 0 17 0; +#X restore 315 208 pd shader; +#X obj 345 185 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 387 229 t b; +#X obj 315 116 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 147 114 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 163 278 s texture_interpol; +#X obj 315 96 r aff_drapeau; +#X obj 67 102 gemhead 31; +#X obj 315 135 gemhead 51; +#X obj 410 25 inlet; +#X obj 410 156 delay 1000; +#X obj 315 461 mesh_square 92 64; +#X obj 315 156 alpha; +#X obj 315 316 scaleXYZ 15 15 15; +#X obj 315 286 translateXYZ 0 0.55 -8; +#X msg 327 399 quality 0; +#X msg 521 258 draw line; +#X msg 521 238 draw default; +#X msg 522 279 draw point; +#X floatatom 485 203 5 0 0 0 - - -; +#X obj 485 28 inlet; +#X obj 327 365 loadbang; +#X obj 67 198 t a b; +#X msg 410 185 texture 4; +#X msg 85 396 rectangle 1 \, quality 0; +#X obj 637 140 loadbang; +#X msg 637 162 15; +#X obj 637 184 s \$0-scale; +#X connect 0 0 22 0; +#X connect 1 0 3 0; +#X connect 1 1 0 1; +#X connect 1 1 2 1; +#X connect 1 1 16 0; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 5 0 35 0; +#X connect 6 0 1 0; +#X connect 7 0 33 0; +#X connect 7 1 15 0; +#X connect 8 0 7 1; +#X connect 9 0 10 0; +#X connect 10 0 7 2; +#X connect 11 0 25 0; +#X connect 11 1 13 0; +#X connect 12 0 11 1; +#X connect 13 0 34 0; +#X connect 14 0 19 0; +#X connect 15 0 9 0; +#X connect 17 0 14 0; +#X connect 18 0 7 0; +#X connect 19 0 23 0; +#X connect 20 0 21 0; +#X connect 20 0 12 0; +#X connect 20 0 8 0; +#X connect 21 0 34 0; +#X connect 23 0 11 0; +#X connect 24 0 0 0; +#X connect 25 0 24 0; +#X connect 26 0 0 0; +#X connect 27 0 22 0; +#X connect 28 0 22 0; +#X connect 29 0 22 0; +#X connect 30 0 24 1; +#X connect 30 0 24 2; +#X connect 30 0 24 3; +#X connect 31 0 30 0; +#X connect 32 0 26 0; +#X connect 33 0 1 0; +#X connect 33 1 6 0; +#X connect 34 0 11 2; +#X connect 35 0 2 0; +#X connect 36 0 37 0; +#X connect 37 0 38 0; +#X restore 27 304 pd shader_render ______________; +#X text 12 6 "Potential Flag" \, by Samuel Bianchini; +#X floatatom 606 304 5 0 0 0 - - -; +#X obj 606 324 * 10; +#N canvas 830 53 450 300 Gem.init 0; +#X obj 26 3 loadbang; +#X msg 26 26 perspec -1 1 -1 1 10 100; +#X obj 26 124 t a; +#X obj 25 153 outlet; +#X msg 55 77 dimen 800 600; +#X msg 37 51 FSAA 5; +#X connect 0 0 1 0; +#X connect 0 0 5 0; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X restore 66 188 pd Gem.init; +#N canvas 341 104 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X obj 318 255 gemwin 30; +#X msg 441 219 color 0.2 0.3 0.5; +#X msg 443 257 dimen 1024 768; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 7 0; +#X connect 6 0 7 0; +#X connect 7 0 17 0; +#X connect 7 1 9 0; +#X connect 9 0 10 0; +#X connect 9 1 12 0; +#X connect 10 0 11 0; +#X connect 11 0 14 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 0 0; +#X connect 17 0 8 0; +#X connect 18 0 17 0; +#X connect 19 0 17 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 47 209 pd gemwin 30; +#X floatatom 210 282 5 0 0 0 scale-> #0-scale -; +#X obj 6 325 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#N canvas 290 239 395 502 shader_normal 0; +#X obj 51 233 gemframebuffer; +#X obj 51 347 pix_texture; +#X obj 51 276 translateXYZ 0 0 -4; +#X obj 51 366 square 4; +#X obj 67 304 loadbang; +#N canvas 0 0 1052 398 init 0; +#X obj 14 140 outlet; +#X obj 14 30 inlet; +#X obj 14 55 spigot 1; +#X obj 24 76 b; +#X msg 67 31 0; +#X msg 14 114 rectangle 1 \, type BYTE \, format RGB32 \, dim 128 128 +; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 2 1; +#X connect 5 0 0 0; +#X restore 83 160 pd init; +#N canvas 555 24 496 709 shader 0; +#X obj 32 474 glsl_program; +#X obj 126 357 change; +#X obj 126 443 print linking; +#X obj 32 337 glsl_fragment; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 30; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 134 96 pd load_shader; +#X obj 32 36 inlet; +#X obj 32 543 outlet; +#X obj 175 28 inlet; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 113 498 pd init_shader; +#X obj 278 25 inlet; +#X obj 113 528 outlet; +#X msg 43 313 open normal.frag; +#X obj 32 185 glsl_vertex; +#X obj 96 122 t b b; +#X obj 126 393 pack f f; +#X msg 126 418 link \$1 \$2; +#X msg 42 161 open normal.vert; +#X connect 0 0 6 0; +#X connect 0 1 8 0; +#X connect 1 0 14 0; +#X connect 3 0 0 0; +#X connect 3 1 1 0; +#X connect 4 0 13 0; +#X connect 5 0 12 0; +#X connect 7 0 13 0; +#X connect 8 0 10 0; +#X connect 9 0 0 0; +#X connect 11 0 3 0; +#X connect 12 0 3 0; +#X connect 12 1 14 1; +#X connect 13 0 11 0; +#X connect 13 1 16 0; +#X connect 14 0 15 0; +#X connect 15 0 0 0; +#X connect 15 0 2 0; +#X connect 16 0 12 0; +#X restore 51 112 pd shader; +#X obj 76 93 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 143 65 t b; +#X obj 146 45 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 157 252 s texture_normal; +#X obj 51 39 gemhead 32; +#X obj 78 189 loadbang; +#X msg 78 208 texunit 4; +#X msg 141 88 texture_mass 1; +#X obj 51 136 t a b; +#X msg 67 323 rectangle 1 \, quality 1; +#X connect 0 0 2 0; +#X connect 0 1 10 0; +#X connect 0 1 1 1; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 4 0 16 0; +#X connect 5 0 0 0; +#X connect 6 0 15 0; +#X connect 6 1 9 0; +#X connect 7 0 6 1; +#X connect 8 0 14 0; +#X connect 9 0 8 0; +#X connect 11 0 6 0; +#X connect 12 0 13 0; +#X connect 13 0 0 0; +#X connect 14 0 6 2; +#X connect 15 0 0 0; +#X connect 15 1 5 0; +#X connect 16 0 1 0; +#X restore 27 342 pd shader_normal ______________; +#X obj 6 304 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#N canvas 1468 153 767 700 \$0-pad 0; +#X msg 158 309 clear; +#N canvas 6 50 590 367 clear-all 0; +#X obj 89 46 inlet; +#X obj 89 122 s pd-\$0-work; +#X msg 89 99 clear; +#X obj 89 72 t b; +#X connect 0 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X restore 158 331 pd clear-all; +#X obj 92 646 outlet; +#X obj 72 171 loadbang; +#X obj 191 411 metro 50; +#N canvas 581 163 695 660 pointer-parser 0; +#X obj 129 165 pointer; +#X text 276 46 from metro; +#X obj 282 346 t b f; +#X obj 117 49 inlet; +#X obj 237 48 inlet; +#X obj 129 541 outlet; +#X obj 129 398 pack 0 0; +#X obj 129 193 get \$0-xy-pad-knob-1 x0 y0; +#X obj 129 320 change -1; +#X obj 282 325 change -1; +#X obj 129 238 / 90; +#X obj 282 236 / 90; +#X obj 129 420 unpack 0 0; +#X obj 129 442 * 2; +#X obj 129 464 - 1; +#X obj 129 516 pack; +#X obj 169 442 * 2; +#X obj 169 464 - 1; +#X obj 384 202 set \$0-xy-pad-knob-1 x0 y0; +#X obj 384 43 inlet set; +#X obj 384 65 unpack; +#X text 432 67 -1..+1; +#X obj 384 112 + 1; +#X obj 384 134 / 2; +#X obj 384 156 * 90; +#X obj 424 112 + 1; +#X obj 424 134 / 2; +#X floatatom 173 241 5 0 0 0 - - -; +#X obj 424 156 * 90; +#X connect 0 0 18 2; +#X connect 0 0 7 0; +#X connect 2 0 6 0; +#X connect 2 1 6 1; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 6 0 12 0; +#X connect 7 0 10 0; +#X connect 7 0 27 0; +#X connect 7 1 11 0; +#X connect 8 0 6 0; +#X connect 9 0 2 0; +#X connect 10 0 8 0; +#X connect 11 0 9 0; +#X connect 12 0 13 0; +#X connect 12 1 16 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 5 0; +#X connect 16 0 17 0; +#X connect 17 0 15 1; +#X connect 19 0 20 0; +#X connect 20 0 22 0; +#X connect 20 1 25 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 18 0; +#X connect 25 0 26 0; +#X connect 26 0 28 0; +#X connect 28 0 18 1; +#X restore 72 448 pd pointer-parser; +#N canvas 419 563 751 371 add-controller 0; +#X msg 520 189 traverse \$1 \, bang; +#X obj 520 216 pointer; +#X obj 405 322 outlet; +#X obj 405 21 inlet; +#X obj 405 50 t f b; +#X obj 520 132 symbol pd-\$0-work; +#X obj 405 285 append \$0-xy-pad-knob-1 x0 y0 id; +#X obj 23 35 struct \$0-xy-pad-knob-1 float x0 float y0 float id; +#X obj 22 81 filledpolygon id 999 1 x0(0:90)(0:90) y0(0:90)(0:90) x0(0:90)(10:100) +y0(0:90)(0:90) x0(0:90)(10:100) y0(0:90)(10:100) x0(0:90)(0:90) y0(0:90)(10:100) +; +#X msg 405 261 45 45 \$1; +#X connect 0 0 1 0; +#X connect 1 0 6 3; +#X connect 3 0 4 0; +#X connect 4 0 9 0; +#X connect 4 1 5 0; +#X connect 5 0 0 0; +#X connect 6 0 2 0; +#X connect 9 0 6 0; +#X restore 72 379 pd add-controller; +#X obj 192 391 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X msg 193 370 1; +#X obj 72 303 t f b b; +#X text 111 233 5/10 red; +#X text 111 248 3/10 green; +#X text 111 263 2/10 blue; +#X text 522 76 (c) 2010 Thomas Musil; +#X text 521 58 (c) -2010 Frank Barknecht; +#X msg 72 233 900; +#X obj 162 646 outlet; +#X text 486 42 based on: xy-pad; +#N canvas 1444 366 450 300 xy2rphi 0; +#X obj 46 35 inlet x y; +#X obj 46 272 outlet r; +#X obj 136 266 outlet phi; +#X text 244 77 r=sqrt(x^2+y^2); +#X text 246 97 phi=atan2(y \, x); +#X obj 102 106 t f f f; +#X obj 102 129 *; +#X obj 46 169 +; +#X obj 46 106 t f f f; +#X obj 46 129 *; +#X obj 46 201 sqrt; +#X obj 136 157 pack; +#X obj 136 196 atan2; +#X msg 136 177 \$2 \$1; +#X obj 46 61 unpack 0 0; +#X text 147 282 in rad; +#X connect 0 0 14 0; +#X connect 5 0 6 0; +#X connect 5 1 6 1; +#X connect 5 2 11 1; +#X connect 6 0 7 1; +#X connect 7 0 10 0; +#X connect 8 0 9 0; +#X connect 8 1 9 1; +#X connect 8 2 11 0; +#X connect 9 0 7 0; +#X connect 10 0 1 0; +#X connect 11 0 13 0; +#X connect 12 0 2 0; +#X connect 13 0 12 0; +#X connect 14 0 8 0; +#X connect 14 1 5 0; +#X restore 394 485 pd xy2rphi; +#X obj 92 530 t l l; +#X obj 92 552 unpack 0 0; +#X obj 387 102 inlet r; +#X obj 456 103 inlet phi; +#X obj 444 333 t f f; +#X obj 444 357 cos; +#X obj 387 354 t f f; +#X obj 387 390 * 1; +#X obj 417 389 * 0; +#X obj 387 277 unpack 0 0; +#X obj 387 254 pack; +#X obj 456 225 t b f; +#X obj 471 356 sin; +#X obj 387 412 pack; +#X obj 387 204 t f; +#X obj 387 226 clip 0 1; +#X obj 304 74 cnv 10 12 12 empty empty empty 20 12 0 14 -99865 -66577 +0; +#N canvas 493 264 450 300 \$0-work 0; +#X scalar 1002-xy-pad-knob-1 71.2205 45 900 \;; +#X coords 0 100 100 0 100 100 1; +#X restore 260 30 pd \$0-work; +#X obj 451 532 wrap; +#X obj 72 193 t b b; +#X obj 608 163 atan2; +#X msg 608 138 1 0; +#X obj 608 185 * 4; +#X obj 608 207 t f f; +#X obj 378 612 s \$0-force; +#X obj 451 632 s \$0-direction; +#X msg 451 554 set \$1; +#X msg 378 564 set \$1; +#X obj 451 507 / 6.28; +#X obj 444 309 * -6.28; +#X obj 394 507 t f f; +#X obj 337 537 s force_wind; +#X obj 160 611 * -1; +#X connect 0 0 1 0; +#X connect 3 0 38 0; +#X connect 4 0 5 1; +#X connect 5 0 19 0; +#X connect 6 0 5 0; +#X connect 7 0 4 0; +#X connect 8 0 7 0; +#X connect 9 0 6 0; +#X connect 9 1 8 0; +#X connect 9 2 0 0; +#X connect 15 0 9 0; +#X connect 18 0 49 0; +#X connect 18 1 47 0; +#X connect 19 0 20 0; +#X connect 19 1 18 0; +#X connect 20 0 2 0; +#X connect 20 1 51 0; +#X connect 21 0 33 0; +#X connect 22 0 30 0; +#X connect 23 0 24 0; +#X connect 23 1 31 0; +#X connect 24 0 26 1; +#X connect 25 0 26 0; +#X connect 25 1 27 0; +#X connect 26 0 32 0; +#X connect 27 0 32 1; +#X connect 28 0 25 0; +#X connect 28 1 48 0; +#X connect 29 0 28 0; +#X connect 30 0 29 0; +#X connect 30 1 29 1; +#X connect 31 0 27 1; +#X connect 32 0 5 2; +#X connect 33 0 34 0; +#X connect 34 0 29 0; +#X connect 37 0 45 0; +#X connect 38 0 15 0; +#X connect 38 1 40 0; +#X connect 39 0 41 0; +#X connect 40 0 39 0; +#X connect 41 0 42 0; +#X connect 42 0 48 1; +#X connect 42 1 47 1; +#X connect 45 0 44 0; +#X connect 46 0 43 0; +#X connect 47 0 37 0; +#X connect 48 0 23 0; +#X connect 49 0 50 0; +#X connect 49 1 46 0; +#X connect 51 0 16 0; +#X coords 0 -1 1 1 100 100 2 260 30; +#X restore 445 290 pd \$0-pad; +#X obj 445 151 vsl 15 128 0 1 0 0 empty \$0-force force 0 -9 0 10 -262144 +-1 -1 7400 1; +#X obj 538 152 vsl 15 128 0 1 0 0 empty \$0-direction direction 0 -9 +0 10 -262144 -1 -1 0 1; +#N canvas 424 571 337 368 wind-control. 0; +#X obj 41 82 pack f f; +#X msg 41 104 wind \$1 \$2; +#X obj 41 126 s shader_link; +#X obj 41 30 inlet; +#X obj 105 32 inlet; +#X obj 181 304 s oscillation1; +#X obj 41 58 / 11000; +#X obj 105 58 / 11000; +#X obj 181 187 *; +#X obj 181 164 t f f; +#X obj 181 212 +; +#X obj 181 236 sqrt; +#X obj 231 187 *; +#X obj 231 164 t f f; +#X obj 181 259 * 600; +#X obj 181 281 min 300; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 3 0 6 0; +#X connect 3 0 9 0; +#X connect 4 0 7 0; +#X connect 4 0 13 0; +#X connect 6 0 0 0; +#X connect 7 0 0 1; +#X connect 8 0 10 0; +#X connect 9 0 8 0; +#X connect 9 1 8 1; +#X connect 10 0 11 0; +#X connect 11 0 14 0; +#X connect 12 0 10 1; +#X connect 13 0 12 0; +#X connect 13 1 12 1; +#X connect 14 0 15 0; +#X connect 15 0 5 0; +#X restore 445 397 pd wind-control.; +#X text 28 20 Simple version for Gem examples; +#X text 29 34 Did work under Linux \, with Nvidia driver. I don't know +on other OS/hardware.; +#X text 29 72 This patch is quite huge. the GPU compute the position +of 64x92 masses \, and 64x92x12 links at 50x20 Hz. (about 7e+07 links/sec +\, so about 100 time faster than what is curently possible with MSD +on a CPU) (My GPU is old \, this patch performs 10 to 50 times faster +on a good GPU); +#X obj 606 346 s qqt_noise; +#X connect 0 0 5 0; +#X connect 2 0 1 0; +#X connect 9 0 10 0; +#X connect 10 0 24 0; +#X connect 11 0 12 0; +#X connect 13 0 7 1; +#X connect 14 0 3 0; +#X connect 16 0 7 0; +#X connect 17 0 20 0; +#X connect 17 1 20 1; +#X connect 18 0 17 0; +#X connect 19 0 17 1; diff --git a/Gem/examples/10.glsl/11.geometry.pd b/Gem/examples/10.glsl/11.geometry.pd new file mode 100644 index 0000000..1851c8a --- /dev/null +++ b/Gem/examples/10.glsl/11.geometry.pd @@ -0,0 +1,123 @@ +#N canvas 197 25 552 632 10; +#X floatatom 132 447 9 0 0 0 ID - -; +#X floatatom 132 279 9 0 0 0 ID - -; +#X obj 150 506 print linking; +#X obj 132 465 pack 0 0 0; +#X floatatom 126 364 9 0 0 0 ID - -; +#X obj 44 139 gemhead; +#X msg 132 485 link \$1 \$2 \$3; +#X obj 44 319 glsl_vertex; +#X obj 44 403 glsl_fragment; +#X obj 44 237 glsl_geometry; +#X obj 44 158 alpha; +#X floatatom 122 531 5 0 0 0 - - -; +#X floatatom 164 531 5 0 0 0 - - -; +#X floatatom 209 532 5 0 0 0 - - -; +#X obj 44 512 glsl_program; +#X msg 182 200 -1; +#X obj 182 156 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 132 258 change; +#X obj 126 341 change; +#X obj 132 426 change; +#X obj 44 552 translateXYZ 0 0 0; +#X obj 44 197 colorRGB 1 1 1; +#X floatatom 128 174 5 0 0 0 - - -; +#X obj 44 177 depth 1; +#X obj 44 576 circle; +#X obj 182 176 t b b; +#X text 184 7 geometry shader; +#X text 48 28 The geometry shader is usefull to create new geometry +; +#X text 51 47 Here is an example where 40 circles are draw with 1 single +primitive.; +#X text 49 87 Be aware that the geometry shader is computed after the +vertex shader. coordinate are in 2d.; +#X msg 58 217 open geo.geom; +#X msg 56 299 open geo.vert; +#X msg 57 384 open geo.frag; +#X obj 182 136 loadbang; +#X text 205 155 load shaders; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 366 247 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 336 264 pd gemwin; +#X connect 0 0 3 0; +#X connect 1 0 3 2; +#X connect 3 0 6 0; +#X connect 4 0 3 1; +#X connect 5 0 10 0; +#X connect 6 0 2 0; +#X connect 6 0 14 0; +#X connect 7 0 8 0; +#X connect 7 1 18 0; +#X connect 8 0 14 0; +#X connect 8 1 19 0; +#X connect 9 0 7 0; +#X connect 9 1 17 0; +#X connect 10 0 23 0; +#X connect 11 0 20 1; +#X connect 12 0 20 2; +#X connect 13 0 20 3; +#X connect 14 0 20 0; +#X connect 15 0 19 0; +#X connect 16 0 25 0; +#X connect 17 0 1 0; +#X connect 18 0 4 0; +#X connect 19 0 0 0; +#X connect 20 0 24 0; +#X connect 21 0 9 0; +#X connect 22 0 21 2; +#X connect 23 0 21 0; +#X connect 25 0 15 0; +#X connect 25 1 32 0; +#X connect 25 1 30 0; +#X connect 25 1 31 0; +#X connect 30 0 9 0; +#X connect 31 0 7 0; +#X connect 32 0 8 0; +#X connect 33 0 16 0; +#X connect 35 0 36 0; diff --git a/Gem/examples/10.glsl/12.tri2fan.pd b/Gem/examples/10.glsl/12.tri2fan.pd new file mode 100644 index 0000000..5437d4b --- /dev/null +++ b/Gem/examples/10.glsl/12.tri2fan.pd @@ -0,0 +1,157 @@ +#N canvas 1775 56 785 745 10; +#X floatatom 286 440 9 0 0 0 ID - -; +#X floatatom 249 264 9 0 0 0 ID - -; +#X obj 296 500 print linking; +#X obj 286 458 pack 0 0 0; +#X floatatom 244 350 9 0 0 0 ID - -; +#X obj 161 78 gemhead; +#X msg 286 479 link \$1 \$2 \$3; +#X obj 161 151 alpha; +#X floatatom 202 578 5 0 0 0 - - -; +#X floatatom 244 578 5 0 0 0 - - -; +#X floatatom 289 579 5 0 0 0 - - -; +#X obj 161 526 glsl_program; +#X obj 42 117 t b b b b; +#X msg 42 147 -1; +#X obj 42 98 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 249 242 change; +#X obj 244 329 change; +#X obj 286 419 change; +#X obj 161 650 t a b; +#X obj 209 650 loadbang; +#X msg 340 672 2; +#X obj 161 217 glsl_geometry; +#X obj 161 307 glsl_vertex; +#X obj 161 394 glsl_fragment; +#X obj 42 76 loadbang; +#X text 65 97 reload; +#X msg 422 113 create \, 1; +#X msg 431 135 destroy; +#X obj 402 654 triangle; +#X msg 473 202 lighting 1; +#X obj 161 627 spigot 1; +#X obj 230 628 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 470 633 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 402 631 spigot 0; +#X msg 460 180 perspec -0.1 0.1 -0.1 0.1 1 110; +#X obj 422 229 gemwin; +#X obj 460 159 loadbang; +#N canvas 0 0 877 520 light 0; +#X obj 225 45 gemhead 10; +#X floatatom 258 78 5 0 0 0 - - -; +#X floatatom 299 77 5 0 0 0 - - -; +#X floatatom 341 78 5 0 0 0 - - -; +#X obj 225 227 world_light; +#X obj 250 151 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X msg 250 172 debug \$1; +#X obj 225 103 rotateXYZ 0 30 0; +#X obj 27 51 gemhead 10; +#X floatatom 60 84 5 0 0 0 - - -; +#X floatatom 101 83 5 0 0 0 - - -; +#X floatatom 143 84 5 0 0 0 - - -; +#X obj 27 233 world_light; +#X obj 48 158 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 48 179 debug \$1; +#X obj 27 109 rotateXYZ 0 -90 0; +#X msg 297 207 0.8 0.8 0.8; +#X msg 100 210 0.7 0.7 0.7; +#X obj 408 73 loadbang; +#X connect 0 0 7 0; +#X connect 1 0 7 1; +#X connect 2 0 7 2; +#X connect 3 0 7 3; +#X connect 5 0 6 0; +#X connect 6 0 4 0; +#X connect 7 0 4 0; +#X connect 8 0 15 0; +#X connect 9 0 15 1; +#X connect 10 0 15 2; +#X connect 11 0 15 3; +#X connect 13 0 14 0; +#X connect 14 0 12 0; +#X connect 15 0 12 0; +#X connect 16 0 4 1; +#X connect 17 0 12 1; +#X connect 18 0 17 0; +#X connect 18 0 16 0; +#X restore 421 253 pd light; +#X obj 161 595 rotateXYZ -55 20 0; +#X floatatom 298 537 5 0 0 0 - - -; +#X text 235 13 replace triangle with 3 triangles thoses orientation +depend on the normal of the original primitive; +#X obj 161 554 scaleXYZ 0.2 0.2 0.2; +#X msg 172 129 auto 1; +#X obj 172 108 loadbang; +#X msg 176 195 open tri2fan.geom; +#X msg 177 286 open tri2fan.vert; +#X msg 178 370 open tri2fan.frag; +#X obj 161 724 newWave 25 25; +#X msg 209 671 D1 0.01 \, D2 0.1; +#X floatatom 520 593 5 0 25 0 - - -; +#X obj 552 635 pack f f; +#X obj 520 611 t f f; +#X msg 552 655 force \$1 \$2 0.3; +#X connect 0 0 3 0; +#X connect 1 0 3 2; +#X connect 3 0 6 0; +#X connect 4 0 3 1; +#X connect 5 0 7 0; +#X connect 6 0 2 0; +#X connect 6 0 11 0; +#X connect 7 0 21 0; +#X connect 8 0 38 1; +#X connect 9 0 38 2; +#X connect 10 0 38 3; +#X connect 11 0 41 0; +#X connect 12 0 13 0; +#X connect 12 1 46 0; +#X connect 12 2 45 0; +#X connect 12 3 44 0; +#X connect 13 0 17 0; +#X connect 14 0 12 0; +#X connect 15 0 1 0; +#X connect 16 0 4 0; +#X connect 17 0 0 0; +#X connect 18 0 47 0; +#X connect 18 1 47 0; +#X connect 19 0 48 0; +#X connect 20 0 47 3; +#X connect 21 0 22 0; +#X connect 21 1 15 0; +#X connect 22 0 23 0; +#X connect 22 1 16 0; +#X connect 23 0 11 0; +#X connect 23 1 17 0; +#X connect 24 0 14 0; +#X connect 26 0 35 0; +#X connect 27 0 35 0; +#X connect 29 0 35 0; +#X connect 30 0 18 0; +#X connect 31 0 30 1; +#X connect 32 0 33 1; +#X connect 33 0 28 0; +#X connect 34 0 35 0; +#X connect 36 0 34 0; +#X connect 36 0 29 0; +#X connect 38 0 30 0; +#X connect 38 0 33 0; +#X connect 39 0 41 2; +#X connect 39 0 41 3; +#X connect 39 0 41 1; +#X connect 41 0 38 0; +#X connect 42 0 7 0; +#X connect 43 0 42 0; +#X connect 44 0 21 0; +#X connect 45 0 22 0; +#X connect 46 0 23 0; +#X connect 48 0 47 0; +#X connect 49 0 51 0; +#X connect 50 0 52 0; +#X connect 51 0 50 1; +#X connect 51 1 50 0; +#X connect 52 0 47 0; diff --git a/Gem/examples/10.glsl/13.panoramique.pd b/Gem/examples/10.glsl/13.panoramique.pd new file mode 100644 index 0000000..c483a4c --- /dev/null +++ b/Gem/examples/10.glsl/13.panoramique.pd @@ -0,0 +1,525 @@ +#N canvas 189 90 1107 660 10; +#X msg 17 91 create \, 1; +#X msg 30 114 0 \, destroy; +#X obj 160 405 pix_texture; +#X obj 169 165 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 1338 29 792 790 glsl 0; +#X obj 78 339 glsl_vertex; +#X msg 32 338 print; +#X obj 78 626 glsl_program; +#X obj 163 555 pack 0 0; +#X msg 30 476 print; +#X obj 163 511 change; +#X obj 150 358 change; +#X msg 163 579 link \$1 \$2; +#X msg 32 620 print; +#X obj 77 490 glsl_fragment; +#X floatatom 163 535 2 0 0 0 ID - -; +#X floatatom 150 381 2 0 0 0 ID - -; +#X obj 181 600 print linking; +#X obj 15 21 inlet; +#X obj 78 662 outlet; +#X obj 577 95 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 647 change; +#X obj 157 668 t b; +#X obj 158 690 outlet; +#X obj 90 426 symbol; +#X obj 90 401 t b; +#X msg 287 598 0; +#X obj 15 65 t b b b; +#X msg 118 307 open panoramique.vert; +#X msg 90 453 open panoramique.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 160 182 pd glsl; +#X obj 175 245 loadbang; +#X obj 160 288 pix_image; +#X msg 174 379 rectangle 1; +#X obj 174 358 loadbang; +#X obj 160 317 pix_info 0 0 0; +#X msg 238 148 sizeX \$1; +#X msg 253 169 sizeY \$1; +#X obj 353 406 pix_texture; +#X obj 362 166 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 1338 29 792 790 glsl 0; +#X obj 78 339 glsl_vertex; +#X msg 32 338 print; +#X obj 78 626 glsl_program; +#X obj 163 555 pack 0 0; +#X msg 30 476 print; +#X obj 163 511 change; +#X obj 150 358 change; +#X msg 163 579 link \$1 \$2; +#X msg 32 620 print; +#X obj 77 490 glsl_fragment; +#X floatatom 163 535 2 0 0 0 ID - -; +#X floatatom 150 381 2 0 0 0 ID - -; +#X obj 181 600 print linking; +#X obj 15 21 inlet; +#X obj 78 662 outlet; +#X obj 577 95 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 647 change; +#X obj 157 668 t b; +#X obj 158 690 outlet; +#X obj 90 426 symbol; +#X obj 90 401 t b; +#X msg 287 598 0; +#X obj 15 65 t b b b; +#X msg 118 307 open panoramique.vert; +#X msg 90 453 open panoramique.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 353 183 pd glsl; +#X obj 368 246 loadbang; +#X obj 353 289 pix_image; +#X msg 367 378 rectangle 1; +#X obj 367 359 loadbang; +#X obj 353 318 pix_info 0 0 0; +#X msg 431 144 sizeX \$1; +#X msg 446 170 sizeY \$1; +#X obj 552 407 pix_texture; +#X obj 561 167 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 1338 29 792 790 glsl 0; +#X obj 78 339 glsl_vertex; +#X msg 32 338 print; +#X obj 78 626 glsl_program; +#X obj 163 555 pack 0 0; +#X msg 30 476 print; +#X obj 163 511 change; +#X obj 150 358 change; +#X msg 163 579 link \$1 \$2; +#X msg 32 620 print; +#X obj 77 490 glsl_fragment; +#X floatatom 163 535 2 0 0 0 ID - -; +#X floatatom 150 381 2 0 0 0 ID - -; +#X obj 181 600 print linking; +#X obj 15 21 inlet; +#X obj 78 662 outlet; +#X obj 577 95 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 647 change; +#X obj 157 668 t b; +#X obj 158 690 outlet; +#X obj 90 426 symbol; +#X obj 90 401 t b; +#X msg 287 598 0; +#X obj 15 65 t b b b; +#X msg 118 307 open panoramique.vert; +#X msg 90 453 open panoramique.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 552 184 pd glsl; +#X obj 567 247 loadbang; +#X obj 552 290 pix_image; +#X msg 566 379 rectangle 1; +#X obj 566 360 loadbang; +#X obj 552 319 pix_info 0 0 0; +#X msg 614 148 sizeX \$1; +#X msg 633 166 sizeY \$1; +#X obj 160 427 translateXYZ -3 0 0; +#X obj 352 426 translateXYZ -1 0 0; +#X obj 551 427 translateXYZ 1 0 0; +#X obj 747 408 pix_texture; +#X obj 756 168 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 1338 29 792 790 glsl 0; +#X obj 78 339 glsl_vertex; +#X msg 32 338 print; +#X obj 78 626 glsl_program; +#X obj 163 555 pack 0 0; +#X msg 30 476 print; +#X obj 163 511 change; +#X obj 150 358 change; +#X msg 163 579 link \$1 \$2; +#X msg 32 620 print; +#X obj 77 490 glsl_fragment; +#X floatatom 163 535 2 0 0 0 ID - -; +#X floatatom 150 381 2 0 0 0 ID - -; +#X obj 181 600 print linking; +#X obj 15 21 inlet; +#X obj 78 662 outlet; +#X obj 577 95 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 647 change; +#X obj 157 668 t b; +#X obj 158 690 outlet; +#X obj 90 426 symbol; +#X obj 90 401 t b; +#X msg 287 598 0; +#X obj 15 65 t b b b; +#X msg 118 307 open panoramique.vert; +#X msg 90 452 open panoramique.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 747 185 pd glsl; +#X obj 762 248 loadbang; +#X obj 747 291 pix_image; +#X msg 761 380 rectangle 1; +#X obj 761 361 loadbang; +#X obj 747 320 pix_info 0 0 0; +#X msg 825 146 sizeX \$1; +#X msg 840 172 sizeY \$1; +#X obj 746 428 translateXYZ 3 0 0; +#X floatatom 199 68 5 0 0 0 - - -; +#X msg 199 87 dZ \$1; +#X obj 17 430 s shaders; +#X obj 206 205 s init_shader; +#X obj 399 204 s init_shader; +#X obj 600 204 s init_shader; +#X obj 794 206 s init_shader; +#X obj 399 124 r shaders; +#X obj 598 126 r shaders; +#X obj 793 127 r shaders; +#X obj 160 506 rectangle 1 0.75; +#X obj 352 507 rectangle 1 0.75; +#X obj 551 508 rectangle 1 0.75; +#X obj 746 509 rectangle 1 0.75; +#X obj 160 463 translateXYZ 0 0 0; +#X obj 201 446 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 0.12 256; +#X obj 259 446 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 -0.06 256; +#X obj 352 465 translateXYZ 0 0 0; +#X obj 393 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 0 256; +#X obj 451 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 0 256; +#X obj 551 466 translateXYZ 0 0 0; +#X obj 592 449 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 -0.11 256; +#X obj 650 449 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 -0.03 256; +#X obj 746 465 translateXYZ 0 0 0; +#X obj 787 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 -0.18 256; +#X obj 845 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 -0.05 256; +#X obj 160 -30 gemhead 10; +#X obj 353 -29 gemhead 20; +#X obj 552 -28 gemhead 30; +#X obj 747 -27 gemhead 40; +#X obj 160 104 alpha; +#X obj 353 103 alpha; +#X obj 552 99 alpha; +#X obj 747 102 alpha; +#X msg 256 113 ShadeL \$1; +#X obj 199 25 r init_shader; +#X obj 256 92 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 0 256; +#X msg 447 93 ShadeL \$1; +#X obj 447 72 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 39 256; +#X msg 634 95 ShadeL \$1; +#X obj 634 74 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 35 256; +#X msg 831 93 ShadeL \$1; +#X obj 831 72 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 23 256; +#X msg 212 486 -1; +#X msg 269 485 -0.75; +#X text 163 486 invert; +#X msg 406 485 -1; +#X msg 463 484 -0.75; +#X text 357 485 invert; +#X msg 605 488 -1; +#X msg 662 487 -0.75; +#X text 556 488 invert; +#X msg 800 489 -1; +#X msg 857 488 -0.75; +#X text 751 489 invert; +#X obj 17 218 gemwin; +#X obj 37 168 loadbang; +#X obj 160 -8 scaleXYZ 4 4 1; +#X obj 353 -8 scaleXYZ 4 4 1; +#X obj 552 -4 scaleXYZ 4 4 1; +#X obj 747 -5 scaleXYZ 4 4 1; +#X text 21 548 This patch allow multiples images to be assembled in +order to dreate a panoramic image.; +#X text 20 575 A shader distord the image to correct distance distortion +\, and allow a fade between 2 images; +#X text 17 602 "dz" depend on the angles between images.; +#X text 462 579 copyright cyrille Henry and iem.; +#X text 463 596 This developement was suported by the COMEDIA project +; +#X floatatom 18 354 5 0 0 0 - - -; +#X msg 18 373 dZ \$1; +#X obj 18 311 r init_shader; +#X msg 18 333 1.62; +#X msg 199 47 1.38; +#X msg 37 192 dimen 1024 256; +#X msg 177 264 thread 0 \, open cam1.jpg; +#X msg 370 265 thread 0 \, open cam2.jpg; +#X msg 569 266 thread 0 \, open cam3.jpg; +#X msg 764 267 thread 0 \, open cam4.jpg; +#X connect 0 0 101 0; +#X connect 1 0 101 0; +#X connect 2 0 32 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 4 1 49 0; +#X connect 4 1 82 0; +#X connect 5 0 118 0; +#X connect 6 0 9 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 9 0 2 0; +#X connect 9 1 10 0; +#X connect 9 2 11 0; +#X connect 10 0 4 1; +#X connect 11 0 4 1; +#X connect 12 0 33 0; +#X connect 13 0 14 0; +#X connect 14 0 16 0; +#X connect 14 1 50 0; +#X connect 14 1 84 0; +#X connect 15 0 119 0; +#X connect 16 0 19 0; +#X connect 17 0 12 0; +#X connect 18 0 17 0; +#X connect 19 0 12 0; +#X connect 19 1 20 0; +#X connect 19 2 21 0; +#X connect 20 0 14 1; +#X connect 21 0 14 1; +#X connect 22 0 34 0; +#X connect 23 0 24 0; +#X connect 24 0 26 0; +#X connect 24 1 51 0; +#X connect 24 1 86 0; +#X connect 25 0 120 0; +#X connect 26 0 29 0; +#X connect 27 0 22 0; +#X connect 28 0 27 0; +#X connect 29 0 22 0; +#X connect 29 1 30 0; +#X connect 29 2 31 0; +#X connect 30 0 24 1; +#X connect 31 0 24 1; +#X connect 32 0 60 0; +#X connect 33 0 63 0; +#X connect 34 0 66 0; +#X connect 35 0 45 0; +#X connect 36 0 37 0; +#X connect 37 0 39 0; +#X connect 37 1 52 0; +#X connect 37 1 88 0; +#X connect 38 0 121 0; +#X connect 39 0 42 0; +#X connect 40 0 35 0; +#X connect 41 0 40 0; +#X connect 42 0 35 0; +#X connect 42 1 43 0; +#X connect 42 2 44 0; +#X connect 43 0 37 1; +#X connect 44 0 37 1; +#X connect 45 0 69 0; +#X connect 46 0 47 0; +#X connect 47 0 4 1; +#X connect 53 0 14 1; +#X connect 54 0 24 1; +#X connect 55 0 37 1; +#X connect 60 0 56 0; +#X connect 61 0 60 1; +#X connect 62 0 60 2; +#X connect 63 0 57 0; +#X connect 64 0 63 1; +#X connect 65 0 63 2; +#X connect 66 0 58 0; +#X connect 67 0 66 1; +#X connect 68 0 66 2; +#X connect 69 0 59 0; +#X connect 70 0 69 1; +#X connect 71 0 69 2; +#X connect 72 0 103 0; +#X connect 73 0 104 0; +#X connect 74 0 105 0; +#X connect 75 0 106 0; +#X connect 76 0 4 0; +#X connect 77 0 14 0; +#X connect 78 0 24 0; +#X connect 79 0 37 0; +#X connect 80 0 4 1; +#X connect 81 0 116 0; +#X connect 82 0 80 0; +#X connect 83 0 14 1; +#X connect 84 0 83 0; +#X connect 85 0 24 1; +#X connect 86 0 85 0; +#X connect 87 0 37 1; +#X connect 88 0 87 0; +#X connect 89 0 56 1; +#X connect 90 0 56 2; +#X connect 92 0 57 1; +#X connect 93 0 57 2; +#X connect 95 0 58 1; +#X connect 96 0 58 2; +#X connect 98 0 59 1; +#X connect 99 0 59 2; +#X connect 102 0 117 0; +#X connect 103 0 76 0; +#X connect 104 0 77 0; +#X connect 105 0 78 0; +#X connect 106 0 79 0; +#X connect 112 0 113 0; +#X connect 113 0 48 0; +#X connect 114 0 115 0; +#X connect 115 0 112 0; +#X connect 116 0 46 0; +#X connect 117 0 101 0; +#X connect 118 0 6 0; +#X connect 119 0 16 0; +#X connect 120 0 26 0; +#X connect 121 0 39 0; diff --git a/Gem/examples/10.glsl/14.blur.pd b/Gem/examples/10.glsl/14.blur.pd new file mode 100644 index 0000000..ed1c099 --- /dev/null +++ b/Gem/examples/10.glsl/14.blur.pd @@ -0,0 +1,177 @@ +#N canvas 481 142 778 497 10; +#X obj 16 74 gemhead; +#X obj 16 130 gemframebuffer; +#X obj 129 13 loadbang; +#X obj 16 185 translateXYZ 0 0 -4; +#X obj 14 283 cnv 15 125 200 empty empty empty 20 12 0 14 -228856 -66577 +0; +#X floatatom 82 334 5 0 0 0 - - -; +#X obj 16 362 rotateXYZ 30 30 0; +#X obj 16 385 colorRGB 1 0 1; +#X obj 16 408 teapot 1.5; +#N canvas 385 358 230 231 shunt 0; +#X obj 171 17 inlet; +#X obj 72 67 * -1; +#X obj 72 91 + 1; +#X obj 27 17 inlet; +#X obj 27 200 outlet; +#X obj 126 197 outlet; +#X obj 27 117 spigot 1; +#X obj 126 115 spigot 0; +#X connect 0 0 1 0; +#X connect 0 0 7 1; +#X connect 1 0 2 0; +#X connect 2 0 6 1; +#X connect 3 0 6 0; +#X connect 3 0 7 0; +#X connect 6 0 4 0; +#X connect 7 0 5 0; +#X restore 16 223 pd shunt; +#X obj 81 224 tgl 15 0 empty empty empty 17 7 0 10 -257985 -1 -1 0 +1; +#X obj 162 283 cnv 15 125 200 empty empty empty 20 12 0 14 -228856 +-66577 0; +#X obj 169 385 colorRGB 1 1 0; +#X text 76 286 Scene A; +#X text 223 287 Scene B; +#X text 105 223 Scene A / Scene B; +#X obj 169 360 rotateXYZ 0 0 45; +#X obj 169 463 square 2.8; +#X floatatom 197 409 5 0 0 0 - - -; +#X obj 169 429 translateXYZ; +#X obj 129 54 s to_fb; +#X obj 30 103 r to_fb; +#X msg 129 34 dimen 500 500 \, rectangle 0; +#X obj 327 379 pix_texture; +#X obj 327 399 square 4; +#X msg 344 358 quality 1 \, rectangle 0; +#X obj 344 337 loadbang; +#X obj 327 309 gemhead 99; +#N canvas 1070 136 503 739 14_pass_blur 0; +#X obj 87 102 inlet; +#X obj 87 527 outlet; +#X obj 87 173 single_blur 76 0 64; +#X obj 87 263 single_blur 80 0 16; +#X obj 87 284 single_blur 81 16 0; +#X obj 87 305 single_blur 82 0 8; +#X obj 87 326 single_blur 83 8 0; +#X obj 87 347 single_blur 84 0 4; +#X obj 87 368 single_blur 85 4 0; +#X obj 87 389 single_blur 86 0 2; +#X obj 87 410 single_blur 87 2 0; +#X obj 87 430 single_blur 88 0 1; +#X obj 87 451 single_blur 89 1 0; +#X obj 87 236 single_blur 79 32 0; +#X obj 87 215 single_blur 78 0 32; +#X obj 87 194 single_blur 77 64 0; +#X connect 0 0 2 0; +#X connect 2 0 15 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 1 0; +#X connect 13 0 3 0; +#X connect 14 0 13 0; +#X connect 15 0 14 0; +#X restore 114 149 pd 14_pass_blur; +#X obj 557 245 pack f f; +#X obj 557 264 s motion_blur; +#X obj 575 205 cos; +#X obj 557 151 / 500; +#X obj 557 171 t f f; +#X obj 610 226 *; +#X obj 628 205 sin; +#X floatatom 596 129 5 0 6.28 0 - - -; +#X obj 596 150 t b f; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 850 451 Gem.init 0; +#X obj 59 46 loadbang; +#X obj 119 130 outlet; +#X msg 118 81 reset \, dimen 500 500 \, lighting 1 \, title blur \, +frame 20 \,; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 289 80 pd Gem.init; +#X obj 75 217 world_light; +#X obj 75 194 gemhead 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 10 0 9 0; +#X restore 17 32 pd gemwin; +#X msg 17 8 create; +#X obj 383 89 cnv 15 150 25 empty empty empty 20 12 0 14 -257985 -66577 +0; +#X obj 392 95 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X obj 389 140 s blur; +#X obj 389 115 / 500; +#X text 389 69 blur; +#X obj 551 91 cnv 15 150 25 empty empty empty 20 12 0 14 -257985 -66577 +0; +#X obj 560 97 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X text 556 67 motion blur; +#X obj 557 226 * 1; +#X text 640 129 angle (radian); +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 1 1 28 0; +#X connect 2 0 22 0; +#X connect 3 0 9 0; +#X connect 5 0 6 2; +#X connect 5 0 6 1; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 9 0 6 0; +#X connect 9 1 16 0; +#X connect 10 0 9 1; +#X connect 12 0 19 0; +#X connect 16 0 12 0; +#X connect 18 0 19 1; +#X connect 19 0 17 0; +#X connect 21 0 1 0; +#X connect 22 0 20 0; +#X connect 23 0 24 0; +#X connect 25 0 23 0; +#X connect 26 0 25 0; +#X connect 27 0 23 0; +#X connect 28 0 23 1; +#X connect 29 0 30 0; +#X connect 31 0 48 1; +#X connect 32 0 33 0; +#X connect 33 0 48 0; +#X connect 33 1 34 0; +#X connect 34 0 29 1; +#X connect 35 0 34 1; +#X connect 36 0 37 0; +#X connect 37 0 32 0; +#X connect 37 1 35 0; +#X connect 37 1 31 0; +#X connect 38 0 39 0; +#X connect 39 0 38 0; +#X connect 41 0 43 0; +#X connect 43 0 42 0; +#X connect 46 0 32 0; +#X connect 48 0 29 0; diff --git a/Gem/examples/10.glsl/15.bicubic_image_interpolation.pd b/Gem/examples/10.glsl/15.bicubic_image_interpolation.pd new file mode 100644 index 0000000..e1ae128 --- /dev/null +++ b/Gem/examples/10.glsl/15.bicubic_image_interpolation.pd @@ -0,0 +1,63 @@ +#N canvas 722 145 681 529 10; +#X obj 232 189 gemhead; +#X obj 232 356 pix_noise 5 5; +#X obj 232 446 pix_texture; +#X obj 232 465 square 4; +#X msg 240 403 rectangle 1; +#X obj 240 382 loadbang; +#X obj 242 222 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X floatatom 250 272 5 0 0 0 - - -; +#X obj 35 196 gemwin; +#X msg 250 334 set \$1 \$2; +#X obj 250 314 pack f f; +#X obj 303 288 t b f; +#X floatatom 303 271 5 0 0 0 - - -; +#X msg 35 151 create \, 1; +#X msg 42 173 0 \, destroy; +#X obj 232 243 _glsl bicubic_interpolation; +#X obj 436 191 gemhead; +#X msg 358 408 quality \$1; +#X obj 358 389 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 33 246 vradio 15 1 1 3 empty empty empty 0 -8 0 10 -262144 -1 +-1 0; +#X text 53 246 bicubic interpolation; +#X text 53 264 bilinear interpolation; +#X text 55 276 no interpolation; +#X obj 33 304 s sel_interpolation; +#X obj 232 169 == 0; +#X obj 232 149 r sel_interpolation; +#X obj 436 152 r sel_interpolation; +#X obj 436 172 != 0; +#X obj 358 369 != 2; +#X obj 358 349 r sel_interpolation; +#X text 46 16 This example use shader in order to compute a bicubic +image interpolation. Bicubic interpolation offer a smoother surface +than obtain with bilinear interpolation. But since it need 16 sample +to compute the interpolation \, it is quite slow.; +#X connect 0 0 15 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; +#X connect 6 0 15 0; +#X connect 7 0 10 0; +#X connect 9 0 1 0; +#X connect 10 0 9 0; +#X connect 11 0 10 0; +#X connect 11 1 10 1; +#X connect 12 0 11 0; +#X connect 13 0 8 0; +#X connect 14 0 8 0; +#X connect 15 0 1 0; +#X connect 16 0 1 0; +#X connect 17 0 2 0; +#X connect 18 0 17 0; +#X connect 19 0 23 0; +#X connect 24 0 0 0; +#X connect 25 0 24 0; +#X connect 26 0 27 0; +#X connect 27 0 16 0; +#X connect 28 0 18 0; +#X connect 29 0 28 0; diff --git a/Gem/examples/10.glsl/GLSL_mix.frag b/Gem/examples/10.glsl/GLSL_mix.frag new file mode 100644 index 0000000..ce47bf8 --- /dev/null +++ b/Gem/examples/10.glsl/GLSL_mix.frag @@ -0,0 +1,35 @@ +//jack/RYBN 2010 +#extension GL_EXT_gpu_shader4 : enable +#extension GL_ARB_texture_rectangle : enable +uniform sampler2DRect Ttex1; +uniform sampler2DRect Ttex2; +uniform sampler2DRect tex0; +uniform float style; +uniform float mix_factor; +varying vec2 texcoord0; +ivec2 size1 = textureSize2DRect(Ttex1, 0); +ivec2 size2 = textureSize2DRect(Ttex2, 0); +ivec2 size0 = textureSize2DRect(tex0, 0); + +void main (void) +{ + float sizeF1X = float(size1.x)/float(size0.x); + float sizeF1Y = float(size1.y)/float(size0.y); + float sizeF2X = float(size2.x)/float(size0.x); + float sizeF2Y = float(size2.y)/float(size0.y); + vec4 color1 = texture2DRect(Ttex1, vec2(texcoord0.s*sizeF1X,texcoord0.t*sizeF1Y)); + vec4 color2 = texture2DRect(Ttex2, vec2(texcoord0.s*sizeF2X,texcoord0.t*sizeF2Y)); + if (style == 0.) { + gl_FragColor = (color1 + color2); + } else if (style == 1.) { + gl_FragColor = (color1 - color2); + } else if (style == 2.) { + gl_FragColor = abs(color1 - color2); + } else if (style == 3.) { + gl_FragColor = (color1 * color2); + } else if (style == 4.) { + gl_FragColor = mix(color1,color2,mix_factor); + } + +} + diff --git a/Gem/examples/10.glsl/GLSL_mix.vert b/Gem/examples/10.glsl/GLSL_mix.vert new file mode 100644 index 0000000..a69a61f --- /dev/null +++ b/Gem/examples/10.glsl/GLSL_mix.vert @@ -0,0 +1,9 @@ +//jack/RYBN 2010 +varying vec2 texcoord0; + +void main() +{ + texcoord0 = (gl_TextureMatrix[0]*gl_MultiTexCoord0).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/P_distord.frag b/Gem/examples/10.glsl/P_distord.frag new file mode 100644 index 0000000..5460d6c --- /dev/null +++ b/Gem/examples/10.glsl/P_distord.frag @@ -0,0 +1,19 @@ +// Cyrille Henry 2007 + +uniform sampler2D tex0; + +void main() +{ + vec2 C = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; + gl_FragColor = texture2D(tex0, C ) ; +} + + + + + + + + + + diff --git a/Gem/examples/10.glsl/P_distord.vert b/Gem/examples/10.glsl/P_distord.vert new file mode 100644 index 0000000..f0db5f3 --- /dev/null +++ b/Gem/examples/10.glsl/P_distord.vert @@ -0,0 +1,21 @@ +// Cyrille Henry 2007 + +uniform float K; +uniform sampler2D tex0; + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + + float xs1 = sin((1.2 + gl_TexCoord[0].s)*(2.3+gl_TexCoord[0].t)); + float xs2 = sin(xs1*533.); + float xs3 = K * sin(xs2*1013.); + + float ys1 = sin((2.1 + gl_TexCoord[0].s)*(3.2+gl_TexCoord[0].t)); + float ys2 = sin(ys1*5313.); + float ys3 = K * sin(ys2*10113.); + + gl_Position = gl_ModelViewProjectionMatrix * (gl_Vertex + vec4(xs3,ys3,0.,0.)); + +} + diff --git a/Gem/examples/10.glsl/T_distord.frag b/Gem/examples/10.glsl/T_distord.frag new file mode 100644 index 0000000..385f427 --- /dev/null +++ b/Gem/examples/10.glsl/T_distord.frag @@ -0,0 +1,31 @@ +// Cyrille Henry 2007 + +uniform float K1, seed; +uniform sampler2D tex0; + +void main() +{ + + vec2 C = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; + + float xs1 = sin(gl_TexCoord[0].s*gl_TexCoord[0].t/(abs(seed)+1.)); + float xs2 = sin(xs1*533.); + float xs3 = sin(xs2*1013.); + + float ys1 = sin(gl_TexCoord[0].s*gl_TexCoord[0].t/(abs(seed)+1.)); + float ys2 = sin(ys1*5313.); + float ys3 = sin(ys2*10113.); + + gl_FragColor = texture2D(tex0, C + K1 * 0.01 *vec2(xs3,ys3)) ; + +} + + + + + + + + + + diff --git a/Gem/examples/10.glsl/T_distord.vert b/Gem/examples/10.glsl/T_distord.vert new file mode 100644 index 0000000..1143615 --- /dev/null +++ b/Gem/examples/10.glsl/T_distord.vert @@ -0,0 +1,9 @@ +// Cyrille Henry 2007 + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = ftransform(); + +} + diff --git a/Gem/examples/10.glsl/_glsl.pd b/Gem/examples/10.glsl/_glsl.pd new file mode 100644 index 0000000..de6228c --- /dev/null +++ b/Gem/examples/10.glsl/_glsl.pd @@ -0,0 +1,73 @@ +#N canvas 652 79 668 661 10; +#X obj 78 339 glsl_vertex; +#X msg 32 338 print; +#X obj 78 626 glsl_program; +#X obj 163 555 pack 0 0; +#X msg 30 476 print; +#X obj 163 511 change; +#X obj 150 358 change; +#X msg 163 579 link \$1 \$2; +#X msg 32 620 print; +#X obj 77 490 glsl_fragment; +#X floatatom 163 535 2 0 0 0 ID - -; +#X floatatom 150 381 2 0 0 0 ID - -; +#X obj 181 600 print linking; +#X obj 15 21 inlet; +#X obj 78 662 outlet; +#X msg 106 309 open \$1.vert; +#X msg 90 453 open \$1.frag; +#X obj 577 95 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 647 change; +#X obj 157 668 t b; +#X obj 158 690 outlet; +#X obj 140 224 t a a; +#X obj 90 426 symbol; +#X obj 90 401 t b; +#X msg 287 598 0; +#X obj 15 65 t b b b; +#X obj 140 199 symbol \$1; +#X text 270 193 This abstraction can be usefull to load shader. Shader +location is relative to this abstraction path.; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 23 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 28 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 18 0; +#X connect 15 0 0 0; +#X connect 16 0 9 0; +#X connect 17 0 2 0; +#X connect 18 0 30 0; +#X connect 18 1 0 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 22 0 31 0; +#X connect 23 0 24 0; +#X connect 24 0 25 0; +#X connect 26 0 15 0; +#X connect 26 1 27 1; +#X connect 27 0 16 0; +#X connect 28 0 27 0; +#X connect 29 0 23 0; +#X connect 30 0 29 0; +#X connect 30 1 10 0; +#X connect 30 2 31 0; +#X connect 31 0 26 0; diff --git a/Gem/examples/10.glsl/bicubic_interpolation.frag b/Gem/examples/10.glsl/bicubic_interpolation.frag new file mode 100644 index 0000000..9482bc6 --- /dev/null +++ b/Gem/examples/10.glsl/bicubic_interpolation.frag @@ -0,0 +1,90 @@ +// Cyrille Henry 2007 + +#extension GL_ARB_texture_rectangle : enable +uniform sampler2DRect texture; + +void main (void) +{ + vec2 coordinate = (gl_TextureMatrix[0] * gl_TexCoord[0]).st-vec2(0.5,0.5); + + vec2 coord = floor(coordinate)+vec2(0.5,0.5); + vec2 interpol = fract(coordinate); + vec2 interpol2 = interpol * interpol; + vec2 interpol3 = interpol2 * interpol; + + vec4 C00 = texture2DRect(texture, coord + vec2(-1,-1) ); + vec4 C10 = texture2DRect(texture, coord + vec2( 0,-1) ); + vec4 C20 = texture2DRect(texture, coord + vec2( 1,-1) ); + vec4 C30 = texture2DRect(texture, coord + vec2( 2,-1) ); + vec4 C01 = texture2DRect(texture, coord + vec2(-1, 0) ); + vec4 C11 = texture2DRect(texture, coord ); + vec4 C21 = texture2DRect(texture, coord + vec2( 1, 0) ); + vec4 C31 = texture2DRect(texture, coord + vec2( 2, 0) ); + vec4 C02 = texture2DRect(texture, coord + vec2(-1, 1) ); + vec4 C12 = texture2DRect(texture, coord + vec2( 0, 1) ); + vec4 C22 = texture2DRect(texture, coord + vec2( 1, 1) ); + vec4 C32 = texture2DRect(texture, coord + vec2( 2, 1) ); + vec4 C03 = texture2DRect(texture, coord + vec2(-1, 2) ); + vec4 C13 = texture2DRect(texture, coord + vec2( 0, 2) ); + vec4 C23 = texture2DRect(texture, coord + vec2( 1, 2) ); + vec4 C33 = texture2DRect(texture, coord + vec2( 2, 2) ); + + vec4 w0 = C11; + vec4 w1 = C21; + vec4 w2 = C12; + vec4 w3 = C22; + // x derivative + vec4 x0 = (C21 - C01) / 2.; + vec4 x1 = (C31 - C11) / 2.; + vec4 x2 = (C22 - C02) / 2.; + vec4 x3 = (C32 - C12) / 2.; + // y derivative + vec4 y0 = (C12 - C10) / 2.; + vec4 y1 = (C22 - C20) / 2.; + vec4 y2 = (C13 - C11) / 2.; + vec4 y3 = (C23 - C21) / 2.; + // xy derivative + vec4 z0 = (C22 - C00) / 2.; + vec4 z1 = (C32 - C10) / 2.; + vec4 z2 = (C23 - C01) / 2.; + vec4 z3 = (C33 - C11) / 2.; + + + + vec4 a00 = w0; + vec4 a01 = y0; + vec4 a02 = -3.*w0 + 3.*w2 -2.*y0 - y2; + vec4 a03 = 2.*w0 - 2.*w2 + y0 + y2; + vec4 a10 = x0; + vec4 a11 = z0; + vec4 a12 = -3.*x0 + 3.*x2 - 2.*z0 - z2; + vec4 a13 = 2.*x0 - 2.*x2 + z0 + z2; + vec4 a20 = -3.*w0 + 3.*w1 - 2.*x0 - x1; + vec4 a21 = -3.*y0 + 3.*y1 - 2.*z0 - z1; + vec4 a22 = 9.*w0 - 9.*w1 - 9.*w2 + 9.*w3 + 6.*x0 + 3.*x1 + -6.*x2 - 3.*x3 + 6.*y0 - 6.*y1 + 3.*y2 - 3.*y3 + 4.*z0 + 2.*z1 + 2.*z2 + z3; + vec4 a23 = -6.*w0 + 6.*w1 + 6.*w2 - 6.*w3 -4.*x0 - 2.*x1 + 4.*x2 + 2.*x3 -3.*y0 + 3.*y1 - 3.*y2 + 3.*y3 + -2.*z0 - z1 - 2.*z2 - z3; + vec4 a30 = 2.*w0 - 2.*w1 + x0 + x1; + vec4 a31 = 2.*y0 - 2.*y1 + z0 + z1; + vec4 a32 = -6.*w0 + 6.*w1 + 6.*w2 -6.*w3 -3.*x0 - 3.*x1 + 3.*x2 + 3.*x3 -4.*y0 + 4.*y1 - 2.*y2 + 2.*y3 + -2.*z0 - 2.*z1 - z2 - z3; + vec4 a33 = 4.*w0 - 4.*w1 - 4.*w2 + 4.*w3 + 2.*x0 + 2.*x1 + -2.*x2 - 2.*x3 + 2.*y0 - 2.*y1 + 2.*y2 - 2.*y3 + z0 + z1 + z2 + z3; + + + vec4 color = a00; + color += a01 * interpol.y; + color += a02 * interpol2.y; + color += a03 * interpol3.y; + color += a10 * interpol.x; + color += a11 * interpol.x * interpol.y; + color += a12 * interpol.x * interpol2.y; + color += a13 * interpol.x * interpol3.y; + color += a20 * interpol2.x; + color += a21 * interpol2.x * interpol.y; + color += a22 * interpol2.x * interpol2.y; + color += a23 * interpol2.x * interpol3.y; + color += a30 * interpol3.x; + color += a31 * interpol3.x * interpol.y; + color += a32 * interpol3.x * interpol2.y; + color += a33 * interpol3.x * interpol3.y; + + gl_FragColor = color; +} diff --git a/Gem/examples/10.glsl/bicubic_interpolation.vert b/Gem/examples/10.glsl/bicubic_interpolation.vert new file mode 100644 index 0000000..c890bd7 --- /dev/null +++ b/Gem/examples/10.glsl/bicubic_interpolation.vert @@ -0,0 +1,8 @@ +// Cyrille Henry 2007 + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/blur.frag b/Gem/examples/10.glsl/blur.frag new file mode 100644 index 0000000..f54e03a --- /dev/null +++ b/Gem/examples/10.glsl/blur.frag @@ -0,0 +1,18 @@ +uniform sampler2D tex0; +uniform vec2 distance; +uniform vec2 TX; + +void main (void) +{ + + vec2 texcoord = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; + vec4 sample = 0.5 * texture2D(tex0, texcoord - distance); + sample += texture2D(tex0, texcoord); + sample += 0.5 * texture2D(tex0, texcoord + distance); + + sample /= 2.; + + gl_FragColor = sample; +} + + diff --git a/Gem/examples/10.glsl/blur.vert b/Gem/examples/10.glsl/blur.vert new file mode 100644 index 0000000..0254682 --- /dev/null +++ b/Gem/examples/10.glsl/blur.vert @@ -0,0 +1,9 @@ +varying vec2 texcoord0; +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + + // perform standard transform on vertex + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/cam1.jpg b/Gem/examples/10.glsl/cam1.jpg new file mode 100644 index 0000000..c5023ba Binary files /dev/null and b/Gem/examples/10.glsl/cam1.jpg differ diff --git a/Gem/examples/10.glsl/cam2.jpg b/Gem/examples/10.glsl/cam2.jpg new file mode 100644 index 0000000..dd7ab0b Binary files /dev/null and b/Gem/examples/10.glsl/cam2.jpg differ diff --git a/Gem/examples/10.glsl/cam3.jpg b/Gem/examples/10.glsl/cam3.jpg new file mode 100644 index 0000000..76b6898 Binary files /dev/null and b/Gem/examples/10.glsl/cam3.jpg differ diff --git a/Gem/examples/10.glsl/cam4.jpg b/Gem/examples/10.glsl/cam4.jpg new file mode 100644 index 0000000..8d2c096 Binary files /dev/null and b/Gem/examples/10.glsl/cam4.jpg differ diff --git a/Gem/examples/10.glsl/fetching.frag b/Gem/examples/10.glsl/fetching.frag new file mode 100644 index 0000000..3d1af1f --- /dev/null +++ b/Gem/examples/10.glsl/fetching.frag @@ -0,0 +1,8 @@ +varying vec4 C; + +void main (void) +{ + gl_FragColor = C; +} + + diff --git a/Gem/examples/10.glsl/fetching.vert b/Gem/examples/10.glsl/fetching.vert new file mode 100644 index 0000000..b41cc16 --- /dev/null +++ b/Gem/examples/10.glsl/fetching.vert @@ -0,0 +1,15 @@ +uniform sampler2D MyTex; +varying vec4 C; +void main() +{ + vec4 v = vec4(gl_Vertex); + vec4 color = texture2D(MyTex, (gl_TextureMatrix[0] * gl_MultiTexCoord0).st); + v.z = color.r; +// v.x += (color.b-0.5)/2.; +// v.y += (color.g-0.5)/2.; + + C=color; + gl_Position = gl_ModelViewProjectionMatrix * v; + +} + diff --git a/Gem/examples/10.glsl/fetching2.frag b/Gem/examples/10.glsl/fetching2.frag new file mode 100644 index 0000000..1b576a5 --- /dev/null +++ b/Gem/examples/10.glsl/fetching2.frag @@ -0,0 +1,56 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture; +uniform float K2, K; + +vec2 pos_(vec2 V, float x, float y) +{ + V += vec2(x,y); + return(max(min(V,vec2(91.,63.)),vec2(0.))); +} + + +void main (void) +{ + vec2 pos = gl_TexCoord[0].st * vec2(90.,62.)/256. ; + + vec4 color1 = texture2DRect(texture,pos_(pos,-1./256.,-1./256.)); + vec4 color2 = texture2DRect(texture,pos_(pos, 0./256.,-1./256.)); + vec4 color3 = texture2DRect(texture,pos_(pos, 1./256.,-1./256.)); + vec4 color4 = texture2DRect(texture,pos_(pos,-1./256., 0./256.)); + vec4 color5 = texture2DRect(texture,pos_(pos, 0./256., 0./256.)); + vec4 color6 = texture2DRect(texture,pos_(pos, 1./256., 0./256.)); + vec4 color7 = texture2DRect(texture,pos_(pos,-1./256., 1./256.)); + vec4 color8 = texture2DRect(texture,pos_(pos, 0./256., 1./256.)); + vec4 color9 = texture2DRect(texture,pos_(pos, 1./256., 1./256.)); + + vec4 colorBG = color1 + color2 + color4 + color5; + vec4 colorBD = color3 + color2 + color6 + color5; + vec4 colorHG = color4 + color5 + color7 + color8; + vec4 colorHD = color5 + color6 + color8 + color9; + + vec2 fract_pos = (fract(pos)); + + vec4 XB = mix(colorBG,colorBD,fract_pos.x); + vec4 XH = mix(colorHG,colorHD,fract_pos.x); + vec4 X = mix(XB,XH,fract_pos.y) / 4.; + + X -= vec4(0.5); + X.xyz = normalize(X.xyz); + + if(gl_FrontFacing) + {X *= -1.;} + + float tmp = dot(X.xyz,normalize(vec3(0.,1.,1.))); + tmp = -tmp; + tmp = max(0.,tmp) + 0.3 * min(0.,tmp); + + tmp = 0.1 + 0.9 * tmp; + vec4 color = tmp * vec4(1,0.95,0.9,1); + color.a = smoothstep(0.75,1.,pos.x); + gl_FragColor = color; + +} + + diff --git a/Gem/examples/10.glsl/fetching2.vert b/Gem/examples/10.glsl/fetching2.vert new file mode 100644 index 0000000..01fbf0a --- /dev/null +++ b/Gem/examples/10.glsl/fetching2.vert @@ -0,0 +1,21 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect MyTex; +uniform float K; + +void main() +{ + vec4 v = vec4(gl_Vertex); + vec4 color = texture2DRect(MyTex, gl_MultiTexCoord0.st * vec2(91./128.,63./128.)); + + gl_TexCoord[0] = gl_MultiTexCoord0; + + v.x = color.r -0.5; + v.y = color.g -0.5; + v.z = color.b -0.5; + + gl_Position = gl_ModelViewProjectionMatrix * v; + +} + diff --git a/Gem/examples/10.glsl/game.frag b/Gem/examples/10.glsl/game.frag new file mode 100644 index 0000000..9b5800d --- /dev/null +++ b/Gem/examples/10.glsl/game.frag @@ -0,0 +1,30 @@ +// Cyrille Henry 2007 + +uniform sampler2D texture; + +const float dx = 1./500.; // change to gemwin dim + +void main (void) +{ + vec2 tmp = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; + + float x = tmp.s; + float y = tmp.t; + + vec4 c; + c = texture2D(texture, vec2(x-dx, y-dx)); + c += texture2D(texture, vec2(x, y-dx)); + c += texture2D(texture, vec2(x+dx, y-dx)); + c += texture2D(texture, vec2(x-dx, y)); + c += texture2D(texture, vec2(x+dx, y)); + c += texture2D(texture, vec2(x-dx, y+dx)); + c += texture2D(texture, vec2(x, y+dx)); + c += texture2D(texture, vec2(x+dx, y+dx)); + + vec4 c1 = texture2D(texture, vec2(x, y)); + + c.rgb = vec3(step(2.5-c1.r,c.r)*step(c.r,3.5)); + c.a = 1.; + + gl_FragColor = c; +} diff --git a/Gem/examples/10.glsl/game.vert b/Gem/examples/10.glsl/game.vert new file mode 100644 index 0000000..64eb4f4 --- /dev/null +++ b/Gem/examples/10.glsl/game.vert @@ -0,0 +1,14 @@ +// Cyrille Henry 2007 + +uniform float K1; +uniform float K2; +uniform float K3; + +uniform vec2 offset; + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = ftransform(); +} + diff --git a/Gem/examples/10.glsl/geo.frag b/Gem/examples/10.glsl/geo.frag new file mode 100644 index 0000000..7ec0b43 --- /dev/null +++ b/Gem/examples/10.glsl/geo.frag @@ -0,0 +1,8 @@ +void main() +{ + vec4 tmp = gl_Color; + tmp.a /= 10.; + gl_FragColor = tmp; + // set color but alpha is 20 time less +} + diff --git a/Gem/examples/10.glsl/geo.geom b/Gem/examples/10.glsl/geo.geom new file mode 100644 index 0000000..3271c6f --- /dev/null +++ b/Gem/examples/10.glsl/geo.geom @@ -0,0 +1,28 @@ +#version 120 +#extension GL_EXT_geometry_shader4: enable + +void main(void) +{ + //increment variable + int i,j; + float rnd1,rnd2; + rnd1 = 0.0216767863321334264; // seed + rnd2 = 0.0475785688678678345; + for(j=0; j< 40; j++) + { + rnd1 = fract(124.321345312123465*rnd1) -0.5; // easy way to generated pseudo random number + rnd2 = fract(5234.43532345435245*rnd2) -0.5; + + //draw 40 time the same geometry, but with small shift in it's position + for(i=0; i< gl_VerticesIn; i++) + { + gl_FrontColor = gl_FrontColorIn[i]; + gl_TexCoord[0] = gl_TexCoordIn[i][0]; + gl_Position = gl_PositionIn[i]; // get position of the original point + gl_Position.xy += vec2(rnd1,rnd2)/3.; // add small random + // the geometry as already been transform in 2d, so we jut have to move it in X and Y + EmitVertex(); + } + EndPrimitive(); + } +} diff --git a/Gem/examples/10.glsl/geo.vert b/Gem/examples/10.glsl/geo.vert new file mode 100644 index 0000000..4359aa3 --- /dev/null +++ b/Gem/examples/10.glsl/geo.vert @@ -0,0 +1,7 @@ +void main() +{ + gl_FrontColor = gl_Color; + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = ftransform(); + //simple passthrow +} diff --git a/Gem/examples/10.glsl/img1.jpg b/Gem/examples/10.glsl/img1.jpg new file mode 100644 index 0000000..8e17c8b Binary files /dev/null and b/Gem/examples/10.glsl/img1.jpg differ diff --git a/Gem/examples/10.glsl/img2.jpg b/Gem/examples/10.glsl/img2.jpg new file mode 100644 index 0000000..5934461 Binary files /dev/null and b/Gem/examples/10.glsl/img2.jpg differ diff --git a/Gem/examples/10.glsl/img3.jpg b/Gem/examples/10.glsl/img3.jpg new file mode 100644 index 0000000..edfaf1e Binary files /dev/null and b/Gem/examples/10.glsl/img3.jpg differ diff --git a/Gem/examples/10.glsl/interpol.frag b/Gem/examples/10.glsl/interpol.frag new file mode 100644 index 0000000..a3c2c08 --- /dev/null +++ b/Gem/examples/10.glsl/interpol.frag @@ -0,0 +1,13 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture_mass; +uniform float init; + +void main (void) +{ + vec2 coord = gl_TexCoord[0].st/2.; + vec4 pos = texture2DRect(texture_mass, coord); + + gl_FragColor = pos; +} diff --git a/Gem/examples/10.glsl/link.frag b/Gem/examples/10.glsl/link.frag new file mode 100644 index 0000000..053cd5e --- /dev/null +++ b/Gem/examples/10.glsl/link.frag @@ -0,0 +1,164 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture_mass, texture_mass_old, texture_normal; +uniform float init, gravite; +uniform vec2 wind; +uniform float D; +uniform float K1; // rigiditée liaison +uniform float W,f,N; // amplitude du Wind et frequence; Noise +uniform float t; //temps + +varying vec2 coord; + +vec2 test1(vec2 V) +{ +// return(max(min(V,vec2(64.)),vec2(0.))); + return(V); +} + +void main (void) +{ + vec4 force = vec4(0,1.,0.,1.); + + if ( (coord.x < 92.) && (coord.y < 64.) ) + { + vec3 dist; + float taille; + + vec4 pos = texture2DRect(texture_mass, coord );// -vec4(0.5); + vec4 pos_old = texture2DRect(texture_mass_old,coord );// -vec4(0.5); + vec4 posG = texture2DRect(texture_mass, (coord+vec2(-1., 0.)));// -vec4(0.5); + vec4 posD = texture2DRect(texture_mass, (coord+vec2( 1., 0.)));// -vec4(0.5); + vec4 posH = texture2DRect(texture_mass, (coord+vec2( 0., 1.)));// -vec4(0.5); + vec4 posB = texture2DRect(texture_mass, (coord+vec2( 0.,-1.)));// -vec4(0.5); + vec4 posHD = texture2DRect(texture_mass, (coord+vec2( 1.,-1.)));// -vec4(0.5); + vec4 posBG = texture2DRect(texture_mass, (coord+vec2(-1., 1.)));// -vec4(0.5); + vec4 posHG = texture2DRect(texture_mass, (coord+vec2( 1., 1.)));// -vec4(0.5); + vec4 posBD = texture2DRect(texture_mass, (coord+vec2(-1.,-1.)));// -vec4(0.5); + vec4 pos2G = texture2DRect(texture_mass, (coord+vec2(-2., 0.)));// -vec4(0.5); + vec4 pos2D = texture2DRect(texture_mass, (coord+vec2( 2., 0.)));// -vec4(0.5); + vec4 pos2H = texture2DRect(texture_mass, (coord+vec2( 0., 2.)));// -vec4(0.5); + vec4 pos2B = texture2DRect(texture_mass, (coord+vec2( 0.,-2.)));// -vec4(0.5); + // lecture des position des masses voisinnes + + force = pos-pos_old; + // ajout de la force d'inertie (conservation de la vitesse) + + force *= 1.-D; + // damping relatif a un point fix + // ATTENTION, c'est le seul damping du system! + + + // 4 liens direct (gauche / droite et haut / bas) + // on ajoute une force ssi la taille est > 0 + // on limite aussi ds l'espace pour ne prendre en compte que le lien valide (effet de bord) + + dist = pos.xyz - posG.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x > 1.) ) + { force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); } + + dist = pos.xyz - posD.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x < 91.) ) + { force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); } + + dist = pos.xyz - posH.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.y < 63.) ) + { force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); } + + dist = pos.xyz - posB.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.y > 1.) ) + { force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); } + + // 4 liens diagonaux (haut gauche, bas droite, etc) + dist = pos.xyz - posHD.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x < 91.) && (coord.y > 1.) ) + { force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); } + + dist = pos.xyz - posBG.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x > 1.) && (coord.y < 63.) ) + { force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); } + + dist = pos.xyz - posHG.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x < 91.) && (coord.y < 63.) ) + { force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); } + + dist = pos.xyz - posBD.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x > 1.) && (coord.y > 1.) ) + { force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); } + + // 4 liens double longeur (rigidité de flexion) + dist = pos.xyz - pos2G.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x > 2.) ) + { force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); } + + dist = pos.xyz - pos2D.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x < 90.) ) + { force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); } + + dist = pos.xyz - pos2H.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.y < 62.) ) + { force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); } + + dist = pos.xyz - pos2B.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.y > 2.) ) + { force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); } + + // autres forces + vec4 normal = texture2DRect(texture_normal, coord*64.) -vec4(0.5); + normal = normalize(normal); + // float force_wind = abs(dot(normalize(vec3(wind.xy,0.)),normal.xyz)); + + force.r += wind.x/100.; + force.g += gravite/100.; + force.b += wind.y/100.; + + // ajout d'une force sinusoidal perpendiculaire a la direction du vent + float W_sin = cos(-t + f*0.01*gl_TexCoord[0].s); + W_sin *= 91.- gl_TexCoord[0].s; + W_sin /= 91.; + W_sin *= 91.- gl_TexCoord[0].s; + W_sin /= 91.; + + W_sin *= gl_TexCoord[0].t + 50.; + W_sin /= 63.; + W_sin *= gl_TexCoord[0].t + 50.; + W_sin /= 63.; + + force.x += W*(-wind.y*W_sin); + force.z += W*( wind.x*W_sin); + + // ajout d'un pseuo buit + float W_noiseX = cos(t + 0.353 * coord.t + 0.0234434* coord.s + 345.2342); + W_noiseX = cos(123456.35345 * W_noiseX + 234.23); + float W_noiseY = cos(-2.2 * t + 6235.457456 * W_noiseX + 567.456); + float W_noiseZ = cos(5.*t + 8976457.457 * W_noiseX + 3464.54); + W_noiseX = cos(323344.64345 * W_noiseX + 567.45); + + force.x += 0.00001 * N * W_noiseX; + force.y += 0.00001 * N * W_noiseY; + force.z += 0.00001 * N * W_noiseZ; + + + // preparation de la sortie + force = min(max(force,vec4(-0.5)),vec4(0.5)); + // min et max pour virer les +inf + force += vec4(0.5,0.5,0.5,1.); + // ajout de l'ofset pour etre entre 0 et 1 + force.a = 1.; + // on vire la 4eme composante au cas ou. + } + gl_FragColor = mix(force,vec4(0.5,0.5,0.5,1.),init); +} diff --git a/Gem/examples/10.glsl/link.vert b/Gem/examples/10.glsl/link.vert new file mode 100644 index 0000000..fefc366 --- /dev/null +++ b/Gem/examples/10.glsl/link.vert @@ -0,0 +1,10 @@ +varying vec2 coord; + + +void main() +{ + + coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/mass.frag b/Gem/examples/10.glsl/mass.frag new file mode 100644 index 0000000..29a2ef2 --- /dev/null +++ b/Gem/examples/10.glsl/mass.frag @@ -0,0 +1,34 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture_mass_old,texture_link; +varying vec2 coord; +uniform float init; + +void main (void) +{ + vec4 color = vec4(0.,0.,1.,1.); + if ( (coord.x < 92.) && (coord.y < 64.) ) + { + vec4 pos = texture2DRect(texture_mass_old, coord)-vec4(0.5); + vec4 force = texture2DRect(texture_link, coord)-vec4(0.5); + + force = min(max(force,vec4(-0.5)),vec4(0.5)); + // on vire les +inf et -inf qui peuvent poser pb en cas d'instabilités + pos += force; + //increment de la position + + float reset = step(coord.x,1.); +// reset *= step(mod(coord.y,10.),4.); + // les point en x<1 sont tjrs reseté : ils sont dc imobiles + + color = mix(pos,vec4(coord.x/1000.,(coord.y-32.)/1000.,0.,0.),reset+(1.-reset)*init); + // couleur de sortie mixé avec couleur d'initialisation + + color += vec4(0.5); + color.a = 1.; + // preparation de la sortie (ajout de l'offset + virer l'alpha) + } + + gl_FragColor = color; +} diff --git a/Gem/examples/10.glsl/mass.vert b/Gem/examples/10.glsl/mass.vert new file mode 100644 index 0000000..fefc366 --- /dev/null +++ b/Gem/examples/10.glsl/mass.vert @@ -0,0 +1,10 @@ +varying vec2 coord; + + +void main() +{ + + coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/multitexture.frag b/Gem/examples/10.glsl/multitexture.frag new file mode 100644 index 0000000..9e8ed0c --- /dev/null +++ b/Gem/examples/10.glsl/multitexture.frag @@ -0,0 +1,13 @@ +uniform sampler2D MyTex; +uniform sampler2D MyTex1; + +varying vec2 texcoord1; +varying vec2 texcoord2; + +void main (void) +{ + vec4 color = texture2D(MyTex, texcoord1); + vec4 color2 = texture2D(MyTex1, texcoord2); + gl_FragColor = (color + color2) / 2.; +} + diff --git a/Gem/examples/10.glsl/multitexture.vert b/Gem/examples/10.glsl/multitexture.vert new file mode 100644 index 0000000..2cade19 --- /dev/null +++ b/Gem/examples/10.glsl/multitexture.vert @@ -0,0 +1,11 @@ +varying vec2 texcoord1; +varying vec2 texcoord2; + +void main() +{ + + texcoord1 = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + texcoord2 = (gl_TextureMatrix[1] * gl_MultiTexCoord1).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/multitexture_rect.frag b/Gem/examples/10.glsl/multitexture_rect.frag new file mode 100644 index 0000000..3eb9b2b --- /dev/null +++ b/Gem/examples/10.glsl/multitexture_rect.frag @@ -0,0 +1,15 @@ +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect MyTex; +uniform sampler2DRect MyTex1; + +varying vec2 texcoord1; +varying vec2 texcoord2; + +void main (void) +{ + vec4 color = texture2DRect(MyTex, texcoord1); + vec4 color2 = texture2DRect(MyTex1, texcoord1); // texcoord2 does not work. + gl_FragColor = (color + color2) / 2.; +} + diff --git a/Gem/examples/10.glsl/multitexture_rect.vert b/Gem/examples/10.glsl/multitexture_rect.vert new file mode 100644 index 0000000..2cade19 --- /dev/null +++ b/Gem/examples/10.glsl/multitexture_rect.vert @@ -0,0 +1,11 @@ +varying vec2 texcoord1; +varying vec2 texcoord2; + +void main() +{ + + texcoord1 = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + texcoord2 = (gl_TextureMatrix[1] * gl_MultiTexCoord1).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/normal.frag b/Gem/examples/10.glsl/normal.frag new file mode 100644 index 0000000..eef7f86 --- /dev/null +++ b/Gem/examples/10.glsl/normal.frag @@ -0,0 +1,37 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture_mass; +varying vec2 coord; + +vec2 test1(vec2 V) +{ + return(max(min(V,vec2(91.,63.)),vec2(0.))); +} + +void main (void) +{ + vec4 color = vec4(1.,0.,0.,1.); + + if ( (coord.x < 91.) && (coord.y < 63.) ) + { + vec4 posG = texture2DRect(texture_mass, test1(coord+vec2(-1., 0.))) ; + vec4 posD = texture2DRect(texture_mass, test1(coord+vec2( 1., 0.))) ; + vec4 posH = texture2DRect(texture_mass, test1(coord+vec2( 0.,-1.))) ; + vec4 posB = texture2DRect(texture_mass, test1(coord+vec2( 0., 1.))) ; + + vec3 normal = cross((posG.xyz-posD.xyz),(posH.xyz-posB.xyz)); + color.xyz = normalize(normal); + color.xyz = normal; + + vec3 DX = posG.xyz-posD.xyz; + vec3 DY = posH.xyz-posB.xyz; + + color += vec4(1.); + color *= 0.5; + + } + color.a = 1.; + gl_FragColor = color; + +} diff --git a/Gem/examples/10.glsl/normal.vert b/Gem/examples/10.glsl/normal.vert new file mode 100644 index 0000000..fefc366 --- /dev/null +++ b/Gem/examples/10.glsl/normal.vert @@ -0,0 +1,10 @@ +varying vec2 coord; + + +void main() +{ + + coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/panoramique.frag b/Gem/examples/10.glsl/panoramique.frag new file mode 100644 index 0000000..d0378b6 --- /dev/null +++ b/Gem/examples/10.glsl/panoramique.frag @@ -0,0 +1,28 @@ +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect MyTex; +uniform float dZ, ShadeL, ShadeR, sizeX, sizeY; + +void main (void) +{ + + vec2 pos_out; + pos_out.x=-1.+(2.*gl_TexCoord[0].s)/sizeX; + pos_out.y=-1.+(2.*gl_TexCoord[0].t)/sizeY; + pos_out.y *= sqrt(pos_out.x*pos_out.x+dZ*dZ)/dZ; + + pos_out.x = sizeX*(pos_out.x+1.)/2.; + pos_out.y = sizeY*(pos_out.y+1.)/2.; + + vec4 color = texture2DRect(MyTex, pos_out); + + color.a = 1.; + float tmp = mix(0.,1.,gl_TexCoord[0].s/ShadeL); + tmp = min(tmp,1.); + color.a *= tmp; + tmp = mix(0.,1.,(sizeX-gl_TexCoord[0].s)/ShadeR); + tmp = min(tmp,1.); + color.a *= tmp; + + gl_FragColor = color; +} diff --git a/Gem/examples/10.glsl/panoramique.vert b/Gem/examples/10.glsl/panoramique.vert new file mode 100644 index 0000000..5fcb9d8 --- /dev/null +++ b/Gem/examples/10.glsl/panoramique.vert @@ -0,0 +1,5 @@ +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; +} diff --git a/Gem/examples/10.glsl/single_blur.pd b/Gem/examples/10.glsl/single_blur.pd new file mode 100644 index 0000000..76088b7 --- /dev/null +++ b/Gem/examples/10.glsl/single_blur.pd @@ -0,0 +1,55 @@ +#N canvas 310 229 681 595 10; +#X obj 99 59 inlet; +#X obj 26 145 gemframebuffer; +#X obj 26 215 translateXYZ 0 0 -4; +#X obj 26 285 pix_texture; +#X obj 26 305 square 4; +#X msg 43 264 quality 1 \, rectangle 0; +#X obj 43 243 loadbang; +#X obj 128 431 outlet; +#X obj 26 195 _glsl blur; +#X obj 47 166 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 248 85 t f f; +#X obj 248 17 r blur; +#X obj 248 133 pack f f; +#X obj 26 85 gemhead \$1; +#X obj 248 112 * \$2; +#X obj 301 111 * \$3; +#X msg 248 153 distance \$1 \$2; +#X obj 42 119 r to_fb; +#X obj 248 39 route float; +#X obj 322 61 unpack f f; +#X obj 441 18 r motion_blur; +#X obj 441 90 pack f f; +#X obj 441 65 * \$2; +#X obj 441 41 unpack f f; +#X obj 508 65 * \$2; +#X connect 0 0 3 1; +#X connect 1 0 8 0; +#X connect 1 1 7 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 8 0 2 0; +#X connect 9 0 8 0; +#X connect 10 0 14 0; +#X connect 10 1 15 0; +#X connect 11 0 18 0; +#X connect 12 0 16 0; +#X connect 13 0 1 0; +#X connect 14 0 12 0; +#X connect 15 0 12 1; +#X connect 16 0 8 1; +#X connect 17 0 1 0; +#X connect 18 0 10 0; +#X connect 18 1 19 0; +#X connect 19 0 14 0; +#X connect 19 1 15 0; +#X connect 20 0 23 0; +#X connect 21 0 16 0; +#X connect 22 0 21 0; +#X connect 23 0 22 0; +#X connect 23 1 24 0; +#X connect 24 0 21 1; diff --git a/Gem/examples/10.glsl/texture.frag b/Gem/examples/10.glsl/texture.frag new file mode 100644 index 0000000..aaee824 --- /dev/null +++ b/Gem/examples/10.glsl/texture.frag @@ -0,0 +1,16 @@ +// Cyrille Henry 2007 + +//#extension GL_ARB_texture_rectangle : enable +//uniform sampler2DRect MyTex; +uniform sampler2D MyTex; +uniform float B,C; + +void main (void) +{ + vec4 color = texture2D(MyTex, (gl_TextureMatrix[0] * gl_TexCoord[0]).st); + + color *= B+1.; // brightness + vec4 gray = vec4(dot(color.rgb,vec3(0.2125, 0.7154, 0.0721))); + color = mix(gray, color, C+1.); // contrast + gl_FragColor = color; +} diff --git a/Gem/examples/10.glsl/texture.vert b/Gem/examples/10.glsl/texture.vert new file mode 100644 index 0000000..bda9f47 --- /dev/null +++ b/Gem/examples/10.glsl/texture.vert @@ -0,0 +1,8 @@ +// Cyrille Henry 2007 + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + +} diff --git a/Gem/examples/10.glsl/texture_rect.frag b/Gem/examples/10.glsl/texture_rect.frag new file mode 100644 index 0000000..98adc1f --- /dev/null +++ b/Gem/examples/10.glsl/texture_rect.frag @@ -0,0 +1,16 @@ +// Cyrille Henry 2007 + +#extension GL_ARB_texture_rectangle : enable +uniform sampler2DRect MyTex; +//uniform sampler2D MyTex; +uniform float B,C; + +void main (void) +{ + vec4 color = texture2DRect(MyTex, (gl_TextureMatrix[0] * gl_TexCoord[0]).st); + + color *= B+1.; // brightness + vec4 gray = vec4(dot(color.rgb,vec3(0.2125, 0.7154, 0.0721))); + color = mix(gray, color, C+1.); // contrast + gl_FragColor = color; +} diff --git a/Gem/examples/10.glsl/tri2fan.frag b/Gem/examples/10.glsl/tri2fan.frag new file mode 100644 index 0000000..391dc68 --- /dev/null +++ b/Gem/examples/10.glsl/tri2fan.frag @@ -0,0 +1,6 @@ +void main() +{ + gl_FragColor = vec4(1.0,1.0,1.0,0.1); + // set color +} + diff --git a/Gem/examples/10.glsl/tri2fan.geom b/Gem/examples/10.glsl/tri2fan.geom new file mode 100644 index 0000000..45961e2 --- /dev/null +++ b/Gem/examples/10.glsl/tri2fan.geom @@ -0,0 +1,51 @@ +// Cyrille Henry 2010 + +#version 120 +#extension GL_EXT_geometry_shader4 : enable + +void main(void) +{ + + int i; //increment variable + vec4 pos1,pos2, pos3, pos4, pos5; // tmp + vec3 high; + + for(i=0; i< gl_VerticesIn; i += 3){ // for all triangles + pos1 = gl_PositionIn[i]; + pos2 = gl_PositionIn[i+1]; + pos3 = gl_PositionIn[i+2]; + pos4 = (pos1 + pos2 + pos3) / 3.; // center of the triangle + + high = 10.*cross(pos2.xyz-pos1.xyz,pos3.xyz-pos2.xyz); + // hight and orientation of the piramide + + high = normalize(high); + high *= length(pos2-pos1); + pos5 = pos4 ; + pos5.xyz += high; + + gl_Position = gl_ModelViewProjectionMatrix * pos1; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos4; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos5; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos2; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos4; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos5; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos3; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos4; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos5; + EmitVertex(); + + EndPrimitive(); + // new primitive + } + +} + diff --git a/Gem/examples/10.glsl/tri2fan.vert b/Gem/examples/10.glsl/tri2fan.vert new file mode 100644 index 0000000..2d22ff2 --- /dev/null +++ b/Gem/examples/10.glsl/tri2fan.vert @@ -0,0 +1,6 @@ +void main() +{ + gl_Position = gl_Vertex; +} + + diff --git a/Gem/examples/10.glsl/vague.frag b/Gem/examples/10.glsl/vague.frag new file mode 100644 index 0000000..7b6a2f3 --- /dev/null +++ b/Gem/examples/10.glsl/vague.frag @@ -0,0 +1,23 @@ +// Cyrille Henry 2007 + +#extension GL_ARB_texture_rectangle : enable + +uniform float K; +uniform sampler2DRect texture, texture1, texture2; + +const float dx = 1.; +const float dy = 1.; +const float dp = 1.; + +void main (void) +{ + float light; + vec2 position = gl_TexCoord[0].st; + vec4 C, C1; + C = texture2DRect(texture2, position) ; + + vec4 color2 = texture2DRect(texture1, (position+K*C.rg)); + + gl_FragColor = color2; + +} diff --git a/Gem/examples/10.glsl/wave.frag b/Gem/examples/10.glsl/wave.frag new file mode 100644 index 0000000..d455f88 --- /dev/null +++ b/Gem/examples/10.glsl/wave.frag @@ -0,0 +1,40 @@ +// Cyrille Henry 2007 + +#extension GL_ARB_texture_rectangle : enable + +uniform float K1,K3,D1,K; +uniform sampler2DRect text; + +const float dx = 1.; +const float dy = 1.; + +void main (void) +{ + float x,y; + vec4 C; + vec2 texture1 = gl_TexCoord[0].st ; + + x=texture1.x; + y=texture1.y; + + C = texture2DRect(text, vec2(x, y)); + + vec4 color_cote = texture2DRect(text, vec2(x-dx, y-dy)); + color_cote += texture2DRect(text, vec2(x+dx, y-dy)); + color_cote += texture2DRect(text, vec2(x-dx, y+dy)); + color_cote += texture2DRect(text, vec2(x+dx, y+dy)); + color_cote += texture2DRect(text, vec2(x, y-dy)); + color_cote += texture2DRect(text, vec2(x-dx, y)); + color_cote += texture2DRect(text, vec2(x+dx, y)); + color_cote += texture2DRect(text, vec2(x, y+dy)); + + + float K = K1 * color_cote.r + K3 * 0.5 - (8. * K1 + K3) * C.r; + float D = D1 * (C.r - C.g); + + C.b = C.g; + C.g = C.r; + C.r = (2.* C.g) - C.b + K - D ; + + gl_FragColor = vec4(C.rgb,1.); +} diff --git a/Gem/examples/11.obj-exporter/obj_cube.pd b/Gem/examples/11.obj-exporter/obj_cube.pd new file mode 100644 index 0000000..d874dc6 --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_cube.pd @@ -0,0 +1,152 @@ +#N canvas 511 83 666 689 12; +#X obj 18 14 inlet; +#X obj 18 35 t a a; +#X obj 50 98 spigot 0; +#X obj 50 169 GEMglPushMatrix; +#X obj 50 573 GEMglPopMatrix; +#X obj 50 211 gemlist_info; +#X obj 103 77 r global_snap_obj; +#X obj 560 718 s global_obj_creator; +#X obj 50 317 gemlist_info; +#X obj 342 25 loadbang; +#X obj 342 46 \$1; +#X obj 342 67 sel 0; +#X msg 342 88 1; +#X obj 342 110 f; +#X text 374 108 or primitive apothema for matju; +#X text 375 92 primitive size; +#X obj 342 131 s \$0-size; +#X obj 422 25 inlet; +#X obj 18 77 outlet; +#X obj 166 168 r \$0-size; +#X obj 50 190 translateXYZ; +#X obj 104 275 * -2; +#X obj 50 296 translateXYZ; +#X obj 104 253 r \$0-size; +#X obj 50 424 gemlist_info; +#X obj 77 382 * -2; +#X obj 50 403 translateXYZ; +#X obj 77 360 r \$0-size; +#X obj 50 530 gemlist_info; +#X obj 50 509 translateXYZ; +#X obj 104 467 r \$0-size; +#X obj 50 121 t a b; +#X text 150 143 create new groupe; +#X obj 104 488 * 2; +#X obj 50 594 t b; +#X msg 131 232 v \$1 \$2 \$3; +#X msg 131 339 v \$1 \$2 \$3; +#X msg 131 445 v \$1 \$2 \$3; +#X msg 131 552 v \$1 \$2 \$3; +#X obj 59 35 r \$0-size; +#X obj 50 636 spigot 1; +#X obj 123 690 spigot 0; +#X obj 103 594 r global_obj_triangulate; +#X obj 103 615 == 0; +#X msg 82 142 g cube; +#X obj 18 56 cube; +#X obj 260 217 gemlist_info; +#X obj 260 323 gemlist_info; +#X obj 341 154 r \$0-size; +#X obj 260 196 translateXYZ; +#X obj 314 281 * -2; +#X obj 260 302 translateXYZ; +#X obj 314 259 r \$0-size; +#X obj 260 430 gemlist_info; +#X obj 287 388 * -2; +#X obj 260 409 translateXYZ; +#X obj 287 366 r \$0-size; +#X obj 260 536 gemlist_info; +#X obj 260 515 translateXYZ; +#X obj 314 473 r \$0-size; +#X obj 314 494 * 2; +#X msg 341 238 v \$1 \$2 \$3; +#X msg 341 345 v \$1 \$2 \$3; +#X msg 341 451 v \$1 \$2 \$3; +#X msg 341 558 v \$1 \$2 \$3; +#X obj 341 175 * -2; +#X obj 287 175 * 2; +#X msg 50 657 f -5 -6 -7 -8 \, f -7 -3 -4 -8 \, f -5 -8 -4 -1 \, f +-2 -3 -7 -6 \, f -1 -2 -6 -5 \, f -3 -2 -1 -4; +#X msg 123 711 f -6 -7 -8 \, f -8 -5 -6 \, f -3 -4 -8 \, f -8 -7 -3 +\, f -8 -4 -1 \, f -1 -5 -8 \, f -3 -7 -6 \, f -6 -2 -3 \, f -2 -6 +-5 \, f -5 -1 -2 \, f -2 -1 -4 \, f -4 -3 -2; +#X connect 0 0 1 0; +#X connect 1 0 45 0; +#X connect 1 1 2 0; +#X connect 2 0 31 0; +#X connect 3 0 20 0; +#X connect 4 0 34 0; +#X connect 5 0 22 0; +#X connect 5 4 35 0; +#X connect 6 0 2 1; +#X connect 8 0 26 0; +#X connect 8 4 36 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 11 1 13 0; +#X connect 12 0 13 0; +#X connect 13 0 16 0; +#X connect 17 0 13 0; +#X connect 19 0 20 1; +#X connect 19 0 20 2; +#X connect 19 0 20 3; +#X connect 20 0 5 0; +#X connect 21 0 22 2; +#X connect 22 0 8 0; +#X connect 23 0 21 0; +#X connect 24 0 29 0; +#X connect 24 4 37 0; +#X connect 25 0 26 1; +#X connect 26 0 24 0; +#X connect 27 0 25 0; +#X connect 28 0 49 0; +#X connect 28 4 38 0; +#X connect 29 0 28 0; +#X connect 30 0 33 0; +#X connect 31 0 3 0; +#X connect 31 1 44 0; +#X connect 33 0 29 2; +#X connect 34 0 40 0; +#X connect 34 0 41 0; +#X connect 35 0 7 0; +#X connect 36 0 7 0; +#X connect 37 0 7 0; +#X connect 38 0 7 0; +#X connect 39 0 45 1; +#X connect 40 0 67 0; +#X connect 41 0 68 0; +#X connect 42 0 41 1; +#X connect 42 0 43 0; +#X connect 43 0 40 1; +#X connect 44 0 7 0; +#X connect 45 0 18 0; +#X connect 46 0 51 0; +#X connect 46 4 61 0; +#X connect 47 0 55 0; +#X connect 47 4 62 0; +#X connect 48 0 65 0; +#X connect 48 0 66 0; +#X connect 49 0 46 0; +#X connect 50 0 51 2; +#X connect 51 0 47 0; +#X connect 52 0 50 0; +#X connect 53 0 58 0; +#X connect 53 4 63 0; +#X connect 54 0 55 1; +#X connect 55 0 53 0; +#X connect 56 0 54 0; +#X connect 57 0 4 0; +#X connect 57 4 64 0; +#X connect 58 0 57 0; +#X connect 59 0 60 0; +#X connect 60 0 58 2; +#X connect 61 0 7 0; +#X connect 62 0 7 0; +#X connect 63 0 7 0; +#X connect 64 0 7 0; +#X connect 65 0 49 3; +#X connect 66 0 49 1; +#X connect 67 0 7 0; +#X connect 68 0 7 0; diff --git a/Gem/examples/11.obj-exporter/obj_exporter-help.pd b/Gem/examples/11.obj-exporter/obj_exporter-help.pd new file mode 100644 index 0000000..543a2b2 --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_exporter-help.pd @@ -0,0 +1,87 @@ +#N canvas 58 106 645 381 12; +#X obj 35 90 gemhead; +#X obj 35 175 translateXYZ 0 0 0.1; +#X obj 35 153 rotateXYZ 1 5 9; +#X obj 35 197 scaleXYZ 1 1.1 1; +#X obj 35 219 obj_square 0.2; +#X obj 242 205 obj_exporter; +#X msg 242 95 save test1.obj; +#N canvas 428 179 450 300 repeat 0; +#X obj 36 22 inlet; +#X obj 36 44 t a a; +#X obj 111 170 gemlist; +#X obj 36 227 outlet; +#X obj 111 149 until; +#X msg 111 128 30; +#X obj 36 65 route gem_state; +#X obj 36 86 route float; +#X msg 36 107 gem_state \$1; +#X connect 0 0 1 0; +#X connect 1 0 6 0; +#X connect 1 1 2 1; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 7 1 5 0; +#X connect 8 0 3 0; +#X restore 35 112 pd repeat 30; +#X msg 35 15 create \, 1; +#X msg 46 36 destroy; +#X floatatom 69 133 5 0 0 0 - - -; +#X floatatom 109 133 5 0 0 0 - - -; +#X floatatom 149 133 5 0 0 0 - - -; +#X msg 256 142 goupe \$1; +#X obj 256 123 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 276 122 grouping or not the various primitives; +#X text 325 144 default = 0; +#X msg 270 181 triangulate \$1; +#X obj 270 164 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 379 182 triangulate quads (default = 0); +#X obj 35 324 obj_primTri; +#X msg 47 261 0.1 0.3 0.5; +#X msg 59 282 0.2 0.4 0.5; +#X obj 47 240 loadbang; +#X obj 241 261 gemhead; +#X obj 401 261 gemhead; +#X obj 401 324 obj_rectangle 0.5 1; +#X obj 401 282 translateXYZ -1 -1 2; +#X obj 401 303 rotateXYZ 30 -20 10; +#X msg 72 303 0.2 0.4 0.4; +#X obj 241 324 obj_cube 0.5; +#X obj 241 303 rotateXYZ 30 30 30; +#X obj 241 282 translateXYZ 2 1 2; +#X obj 35 59 gemwin; +#X text 236 16 Here is a way to create obj file in Gem.; +#X obj 307 64 model; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 20 0; +#X connect 6 0 5 0; +#X connect 7 0 2 0; +#X connect 8 0 33 0; +#X connect 9 0 33 0; +#X connect 10 0 2 1; +#X connect 11 0 2 2; +#X connect 12 0 2 3; +#X connect 13 0 5 0; +#X connect 14 0 13 0; +#X connect 17 0 5 0; +#X connect 18 0 17 0; +#X connect 21 0 20 1; +#X connect 22 0 20 2; +#X connect 23 0 21 0; +#X connect 23 0 22 0; +#X connect 23 0 29 0; +#X connect 24 0 32 0; +#X connect 25 0 27 0; +#X connect 27 0 28 0; +#X connect 28 0 26 0; +#X connect 29 0 20 3; +#X connect 31 0 30 0; +#X connect 32 0 31 0; diff --git a/Gem/examples/11.obj-exporter/obj_exporter.pd b/Gem/examples/11.obj-exporter/obj_exporter.pd new file mode 100644 index 0000000..5a4b08f --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_exporter.pd @@ -0,0 +1,96 @@ +#N canvas 166 167 375 605 12; +#X obj 90 9 inlet; +#X obj 51 108 gemhead; +#X obj 51 150 delay 0; +#X obj 83 234 s global_snap_obj; +#X msg 113 74 1; +#X obj 51 129 t b; +#X obj 51 171 spigot 0; +#X msg 83 213 0; +#X obj 51 598 textfile; +#X msg 146 74 rewind \, clear; +#X msg 51 314 write \$1 cr; +#X obj 66 338 r global_obj_creator; +#X obj 66 359 route g v f; +#X msg 90 401 add v \$1 \$2 \$3; +#X obj 115 422 list prepend add f; +#X obj 90 51 t a b b; +#X obj 51 291 symbol; +#X obj 115 443 list trim; +#X obj 51 192 t b b; +#X obj 90 269 symbol; +#X obj 98 506 f; +#X obj 121 529 + 1; +#X msg 116 485 0; +#X obj 66 556 pack s f; +#X msg 66 577 add g \$1_\$2; +#X obj 66 485 t a b; +#X obj 148 51 == 0; +#X obj 66 464 spigot 1; +#N canvas 1 82 450 300 remove_cam_offset 0; +#X obj 213 32 gemhead 1; +#X obj 213 53 gemlist_info; +#X obj 294 74 unpack f f f; +#X obj 23 28 inlet; +#X obj 23 244 outlet; +#X obj 23 76 unpack f f f; +#X obj 23 217 pack f f f; +#X obj 23 167 -; +#X obj 63 167 -; +#X obj 104 167 -; +#X connect 0 0 1 0; +#X connect 1 4 2 0; +#X connect 2 0 7 1; +#X connect 2 1 8 1; +#X connect 2 2 9 1; +#X connect 3 0 5 0; +#X connect 5 0 7 0; +#X connect 5 1 8 0; +#X connect 5 2 9 0; +#X connect 6 0 4 0; +#X connect 7 0 6 0; +#X connect 8 0 6 1; +#X connect 9 0 6 2; +#X restore 90 380 pd remove_cam_offset; +#X obj 90 30 route save groupe triangulate; +#X obj 223 51 s global_obj_triangulate; +#X connect 0 0 29 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 4 0 6 1; +#X connect 4 0 3 0; +#X connect 5 0 2 0; +#X connect 6 0 18 0; +#X connect 7 0 3 0; +#X connect 7 0 6 1; +#X connect 9 0 8 0; +#X connect 10 0 8 0; +#X connect 11 0 12 0; +#X connect 12 0 27 0; +#X connect 12 1 28 0; +#X connect 12 2 14 0; +#X connect 13 0 8 0; +#X connect 14 0 17 0; +#X connect 15 0 19 0; +#X connect 15 1 4 0; +#X connect 15 2 9 0; +#X connect 15 2 22 0; +#X connect 16 0 10 0; +#X connect 17 0 8 0; +#X connect 18 0 16 0; +#X connect 18 1 7 0; +#X connect 19 0 16 1; +#X connect 20 0 21 0; +#X connect 20 0 23 1; +#X connect 21 0 20 1; +#X connect 22 0 20 1; +#X connect 23 0 24 0; +#X connect 24 0 8 0; +#X connect 25 0 23 0; +#X connect 25 1 20 0; +#X connect 26 0 27 1; +#X connect 27 0 25 0; +#X connect 28 0 13 0; +#X connect 29 0 15 0; +#X connect 29 1 26 0; +#X connect 29 2 30 0; diff --git a/Gem/examples/11.obj-exporter/obj_primTri.pd b/Gem/examples/11.obj-exporter/obj_primTri.pd new file mode 100644 index 0000000..2607197 --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_primTri.pd @@ -0,0 +1,87 @@ +#N canvas 418 99 489 673 12; +#X obj 23 26 inlet; +#X obj 137 19 inlet; +#X obj 183 19 inlet; +#X obj 233 19 inlet; +#X obj 304 19 inlet; +#X obj 350 19 inlet; +#X obj 400 19 inlet; +#X obj 23 47 t a a; +#X obj 23 89 outlet; +#X obj 23 68 primTri 0 0 0; +#X obj 55 110 spigot 0; +#X obj 55 173 GEMglPushMatrix; +#X obj 55 542 GEMglPopMatrix; +#X obj 55 236 gemlist_info; +#X obj 108 89 r global_snap_obj; +#X obj 178 602 s global_obj_creator; +#X text 217 241 get it's position; +#X text 227 260 send it to the global abstraction; +#X obj 55 362 gemlist_info; +#X obj 55 215 translateXYZ; +#X obj 55 341 translateXYZ; +#X obj 55 488 gemlist_info; +#X obj 55 467 translateXYZ; +#X obj 55 131 t a b; +#X text 171 155 create new groupe; +#X msg 136 257 v \$1 \$2 \$3; +#X msg 136 383 v \$1 \$2 \$3; +#X msg 136 509 v \$1 \$2 \$3; +#X msg 87 152 g triangle; +#X obj 55 278 GEMglPopMatrix; +#X obj 55 299 GEMglPushMatrix; +#X obj 55 404 GEMglPopMatrix; +#X obj 55 425 GEMglPushMatrix; +#X obj 82 194 unpack f f f; +#X text 217 223 1st vertex of the triangle; +#X obj 82 320 unpack f f f; +#X text 220 340 2nd vertex of the triangle; +#X obj 82 446 unpack f f f; +#X text 152 465 3rd vertex of the triangle; +#X msg 55 563 f -3 -2 -1; +#X connect 0 0 7 0; +#X connect 1 0 9 1; +#X connect 1 0 33 0; +#X connect 2 0 9 2; +#X connect 2 0 35 0; +#X connect 3 0 9 3; +#X connect 3 0 37 0; +#X connect 4 0 9 4; +#X connect 5 0 9 5; +#X connect 6 0 9 6; +#X connect 7 0 9 0; +#X connect 7 1 10 0; +#X connect 9 0 8 0; +#X connect 10 0 23 0; +#X connect 11 0 19 0; +#X connect 12 0 39 0; +#X connect 13 0 29 0; +#X connect 13 4 25 0; +#X connect 14 0 10 1; +#X connect 18 0 31 0; +#X connect 18 4 26 0; +#X connect 19 0 13 0; +#X connect 20 0 18 0; +#X connect 21 0 12 0; +#X connect 21 4 27 0; +#X connect 22 0 21 0; +#X connect 23 0 11 0; +#X connect 23 1 28 0; +#X connect 25 0 15 0; +#X connect 26 0 15 0; +#X connect 27 0 15 0; +#X connect 28 0 15 0; +#X connect 29 0 30 0; +#X connect 30 0 20 0; +#X connect 31 0 32 0; +#X connect 32 0 22 0; +#X connect 33 0 19 1; +#X connect 33 1 19 2; +#X connect 33 2 19 3; +#X connect 35 0 20 1; +#X connect 35 1 20 2; +#X connect 35 2 20 3; +#X connect 37 0 22 1; +#X connect 37 1 22 2; +#X connect 37 2 22 3; +#X connect 39 0 15 0; diff --git a/Gem/examples/11.obj-exporter/obj_rectangle.pd b/Gem/examples/11.obj-exporter/obj_rectangle.pd new file mode 100644 index 0000000..648eddf --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_rectangle.pd @@ -0,0 +1,123 @@ +#N canvas 571 83 666 689 12; +#X obj 18 24 inlet; +#X obj 18 45 t a a; +#X obj 50 108 spigot 0; +#X obj 50 179 GEMglPushMatrix; +#X obj 50 583 GEMglPopMatrix; +#X obj 50 221 gemlist_info; +#X obj 103 87 r global_snap_obj; +#X obj 387 591 s global_obj_creator; +#X text 212 203 1st vertex of the square; +#X text 212 221 get it's position; +#X text 252 241 send it to the global abstraction; +#X obj 50 327 gemlist_info; +#X text 152 326 get it's position; +#X text 257 348 send it to the global abstraction; +#X obj 342 18 loadbang; +#X obj 342 39 \$1; +#X obj 342 60 sel 0; +#X msg 342 82 1; +#X obj 342 104 f; +#X obj 422 16 inlet; +#X obj 18 87 outlet; +#X obj 50 200 translateXYZ; +#X obj 104 285 * -2; +#X obj 50 306 translateXYZ; +#X text 147 304 2nd vertex of the square; +#X obj 50 434 gemlist_info; +#X obj 77 392 * -2; +#X obj 50 413 translateXYZ; +#X obj 50 540 gemlist_info; +#X obj 50 519 translateXYZ; +#X obj 50 131 t a b; +#X text 170 153 create new groupe; +#X text 147 411 3rd vertex of the square; +#X obj 104 498 * 2; +#X obj 50 604 t b; +#X msg 131 242 v \$1 \$2 \$3; +#X msg 131 349 v \$1 \$2 \$3; +#X msg 131 455 v \$1 \$2 \$3; +#X msg 131 562 v \$1 \$2 \$3; +#X obj 50 646 spigot 1; +#X obj 160 646 spigot 0; +#X obj 103 604 r global_obj_triangulate; +#X obj 103 625 == 0; +#X obj 342 125 s \$0-sizeX; +#X obj 472 18 loadbang; +#X obj 472 60 sel 0; +#X msg 472 82 1; +#X obj 472 104 f; +#X obj 552 16 inlet; +#X obj 472 39 \$2; +#X obj 472 125 s \$0-sizeY; +#X msg 82 152 g rectangle; +#X obj 164 178 r \$0-sizeX; +#X obj 240 178 r \$0-sizeY; +#X obj 104 263 r \$0-sizeY; +#X obj 77 370 r \$0-sizeX; +#X obj 104 477 r \$0-sizeY; +#X obj 18 66 rectangle; +#X obj 59 45 r \$0-sizeX; +#X obj 139 45 r \$0-sizeY; +#X msg 50 667 f -1 -2 -3 -4; +#X msg 160 667 f -2 -3 -4 \, f -4 -1 -2; +#X connect 0 0 1 0; +#X connect 1 0 57 0; +#X connect 1 1 2 0; +#X connect 2 0 30 0; +#X connect 3 0 21 0; +#X connect 4 0 34 0; +#X connect 5 0 23 0; +#X connect 5 4 35 0; +#X connect 6 0 2 1; +#X connect 11 0 27 0; +#X connect 11 4 36 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 16 1 18 0; +#X connect 17 0 18 0; +#X connect 18 0 43 0; +#X connect 19 0 18 0; +#X connect 21 0 5 0; +#X connect 22 0 23 2; +#X connect 23 0 11 0; +#X connect 25 0 29 0; +#X connect 25 4 37 0; +#X connect 26 0 27 1; +#X connect 27 0 25 0; +#X connect 28 0 4 0; +#X connect 28 4 38 0; +#X connect 29 0 28 0; +#X connect 30 0 3 0; +#X connect 30 1 51 0; +#X connect 33 0 29 2; +#X connect 34 0 39 0; +#X connect 34 0 40 0; +#X connect 35 0 7 0; +#X connect 36 0 7 0; +#X connect 37 0 7 0; +#X connect 38 0 7 0; +#X connect 39 0 60 0; +#X connect 40 0 61 0; +#X connect 41 0 40 1; +#X connect 41 0 42 0; +#X connect 42 0 39 1; +#X connect 44 0 49 0; +#X connect 45 0 46 0; +#X connect 45 1 47 0; +#X connect 46 0 47 0; +#X connect 47 0 50 0; +#X connect 48 0 47 0; +#X connect 49 0 45 0; +#X connect 51 0 7 0; +#X connect 52 0 21 1; +#X connect 53 0 21 2; +#X connect 54 0 22 0; +#X connect 55 0 26 0; +#X connect 56 0 33 0; +#X connect 57 0 20 0; +#X connect 58 0 57 1; +#X connect 59 0 57 2; +#X connect 60 0 7 0; +#X connect 61 0 7 0; diff --git a/Gem/examples/11.obj-exporter/obj_square.pd b/Gem/examples/11.obj-exporter/obj_square.pd new file mode 100644 index 0000000..c9a18f0 --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_square.pd @@ -0,0 +1,108 @@ +#N canvas 573 83 666 689 12; +#X obj 18 24 inlet; +#X obj 18 45 t a a; +#X obj 50 108 spigot 0; +#X obj 50 179 GEMglPushMatrix; +#X obj 50 583 GEMglPopMatrix; +#X obj 50 221 gemlist_info; +#X obj 103 87 r global_snap_obj; +#X obj 387 591 s global_obj_creator; +#X text 212 203 1st vertex of the square; +#X text 212 221 get it's position; +#X text 252 241 send it to the global abstraction; +#X obj 50 327 gemlist_info; +#X text 152 326 get it's position; +#X text 257 348 send it to the global abstraction; +#X obj 18 66 square; +#X obj 342 18 loadbang; +#X obj 342 39 \$1; +#X obj 342 60 sel 0; +#X msg 342 82 1; +#X obj 342 104 f; +#X text 365 123 or primitive apothema for matju; +#X text 366 107 primitive size; +#X obj 342 141 s \$0-size; +#X obj 422 16 inlet; +#X obj 18 87 outlet; +#X obj 168 180 r \$0-size; +#X obj 50 200 translateXYZ; +#X obj 104 285 * -2; +#X obj 50 306 translateXYZ; +#X obj 104 263 r \$0-size; +#X text 147 304 2nd vertex of the square; +#X obj 50 434 gemlist_info; +#X obj 77 392 * -2; +#X obj 50 413 translateXYZ; +#X obj 77 370 r \$0-size; +#X obj 50 540 gemlist_info; +#X obj 50 519 translateXYZ; +#X obj 104 477 r \$0-size; +#X obj 50 131 t a b; +#X text 150 152 create new groupe; +#X text 147 411 3rd vertex of the square; +#X obj 104 498 * 2; +#X obj 50 604 t b; +#X msg 131 242 v \$1 \$2 \$3; +#X msg 131 349 v \$1 \$2 \$3; +#X msg 131 455 v \$1 \$2 \$3; +#X msg 131 562 v \$1 \$2 \$3; +#X obj 59 45 r \$0-size; +#X msg 82 152 g square; +#X obj 50 646 spigot 1; +#X obj 160 646 spigot 0; +#X obj 103 604 r global_obj_triangulate; +#X obj 103 625 == 0; +#X msg 50 667 f -1 -2 -3 -4; +#X msg 160 667 f -2 -3 -4 \, f -4 -1 -2; +#X connect 0 0 1 0; +#X connect 1 0 14 0; +#X connect 1 1 2 0; +#X connect 2 0 38 0; +#X connect 3 0 26 0; +#X connect 4 0 42 0; +#X connect 5 0 28 0; +#X connect 5 4 43 0; +#X connect 6 0 2 1; +#X connect 11 0 33 0; +#X connect 11 4 44 0; +#X connect 14 0 24 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 17 1 19 0; +#X connect 18 0 19 0; +#X connect 19 0 22 0; +#X connect 23 0 19 0; +#X connect 25 0 26 1; +#X connect 25 0 26 2; +#X connect 26 0 5 0; +#X connect 27 0 28 2; +#X connect 28 0 11 0; +#X connect 29 0 27 0; +#X connect 31 0 36 0; +#X connect 31 4 45 0; +#X connect 32 0 33 1; +#X connect 33 0 31 0; +#X connect 34 0 32 0; +#X connect 35 0 4 0; +#X connect 35 4 46 0; +#X connect 36 0 35 0; +#X connect 37 0 41 0; +#X connect 38 0 3 0; +#X connect 38 1 48 0; +#X connect 41 0 36 2; +#X connect 42 0 49 0; +#X connect 42 0 50 0; +#X connect 43 0 7 0; +#X connect 44 0 7 0; +#X connect 45 0 7 0; +#X connect 46 0 7 0; +#X connect 47 0 14 1; +#X connect 48 0 7 0; +#X connect 49 0 53 0; +#X connect 50 0 54 0; +#X connect 51 0 50 1; +#X connect 51 0 52 0; +#X connect 52 0 49 1; +#X connect 53 0 7 0; +#X connect 54 0 7 0; diff --git a/Gem/examples/12.multi_screen_projection/01.flat_projection-help.pd b/Gem/examples/12.multi_screen_projection/01.flat_projection-help.pd new file mode 100644 index 0000000..eb5b2fc --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/01.flat_projection-help.pd @@ -0,0 +1,30 @@ +#N canvas 365 180 996 500 10; +#X obj 39 307 r render; +#X obj 39 437 pix_texture; +#X obj 110 353 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 110 373 openpanel; +#X msg 110 394 open \$1; +#X obj 39 458 square 25; +#X text 99 307 <- this object must be present in your patch to start +the gemchain like in this example.; +#X floatatom 109 462 5 0 0 0 - - -; +#X obj 39 49 flat_projection 20; +#X text 304 191 <- abstraction [flat_projection]; +#X obj 39 416 pix_image ../data/fractal.JPG; +#X msg 51 24 offset 1024 0; +#X text 176 23 other messages to the gemwin; +#X text 305 133 This define the way screen are physically connected +to the computer.; +#X text 306 93 This define the way screen are positioned in space to +create a single image.; +#X text 305 159 geometry screen and geometry computer can be diferents +\, but should define the same number of screen.; +#X connect 0 0 10 0; +#X connect 1 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 10 0; +#X connect 7 0 5 1; +#X connect 10 0 1 0; +#X connect 11 0 8 0; diff --git a/Gem/examples/12.multi_screen_projection/02.nfp-help.pd b/Gem/examples/12.multi_screen_projection/02.nfp-help.pd new file mode 100644 index 0000000..6a8404d --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/02.nfp-help.pd @@ -0,0 +1,46 @@ +#N canvas 321 188 996 584 10; +#X obj 27 231 gemhead; +#X obj 27 298 gemframebuffer; +#X obj 27 348 translateXYZ 0 0 -4; +#X msg 43 275 dimen 1024 768; +#X obj 43 255 loadbang; +#X obj 27 442 pix_texture; +#X obj 27 464 rectangle 5.333 4; +#X msg 42 397 thread 0 \, open grid.jpg; +#X obj 42 377 loadbang; +#X text 24 211 creation of a big framebuffer; +#X msg 171 274 rectangle 1; +#X obj 171 255 loadbang; +#X obj 27 420 pix_image; +#X obj 30 177 gemwin; +#X msg 30 129 create \, 1; +#X msg 43 149 0 \, destroy; +#X obj 122 320 s nfp_fb; +#X obj 35 61 load_save; +#X obj 86 43 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 35 43 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 280 43 nfp_flat_wall 1; +#X obj 35 19 loadbang; +#X obj 490 43 nfp_flat_wall 2; +#X obj 703 44 nfp_curved_wall 3; +#X text 52 43 load; +#X text 104 42 save; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 16 0; +#X connect 2 0 12 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 6 0; +#X connect 7 0 12 0; +#X connect 8 0 7 0; +#X connect 10 0 1 0; +#X connect 11 0 10 0; +#X connect 12 0 5 0; +#X connect 14 0 13 0; +#X connect 15 0 13 0; +#X connect 18 0 17 1; +#X connect 19 0 17 0; +#X connect 21 0 19 0; diff --git a/Gem/examples/12.multi_screen_projection/config.txt b/Gem/examples/12.multi_screen_projection/config.txt new file mode 100644 index 0000000..8e10bbb --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/config.txt @@ -0,0 +1,70 @@ +VP_CR_Y-3 2.34; +VP_CR_X-3 1.79; +VP_CC_Y-3 -0.34; +VP_CC_X-3 0.55; +VP_CL_Y-3 0.76; +VP_CL_X-3 -0.730001; +VP_BC_Y-3 -4.01001; +VP_BC_X-3 0.2; +VP_TC_Y-3 3.7; +VP_TC_X-3 0.00999991; +Shade_B-3 0; +Shade_T-3 0; +Shade_R-3 0.0829032; +Shade_L-3 0.0693548; +TP_BR_Y-3 265; +TP_BR_X-3 416; +TP_TR_Y-3 0; +TP_TR_X-3 367; +TP_BL_Y-3 227; +TP_BL_X-3 0; +TP_TL_Y-3 13; +TP_TL_X-3 105; +VP_BR_Y-3 -3.37; +VP_BR_X-3 1.52; +VP_TR_Y-3 3.95; +VP_TR_X-3 1.31; +VP_BL_Y-3 -2.83; +VP_BL_X-3 -1.21; +VP_TL_Y-3 3.35; +VP_TL_X-3 -1.16; +Shade_B-2 0; +Shade_T-2 0; +Shade_R-2 0; +Shade_L-2 0; +TP_BR_Y-2 538; +TP_BR_X-2 975; +TP_TR_Y-2 0; +TP_TR_X-2 889; +TP_BL_Y-2 449; +TP_BL_X-2 625; +TP_TL_Y-2 117; +TP_TL_X-2 605; +VP_BR_Y-2 -3.53; +VP_BR_X-2 3.44; +VP_TR_Y-2 2.64; +VP_TR_X-2 3; +VP_BL_Y-2 -2.53; +VP_BL_X-2 1.33; +VP_TL_Y-2 1.18; +VP_TL_X-2 1.17; +Shade_B-1 0; +Shade_T-1 0; +Shade_R-1 0; +Shade_L-1 0; +TP_BR_Y-1 448; +TP_BR_X-1 453; +TP_TR_Y-1 110; +TP_TR_X-1 543; +TP_BL_Y-1 484; +TP_BL_X-1 95; +TP_TL_Y-1 0; +TP_TL_X-1 0; +VP_BR_Y-1 -3.01999; +VP_BR_X-1 -0.18; +VP_TR_Y-1 1.94; +VP_TR_X-1 0.54; +VP_BL_Y-1 -3.75; +VP_BL_X-1 -2.9; +VP_TL_Y-1 3.84; +VP_TL_X-1 -3.66001; diff --git a/Gem/examples/12.multi_screen_projection/flat_projection.pd b/Gem/examples/12.multi_screen_projection/flat_projection.pd new file mode 100644 index 0000000..9f81653 --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/flat_projection.pd @@ -0,0 +1,454 @@ +#N canvas 75 144 1376 699 10; +#X obj 263 277 gemhead; +#X obj 263 351 gemframebuffer; +#X obj 263 402 s render; +#X msg 285 326 rectangle 0; +#X obj 285 307 loadbang; +#X obj 263 376 translateXYZ 0 0 -4; +#N canvas 190 83 1090 559 size 0; +#X obj 29 20 inlet; +#X obj 29 91 unpack f f; +#X obj 142 91 unpack f f; +#X obj 336 91 unpack f f; +#X obj 142 122 - 1; +#X obj 199 124 - 1; +#X obj 142 187 *; +#X obj 155 163 t b f; +#X obj 199 187 *; +#X obj 212 163 t b f; +#X obj 42 233 t b f; +#X obj 126 233 t b f; +#X obj 29 330 pack f f; +#X obj 441 160 t b b f; +#X obj 29 494 outlet; +#X obj 29 147 *; +#X obj 42 123 t b f; +#X obj 86 147 *; +#X obj 99 123 t b f; +#X obj 257 329 pack f f; +#X obj 257 407 outlet; +#X obj 29 257 -; +#X obj 113 257 -; +#X obj 113 285 f; +#X obj 29 285 f; +#N canvas 260 83 450 300 change2 0; +#X obj 41 24 inlet; +#X obj 41 47 unpack f f; +#X obj 80 176 pack f f; +#X obj 98 132 t b f; +#X obj 80 201 outlet; +#X obj 41 149 moses 2; +#X obj 41 89 change; +#X obj 98 89 change; +#X connect 0 0 1 0; +#X connect 1 0 6 0; +#X connect 1 1 7 0; +#X connect 2 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 2 1; +#X connect 5 1 2 0; +#X connect 6 0 5 0; +#X connect 7 0 3 0; +#X restore 257 366 pd change2; +#N canvas 260 83 450 300 change2 0; +#X obj 41 24 inlet; +#X obj 41 47 unpack f f; +#X obj 80 176 pack f f; +#X obj 98 132 t b f; +#X obj 80 201 outlet; +#X obj 41 149 moses 2; +#X obj 41 89 change; +#X obj 98 89 change; +#X connect 0 0 1 0; +#X connect 1 0 6 0; +#X connect 1 1 7 0; +#X connect 2 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 2 1; +#X connect 5 1 2 0; +#X connect 6 0 5 0; +#X connect 7 0 3 0; +#X restore 29 350 pd change2; +#X obj 581 311 pack f f; +#X obj 594 265 t b f; +#X obj 651 265 t b f; +#X obj 581 289 /; +#X obj 638 289 /; +#X obj 579 171 pack f f; +#X obj 305 428 /; +#X obj 305 448 * 4; +#X msg 305 468 \$1 4; +#X msg 29 369 dimen \$1 \$2; +#X obj 57 392 /; +#X msg 57 472 perspec \$1 \$2 -1 1 1 20; +#X obj 57 452 pack f f; +#X obj 57 411 t f f; +#X obj 57 431 * -1; +#X obj 441 91 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 467 90 basic FSAA; +#X obj 29 46 route screen_size geometry_screen geometry_computer overlap +FSAA; +#X obj 239 91 unpack f f; +#X obj 239 137 *; +#X obj 252 113 t b f; +#X obj 296 137 *; +#X obj 309 113 t b f; +#X obj 579 191 s \$0-glsl_geometry_screen; +#X obj 578 224 s \$0-glsl_geometry_computer; +#X obj 581 331 s \$0-glsl_overlap; +#X obj 305 490 s \$0-size_gemwin; +#X obj 388 255 r \$0-altern; +#X obj 407 311 list; +#X obj 388 276 sel 0 1; +#X obj 388 341 list; +#X obj 29 307 + 0; +#X obj 113 308 + 0; +#X text 480 108 not full implemented yet!; +#X connect 0 0 44 0; +#X connect 1 0 15 0; +#X connect 1 0 28 0; +#X connect 1 0 46 0; +#X connect 1 1 17 0; +#X connect 1 1 29 0; +#X connect 1 1 48 0; +#X connect 2 0 4 0; +#X connect 2 0 16 0; +#X connect 2 0 32 0; +#X connect 2 1 5 0; +#X connect 2 1 18 0; +#X connect 2 1 32 1; +#X connect 3 0 7 0; +#X connect 3 0 30 0; +#X connect 3 1 9 0; +#X connect 3 1 31 0; +#X connect 4 0 6 0; +#X connect 5 0 8 0; +#X connect 6 0 10 0; +#X connect 7 0 6 0; +#X connect 7 1 6 1; +#X connect 8 0 11 0; +#X connect 9 0 8 0; +#X connect 9 1 8 1; +#X connect 10 0 21 0; +#X connect 10 1 21 1; +#X connect 11 0 22 0; +#X connect 11 1 22 1; +#X connect 12 0 26 0; +#X connect 12 0 37 0; +#X connect 13 0 24 0; +#X connect 13 1 23 0; +#X connect 13 2 58 1; +#X connect 13 2 59 1; +#X connect 15 0 21 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 17 0 22 0; +#X connect 18 0 17 0; +#X connect 18 1 17 1; +#X connect 19 0 25 0; +#X connect 21 0 24 0; +#X connect 22 0 23 0; +#X connect 23 0 59 0; +#X connect 24 0 58 0; +#X connect 25 0 20 0; +#X connect 25 0 33 0; +#X connect 26 0 36 0; +#X connect 27 0 52 0; +#X connect 28 0 30 0; +#X connect 28 1 30 1; +#X connect 29 0 31 0; +#X connect 29 1 31 1; +#X connect 30 0 27 0; +#X connect 31 0 27 1; +#X connect 32 0 50 0; +#X connect 33 0 34 0; +#X connect 34 0 35 0; +#X connect 35 0 53 0; +#X connect 36 0 14 0; +#X connect 37 0 40 0; +#X connect 38 0 14 0; +#X connect 39 0 38 0; +#X connect 40 0 41 0; +#X connect 40 1 39 1; +#X connect 41 0 39 0; +#X connect 42 0 13 0; +#X connect 44 0 1 0; +#X connect 44 1 2 0; +#X connect 44 1 55 1; +#X connect 44 2 45 0; +#X connect 44 2 51 0; +#X connect 44 2 57 1; +#X connect 44 3 3 0; +#X connect 44 4 42 0; +#X connect 45 0 47 0; +#X connect 45 1 49 0; +#X connect 46 0 19 0; +#X connect 47 0 46 0; +#X connect 47 1 46 1; +#X connect 48 0 19 1; +#X connect 49 0 48 0; +#X connect 49 1 48 1; +#X connect 54 0 56 0; +#X connect 55 0 45 0; +#X connect 55 0 51 0; +#X connect 56 0 57 0; +#X connect 56 1 55 0; +#X connect 57 0 45 0; +#X connect 57 0 51 0; +#X connect 58 0 12 0; +#X connect 59 0 12 1; +#X restore 528 320 pd size; +#X msg 605 523 0 \, destroy; +#X obj 594 551 gemwin; +#X obj 428 489 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 281 601 rectangle; +#X obj 306 559 unpack f f; +#X floatatom 380 580 5 0 0 0 - - -; +#X floatatom 319 582 5 0 0 0 - - -; +#N canvas 0 0 743 323 init_glsl 0; +#X obj 129 184 outlet; +#X msg 129 120 overlap \$1 \$2; +#X obj 129 95 pack f f; +#X obj 249 98 pack f f; +#X obj 434 99 pack f f; +#X msg 249 119 geometry_screen \$1 \$2; +#X msg 434 120 geometry_computer \$1 \$2; +#X obj 434 76 r \$0-glsl_geometry_computer; +#X obj 249 75 r \$0-glsl_geometry_screen; +#X obj 129 72 r \$0-glsl_overlap; +#X obj 38 27 r \$0-init_glsl; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 4 0; +#X connect 8 0 3 0; +#X connect 9 0 2 0; +#X connect 10 0 3 0; +#X connect 10 0 2 0; +#X connect 10 0 4 0; +#X restore 418 467 pd init_glsl; +#X obj 292 470 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 281 509 pix_texture; +#X obj 281 448 gemhead 60; +#X obj 528 343 print framebuffer; +#X obj 604 415 print gem_window; +#N canvas 0 0 669 667 glsl_frag 0; +#X obj 78 598 glsl_program; +#X msg 35 325 print; +#X obj 172 387 change; +#X msg 34 545 print; +#X obj 78 367 glsl_fragment; +#X floatatom 172 413 2 0 0 0 ID - -; +#X obj 190 459 print linking; +#X text 97 546 after linking \, click "print" to get some info about +the compiled shader program; +#X obj 13 52 inlet; +#X obj 78 634 outlet; +#X obj 577 95 inlet; +#X obj 13 75 route bang; +#X obj 141 87 gemhead 1; +#X msg 141 109 1; +#X obj 141 133 change; +#X obj 141 157 t b; +#X obj 157 619 change; +#X obj 157 640 t b; +#X obj 157 661 outlet; +#X msg 172 438 link \$1; +#X msg 87 324 open soft_edge.frag; +#X connect 0 0 9 0; +#X connect 0 1 16 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 4 1 2 0; +#X connect 5 0 19 0; +#X connect 8 0 11 0; +#X connect 10 0 0 0; +#X connect 11 0 20 0; +#X connect 11 1 4 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 20 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 19 0 0 0; +#X connect 19 0 6 0; +#X connect 20 0 4 0; +#X restore 281 488 pd glsl_frag _______; +#X obj 605 470 sel 0 1; +#X msg 624 500 border 0 \, create \, 1; +#X obj 528 67 pack f f; +#X obj 638 48 t b f; +#X obj 831 65 pack f f; +#X obj 941 46 t b f; +#X msg 528 97 screen_size \$1 \$2; +#X msg 831 92 geometry_screen \$1 \$2; +#X obj 1151 65 pack f f; +#X obj 1281 46 t b f; +#X msg 746 93 2 2; +#X msg 746 67 set \$1 \$2; +#X obj 683 67 loadbang; +#X msg 1151 92 geometry_computer \$1 \$2; +#X msg 1066 67 set \$1 \$2; +#X obj 1003 67 loadbang; +#X msg 1066 93 4 1; +#X msg 446 67 set \$1 \$2; +#X obj 383 67 loadbang; +#X msg 446 93 160 120; +#X obj 446 114 unpack f f; +#X obj 746 114 unpack f f; +#X obj 1066 114 unpack f f; +#X obj 1003 236 loadbang; +#X msg 1066 262 0 0; +#X msg 1151 282 overlap \$1 \$1; +#X msg 567 576 0; +#X msg 594 392 dimen \$1 \$2; +#X obj 567 369 t b l; +#X obj 100 235 cnv 15 250 20 empty empty PUT_AN_OBJECT_[r_render]_IN_YOUR_PATCH +10 10 0 10 -258113 -66577 0; +#X obj 100 20 cnv 15 250 215 empty empty empty 20 12 0 14 -260097 -66577 +0; +#X obj 108 163 nbx 5 14 0 5000 0 0 \$0-overlap \$0-overlap empty 0 +-8 0 10 -99865 -1 -1 0 256; +#X obj 108 187 tgl 15 0 \$0-createDestroy \$0-createDestroy empty 17 +7 0 10 -1 -262144 -1 0 1; +#X text 128 187 Create/Destroy Gem window; +#X obj 108 29 nbx 4 12 -1e+37 1e+37 0 0 \$0-sizeScreenX \$0-sizeScreenX +empty 0 -8 0 10 -1 -262144 -1 160 256; +#X text 166 163 Overlap X and Y (pixels); +#X obj 108 45 nbx 4 12 -1e+37 1e+37 0 0 \$0-sizeScreenY \$0-sizeScreenY +empty 0 -8 0 10 -1 -262144 -1 120 256; +#X obj 108 83 nbx 4 12 -1e+37 1e+37 0 0 \$0-Geom-screenY \$0-Geom-screenY +empty 0 -8 0 10 -257985 -1 -1 2 256; +#X obj 108 67 nbx 4 12 -1e+37 1e+37 0 0 \$0-Geom-screenX \$0-Geom-screenX +empty 0 -8 0 10 -257985 -1 -1 2 256; +#X obj 108 143 tgl 10 0 \$0-altern \$0-altern empty 17 7 0 10 -1 -262144 +-1 0 1; +#X obj 108 121 nbx 4 12 -1e+37 1e+37 0 0 \$0-Geom-computerY \$0-Geom-computerY +empty 0 -8 0 10 -257985 -1 -1 1 256; +#X obj 108 105 nbx 4 12 -1e+37 1e+37 0 0 \$0-Geom-computerX \$0-Geom-computerX +empty 0 -8 0 10 -257985 -1 -1 4 256; +#X text 158 65 Geometry screen (X); +#X text 158 81 Geometry screen (Y); +#X text 158 103 Geometry computer (X); +#X text 158 119 Geometry computer (Y); +#X text 158 28 Screens size (X); +#X text 158 44 Screens size (Y); +#X obj 108 212 bng 15 250 50 0 \$0-save \$0-receiveNothing empty 17 +7 0 10 -258113 -1 -1; +#X text 128 212 Save parameters; +#X obj 446 156 s \$0-sizeScreenX; +#X obj 503 136 s \$0-sizeScreenY; +#X obj 746 155 s \$0-Geom-screenX; +#X obj 803 135 s \$0-Geom-screenY; +#X obj 1123 135 s \$0-Geom-computerY; +#X obj 1066 155 s \$0-Geom-computerX; +#X obj 1066 304 s \$0-overlap; +#X obj 605 449 r \$0-createDestroy; +#X obj 567 596 s \$0-createDestroy; +#X obj 418 510 s \$0-init_glsl; +#X obj 306 539 r \$0-size_gemwin; +#X obj 528 27 r \$0-sizeScreenX; +#X obj 638 27 r \$0-sizeScreenY; +#X obj 831 25 r \$0-Geom-screenX; +#X obj 941 25 r \$0-Geom-screenY; +#X obj 1281 25 r \$0-Geom-computerY; +#X obj 1151 25 r \$0-Geom-computerX; +#X obj 1151 215 r \$0-overlap; +#X obj 100 271 r \$0-save; +#X msg 1066 236 set \$1 \$1; +#X obj 100 317 s pd-soft_edge.pd; +#X msg 100 292 menusave; +#X text 856 481 'soft-edge.pd' by Cyrille Henry (GUI by Jack/RYBN) +; +#X text 121 140 View computer(0)/screen(1); +#X obj 388 16 inlet; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 1 1 16 1; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 2 0; +#X connect 6 0 1 0; +#X connect 6 0 18 0; +#X connect 6 1 49 0; +#X connect 7 0 8 0; +#X connect 9 0 80 0; +#X connect 11 0 10 1; +#X connect 11 0 13 0; +#X connect 11 1 10 2; +#X connect 11 1 12 0; +#X connect 14 0 20 1; +#X connect 15 0 20 0; +#X connect 16 0 10 0; +#X connect 17 0 20 0; +#X connect 20 0 16 0; +#X connect 20 1 80 0; +#X connect 21 0 7 0; +#X connect 21 1 22 0; +#X connect 22 0 8 0; +#X connect 23 0 27 0; +#X connect 23 0 38 0; +#X connect 24 0 23 0; +#X connect 24 1 23 1; +#X connect 25 0 28 0; +#X connect 25 0 32 0; +#X connect 26 0 25 0; +#X connect 26 1 25 1; +#X connect 27 0 6 0; +#X connect 28 0 6 0; +#X connect 29 0 34 0; +#X connect 29 0 35 0; +#X connect 30 0 29 0; +#X connect 30 1 29 1; +#X connect 31 0 28 0; +#X connect 31 0 42 0; +#X connect 32 0 31 0; +#X connect 33 0 31 0; +#X connect 34 0 6 0; +#X connect 35 0 37 0; +#X connect 36 0 37 0; +#X connect 37 0 34 0; +#X connect 37 0 43 0; +#X connect 38 0 40 0; +#X connect 39 0 40 0; +#X connect 40 0 27 0; +#X connect 40 0 41 0; +#X connect 41 0 71 0; +#X connect 41 1 72 0; +#X connect 42 0 73 0; +#X connect 42 1 74 0; +#X connect 43 0 76 0; +#X connect 43 1 75 0; +#X connect 44 0 45 0; +#X connect 45 0 46 0; +#X connect 45 0 77 0; +#X connect 46 0 6 0; +#X connect 47 0 79 0; +#X connect 48 0 8 0; +#X connect 48 0 19 0; +#X connect 49 0 47 0; +#X connect 49 1 48 0; +#X connect 78 0 21 0; +#X connect 81 0 11 0; +#X connect 82 0 23 0; +#X connect 83 0 24 0; +#X connect 84 0 25 0; +#X connect 85 0 26 0; +#X connect 86 0 30 0; +#X connect 87 0 29 0; +#X connect 88 0 46 0; +#X connect 88 0 90 0; +#X connect 89 0 92 0; +#X connect 90 0 45 0; +#X connect 92 0 91 0; +#X connect 95 0 8 0; +#X coords 0 -1 1 1 250 235 2 100 20; diff --git a/Gem/examples/12.multi_screen_projection/grid.jpg b/Gem/examples/12.multi_screen_projection/grid.jpg new file mode 100644 index 0000000..3f84359 Binary files /dev/null and b/Gem/examples/12.multi_screen_projection/grid.jpg differ diff --git a/Gem/examples/12.multi_screen_projection/load_save.pd b/Gem/examples/12.multi_screen_projection/load_save.pd new file mode 100644 index 0000000..8037857 --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/load_save.pd @@ -0,0 +1,40 @@ +#N canvas 140 207 521 345 10; +#X obj 258 43 bng 15 250 50 0 empty empty empty 17 7 0 10 -258699 -1 +-1; +#X msg 287 139 clear; +#X obj 248 227 textfile; +#X obj 308 185 list prepend add; +#X obj 308 206 list trim; +#X obj 54 59 bng 15 250 50 0 empty empty empty 17 7 0 10 -24198 -1 +-1; +#X obj 38 125 until; +#X text 75 61 load; +#X text 279 43 save; +#X obj 38 80 t b a; +#X obj 248 24 inlet; +#X obj 38 29 inlet; +#X msg 248 116 write config.txt; +#X msg 65 100 read config.txt \, rewind; +#X obj 308 164 r save_system_data; +#X obj 38 173 s save_system_saved; +#X obj 248 71 t b b b; +#X obj 267 92 s save_system_save; +#X obj 38 149 textfile; +#X connect 0 0 16 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 5 0 9 0; +#X connect 6 0 18 0; +#X connect 9 0 6 0; +#X connect 9 1 13 0; +#X connect 10 0 16 0; +#X connect 11 0 9 0; +#X connect 12 0 2 0; +#X connect 13 0 18 0; +#X connect 14 0 3 0; +#X connect 16 0 12 0; +#X connect 16 1 17 0; +#X connect 16 2 1 0; +#X connect 18 0 15 0; +#X connect 18 1 6 1; diff --git a/Gem/examples/12.multi_screen_projection/nfp_22.frag b/Gem/examples/12.multi_screen_projection/nfp_22.frag new file mode 100644 index 0000000..e3ce36c --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_22.frag @@ -0,0 +1,18 @@ +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect MyTex; +uniform float Sl,Sr,St,Sb; // shade size +varying vec2 pos; + + +void main (void) +{ + vec4 color = texture2DRect(MyTex, gl_TexCoord[0].st); + + color.a *=min(1.,pos.x/Sl); + color.a *=min(1.,(1.-pos.x)/Sr); + color.a *=min(1.,pos.y/St); + color.a *=min(1.,(1.-pos.y)/Sb); + + gl_FragColor = color; +} diff --git a/Gem/examples/12.multi_screen_projection/nfp_22.vert b/Gem/examples/12.multi_screen_projection/nfp_22.vert new file mode 100644 index 0000000..ab8f107 --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_22.vert @@ -0,0 +1,26 @@ +uniform vec2 Vtl,Vbl,Vtr,Vbr; // Vertex position +uniform vec2 Ttl,Tbl,Ttr,Tbr; // texture coordinate +uniform vec2 center; + +varying vec2 pos; + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + + vec4 position = gl_Vertex; + position.xy += 1.; + position.xy /= 2.; + pos = position.xy; + position.xy = pow(position.xy,center); + + vec2 tex_top = mix(Ttl,Ttr,pos.x); + vec2 tex_bottom = mix(Tbl,Tbr,pos.x); + gl_TexCoord[0].st = mix(tex_top,tex_bottom, pos.y); + + vec2 pos_top = mix(Vtl,Vtr,position.x); + vec2 pos_bottom = mix(Vbl,Vbr,position.x); + position.xy = mix(pos_top,pos_bottom, position.y); + + gl_Position = gl_ModelViewProjectionMatrix * position; +} diff --git a/Gem/examples/12.multi_screen_projection/nfp_33.frag b/Gem/examples/12.multi_screen_projection/nfp_33.frag new file mode 100644 index 0000000..e3ce36c --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_33.frag @@ -0,0 +1,18 @@ +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect MyTex; +uniform float Sl,Sr,St,Sb; // shade size +varying vec2 pos; + + +void main (void) +{ + vec4 color = texture2DRect(MyTex, gl_TexCoord[0].st); + + color.a *=min(1.,pos.x/Sl); + color.a *=min(1.,(1.-pos.x)/Sr); + color.a *=min(1.,pos.y/St); + color.a *=min(1.,(1.-pos.y)/Sb); + + gl_FragColor = color; +} diff --git a/Gem/examples/12.multi_screen_projection/nfp_33.vert b/Gem/examples/12.multi_screen_projection/nfp_33.vert new file mode 100644 index 0000000..68066b0 --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_33.vert @@ -0,0 +1,37 @@ +uniform vec2 Vtl,Vbl,Vtr,Vbr,Vtc,Vbc,Vcl,Vcr,Vcc; // Vertex position +uniform vec2 Ttl,Tbl,Ttr,Tbr; // texture coordinate +uniform vec2 center; + +varying vec2 pos; + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + + vec4 position = gl_Vertex; + position.xy += 1.; + position.xy /= 2.; + pos = position.xy; + + vec2 tex_top = mix(Ttl,Ttr,pos.x); + vec2 tex_bottom = mix(Tbl,Tbr,pos.x); + gl_TexCoord[0].st = mix(tex_top,tex_bottom, pos.y); + + vec2 pos_top1 = mix(Vtl,Vtc,position.x); + vec2 pos_top2 = mix(Vtc,Vtr,position.x); + vec2 pos_top = mix(pos_top1,pos_top2,position.x); + + vec2 pos_center1 = mix(Vcl,Vcc,position.x); + vec2 pos_center2 = mix(Vcc,Vcr,position.x); + vec2 pos_center = mix(pos_center1,pos_center2,position.x); + + vec2 pos_bottom1 = mix(Vbl,Vbc,position.x); + vec2 pos_bottom2 = mix(Vbc,Vbr,position.x); + vec2 pos_bottom = mix(pos_bottom1,pos_bottom2,position.x); + + vec2 position1 = mix(pos_top,pos_center,position.y); + vec2 position2 = mix(pos_center,pos_bottom,position.y); + position.xy = mix(position1,position2, position.y); + + gl_Position = gl_ModelViewProjectionMatrix * position; +} diff --git a/Gem/examples/12.multi_screen_projection/nfp_curved_wall.pd b/Gem/examples/12.multi_screen_projection/nfp_curved_wall.pd new file mode 100644 index 0000000..2222a6a --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_curved_wall.pd @@ -0,0 +1,413 @@ +#N canvas 32 138 1230 634 10; +#X obj 46 203 pix_texture; +#X obj 55 113 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 46 78 alpha; +#X obj 46 224 mesh_square 50 50; +#N canvas 160 123 480 574 glsl 0; +#X obj 78 179 glsl_vertex; +#X msg 32 178 print; +#X obj 78 466 glsl_program; +#X obj 163 395 pack 0 0; +#X msg 30 316 print; +#X obj 163 351 change; +#X obj 150 198 change; +#X msg 163 419 link \$1 \$2; +#X msg 32 460 print; +#X obj 77 330 glsl_fragment; +#X floatatom 163 375 2 0 0 0 ID - -; +#X floatatom 150 221 2 0 0 0 ID - -; +#X obj 181 440 print linking; +#X obj 15 21 inlet; +#X obj 78 502 outlet; +#X obj 418 21 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 487 change; +#X obj 157 508 t b; +#X obj 158 530 outlet; +#X obj 90 266 symbol; +#X obj 90 241 t b; +#X msg 287 438 0; +#X obj 15 65 t b b b; +#X msg 118 147 open nfp_33.vert; +#X msg 91 292 open nfp_33.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 46 130 pd glsl; +#X obj 46 51 gemhead \$1; +#X obj 501 216 cnv 15 238 130 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X text 522 219 Texture position (Pixel); +#X obj 519 247 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 105 256; +#X obj 519 267 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 13 256; +#X obj 619 247 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 367 256; +#X obj 619 267 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 0 256; +#X obj 519 297 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 0 256; +#X obj 519 317 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 227 256; +#X obj 619 297 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 416 256; +#X obj 619 317 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 265 256; +#X obj 501 349 cnv 15 238 180 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X obj 608 370 vsl 15 63 1 0 0 0 empty empty top 18 6 0 10 -262130 +-1 -1 6200 1; +#X obj 608 453 vsl 15 63 0 1 0 0 empty empty bottom 18 60 0 10 -262130 +-1 -1 0 1; +#X obj 626 436 hsl 63 15 1 0 0 0 empty empty right 30 -8 0 10 -262130 +-1 -1 5686 1; +#X obj 543 436 hsl 63 15 0 1 0 0 empty empty left 2 -8 0 10 -262130 +-1 -1 430 1; +#X text 509 367 Shade size; +#X obj 501 33 cnv 15 238 180 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 514 64 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 -1.16 256; +#X obj 514 84 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 3.35 256; +#X obj 675 64 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 1.31 256; +#X obj 675 84 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 3.95 256; +#X obj 514 164 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 -1.21 256; +#X obj 514 184 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -2.83 256; +#X obj 675 164 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 1.52 256; +#X obj 675 184 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -3.37 256; +#X text 522 36 Vertex position; +#X obj 99 105 r \$0-glsl; +#X obj 98 152 s \$0-init; +#X obj 754 20 r \$0-init; +#X obj 203 372 pack f f; +#X obj 249 347 t b f; +#X obj 309 373 pack f f; +#X obj 355 348 t b f; +#X obj 233 419 pack f f; +#X obj 279 394 t b f; +#X obj 339 420 pack f f; +#X obj 385 395 t b f; +#X msg 203 439 Ttl \$1 \$2; +#X msg 309 441 Ttr \$1 \$2; +#X msg 323 461 Tbr \$1 \$2; +#X msg 216 459 Tbl \$1 \$2; +#X obj 203 484 s \$0-glsl; +#X msg 204 515 Sl \$1; +#X msg 253 515 Sr \$1; +#X msg 300 515 St \$1; +#X msg 346 515 Sb \$1; +#X obj 204 539 s \$0-glsl; +#X obj 120 182 r nfp_fb; +#X obj 806 61 saved VP_TL_X-\$1; +#X obj 806 81 saved VP_TL_Y-\$1; +#X obj 806 161 saved VP_BL_X-\$1; +#X obj 806 181 saved VP_BL_Y-\$1; +#X obj 1036 61 saved VP_TR_X-\$1; +#X obj 1036 81 saved VP_TR_Y-\$1; +#X obj 1036 161 saved VP_BR_X-\$1; +#X obj 1036 181 saved VP_BR_Y-\$1; +#X obj 756 247 saved TP_TL_X-\$1; +#X obj 756 267 saved TP_TL_Y-\$1; +#X obj 756 297 saved TP_BL_X-\$1; +#X obj 756 317 saved TP_BL_Y-\$1; +#X obj 866 247 saved TP_TR_X-\$1; +#X obj 866 267 saved TP_TR_Y-\$1; +#X obj 866 297 saved TP_BR_X-\$1; +#X obj 866 317 saved TP_BR_Y-\$1; +#X obj 758 420 saved Shade_L-\$1; +#X obj 759 444 saved Shade_R-\$1; +#X obj 755 384 saved Shade_T-\$1; +#X obj 761 473 saved Shade_B-\$1; +#X obj 754 216 r \$0-init; +#X obj 754 356 r \$0-init; +#X obj 106 131 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 185 118 pack f f; +#X obj 231 93 t b f; +#X obj 391 119 pack f f; +#X obj 437 94 t b f; +#X obj 215 168 pack f f; +#X obj 261 143 t b f; +#X obj 421 169 pack f f; +#X obj 467 144 t b f; +#X msg 405 268 Vbr \$1 \$2; +#X msg 198 266 Vbl \$1 \$2; +#X obj 289 119 pack f f; +#X obj 335 94 t b f; +#X obj 319 169 pack f f; +#X obj 365 144 t b f; +#X msg 303 268 Vbc \$1 \$2; +#X obj 205 68 pack f f; +#X obj 251 43 t b f; +#X obj 411 69 pack f f; +#X obj 457 44 t b f; +#X obj 309 69 pack f f; +#X obj 355 44 t b f; +#X obj 185 301 s \$0-glsl; +#X obj 594 64 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 0.00999991 256; +#X obj 594 84 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 3.7 256; +#X obj 594 164 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 0.2 256; +#X obj 594 184 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -3.96001 256; +#X obj 916 61 saved VP_TC_X-\$1; +#X obj 916 81 saved VP_TC_Y-\$1; +#X obj 916 161 saved VP_BC_X-\$1; +#X obj 916 181 saved VP_BC_Y-\$1; +#X obj 514 114 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 -0.730001 256; +#X obj 514 134 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 0.76 256; +#X obj 675 114 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 1.79 256; +#X obj 675 134 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 2.34 256; +#X obj 594 114 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 0.55 256; +#X obj 594 134 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -0.35 256; +#X obj 806 111 saved VP_CL_X-\$1; +#X obj 806 131 saved VP_CL_Y-\$1; +#X obj 916 111 saved VP_CC_X-\$1; +#X obj 916 131 saved VP_CC_Y-\$1; +#X obj 1036 111 saved VP_CR_X-\$1; +#X obj 1036 131 saved VP_CR_Y-\$1; +#X msg 195 206 Vtl \$1 \$2; +#X msg 299 210 Vtc \$1 \$2; +#X msg 401 210 Vtr \$1 \$2; +#X msg 185 236 Vcl \$1 \$2; +#X msg 289 240 Vcc \$1 \$2; +#X msg 391 240 Vcr \$1 \$2; +#X connect 0 0 3 0; +#X connect 1 0 4 0; +#X connect 2 0 4 0; +#X connect 4 0 0 0; +#X connect 4 1 33 0; +#X connect 5 0 2 0; +#X connect 8 0 62 0; +#X connect 8 0 35 0; +#X connect 9 0 63 0; +#X connect 9 0 36 0; +#X connect 10 0 66 0; +#X connect 10 0 37 0; +#X connect 11 0 67 0; +#X connect 11 0 38 0; +#X connect 12 0 64 0; +#X connect 12 0 39 0; +#X connect 13 0 65 0; +#X connect 13 0 40 0; +#X connect 14 0 68 0; +#X connect 14 0 41 0; +#X connect 15 0 69 0; +#X connect 15 0 42 0; +#X connect 17 0 72 0; +#X connect 17 0 50 0; +#X connect 18 0 73 0; +#X connect 18 0 51 0; +#X connect 19 0 71 0; +#X connect 19 0 49 0; +#X connect 20 0 70 0; +#X connect 20 0 48 0; +#X connect 23 0 54 0; +#X connect 23 0 92 0; +#X connect 24 0 55 0; +#X connect 24 0 93 0; +#X connect 25 0 58 0; +#X connect 25 0 94 0; +#X connect 26 0 59 0; +#X connect 26 0 95 0; +#X connect 27 0 56 0; +#X connect 27 0 81 0; +#X connect 28 0 57 0; +#X connect 28 0 82 0; +#X connect 29 0 60 0; +#X connect 29 0 83 0; +#X connect 30 0 61 0; +#X connect 30 0 84 0; +#X connect 32 0 4 1; +#X connect 34 0 25 0; +#X connect 34 0 26 0; +#X connect 34 0 23 0; +#X connect 34 0 24 0; +#X connect 34 0 29 0; +#X connect 34 0 30 0; +#X connect 34 0 27 0; +#X connect 34 0 28 0; +#X connect 34 0 99 0; +#X connect 34 0 100 0; +#X connect 34 0 101 0; +#X connect 34 0 102 0; +#X connect 34 0 107 0; +#X connect 34 0 108 0; +#X connect 34 0 111 0; +#X connect 34 0 112 0; +#X connect 34 0 109 0; +#X connect 34 0 110 0; +#X connect 35 0 43 0; +#X connect 36 0 35 0; +#X connect 36 1 35 1; +#X connect 37 0 44 0; +#X connect 38 0 37 0; +#X connect 38 1 37 1; +#X connect 39 0 46 0; +#X connect 40 0 39 0; +#X connect 40 1 39 1; +#X connect 41 0 45 0; +#X connect 42 0 41 0; +#X connect 42 1 41 1; +#X connect 43 0 47 0; +#X connect 44 0 47 0; +#X connect 45 0 47 0; +#X connect 46 0 47 0; +#X connect 48 0 52 0; +#X connect 49 0 52 0; +#X connect 50 0 52 0; +#X connect 51 0 52 0; +#X connect 53 0 0 1; +#X connect 54 0 23 0; +#X connect 55 0 24 0; +#X connect 56 0 27 0; +#X connect 57 0 28 0; +#X connect 58 0 25 0; +#X connect 59 0 26 0; +#X connect 60 0 29 0; +#X connect 61 0 30 0; +#X connect 62 0 8 0; +#X connect 63 0 9 0; +#X connect 64 0 12 0; +#X connect 65 0 13 0; +#X connect 66 0 10 0; +#X connect 67 0 11 0; +#X connect 68 0 14 0; +#X connect 69 0 15 0; +#X connect 70 0 20 0; +#X connect 71 0 19 0; +#X connect 72 0 17 0; +#X connect 73 0 18 0; +#X connect 74 0 8 0; +#X connect 74 0 10 0; +#X connect 74 0 9 0; +#X connect 74 0 11 0; +#X connect 74 0 12 0; +#X connect 74 0 14 0; +#X connect 74 0 13 0; +#X connect 74 0 15 0; +#X connect 75 0 17 0; +#X connect 75 0 19 0; +#X connect 75 0 20 0; +#X connect 75 0 18 0; +#X connect 76 0 33 0; +#X connect 77 0 122 0; +#X connect 78 0 77 0; +#X connect 78 1 77 1; +#X connect 79 0 124 0; +#X connect 80 0 79 0; +#X connect 80 1 79 1; +#X connect 81 0 86 0; +#X connect 82 0 81 0; +#X connect 82 1 81 1; +#X connect 83 0 85 0; +#X connect 84 0 83 0; +#X connect 84 1 83 1; +#X connect 85 0 98 0; +#X connect 86 0 98 0; +#X connect 87 0 123 0; +#X connect 88 0 87 0; +#X connect 88 1 87 1; +#X connect 89 0 91 0; +#X connect 90 0 89 0; +#X connect 90 1 89 1; +#X connect 91 0 98 0; +#X connect 92 0 119 0; +#X connect 93 0 92 0; +#X connect 93 1 92 1; +#X connect 94 0 121 0; +#X connect 95 0 94 0; +#X connect 95 1 94 1; +#X connect 96 0 120 0; +#X connect 97 0 96 0; +#X connect 97 1 96 1; +#X connect 99 0 103 0; +#X connect 99 0 96 0; +#X connect 100 0 104 0; +#X connect 100 0 97 0; +#X connect 101 0 105 0; +#X connect 101 0 89 0; +#X connect 102 0 106 0; +#X connect 102 0 90 0; +#X connect 103 0 99 0; +#X connect 104 0 100 0; +#X connect 105 0 101 0; +#X connect 106 0 102 0; +#X connect 107 0 113 0; +#X connect 107 0 77 0; +#X connect 108 0 114 0; +#X connect 108 0 78 0; +#X connect 109 0 117 0; +#X connect 109 0 79 0; +#X connect 110 0 118 0; +#X connect 110 0 80 0; +#X connect 111 0 115 0; +#X connect 111 0 87 0; +#X connect 112 0 116 0; +#X connect 112 0 88 0; +#X connect 113 0 107 0; +#X connect 114 0 108 0; +#X connect 115 0 111 0; +#X connect 116 0 112 0; +#X connect 117 0 109 0; +#X connect 118 0 110 0; +#X connect 119 0 98 0; +#X connect 120 0 98 0; +#X connect 121 0 98 0; +#X connect 122 0 98 0; +#X connect 123 0 98 0; +#X connect 124 0 98 0; +#X coords 0 -1 1 1 240 520 1 500 10; diff --git a/Gem/examples/12.multi_screen_projection/nfp_flat_wall.pd b/Gem/examples/12.multi_screen_projection/nfp_flat_wall.pd new file mode 100644 index 0000000..d3a9146 --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_flat_wall.pd @@ -0,0 +1,313 @@ +#N canvas 329 146 948 576 10; +#X obj 46 203 pix_texture; +#X obj 55 113 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 46 78 alpha; +#X obj 46 224 mesh_square 50 50; +#N canvas 162 116 480 574 glsl 0; +#X obj 78 179 glsl_vertex; +#X msg 32 178 print; +#X obj 78 466 glsl_program; +#X obj 163 395 pack 0 0; +#X msg 30 316 print; +#X obj 163 351 change; +#X obj 150 198 change; +#X msg 163 419 link \$1 \$2; +#X msg 32 460 print; +#X obj 77 330 glsl_fragment; +#X floatatom 163 375 2 0 0 0 ID - -; +#X floatatom 150 221 2 0 0 0 ID - -; +#X obj 181 440 print linking; +#X obj 15 21 inlet; +#X obj 78 502 outlet; +#X obj 418 21 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 487 change; +#X obj 157 508 t b; +#X obj 158 530 outlet; +#X obj 90 266 symbol; +#X obj 90 241 t b; +#X msg 287 438 0; +#X obj 15 65 t b b b; +#X msg 118 147 open nfp_22.vert; +#X msg 90 293 open nfp_22.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 46 130 pd glsl; +#X obj 46 51 gemhead \$1; +#X obj 501 166 cnv 15 198 130 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X text 522 169 Texture position (Pixel); +#X obj 519 197 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 12 256; +#X obj 519 217 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 13 256; +#X obj 619 197 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 316 256; +#X obj 619 217 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 11 256; +#X obj 519 247 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 16 256; +#X obj 519 267 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 181 256; +#X obj 619 247 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 307 256; +#X obj 619 267 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 195 256; +#X obj 501 299 cnv 15 198 180 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X obj 608 320 vsl 15 63 1 0 0 0 empty empty top 18 6 0 10 -262130 +-1 -1 0 1; +#X obj 608 403 vsl 15 63 0 1 0 0 empty empty bottom 18 60 0 10 -262130 +-1 -1 0 1; +#X obj 626 386 hsl 63 15 1 0 0 0 empty empty right 30 -8 0 10 -262130 +-1 -1 0 1; +#X obj 543 386 hsl 63 15 0 1 0 0 empty empty left 2 -8 0 10 -262130 +-1 -1 0 1; +#X text 509 317 Shade size; +#X obj 501 33 cnv 15 198 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 519 64 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 -3.66001 256; +#X obj 519 84 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 1.52 256; +#X obj 619 64 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 0.62 256; +#X obj 619 84 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 1.92 256; +#X obj 519 114 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 -2.9 256; +#X obj 519 134 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -1.61 256; +#X obj 619 114 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 0.49 256; +#X obj 619 134 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -1.69 256; +#X text 522 36 Vertex position; +#X obj 201 206 pack f f; +#X obj 247 181 t b f; +#X obj 307 207 pack f f; +#X obj 353 182 t b f; +#X obj 231 256 pack f f; +#X obj 277 231 t b f; +#X obj 337 257 pack f f; +#X obj 383 232 t b f; +#X msg 201 277 Vtl \$1 \$2; +#X msg 337 299 Vbr \$1 \$2; +#X msg 230 297 Vbl \$1 \$2; +#X msg 307 279 Vtr \$1 \$2; +#X obj 99 105 r \$0-glsl; +#X obj 98 152 s \$0-init; +#X obj 704 36 r \$0-init; +#X obj 203 372 pack f f; +#X obj 249 347 t b f; +#X obj 309 373 pack f f; +#X obj 355 348 t b f; +#X obj 233 419 pack f f; +#X obj 279 394 t b f; +#X obj 339 420 pack f f; +#X obj 385 395 t b f; +#X msg 203 439 Ttl \$1 \$2; +#X msg 309 441 Ttr \$1 \$2; +#X msg 323 461 Tbr \$1 \$2; +#X msg 216 459 Tbl \$1 \$2; +#X obj 201 325 s \$0-glsl; +#X obj 203 484 s \$0-glsl; +#X msg 204 515 Sl \$1; +#X msg 253 515 Sr \$1; +#X msg 300 515 St \$1; +#X msg 346 515 Sb \$1; +#X obj 204 539 s \$0-glsl; +#X obj 120 182 r nfp_fb; +#X obj 706 61 saved VP_TL_X-\$1; +#X obj 706 81 saved VP_TL_Y-\$1; +#X obj 706 111 saved VP_BL_X-\$1; +#X obj 706 131 saved VP_BL_Y-\$1; +#X obj 816 61 saved VP_TR_X-\$1; +#X obj 816 81 saved VP_TR_Y-\$1; +#X obj 816 111 saved VP_BR_X-\$1; +#X obj 816 131 saved VP_BR_Y-\$1; +#X obj 706 197 saved TP_TL_X-\$1; +#X obj 706 217 saved TP_TL_Y-\$1; +#X obj 706 247 saved TP_BL_X-\$1; +#X obj 706 267 saved TP_BL_Y-\$1; +#X obj 816 197 saved TP_TR_X-\$1; +#X obj 816 217 saved TP_TR_Y-\$1; +#X obj 816 247 saved TP_BR_X-\$1; +#X obj 816 267 saved TP_BR_Y-\$1; +#X obj 708 370 saved Shade_L-\$1; +#X obj 709 394 saved Shade_R-\$1; +#X obj 705 334 saved Shade_T-\$1; +#X obj 711 423 saved Shade_B-\$1; +#X obj 704 166 r \$0-init; +#X obj 704 306 r \$0-init; +#X obj 106 131 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 226 44 r \$0-init; +#X obj 226 85 s \$0-glsl; +#X msg 226 65 center 1 1; +#X connect 0 0 3 0; +#X connect 1 0 4 0; +#X connect 2 0 4 0; +#X connect 4 0 0 0; +#X connect 4 1 45 0; +#X connect 5 0 2 0; +#X connect 8 0 75 0; +#X connect 8 0 47 0; +#X connect 9 0 76 0; +#X connect 9 0 48 0; +#X connect 10 0 79 0; +#X connect 10 0 49 0; +#X connect 11 0 80 0; +#X connect 11 0 50 0; +#X connect 12 0 77 0; +#X connect 12 0 51 0; +#X connect 13 0 78 0; +#X connect 13 0 52 0; +#X connect 14 0 81 0; +#X connect 14 0 53 0; +#X connect 15 0 82 0; +#X connect 15 0 54 0; +#X connect 17 0 85 0; +#X connect 17 0 63 0; +#X connect 18 0 86 0; +#X connect 18 0 64 0; +#X connect 19 0 84 0; +#X connect 19 0 62 0; +#X connect 20 0 83 0; +#X connect 20 0 61 0; +#X connect 23 0 32 0; +#X connect 23 0 67 0; +#X connect 24 0 33 0; +#X connect 24 0 68 0; +#X connect 25 0 34 0; +#X connect 25 0 71 0; +#X connect 26 0 35 0; +#X connect 26 0 72 0; +#X connect 27 0 36 0; +#X connect 27 0 69 0; +#X connect 28 0 37 0; +#X connect 28 0 70 0; +#X connect 29 0 38 0; +#X connect 29 0 73 0; +#X connect 30 0 39 0; +#X connect 30 0 74 0; +#X connect 32 0 40 0; +#X connect 33 0 32 0; +#X connect 33 1 32 1; +#X connect 34 0 43 0; +#X connect 35 0 34 0; +#X connect 35 1 34 1; +#X connect 36 0 42 0; +#X connect 37 0 36 0; +#X connect 37 1 36 1; +#X connect 38 0 41 0; +#X connect 39 0 38 0; +#X connect 39 1 38 1; +#X connect 40 0 59 0; +#X connect 41 0 59 0; +#X connect 42 0 59 0; +#X connect 43 0 59 0; +#X connect 44 0 4 1; +#X connect 46 0 25 0; +#X connect 46 0 26 0; +#X connect 46 0 23 0; +#X connect 46 0 24 0; +#X connect 46 0 29 0; +#X connect 46 0 30 0; +#X connect 46 0 27 0; +#X connect 46 0 28 0; +#X connect 47 0 55 0; +#X connect 48 0 47 0; +#X connect 48 1 47 1; +#X connect 49 0 56 0; +#X connect 50 0 49 0; +#X connect 50 1 49 1; +#X connect 51 0 58 0; +#X connect 52 0 51 0; +#X connect 52 1 51 1; +#X connect 53 0 57 0; +#X connect 54 0 53 0; +#X connect 54 1 53 1; +#X connect 55 0 60 0; +#X connect 56 0 60 0; +#X connect 57 0 60 0; +#X connect 58 0 60 0; +#X connect 61 0 65 0; +#X connect 62 0 65 0; +#X connect 63 0 65 0; +#X connect 64 0 65 0; +#X connect 66 0 0 1; +#X connect 67 0 23 0; +#X connect 68 0 24 0; +#X connect 69 0 27 0; +#X connect 70 0 28 0; +#X connect 71 0 25 0; +#X connect 72 0 26 0; +#X connect 73 0 29 0; +#X connect 74 0 30 0; +#X connect 75 0 8 0; +#X connect 76 0 9 0; +#X connect 77 0 12 0; +#X connect 78 0 13 0; +#X connect 79 0 10 0; +#X connect 80 0 11 0; +#X connect 81 0 14 0; +#X connect 82 0 15 0; +#X connect 83 0 20 0; +#X connect 84 0 19 0; +#X connect 85 0 17 0; +#X connect 86 0 18 0; +#X connect 87 0 8 0; +#X connect 87 0 10 0; +#X connect 87 0 9 0; +#X connect 87 0 11 0; +#X connect 87 0 12 0; +#X connect 87 0 14 0; +#X connect 87 0 13 0; +#X connect 87 0 15 0; +#X connect 88 0 17 0; +#X connect 88 0 19 0; +#X connect 88 0 20 0; +#X connect 88 0 18 0; +#X connect 89 0 45 0; +#X connect 90 0 92 0; +#X connect 92 0 91 0; +#X coords 0 -1 1 1 200 470 1 500 10; diff --git a/Gem/examples/12.multi_screen_projection/save_system-help.pd b/Gem/examples/12.multi_screen_projection/save_system-help.pd new file mode 100644 index 0000000..9345cbe --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/save_system-help.pd @@ -0,0 +1,20 @@ +#N canvas 219 286 450 300 10; +#X obj 19 67 load_save; +#X obj 19 9 loadbang; +#X obj 27 47 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 84 47 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X floatatom 277 88 5 0 0 0 - - -; +#X floatatom 277 108 5 0 0 0 - - -; +#X obj 171 86 saved data1; +#X obj 171 106 saved data2; +#X text 103 48 save; +#X text 43 49 load; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 1; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 6 0 4 0; +#X connect 7 0 5 0; diff --git a/Gem/examples/12.multi_screen_projection/saved.pd b/Gem/examples/12.multi_screen_projection/saved.pd new file mode 100644 index 0000000..499c0bd --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/saved.pd @@ -0,0 +1,24 @@ +#N canvas 545 325 474 372 10; +#X obj 268 0 t b; +#X obj 53 124 f; +#X obj 268 220 f; +#X obj 53 -21 inlet; +#X obj 53 284 outlet; +#X obj 268 266 list trim; +#X obj 268 247 list prepend \$1; +#X obj 268 285 s save_system_data; +#X obj 268 -26 r save_system_save; +#X obj 105 10 r save_system_saved; +#X obj 105 36 route \$1; +#X msg 53 263 set \$1; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 1 0 11 0; +#X connect 2 0 6 0; +#X connect 3 0 1 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 8 0 0 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X connect 11 0 4 0; diff --git a/Gem/examples/12.multi_screen_projection/soft_edge.frag b/Gem/examples/12.multi_screen_projection/soft_edge.frag new file mode 100644 index 0000000..1c2e35f --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/soft_edge.frag @@ -0,0 +1,62 @@ +// Cyrille Henry 2010 + +//#extension GL_ARB_texture_rectangle : enable +//uniform sampler2DRect MyTex; +uniform sampler2D MyTex; +uniform vec2 overlap, geometry_screen, geometry_computer; + +void main (void) +{ +// FSAA + +// change coord from computer matrix to screen matrice + vec2 coord = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; + vec2 pos_new = coord; + pos_new *= geometry_computer; + float screen_num = floor(pos_new.x)+floor(pos_new.y)*geometry_computer.x; // number of the screen + pos_new = fract(pos_new); // coord in 1 screen (from 0 to 1) + pos_new.x += fract(screen_num/geometry_screen.x)*geometry_screen.x; + pos_new.y += floor(screen_num/geometry_screen.x); + pos_new /= geometry_screen; + +// compute position regarding to the overlap + vec2 pos = pos_new; + pos *= geometry_screen; + + vec2 pos_over = fract(pos); + pos_over *= overlap; + pos_over -= overlap/2.; + pos += pos_over; + pos += overlap/2.; + pos /= geometry_screen + overlap; + vec4 color = texture2D(MyTex, pos); + +// compute fade on Top and Right + vec2 black = pos_new; + black *= geometry_screen; + black = fract(black); + black *= 1. + (overlap/ (geometry_screen/2.)); + black -= 1.; + black = max(black,0.); + black *= (geometry_screen / 2.) / overlap; + if ( ( floor(pos_new.x*geometry_screen.x) < geometry_screen.x-1. ) && (overlap.x != 0.) ) + color *= (1.-black.x); + if ( ( floor(pos_new.y*geometry_screen.y) < geometry_screen.y-1. ) && (overlap.x != 0.) ) + color *= (1.-black.y); + +// compute fade on Left and bottom + black = pos_new; + black *= geometry_screen; + black = fract(black); + black = vec2(1.) - black; + black *= 1. + (overlap/ (geometry_screen/2.)); + black -= 1.; + black = max(black,0.); + black *= (geometry_screen / 2.) / overlap; + if ( ( floor(pos_new.x*geometry_screen.x) > 0. ) && (overlap.x != 0.) ) + color *= (1.-black.x); + if ( ( floor(pos_new.y*geometry_screen.y) > 0. ) && (overlap.x != 0.) ) + color *= (1.-black.y); + + gl_FragColor = color; +} diff --git a/Gem/examples/13.recursion/01.repetition_is_futile.pd b/Gem/examples/13.recursion/01.repetition_is_futile.pd new file mode 100644 index 0000000..2fe7232 --- /dev/null +++ b/Gem/examples/13.recursion/01.repetition_is_futile.pd @@ -0,0 +1,61 @@ +#N canvas 0 0 602 516 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 48 10 create; +#X msg 55 33 destroy; +#X obj 14 93 gemhead; +#X obj 14 123 t a a; +#X obj 59 123 circle; +#X obj 14 153 separator; +#X obj 14 213 scale 0.7; +#X obj 14 173 rotate 45 0 0 1; +#X obj 14 243 t a a; +#X obj 59 243 circle; +#X obj 14 273 separator; +#X obj 14 333 scale 0.7; +#X obj 14 293 rotate 45 0 0 1; +#X obj 14 363 t a a; +#X obj 59 363 circle; +#X obj 14 193 translate 2 0 1 0; +#X obj 14 313 translate 2 0 1 0; +#X obj 14 393 separator; +#X obj 14 453 scale 0.7; +#X obj 14 413 rotate 45 0 0 1; +#X obj 14 433 translate 2 0 1 0; +#X obj 14 483 t a a; +#X obj 59 483 circle; +#X text 170 17 A tutorial on recursion in Gem; +#X text 170 37 (GPL) 2007 Claude Heiland-Allen +; +#X text 170 77 The simplest and most obvious way of working with Gem +is to create all the objects statically. That is \, the Gem chain (or +tree) is exactly what is visible in the patch.; +#X text 170 127 Say we way we want to make a spiral of circles. Even +with just 4 circles the repetition is painfully obvious \, and if we +wanted more the duplication would be painfully tedious.; +#X text 170 177 There is a powerful way to avoid this pain \, however +\, using recursion.; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 7 0; +#X connect 5 1 6 0; +#X connect 7 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 17 0; +#X connect 10 0 12 0; +#X connect 10 1 11 0; +#X connect 12 0 14 0; +#X connect 13 0 15 0; +#X connect 14 0 18 0; +#X connect 15 0 19 0; +#X connect 15 1 16 0; +#X connect 17 0 8 0; +#X connect 18 0 13 0; +#X connect 19 0 21 0; +#X connect 20 0 23 0; +#X connect 21 0 22 0; +#X connect 22 0 20 0; +#X connect 23 1 24 0; diff --git a/Gem/examples/13.recursion/02.iteration_is_insufficient.pd b/Gem/examples/13.recursion/02.iteration_is_insufficient.pd new file mode 100644 index 0000000..fad24c1 --- /dev/null +++ b/Gem/examples/13.recursion/02.iteration_is_insufficient.pd @@ -0,0 +1,33 @@ +#N canvas 0 0 602 259 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 48 10 create; +#X msg 55 33 destroy; +#X obj 14 93 gemhead; +#X obj 14 153 t a a; +#X obj 59 153 circle; +#X obj 14 223 scale 0.7; +#X obj 14 183 rotate 45 0 0 1; +#X obj 14 203 translate 2 0 1 0; +#X text 170 17 A tutorial on recursion in Gem; +#X text 170 37 (GPL) 2007 Claude Heiland-Allen +; +#X text 170 77 A common idiom in Gem is to use the [repeat] object +found in the Zexy library \, to generate multiple copies of the same +object. Let's try using it to make our spiral.; +#X obj 14 123 repeat 64; +#X text 170 127 And indeed \, it works well. But a spiral is a linear +structure \, without branches. Iteration has solved one problem \, +only to present us with another: what if we want a branching structure? +; +#X text 170 187 Recursion is an elegant solution to this problem.; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 13 0; +#X connect 5 0 8 0; +#X connect 5 1 6 0; +#X connect 8 0 9 0; +#X connect 9 0 7 0; +#X connect 13 0 5 0; diff --git a/Gem/examples/13.recursion/03.recursive_spiral.pd b/Gem/examples/13.recursion/03.recursive_spiral.pd new file mode 100644 index 0000000..2783fc8 --- /dev/null +++ b/Gem/examples/13.recursion/03.recursive_spiral.pd @@ -0,0 +1,71 @@ +#N canvas 3 2 602 516 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 48 10 create; +#X msg 55 33 destroy; +#X obj 14 93 gemhead; +#X obj 14 213 t a a; +#X obj 59 213 circle; +#X obj 14 283 scale 0.7; +#X obj 14 243 rotate 45 0 0 1; +#X obj 14 263 translate 2 0 1 0; +#X text 170 17 A tutorial on recursion in Gem; +#X text 170 37 (GPL) 2007 Claude Heiland-Allen +; +#X text 170 77 A common idiom in Gem is to use the [repeat] object +found in the Zexy library \, to generate multiple copies of the same +object. Let's try using it to make our spiral.; +#X obj 14 183 separator; +#X obj 24 163 r \$0-recurse; +#X obj 68 133 v \$0-depth; +#X obj 14 113 t a b; +#X obj 68 113 f 16; +#X floatatom 91 96 5 0 0 2 max-depth - -; +#X obj 36 433 s \$0-recurse; +#X obj 14 313 t b a b; +#X obj 99 343 v \$0-depth; +#X obj 99 363 - 1; +#X obj 99 383 max 0; +#X obj 99 403 v \$0-depth; +#X obj 36 413 spigot; +#X obj 14 343 v \$0-depth; +#X obj 14 383 v \$0-depth; +#X obj 14 363 + 1; +#X text 170 127 First \, we need to limit the depth of the recursion +\, to avoid the dreaded "stack overflow" errors from both Pd and OpenGL. +We set the maximum depth before doing anything else in the Gem chain. +; +#X text 170 187 Next \, we draw the circle and set up the transformations +for the recursive call.; +#X text 170 227 Finally \, we check that we are within the allowed +depth \, and recurse (after decrementing the maximum depth).; +#X text 170 267 At first glance \, this recursive solution is much +less elegant than the iterative solution with [repeat] \, and it is +-- for non-branching structures. The power of recursion comes from +the ease with which branching structures can be created.; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 16 0; +#X connect 5 0 8 0; +#X connect 5 1 6 0; +#X connect 7 0 20 0; +#X connect 8 0 9 0; +#X connect 9 0 7 0; +#X connect 13 0 5 0; +#X connect 14 0 13 0; +#X connect 16 0 13 0; +#X connect 16 1 17 0; +#X connect 17 0 15 0; +#X connect 18 0 17 1; +#X connect 20 0 26 0; +#X connect 20 1 25 0; +#X connect 20 2 21 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 0 25 1; +#X connect 25 0 19 0; +#X connect 26 0 28 0; +#X connect 28 0 27 0; diff --git a/Gem/examples/13.recursion/04.binary_tree.pd b/Gem/examples/13.recursion/04.binary_tree.pd new file mode 100644 index 0000000..ef8f69f --- /dev/null +++ b/Gem/examples/13.recursion/04.binary_tree.pd @@ -0,0 +1,98 @@ +#N canvas 3 2 602 516 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 48 10 create; +#X msg 55 33 destroy; +#X obj 14 93 gemhead; +#X text 170 17 A tutorial on recursion in Gem; +#X text 170 37 (GPL) 2007 Claude Heiland-Allen +; +#X obj 24 163 r \$0-recurse; +#X obj 68 133 v \$0-depth; +#X obj 14 113 t a b; +#X floatatom 91 96 5 0 0 2 max-depth - -; +#X obj 14 253 t a a; +#X obj 59 253 circle; +#X obj 14 223 separator; +#X obj 36 473 s \$0-recurse; +#X obj 14 353 t b a b; +#X obj 99 383 v \$0-depth; +#X obj 99 403 - 1; +#X obj 99 423 max 0; +#X obj 99 443 v \$0-depth; +#X obj 36 453 spigot; +#X obj 14 383 v \$0-depth; +#X obj 14 423 v \$0-depth; +#X obj 14 403 + 1; +#X obj 184 253 t a a; +#X obj 229 253 circle; +#X obj 206 473 s \$0-recurse; +#X obj 184 353 t b a b; +#X obj 269 383 v \$0-depth; +#X obj 269 403 - 1; +#X obj 269 423 max 0; +#X obj 269 443 v \$0-depth; +#X obj 206 453 spigot; +#X obj 184 383 v \$0-depth; +#X obj 184 423 v \$0-depth; +#X obj 184 403 + 1; +#X obj 184 223 separator; +#X obj 14 183 t a a; +#X obj 184 303 translate 1.5 0 1 0; +#X obj 184 323 scale 0.5; +#X obj 14 323 scale 0.5; +#X obj 14 303 translate 1.5 0 1 0; +#X obj 14 283 rotate -30 0 0 1; +#X obj 184 283 rotate 30 0 0 1; +#X obj 68 113 f 4; +#X text 170 77 The simplest recursive branching structure is one that +splits into two at each branch. Essentially what we are creating is +a circle \, plus two transformed copies of the whole structure \, limited +to a maximums depth of recursion.; +#X text 170 137 Be careful not to increase the max-depth too much: +the splitting at each recursion leads to an exponential increase in +the number of circles to be drawn.; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 9 0; +#X connect 7 0 37 0; +#X connect 9 0 37 0; +#X connect 9 1 44 0; +#X connect 10 0 44 1; +#X connect 11 0 42 0; +#X connect 11 1 12 0; +#X connect 13 0 11 0; +#X connect 15 0 21 0; +#X connect 15 1 20 0; +#X connect 15 2 16 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 18 0 20 1; +#X connect 20 0 14 0; +#X connect 21 0 23 0; +#X connect 23 0 22 0; +#X connect 24 0 43 0; +#X connect 24 1 25 0; +#X connect 27 0 33 0; +#X connect 27 1 32 0; +#X connect 27 2 28 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 31 0; +#X connect 30 0 32 1; +#X connect 32 0 26 0; +#X connect 33 0 35 0; +#X connect 35 0 34 0; +#X connect 36 0 24 0; +#X connect 37 0 13 0; +#X connect 37 1 36 0; +#X connect 38 0 39 0; +#X connect 39 0 27 0; +#X connect 40 0 15 0; +#X connect 41 0 40 0; +#X connect 42 0 41 0; +#X connect 43 0 38 0; +#X connect 44 0 8 0; diff --git a/Gem/examples/13.recursion/05.n-ary_tree.pd b/Gem/examples/13.recursion/05.n-ary_tree.pd new file mode 100644 index 0000000..91d0565 --- /dev/null +++ b/Gem/examples/13.recursion/05.n-ary_tree.pd @@ -0,0 +1,81 @@ +#N canvas 3 2 600 605 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 48 10 create; +#X msg 55 33 destroy; +#X obj 14 93 gemhead; +#X text 170 17 A tutorial on recursion in Gem; +#X text 170 37 (GPL) 2007 Claude Heiland-Allen +; +#X obj 30 159 r \$0-recurse; +#X obj 68 133 v \$0-depth; +#X obj 14 113 t a b; +#X floatatom 84 70 5 0 0 2 max-depth - -; +#X obj 14 187 t a a; +#X obj 60 188 circle; +#X obj 14 325 separator; +#X obj 36 536 s \$0-recurse; +#X obj 14 416 t b a b; +#X obj 99 446 v \$0-depth; +#X obj 99 466 - 1; +#X obj 99 486 max 0; +#X obj 99 506 v \$0-depth; +#X obj 36 516 spigot; +#X obj 14 446 v \$0-depth; +#X obj 14 486 v \$0-depth; +#X obj 14 466 + 1; +#X obj 68 113 f 4; +#X obj 14 346 rotate 0 0 0 1; +#X obj 126 303 * 72; +#X obj 14 366 translate 2 0 1 0; +#X obj 14 386 scale 0.35; +#X obj 14 270 nrepeat 5; +#X obj 119 236 t f f; +#X floatatom 118 196 5 0 0 2 count - -; +#X obj 149 259 swap 360; +#X obj 149 282 /; +#X obj 118 215 clip 1 16; +#X obj 84 89 clip 1 6; +#X text 170 77 Recursion can be combined with iteration to make complex +structures. However \, using the [repeat] from Zexy is no longer enough. +Trying to use it with an external counter leads to re-entrancy bugs +\, because the [repeat] is retriggered before the counter has finished +\, which messes up the counter's internal state. [nrepeat] is a "repeat +with a built in counter" \, which is re-entrancy safe.; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 9 0; +#X connect 7 0 11 0; +#X connect 9 0 11 0; +#X connect 9 1 24 0; +#X connect 10 0 35 0; +#X connect 11 0 29 0; +#X connect 11 1 12 0; +#X connect 13 0 25 0; +#X connect 15 0 21 0; +#X connect 15 1 20 0; +#X connect 15 2 16 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 18 0 20 1; +#X connect 20 0 14 0; +#X connect 21 0 23 0; +#X connect 23 0 22 0; +#X connect 24 0 8 0; +#X connect 25 0 27 0; +#X connect 26 0 25 1; +#X connect 27 0 28 0; +#X connect 28 0 15 0; +#X connect 29 0 13 0; +#X connect 29 1 26 0; +#X connect 30 0 29 1; +#X connect 30 1 32 0; +#X connect 31 0 34 0; +#X connect 32 0 33 0; +#X connect 32 1 33 1; +#X connect 33 0 26 1; +#X connect 34 0 30 0; +#X connect 35 0 24 1; diff --git a/Gem/examples/13.recursion/06.breaking_symmetry.pd b/Gem/examples/13.recursion/06.breaking_symmetry.pd new file mode 100644 index 0000000..c409aaf --- /dev/null +++ b/Gem/examples/13.recursion/06.breaking_symmetry.pd @@ -0,0 +1,384 @@ +#N canvas 4 2 673 560 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 55 33 destroy; +#X obj 14 92 gemhead; +#X text 220 17 A tutorial on recursion in Gem; +#X text 220 37 (GPL) 2007 Claude Heiland-Allen +; +#X obj 30 273 r \$0-recurse; +#X obj 14 301 t a a; +#X floatatom 72 360 5 0 0 2 count - -; +#X obj 72 379 clip 1 6; +#N canvas 0 0 368 384 \$0-transformations 0; +#X obj 19 19 inlet; +#X obj 250 19 inlet; +#X obj 19 343 outlet; +#X text 299 20 count; +#X text 72 19 gem; +#X text 74 344 gem; +#X obj 19 44 separator; +#X obj 19 315 scaleXYZ; +#X obj 19 225 translateXYZ; +#X obj 19 135 rotateXYZ; +#X obj 38 74 tabread \$0-rotate-X; +#X obj 57 94 tabread \$0-rotate-Y; +#X obj 77 114 tabread \$0-rotate-Z; +#X obj 45 164 tabread \$0-translate-X; +#X obj 71 184 tabread \$0-translate-Y; +#X obj 98 204 tabread \$0-translate-Z; +#X obj 36 254 tabread \$0-scale-X; +#X obj 53 274 tabread \$0-scale-Y; +#X obj 70 294 tabread \$0-scale-Z; +#X text 135 230 Transform the recursion branch \,; +#X connect 0 0 6 0; +#X connect 1 0 10 0; +#X connect 1 0 11 0; +#X connect 1 0 12 0; +#X connect 1 0 13 0; +#X connect 1 0 14 0; +#X connect 1 0 15 0; +#X connect 1 0 16 0; +#X connect 1 0 17 0; +#X connect 1 0 18 0; +#X connect 6 0 9 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 10 0 9 1; +#X connect 11 0 9 2; +#X connect 12 0 9 3; +#X connect 13 0 8 1; +#X connect 14 0 8 2; +#X connect 15 0 8 3; +#X connect 16 0 7 1; +#X connect 17 0 7 2; +#X connect 18 0 7 3; +#X restore 63 442 pd \$0-transformations; +#N canvas 0 0 679 337 \$0-colourize-and-limit-depth 0; +#X obj 297 19 inlet; +#X obj 293 298 outlet; +#X text 343 299 gem; +#X text 347 21 gem; +#X obj 436 18 inlet; +#X text 487 18 count; +#X obj 352 171 v \$0-depth; +#X obj 352 191 - 1; +#X obj 352 211 max 0; +#X obj 352 231 v \$0-depth; +#X obj 294 246 spigot; +#X obj 264 174 v \$0-depth; +#X obj 264 214 v \$0-depth; +#X obj 264 194 + 1; +#X obj 436 189 v \$0-R; +#X obj 436 229 v \$0-R; +#X obj 486 189 v \$0-G; +#X obj 486 229 v \$0-G; +#X obj 536 229 v \$0-B; +#X obj 536 189 v \$0-B; +#X obj 436 71 tabread \$0-colour-R; +#X obj 486 105 tabread \$0-colour-G; +#X obj 536 128 tabread \$0-colour-B; +#X text 442 248 Transform colours.; +#X text 251 271 Limit recursion depth.; +#X obj 536 209 + 1; +#X obj 486 209 + 1; +#X obj 435 209 + 1; +#X obj 297 52 t b a b; +#X obj 436 167 t b f; +#X obj 486 167 t b f; +#X obj 536 167 t b f; +#X obj 46 18 inlet; +#X text 97 18 count; +#X obj 46 189 v \$0-R; +#X obj 46 229 v \$0-R; +#X obj 96 189 v \$0-G; +#X obj 96 229 v \$0-G; +#X obj 146 229 v \$0-B; +#X obj 146 189 v \$0-B; +#X obj 46 71 tabread \$0-colour-R; +#X obj 96 105 tabread \$0-colour-G; +#X obj 146 128 tabread \$0-colour-B; +#X obj 46 167 t b f; +#X obj 96 167 t b f; +#X obj 146 167 t b f; +#X text 52 252 Untransform colours.; +#X obj 45 209 - 1; +#X obj 96 209 - 1; +#X obj 146 209 - 1; +#X connect 0 0 28 0; +#X connect 4 0 20 0; +#X connect 4 0 21 0; +#X connect 4 0 22 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 8 0 10 1; +#X connect 10 0 1 0; +#X connect 11 0 13 0; +#X connect 13 0 12 0; +#X connect 14 0 27 0; +#X connect 16 0 26 0; +#X connect 19 0 25 0; +#X connect 20 0 29 0; +#X connect 21 0 30 0; +#X connect 22 0 31 0; +#X connect 25 0 18 0; +#X connect 26 0 17 0; +#X connect 27 0 15 0; +#X connect 28 0 11 0; +#X connect 28 1 10 0; +#X connect 28 2 6 0; +#X connect 29 0 14 0; +#X connect 29 1 27 1; +#X connect 30 0 16 0; +#X connect 30 1 26 1; +#X connect 31 0 19 0; +#X connect 31 1 25 1; +#X connect 32 0 40 0; +#X connect 32 0 41 0; +#X connect 32 0 42 0; +#X connect 34 0 47 0; +#X connect 36 0 48 0; +#X connect 39 0 49 0; +#X connect 40 0 43 0; +#X connect 41 0 44 0; +#X connect 42 0 45 0; +#X connect 43 0 34 0; +#X connect 43 1 47 1; +#X connect 44 0 36 0; +#X connect 44 1 48 1; +#X connect 45 0 39 0; +#X connect 45 1 49 1; +#X connect 47 0 35 0; +#X connect 48 0 37 0; +#X connect 49 0 38 0; +#X restore 14 479 pd \$0-colourize-and-limit-depth; +#X obj 14 499 s \$0-recurse; +#X obj 14 223 t a b; +#N canvas 22 26 435 181 \$0-initialize 0; +#X obj 23 20 inlet; +#X text 68 19 bang; +#X obj 23 122 v \$0-depth; +#X obj 23 102 f 4; +#X obj 103 122 v \$0-R; +#X obj 153 122 v \$0-G; +#X obj 203 122 v \$0-B; +#X obj 160 21 inlet; +#X text 205 20 max depth; +#X text 18 146 Initialize the variables: recursion depth and object +colours.; +#X obj 203 98 f 0; +#X obj 153 99 f 0; +#X obj 103 98 f 0; +#X connect 0 0 3 0; +#X connect 0 0 10 0; +#X connect 0 0 11 0; +#X connect 0 0 12 0; +#X connect 3 0 2 0; +#X connect 7 0 3 1; +#X connect 10 0 6 0; +#X connect 11 0 5 0; +#X connect 12 0 4 0; +#X restore 44 243 pd \$0-initialize; +#X floatatom 151 200 5 0 0 2 depth - -; +#N canvas 0 0 340 391 \$0-draw-object 0; +#X obj 23 14 inlet; +#X text 69 13 gem; +#X obj 23 67 t a b b b; +#X obj 23 321 colorRGB; +#X obj 23 358 cube; +#X obj 240 291 inlet; +#X text 286 291 alpha; +#X obj 42 106 v \$0-R; +#X obj 120 104 v \$0-G; +#X obj 198 104 v \$0-B; +#X text 125 76 Normalize the colour range.; +#X obj 23 41 separator; +#X obj 42 253 expr $f1/$f4 \; $f2/$f4 \; $f3/$f4; +#X obj 42 128 expr $f1 \; $f2 \; $f3 \; max(max(max($f1 \, $f2) \, +$f3) \, 1); +#X connect 0 0 11 0; +#X connect 2 0 3 0; +#X connect 2 1 7 0; +#X connect 2 2 8 0; +#X connect 2 3 9 0; +#X connect 3 0 4 0; +#X connect 5 0 3 4; +#X connect 7 0 13 0; +#X connect 8 0 13 1; +#X connect 9 0 13 2; +#X connect 11 0 2 0; +#X connect 12 0 3 1; +#X connect 12 1 3 2; +#X connect 12 2 3 3; +#X connect 13 0 12 0; +#X connect 13 1 12 1; +#X connect 13 2 12 2; +#X connect 13 3 12 3; +#X restore 44 321 pd \$0-draw-object; +#X floatatom 158 279 5 0 0 2 alpha - -; +#X obj 158 299 / 100; +#N canvas 0 0 650 615 \$0-gui 0; +#X obj 11 11 xform-gui 0; +#X obj 167 263 t a; +#X msg 167 293 \$3 \$1 \$2; +#X obj 167 329 unpack f f s; +#X obj 246 355 select cR cG cB rX rY rZ tX tY tZ sX sY sZ; +#X obj 167 576 tabwrite; +#X obj 246 485 symbol \$0-colour-R; +#X obj 270 465 symbol \$0-colour-G; +#X obj 294 445 symbol \$0-colour-B; +#X obj 318 425 symbol \$0-rotate-X; +#X obj 342 405 symbol \$0-rotate-Y; +#X obj 366 385 symbol \$0-rotate-Z; +#X obj 390 485 symbol \$0-translate-X; +#X obj 414 465 symbol \$0-translate-Y; +#X obj 438 445 symbol \$0-translate-Z; +#X obj 462 425 symbol \$0-scale-X; +#X obj 486 405 symbol \$0-scale-Y; +#X obj 510 385 symbol \$0-scale-Z; +#X obj 374 552 list prepend set; +#X obj 374 572 list trim; +#X obj 495 112 inlet; +#X obj 71 11 xform-gui 1; +#X obj 131 11 xform-gui 2; +#X obj 191 11 xform-gui 3; +#X obj 251 11 xform-gui 4; +#X obj 311 11 xform-gui 5; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 3 1 5 1; +#X connect 3 2 4 0; +#X connect 4 0 6 0; +#X connect 4 1 7 0; +#X connect 4 2 8 0; +#X connect 4 3 9 0; +#X connect 4 4 10 0; +#X connect 4 5 11 0; +#X connect 4 6 12 0; +#X connect 4 7 13 0; +#X connect 4 8 14 0; +#X connect 4 9 15 0; +#X connect 4 10 16 0; +#X connect 4 11 17 0; +#X connect 6 0 18 0; +#X connect 7 0 18 0; +#X connect 8 0 18 0; +#X connect 9 0 18 0; +#X connect 10 0 18 0; +#X connect 11 0 18 0; +#X connect 12 0 18 0; +#X connect 13 0 18 0; +#X connect 14 0 18 0; +#X connect 15 0 18 0; +#X connect 16 0 18 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 5 0; +#X connect 20 0 0 0; +#X connect 20 0 21 0; +#X connect 20 0 22 0; +#X connect 20 0 23 0; +#X connect 20 0 24 0; +#X connect 20 0 25 0; +#X connect 21 0 1 0; +#X connect 22 0 1 0; +#X connect 23 0 1 0; +#X connect 24 0 1 0; +#X connect 25 0 1 0; +#X coords 0 -1 1 1 362 212 2 10 10; +#X restore 275 286 pd \$0-gui; +#X text 460 263 transformation parameters; +#N canvas 0 0 360 364 \$0-transformation-parameters 0; +#X obj 21 318 table \$0-scale-Z 6; +#X obj 21 298 table \$0-scale-Y 6; +#X obj 21 278 table \$0-scale-X 6; +#X obj 21 208 table \$0-translate-X 6; +#X obj 21 228 table \$0-translate-Y 6; +#X obj 21 248 table \$0-translate-Z 6; +#X obj 21 178 table \$0-rotate-Z 6; +#X obj 21 158 table \$0-rotate-Y 6; +#X obj 21 138 table \$0-rotate-X 6; +#X obj 21 68 table \$0-colour-R 6; +#X obj 21 88 table \$0-colour-G 6; +#X obj 21 108 table \$0-colour-B 6; +#X text 21 29 Tables to store transformation parameters.; +#X restore 418 506 pd \$0-transformation-parameters; +#X obj 14 191 alpha; +#X msg 37 164 auto \$1; +#X obj 38 139 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#N canvas 0 0 471 288 \$0-scene-transformation 0; +#X obj 20 20 inlet; +#X obj 20 42 t a b; +#X obj 20 149 rotateXYZ; +#X obj 50 67 f 0; +#X obj 88 67 + 1; +#X obj 62 98 / 1.618; +#X obj 82 122 / 1.618; +#X obj 20 217 scale 0.05; +#X obj 53 191 inlet; +#X obj 20 252 outlet; +#X text 152 215 Scale the whole scene.; +#X text 158 67 Rotate the whole scene continuously.; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 2 0 7 0; +#X connect 3 0 4 0; +#X connect 3 0 2 1; +#X connect 3 0 5 0; +#X connect 4 0 3 1; +#X connect 5 0 2 2; +#X connect 5 0 6 0; +#X connect 6 0 2 3; +#X connect 7 0 9 0; +#X connect 8 0 7 1; +#X restore 14 115 pd \$0-scene-transformation; +#X floatatom 158 69 5 0 0 2 scale - -; +#X obj 158 89 / 100; +#X obj 151 221 clip 0 6; +#X text 219 182 Subpatches are used to hide the implementation details +of each part of the patch. Further comments are inside.; +#X obj 275 260 bng 15 250 50 1 empty empty randomize 17 7 0 10 -262144 +-1 -1; +#X obj 14 404 nnrepeat 5; +#X text 220 77 Another new object is necessary for full effect: [nnrepeat] +which outputs the repeat count both before and after the repeated value +\, thus we can do and undo actions before and after \, such as colourizing +the geos according to the transformations. Allowing different parameters +for each transformation means we can create non-symmetric structures +with some sort of self-similarity.; +#X msg 48 13 create; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 25 0; +#X connect 6 0 7 0; +#X connect 7 0 31 0; +#X connect 7 1 16 0; +#X connect 8 0 9 0; +#X connect 9 0 31 1; +#X connect 10 0 11 1; +#X connect 11 0 12 0; +#X connect 13 0 7 0; +#X connect 13 1 14 0; +#X connect 15 0 28 0; +#X connect 17 0 18 0; +#X connect 18 0 16 1; +#X connect 22 0 13 0; +#X connect 23 0 22 0; +#X connect 24 0 23 0; +#X connect 25 0 22 0; +#X connect 26 0 27 0; +#X connect 27 0 25 1; +#X connect 28 0 14 1; +#X connect 30 0 19 0; +#X connect 31 0 11 0; +#X connect 31 1 10 0; +#X connect 31 2 10 1; +#X connect 31 2 11 2; +#X connect 33 0 0 0; diff --git a/Gem/examples/13.recursion/README b/Gem/examples/13.recursion/README new file mode 100644 index 0000000..90b5cf4 --- /dev/null +++ b/Gem/examples/13.recursion/README @@ -0,0 +1,23 @@ +gem-recursion -- a tutorial on using recursion with Gem +Copyright (C) 2007 Claude Heiland-Allen + + +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 2 +of the License, or (at your option) any later version. + +This program 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, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +Requirements: +(*) pd-0.40-2 or greater +(*) Gem for pd +(*) Zexy for pd diff --git a/Gem/examples/13.recursion/nnrepeat-help.pd b/Gem/examples/13.recursion/nnrepeat-help.pd new file mode 100644 index 0000000..b23304e --- /dev/null +++ b/Gem/examples/13.recursion/nnrepeat-help.pd @@ -0,0 +1,28 @@ +#N canvas 0 0 506 325 10; +#X floatatom 87 195 5 0 0 0 - - -; +#X text 94 11 - repeat a message several times with counter; +#X obj 54 273 print repeat; +#X msg 22 110 bang; +#X msg 49 136 1 1 2 3 5 8 13 21 44 fibonacchi; +#X text 63 111 repeat bangs; +#X text 282 138 repeat a list; +#X msg 69 166 set 5; +#X text 117 167 repeat anything; +#X text 127 194 reset the number of repetitions; +#X text 100 220 creation argument initializes the number of repeats +; +#X obj 19 12 nnrepeat 1; +#X obj 22 219 nnrepeat 3; +#X obj 87 250 print n1; +#X obj 22 297 print n2; +#X text 19 44 Similar to [repeat] from Zexy but outputs the repetition +count from the right-hand outlet then outputs the repeated input from +the middle outlet \, then outputs the repetition count again from the +left-hand outlet.; +#X connect 0 0 12 1; +#X connect 3 0 12 0; +#X connect 4 0 12 0; +#X connect 7 0 12 0; +#X connect 12 0 14 0; +#X connect 12 1 2 0; +#X connect 12 2 13 0; diff --git a/Gem/examples/13.recursion/nnrepeat-test.pd b/Gem/examples/13.recursion/nnrepeat-test.pd new file mode 100644 index 0000000..91b5c94 --- /dev/null +++ b/Gem/examples/13.recursion/nnrepeat-test.pd @@ -0,0 +1,55 @@ +#N canvas 0 0 481 517 10; +#X obj 71 95 r \$0-recurse; +#X obj 71 380 s \$0-recurse; +#X obj 140 270 t b a b; +#X obj 224 290 v \$0-depth; +#X obj 224 310 - 1; +#X obj 224 330 max 0; +#X obj 162 350 spigot; +#X obj 224 350 v \$0-depth; +#X obj 185 160 t b f; +#X obj 185 183 v \$0-depth; +#X obj 185 208 pack f f; +#X obj 140 290 v \$0-depth; +#X obj 140 330 v \$0-depth; +#X obj 140 310 + 1; +#X obj 108 50 t a b; +#X msg 108 21 nrepeat test; +#X obj 285 108 v \$0-depth; +#X floatatom 262 77 5 0 0 2 max-depth - -; +#X floatatom 261 38 5 0 0 2 repetitions - -; +#X obj 246 108 f 3; +#X obj 185 235 print ->; +#X obj 98 160 t b f; +#X obj 98 183 v \$0-depth; +#X obj 98 208 pack f f; +#X obj 98 235 print <-; +#X obj 108 135 nnrepeat 2; +#X connect 0 0 25 0; +#X connect 2 0 11 0; +#X connect 2 1 6 0; +#X connect 2 2 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 5 0 7 0; +#X connect 6 0 1 0; +#X connect 8 0 9 0; +#X connect 8 1 10 1; +#X connect 9 0 10 0; +#X connect 10 0 20 0; +#X connect 11 0 13 0; +#X connect 13 0 12 0; +#X connect 14 0 25 0; +#X connect 14 1 19 0; +#X connect 15 0 14 0; +#X connect 17 0 19 1; +#X connect 18 0 25 1; +#X connect 19 0 16 0; +#X connect 21 0 22 0; +#X connect 21 1 23 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 25 0 21 0; +#X connect 25 1 2 0; +#X connect 25 2 8 0; diff --git a/Gem/examples/13.recursion/nnrepeat.pd b/Gem/examples/13.recursion/nnrepeat.pd new file mode 100644 index 0000000..c0e89d1 --- /dev/null +++ b/Gem/examples/13.recursion/nnrepeat.pd @@ -0,0 +1,27 @@ +#N canvas 0 0 400 328 10; +#X obj 61 94 nrepeat \$1; +#X obj 136 21 inlet; +#X text 178 21 count; +#X obj 27 20 inlet; +#X text 68 21 repeatee; +#X obj 88 175 stack; +#X obj 61 136 t b a; +#X obj 126 137 t f f; +#X obj 25 262 outlet; +#X text 75 263 count; +#X obj 132 263 outlet; +#X text 182 264 repeated; +#X obj 256 263 outlet; +#X text 311 265 count; +#X obj 132 209 print nnrepeat-internal-error; +#X text 23 295 nnrepeat.pd (GPL) ; +#X connect 0 0 6 0; +#X connect 0 1 7 0; +#X connect 1 0 0 1; +#X connect 3 0 0 0; +#X connect 5 0 8 0; +#X connect 5 1 14 0; +#X connect 6 0 5 0; +#X connect 6 1 10 0; +#X connect 7 0 12 0; +#X connect 7 1 5 1; diff --git a/Gem/examples/13.recursion/nrepeat-help.pd b/Gem/examples/13.recursion/nrepeat-help.pd new file mode 100644 index 0000000..41f21de --- /dev/null +++ b/Gem/examples/13.recursion/nrepeat-help.pd @@ -0,0 +1,25 @@ +#N canvas 0 0 506 325 10; +#X floatatom 80 196 5 0 0 0 - - -; +#X obj 19 12 nrepeat 1; +#X text 94 11 - repeat a message several times with counter; +#X text 19 44 Similar to [repeat] from Zexy but also outputs the repetition +count from the right-hand outlet before it outputs the repeated input +from the left-hand outlet.; +#X obj 22 219 nrepeat 3; +#X obj 22 273 print repeat; +#X obj 80 249 print n; +#X msg 22 110 bang; +#X msg 49 136 1 1 2 3 5 8 13 21 44 fibonacchi; +#X text 63 111 repeat bangs; +#X text 282 138 repeat a list; +#X msg 69 166 set 5; +#X text 117 167 repeat anything; +#X text 127 194 reset the number of repetitions; +#X text 100 220 creation argument initializes the number of repeats +; +#X connect 0 0 4 1; +#X connect 4 0 5 0; +#X connect 4 1 6 0; +#X connect 7 0 4 0; +#X connect 8 0 4 0; +#X connect 11 0 4 0; diff --git a/Gem/examples/13.recursion/nrepeat-test.pd b/Gem/examples/13.recursion/nrepeat-test.pd new file mode 100644 index 0000000..48348b3 --- /dev/null +++ b/Gem/examples/13.recursion/nrepeat-test.pd @@ -0,0 +1,46 @@ +#N canvas 0 0 481 517 10; +#X obj 71 95 r \$0-recurse; +#X obj 71 380 s \$0-recurse; +#X obj 108 260 t b a b; +#X obj 192 280 v \$0-depth; +#X obj 192 300 - 1; +#X obj 192 320 max 0; +#X obj 130 340 spigot; +#X obj 192 340 v \$0-depth; +#X obj 166 160 t b f; +#X obj 166 183 v \$0-depth; +#X obj 166 208 pack f f; +#X obj 165 239 print nrepeat; +#X obj 108 280 v \$0-depth; +#X obj 108 320 v \$0-depth; +#X obj 108 300 + 1; +#X obj 108 50 t a b; +#X msg 108 21 nrepeat test; +#X obj 285 108 v \$0-depth; +#X floatatom 262 77 5 0 0 2 max-depth - -; +#X floatatom 261 38 5 0 0 2 repetitions - -; +#X obj 246 108 f 3; +#X obj 108 135 nrepeat 2; +#X connect 0 0 21 0; +#X connect 2 0 12 0; +#X connect 2 1 6 0; +#X connect 2 2 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 5 0 7 0; +#X connect 6 0 1 0; +#X connect 8 0 9 0; +#X connect 8 1 10 1; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 12 0 14 0; +#X connect 14 0 13 0; +#X connect 15 0 21 0; +#X connect 15 1 20 0; +#X connect 16 0 15 0; +#X connect 18 0 20 1; +#X connect 19 0 21 1; +#X connect 20 0 17 0; +#X connect 21 0 2 0; +#X connect 21 1 8 0; diff --git a/Gem/examples/13.recursion/nrepeat.pd b/Gem/examples/13.recursion/nrepeat.pd new file mode 100644 index 0000000..4d26d68 --- /dev/null +++ b/Gem/examples/13.recursion/nrepeat.pd @@ -0,0 +1,49 @@ +#N canvas 0 0 413 451 10; +#X obj 78 26 inlet; +#X obj 78 60 t b a b; +#X obj 131 121 repeat \$1; +#X obj 189 24 inlet; +#X obj 92 239 stack; +#X msg 122 192 0; +#X msg 146 239 0; +#X obj 78 192 t b b; +#X obj 131 142 t a b; +#X obj 161 193 t b b; +#X msg 176 240 1; +#X obj 92 267 list prepend; +#X obj 92 295 route 0 1; +#X text 86 312 nop; +#X obj 121 321 t f f; +#X obj 236 195 + 1; +#X obj 121 361 outlet; +#X obj 10 205 outlet; +#X obj 187 298 print nrepeat-stack-underflow; +#X obj 187 328 print nrepeat-internal-error; +#X text 119 24 repeatee; +#X text 233 23 count; +#X text 8 225 repeated; +#X text 119 381 counter; +#X text 30 419 nrepeat.pd (GPL) ; +#X connect 0 0 1 0; +#X connect 1 0 7 0; +#X connect 1 1 2 0; +#X connect 1 2 5 0; +#X connect 2 0 8 0; +#X connect 3 0 2 1; +#X connect 4 0 11 0; +#X connect 4 1 18 0; +#X connect 5 0 4 1; +#X connect 6 0 11 1; +#X connect 7 0 4 0; +#X connect 7 1 6 0; +#X connect 8 0 17 0; +#X connect 8 1 9 0; +#X connect 9 0 4 0; +#X connect 9 1 10 0; +#X connect 10 0 11 1; +#X connect 11 0 12 0; +#X connect 12 1 14 0; +#X connect 12 2 19 0; +#X connect 14 0 16 0; +#X connect 14 1 15 0; +#X connect 15 0 4 1; diff --git a/Gem/examples/13.recursion/stack-help.pd b/Gem/examples/13.recursion/stack-help.pd new file mode 100644 index 0000000..b891067 --- /dev/null +++ b/Gem/examples/13.recursion/stack-help.pd @@ -0,0 +1,20 @@ +#N canvas 0 0 411 333 10; +#X obj 43 199 stack; +#X obj 43 269 print popped; +#X obj 73 249 print empty; +#X msg 130 163 list foo 2 bar; +#X floatatom 73 108 5 0 0 1 float - -; +#X obj 43 79 bng 15 250 50 0 empty empty pop 17 7 0 10 -262144 -1 -1 +; +#X symbolatom 101 135 10 0 0 1 symbol - -; +#X text 241 164 mixture of stuff; +#X text 13 9 A stack is a "first in \, last out" structure.; +#X text 13 48 Right inlet stores atom(s).; +#X text 13 29 Left inlet unstores the most recently stored atom.; +#X text 11 301 stack-help.pd (GPL) ; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 3 0 0 1; +#X connect 4 0 0 1; +#X connect 5 0 0 0; +#X connect 6 0 0 1; diff --git a/Gem/examples/13.recursion/stack.pd b/Gem/examples/13.recursion/stack.pd new file mode 100644 index 0000000..789ea8f --- /dev/null +++ b/Gem/examples/13.recursion/stack.pd @@ -0,0 +1,38 @@ +#N canvas 0 0 351 366 10; +#X obj 25 19 inlet; +#X text 69 18 pop; +#X obj 166 18 inlet; +#X text 213 17 push; +#X obj 25 53 t b b; +#X obj 25 152 list prepend; +#X msg 88 127 0; +#X msg 121 127 1; +#X obj 25 183 route 0 1; +#X obj 25 251 list split 1; +#X obj 25 298 outlet; +#X obj 25 97 list; +#X text 79 298 popped; +#X obj 166 299 outlet; +#X text 220 298 empty; +#X obj 166 47 t b a b; +#X obj 109 217 list prepend; +#X obj 120 182 print stack-internal-error; +#X text 17 330 stack.pd (GPL) ; +#X connect 0 0 4 0; +#X connect 2 0 15 0; +#X connect 4 0 11 0; +#X connect 4 1 6 0; +#X connect 5 0 8 0; +#X connect 6 0 5 1; +#X connect 7 0 5 1; +#X connect 8 0 9 0; +#X connect 8 1 16 0; +#X connect 8 2 17 0; +#X connect 9 0 10 0; +#X connect 9 1 11 1; +#X connect 9 2 13 0; +#X connect 11 0 5 0; +#X connect 15 0 11 0; +#X connect 15 1 16 1; +#X connect 15 2 7 0; +#X connect 16 0 11 1; diff --git a/Gem/examples/13.recursion/xform-gui.pd b/Gem/examples/13.recursion/xform-gui.pd new file mode 100644 index 0000000..efe1e89 --- /dev/null +++ b/Gem/examples/13.recursion/xform-gui.pd @@ -0,0 +1,120 @@ +#N canvas 0 0 476 324 10; +#X obj 340 251 list prepend \$1; +#X obj 340 275 outlet; +#X floatatom 220 13 5 0 0 0 cR - -; +#X floatatom 220 29 5 0 0 0 cG - -; +#X floatatom 220 45 5 0 0 0 cB - -; +#X floatatom 220 66 5 0 0 0 rX - -; +#X floatatom 220 82 5 0 0 0 rY - -; +#X floatatom 220 98 5 0 0 0 rZ - -; +#X floatatom 220 119 5 0 0 0 tX - -; +#X floatatom 220 135 5 0 0 0 tY - -; +#X floatatom 220 151 5 0 0 0 tZ - -; +#X floatatom 220 172 5 0 0 0 sX - -; +#X floatatom 220 188 5 0 0 0 sY - -; +#X floatatom 220 204 5 0 0 0 sZ - -; +#X obj 282 173 / 100; +#X obj 282 193 / 100; +#X obj 282 213 / 100; +#X obj 282 111 / 10; +#X obj 282 131 / 10; +#X obj 282 151 / 10; +#X obj 341 5 list prepend cR; +#X obj 341 65 list prepend rX; +#X obj 341 85 list prepend rY; +#X obj 341 105 list prepend rZ; +#X obj 341 125 list prepend tX; +#X obj 341 145 list prepend tY; +#X obj 341 165 list prepend tZ; +#X obj 341 185 list prepend sX; +#X obj 341 205 list prepend sY; +#X obj 341 225 list prepend sZ; +#X obj 341 25 list prepend cG; +#X obj 341 45 list prepend cB; +#X obj 67 70 random 360; +#X obj 67 90 random 360; +#X obj 67 110 random 360; +#X obj 147 110 - 180; +#X obj 147 90 - 180; +#X obj 147 70 - 180; +#X obj 67 130 random 360; +#X obj 67 150 random 360; +#X obj 67 170 random 360; +#X obj 147 170 - 180; +#X obj 147 150 - 180; +#X obj 147 130 - 180; +#X obj 8 6 inlet; +#X obj 67 10 random 5; +#X obj 67 30 random 5; +#X obj 67 50 random 5; +#X obj 67 190 random 50; +#X obj 67 210 random 50; +#X obj 67 230 random 50; +#X obj 147 190 + 50; +#X obj 147 210 + 50; +#X obj 147 230 + 50; +#X connect 0 0 1 0; +#X connect 2 0 20 0; +#X connect 3 0 30 0; +#X connect 4 0 31 0; +#X connect 5 0 21 0; +#X connect 6 0 22 0; +#X connect 7 0 23 0; +#X connect 8 0 17 0; +#X connect 9 0 18 0; +#X connect 10 0 19 0; +#X connect 11 0 14 0; +#X connect 12 0 15 0; +#X connect 13 0 16 0; +#X connect 14 0 27 0; +#X connect 15 0 28 0; +#X connect 16 0 29 0; +#X connect 17 0 24 0; +#X connect 18 0 25 0; +#X connect 19 0 26 0; +#X connect 20 0 0 0; +#X connect 21 0 0 0; +#X connect 22 0 0 0; +#X connect 23 0 0 0; +#X connect 24 0 0 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 37 0; +#X connect 33 0 36 0; +#X connect 34 0 35 0; +#X connect 35 0 7 0; +#X connect 36 0 6 0; +#X connect 37 0 5 0; +#X connect 38 0 43 0; +#X connect 39 0 42 0; +#X connect 40 0 41 0; +#X connect 41 0 10 0; +#X connect 42 0 9 0; +#X connect 43 0 8 0; +#X connect 44 0 32 0; +#X connect 44 0 33 0; +#X connect 44 0 34 0; +#X connect 44 0 38 0; +#X connect 44 0 39 0; +#X connect 44 0 40 0; +#X connect 44 0 45 0; +#X connect 44 0 46 0; +#X connect 44 0 47 0; +#X connect 44 0 48 0; +#X connect 44 0 49 0; +#X connect 44 0 50 0; +#X connect 45 0 2 0; +#X connect 46 0 3 0; +#X connect 47 0 4 0; +#X connect 48 0 51 0; +#X connect 49 0 52 0; +#X connect 50 0 53 0; +#X connect 51 0 11 0; +#X connect 52 0 12 0; +#X connect 53 0 13 0; +#X coords 0 -1 1 1 60 210 2 200 10; diff --git a/Gem/examples/14.multiple_windows/01.basic_example.pd b/Gem/examples/14.multiple_windows/01.basic_example.pd new file mode 100644 index 0000000..078ca67 --- /dev/null +++ b/Gem/examples/14.multiple_windows/01.basic_example.pd @@ -0,0 +1,29 @@ +#N canvas 602 711 828 296 10; +#X obj 88 241 gemwin 20 a; +#X obj 295 79 square; +#X obj 295 49 color 1 0 0 1; +#X obj 94 77 square; +#X obj 94 47 color 0 0 1 1; +#X obj 94 25 gemhead a; +#X msg 88 199 title a \, create \, 1; +#X msg 268 199 title b \, create \, 1; +#X obj 223 158 b; +#X obj 223 138 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X text 240 136 create window; +#X text 405 85 You can have multiple window and display diffenrents +things on each.; +#X obj 268 241 gemwin 20 b; +#X text 405 119 Basically \, use [gemwin fps context_name] to create +a named context then use [gemhead context_name] to render to this context +only.; +#X obj 295 27 gemhead b; +#X connect 2 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 0 0; +#X connect 7 0 12 0; +#X connect 8 0 6 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 14 0 2 0; diff --git a/Gem/examples/14.multiple_windows/02.switch_context.pd b/Gem/examples/14.multiple_windows/02.switch_context.pd new file mode 100644 index 0000000..ac8f1c3 --- /dev/null +++ b/Gem/examples/14.multiple_windows/02.switch_context.pd @@ -0,0 +1,28 @@ +#N canvas 625 735 655 237 10; +#X obj 33 129 gemwin 20 a; +#X obj 396 181 square; +#X obj 396 159 color 0 0 1 1; +#X msg 33 87 title a \, create \, 1; +#X obj 168 46 b; +#X obj 168 26 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 168 129 gemwin 20 b; +#X obj 396 137 gemhead a; +#X msg 466 52 context b; +#X msg 396 52 context a; +#X text 185 24 1 create windows; +#X text 411 24 2 switch between rendering context; +#X msg 475 106 set \$1; +#X floatatom 475 88 5 0 0 0 - - -, f 5; +#X msg 168 87 title b \, create \, 1 \, view 1 1 6; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 4 0 14 0; +#X connect 5 0 4 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 9 0 7 0; +#X connect 12 0 7 0; +#X connect 13 0 12 0; +#X connect 14 0 6 0; diff --git a/Gem/examples/14.multiple_windows/03.texture_sharing.pd b/Gem/examples/14.multiple_windows/03.texture_sharing.pd new file mode 100644 index 0000000..6c5fd71 --- /dev/null +++ b/Gem/examples/14.multiple_windows/03.texture_sharing.pd @@ -0,0 +1,38 @@ +#N canvas 224 736 1147 233 10; +#X obj 33 169 gemwin 20 a; +#X obj 396 181 square; +#X msg 33 87 title a \, create \, 1; +#X obj 168 46 b; +#X obj 168 26 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 396 37 gemhead a; +#X text 185 24 1 create windows; +#X obj 396 104 pix_texture; +#X obj 596 181 square; +#X obj 596 155 pix_texture; +#X obj 396 72 pix_image ../data/fractal.JPG; +#X obj 596 59 translateXYZ 2 0 0; +#X obj 596 37 gemhead b; +#X msg 168 87 title b \, create \, 1; +#X obj 168 169 gemwin 20 b; +#X msg 596 4 context a; +#X msg 669 4 context b; +#X msg 90 118 destroy; +#X text 729 90 on Linux \, this is only supported by [gemglxwindow] +and [gemglutwindow].; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 0 13 0; +#X connect 4 0 3 0; +#X connect 5 0 10 0; +#X connect 7 0 1 0; +#X connect 7 1 9 1; +#X connect 9 0 8 0; +#X connect 10 0 7 0; +#X connect 11 0 9 0; +#X connect 12 0 11 0; +#X connect 13 0 14 0; +#X connect 15 0 12 0; +#X connect 16 0 12 0; +#X connect 17 0 14 0; +#X connect 17 0 0 0; diff --git a/Gem/examples/99.games/puzzle.pd b/Gem/examples/99.games/puzzle.pd new file mode 100644 index 0000000..d02322c --- /dev/null +++ b/Gem/examples/99.games/puzzle.pd @@ -0,0 +1,158 @@ +#N canvas 14 64 584 223 12; +#X obj 171 14 cnv 15 200 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 258 30 bng 30 250 50 0 up y up 8 -8 192 12 -261681 -1 -1; +#X obj 258 90 bng 30 250 50 0 down y down -5 38 192 12 -261681 -1 -1 +; +#X obj 288 60 bng 30 250 50 0 right y right 33 15 192 12 -261681 -1 +-1; +#X obj 228 60 bng 30 250 50 0 left y left -53 15 192 12 -261681 -1 +-1; +#N canvas 133 127 818 527 code 0; +#X obj 128 45 gemkeyname; +#X obj 128 77 select 1; +#X obj 128 104 symbol; +#X msg 128 131 \$1 0; +#X obj 411 229 r reset; +#X obj 411 255 t b b; +#X msg 505 229 bang; +#X obj 418 194 gemwin; +#X msg 415 132 create; +#X msg 422 157 destroy; +#X obj 501 147 tgl 30 0 empty empty empty 20 8 0 8 -262144 -1 -1 1 +1; +#X obj 342 79 del 100; +#X msg 342 130 1; +#X obj 342 17 r start; +#X msg 509 113 reset; +#X obj 584 204 gemmouse; +#X obj 617 239 s help; +#X obj 342 45 t b b b; +#X obj 342 103 t b b b; +#N canvas 81 93 600 400 original 0; +#X obj 86 109 gemhead; +#X obj 86 345 square 4; +#X obj 86 30 r help; +#X obj 86 73 != 0; +#X obj 173 45 loadbang; +#X msg 173 68 0; +#X obj 86 143 pix_image ../data/fractal.JPG; +#X obj 86 272 pix_texture; +#X connect 0 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 6 0 7 0; +#X connect 7 0 1 0; +#X restore 445 390 pd original image; +#N canvas 4 20 450 300 control 0; +#X obj 149 48 route Left Right Up Down; +#X msg 191 206 move \$1; +#X msg 191 138 5; +#X msg 149 138 4; +#X msg 231 138 6; +#X msg 192 111 8; +#X msg 193 165 2; +#X obj 48 98 r up; +#X obj 47 167 r down; +#X obj 0 129 r left; +#X obj 71 131 r right; +#X obj 194 256 outlet; +#X obj 146 18 inlet; +#X obj 295 109 inlet; +#X connect 0 0 3 0; +#X connect 0 1 4 0; +#X connect 0 2 5 0; +#X connect 0 3 6 0; +#X connect 1 0 11 0; +#X connect 2 0 1 0; +#X connect 3 0 1 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 1 0; +#X connect 7 0 5 0; +#X connect 8 0 6 0; +#X connect 9 0 3 0; +#X connect 10 0 4 0; +#X connect 12 0 0 0; +#X connect 13 0 2 0; +#X restore 128 276 pd control; +#N canvas 113 141 600 498 puzzled 0; +#X obj 120 110 gemhead; +#X obj 120 415 square 4; +#X floatatom 179 389 5 0 0 0 - - -; +#X obj 120 309 pix_puzzle 4 4; +#X msg 221 203 size 4 4; +#X obj 120 213 pix_image; +#X msg 153 175 open ../data/fractal.JPG; +#X obj 204 97 loadbang; +#X obj 204 125 t b b; +#X obj 221 48 t b a; +#X obj 341 56 t b b; +#X obj 117 40 r help; +#X obj 120 79 == 0; +#X obj 37 27 loadbang; +#X msg 38 52 0; +#X obj 120 342 pix_texture; +#X obj 343 27 inlet scramble!; +#X obj 222 18 inlet move!; +#X connect 0 0 5 0; +#X connect 2 0 1 1; +#X connect 3 0 15 0; +#X connect 4 0 3 0; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 4 0; +#X connect 8 1 6 0; +#X connect 9 0 6 0; +#X connect 9 1 3 0; +#X connect 10 0 6 0; +#X connect 10 1 3 0; +#X connect 11 0 12 0; +#X connect 12 0 0 0; +#X connect 13 0 14 0; +#X connect 14 0 12 0; +#X connect 15 0 1 0; +#X connect 16 0 10 0; +#X connect 17 0 9 0; +#X restore 128 390 pd puzzled image; +#X obj 213 249 loadbang; +#X text 116 439 we use [pix_puzzle] to scramble the image. this is +not very effective (as we could use openGL-texture coordinates too). +anyhow it is just simple; +#X connect 0 0 1 0; +#X connect 0 1 2 1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 20 0; +#X connect 4 0 5 0; +#X connect 5 0 20 1; +#X connect 5 1 21 1; +#X connect 6 0 5 0; +#X connect 8 0 7 0; +#X connect 9 0 7 0; +#X connect 10 0 7 0; +#X connect 11 0 18 0; +#X connect 12 0 7 0; +#X connect 13 0 17 0; +#X connect 14 0 7 0; +#X connect 15 2 16 0; +#X connect 17 0 11 0; +#X connect 17 1 14 0; +#X connect 17 2 9 0; +#X connect 18 0 12 0; +#X connect 18 1 8 0; +#X connect 18 2 6 0; +#X connect 20 0 21 0; +#X connect 22 0 20 1; +#X restore 420 99 pd code; +#X obj 435 39 bng 50 250 50 0 reset empty RESET 0 -8 128 12 -258699 +-1 -1; +#X obj 50 38 bng 50 250 50 0 start empty start 0 -8 128 12 -24198 -1 +-1; +#X obj 257 60 tgl 30 0 help help ? 7 15 192 24 -262144 -258699 -1 0 +1; +#X text 61 168 on linux you can use the arrow-keys too...; +#X text 46 187 first mouse-button toggles between help/game; diff --git a/Gem/examples/data/64shade.tif b/Gem/examples/data/64shade.tif new file mode 100644 index 0000000..7091b2a Binary files /dev/null and b/Gem/examples/data/64shade.tif differ diff --git a/Gem/examples/data/COPYING.txt b/Gem/examples/data/COPYING.txt new file mode 100644 index 0000000..a80de72 --- /dev/null +++ b/Gem/examples/data/COPYING.txt @@ -0,0 +1,89 @@ +COPYRIGHT issues of the examples data files +=========================================== + +This data 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. + +-------------------------------------------- + +The contents of the examples/data folder provides data-files for +showcase use within the pd/Gem environment. + +I try to only include files that are free to use (as in Free Speech +and Free Beer). +However, for legacy reasons some of the files here may have non-free +clauses in their license agreements. +These files will be removed from this package as soon as their +problematic state is discovered. + +If you notice such a problematic case, please contact me +(zmoelnig[AT]iem[DOT]at) immediately, so i can remove it and replace it +by a free alternative. + + +=========================================== + + +vera.ttf +-------------------------------------------- + +Bitstream Vera Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as +long as "Bitstream" or "Vera" are not in the names), and full +redistribution (so long as they are not *sold* by themselves). They +can be be bundled, redistributed and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright +========= + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream +Vera is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute +the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished +to do so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Bitstream" or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Bitstream Vera" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: +fonts at gnome dot org. + diff --git a/Gem/examples/data/Toon.frag b/Gem/examples/data/Toon.frag new file mode 100644 index 0000000..268bdab --- /dev/null +++ b/Gem/examples/data/Toon.frag @@ -0,0 +1,61 @@ +// +// Fragment shader for cartoon-style shading +// +// Author: Philip Rideout +// +// Copyright (c) 2005 3Dlabs Inc. Ltd. +// +/************************************************************************ +* * +* Copyright (C) 2002-2006 3Dlabs Inc. Ltd. * +* * +* All rights reserved. * +* * +* Redistribution and use in source and binary forms, with or without * +* modification, are permitted provided that the following conditions * +* are met: * +* * +* Redistributions of source code must retain the above copyright * +* notice, this list of conditions and the following disclaimer. * +* * +* Redistributions in binary form must reproduce the above * +* copyright notice, this list of conditions and the following * +* disclaimer in the documentation and/or other materials provided * +* with the distribution. * +* * +* Neither the name of 3Dlabs Inc. Ltd. nor the names of its * +* contributors may be used to endorse or promote products derived * +* from this software without specific prior written permission. * +* * +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * +* COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * +* POSSIBILITY OF SUCH DAMAGE. * +* * +************************************************************************/ + +const vec3 DiffuseColor= vec3( 0.1,0.1,0.1); +const vec3 PhongColor = vec3( 0.5,0.5,0.5); +const float Edge= 0.2; +uniform float Phong; +varying vec3 Normal; + +void main (void) +{ + vec3 color = DiffuseColor; + float f = dot(vec3(0,0,1),Normal); + if (abs(f) < Edge) + color = vec3(0); + if (f > Phong) + color = PhongColor; + + gl_FragColor = vec4(color, 1); +} diff --git a/Gem/examples/data/Toon.vert b/Gem/examples/data/Toon.vert new file mode 100644 index 0000000..2f7d51c --- /dev/null +++ b/Gem/examples/data/Toon.vert @@ -0,0 +1,54 @@ +// +// Vertex shader for cartoon-style shading +// +// Author: Philip Rideout +// +// Copyright (c) 2005 3Dlabs Inc. Ltd. +// +// +// +/************************************************************************ +* * +* Copyright (C) 2002-2006 3Dlabs Inc. Ltd. * +* * +* All rights reserved. * +* * +* Redistribution and use in source and binary forms, with or without * +* modification, are permitted provided that the following conditions * +* are met: * +* * +* Redistributions of source code must retain the above copyright * +* notice, this list of conditions and the following disclaimer. * +* * +* Redistributions in binary form must reproduce the above * +* copyright notice, this list of conditions and the following * +* disclaimer in the documentation and/or other materials provided * +* with the distribution. * +* * +* Neither the name of 3Dlabs Inc. Ltd. nor the names of its * +* contributors may be used to endorse or promote products derived * +* from this software without specific prior written permission. * +* * +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * +* COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * +* POSSIBILITY OF SUCH DAMAGE. * +* * +************************************************************************/ + + +varying vec3 Normal; + +void main(void) +{ + Normal = normalize(gl_NormalMatrix * gl_Normal); + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; +} diff --git a/Gem/examples/data/alea.mpg b/Gem/examples/data/alea.mpg new file mode 100644 index 0000000..adeb521 Binary files /dev/null and b/Gem/examples/data/alea.mpg differ diff --git a/Gem/examples/data/anim-1.mov b/Gem/examples/data/anim-1.mov new file mode 100644 index 0000000..40ebf9d Binary files /dev/null and b/Gem/examples/data/anim-1.mov differ diff --git a/Gem/examples/data/bitmap_font_6x8.bmp b/Gem/examples/data/bitmap_font_6x8.bmp new file mode 100644 index 0000000..3a9fc0b Binary files /dev/null and b/Gem/examples/data/bitmap_font_6x8.bmp differ diff --git a/Gem/examples/data/blob0.tif b/Gem/examples/data/blob0.tif new file mode 100644 index 0000000..f595a3c Binary files /dev/null and b/Gem/examples/data/blob0.tif differ diff --git a/Gem/examples/data/blob1.tif b/Gem/examples/data/blob1.tif new file mode 100644 index 0000000..4f27652 Binary files /dev/null and b/Gem/examples/data/blob1.tif differ diff --git a/Gem/examples/data/blob2.tif b/Gem/examples/data/blob2.tif new file mode 100644 index 0000000..57debc5 Binary files /dev/null and b/Gem/examples/data/blob2.tif differ diff --git a/Gem/examples/data/dancer.JPG b/Gem/examples/data/dancer.JPG new file mode 100644 index 0000000..ba50f1a Binary files /dev/null and b/Gem/examples/data/dancer.JPG differ diff --git a/Gem/examples/data/ducks.png b/Gem/examples/data/ducks.png new file mode 100644 index 0000000..1491078 Binary files /dev/null and b/Gem/examples/data/ducks.png differ diff --git a/Gem/examples/data/fractal.JPG b/Gem/examples/data/fractal.JPG new file mode 100644 index 0000000..330b82c Binary files /dev/null and b/Gem/examples/data/fractal.JPG differ diff --git a/Gem/examples/data/fractalAlpha.TIF b/Gem/examples/data/fractalAlpha.TIF new file mode 100644 index 0000000..754ccdf Binary files /dev/null and b/Gem/examples/data/fractalAlpha.TIF differ diff --git a/Gem/examples/data/homer.avi b/Gem/examples/data/homer.avi new file mode 100644 index 0000000..f27ec00 Binary files /dev/null and b/Gem/examples/data/homer.avi differ diff --git a/Gem/examples/data/random.fp b/Gem/examples/data/random.fp new file mode 100644 index 0000000..651fdeb --- /dev/null +++ b/Gem/examples/data/random.fp @@ -0,0 +1,111 @@ +!!ARBfp1.0 +# Based on an algorithm described by Francois Grieu, sci.crypt, 5th February 2004 +#ATTRIB tex0 = fragment.texcoord[0]; +ATTRIB tex0 = fragment.position; +ATTRIB col = fragment.color; + +#PARAM bounds = program.local[1]; +#PARAM seed = program.local[2]; +PARAM bounds = 10.0; +PARAM seed = 1234; +PARAM coordsOffset = { -100, 100, 0, 0 }; +PARAM cMult = 0.0001002707309736288; +PARAM aSubtract = 0.2727272727272727; +PARAM coordMult0 = { 0.67676, 0.000058758, 0, 0 }; +PARAM coordMult1 = { 0.0000696596, 0.797976, 0, 0 }; +PARAM coordMult2 = { 0.587976, 0.0000233443, 0, 0 }; + +TEMP tableCoord, a, b, c, floorA, seedCoords, res; + +ADD seedCoords, tex0, coordsOffset; + +# gFastRngA = (((currentX*multX)/(currentY*multY))+ +MUL tableCoord, seedCoords, coordMult0; +RCP tableCoord.y, tableCoord.y; +MUL a.x, tableCoord.x, tableCoord.y; + +# (((height-currentY)*multX2)/((width-currentX)*multY2))+ +SUB tableCoord, bounds, seedCoords; +MUL tableCoord, tableCoord, coordMult1; +RCP tableCoord.x, tableCoord.x; +MAD a.x, tableCoord.x, tableCoord.y, a.x; + +# (((height-currentX)*multX3)/((width-currentY)*multY3))); +SUB tableCoord.x, bounds.y, seedCoords.x; +SUB tableCoord.y, bounds.x, seedCoords.y; +MUL tableCoord, tableCoord, coordMult2; +RCP tableCoord.y, tableCoord.y; +MAD a.x, tableCoord.x, tableCoord.y, a.x; + +# gFastRngA = fmod(gFastRngA,1); +FRC a.x, a.x; +ADD a.x, a.x, seed; + +MOV c.x, 0; +MOV b.x, 0; + +# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA)) +FRC floorA.x, a.x; +SUB floorA.x, a.x, floorA.x; +SUB floorA.x, aSubtract.x, floorA.x; +ADD floorA.x, floorA.x, a.x; +MAD a.x, c.x, cMult.x, floorA.x; + +# (gFastRngB += (gFastRngA *= gFastRngA)) +MUL a.x, a.x, a.x; +ADD b.x, b.x, a.x; + +# (gFastRngC += (gFastRngB -= floor(gFastRngB))) +FRC b.x, b.x; +ADD c.x, c.x, b.x; + +# (gFastRngC -= floor(gFastRngC)) +FRC c.x, c.x; + +# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA)) +FRC floorA.x, a.x; +SUB floorA.x, a.x, floorA.x; +SUB floorA.x, aSubtract.x, floorA.x; +ADD floorA.x, floorA.x, a.x; +MAD a.x, c.x, cMult.x, floorA.x; + +# (gFastRngB += (gFastRngA *= gFastRngA)) +MUL a.x, a.x, a.x; +ADD b.x, b.x, a.x; + +# (gFastRngC += (gFastRngB -= floor(gFastRngB))) +FRC b.x, b.x; +ADD c.x, c.x, b.x; + +# (gFastRngC -= floor(gFastRngC)) +FRC c.x, c.x; + +# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA)) +FRC floorA.x, a.x; +SUB floorA.x, a.x, floorA.x; +SUB floorA.x, aSubtract.x, floorA.x; +ADD floorA.x, floorA.x, a.x; +MAD a.x, c.x, cMult.x, floorA.x; + +# (gFastRngB += (gFastRngA *= gFastRngA)) +MUL a.x, a.x, a.x; +ADD b.x, b.x, a.x; + +# (gFastRngC += (gFastRngB -= floor(gFastRngB))) +FRC b.x, b.x; +ADD c.x, c.x, b.x; + +# (gFastRngC -= floor(gFastRngC)) +FRC c.x, c.x; + + +MOV res, c.x; +MOV res.a, 1; + +MUL res, res, -0.5; + +ADD res, res, col; + +MOV result.color, res; + +END diff --git a/Gem/examples/data/temp0.JPG b/Gem/examples/data/temp0.JPG new file mode 100644 index 0000000..ba50f1a Binary files /dev/null and b/Gem/examples/data/temp0.JPG differ diff --git a/Gem/examples/data/temp1.JPG b/Gem/examples/data/temp1.JPG new file mode 100644 index 0000000..330b82c Binary files /dev/null and b/Gem/examples/data/temp1.JPG differ diff --git a/Gem/examples/data/temp2.JPG b/Gem/examples/data/temp2.JPG new file mode 100644 index 0000000..0152c1b Binary files /dev/null and b/Gem/examples/data/temp2.JPG differ diff --git a/Gem/examples/data/toon.vp b/Gem/examples/data/toon.vp new file mode 100644 index 0000000..621670b --- /dev/null +++ b/Gem/examples/data/toon.vp @@ -0,0 +1,36 @@ +!!ARBvp1.0 + +# Toon Shader by James A. McCombe, Tue Jun 17 2003 +# +# Implements a very crude toon shader. Basically, a simple dot product between a +# light direction vector and the vertex normal is performed. The output of this is +# used to set the texture coordinates to lookup inside a special texture which +# effectively quantises the light intensity into 3 bands. +# +# Parameters: +# program.env[0] - Light direction vector + +ATTRIB vPosition = vertex.position; +ATTRIB vNormal = vertex.normal; + +PARAM lightDirection = program.env[0]; + +TEMP t0, transVertex; + +DP4 result.position.x, state.matrix.mvp.row[0], vPosition; +DP4 result.position.y, state.matrix.mvp.row[1], vPosition; +DP4 result.position.z, state.matrix.mvp.row[2], vPosition; +DP4 result.position.w, state.matrix.mvp.row[3], vPosition; + +DP3 t0.x, state.matrix.modelview[0].invtrans.row[0], vNormal; +DP3 t0.z, state.matrix.modelview[0].invtrans.row[1], vNormal; +DP3 t0.y, state.matrix.modelview[0].invtrans.row[2], vNormal; + +# Dot product of normal and light vector to do tone lookup +DP3 t0, t0, lightDirection; +SWZ result.texcoord[0], t0, x,1,1,1; + +# Write the primary vertex color +MOV result.color, vertex.color; + +END diff --git a/Gem/examples/data/valcolor.tab b/Gem/examples/data/valcolor.tab new file mode 100644 index 0000000..43a8523 --- /dev/null +++ b/Gem/examples/data/valcolor.tab @@ -0,0 +1,6 @@ +0. 0. 0. +1. 1. 1. +.5 .0 1. +0. 1. 0. +1. 1. 1. +0. 0. 0. diff --git a/Gem/examples/data/valmotion.tab b/Gem/examples/data/valmotion.tab new file mode 100644 index 0000000..1a3f2ac --- /dev/null +++ b/Gem/examples/data/valmotion.tab @@ -0,0 +1,8 @@ +0. 0. 0. +0. 0. 0. +2. 2. -2. +-3. -1. .5 +-2. 4. -1. +.5 -.5 0. +0. 0. 0. +0. 0. 0. diff --git a/Gem/examples/data/venus.mtl b/Gem/examples/data/venus.mtl new file mode 100644 index 0000000..dc43199 --- /dev/null +++ b/Gem/examples/data/venus.mtl @@ -0,0 +1,9 @@ +# +# venus.mtl +# + +newmtl vskin +Ka 0.6 0.6 0.45 +Kd 0.6 0.6 0.45 +Ks 0.2 0.1 0.1 +Ns 5.0 diff --git a/Gem/examples/data/venus.obj b/Gem/examples/data/venus.obj new file mode 100644 index 0000000..1dc1749 --- /dev/null +++ b/Gem/examples/data/venus.obj @@ -0,0 +1,2147 @@ +# Tue Oct 22 14:45:37 1991 +# +# + +mtllib venus.mtl + +g default +v -27.430000 147.320007 -3.300000 +v -30.480000 135.380005 -9.400000 +v -21.590000 150.619995 -15.490000 +v -26.670000 129.789993 3.300000 +v -24.129999 142.490005 13.460000 +v -15.240000 124.459999 12.450000 +v -13.970000 135.889999 19.049999 +v -18.799999 114.050003 6.350000 +v -31.500000 120.400002 -1.520000 +v -35.810001 128.020004 -13.720000 +v -27.180000 138.429993 -22.610001 +v -35.310001 130.809998 -28.959999 +v -23.879999 140.460007 -27.690001 +v -16.510000 142.240005 -28.450001 +v -13.720000 151.380005 -18.030001 +v -19.049999 134.869995 -38.860001 +v -30.990000 132.330002 -36.830002 +v -8.130000 143.000000 -26.670000 +v -4.320000 138.940002 -31.750000 +v -9.650000 150.110001 -18.799999 +v -40.889999 126.489998 -32.509998 +v -5.840000 149.610001 -15.490000 +v -0.760000 140.210007 -18.799999 +v 0.760000 138.429993 -5.590000 +v 0.250000 145.289993 -3.810000 +v 4.570000 130.050003 -7.870000 +v 0.000000 132.080002 4.830000 +v -0.510000 139.190002 8.890000 +v 2.030000 137.919998 -24.129999 +v 2.790000 135.639999 -34.040001 +v 8.640000 133.600006 -21.080000 +v 0.250000 134.369995 -39.119999 +v -6.100000 142.750000 2.540000 +v -12.190000 145.800003 -7.370000 +v -6.100000 138.940002 11.680000 +v -14.990000 143.759995 4.060000 +v -12.950000 138.679993 16.260000 +v -25.910000 147.830002 -1.020000 +v -21.590000 148.839996 -5.840000 +v -41.150002 125.980003 -25.150000 +v 9.910000 131.830002 -39.619999 +v -20.570000 129.289993 -45.209999 +v -9.910000 124.709999 -48.509998 +v 3.050000 129.289993 -45.209999 +v 18.030001 127.250000 -43.430000 +v 31.500000 124.970001 -35.560001 +v 29.209999 127.000000 -26.420000 +v 10.670000 133.860001 -30.230000 +v 41.660000 121.669998 -27.690001 +v 38.610001 123.699997 -20.070000 +v 26.420000 125.480003 -17.020000 +v 24.889999 120.139999 -9.140000 +v 35.810001 121.160004 -10.920000 +v 0.760000 121.410004 1.270000 +v -6.350000 116.330002 5.080000 +v -6.350000 126.489998 10.410000 +v -7.370000 135.380005 15.490000 +v 38.099998 114.809998 -4.830000 +v 24.889999 110.489998 -1.780000 +v 10.670000 109.220001 4.830000 +v 8.890000 100.330002 9.400000 +v -5.840000 99.059998 11.680000 +v -13.720000 105.160004 9.650000 +v -32.770000 107.190002 5.590000 +v -24.639999 103.629997 9.400000 +v -22.350000 93.980003 13.460000 +v -34.290001 98.040001 9.650000 +v -44.959999 105.160004 1.020000 +v -51.820000 111.760002 -9.140000 +v -52.070000 114.550003 -17.270000 +v -60.709999 108.709999 -16.000000 +v -51.560001 116.589996 -26.160000 +v -58.419998 111.250000 -27.180000 +v -50.040001 118.110001 -34.290001 +v -46.480000 118.110001 -43.689999 +v -55.880001 112.519997 -36.070000 +v -34.799999 117.860001 -52.320000 +v -59.180000 98.550003 0.510000 +v -63.750000 103.120003 -5.840000 +v -53.340000 91.190002 5.840000 +v -47.240002 92.459999 7.620000 +v -41.400002 92.959999 9.910000 +v -36.580002 88.650002 12.950000 +v -46.740002 87.629997 9.140000 +v -30.990000 81.029999 16.000000 +v -19.559999 80.769997 17.530001 +v -4.830000 85.849998 16.000000 +v 6.860000 90.169998 13.970000 +v 18.290001 88.900002 12.190000 +v 19.559999 100.839996 6.350000 +v 28.190001 96.010002 5.840000 +v 33.020000 103.889999 0.760000 +v 44.700001 106.169998 -4.570000 +v 37.080002 98.040001 0.510000 +v 49.279999 97.790001 -6.100000 +v 51.820000 106.930000 -14.730000 +v 46.230000 116.589996 -13.460000 +v 41.150002 120.400002 -12.700000 +v 46.480000 118.360001 -18.799999 +v 51.049999 110.739998 -21.590000 +v 43.939999 116.330002 -34.290001 +v 34.799999 118.870003 -42.419998 +v 26.670000 118.620003 -48.259998 +v 9.140000 116.839996 -55.880001 +v 1.270000 117.599998 -55.119999 +v -4.320000 118.620003 -52.830002 +v -24.379999 119.889999 -51.560001 +v -9.650000 109.980003 -54.860001 +v -7.110000 109.220001 -55.880001 +v -12.950000 109.220001 -55.119999 +v -29.209999 106.169998 -58.930000 +v -24.639999 106.930000 -58.169998 +v -38.349998 104.389999 -56.389999 +v -48.259998 99.820000 -51.049999 +v -56.389999 101.089996 -44.200001 +v -60.450001 106.680000 -36.580002 +v -63.500000 99.059998 -36.070000 +v -64.769997 103.889999 -26.670000 +v -67.559998 101.089996 -14.730000 +v -68.830002 92.459999 -23.370001 +v -72.139999 88.139999 -10.160000 +v 1.780000 109.730003 -59.180000 +v 7.110000 109.220001 -59.939999 +v 18.290001 106.430000 -57.400002 +v 30.230000 104.900002 -52.070000 +v 37.590000 103.120003 -46.230000 +v 44.959999 102.110001 -42.419998 +v 51.049999 93.470001 -38.860001 +v 55.880001 98.040001 -24.889999 +v 56.639999 96.519997 -18.799999 +v 56.130001 94.739998 -14.730000 +v 53.340000 91.949997 -10.160000 +v -66.550003 93.980003 -0.760000 +v -59.180000 86.610001 5.330000 +v -54.099998 79.760002 4.830000 +v -49.529999 80.260002 4.570000 +v -45.470001 79.760002 9.140000 +v -41.910000 84.839996 11.940000 +v 5.080000 80.260002 16.000000 +v 29.209999 88.650002 7.620000 +v 44.200001 92.959999 -4.060000 +v 36.580002 92.459999 -0.510000 +v -61.470001 80.260002 4.830000 +v -67.559998 76.449997 1.780000 +v -71.370003 77.220001 -2.030000 +v -71.879997 72.900002 -14.480000 +v -71.120003 82.040001 -19.299999 +v -66.800003 83.309998 -30.730000 +v -61.470001 92.459999 -39.619999 +v -59.689999 87.879997 -39.880001 +v -53.849998 87.879997 -45.470001 +v -47.500000 86.610001 -52.070000 +v -63.500000 79.500000 -33.529999 +v -63.250000 69.089996 -2.030000 +v -63.250000 74.419998 4.320000 +v -57.660000 70.870003 5.590000 +v -58.930000 67.059998 1.780000 +v -55.880001 75.440002 5.590000 +v -45.209999 70.099998 4.060000 +v -51.049999 68.070000 4.830000 +v -52.320000 66.800003 5.080000 +v -54.860001 61.720001 -1.520000 +v -56.130001 60.709999 -12.950000 +v -49.779999 60.450001 0.510000 +v -53.849998 57.150002 -7.870000 +v -49.020000 54.360001 -6.100000 +v -42.669998 54.099998 -4.570000 +v -45.209999 62.990002 2.540000 +v -39.619999 76.709999 12.700000 +v -32.000000 72.900002 20.320000 +v -38.099998 69.849998 17.270000 +v -40.889999 65.790001 13.970000 +v -41.400002 61.980000 12.700000 +v -41.400002 54.860001 3.810000 +v -24.129999 73.150002 21.340000 +v -18.799999 73.150002 20.830000 +v -10.410000 75.949997 18.030001 +v -3.300000 77.980003 16.260000 +v 11.430000 77.470001 17.780001 +v 17.530001 77.720001 18.799999 +v 22.860001 83.059998 15.750000 +v 28.959999 84.839996 11.180000 +v 34.040001 85.339996 2.540000 +v 34.799999 85.849998 -4.830000 +v 44.700001 84.330002 -7.110000 +v 50.549999 76.199997 -10.920000 +v 56.900002 81.279999 -15.750000 +v 58.669998 85.599998 -22.860001 +v 35.810001 75.180000 -8.890000 +v 32.770000 82.040001 8.130000 +v 32.259998 79.500000 12.700000 +v 29.459999 80.010002 15.240000 +v 24.889999 76.449997 19.049999 +v 16.000000 72.900002 19.299999 +v 8.130000 72.139999 17.530001 +v 1.270000 67.309998 15.750000 +v -4.060000 66.550003 15.750000 +v -14.480000 63.750000 22.100000 +v -17.020000 68.580002 22.860001 +v -21.840000 66.550003 24.129999 +v -21.080000 57.910000 23.879999 +v -29.209999 59.689999 24.639999 +v -29.459999 65.790001 24.379999 +v -34.040001 67.059998 22.860001 +v -36.320000 65.790001 21.340000 +v -37.590000 64.010002 20.570000 +v -37.590000 61.720001 20.320000 +v -39.880001 56.639999 12.950000 +v -37.080002 59.439999 20.070000 +v -32.000000 53.849998 19.809999 +v -33.270000 57.910000 22.610001 +v -27.180000 55.119999 22.610001 +v -35.310001 49.529999 10.410000 +v -35.810001 46.480000 1.780000 +v -42.930000 51.560001 -16.260000 +v -29.459999 48.770000 16.000000 +v -17.270000 52.320000 19.049999 +v -12.450000 58.169998 19.299999 +v -4.830000 57.150002 13.210000 +v -0.250000 53.849998 11.430000 +v -34.540001 61.980000 23.879999 +v 2.790000 58.419998 12.950000 +v 9.910000 64.519997 16.510000 +v 17.270000 68.580002 19.049999 +v 24.129999 73.910004 20.070000 +v 29.719999 76.449997 17.780001 +v 32.770000 73.910004 13.970000 +v 30.230000 71.879997 16.260000 +v 26.160000 72.389999 19.049999 +v 34.799999 78.230003 6.600000 +v 34.540001 71.879997 8.380000 +v 36.070000 73.410004 1.020000 +v 35.049999 74.169998 -4.570000 +v 57.400002 89.150002 -28.450001 +v 57.150002 85.599998 -28.959999 +v 49.020000 74.169998 -23.620001 +v 43.180000 74.169998 -33.529999 +v 52.320000 86.360001 -37.590000 +v 44.450001 84.839996 -42.930000 +v 43.430000 94.739998 -43.430000 +v -8.130000 52.070000 12.700000 +v -48.509998 53.849998 -14.730000 +v -48.770000 58.419998 -21.590000 +v -56.389999 64.769997 -28.190001 +v -47.750000 67.559998 -43.939999 +v -54.099998 79.760002 -37.080002 +v -45.470001 60.959999 -25.400000 +v -60.709999 67.820000 -28.959999 +v -64.769997 69.339996 -26.670000 +v -67.820000 74.169998 -26.920000 +v -59.939999 78.989998 -35.049999 +v -56.130001 72.900002 -32.509998 +v -49.779999 79.250000 -47.240002 +v -37.340000 95.000000 -58.930000 +v -41.150002 79.500000 -56.389999 +v -32.259998 92.199997 -60.959999 +v -24.379999 92.459999 -60.959999 +v -11.430000 94.489998 -58.930000 +v -6.600000 96.010002 -59.180000 +v 2.540000 100.080002 -61.720001 +v 5.590000 100.580002 -61.720001 +v 15.750000 99.059998 -59.939999 +v -36.830002 68.070000 -57.150002 +v -28.190001 72.900002 -61.720001 +v -19.299999 81.529999 -61.720001 +v -9.910000 84.330002 -60.709999 +v -4.570000 84.580002 -61.470001 +v 5.590000 87.379997 -63.250000 +v 13.970000 85.089996 -62.740002 +v 11.430000 69.339996 -62.740002 +v 3.300000 71.629997 -64.010002 +v -3.300000 70.870003 -62.740002 +v -7.370000 70.099998 -62.230000 +v -16.000000 64.769997 -63.750000 +v -25.150000 60.959999 -63.250000 +v -33.529999 57.660000 -59.439999 +v -42.930000 62.230000 -44.450001 +v -38.610001 41.910000 -5.840000 +v -36.070000 34.040001 -7.870000 +v -40.389999 49.020000 -23.110001 +v -34.290001 25.400000 -11.430000 +v -37.340000 31.240000 -28.190001 +v -35.560001 40.130001 -43.180000 +v -34.799999 52.320000 -53.590000 +v -29.209999 43.939999 -57.660000 +v -22.100000 46.990002 -63.250000 +v -15.490000 49.279999 -62.990002 +v -6.600000 52.580002 -63.500000 +v -2.790000 51.820000 -64.260002 +v 4.060000 51.820000 -65.279999 +v 10.160000 48.509998 -64.010002 +v 3.050000 30.730000 -61.209999 +v 8.640000 26.420000 -60.200001 +v -0.760000 31.500000 -59.439999 +v -6.100000 31.240000 -60.200001 +v -13.720000 28.700001 -59.180000 +v -19.299999 27.180000 -60.959999 +v -28.190001 22.860001 -53.340000 +v -33.270000 21.590000 -44.450001 +v 2.290000 6.860000 -53.849998 +v -2.290000 12.950000 -53.090000 +v -11.940000 12.950000 -55.880001 +v -22.350000 14.220000 -57.150002 +v 37.340000 96.519997 -43.939999 +v 36.070000 90.419998 -42.160000 +v 35.810001 80.769997 -40.130001 +v 40.130001 80.010002 -41.660000 +v 34.290001 73.150002 -37.849998 +v 35.810001 64.519997 -27.940001 +v 31.240000 82.300003 -51.310001 +v 29.209999 64.519997 -50.799999 +v 33.270000 92.709999 -48.770000 +v 27.430000 96.010002 -55.369999 +v 24.379999 82.550003 -59.689999 +v 20.830000 66.800003 -58.930000 +v 19.299999 52.830002 -60.959999 +v 28.959999 52.580002 -51.049999 +v 28.959999 46.230000 -49.779999 +v 18.290001 44.450001 -60.200001 +v 36.830002 53.849998 -29.719999 +v 37.849998 53.340000 -23.620001 +v 36.830002 65.279999 -13.720000 +v 38.099998 52.830002 -16.260000 +v 36.830002 41.400002 -30.230000 +v 37.849998 39.369999 -20.570000 +v 47.500000 72.139999 -16.510000 +v 36.070000 69.339996 -10.410000 +v 35.310001 67.309998 -4.570000 +v 32.770000 63.500000 5.590000 +v 29.719999 67.059998 13.460000 +v 21.340000 65.019997 17.530001 +v 17.780001 57.910000 13.210000 +v 6.860000 54.610001 11.430000 +v 28.190001 59.939999 8.130000 +v 33.020000 58.930000 -1.780000 +v 29.719999 55.880001 1.270000 +v 23.620001 53.340000 6.350000 +v 16.510000 52.320000 9.140000 +v -11.940000 48.009998 12.700000 +v -18.799999 44.200001 11.430000 +v 36.580002 51.560001 -10.160000 +v 31.240000 48.259998 -2.290000 +v 24.379999 42.669998 3.560000 +v 19.049999 34.290001 6.350000 +v 14.220000 33.020000 8.890000 +v 2.030000 40.389999 10.920000 +v -10.160000 34.540001 11.430000 +v 3.300000 29.719999 8.380000 +v -10.920000 25.650000 9.140000 +v -2.290000 20.570000 5.330000 +v 11.180000 20.570000 5.330000 +v -9.650000 18.799999 5.080000 +v 18.030001 21.080000 2.030000 +v 25.400000 27.430000 -1.520000 +v 26.920000 35.310001 0.000000 +v 31.750000 36.070000 -4.830000 +v 36.580002 38.349998 -13.460000 +v -25.400000 43.430000 9.400000 +v -17.530001 30.230000 8.640000 +v -23.110001 35.810001 7.110000 +v -18.799999 17.270000 1.520000 +v -24.639999 28.959999 3.810000 +v -29.459999 21.080000 -4.570000 +v -31.750000 29.969999 -2.030000 +v -31.500000 37.849998 1.270000 +v 18.540001 15.490000 1.020000 +v 24.889999 17.270000 -5.080000 +v 33.020000 23.370001 -13.210000 +v 36.070000 27.940001 -18.540001 +v -2.790000 14.220000 5.080000 +v 11.430000 11.180000 3.560000 +v 6.100000 12.450000 4.320000 +v 34.540001 17.270000 -20.070000 +v 34.540001 22.100000 -30.990000 +v 36.070000 32.770000 -30.990000 +v 28.450001 33.020000 -47.750000 +v -9.400000 13.970000 5.080000 +v 33.529999 1.270000 -11.680000 +v 39.369999 -1.520000 -19.049999 +v 24.379999 8.890000 -6.350000 +v 19.049999 6.860000 -1.020000 +v 13.210000 5.840000 2.790000 +v 7.620000 4.320000 3.560000 +v 4.060000 7.110000 3.560000 +v -1.270000 5.080000 3.050000 +v -9.140000 3.300000 5.330000 +v -14.480000 5.590000 4.060000 +v -22.350000 11.430000 -1.020000 +v -28.700001 16.000000 -5.080000 +v -36.070000 13.720000 -13.460000 +v -27.430000 7.870000 -4.830000 +v -39.119999 -2.540000 -4.570000 +v -47.500000 -6.600000 -12.190000 +v -22.100000 5.590000 -0.760000 +v -26.420000 -2.030000 0.000000 +v -42.930000 -10.920000 -3.560000 +v -37.340000 -13.970000 1.020000 +v -23.879999 -19.049999 7.870000 +v -18.030001 -10.410000 8.380000 +v -15.490000 -0.510000 5.840000 +v -9.400000 -1.780000 7.110000 +v -9.400000 -11.680000 10.410000 +v -10.160000 -22.350000 11.180000 +v 1.270000 -11.940000 9.400000 +v -5.080000 -5.840000 8.130000 +v -4.570000 -1.270000 5.840000 +v -3.810000 1.270000 3.810000 +v 2.290000 4.060000 1.520000 +v 4.060000 3.050000 2.030000 +v 4.320000 -1.020000 3.560000 +v 6.600000 -2.540000 5.840000 +v -0.250000 -3.810000 5.080000 +v 0.250000 0.760000 0.000000 +v 14.730000 0.760000 4.060000 +v 19.809999 -2.030000 1.780000 +v 27.690001 -6.600000 -3.560000 +v 36.320000 -10.410000 -9.400000 +v 41.660000 -13.460000 -16.260000 +v 32.259998 -16.000000 -3.560000 +v 26.160000 -19.809999 0.760000 +v 20.570000 -14.730000 4.830000 +v 17.530001 -9.650000 5.840000 +v 14.220000 -6.350000 6.860000 +v 8.890000 -9.140000 8.640000 +v 11.940000 -15.750000 9.140000 +v 2.790000 -22.860001 10.670000 +v 12.190000 -29.969999 8.380000 +v 21.080000 -27.690001 4.060000 +v 38.610001 4.320000 -31.500000 +v 42.419998 -12.190000 -29.719999 +v 43.430000 -23.879999 -14.730000 +v 44.959999 -25.650000 -26.670000 +v 47.240002 -39.369999 -23.620001 +v 46.480000 -40.389999 -10.920000 +v 46.990002 -56.389999 -6.350000 +v 48.770000 -62.230000 -17.780001 +v 43.689999 -44.700001 -4.060000 +v 39.880001 -35.560001 -3.560000 +v 37.340000 -24.129999 -5.840000 +v 28.450001 -25.910000 0.000000 +v 32.509998 -36.320000 1.020000 +v 34.799999 -42.930000 1.520000 +v 25.400000 -41.400002 4.320000 +v 23.370001 -32.770000 3.560000 +v 14.220000 -38.349998 7.370000 +v 16.760000 -42.669998 6.600000 +v 4.830000 -31.500000 10.410000 +v 7.620000 -43.689999 9.650000 +v -1.020000 -45.470001 10.920000 +v -10.670000 -32.259998 10.670000 +v -9.650000 -45.720001 10.920000 +v -22.100000 -41.910000 9.140000 +v -15.750000 -49.279999 10.410000 +v -28.190001 -46.990002 8.890000 +v -29.459999 -30.990000 6.600000 +v -33.529999 -25.650000 4.830000 +v -36.580002 -29.969999 4.830000 +v -45.970001 -21.840000 -2.540000 +v -51.560001 -21.590000 -8.640000 +v -50.799999 -9.910000 -18.799999 +v -46.230000 1.520000 -31.500000 +v -42.419998 7.870000 -23.879999 +v -38.099998 18.030001 -32.259998 +v -55.369999 -40.639999 -5.840000 +v -56.389999 -37.080002 -12.190000 +v -49.020000 -39.369999 1.020000 +v -49.529999 -48.770000 3.300000 +v -57.400002 -57.660000 -3.560000 +v -37.590000 -43.939999 8.130000 +v -35.810001 -57.400002 14.220000 +v -41.150002 10.410000 -41.660000 +v -52.320000 -19.049999 -29.459999 +v -53.849998 -22.100000 -14.990000 +v -54.360001 -31.240000 -26.920000 +v -49.279999 -25.650000 -44.959999 +v -54.360001 -45.209999 -36.320000 +v -46.740002 -12.450000 -45.209999 +v -41.150002 3.560000 -44.700001 +v -29.969999 13.460000 -51.049999 +v -35.310001 4.570000 -50.040001 +v -25.910000 5.590000 -53.849998 +v -30.480000 -4.570000 -55.630001 +v -40.889999 -8.380000 -51.310001 +v -45.470001 -24.379999 -50.799999 +v -45.970001 -34.799999 -51.310001 +v -41.150002 -24.639999 -54.860001 +v -39.880001 -38.610001 -58.669998 +v -29.969999 -28.190001 -60.450001 +v -30.230000 -16.000000 -57.660000 +v 15.240000 18.030001 -56.389999 +v 28.190001 18.540001 -45.970001 +v 21.590000 12.700000 -52.580002 +v 26.670000 2.540000 -51.049999 +v 8.380000 7.110000 -55.880001 +v -4.570000 6.860000 -53.340000 +v -13.970000 5.840000 -54.860001 +v -18.799999 7.110000 -55.369999 +v -25.150000 -1.520000 -54.610001 +v -18.799999 -25.150000 -60.709999 +v -21.840000 -34.040001 -61.720001 +v -19.299999 -18.030001 -59.939999 +v -24.639999 -12.450000 -57.400002 +v -20.320000 -2.540000 -55.369999 +v -14.730000 -3.810000 -55.630001 +v -8.890000 -4.830000 -55.369999 +v -1.270000 -5.330000 -54.610001 +v 8.380000 0.000000 -55.369999 +v 12.950000 3.810000 -55.369999 +v 20.070000 -4.060000 -53.590000 +v 27.940001 -8.640000 -52.070000 +v 19.809999 -17.020000 -58.169998 +v 26.920000 -20.570000 -56.130001 +v 33.529999 -22.350000 -50.799999 +v 33.020000 -13.210000 -48.009998 +v 10.160000 -21.590000 -58.669998 +v 2.540000 -16.760000 -57.660000 +v -4.570000 -13.210000 -56.900002 +v -13.460000 -16.760000 -58.669998 +v -17.780001 -11.430000 -57.400002 +v -8.890000 -27.430000 -59.439999 +v 2.790000 -30.480000 -59.939999 +v 17.530001 -26.420000 -60.709999 +v 24.129999 -35.560001 -59.689999 +v 32.259998 -30.480000 -52.830002 +v 12.450000 -41.910000 -65.019997 +v 20.320000 -50.290001 -62.990002 +v 0.510000 -47.750000 -64.519997 +v -4.060000 -38.099998 -58.669998 +v -9.650000 -34.040001 -58.169998 +v -14.480000 -31.750000 -59.689999 +v -16.760000 -38.349998 -61.209999 +v 35.310001 -1.020000 -41.910000 +v 32.509998 -4.060000 -47.240002 +v 36.580002 -15.750000 -44.200001 +v 40.639999 -20.320000 -38.610001 +v 37.849998 -24.889999 -44.450001 +v 40.889999 -41.400002 -39.619999 +v -9.650000 -44.200001 -56.389999 +v -21.840000 -38.349998 -62.740002 +v -29.719999 -39.119999 -62.740002 +v 28.450001 -41.400002 -55.880001 +v 25.910000 -53.590000 -58.419998 +v 16.000000 -62.480000 -65.019997 +v 4.830000 -57.910000 -67.059998 +v 13.460000 -54.610001 -66.550003 +v 6.600000 -65.019997 -66.290001 +v 9.400000 -69.599998 -65.019997 +v 11.430000 -74.169998 -62.480000 +v 23.370001 -73.150002 -57.660000 +v 13.970000 -80.260002 -57.910000 +v 19.299999 -82.300003 -53.590000 +v 24.889999 -83.570000 -48.009998 +v 30.480000 -74.419998 -48.770000 +v 41.400002 -60.959999 -36.320000 +v 48.770000 -73.150002 -15.240000 +v 41.150002 -75.690002 -33.020000 +v 37.080002 -75.440002 -39.119999 +v 26.670000 -86.360001 -44.700001 +v 32.259998 -90.419998 -38.349998 +v 41.660000 -84.580002 -30.480000 +v 43.180000 -92.459999 -27.430000 +v 50.040001 -82.800003 -11.180000 +v 35.810001 -48.509998 2.540000 +v 43.939999 -68.580002 7.370000 +v 48.009998 -73.660004 1.520000 +v 50.040001 -94.489998 12.950000 +v -14.480000 -52.320000 -61.720001 +v -8.890000 -53.849998 -56.639999 +v -9.400000 -63.500000 -56.389999 +v -14.480000 -65.279999 -60.959999 +v -14.220000 -72.389999 -56.900002 +v -9.400000 -70.870003 -53.090000 +v -0.250000 -73.660004 -60.709999 +v -14.480000 -75.180000 -54.360001 +v -8.890000 -76.199997 -45.970001 +v 2.030000 -82.040001 -54.610001 +v -0.760000 -65.790001 -63.750000 +v -21.590000 -77.980003 -55.880001 +v -18.290001 -65.019997 -62.480000 +v -23.879999 -73.910004 -59.939999 +v -24.889999 -57.660000 -65.019997 +v -22.860001 -51.820000 -65.790001 +v -29.459999 -52.070000 -65.279999 +v -39.619999 -43.430000 -59.689999 +v -4.570000 -51.310001 -61.470001 +v -5.330000 -62.230000 -61.470001 +v -4.830000 -73.150002 -57.660000 +v -2.540000 -82.040001 -51.049999 +v -4.830000 -80.260002 -49.020000 +v -0.250000 -60.200001 -65.019997 +v -39.119999 -53.590000 -60.959999 +v -29.459999 -61.720001 -64.010002 +v -39.880001 -60.200001 -60.200001 +v -38.349998 -68.830002 -58.669998 +v -32.770000 -74.169998 -57.660000 +v -42.930000 -73.150002 -50.290001 +v -39.880001 -80.519997 -46.480000 +v -35.560001 -81.029999 -48.770000 +v -32.000000 -80.519997 -51.560001 +v -19.049999 -80.010002 -52.580002 +v -15.240000 -78.739998 -49.529999 +v -26.670000 -68.330002 -62.480000 +v 52.830002 -103.889999 -2.030000 +v 44.450001 -112.519997 -21.590000 +v 38.099998 -115.059998 -26.920000 +v 36.580002 -96.269997 -33.529999 +v 26.670000 -91.690002 -40.639999 +v 20.570000 -99.309998 -37.080002 +v 22.610001 -115.059998 -31.240000 +v 10.410000 -112.269997 -29.209999 +v 9.140000 -99.309998 -34.040001 +v 8.640000 -91.440002 -38.349998 +v 17.530001 -92.459999 -41.660000 +v 20.070000 -86.870003 -47.750000 +v 15.490000 -86.110001 -50.799999 +v 3.050000 -84.580002 -51.310001 +v 6.100000 -87.379997 -46.230000 +v 17.020000 -89.919998 -44.700001 +v 0.250000 -86.110001 -42.930000 +v 3.810000 -89.150002 -35.310001 +v 0.000000 -86.110001 -31.500000 +v 2.790000 -98.040001 -28.700001 +v -3.300000 -83.059998 -41.400002 +v -5.080000 -83.570000 -27.430000 +v -2.290000 -96.519997 -22.350000 +v 3.810000 -102.110001 -27.430000 +v 0.250000 -103.889999 -20.830000 +v -1.780000 -106.169998 -22.860001 +v -8.380000 -78.739998 -37.590000 +v -12.950000 -83.059998 -35.810001 +v -7.620000 -97.790001 -29.209999 +v -9.140000 -113.790001 -30.990000 +v -16.000000 -98.550003 -35.810001 +v -19.809999 -85.089996 -40.389999 +v -28.190001 -84.070000 -46.230000 +v -37.080002 -86.110001 -40.889999 +v -27.430000 -85.849998 -41.400002 +v -27.690001 -91.440002 -40.889999 +v -24.639999 -98.040001 -38.610001 +v -18.290001 -115.320000 -34.799999 +v -26.160000 -114.550003 -35.049999 +v -34.290001 -96.519997 -37.849998 +v -37.849998 -113.540001 -30.990000 +v -41.660000 -94.739998 -34.540001 +v -49.779999 -92.709999 -26.670000 +v -46.740002 -112.010002 -22.860001 +v -49.279999 -81.029999 -34.290001 +v -43.430000 -84.070000 -38.349998 +v -50.799999 -69.849998 -39.119999 +v -47.500000 -68.070000 -47.500000 +v -41.150002 -65.790001 -57.400002 +v -44.450001 -60.959999 -54.860001 +v -48.009998 -55.119999 -48.259998 +v -53.590000 -57.660000 -38.610001 +v -54.860001 -68.830002 -30.730000 +v -53.090000 -78.989998 -28.959999 +v -54.360001 -89.919998 -13.970000 +v -56.639999 -76.709999 -15.490000 +v -50.799999 -111.000000 -10.670000 +v -42.669998 -46.480000 -56.389999 +v -42.930000 -54.610001 -57.150002 +v -48.509998 -42.930000 -46.740002 +v -51.560001 -48.770000 -41.910000 +v -55.880001 -57.660000 -33.020000 +v -58.669998 -57.660000 -19.809999 +v -56.639999 -42.419998 -24.639999 +v -55.880001 -74.680000 -1.020000 +v -54.099998 -86.870003 0.510000 +v -50.549999 -107.440002 5.590000 +v -46.990002 -83.059998 11.940000 +v -34.540001 -70.360001 18.799999 +v -48.770000 -64.519997 8.130000 +v -33.270000 -79.760002 21.340000 +v -30.990000 -101.599998 25.650000 +v -43.180000 -104.650002 17.270000 +v -57.150002 -41.910000 -11.180000 +v -58.419998 -57.660000 -6.350000 +v -58.930000 -65.019997 -10.920000 +v -25.400000 -56.389999 14.220000 +v -18.540001 -78.739998 21.590000 +v -14.480000 -98.809998 25.650000 +v -18.540001 -53.090000 9.400000 +v -4.570000 -55.369999 11.180000 +v -6.860000 -58.669998 10.410000 +v -7.870000 -61.470001 7.370000 +v -8.640000 -70.870003 13.720000 +v -6.100000 -86.110001 17.270000 +v -4.060000 -96.769997 19.559999 +v -0.760000 -95.250000 14.730000 +v -0.250000 -82.800003 8.130000 +v -0.510000 -68.070000 1.020000 +v -1.780000 -60.959999 9.400000 +v 2.540000 -56.389999 10.670000 +v 5.080000 -59.689999 8.890000 +v 7.370000 -62.990002 6.600000 +v 6.860000 -72.389999 13.210000 +v 6.600000 -85.339996 18.799999 +v 6.860000 -97.279999 22.610001 +v 13.720000 -88.389999 24.129999 +v 14.220000 -98.300003 27.690001 +v 13.720000 -79.760002 20.830000 +v 12.950000 -67.559998 14.220000 +v 12.700000 -58.169998 6.600000 +v 9.910000 -54.860001 9.140000 +v 23.879999 -49.279999 5.080000 +v 34.799999 -80.519997 21.840000 +v 36.070000 -64.010002 11.680000 +v 34.799999 -89.410004 26.160000 +v 24.639999 -58.169998 10.670000 +v 23.370001 -73.410004 19.809999 +v 24.379999 -91.440002 27.940001 +# 711 vertices + +# 0 texture vertices + +# 0 normals + +g d +usemtl vskin +s 1 +f 3 2 1 +f 2 4 1 +f 5 1 4 +f 6 5 4 +f 7 5 6 +f 6 4 8 +f 9 8 4 +f 2 9 4 +f 10 9 2 +f 2 11 10 +f 3 11 2 +f 12 10 11 +f 12 11 13 +f 3 13 11 +f 3 15 14 +f 14 13 3 +f 14 16 13 +f 13 16 17 +f 19 16 18 +f 18 16 14 +f 20 18 14 +f 15 20 14 +f 12 17 21 +f 17 12 13 +f 23 18 22 +f 22 18 20 +f 22 25 24 +f 23 24 26 +f 24 23 22 +f 28 27 25 +f 25 27 24 +f 24 27 26 +f 29 18 23 +f 18 29 19 +f 30 19 29 +f 30 29 31 +f 31 29 23 +f 23 26 31 +f 19 30 32 +f 32 16 19 +f 28 25 33 +f 33 25 34 +f 33 35 28 +f 33 36 35 +f 35 36 37 +f 37 36 5 +f 5 36 38 +f 38 36 39 +f 38 39 3 +f 1 38 3 +f 1 5 38 +f 3 39 34 +f 15 3 34 +f 20 15 34 +f 22 20 34 +f 25 22 34 +f 36 33 34 +f 39 36 34 +f 40 10 12 +f 12 21 40 +f 30 41 32 +f 42 16 32 +f 32 43 42 +f 44 43 32 +f 32 41 44 +f 45 44 41 +f 41 46 45 +f 41 47 46 +f 47 41 48 +f 30 48 41 +f 31 48 30 +f 47 48 31 +f 47 50 49 +f 49 46 47 +f 50 47 51 +f 51 47 31 +f 51 31 52 +f 53 51 52 +f 51 53 50 +f 31 26 52 +f 26 54 52 +f 26 27 54 +f 54 27 55 +f 55 27 56 +f 56 27 57 +f 57 27 28 +f 57 28 35 +f 37 57 35 +f 7 57 37 +f 58 53 52 +f 59 58 52 +f 60 59 52 +f 54 60 52 +f 55 60 54 +f 61 60 55 +f 61 55 62 +f 62 55 63 +f 63 55 8 +f 55 6 8 +f 56 6 55 +f 57 7 56 +f 6 56 7 +f 8 9 64 +f 64 65 8 +f 63 8 65 +f 63 65 66 +f 66 62 63 +f 66 65 67 +f 65 64 67 +f 64 68 67 +f 68 64 9 +f 69 68 9 +f 9 10 69 +f 71 69 70 +f 70 69 10 +f 70 72 71 +f 71 72 73 +f 5 7 37 +f 10 40 70 +f 70 40 72 +f 72 40 74 +f 40 21 74 +f 74 21 75 +f 21 17 75 +f 73 72 74 +f 74 76 73 +f 74 75 76 +f 17 77 75 +f 42 77 17 +f 17 16 42 +f 79 78 69 +f 78 68 69 +f 68 78 80 +f 81 68 80 +f 81 82 68 +f 68 82 67 +f 82 83 67 +f 84 83 82 +f 82 81 84 +f 84 81 80 +f 83 66 67 +f 66 83 85 +f 86 66 85 +f 66 86 87 +f 62 66 87 +f 88 62 87 +f 62 88 61 +f 89 61 88 +f 61 89 90 +f 59 60 90 +f 60 61 90 +f 89 91 90 +f 91 59 90 +f 59 91 92 +f 58 59 92 +f 93 58 92 +f 94 93 92 +f 91 94 92 +f 94 95 93 +f 96 93 95 +f 97 93 96 +f 58 93 97 +f 97 98 58 +f 53 58 98 +f 53 98 50 +f 99 50 98 +f 100 99 97 +f 98 97 99 +f 97 96 100 +f 99 49 50 +f 101 49 99 +f 99 100 101 +f 46 49 101 +f 101 102 46 +f 102 103 46 +f 45 46 103 +f 104 45 103 +f 44 45 104 +f 104 105 44 +f 106 44 105 +f 44 106 43 +f 42 43 107 +f 43 106 108 +f 108 106 109 +f 43 108 110 +f 107 43 110 +f 107 77 42 +f 77 107 111 +f 107 112 111 +f 112 107 110 +f 113 77 111 +f 113 114 77 +f 75 77 114 +f 75 114 115 +f 115 116 75 +f 76 75 116 +f 116 115 117 +f 117 118 116 +f 116 73 76 +f 73 116 118 +f 73 118 71 +f 71 118 119 +f 118 117 120 +f 119 118 120 +f 121 119 120 +f 109 106 122 +f 122 106 105 +f 105 104 122 +f 104 123 122 +f 124 123 104 +f 103 124 104 +f 124 103 125 +f 103 102 125 +f 125 102 126 +f 126 102 101 +f 101 127 126 +f 128 127 101 +f 128 101 100 +f 100 129 128 +f 129 100 130 +f 130 100 96 +f 95 131 96 +f 96 131 130 +f 132 131 95 +f 79 69 71 +f 71 119 79 +f 133 119 121 +f 119 133 79 +f 78 79 133 +f 133 134 78 +f 78 134 80 +f 134 135 80 +f 136 84 80 +f 135 136 80 +f 136 137 84 +f 138 84 137 +f 84 138 83 +f 83 138 85 +f 139 88 87 +f 88 139 89 +f 140 91 89 +f 91 140 94 +f 94 142 141 +f 94 140 142 +f 95 94 141 +f 132 95 141 +f 135 134 143 +f 143 134 133 +f 133 144 143 +f 133 145 144 +f 121 145 133 +f 146 145 121 +f 121 120 147 +f 121 147 146 +f 147 120 148 +f 120 117 148 +f 148 117 149 +f 117 115 149 +f 115 151 150 +f 115 114 151 +f 151 114 152 +f 153 148 149 +f 150 153 149 +f 145 146 154 +f 144 145 154 +f 155 144 154 +f 144 155 143 +f 156 143 155 +f 157 155 154 +f 155 157 156 +f 158 143 156 +f 143 158 135 +f 135 158 159 +f 158 160 159 +f 158 156 160 +f 156 161 160 +f 156 157 161 +f 161 157 162 +f 163 162 157 +f 161 162 164 +f 163 165 162 +f 166 162 165 +f 162 166 164 +f 166 167 164 +f 167 168 164 +f 168 161 164 +f 168 160 161 +f 160 168 159 +f 136 135 159 +f 137 136 159 +f 169 138 137 +f 138 169 85 +f 169 170 85 +f 170 169 171 +f 171 169 159 +f 169 137 159 +f 172 171 159 +f 173 172 159 +f 168 173 159 +f 173 168 174 +f 168 167 174 +f 170 175 85 +f 175 86 85 +f 86 175 176 +f 177 86 176 +f 163 157 154 +f 146 163 154 +f 86 177 87 +f 177 178 87 +f 178 139 87 +f 89 139 179 +f 180 89 179 +f 180 181 89 +f 89 181 182 +f 140 89 182 +f 142 140 183 +f 183 140 182 +f 142 184 141 +f 184 185 141 +f 185 132 141 +f 132 185 186 +f 186 187 132 +f 187 131 132 +f 188 131 187 +f 186 185 189 +f 189 185 184 +f 190 183 182 +f 191 190 182 +f 181 192 182 +f 193 192 181 +f 181 180 193 +f 180 194 193 +f 194 180 179 +f 195 194 179 +f 139 195 179 +f 196 195 139 +f 139 178 196 +f 196 178 197 +f 197 178 177 +f 198 197 177 +f 199 198 177 +f 199 177 176 +f 200 199 176 +f 199 200 198 +f 198 200 201 +f 202 201 200 +f 202 200 203 +f 200 175 203 +f 175 170 203 +f 175 200 176 +f 170 204 203 +f 171 204 170 +f 205 204 171 +f 206 205 171 +f 171 172 206 +f 207 206 172 +f 172 173 207 +f 208 207 173 +f 208 173 174 +f 209 207 208 +f 208 210 209 +f 211 209 210 +f 210 202 211 +f 202 210 212 +f 201 202 212 +f 213 208 174 +f 167 214 174 +f 214 213 174 +f 215 167 166 +f 213 210 208 +f 213 216 210 +f 210 216 212 +f 216 217 212 +f 217 201 212 +f 201 217 218 +f 198 201 218 +f 197 198 218 +f 219 197 218 +f 197 219 220 +f 221 204 205 +f 205 206 221 +f 207 221 206 +f 209 221 207 +f 209 211 221 +f 221 211 202 +f 221 202 203 +f 204 221 203 +f 220 222 197 +f 196 197 222 +f 196 222 223 +f 195 196 223 +f 194 195 223 +f 224 194 223 +f 224 225 194 +f 193 194 225 +f 193 225 226 +f 192 193 226 +f 191 192 226 +f 227 191 226 +f 228 227 226 +f 229 228 226 +f 225 229 226 +f 192 191 182 +f 183 184 142 +f 183 190 230 +f 190 191 230 +f 191 227 230 +f 227 231 230 +f 231 232 230 +f 232 183 230 +f 183 232 233 +f 233 184 183 +f 189 184 233 +f 130 131 188 +f 188 234 130 +f 129 130 234 +f 234 128 129 +f 235 234 188 +f 236 235 188 +f 235 236 237 +f 237 238 235 +f 238 128 234 +f 235 238 234 +f 237 239 238 +f 128 238 239 +f 239 240 128 +f 240 127 128 +f 126 127 240 +f 241 220 219 +f 242 165 163 +f 166 242 215 +f 165 242 166 +f 163 243 242 +f 244 243 163 +f 247 246 245 +f 242 243 215 +f 163 248 244 +f 249 248 163 +f 163 146 249 +f 249 146 250 +f 147 250 146 +f 250 147 148 +f 148 153 250 +f 250 153 249 +f 251 249 153 +f 248 249 251 +f 251 252 248 +f 248 252 244 +f 244 252 247 +f 243 244 247 +f 247 215 243 +f 252 246 247 +f 251 246 252 +f 153 150 251 +f 251 150 246 +f 150 149 115 +f 150 151 246 +f 253 246 151 +f 245 246 253 +f 253 151 152 +f 114 113 152 +f 254 152 113 +f 254 113 111 +f 253 255 245 +f 152 255 253 +f 255 152 254 +f 255 254 256 +f 256 254 111 +f 257 256 111 +f 112 257 111 +f 257 112 110 +f 258 257 110 +f 108 258 110 +f 108 259 258 +f 259 108 109 +f 122 259 109 +f 259 122 260 +f 260 122 123 +f 123 261 260 +f 123 262 261 +f 262 123 124 +f 263 245 255 +f 264 263 255 +f 264 255 256 +f 256 265 264 +f 265 256 257 +f 257 258 265 +f 258 266 265 +f 267 258 259 +f 266 258 267 +f 268 267 259 +f 268 260 261 +f 259 260 268 +f 261 262 268 +f 262 269 268 +f 268 269 270 +f 270 271 268 +f 268 271 267 +f 271 272 267 +f 267 272 273 +f 273 266 267 +f 273 265 266 +f 265 273 274 +f 274 264 265 +f 275 264 274 +f 263 264 275 +f 275 276 263 +f 276 277 263 +f 245 263 277 +f 247 245 277 +f 167 215 278 +f 215 279 278 +f 215 280 279 +f 279 280 281 +f 280 282 281 +f 282 280 283 +f 280 277 283 +f 280 247 277 +f 247 280 215 +f 277 284 283 +f 284 285 283 +f 284 277 276 +f 276 285 284 +f 286 285 276 +f 275 286 276 +f 274 286 275 +f 274 287 286 +f 288 287 274 +f 273 288 274 +f 289 288 273 +f 273 272 289 +f 272 271 289 +f 271 290 289 +f 270 290 271 +f 291 290 270 +f 292 290 291 +f 291 293 292 +f 290 292 289 +f 294 289 292 +f 295 289 294 +f 288 289 295 +f 295 287 288 +f 296 287 295 +f 297 287 296 +f 286 287 297 +f 297 285 286 +f 285 297 298 +f 285 298 283 +f 298 299 283 +f 299 282 283 +f 292 293 300 +f 300 294 292 +f 301 294 300 +f 295 294 301 +f 302 295 301 +f 302 296 295 +f 296 302 297 +f 297 302 303 +f 298 297 303 +f 126 240 304 +f 240 305 304 +f 240 239 305 +f 305 239 306 +f 237 307 239 +f 308 307 237 +f 237 236 309 +f 309 308 237 +f 306 307 308 +f 307 306 239 +f 306 308 310 +f 305 306 310 +f 311 308 309 +f 310 308 311 +f 312 305 310 +f 305 312 304 +f 312 125 304 +f 125 126 304 +f 125 262 124 +f 313 262 125 +f 312 313 125 +f 313 312 314 +f 312 310 314 +f 310 311 314 +f 311 315 314 +f 315 270 314 +f 270 269 314 +f 269 262 314 +f 262 313 314 +f 291 270 316 +f 270 315 316 +f 315 311 316 +f 311 317 316 +f 317 318 316 +f 318 319 316 +f 319 291 316 +f 320 318 317 +f 317 311 320 +f 320 311 309 +f 309 321 320 +f 309 322 321 +f 321 322 323 +f 321 324 320 +f 324 318 320 +f 325 324 321 +f 321 323 325 +f 188 187 236 +f 236 187 326 +f 309 236 326 +f 187 186 326 +f 322 309 326 +f 186 322 326 +f 186 327 322 +f 189 327 186 +f 327 189 328 +f 233 328 189 +f 232 328 233 +f 328 232 329 +f 232 231 329 +f 330 231 227 +f 227 228 330 +f 330 228 229 +f 229 331 330 +f 229 225 331 +f 331 225 224 +f 333 332 223 +f 332 331 223 +f 331 224 223 +f 331 332 334 +f 334 330 331 +f 330 334 329 +f 231 330 329 +f 335 328 329 +f 336 335 329 +f 334 336 329 +f 336 334 337 +f 334 332 337 +f 332 338 337 +f 333 338 332 +f 333 222 220 +f 241 219 218 +f 217 241 218 +f 241 217 339 +f 339 217 340 +f 340 217 216 +f 328 322 327 +f 323 322 341 +f 341 322 328 +f 328 335 341 +f 341 335 342 +f 335 336 342 +f 336 343 342 +f 343 336 337 +f 338 343 337 +f 343 338 344 +f 338 345 344 +f 346 345 338 +f 338 333 346 +f 346 333 220 +f 220 241 346 +f 346 241 339 +f 347 346 339 +f 346 347 348 +f 347 349 348 +f 349 350 348 +f 345 346 348 +f 351 345 348 +f 350 351 348 +f 352 350 349 +f 351 353 345 +f 345 353 344 +f 353 354 344 +f 354 355 344 +f 355 343 344 +f 343 355 342 +f 355 356 342 +f 354 356 355 +f 356 341 342 +f 341 356 357 +f 341 357 323 +f 357 325 323 +f 222 333 223 +f 339 340 347 +f 216 358 340 +f 340 360 359 +f 340 358 360 +f 347 340 359 +f 349 347 359 +f 361 349 359 +f 361 352 349 +f 362 361 359 +f 363 361 362 +f 362 364 363 +f 279 363 364 +f 363 279 281 +f 279 364 365 +f 279 365 278 +f 365 214 278 +f 214 167 278 +f 358 216 213 +f 213 214 358 +f 214 365 358 +f 365 360 358 +f 360 362 359 +f 362 360 365 +f 365 364 362 +f 354 353 366 +f 367 354 366 +f 354 367 368 +f 368 356 354 +f 357 356 368 +f 368 369 357 +f 353 351 366 +f 351 350 370 +f 351 372 371 +f 351 371 366 +f 368 367 373 +f 369 368 373 +f 373 374 369 +f 375 369 374 +f 325 369 375 +f 357 369 325 +f 375 324 325 +f 375 318 324 +f 376 318 375 +f 374 376 375 +f 352 361 377 +f 350 352 370 +f 352 377 370 +f 372 351 370 +f 379 373 378 +f 373 380 378 +f 373 367 380 +f 380 367 366 +f 381 380 366 +f 382 381 366 +f 371 382 366 +f 382 371 383 +f 371 384 383 +f 384 371 372 +f 384 372 370 +f 385 384 370 +f 386 385 370 +f 377 386 370 +f 387 386 377 +f 377 361 387 +f 387 361 388 +f 361 363 388 +f 363 389 388 +f 389 363 281 +f 390 389 281 +f 390 391 389 +f 392 391 390 +f 390 393 392 +f 389 391 388 +f 391 394 388 +f 394 391 395 +f 395 391 392 +f 392 393 396 +f 392 396 397 +f 395 392 397 +f 398 395 397 +f 398 399 395 +f 395 399 400 +f 394 395 400 +f 387 394 400 +f 394 387 388 +f 386 387 400 +f 401 386 400 +f 402 401 400 +f 399 402 400 +f 399 398 402 +f 403 402 398 +f 402 403 404 +f 405 402 404 +f 405 401 402 +f 401 405 406 +f 386 401 406 +f 407 386 406 +f 385 386 407 +f 384 385 408 +f 408 409 384 +f 384 409 383 +f 409 410 383 +f 410 411 383 +f 410 412 411 +f 411 412 404 +f 412 405 404 +f 405 412 406 +f 412 407 406 +f 385 407 413 +f 408 385 413 +f 409 408 413 +f 410 409 413 +f 412 410 413 +f 407 412 413 +f 411 414 383 +f 414 381 382 +f 414 382 383 +f 415 381 414 +f 416 381 415 +f 380 381 416 +f 380 416 378 +f 416 417 378 +f 417 379 378 +f 418 379 417 +f 417 416 419 +f 416 420 419 +f 420 416 421 +f 416 422 421 +f 415 422 416 +f 415 414 423 +f 414 411 423 +f 411 424 423 +f 424 411 404 +f 425 424 404 +f 426 425 404 +f 403 426 404 +f 425 426 427 +f 428 425 427 +f 425 428 421 +f 428 420 421 +f 422 425 421 +f 425 422 423 +f 424 425 423 +f 422 415 423 +f 429 374 373 +f 373 379 429 +f 430 429 379 +f 379 418 430 +f 430 418 431 +f 431 432 430 +f 433 432 431 +f 431 434 433 +f 433 434 435 +f 433 435 436 +f 435 434 437 +f 437 434 438 +f 434 431 438 +f 431 439 438 +f 431 418 439 +f 439 418 417 +f 439 417 419 +f 440 439 419 +f 439 440 438 +f 440 441 438 +f 441 442 438 +f 442 437 438 +f 442 441 443 +f 441 444 443 +f 441 440 444 +f 420 440 419 +f 420 428 440 +f 444 440 428 +f 428 445 444 +f 446 444 445 +f 444 446 443 +f 445 428 427 +f 447 445 427 +f 445 447 448 +f 446 445 448 +f 447 449 448 +f 449 447 450 +f 447 426 450 +f 426 447 427 +f 426 403 450 +f 451 449 450 +f 452 451 450 +f 452 454 453 +f 454 452 455 +f 455 452 450 +f 398 455 450 +f 403 398 450 +f 456 398 397 +f 398 456 455 +f 457 455 456 +f 456 458 457 +f 458 456 397 +f 396 458 397 +f 458 396 393 +f 393 459 458 +f 459 393 460 +f 460 393 461 +f 393 390 462 +f 390 463 462 +f 459 464 458 +f 464 459 465 +f 458 464 466 +f 466 464 467 +f 468 467 464 +f 466 467 469 +f 467 470 469 +f 454 455 469 +f 455 457 469 +f 457 458 469 +f 458 466 469 +f 282 463 281 +f 463 390 281 +f 282 299 463 +f 463 299 471 +f 461 463 471 +f 463 461 462 +f 461 393 462 +f 461 472 460 +f 460 472 473 +f 473 459 460 +f 465 459 473 +f 473 474 465 +f 474 473 472 +f 476 474 475 +f 474 472 475 +f 472 477 475 +f 461 477 472 +f 477 461 478 +f 471 478 461 +f 478 471 299 +f 299 298 479 +f 478 299 479 +f 480 478 479 +f 481 480 479 +f 479 303 481 +f 298 303 479 +f 481 482 480 +f 480 482 483 +f 478 480 483 +f 483 477 478 +f 484 477 483 +f 477 484 475 +f 484 485 475 +f 484 486 485 +f 485 486 487 +f 486 488 487 +f 489 488 486 +f 486 483 489 +f 483 482 489 +f 483 486 484 +f 319 293 291 +f 319 490 293 +f 493 492 491 +f 490 491 492 +f 293 490 494 +f 293 494 300 +f 300 495 301 +f 301 495 302 +f 302 495 496 +f 496 497 302 +f 303 302 497 +f 497 481 303 +f 498 482 481 +f 489 482 498 +f 499 488 489 +f 500 488 499 +f 499 489 501 +f 501 489 502 +f 489 498 502 +f 498 503 502 +f 481 497 498 +f 498 497 503 +f 503 497 496 +f 496 504 503 +f 496 505 504 +f 495 505 496 +f 506 505 495 +f 506 495 300 +f 300 507 506 +f 300 494 507 +f 494 508 507 +f 490 508 494 +f 492 508 490 +f 508 492 509 +f 509 492 493 +f 493 510 509 +f 508 509 507 +f 510 512 511 +f 510 514 513 +f 513 512 510 +f 511 509 510 +f 515 509 511 +f 507 509 515 +f 515 516 507 +f 517 507 516 +f 506 507 517 +f 517 505 506 +f 518 505 517 +f 504 505 518 +f 518 519 504 +f 503 504 519 +f 503 519 502 +f 519 501 502 +f 501 519 518 +f 501 518 499 +f 518 520 499 +f 520 518 517 +f 520 516 515 +f 517 516 520 +f 515 521 520 +f 522 521 515 +f 511 522 515 +f 511 512 522 +f 523 522 512 +f 512 524 523 +f 513 524 512 +f 523 525 522 +f 523 526 525 +f 525 521 522 +f 527 521 525 +f 521 527 528 +f 520 521 528 +f 528 529 520 +f 530 520 529 +f 530 499 520 +f 499 530 531 +f 500 499 531 +f 376 319 318 +f 319 376 490 +f 491 490 376 +f 491 376 374 +f 374 429 491 +f 491 429 532 +f 532 533 491 +f 491 533 493 +f 510 493 533 +f 533 514 510 +f 534 514 533 +f 533 532 534 +f 532 430 534 +f 429 430 532 +f 535 534 430 +f 430 432 535 +f 432 536 535 +f 537 536 432 +f 432 433 537 +f 536 534 535 +f 514 534 513 +f 513 534 536 +f 524 513 536 +f 524 536 537 +f 529 538 530 +f 530 538 531 +f 539 500 531 +f 539 540 500 +f 500 540 488 +f 488 540 487 +f 524 541 523 +f 526 523 541 +f 526 541 542 +f 542 543 526 +f 525 544 527 +f 525 545 544 +f 526 545 525 +f 543 545 526 +f 545 543 546 +f 546 544 545 +f 546 543 547 +f 548 547 543 +f 543 549 548 +f 548 549 550 +f 550 549 551 +f 552 551 549 +f 552 549 553 +f 553 549 542 +f 542 549 543 +f 553 542 554 +f 554 542 541 +f 541 537 554 +f 537 541 524 +f 436 537 433 +f 554 537 436 +f 436 555 554 +f 555 556 554 +f 556 557 554 +f 554 557 553 +f 553 557 558 +f 559 558 557 +f 559 557 560 +f 560 557 556 +f 556 555 560 +f 561 560 555 +f 555 562 561 +f 555 435 562 +f 436 435 555 +f 564 435 563 +f 435 564 565 +f 565 562 435 +f 566 562 565 +f 565 564 566 +f 528 538 529 +f 538 567 531 +f 538 568 567 +f 567 568 569 +f 569 570 567 +f 571 570 569 +f 569 572 571 +f 546 547 573 +f 547 548 573 +f 575 574 572 +f 573 548 576 +f 576 548 550 +f 574 571 572 +f 544 546 577 +f 558 552 553 +f 574 578 571 +f 580 579 571 +f 571 578 580 +f 579 570 571 +f 567 570 579 +f 581 567 579 +f 582 567 581 +f 567 582 531 +f 582 539 531 +f 539 582 540 +f 582 583 540 +f 540 583 584 +f 584 487 540 +f 528 585 538 +f 538 585 568 +f 585 586 568 +f 568 586 569 +f 587 569 586 +f 572 569 587 +f 588 572 587 +f 575 572 589 +f 588 589 572 +f 587 576 588 +f 573 576 587 +f 587 577 573 +f 573 577 546 +f 586 577 587 +f 577 586 590 +f 590 544 577 +f 590 586 585 +f 590 585 527 +f 585 528 527 +f 527 544 590 +f 591 584 583 +f 583 592 591 +f 593 591 592 +f 592 594 593 +f 592 595 594 +f 596 594 595 +f 596 595 597 +f 597 595 598 +f 598 595 599 +f 595 580 599 +f 580 578 599 +f 600 578 574 +f 574 601 600 +f 575 601 574 +f 580 595 602 +f 579 580 602 +f 592 579 602 +f 579 592 581 +f 583 581 592 +f 581 583 582 +f 595 592 602 +f 603 561 562 +f 604 561 603 +f 605 561 604 +f 606 561 605 +f 560 561 606 +f 606 559 560 +f 606 607 559 +f 608 606 605 +f 605 609 608 +f 608 609 610 +f 610 611 608 +f 611 612 608 +f 608 612 613 +f 608 613 607 +f 607 606 608 +f 607 558 559 +f 558 607 613 +f 613 614 558 +f 558 614 552 +f 552 614 551 +f 615 551 614 +f 551 615 550 +f 550 615 576 +f 576 615 616 +f 617 616 615 +f 617 615 612 +f 612 615 618 +f 618 613 612 +f 618 614 613 +f 614 618 615 +f 616 588 576 +f 588 616 617 +f 617 619 588 +f 612 619 617 +f 622 621 620 +f 612 620 619 +f 619 623 588 +f 621 625 624 +f 621 624 623 +f 622 625 621 +f 620 611 622 +f 620 612 611 +f 626 611 610 +f 626 622 611 +f 626 627 622 +f 610 627 626 +f 622 627 625 +f 627 628 625 +f 624 629 623 +f 629 575 623 +f 588 623 589 +f 630 575 629 +f 629 624 630 +f 625 630 624 +f 631 630 625 +f 631 625 628 +f 628 632 631 +f 631 632 633 +f 633 630 631 +f 634 630 633 +f 630 634 601 +f 630 601 575 +f 634 600 601 +f 578 600 599 +f 600 635 599 +f 635 636 599 +f 636 598 599 +f 636 597 598 +f 635 600 634 +f 634 637 635 +f 636 635 637 +f 636 637 638 +f 637 634 638 +f 633 638 634 +f 639 638 633 +f 640 639 633 +f 632 640 633 +f 639 640 641 +f 641 642 639 +f 642 641 643 +f 643 644 642 +f 644 643 645 +f 645 643 646 +f 645 647 644 +f 644 648 636 +f 636 642 644 +f 638 642 636 +f 639 642 638 +f 648 597 636 +f 647 648 644 +f 596 648 647 +f 648 596 597 +f 647 649 596 +f 596 649 650 +f 651 596 650 +f 651 594 596 +f 593 594 651 +f 651 652 593 +f 650 652 651 +f 652 650 653 +f 650 649 653 +f 649 654 653 +f 649 655 654 +f 655 649 647 +f 655 647 656 +f 656 647 645 +f 658 645 657 +f 645 646 657 +f 646 659 657 +f 620 621 623 +f 620 623 619 +f 660 487 584 +f 660 584 591 +f 661 660 591 +f 591 593 661 +f 661 593 652 +f 661 652 653 +f 662 660 653 +f 660 661 653 +f 662 485 660 +f 485 487 660 +f 662 663 476 +f 664 476 663 +f 654 664 663 +f 654 663 653 +f 663 662 653 +f 476 664 665 +f 666 476 665 +f 476 666 474 +f 485 662 475 +f 662 476 475 +f 655 664 654 +f 664 655 665 +f 655 658 665 +f 656 658 655 +f 647 656 655 +f 645 658 656 +f 623 575 589 +f 667 658 657 +f 668 667 657 +f 669 668 657 +f 659 669 657 +f 668 669 670 +f 670 667 668 +f 672 670 671 +f 670 673 671 +f 670 674 673 +f 675 674 670 +f 670 669 675 +f 676 666 665 +f 677 676 665 +f 676 677 468 +f 468 464 676 +f 667 468 677 +f 677 678 667 +f 678 677 665 +f 658 678 665 +f 658 667 678 +f 670 672 667 +f 468 667 672 +f 468 672 467 +f 672 470 467 +f 470 672 671 +f 470 679 469 +f 679 470 671 +f 680 679 671 +f 673 680 671 +f 680 673 674 +f 674 681 680 +f 474 666 465 +f 465 666 676 +f 464 465 676 +f 679 454 469 +f 679 682 454 +f 454 682 453 +f 451 452 453 +f 683 451 453 +f 684 683 453 +f 685 684 453 +f 453 682 685 +f 685 682 686 +f 682 679 686 +f 679 680 686 +f 680 687 686 +f 680 681 687 +f 687 681 688 +f 688 689 687 +f 690 687 689 +f 687 690 686 +f 690 691 686 +f 691 685 686 +f 685 691 692 +f 684 685 692 +f 683 684 692 +f 449 451 683 +f 683 693 449 +f 693 683 692 +f 694 693 692 +f 691 694 692 +f 691 695 694 +f 695 691 696 +f 691 690 696 +f 690 697 696 +f 697 690 689 +f 689 698 697 +f 698 700 699 +f 697 698 699 +f 701 697 699 +f 697 701 696 +f 701 702 696 +f 702 695 696 +f 702 703 695 +f 703 694 695 +f 704 694 703 +f 693 694 704 +f 693 704 448 +f 449 693 448 +f 704 446 448 +f 446 704 705 +f 446 705 443 +f 705 442 443 +f 563 442 705 +f 437 442 563 +f 563 435 437 +f 564 707 706 +f 566 564 706 +f 708 566 706 +f 563 707 564 +f 707 563 709 +f 563 705 709 +f 705 703 709 +f 703 705 704 +f 703 702 709 +f 702 710 709 +f 701 710 702 +f 701 711 710 +f 711 701 699 +f 700 711 699 +f 711 708 706 +f 710 711 706 +f 707 710 706 +f 710 707 709 +f 603 562 566 +f 610 689 627 +f 698 689 610 +f 698 610 609 +f 609 700 698 +f 711 700 609 +f 711 609 605 +f 605 708 711 +f 708 605 604 +f 604 566 708 +f 566 604 603 +f 627 689 688 +f 688 628 627 +f 628 688 681 +f 681 632 628 +f 632 681 674 +f 674 640 632 +f 641 640 674 +f 674 643 641 +f 643 674 675 +f 675 646 643 +f 669 646 675 +f 659 646 669 +# 1419 elements diff --git a/Gem/examples/data/vera.ttf b/Gem/examples/data/vera.ttf new file mode 100644 index 0000000..58cd6b5 Binary files /dev/null and b/Gem/examples/data/vera.ttf differ diff --git a/Gem/fragment_program-help.pd b/Gem/fragment_program-help.pd new file mode 100644 index 0000000..90d278e --- /dev/null +++ b/Gem/fragment_program-help.pd @@ -0,0 +1,86 @@ +#N canvas 35 199 694 458 10; +#X text 452 8 GEM object; +#X obj 8 335 cnv 15 430 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 11 334 Inlets:; +#X text 10 386 Outlets:; +#X obj 8 296 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 295 Arguments:; +#X obj 7 76 cnv 15 430 210 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 444 77 cnv 15 200 230 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 474 334 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 479 373 pd gemwin; +#X msg 479 354 create; +#X text 475 333 Create window:; +#X obj 450 178 cnv 15 190 70 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X text 63 306 ; +#X text 28 399 Outlet 1: gemlist; +#X text 35 346 Inlet 1: gemlist; +#X obj 10 211 cnv 15 420 70 empty empty empty 20 12 0 14 -225280 -66577 +0; +#X text 71 31 Class: shader object; +#X obj 516 184 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 459 183 pd open; +#X text 14 219 IMPORTANT NOTE: your openGL-implementation (gfx-card +driver \, ...) has to support either (or both) the ARB shader extensions +or the NV shader extensions in order to make use of this object.; +#X text 10 176 Of course \, you also have to supply anything else needed +for the shader to work (like textures \, ...); +#X obj 451 266 teapot; +#X msg 459 203 open examples/data/random.fp; +#X text 50 12 Synopsis: [fragment_program]; +#X text 12 76 Description: load and apply an ARB fragment shader; +#X text 24 95 [fragment_program] loads and applies an ARB (or NV) fragment +shader.; +#X text 11 123 If you want to modify the parameters of the shader-program +\, you have to set the modification up yourself \, via [GEMglProgramEnvParameter*] +working on GL_FRAGMENT_PROGRAM_ARB.; +#X text 35 358 Inlet 1: messsage: open : fragment shader +program to load; +#X text 443 406 see also; +#X obj 508 406 vertex_program; +#X obj 451 226 fragment_program random.fp; +#X connect 10 0 11 0; +#X connect 11 0 10 0; +#X connect 14 0 33 0; +#X connect 20 0 21 0; +#X connect 21 0 25 0; +#X connect 25 0 33 0; +#X connect 33 0 24 0; diff --git a/Gem/gem.known_bugs.txt b/Gem/gem.known_bugs.txt new file mode 100644 index 0000000..d00beb8 --- /dev/null +++ b/Gem/gem.known_bugs.txt @@ -0,0 +1,298 @@ +GEM ONLINE DOCUMENTATION CHAPTER 4: Known bugs +---------------------------------------------- + +---------------------------- KNOWN BUGS ----------------------------- + +[pix_lumaoffset] crashes +-------------- +POSTED 15/05/04 +-------------- +BUG: pix_lumaoffset crashes when the offset-factor is very high and fill+smooth is turned on +ANS: yes; but we haven't found where the bug is hidden yet + +loading movies leaks memory under Win32 +-------------- +POSTED 4/16/02 +-------------- +BUG: each time an AVI is loaded, the used memory increases for about 400k. + after some time (and opening MANY files) this will be too much... +ANS: i fear, this is really a mikro$oft bug! (probably not;-)) + + +loading MPEG-movies crashes under Win32 +-------------- +POSTED 4/05/04 +-------------- +BUG: loading MPEG-movies (*.MPG) crashes pd +ANS: MPEG is not really supported under the Win32-version of Gem + however Gem tries to decode MPEGs via QuickTime which might crash (see below) + +loading AVI-movies does not work under Win32 +-------------- +POSTED 4/05/04 +-------------- +BUG: loading some AVI-movies with certain codecs does not work under Win2k and bigger. +ANS: Gem is (still) using a rather old API for decoding videos. + it might well be, that not all installed codecs are supported (e.g. Indeo-5) + + +have to destroy / create window to change lighting state in buffer == 1 +-------------- +POSTED 11/07/98 +-------------- +BUG: If you want to change the lighting when GEM is running in single + buffer mode, you have to destroy and then create the window. +ANS: hopefully we will drop single-buffer mode soon (enabling double-buffer feedback instead) (2004) + + +WinNT pix_video object +-------------- +POSTED 6/25/98 +------------- +BUG: The WinNT pix_video object has a lot of problems. It is not + very stable, tends to lock up the machine, etc. +ANS: don't have much problems with it. + daniel's directshow-support enables support for most newer (ieee1394,usb) cameras under win, + although the interface is somewhat different than on other OS's + (eg: set dimensions via pop-up menu,...) + + +splines are incorrect +-------------- +POSTED 6/25/98 +-------------- +BUG: In preventing the crasher in the spline object, I have introduced + another bug. Mainly, the end points don't get computed correctly. + + +Polygon doesn't tesselate (ie, polygons sometimes look strange) +-------------- +POSTED 5/19/97 +-------------- +BUG: Because the polygon object doesn't tesselate itself, + if it is concave, the behavior is undefined under OpenGL. + + +glxContext memory leak +-------------- +POSTED 5/18/97 +-------------- +BUG: The dummy glxContext doesn't ever get destroyed. Use a static object + to create and destroy it when the DSO is loaded/unloaded. + + +Indycam broken +-------------- +POSTED 5/1/97 +-------------- +BUG: The Indycam object doesn't seem to work. While getting the O2cam + up, I seem to have broken the Indycam object. One known + bug is that the Indycam doesn't accept the dimen message. +ANS: i don't have a running SGI with an indycam at hand, so i + don't know how to fix it + +---------------------------- FIXED BUGS ----------------------------- + +some geos don't render data from pix_movie correctly +-------------- +POSTED 19/03/2004 +FIXED 20/03/2004 +-------------- +BUG: Some objects don't render images correctly +ANS: Gem tries to use rectangle-textures when available + GLU-objects cannot handle such textures +FIX: send a "mode 0" message to the [pix_texture] +FIX2:put the specific GLU-code into Gem and fixed the problem + + +some geos don't render data from pix_movie correctly +-------------- +POSTED 4/24/99 +FIXED 20/03/2004 +-------------- +BUG: Sphere and cone don't texture map movie data correctly because + they ignore the texture coordinates that pix_movie sets. +ANS: as long as we use the libGLU for these objects there is not much chance + to fix the core of this problem +FIX: put the specific GLU-code into Gem and fixed the problem + + +Cone and sphere ignore textCoords +-------------- +POSTED 4/12/99 +FIXED 20/03/2004 +-------------- +BUG: The glu library is used to create the cone and sphere, so gem + doesn't control the texture coordinates used. +FIX: put the specific GLU-code into Gem and fixed the problem + + +text2d is messed up +-------------- +FIXED 01/01/04 +POSTED 2/22/98 +-------------- +BUG: text2d doesn't really work at all. There seems to be a bug + in the GLTT library which is messing up the rasterpos. +FIX: use FTGL rather than GLTT + + +curve is broken under Linux +-------------- +FIXED 01/01/04 +POSTED 0/24/99 +-------------- +BUG: if curve is used under Linux, it core dumps when rendering. + It dumps on glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, m_numInputs, &(m_vert[0][0])); +ANS: seems to work now + + +model crashes when nothing is loaded +--------------- +FIXED 01/01/04 +POSTED 10/25/02 +--------------- +BUG: if rendering is started without a model being loaded before, pd crashes +ANS: seems to be fixed sime time ago... + + +pix_imageInPlace crashes when nothing is loaded +--------------- +FIXED 01/01/04 +POSTED 10/25/02 +--------------- +BUG: when trying to download non-existant images (by specifying the wrong + preload-name), pd-crashes +ANS: seems to be fixed now... + + +Can't process pix_movie data with pix objects +-------------- +FIXED 4/15/02 +POSTED 4/24/99 +-------------- +BUG: pix_movie sends the data immediately to OpenGL, + so there is no chance to process the data. +ANS: it does what it does; [pix_film] does not send the image-data immediately, so use it instead + + +pix_2grey doesn't process the correct number of pixels +-------------- +FIXED 2/19/00 +POSTED 2/18/00 +-------------- +BUG: The pixel count is calculated with addition instead of multiplying. +ANS: Just changed how the calculation occurs. + + +tablet not reset on exit +-------------- +FIXED 1/24/99 +POSTED 8/29/98 +-------------- +BUG: If the user has a tablet, it is not reset to the default settings + on exit, making it unusable as a mouse. +ANS: Just needed to do some more cleanup on exit. Should be okay now. + + +text object can't be found +-------------- +FIXED 2/21/98 +POSTED 5/1/97 +-------------- +BUG: Because the text is a special keyword and object inside of + pd, the text object cannot be found as a GEM object. The solution + is to rename it to something else. +ANS: I am using a cool library called gltt which will render true type + fonts in OpenGL. + + +Memory exception on WinNT +-------------- +FIXED 12/15/97 +POSTED 11/30/97 +-------------- +BUG: If you use pix_image, then there is a memory exception (ie, crash) when + you exit Pd. It doesn't happen while actually running Pd/GEM. +ANS: Mysterious...it went away. + + +Polygon and curve under NT +-------------- +FIXED 10/21/97 +POSTED 10/21/97 +-------------- +BUG: The vertex calls are receiving 0, 0, 0 for x, y, z +ANS: Extra type * parameter in the vert_* calls + + +Single buffering under NT +-------------- +FIXED 10/21/97 +POSTED 10/19/97 +-------------- +BUG: Single buffering doesn't work under NT. +ANS: Need an explicit glFlush(). gemHead calls glFlush after a bang message. + + +Geos texture coordinates +-------------- +FIXED 10/17/97 +POSTED 6/16/97 +-------------- +BUG: The vertex and texture coordinates should start so that the first + S,T is 0,0 +ANS: Just did it. + + +pix_composite is backwards +-------------- +FIXED 7/12/97 +POSTED 6/16/97 +-------------- +BUG: The pix_composite object should have its inlets swapped. Conceptually + it doesn't make sense the way it works currently. +FIX: Just did it. + + +pix_convolve is broken +-------------- +FIXED 7/13/97 +POSTED 6/16/97 +-------------- +BUG: Sometimes pix_convolve doesn't work - seems to do with the scale factor +ANS: I'm not sure why it wasn't working. I have hammered it with a variey + of kernels and scales and never had a problem... +ANS2: I found a bug where pix_image didn't automatically refresh its image + at the start of rendering + + +pix_alpha is backwards +-------------- +FIXED 7/12/92 +POSTED 6/16/97 +-------------- +BUG: Sometimes it works, sometimes it doesn't +ANS: Swapped around the inlet creations + + +polygon's first inlet doesn't work +-------------- +FIXED 5/18/97 +POSTED 5/17/97 +-------------- +BUG: The first vertex of polygon doesn't work. It is always set to the + origin. Also, polygon defaults to line drawing. Check Curve for + the same problems (it is derived from polygon). +ANS: The first inlet no longer takes the first vertex. I added another + inlet. + + +fonts do not load +-------------- +FIXED 4/02/02 +POSTED 4/01/02 +-------------- +BUG: the example fonts for text2d/text3d do not load +FIX: accidentally i did a dos2unix to the *.ttf files. this damaged them. + Get new ones from ftp://iem.at/pd/Externals/GEM/misc diff --git a/Gem/gem.release_notes.txt b/Gem/gem.release_notes.txt new file mode 100644 index 0000000..c3e5077 --- /dev/null +++ b/Gem/gem.release_notes.txt @@ -0,0 +1,1018 @@ +GEM ONLINE DOCUMENTATION CHAPTER 5: RELEASE NOTES + +--------------------------------------------------------------- +---------------------------- 0.91 ----------------------------- +this is the first release for 3 years, codename 'tigital' +it includes many changes, so probably i have forgotten most... + +openGL runtime checks: GEM now uses GLEW to detect openGL-features + at runtime this allows you to use all the cool features of + your brand-new graphics card with the same binary as you + used for your old gfx-card...cool + +w32-installer: there is now a w32 installer (based on NSIS) to + ease the installation of GEM on windows. + +single vs dual context: GEM uses a dual context approach to establish + a valid openGL-context at startup; + you can now turn this OFF by setting the environmental + variable "GEM_SINGLE_CONTEXT=1" + this should allow you to work if GEM crashes otherwise + +SIMD: better MMX/SSE2 handling + +pixes: fiducial tracking, artoolkit, + multitexture, texture sharing + recording streams of images into movies, + better movie reading support, better video in support, + more sophisticated pix_buffer handling + shared memory objects + +text: allow unicode characters + use vera.ttf as default font instead of the + copyrighted arial.ttf + allow to override the default font with the environment + variable "GEM_DEFAULT_FONT" + + +bugfixes: like always we have removed (and introduced) numerous + bugs, so all in all GEM should now run more stable + for an incomplete list of fixed bug see the bug-tracker + at http://sourceforge.net/projects/pd-gem + +openGL: generally use openGL-2.0 (if available) + vertex/fragment shaders (GLSL and ARB/NV) + framebuffers + + +deletion: + MarkEX has been removed from GEM and is now available as + a separate library; + hardware-interfacing objects like [gemorb] and [gemtablet] + have been removed + + + + +---------------------------- 0.90 ----------------------------- +this is the same as 0.888 +just a naming issue + +--------------------------------------------------------------- +---------------------------- 0.888 ---------------------------- + +this has taken a long time (2 years...) + +development is now done by several people: + chris clepper + günter geiger + daniel heckenberg + james tittle + IOhannes m zmölnig +günter has removed himself from the splash-screen, but he still contributes stuff + +supported platforms: windows (XP,2000,...), linux, and (tadah:) macOS-X(>10.2) +irix-support seems to be broken, but i cannot prove it + +architecture: up till now, the rendering-tree was statically built when rendering was + turned on, so you couldn't add objects dynamically and editing was painful. + now, Gem utilizes the normal pd-messaging system all the time: you can disable + parts of the rendering tree with [spigot], render sub-trees multiple times with + [t a a] and put objects into the gem-tree on the fly. + +documentation: added help for (almost ?) all Gem-objects (excluding openGL-wrappers) + new reference-patches are now working out of the box (not the old "abstract" way) + added a small pdf-tutorial + + +openGL: GEM features now a full openGL-wrapper (supporting openGL-1.2) + you can use any openGL-command like "glNormal3f" by creating a pd-object like + [GEMglNormal3f] (note the "GEM"-prefix); this should be very powerful, + however most of the objects are not (yet) tested. + if you intend to use them and think they don't work, + send me a bug report for the objects you need; + i will try to fix them gradually. + there will be not much help in GEM, since you might consult any openGL-reference + +text: we now use FTGL instead of GLTT (which is still available at compile time) + for freetype-rendering. this is supported on all 3 platforms, + looks better (at all sizes!) and allows the new [textextruded] + +geos: tube, curve3d, rubber, ripple, slideSquares, newWave + +manips: polygon_smooth for anti-aliasing of single objects + [camera] + +controls: the output of [gemmouse] can now be normalized (by giving the maxVal for x/y as + arguments: [gemmouse 1 1] will output coordinates between 0..1, no matter what + dimensions the screen has. + +particles: now the underlying libparticle-engine can be used more directly. + velocity-domains (like [part_velcone]) are deprecated and [part_velocity] + should be used instead (allowing on-the-fly domain-switching) + there are objects that allow to influence single particles + (like [part_vertex]) + most interesting: with [part_render] and [part_info] you can now use any + geo as particles (e.g: .obj-models) not only points/lines as before. + +texturing: [pix_texture] and [pix_texture2] has merged. so [pix_texture] will texture + textures of any size (even non-power-of-2) and it will use hw-support if available + (at least on macOS and on linux if the gfx-card supports it + (at least nvidia does so)) + +pixes: lots of new objects (too much to enumerate them here) + we now support 3 different colorspaces: RGBA, YUV, Greyscale + YUV is new and allows processing of coloured-images with far less memory/CPU + than RGBA (factor 2) but without alpha. + lots of pix-processing on apple-computers is ALTIVEC-enhanced (faster by numbers!) + SIMD-enhancements for PCs (MMX/SSE2) is yet to come... + as the new colorspace has been pushed, also a lot of objects has received + greyscale-support + the TV-class has been deprecated and is now part of pix_* again + lot's of color-space converters (most of them not available as objects) + the "pix_fx"-stuff is now built into all pix-objects + +video: on mac-OS the [pix_video] object supports all cameras that are supported by the OS + on windows there is now support for DirectShow, + which makes new (usb/ieee1394) cameras work most probably + on linux there is some prelaminary(!) support for ieee1394 devices. + the v4l-support is now multi-threaded which speeds up the whole thing significantly + +film-formats: + windows: AVI; there is also some QUICKTIME-support + (needs the quicktime-sdk at compile time and quicktime installed on execution time), + but this crashes sometimes (haven't found out when). + it should enable "a lot" of file-formats (MPEG, MOV) + macOS: quicktime serves your needs + linux: support for libavifile, libmpeg3 (or libmpeg1 but libmpeg3 is preferred), + libquicktime (or libquicktime4linux; doesn't matter) and ffmpeg. + +codecs: macOS: everything that is supported by your system should work fine + win: all codecs installed on your machine should work + (if another program can play a avi-file, Gem should be able to do so too) + linux: depends on how you compiled Gem. libmpegX will decode mpegs, + libquicktime will (most likely) decode quicktime-files with non-proprietary codecs, + libavifile decodes a lot of formats (avi, quicktime, divx, asf,...) + and you can utilize windows-codecs (.dll-files; if you have them ;-)) + which enables you to play-back proprietary codecs! + +bug-fixes: probably lots of, but most of them seem to linger around for a while now. + + + +--------------------------------------------------------------- +---------------------------- 0.87 ----------------------------- +Added much documentation + +Added [gemkeyboard] and [gemkeyname] for keyboard-interaction in the GEM-window. However, Windows and Linux versions do not give the same results... + +Added Red/Green stereo +Cleaned up the stereo-thing. we can switch between the different stereo-modes (including no-stereo) while rendering + +You can set the title of the GEM-window with the "title"-message. Up till now only one symbol is allowed. +Added "fullscreen" mode +Fixed "border" under linux +"cursor" is now available on Windoze + +readded "externals" with additional libraries to close up with the windows version:: +Added pix_movie for Linux (mpeg2+quicktime-support) +Added pix_film, which is in fact like pix_movie but does not write the pix-buf directly into a texture +Fixed the model +Added the stupid "teapot" +Added a pix_write that let's you capture the current screen into a file (TIFF/JPEG) +Added pix_hsv2rgb, pix_rgb2hsv (colour-space converters) +Added pix_blob (center of gravity:: colour detection) +Added pix_curves, pix_histo +Added pix_set, pix_dump +Added pix_pix2sig~, pix_sig2pix~ + +Started a new class "tv" for pix-operations that change over time: like tv_movement (formerly: pix_movement), tv_biquad, tv_rtx; but i am not really happy with this... + +Started a new pix_fx class for inserting pix-FX. there is not much about it, but you can now bend the image.data pointer to wherever you like (including size-changes, format-changes) it will be bent back in the postrender()-thing + +Started to import classes from effecTV (by Fukuchi Kentarou): pix_aging, pix_puzzle; most of his FX are real crap, but some are ok and it's easy to import them +Made a pix_rgba + + +--------------------------------------------------------------- +---------------------------0.84-5 ----------------------------- +Bugfixes for gemwin "cursor" message (cursor [1|0]) +Removed "externals" with additional libraries, they are separated now +Added a "freq" and "mode" message to Linux video object, you can watch + TV now ... +It is possible to add the display to the create command for X windows, + whole initialization stuff is moved into the create method, + so you can look at the patches without having succesfully generated + an OpenGl context. +Made the pix_video and pix_movie into real base classes of OS specific + classes. The OS spezific classes for Windows and SGI have to be fixed .. + + +--------------------------------------------------------------- +--------------------------0.84a ----------------------------- +text2d: added a message "alias", which toggles between antialiases + and standard fonts. Usage "alias 1" or "alias 0" + +gemwin: additional message cursor, which hides the cursor in + GEM windows + + + + +--------------------------------------------------------------- +---------------------------- 0.84 ----------------------------- +Fixed a bug where delete [] was called instead of delete. This +could explain a lot of random crashes. + +Fixed camera message routing. + +--------------------------------------------------------------- +---------------------------- 0.84 ----------------------------- +I long time ago, I changed the behavior for gemhead, so that +matrices where automatically restored, etc. However, this +broke the camera object. Use the view message to gemwin +instead. + +Fixed a bug in GemMan. If you didn't use "border 0" and you +requested a window size with "dimen # #", then the window +size was likely to be wrong. This is now fixed. + +Fixed a bug in the view message to gemwin. There was an offset +which should not have occured. You might need to change your +view messages to account for it. Just subtract 4 from any +Z values. + +There are some examples for pix_snap in + examples/gemAdvanced/gemPixSnap.pd - Single buffered example + examples/gemAdvanced/gemPixSnap2.pd - Double buffered example +Keep in mind that pix_snap is a fairly slow operation...I also fixed +a nasty memory bug which could easily cause crashes. + +I added Miller Puckette's pix_video for linux into the +code base. + +If you load a movie in pix_movie with an open message, the +object will output the number of frames to the right output. This +will not work if you have a "pix_movie homer.avi" for your object +since the output message cannot get processed correctly at +startup. + +The disk object has an inlet on the rightmost side for the +inner radius...turning the disk into a ring. If the inner +radius value is just 0., then the disk is just a circle. + +Fog can be turned on in gemwin. Look at + examples/gemAdvanced/gemFog.pd +for examples. The various control messages are documented +in the gemwin.pd help patch. + +These next objects are thanks to hannes - mailto:zmoelnig@iem.mhsg.ac.at +--------------------------- +Added OpenGL material objects - + ambient, ambientRGB, diffuse, diffuseRGB, emission, + emissionRGB, shininess, specular, specularRGB + They provide much greater control over the color of objects. +Look at + examples/gemLighting/gem5.materials.pd +for examples. + +Guenter found a bug in the ortho object. It is now fixed. The +ortho object has the same general unit size as the normal +perspective matrix. Look at + examples/gemAdvanced/gemOrtho.pd +for how to use the object. + +--------------------------------------------------------------- +---------------------------- 0.83 ----------------------------- +Added another outlet to counter. When the counter reaches +the "count to" value, the right outlet will send a bang. The +bang happens after the left inlet sends its float. + +Fixed a dumb bug in pix_2grey. It didn't calculate the +number of pixels correctly. + +Adding some comments to the FAQ that pix_draw is almost +always slower than pix_texture on PCs. Basically, graphics +accelerators do not accelerate glDrawPixels(). + +Added rectangle and cylinder. + +Cleaned up the text objects (text3d, etc). Should display +text a bit better and manage memory more intelligently. + +These next objects are thanks to hannes - mailto:zmoelnig@iem.mhsg.ac.at +--------------------------- +Added pix_rectangle - creates a rectangle in a pix +Added pix_a_2grey - only changes the pixel to grey based +on the alpha component. See the help page and the example +in manual/gem_pix/gemAlphaGrey.pd + +--------------------------------------------------------------- +---------------------------- 0.82 ----------------------------- +Free-view sterescopic rendering is possible. If you send +'createStereo' message to the gemwin instead of a 'create' +message, then your rendering area will be split in two. Send a +'stereoSep float' message to set the stereo seperation. Send +a 'stereoFoc float' message to set the focal distance. See the +example patch gem_advanced/gemStereo.pd patch for an example. + +'color' message was registered twice in gemwin. The second should +have been a 'perspec' message, for perspective. This also fixes +the error which pd-0.29 gives about GEM now. + +primTri is a new object. It is a triangle primtive. Unlike the +normal triangle object, it has 6 inlets. The first three inlets +are for setting the vertex positions. The last three inlets +are for setting the color at each vertex. The color can +be either RGB or RGBA values. Look at gem_advanced/gemPrimTri.pd +for an example. + +The particle objects are now frame rate independent. If you needed +them to run at a certain speed, you can send a multiplier into +part_head with the message 'speed float'. Run the fountain +at 60fps to see how smooth it is. The particles still default +to 20fps, which is GEM's default. You can slow down the particle +systems or speed them up by sending a different speed value +into the part_head. + +Thanks to Guenter for making the sgi image loader 64-bit compliant. + +Received new Gnu makefiles for Linux from Guenter. + +new particle objects - These all have help files. See +gem_particles/gem6.target.pd for how the target objects work. + part_damp - apply a damping force to the particles + part_targetcolor - Change color of the particles toward + the specified color. + part_targetsize - Change size of the particles toward + the specified size. + +Added some help files, mainly for the particle objects. + +Updated the FAQ. + +--------------------------------------------------------------- +---------------------------- 0.81 ----------------------------- +On WinNT, you can remove the window border. Send a 'border 0' message +to gemwin to remove it, or a 'border 1' to put it back. The default +includes the border. + +Fixed some bugs when in single buffer mode and in the pix_snap +object. + +A bunch more help documentation is done. This includes reference pages +and the html manual pages. + +The inlets for alternate and counter were backwards. + +Integrated unix event handling into the code base. + +Fixed other random bugs. + +--------------------------------------------------------------- +---------------------------- 0.80 ----------------------------- +A real manual has been started! This means that the doc directory +will not be as important. The release notes will still be here and +few of the other doc files, but hopefully most people will just be +able to use the on-line manual. Look at gem/manual/index.html +to get started. + +pix_movie has been added. It automatically does the texture mapping +so you don't need to use pix_texture. This also means that you can't +process the pix image. This will change in the future, but I wanted +to get the object out and have people hammer on it. Also, only +certain objects can texture the movie data correctly. They are square, +triangle, circle, and cube. Cone and sphere will have a black region +if the movie isn't a power of two (most movies are 320x160 or something). +This will be fixed in the future. See gem_pix/gemMovie.pd for an example + +hsv2rgb and rgb2hsv have been added. + +There is no ambient lighting in the default case. If you want +to have ambient lighting, send a message "ambient r g b" to gemwin. + +On WinNT, if you hit Ctrl + r in the GEM window, then rendering +will stop. This does not go through the normal Pd interface, so it can +be used if you accidentally create a patch which takes so much processing +that you cannot turn it off because the patch UI is unresponsive. + +Fixed a really bad bug in the text rendering objects. + +Various other random bugs. + +--------------------------------------------------------------- +---------------------------- 0.79 ----------------------------- +The example patches have been organized a little bit. There is +now a collection of directories which are installed with GEM. +Eventually, they will be fleshed out a lot more (I hope), but for +the time being, at least there is some order to them. + +The model and multimodel objects accept a "rescale 0" or "rescale 1" +message. In previous versions, the model objects would resize your +model to fit within the unit cube (all vertices where within -1 to 1). +This made it dificult to coordinate diferent model files together, +because they would all be resized by diferent factors. Now, if you +send a "rescale 0" message into model or multimodel, it will not +do resizing for any _SUBSEQUENT_ loading. In other words, if you +have already loaded in a model, and you send a "rescale 0", the +currently loaded model (or models) will not change. Look at the +example patch gem_advanced/gemModelRescale.pd for how this works. +The left model chain is much larger and a scaleXYZ object with a +value of .1 is needed to even get the model into the viewport. +The model and multimodel objects default to "rescale 1" so that it +doesn't break any existing patches. + +The middle and right buttons work in gemtablet now. The outlets +are all pretty close together now, so until you can resize objects, +it will be difficult to select the correct outlet. Look in +examples/gemTablet.pd for all of the outlets. + +I have upgraded to Visual C++ 6.0. I doubt that the GEM library +is backwards compatible for people who are writing their own +libraries. Sorry, but the IDE is a little less painful in 6.0. + +I removed the position inlet from the light object. If you want +to move/rotate a world_light/light, then just put a translate +or rotate object into the chain. It was broken before, but now +there is no reason for the position inlet. + +light and world_light accept a "debug" message with a value of +1 or 0. Look at the gemLightSphere.pd patch for an example. +It was too hard to figure out where the light is, and this turns on +a sphere for the light object (since it is a point light), and +a cone for the world_light object (since it is a directional +light). The world_light is NOT a spot light, even though +its icon is a cone. The icons are the color of the light. + +MarkEx has been merged into GEM. I was tired of maintaining +two libraries. Also, people didn't seem to be downloading +MarkEx, and there are a lot of good objects in there, IMHO. + +The camera object is finally useable. It has an inlet for the +translation and rotation vectors. Anyone who was using it +before is now broken, but the change was very necessary. + +gemwin can accept a perspective message. This will set up the +viewing paramaters for the window. You need to pass in 6 floats +with the "perspective" message, for the left, right, bottom, +top, front, and back. The defaults are -1., 1., -1., 1., 1., 20. +If you send a reset message to gemwin, it will reset the perspective +values as well. + +The big change in this release is a particle system. It is based +on code from David McAllister. There are many new object, all +of which interact in certain ways. One design issue is that +there are far too many controls and variables to be able to +expose directly in GEM. People who want to get complete control +over all aspects of the particle system are going to need to +write their own externals. However, most people should be fine with +the particle objects. The new objects are: + +CREATION +-------- +part_head - The start of a particle group +part_color - Set the range of colors for the new particles +part_size - Set the size of new particles +part_velsphere - Set the velocity based on a sphere distribution + You need 4 args - xvel, yvel, zvel, and radius +part_velcone - Set the velocity based on a cone distribution + +part_source - Generate particles + +MANIP +----- +part_follow - Particles will follow each other like a snake +part_gravity - Have the particles accelerate in a direction +part_killold - Remove particles past a certain age +part_killslow - Remove particles below a certain speed +part_orbitpoint - Orbit the particles around a specified point + +part_draw - Apply the actions and render the particles. Accepts a + message "draw line" or "draw point" to change the drawing style. + +Look in the example files to get some idea how to use the particle +objects. Notice that you still need a gemhead starting off the +chain, but after that, you just use the part_* objects. Regular +GEM manips like rotate, translateXYZ, and scale will affect the +particles. In general, you start with part_head, then modify +the particle parameters with the creation objects like part_color +and part_velocity. Then use part_source to actual generate the +particles. Next in the chain, use the manip objects to control +the particles behavior. When you actually want to display the +particles, use part_draw. Make sure that you remove particles as +well. The best method is probably with part_killold. If you +don't remove particles, then you will eventually not be able to +add any new ones (the default number of particles at once is +1000, set by part_head). You can also slow down the rate of the +particle generation with the part_source object. + +--------------------------------------------------------------- +---------------------------- 0.78 ----------------------------- +If you don't want GEM to take control of the tablet if it finds +one, set the environment variable GEM_NO_TABLET to the +value "1" (no quotes of course). There will be a print out if +GEM finds the environment variable. + +I added a few more setup access function so that people who +use "-lib gem" or "-lib GEM" will work correctly. + +Lighting will now work under single buffer mode, but you have +to destroy then create the graphics window to change the mode. This +will not work with the GEM_SINGLE_CONTEXT variable. + +pix_data is a new object. It outputs color information from a pix. + The first inlet accepts a bang to trigger it. + The second inlet accepts a gem list (probably from pix_image) + The third inlet is the x position (between 0 and 1) + The fourth inlet is the y position (between 0 and 1) + The first outlet is the gem list + The second outlet is the color (an RGB list) + The third outlet is the gray scale value (a float) + See the example patches gemPixDataSimple.pd and gemPixDataComplex.pd +for possible use. + +Fixed a pretty bad bug in the SGI image loading. Basically, unless +the image was RGBA, it was going to core dump. Also, the orientation +was wrong. + +--------------------------------------------------------------- +---------------------------- 0.77 ----------------------------- +GEM is now under the Gnu Public License. This should not affect +any one. I also cleaned up the license information for the AuxLibs. +All of the license and usage information can be found in +GEM.LICENSE.TERMS + +GEM has a new home - http://www.danks.org/mark/GEM + +gemorb - a new object to interface with the SpaceTec SpaceOrb360. +It is a 6DoF ball with 6 buttons that connects to your serial port. +It is a very cool device, and is relatively cheap ($50 US). If gemorb +is able to connect, it will print out a message, or an error if there +is a problem. John Stone wrote the library. + +There is a particle system with a number of new objects. The system +uses a library by David McAllister. +ps I haven't had time to bring all of the objects online. particle +is the only object right now. It just creates a fountain. + +accumrotate was added - three inlets to control the rotation. Each +time a new value is sent in, it increases the rotation. Sending +'reset' to the leftmost inlet sets the rotation matrix to +identity (ie, it resets it to no rotation). + +rotateXYZ was added - three inlets to control the rotation. Order +is X rotation, then Y, then Z. + +The tablet cleanup is a little better now on WinNT. There are still +some bugs, like it doesn't return to normal mouse usage after GEM exits. +However, the DLL is being released correctly...I just need to reset +to the default state somehow. + +Cone and sphere have changed behavior as of 0.77. The middle inlet +is now the size and the right inlet is the number of slices. + +depth used to be sending '1' would turn on depth testing, but this +was conceptually wrong. It should be 1 to turn on the depth +object (which would disable depth testing). This is now the +current behavior. + +ortho was added. It changes the viewing from perspective to +orthogonal. The size is the size of the window with (0, 0) +being the lower left corner. I made this object for creating +a background the size of the window, but you can probably +find other uses for it. + +There is a matrix class for those who are writing objects. +It is in src/Base/Matrix. + +--------------------------------------------------------------- +---------------------------- 0.76 ----------------------------- +Fixed a bug in spline-path. I wasn't doing the knot logic +correctly. Thanks to Patrick Rost for finding this. + +A bunch of internal changes to get GEM working with Pd 0.22 +All instances of A_INT went away and the inlets and outlets are +created in the correct "logical" order now. + +--------------------------------------------------------------- +---------------------------- 0.75 ----------------------------- +You can resize the window under WinNT and the viewport will change +to reflect the new size. + +Also, the correct aspect ratio is maintained no matter what the +width/height ratio is for the GEM window. The ratio is +x:y -> (width/height):1. This is currently only under WinNT. + +gemmouse and gemtablet are new objects. They currently only +work in WinNT. You should be able to create the object in +the Irix/Linux versions, but you won't get any output. See +gemmouse.pd and gemtablet.pd for examples. +gemmouse outputs the current mouse position and button up/down +for the GEM window. +gemtablet outputs the current pen position, pressure, orientation, +and pen up/down, with the GEM window mapped to the tablet. If +GEM can connect to your tablet, a message will be printed at startup. +If you don't see a message at startup from GEM about connecting to +the tablet, then gemtablet will not output any values. You must +have the wintab32.dll library installed. Your tablet's installation +should do this. + +Added a bunch of utility functions (spline, bias functions, etc). + +linear_path and spline_path are new objects. If you give them +an array, then they will generate a point from an index. linear_path +will linearly interpolate between points. spline_path uses the +points as knots for a curve. See gemSplinePath.pd and +gemLinearPath.pd for examples. + +Added __declspec declarations for Windows. This should +make it easy for people to use GEM as a dll. + +--------------------------------------------------------------- +---------------------------- 0.74 ----------------------------- +I replaced the images in the example directory with JPGs. They +are alot smaller. However, in gemMoveImages.pd, you can see +the effect that the compression has. Look at the red dancer. All +of the "black" should be alpha masked out, yet there are little +bits which get all jaggy. + +Got gltt-1.8 Looks like it fixes a bunch of bugs. + +Finally put an alpha test into the alpha object. This means that +if the alpha of a pixel == 0., then it won't be put written into +the frame buffer. Look at the example file gemMoveImages.pd for +an example of this. Notice that the dancer is texture mapped to +a sphere, yet you can always see her correctly. You can disable +this behavior by sending a 'test 0' to the alpha object. + +Oh boy, were my texture coordinates off. Unknown to me, my reference +image (dancer.tif) was actually upside down. This meant that all +of the texture coordinates in the Geos objects were compensating +for the rotation. Sorry if this messes anyone up, but it is now +correct for all of the geos. + +I also now load in images in OpenGL format. This means that +data[0][0] == lower-left corner. This shouldn't have any effect +on anyone unless you are doing position sensitive image processing. + +Fixed the orientation problem when using pix_draw. + +imageVert handles gray8 pixes + +Fixed a problem if pix_multiimage loaded in images that were different +formats or sizes. + +GEM supports search paths! Basically, GEM will look for auxiliary +files (images, models, fonts, etc.) from whatever directory the +patch is in (unless you use an absolute path name with '/'). + +--------------------------------------------------------------- +---------------------------- 0.73 ----------------------------- +Fixed profiling on Unix + +Added text2d, text3d, textoutline. The text objects will render +a truetype font (I have provided a couple fonts in gem/examples). +text2d renders a flat bitmap...no rotation or Z movement. text3d is +full polygonal text, so you can translate and rotate. textoutline +is also polygonal, it is just a vectored outline. + PS text2d has some problems... + +JPEG and SGI image file formats are supported! Depending on the number +of color components, GEM will automatically convert them to grayscale +or RGBA (just like TIFF files). + +pix_video is working slightly on WinNT. There are still some +serious problems, so consider this version a complete pre-alpha. I'm +releasing a version now to find out if it even works on other systems. +I am using a Connectix QuickCam2. + +Shifted all of the auxilary libraries into a common directory. Considering +that I'm currently using 6 outside packages, it is just easier. + +--------------------------------------------------------------- +---------------------------- 0.72 ----------------------------- + +Did a bunch of cleaning so that the Linux compile is happier (and easier). +This involved getting rid of some warning messages and changing +the makefiles slightly. + +The strange core dump on WinNT went away... + +All of the code and extra files are under source code control (CVS). +You can just ignore the CVS directories. Eventually, I will try to keep +them out of the release build. + +Added profiling. If you send 'profile 1' to gemwin, then normal profiling +is turned on (GEM displays the number of milliseconds per frame). If you +send 'profile 2', then images will not be cached (ie, the pixes will always +be processed). If you send 'profile 0', then profiling is turned off. + +pix_multiply multiplies the color components of two images together. +It doesn't modify the alpha channel. + +Optimized pix code. + +Because Miller is removing the INT type, I have slowly been moving it +out of the code. If any objects have stopped working, please let me know. +I redid the construction macros in CPPExtern to reflect this change. +If you have made any new GEM objects, you will probably need to +change to the new macro format. + +Most of the dual input pix objects will process gray8 and RGBA data +gracefully. + +--------------------------------------------------------------- +---------------------------- 0.71 ----------------------------- + +Guenter got GEM working under Linux! The biggest impact is that I +have changed all of the #ifdef __sgi to #ifdef _UNIX_ If specific versions +of Un*x need certain things, then they can be #ifdef'ed with __sgi, +or LINUX, or whatever. + +Fixed a bug in polygon and curve. I'm not sure why it ever worked on +the SGI... + +All pix objects accept a 0 or 1 to turn on and off their processing. +The 0 or 1 should just be sent to the first inlet. + +The inlets were backwards for colorRGB. + +Fixed a bug in turning on and off texture mapping in pix_texture. + +GemMan::initGem is now called from Gem_setup. There seems to be a problem +with Linux creating the dummy static class to initialize GEM. + +Changes pix_texture so that it deal with OpenGL 1.1, GL_EXT_texture_obj, +and base OpenGL 1.0 I think that every OS has the texture_obj +extension, but just in case, I also have the OpenGL 1.0 technique of display +lists. + +Removed some spurious print outs. + +I looked into using GL_BGRA_EXT for images on Windows. It is faster +in the software version, but my Intergraph card doesn't support it. +It only makes a difference for OpenGL in software...and texture +download time isn't the primary problem then. With a 512x512 image +using glDrawPixels in software, I got 6 frames/sec with RGBA and 7 +frames/sec with BGRA_EXT. Older SGIs like ABGR_EXT, but the newer machines +want RGBA. Looks like I'm going to stick with RGBA for a while. + +You can now load in Gray8 and RGBA images and they will retain their +format. Before, everything was slammed into an RGBA image, with A == 255. +This means that you can have alpha masks on images, etc. The only pix +object which can currently handle a gray8 is pix_mask. All of the other +pixes throw errors if they get a gray8. This will slowly be fixed. + +Added some new functions to GemPixUtil (from a paper by Alvy Ray Smith). +They should speed things up. Currently, only pix_composite is using them. + +The color channels of pixels should be gotten by the const ints that +are in GemPixUtil (for instance, chRed, chGreen, etc). Using hard coded +offsets like 0 or 2 for red and blue is asking for trouble. + +gemheads no longer push and pop the entire matrix state when renderGL is +called. This should be faster (push/pop is slow on some platforms). Also, +all objects are required to "reset" the OpenGL state when they are done, +so it shouldn't be neccessary. + +Strangeness: There is an unreferenced memory exception on WinNT when you +quit Pd. However, it only happens if you use pix_image. It doesn't +happen while you are using Pd, only when you quit... + +--------------------------------------------------------------- +---------------------------- 0.70 ----------------------------- + +All geos can now accept a size argument (they default to 1.0) + +I cleaned up the texture coordinate mapping. The order was slightly +random before. The order is more logical now; it is counterclockwise +starting at 0, 0. If you use pix_coordinate any where, you will need +to fix the values. + +Fixed a bug in translateXYZ. The inlets where backwards. + +You can now move the GEM window under NT. NT doesn't automatically +take care of the basic window functions unless you pass the messages +through (unlike X Windows). + +Texture mapping can be turned on and off by sending a 0 or 1 to pix_texture + +Texture mapping defaults to GL_LINEAR. Send a quality message to pix_texture +to change this. A "quality 0" means GL_NEAREST, "quality 1" means GL_LINEAR. + +--------------------------------------------------------------- +---------------------------- 0.69 ----------------------------- + +Fixed a bunch of bugs in imageVert. + +Cleaned up some lingering problems in various objects (the open message to +pix_multiimage didn't work as advertised for instance). + +Setting window color is now dynamic. + +multimodel now exists. Works just like pix_multiimage, only it reads in +Alias/Wavefront files. It also has a caching mechanism. + +--------------------------------------------------------------- +---------------------------- 0.68 ----------------------------- + +fixed pix_2grey so it uses real color weights, instead of just averaging +the three colors. + +pix_image now works the same way as pix_multiimage. If you load in an +image which another pix_image has already loaded, they will share the +image. This means that if you create a bunch of dummy pix_image +objects, you can send an open message to pix_images which have a gemhead +connected to them and get instantaneous image changes. + +Found a MAJOR bug in the NT version of pix_texture. Basically, if you +used it, the program would core dump. + +Found another bug in square. It involved texture mapping and texture +coordinates (mainly when you don't designate them). + +Changed the default values for scaleXYZ (to 1, 1, 1) and translateXYZ +(to 0, 0, 0) + +--------------------------------------------------------------- +---------------------------- 0.67 ----------------------------- + +Forgot to add the arguments for the scale object. This has been fixed. + +Added translateXYZ, scaleXYZ, and colorRGB. These create three inlets +which you can modify, instead of having to mess with vector messages. + +Fixed a bug in pix_image and pix_multiimage (or more, an unacceptable +response to user error). Basically, if you started rendering without +an image being loaded (or if an image failed to load, then you were +_VERY_ likely to core dump. A check has been added, so this shouldn't +be a problem anymore. + +pix_multiimage HAS CHANGED! It accepts up to four arguments: + +filename, number : will load the image files from 0 up to AND INCLUDING +the number + +filename, lownum, highnum : will load the image files from the lownum up +to AND INCLUDING the highnum + +filename, lownum, highnum, skiprate : will load the image files from +the low num up to AND INCLUDING the highnum, but incrementing the counter +by the skiprate, not by one. + +No matter how many images are loaded, you can change which image is +displayed by sending a number. The number must be between 0 and the +number of images which were loaded (notice that this number may not be +the highnum!) If you try to display an image out of range, you will +get an error. + +pix_multiimage now uses a shared cache. Basically, if you give two +pix_multiimage objects the EXACT same values (filename, base number, +top number and skip number), then they will use the same collection of +images. This will save massive amounts of memory if there is any +commonality between pix_multiimages. + +pix_flip - see help file + +--------------------------------------------------------------- +---------------------------- 0.66 ----------------------------- + +Finished the port to NT (mainly had to get images working). + +Made pix_colormatrix - This is really good for things like saturation, +hue rotate, etc. I will eventually include a bunch of matrices to do +cool stuff. Check out Paul Haeberli's paper on color matrices at +http://www.sgi.com/grafica/index.html + +I removed pix_color. It was a hold over from earlier days and I +don't think that anyone (including myself) is using it any more. + +I got a title bar onto the graphics window, but you still can't move it +around. I am not certain why this is the case, but I'll keep looking. + +I made general speed ups to most of the pix objects. Mainly, I have +been removing GetPixel() and SetPixel() functions (they have a lot +of overhead). I will continue to use Get/SetPixel() while I'm developing +because they make things easy to deal with, but as objects get finished, +I will remove them. + +Some of the manipulators (color, rotate, and translate) accept arguments. +For instance, if you do color 1 0 0, it will automatically set the +color to red. The objects try to be intelligent about their arguments. +For instance, if color receives three args, it sets RGB, but if it +gets 4, it sets RGBA. If rotate or translate get 3 args, then they just +set the vector, but if they get 4, then they set both the vector and +the value. + +--------------------------------------------------------------- +---------------------------- 0.65 ----------------------------- + +GEM works under NT! I got the port working last night. I had to make some +major changes to the underlying classes (specifically CPPExtern) because +MS VisC++ puts the vtable pointer in the first four bytes...no matter what. +This is a different behavior than SGI's compiler (and I think that it requires +more work for MS VisC++'s compiler). While it was a pain to change things, it +is good in the long run. The C++ standard doesn't say where the vtable is +located, so this would have bitten me at some point. + +--------------------------------------------------------------- +---------------------------- 0.64 ----------------------------- + +Because MS VisC++ really wants files to end in .cpp (how stupid...), +I renamed all of the C++ files. + +I looked into making all of the pixes be float, instead of unsigned char. This +would give increased flexibility because we could use negative numbers, not +worry about wrap around on the unsigned char, etc. In running performance +tests on an SGI O2, the performance difference is fairly great. If GEM +was only an image processing program (ie, PhotoShop), then I would definetely +have pixes be floats. However, since GEM is meant for real-time, I will +continue to use unsigned chars to represent pixels. + +For the tech heads...I used to generate the rendering by creating a +linked list of the GEM objects. The problem was that objects like +separator weren't possible because it wasn't a true DAG. That is now +fixed so that tree/leaf graphs are possible. + +Made render_trigger so you can know exactly when the rendering is occuring. + +Made pix_multiimage! Just give it a file with a * (like myfiles*.tif) and an +integer for a range (the number of images). + +Made pix_invert, separator + +--------------------------------------------------------------- +---------------------------- 0.63 ----------------------------- + +The src directory has been made into a tree. + +Made pix_add and pix_subtract +Added a scale object + +--------------------------------------------------------------- +---------------------------- 0.62 ----------------------------- + +A dummy glxContext is created at startup. What this means is that +in the constructors of objects, OpenGL calls can be made, display +lists can be constructed, etc. Eventually, I would like to have a +single window which is always in existance that can change between +single and double buffering, but that may be a little while. + +I put Sam Leffler's tiff library back in. All image files must be in +TIFF format again. Basically, I think that Win NT would have trouble +making SGI .rgb files, while anyone can make TIFF formats. Currently +there is some code bloat because libtiff does more than just read in a +TIFF file. + +The pix_coordinate object allows users to set the S,T texture coordinates +for geos. For instance, by giving pix_coordinate 4 S,T pairs, the texture +coordinates for a square can be changed on the fly. Not all of the geos +can support this ability right now (currently only square, triangle, and +polygon, but this will change in the near future). + +A FAQ has been started, but there really aren't any questions in it yet. +As people think of them, please let me know and I'll add them. + +--------------------------------------------------------------- +---------------------------- 0.61 ----------------------------- + +Cocoon html help files for developers have been created. + +GEM now uses an internally generated DAG for rendering. This +removes a serious bug where by objects could still try to reference +dangling pointers. GEM objects act like the tidle objects do +from a users point of view. Even if you break a connection +in a GEM chain, the GEM objects will continue to work. This +means that it is safe to edit patches while a GEM chain is +running. To rebuild the GEM patch, rendering must be turned +off and then back on (just like the tilde objects). + +Using the td library from Evans & Sutherland by Nate Robbins to display +Alias/Wavefront files (.obj). It also takes care of image +loading, although it is only .rgb. If people complain enough, +then I may return to the Sam's libTiff library, but it is so +big that the td library is better. The td library can also be +compiled on Windows (or else I wouldn't have used it). The new +object is called model (although it may change its name some day). + +There is a new object which maps the color of a pix to the Z of +a polygon. It is isn't overly useful right now, but it is a cool +demo. It is called imageVert. + +--------------------------------------------------------------- +---------------------------- 0.60 ----------------------------- + +Major changes to the internals of GEM. gemwin is now only +an access point to the window manager, instead of actually +being the window manager. This should make it easier to have +multiple graphics windows. + +While I was getting the O2 video camera to work, I seem to +have broken the Indycam object... + +--------------------------------------------------------------- +---------------------------- 0.50 ----------------------------- + +Made the port from Max over to Pd. Redesigned the class +heirarchy somewhat. + diff --git a/Gem/gem.todo.txt b/Gem/gem.todo.txt new file mode 100644 index 0000000..43a16a7 --- /dev/null +++ b/Gem/gem.todo.txt @@ -0,0 +1,65 @@ +GEM ONLINE DOCUMENTATION CHAPTER 7: TODO +---------------------------------------- + + This is a list of future improvements and changes. +No importance should be given to the order...it is just +when I thought of things. + - Mark D. + - IOhannes m z + +---------------------------- TODO ----------------------------- + +GENERAL +------- +only connect to tablet if gem_tablet exists +make a separate Gem-thread (to do parallel audio/video-processing) +enable output to other "devices": like files, video-editing-cards,... + +PARTICLE +-------- + + +OBJECTS +------- +triangle_fan +stereoscopic display with hardware glasses +NURBS/bezier patches +3DstudioMax file loader +CAL3d (character animation library): (not sure anymore. maybe quake2-files would be better ?) +Alias|Wavefront file data + - articulation hierarchies in Wavefront's Kinemation + - read Preview's .mov files (an ascii list of x, y, and/or z values) +morphing between alias|wavefront models + - assume same number of points in each model + +PIXES +----- +pix_dv (under linux this still needs a lot of testing) +motion and image analysis +some way to fragment an image so that it can be used as multiple + texture maps (hopefully arbitrary shapes, but possibly only rectangular) +pix_erosion +pix_dilation +pix_median/min/max filter +pix_lowpass +pix_highpass +video external keyer + - three inputs - the matte and two image inputs +increased control of the Threshold object. + - upper and lower levels adjustable +stereoscopic texture loader +pix_circle +pix_triangle +test pix_video - espec offset message + +OPENGL +------ +be able to switch between single and double buffering on the fly +have multiple graphics windows +increased control of view port, etc. +be able to use multiple pipes (MCO) +try out glMatrixMode(GL_TEXTURE) to deal with nonstandard texture mapping +render to a pixblock (use pbuffers or offscreen renderer) +on systems that run in console mode only (like linux with(out) XFree86), render to the console with beautiful ASCII-art +multipass rendering +multitexturing diff --git a/Gem/gem_filmAVFoundation.la b/Gem/gem_filmAVFoundation.la new file mode 100755 index 0000000..04293f4 --- /dev/null +++ b/Gem/gem_filmAVFoundation.la @@ -0,0 +1,41 @@ +# gem_filmAVFoundation.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='gem_filmAVFoundation.so' + +# Names of this library. +library_names='gem_filmAVFoundation.so gem_filmAVFoundation.so' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' ' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L../.. -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for gem_filmAVFoundation. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib/pd/extra/Gem' diff --git a/Gem/gem_filmAVFoundation.so b/Gem/gem_filmAVFoundation.so new file mode 100755 index 0000000..a64a4dd Binary files /dev/null and b/Gem/gem_filmAVFoundation.so differ diff --git a/Gem/gem_imageJPEG.la b/Gem/gem_imageJPEG.la new file mode 100755 index 0000000..15a111e --- /dev/null +++ b/Gem/gem_imageJPEG.la @@ -0,0 +1,41 @@ +# gem_imageJPEG.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='gem_imageJPEG.so' + +# Names of this library. +library_names='gem_imageJPEG.so gem_imageJPEG.so' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' ' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L../.. -ljpeg -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for gem_imageJPEG. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib/pd/extra/Gem' diff --git a/Gem/gem_imageJPEG.so b/Gem/gem_imageJPEG.so new file mode 100755 index 0000000..805f21c Binary files /dev/null and b/Gem/gem_imageJPEG.so differ diff --git a/Gem/gem_imageMAGICK.la b/Gem/gem_imageMAGICK.la new file mode 100755 index 0000000..53399fb --- /dev/null +++ b/Gem/gem_imageMAGICK.la @@ -0,0 +1,41 @@ +# gem_imageMAGICK.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='gem_imageMAGICK.so' + +# Names of this library. +library_names='gem_imageMAGICK.so gem_imageMAGICK.so' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' -pthread' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L../.. -L/usr/local/Cellar/imagemagick/6.9.0-10/lib /usr/local/Cellar/imagemagick/6.9.0-10/lib/libMagick++-6.Q16.la -L/usr/local/Cellar/freetype/2.5.5/lib -L/usr/local/Cellar/xz/5.2.1/lib /usr/local/Cellar/imagemagick/6.9.0-10/lib/libMagickWand-6.Q16.la /usr/local/Cellar/imagemagick/6.9.0-10/lib/libMagickCore-6.Q16.la -lfreetype -llzma -lbz2 -lltdl -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for gem_imageMAGICK. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib/pd/extra/Gem' diff --git a/Gem/gem_imageMAGICK.so b/Gem/gem_imageMAGICK.so new file mode 100755 index 0000000..d883a72 Binary files /dev/null and b/Gem/gem_imageMAGICK.so differ diff --git a/Gem/gem_imageSGI.la b/Gem/gem_imageSGI.la new file mode 100755 index 0000000..04ba91a --- /dev/null +++ b/Gem/gem_imageSGI.la @@ -0,0 +1,41 @@ +# gem_imageSGI.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='gem_imageSGI.so' + +# Names of this library. +library_names='gem_imageSGI.so gem_imageSGI.so' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' ' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L../.. -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for gem_imageSGI. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib/pd/extra/Gem' diff --git a/Gem/gem_imageSGI.so b/Gem/gem_imageSGI.so new file mode 100755 index 0000000..38e4fe8 Binary files /dev/null and b/Gem/gem_imageSGI.so differ diff --git a/Gem/gem_imageTIFF.la b/Gem/gem_imageTIFF.la new file mode 100755 index 0000000..3c333f3 --- /dev/null +++ b/Gem/gem_imageTIFF.la @@ -0,0 +1,41 @@ +# gem_imageTIFF.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='gem_imageTIFF.so' + +# Names of this library. +library_names='gem_imageTIFF.so gem_imageTIFF.so' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' ' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L../.. -ltiff -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for gem_imageTIFF. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib/pd/extra/Gem' diff --git a/Gem/gem_imageTIFF.so b/Gem/gem_imageTIFF.so new file mode 100755 index 0000000..e2de077 Binary files /dev/null and b/Gem/gem_imageTIFF.so differ diff --git a/Gem/gem_modelOBJ.la b/Gem/gem_modelOBJ.la new file mode 100755 index 0000000..6e1a38c --- /dev/null +++ b/Gem/gem_modelOBJ.la @@ -0,0 +1,41 @@ +# gem_modelOBJ.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='gem_modelOBJ.so' + +# Names of this library. +library_names='gem_modelOBJ.so gem_modelOBJ.so' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' ' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L../.. -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for gem_modelOBJ. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib/pd/extra/Gem' diff --git a/Gem/gem_modelOBJ.so b/Gem/gem_modelOBJ.so new file mode 100755 index 0000000..1c668b0 Binary files /dev/null and b/Gem/gem_modelOBJ.so differ diff --git a/Gem/gemcocoawindow.la b/Gem/gemcocoawindow.la new file mode 100755 index 0000000..664bffb --- /dev/null +++ b/Gem/gemcocoawindow.la @@ -0,0 +1,41 @@ +# gemcocoawindow.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='gemcocoawindow.pd_darwin' + +# Names of this library. +library_names='gemcocoawindow.pd_darwin gemcocoawindow.pd_darwin' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' -framework Cocoa' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L../.. -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for gemcocoawindow. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib/pd/extra/Gem' diff --git a/Gem/gemcocoawindow.pd_darwin b/Gem/gemcocoawindow.pd_darwin new file mode 100755 index 0000000..bd63116 Binary files /dev/null and b/Gem/gemcocoawindow.pd_darwin differ diff --git a/Gem/gemdefaultwindow.pd b/Gem/gemdefaultwindow.pd new file mode 100644 index 0000000..f5f94ba --- /dev/null +++ b/Gem/gemdefaultwindow.pd @@ -0,0 +1,17 @@ +#N canvas 3 45 450 300 10; +#X obj 125 66 inlet; +#X obj 125 243 outlet; +#X obj 125 145 t a a; +#X obj 175 187 route bang; +#X obj 175 167 spigot; +#X obj 208 143 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 232 208 print gem\$0win; +#X obj 125 100 gemglutwindow; +#X connect 0 0 7 0; +#X connect 2 0 1 0; +#X connect 2 1 4 0; +#X connect 3 1 6 0; +#X connect 4 0 3 0; +#X connect 5 0 4 1; +#X connect 7 0 2 0; diff --git a/Gem/gemframebuffer-help.pd b/Gem/gemframebuffer-help.pd new file mode 100644 index 0000000..7ab036c --- /dev/null +++ b/Gem/gemframebuffer-help.pd @@ -0,0 +1,237 @@ +#N canvas 125 98 893 604 10; +#X obj 465 9 cnv 15 420 570 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 472 293 cnv 15 300 60 empty empty empty 20 12 0 14 -191407 -66577 +0; +#X obj 474 18 cnv 15 400 250 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 477 41 gemhead 20; +#X obj 664 306 gemhead; +#X msg 615 106 dimen 320 240; +#X obj 477 468 rotateXYZ; +#X floatatom 794 427 5 0 0 0 - - -; +#X msg 762 114 color 0 0 1 0; +#X msg 602 87 dimen 1024 1024; +#X msg 751 74 color 0 0 0 0; +#X obj 477 422 t a b; +#X floatatom 717 469 5 0 0 0 - - -; +#X msg 549 232 rectangle \$1; +#X obj 549 214 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X msg 509 101 type FLOAT; +#X obj 664 274 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 477 382 translateXYZ 0 0 -4; +#X obj 477 298 gemframebuffer; +#X obj 664 331 pix_texture; +#X obj 664 358 t a b; +#X msg 531 187 texunit \$1; +#X msg 495 62 type BYTE; +#X msg 503 82 type INT; +#X msg 658 179 format YUV; +#X msg 649 158 format RGB; +#X msg 668 200 format RGBA; +#X msg 680 220 format RGB32; +#X obj 664 487 square 2; +#X obj 664 449 rotateXYZ -40 0 200; +#X floatatom 707 429 5 0 0 0 - - -; +#X obj 477 487 pqtorusknots; +#N canvas 0 50 450 300 rotation 0; +#X obj 33 19 inlet; +#X obj 33 110 % 360; +#X obj 33 62 i; +#X obj 33 88 + 5; +#X obj 33 136 outlet; +#X obj 84 111 % 360; +#X obj 84 63 i; +#X obj 84 137 outlet; +#X obj 134 112 % 360; +#X obj 134 64 i; +#X obj 134 138 outlet; +#X obj 84 89 + 3; +#X obj 134 90 + 7; +#X connect 0 0 2 0; +#X connect 0 0 6 0; +#X connect 0 0 9 0; +#X connect 1 0 2 1; +#X connect 1 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 5 0 6 1; +#X connect 5 0 7 0; +#X connect 6 0 11 0; +#X connect 8 0 9 1; +#X connect 8 0 10 0; +#X connect 9 0 12 0; +#X connect 11 0 5 0; +#X connect 12 0 8 0; +#X restore 509 443 pd rotation; +#X floatatom 531 167 5 0 0 0 - - -; +#N canvas 125 50 450 300 rotation 0; +#X obj 112 29 inlet; +#X obj 112 105 % 360; +#X obj 112 57 i; +#X obj 112 131 outlet; +#X obj 112 83 + 1; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 1 0 3 0; +#X connect 2 0 4 0; +#X connect 4 0 1 0; +#X restore 794 402 pd rotation; +#X obj 762 93 loadbang; +#X obj 477 402 color 1 0 0; +#X obj 649 245 t a; +#X obj 585 124 t a; +#X obj 751 135 t a; +#X obj 495 130 t a; +#X floatatom 563 361 5 0 0 0 - - -; +#X floatatom 607 362 5 0 0 0 - - -; +#X floatatom 520 361 5 0 0 0 - - -; +#X obj 495 154 t a; +#X obj 470 514 cnv 15 410 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X msg 757 544 color 0 0 0 0; +#X msg 746 522 color 0 1 1 0; +#X msg 637 525 lighting \$1; +#X obj 615 526 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#N canvas 0 50 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X obj 67 40 route create destroy; +#X obj 20 217 gemhead 1; +#X obj 20 237 world_light; +#X connect 2 0 7 0; +#X connect 3 0 1 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 3 0; +#X connect 7 0 6 0; +#X connect 7 1 4 0; +#X connect 7 1 5 0; +#X connect 7 2 0 0; +#X connect 8 0 9 0; +#X restore 473 554 pd gemwin; +#X msg 473 529 destroy; +#X text 471 513 Create window:; +#X obj 637 552 t a; +#X text 476 22 Example:; +#X text 379 -10 GEM object; +#X obj 7 41 cnv 15 450 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 7 208 cnv 15 450 370 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 10 214 Inlets:; +#X obj 7 175 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 14 174 Arguments:; +#X text 28 233 Inlet 1: gemlist; +#X text 15 523 Outlets:; +#X text 31 539 Outlet 1: gemlist; +#X text 60 187 ; +#X text 102 -1 Synopsis: [gemframebuffer]; +#X text 122 15 Class: framebuffer object; +#X text 12 50 Description: Renders a scenne in a texture \, for later +use.; +#X text 12 68 this example renders a scene (pqtorusknots) into a framebuffer +\, which is then used as a texture onto a square.; +#X text 13 98 you need framebuffer support (and its driver) on your +gfx-card; +#X text 28 247 Inlet 1: message: type [BYTE | INT | FLOAT]; +#X text 27 315 Inlet 1: message: dimen ; +#X text 27 349 Inlet 1: message: color ; +#X text 26 430 Inlet 1: message: texunit ; +#X text 27 280 Inlet 1: message: format [RGB|RGBA|RGB32|YUV]; +#X text 26 385 Inlet 1: message: rectangle [0|1]; +#X text 103 262 (type of the framebuffer data); +#X text 102 330 (dimension of the framebuffer texture); +#X text 106 465 (usefull only with shader); +#X text 106 448 (change texunit of the texture); +#X text 104 402 (texturing mode \; rectangle (1) or normalized (0)) +; +#X text 100 296 (color format of the framebuffer); +#X text 102 365 (background color of the framebuffer); +#X obj 556 41 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 493 323 5 0 0 0 - - -; +#X obj 477 342 scaleXYZ; +#X floatatom 563 326 5 0 0 0 - - -; +#X floatatom 528 325 5 0 0 0 - - -; +#X msg 585 30 perspec -1 1 -1 1 1 20; +#X msg 593 56 perspec -1 1 -1 1 3 75; +#X text 98 497 (frustum of the framebuffer); +#X text 752 29 default; +#X text 11 130 NOTE: the default view-point of [gemframebuffer] is +at the origin 0/0/0 \, unlike [gemwin] where it is at 0/0/4. You might +want to manually insert a [translateXYZ 0 0 -4].; +#X text 23 482 Inlet 1: message: perspec +; +#X text 428 482 ; +#X text 31 557 Outlet 2: texture info : +<0.>; +#X connect 3 0 18 0; +#X connect 4 0 19 0; +#X connect 5 0 38 0; +#X connect 6 0 31 0; +#X connect 7 0 29 3; +#X connect 8 0 39 0; +#X connect 9 0 38 0; +#X connect 10 0 39 0; +#X connect 11 0 6 0; +#X connect 11 1 32 0; +#X connect 12 0 28 1; +#X connect 13 0 18 0; +#X connect 14 0 13 0; +#X connect 15 0 40 0; +#X connect 16 0 4 0; +#X connect 17 0 36 0; +#X connect 18 0 85 0; +#X connect 18 1 19 1; +#X connect 19 0 20 0; +#X connect 20 0 29 0; +#X connect 20 1 34 0; +#X connect 21 0 18 0; +#X connect 22 0 40 0; +#X connect 23 0 40 0; +#X connect 24 0 37 0; +#X connect 25 0 37 0; +#X connect 26 0 37 0; +#X connect 27 0 37 0; +#X connect 29 0 28 0; +#X connect 30 0 29 1; +#X connect 32 0 6 1; +#X connect 32 1 6 2; +#X connect 32 2 6 3; +#X connect 33 0 21 0; +#X connect 34 0 7 0; +#X connect 35 0 8 0; +#X connect 36 0 11 0; +#X connect 37 0 18 0; +#X connect 38 0 44 0; +#X connect 39 0 44 0; +#X connect 40 0 44 0; +#X connect 41 0 17 2; +#X connect 42 0 17 3; +#X connect 43 0 17 1; +#X connect 44 0 18 0; +#X connect 46 0 53 0; +#X connect 47 0 53 0; +#X connect 48 0 53 0; +#X connect 49 0 48 0; +#X connect 50 0 51 0; +#X connect 51 0 50 0; +#X connect 53 0 50 0; +#X connect 83 0 3 0; +#X connect 84 0 85 1; +#X connect 85 0 17 0; +#X connect 86 0 85 3; +#X connect 87 0 85 2; +#X connect 88 0 38 0; +#X connect 89 0 38 0; diff --git a/Gem/gemglfw2window.la b/Gem/gemglfw2window.la new file mode 100755 index 0000000..ea1b65e --- /dev/null +++ b/Gem/gemglfw2window.la @@ -0,0 +1,41 @@ +# gemglfw2window.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='gemglfw2window.pd_darwin' + +# Names of this library. +library_names='gemglfw2window.pd_darwin gemglfw2window.pd_darwin' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' -framework Cocoa -framework OpenGL -framework IOKit' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L../.. -L/usr/local/Cellar/glfw2/2.7.9/lib -lglfw -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for gemglfw2window. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib/pd/extra/Gem' diff --git a/Gem/gemglfw2window.pd_darwin b/Gem/gemglfw2window.pd_darwin new file mode 100755 index 0000000..6cade60 Binary files /dev/null and b/Gem/gemglfw2window.pd_darwin differ diff --git a/Gem/gemglfw3window.la b/Gem/gemglfw3window.la new file mode 100755 index 0000000..74057b4 --- /dev/null +++ b/Gem/gemglfw3window.la @@ -0,0 +1,41 @@ +# gemglfw3window.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='gemglfw3window.pd_darwin' + +# Names of this library. +library_names='gemglfw3window.pd_darwin gemglfw3window.pd_darwin' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' ' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L../.. -L/usr/local/Cellar/glfw3/3.1/lib -lglfw3 -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for gemglfw3window. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib/pd/extra/Gem' diff --git a/Gem/gemglfw3window.pd_darwin b/Gem/gemglfw3window.pd_darwin new file mode 100755 index 0000000..08d6307 Binary files /dev/null and b/Gem/gemglfw3window.pd_darwin differ diff --git a/Gem/gemglutwindow.la b/Gem/gemglutwindow.la new file mode 100755 index 0000000..a29a13e --- /dev/null +++ b/Gem/gemglutwindow.la @@ -0,0 +1,41 @@ +# gemglutwindow.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.6 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='gemglutwindow.pd_darwin' + +# Names of this library. +library_names='gemglutwindow.pd_darwin gemglutwindow.pd_darwin' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags=' -framework GLUT' + +# Libraries that this one depends upon. +dependency_libs=' -L/Users/travis/build/umlaeute/Gem/build/travis-ci/deps/Pd-0.46-2-64bit.app/Contents/Resources//bin -L../.. -ldl -lz -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for gemglutwindow. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/lib/pd/extra/Gem' diff --git a/Gem/gemglutwindow.pd_darwin b/Gem/gemglutwindow.pd_darwin new file mode 100755 index 0000000..632ee5e Binary files /dev/null and b/Gem/gemglutwindow.pd_darwin differ diff --git a/Gem/gemhead-help.pd b/Gem/gemhead-help.pd new file mode 100644 index 0000000..66f30be --- /dev/null +++ b/Gem/gemhead-help.pd @@ -0,0 +1,118 @@ +#N canvas 30 89 960 649 10; +#X text 452 8 GEM object; +#X obj 8 438 cnv 15 430 150 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 18 440 Inlets:; +#X text 18 558 Outlets:; +#X text 36 571 Outlet 1: gemlist; +#X obj 8 393 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 398 Arguments:; +#X obj 8 76 cnv 15 430 310 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 50 12 Synopsis: [gemhead]; +#X text 71 31 Class: control object; +#X text 29 77 Description: start a rendering chain; +#X obj 607 371 cnv 15 140 65 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X msg 622 391 create; +#X text 618 370 Create window:; +#N canvas 0 50 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 93 create \, 1 \, frame 2; +#X msg 198 112 destroy \, reset; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 622 411 pd gemwin (2fps); +#X text 21 91 [gemhead] connects the gem objects to the window manager. +The start of any gemList begins with the gemhead. Without the gemhead +\, gem objects will not receive the render command.; +#X text 20 366 example: "1" before "50" before "-10" before "-23"; +#X text 22 149 Any gem object connected after the gemhead will receive +one render command per frame.; +#X text 20 294 The rendering-order value can also be negative. Negative +numbered [gemhead]s will be rendered AFTER all positive [gemhead]s. +Note \, that Higher values (-3) will be rendered BEFORE lower values +(-10). [gemhead]s with negative numbers will NOT be affected by view-point +changes !!!; +#X text 62 409 float : priority (default : 50); +#X text 42 471 Inlet 1: bang : force rendering now.; +#X text 42 453 Inlet 1: float (1/0): turn rendering on/off (default +1); +#X text 42 490 Inlet 1: set : change priority value of this +chain.; +#X obj 442 74 cnv 15 160 240 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 451 79 enable/disable rendering; +#X obj 451 123 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 470 240 gemList; +#X obj 470 134 gemhead; +#X msg 470 101 1; +#X msg 506 101 0; +#X obj 470 281 print ENABLE; +#X obj 470 199 square 0.5; +#X obj 606 74 cnv 15 160 240 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 770 74 cnv 15 160 240 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 617 81 force rendering; +#X text 789 79 set rendering order; +#X obj 621 128 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 781 135 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 630 101 bang; +#X msg 791 101 set 45; +#X obj 791 286 print SETTABLE; +#X obj 630 284 print FORCEABLE; +#X msg 630 243 gemList; +#X msg 791 245 gemList; +#X obj 630 202 circle 0.5; +#X obj 791 204 triangle 0.5; +#X obj 791 144 gemhead 105; +#X text 21 188 All chain will be rendered one after the other. You +can control precisely the rendering order by giving [gemhead] a priority +value (argument or message). The default value is 50 The lower the +value is \, the sooner the gemhead will receive the rendering command +(a value of 1 is the lowest possible value). This value is important +when you are doing alpha blending and for certain objects (such as +light).; +#X obj 470 178 translateXYZ -2 0 0; +#X msg 854 101 set 105; +#X obj 630 181 translateXYZ 0 2 0; +#X obj 630 138 gemhead 50; +#X obj 791 183 translateXYZ 2 0 0; +#X text 42 520 Inlet 1: context : change rendering context (for +multiple windows).; +#X connect 12 0 14 0; +#X connect 14 0 12 0; +#X connect 26 0 30 0; +#X connect 27 0 48 0; +#X connect 28 0 27 0; +#X connect 29 0 27 0; +#X connect 31 0 26 0; +#X connect 38 0 51 0; +#X connect 39 0 46 0; +#X connect 42 0 41 0; +#X connect 43 0 40 0; +#X connect 44 0 42 0; +#X connect 45 0 43 0; +#X connect 46 0 52 0; +#X connect 48 0 31 0; +#X connect 49 0 46 0; +#X connect 50 0 44 0; +#X connect 51 0 50 0; +#X connect 52 0 45 0; diff --git a/Gem/gemhead.pd b/Gem/gemhead.pd new file mode 100644 index 0000000..59923cb --- /dev/null +++ b/Gem/gemhead.pd @@ -0,0 +1,90 @@ +#N canvas 255 164 769 392 10; +#N canvas 443 22 581 526 gemreceive 0; +#X obj 109 413 outlet; +#X obj 288 58 inlet order; +#X obj 288 177 select 0; +#X msg 288 198 50; +#X obj 109 365 spigot 1; +#X obj 109 390 t a; +#X obj 288 222 t f f f; +#X obj 334 275 t f f; +#X obj 334 301 > 0; +#X obj 366 301 < 0; +#X obj 313 365 spigot 0; +#X obj 520 283 abs; +#X obj 109 342 gemreceive __gem_render \$1; +#X obj 313 342 gemreceive __gem_render_osd \$1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 6 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 0 0; +#X connect 6 0 12 1; +#X connect 6 1 11 0; +#X connect 6 2 7 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 8 0 4 1; +#X connect 9 0 10 1; +#X connect 10 0 5 0; +#X connect 11 0 13 1; +#X connect 12 0 4 0; +#X connect 13 0 10 0; +#X restore 170 69 pd gemreceive; +#X obj 170 155 gemlist; +#N canvas 602 92 635 363 material 0; +#X obj 98 88 inlet gemlist; +#X obj 98 258 outlet gemlist; +#X obj 98 117 GEMglColor4f 1 1 1 1; +#X obj 98 143 GEMglMaterialfv GL_FRONT_AND_BACK GL_AMBIENT 0.2 0.2 +0.2 1; +#X obj 98 163 GEMglMaterialfv GL_FRONT_AND_BACK GL_DIFFUSE 0.8 0.8 +0.8 1; +#X obj 98 183 GEMglMaterialfv GL_FRONT_AND_BACK GL_EMISSION 0 0 0 1 +; +#X obj 98 203 GEMglMaterialfv GL_FRONT_AND_BACK GL_SPECULAR 0 0 0 1 +; +#X obj 98 223 GEMglMaterialfv GL_FRONT_AND_BACK GL_SHININESS 0; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 1 0; +#X restore 170 197 pd material; +#X obj 170 221 t a a a; +#X obj 216 242 GEMglPushMatrix; +#X obj 170 282 GEMglPopMatrix; +#X obj 193 306 outlet gemlist; +#X obj 130 18 inlet control; +#X obj 130 40 route bang float set; +#X obj 223 94 i; +#X obj 170 116 spigot 1; +#N canvas 0 0 650 510 defaultarg 0; +#X obj 134 132 loadbang; +#X obj 134 265 outlet; +#X obj 134 157 f \$1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 286 39 pd defaultarg; +#X obj 71 174 GEMglFlush; +#X obj 71 122 gemlist; +#X obj 71 144 t a a; +#X connect 0 0 10 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 3 1 6 0; +#X connect 3 2 4 0; +#X connect 7 0 8 0; +#X connect 8 0 13 0; +#X connect 8 1 9 0; +#X connect 8 2 0 0; +#X connect 9 0 10 1; +#X connect 10 0 1 0; +#X connect 11 0 0 0; +#X connect 13 0 14 0; +#X connect 14 0 12 0; +#X connect 14 1 2 0; diff --git a/Gem/gemkeyboard-help.pd b/Gem/gemkeyboard-help.pd new file mode 100644 index 0000000..1dbca78 --- /dev/null +++ b/Gem/gemkeyboard-help.pd @@ -0,0 +1,62 @@ +#N canvas 64 27 679 445 10; +#X obj 27 85 cnv 15 450 170 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 28 303 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 29 308 Inlets:; +#X obj 28 265 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 37 264 Arguments:; +#X text 472 28 GEM object; +#X text 29 337 Outlets:; +#X text 495 49 Example:; +#X text 74 50 Class: control object; +#X obj 486 84 cnv 15 170 180 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 495 101 cnv 15 150 80 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 546 194 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 551 233 pd gemwin; +#X msg 551 214 create; +#X text 547 193 Create window:; +#X text 53 34 Synopsis: [gemkeyboard]; +#X text 27 89 Description: output keyboard events in the GEM window +; +#X text 36 106 [gemkeyboard] sends out keyboard events which occur +in the GEM window. Such event will appear on KEY_DOWN and will give +the KeyCode of the button.; +#X text 34 181 Furthermore \, i would like to make this object really +cross-platform one day. Thus the KeyCode might change on one system +or another in future times.; +#X text 34 228 USE AT YOUR OWN RISK !!!; +#X text 35 148 It is not guaranteed \, that Windows / Linux / OSX versions +will give the same KeyCode for the same key pressed !!!; +#X text 83 275 none; +#X text 47 320 Inlet 1: non - used; +#X text 41 350 Outlet 1: keyCode; +#X obj 508 115 gemkeyboard; +#X floatatom 508 153 5 0 0 1 keyCode - -; +#X text 488 274 see also:; +#X obj 489 299 gemkeyname; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 24 0 25 0; diff --git a/Gem/gemkeyboard.pd b/Gem/gemkeyboard.pd new file mode 100644 index 0000000..5b3d1ac --- /dev/null +++ b/Gem/gemkeyboard.pd @@ -0,0 +1,17 @@ +#N canvas 189 51 535 289 10; +#X obj 104 31 r __gem; +#X obj 104 83 list split 1; +#X obj 104 52 route keyboard dimen; +#X obj 138 205 outlet keynum; +#X obj 138 104 list trim; +#X obj 138 126 route key; +#X obj 138 148 unpack 0 0; +#X obj 138 170 spigot; +#X connect 0 0 2 0; +#X connect 1 1 4 0; +#X connect 2 0 1 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 6 1 7 1; +#X connect 7 0 3 0; diff --git a/Gem/gemkeyname-help.pd b/Gem/gemkeyname-help.pd new file mode 100644 index 0000000..d5d5e9c --- /dev/null +++ b/Gem/gemkeyname-help.pd @@ -0,0 +1,68 @@ +#N canvas 64 27 679 445 10; +#X obj 27 85 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 27 325 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 35 332 Inlets:; +#X obj 27 290 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 36 291 Arguments:; +#X text 472 28 GEM object; +#X text 35 361 Outlets:; +#X text 495 49 Example:; +#X text 74 50 Class: control object; +#X obj 486 84 cnv 15 170 180 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 495 101 cnv 15 150 80 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 546 194 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 551 233 pd gemwin; +#X msg 551 214 create; +#X text 547 193 Create window:; +#X text 38 89 Description: output keyboard events in the GEM window +; +#X text 37 265 USE AT YOUR OWN RISK !!!; +#X text 82 302 none; +#X text 53 344 Inlet 1: non - used; +#X text 488 274 see also:; +#X text 53 34 Synopsis: [gemkeyname]; +#X text 36 108 [gemkeyname] sends out keyboard events which occur in +the GEM window. Such event will give a symbolic description of the +button. The "state"-outlet will be 1 for KEY_DOWN and 0 for KEY_UP. +; +#X text 37 219 Furthermore \, i would like to make this object really +cross-platform one day. Thus the KeyName might change on one system +or another in future times.; +#X text 37 161 It is not guaranteed \, that Windows / Linux / OSX versions +will give the same description for the same key pressed !!! Also \, +there is no guarantee \, that the Pd-object [keyname] will return the +same symbols as [gemkeyname]; +#X text 53 376 Outlet 1: state; +#X text 53 390 Outlet 2: keyName; +#X obj 489 299 gemkeyboard; +#X floatatom 508 160 2 0 0 1 state - -; +#X symbolatom 565 134 10 0 0 0 keyName - -; +#X obj 508 115 gemkeyname; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 29 0 27 0; +#X connect 29 1 28 0; diff --git a/Gem/gemkeyname.pd b/Gem/gemkeyname.pd new file mode 100644 index 0000000..1d07afd --- /dev/null +++ b/Gem/gemkeyname.pd @@ -0,0 +1,20 @@ +#N canvas 187 51 535 289 10; +#X obj 104 31 r __gem; +#X obj 104 83 list split 1; +#X obj 104 52 route keyboard dimen; +#X obj 138 104 list trim; +#X obj 400 226 outlet keyname; +#X obj 138 225 outlet state; +#X obj 138 126 route keyname; +#X obj 138 148 list; +#X msg 138 170 list \$2 \$1; +#X obj 138 192 unpack 0 s; +#X connect 0 0 2 0; +#X connect 1 1 3 0; +#X connect 2 0 1 0; +#X connect 3 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 5 0; +#X connect 9 1 4 0; diff --git a/Gem/gemlist-help.pd b/Gem/gemlist-help.pd new file mode 100644 index 0000000..bd6e313 --- /dev/null +++ b/Gem/gemlist-help.pd @@ -0,0 +1,73 @@ +#N canvas 443 181 661 405 10; +#X obj 7 65 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 176 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 175 Arguments:; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 280 Outlets:; +#X text 21 293 Outlet 1: gemlist; +#X text 63 186 none; +#X text 475 29 Example:; +#X text 33 14 Synopsis: [gemlist]; +#X text 54 30 Class: control object; +#X text 27 247 Inlet 1: bang; +#X text 27 261 Inlet 2: gemlist; +#X text 7 69 Description: Store a gemlist; +#X text 16 86 The gemlist object stores a gemlist \, which may de output +by sending it a "bang" message.; +#X obj 467 47 cnv 15 170 340 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 475 81 cnv 15 150 130 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 528 320 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 533 359 pd gemwin; +#X msg 533 340 create; +#X text 529 319 Create window:; +#X obj 498 59 gemhead; +#X obj 484 190 gemlist; +#X obj 484 169 until; +#X obj 484 288 scaleXYZ 0.9 0.9 0.9; +#X obj 484 243 translateXYZ 0.5 0 0; +#X msg 484 149 30; +#X obj 484 265 rotateXYZ 0 0 30; +#X obj 484 221 circle 0.3 33; +#X obj 498 107 route gem_state; +#X obj 498 127 route float; +#X obj 498 86 t a a; +#X connect 20 0 21 0; +#X connect 21 0 20 0; +#X connect 23 0 33 0; +#X connect 24 0 30 0; +#X connect 25 0 24 0; +#X connect 27 0 29 0; +#X connect 28 0 25 0; +#X connect 29 0 26 0; +#X connect 30 0 27 0; +#X connect 31 0 32 0; +#X connect 32 1 28 0; +#X connect 33 0 31 0; +#X connect 33 1 24 1; diff --git a/Gem/gemlist_info-help.pd b/Gem/gemlist_info-help.pd new file mode 100644 index 0000000..1a446c7 --- /dev/null +++ b/Gem/gemlist_info-help.pd @@ -0,0 +1,297 @@ +#N canvas 594 117 688 676 10; +#X text 452 8 GEM object; +#X obj 8 206 cnv 15 430 120 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 218 Inlets:; +#X text 63 231 Inlet 1: gemlist; +#X text 38 240 Outlets:; +#X text 62 253 Outlet 1: gemlist; +#X obj 8 156 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X obj 8 76 cnv 15 430 70 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 453 60 Example:; +#X obj 9 415 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 454 304 gemwin 0; +#X obj 132 160 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 133 destroy; +#X obj 288 57 world_light; +#X obj 288 28 gemhead; +#X msg 132 112 create \, 1 \, lighting 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 9 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 8 0 7 0; +#X connect 9 0 0 0; +#X restore 14 454 pd gemwin; +#X msg 14 435 create; +#X text 10 414 Create window:; +#X text 50 12 Synopsis: [gemlist_info]; +#X text 71 31 Class: information object; +#X text 29 77 Description: get curent transformation of a gemlist; +#X text 42 94 [gemlist_info] accepts a gemList decompost the transformation +matrix in basic transformation (translation \, scale \, shear \, rotation) +; +#X text 60 174 no argument; +#X text 62 299 Outlet 5: 3 float list : translationX \, Y and Z; +#X text 62 265 Outlet 2: 3 float list : RotationX \, Y and Z; +#X text 62 277 Outlet 3: 3 float list : shear YX \, YZ and ZX; +#X text 62 288 Outlet 4: 3 float list : scale X \, Y and Z; +#X obj 9 336 cnv 15 430 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 452 890 more 0; +#X obj 30 122 gemhead; +#X floatatom 44 144 5 0 0 0 - - -; +#X floatatom 78 144 5 0 0 0 - - -; +#X floatatom 112 144 5 0 0 0 - - -; +#X floatatom 46 184 5 0 0 0 - - -; +#X floatatom 80 184 5 0 0 0 - - -; +#X floatatom 114 184 5 0 0 0 - - -; +#X floatatom 52 227 5 0 0 0 - - -; +#X floatatom 86 227 5 0 0 0 - - -; +#X floatatom 120 227 5 0 0 0 - - -; +#X obj 30 433 gemlist_info; +#X obj 192 568 unpack f f f; +#X obj 178 396 gemhead; +#X obj 178 536 translateXYZ; +#X floatatom 192 591 5 0 0 0 - - -; +#X floatatom 225 591 5 0 0 0 - - -; +#X floatatom 259 591 5 0 0 0 - - -; +#X floatatom 193 761 5 0 0 0 - - -; +#X floatatom 226 761 5 0 0 0 - - -; +#X floatatom 260 761 5 0 0 0 - - -; +#X floatatom 200 516 5 0 0 0 - - -; +#X floatatom 233 516 5 0 0 0 - - -; +#X floatatom 267 516 5 0 0 0 - - -; +#X obj 193 734 unpack f f f; +#X obj 200 490 unpack f f f; +#X obj 178 421 GEMglLoadIdentity; +#X obj 178 450 color 1 0 0; +#X floatatom 46 336 5 0 0 0 - - -; +#X floatatom 80 336 5 0 0 0 - - -; +#X floatatom 114 336 5 0 0 0 - - -; +#X floatatom 52 379 5 0 0 0 - - -; +#X floatatom 86 379 5 0 0 0 - - -; +#X floatatom 120 379 5 0 0 0 - - -; +#X obj 30 163 scaleXYZ 1 1 1; +#X obj 30 205 rotateXYZ 0 0 0; +#X obj 30 247 translateXYZ 0 0 0; +#X obj 30 357 rotateXYZ 0 0 0; +#X obj 30 399 translateXYZ 0 0 0; +#X floatatom 44 283 5 0 0 0 - - -; +#X floatatom 78 283 5 0 0 0 - - -; +#X floatatom 112 283 5 0 0 0 - - -; +#X obj 30 302 scaleXYZ 1 1 1; +#X obj 30 512 cube; +#X obj 30 484 scaleXYZ 1 1 0.2; +#X floatatom 192 665 8 0 0 0 - - -; +#X floatatom 225 681 8 0 0 0 - - -; +#X floatatom 259 697 8 0 0 0 - - -; +#X obj 192 643 unpack f f f; +#N canvas 296 410 419 328 shear 0; +#X obj 28 17 inlet; +#X obj 28 270 outlet; +#X obj 108 21 inlet; +#X obj 205 20 inlet; +#X obj 297 18 inlet; +#X text 117 38 ShearXY; +#X text 217 37 ShearXZ; +#X text 306 36 ShearYZ; +#X obj 28 104 shearYX; +#X obj 28 153 shearZX; +#X obj 28 212 shearZY; +#X connect 0 0 8 0; +#X connect 2 0 8 1; +#X connect 3 0 9 1; +#X connect 4 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore 178 711 pd shear; +#X obj 178 811 cube 0.5; +#X obj 178 80 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 178 785 rotateXYZ; +#X obj 178 610 scaleXYZ; +#X obj 178 30 loadbang; +#X msg 178 55 0; +#X text 50 844 this show the transformation neaded to create a specific +transformation matrix decomposed with gemlist_info; +#X connect 0 0 33 0; +#X connect 1 0 33 1; +#X connect 2 0 33 2; +#X connect 3 0 33 3; +#X connect 4 0 34 1; +#X connect 5 0 34 2; +#X connect 6 0 34 3; +#X connect 7 0 35 1; +#X connect 8 0 35 2; +#X connect 9 0 35 3; +#X connect 10 0 43 0; +#X connect 10 1 23 0; +#X connect 10 2 47 0; +#X connect 10 3 11 0; +#X connect 10 4 24 0; +#X connect 11 0 14 0; +#X connect 11 1 15 0; +#X connect 11 2 16 0; +#X connect 12 0 25 0; +#X connect 13 0 52 0; +#X connect 14 0 52 1; +#X connect 15 0 52 2; +#X connect 16 0 52 3; +#X connect 17 0 51 1; +#X connect 18 0 51 2; +#X connect 19 0 51 3; +#X connect 20 0 13 1; +#X connect 21 0 13 2; +#X connect 22 0 13 3; +#X connect 23 0 17 0; +#X connect 23 1 18 0; +#X connect 23 2 19 0; +#X connect 24 0 20 0; +#X connect 24 1 21 0; +#X connect 24 2 22 0; +#X connect 25 0 26 0; +#X connect 26 0 13 0; +#X connect 27 0 36 1; +#X connect 28 0 36 2; +#X connect 29 0 36 3; +#X connect 30 0 37 1; +#X connect 31 0 37 2; +#X connect 32 0 37 3; +#X connect 33 0 34 0; +#X connect 34 0 35 0; +#X connect 35 0 41 0; +#X connect 36 0 37 0; +#X connect 37 0 10 0; +#X connect 38 0 41 1; +#X connect 39 0 41 2; +#X connect 40 0 41 3; +#X connect 41 0 36 0; +#X connect 43 0 42 0; +#X connect 44 0 48 1; +#X connect 45 0 48 2; +#X connect 46 0 48 3; +#X connect 47 0 44 0; +#X connect 47 1 45 0; +#X connect 47 2 46 0; +#X connect 48 0 51 0; +#X connect 50 0 0 0; +#X connect 50 0 12 0; +#X connect 51 0 49 0; +#X connect 52 0 48 0; +#X connect 53 0 54 0; +#X connect 54 0 50 0; +#X restore 15 349 pd more; +#X obj 449 77 cnv 15 200 570 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 459 310 cnv 15 180 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 472 89 gemhead; +#X floatatom 494 121 5 0 0 0 - - -; +#X floatatom 528 121 5 0 0 0 - - -; +#X floatatom 562 121 5 0 0 0 - - -; +#X floatatom 488 264 5 0 0 0 - - -; +#X floatatom 522 264 5 0 0 0 - - -; +#X floatatom 556 264 5 0 0 0 - - -; +#X floatatom 486 170 5 0 0 0 - - -; +#X floatatom 520 170 5 0 0 0 - - -; +#X floatatom 554 170 5 0 0 0 - - -; +#X obj 472 320 gemlist_info; +#X obj 488 596 unpack f f f; +#X floatatom 488 619 5 0 0 0 - - -; +#X floatatom 521 619 5 0 0 0 - - -; +#X floatatom 555 619 5 0 0 0 - - -; +#X floatatom 522 470 5 0 0 0 - - -; +#X floatatom 555 470 5 0 0 0 - - -; +#X floatatom 589 470 5 0 0 0 - - -; +#X floatatom 539 394 5 0 0 0 - - -; +#X floatatom 572 394 5 0 0 0 - - -; +#X floatatom 606 394 5 0 0 0 - - -; +#X obj 522 444 unpack f f f; +#X obj 539 371 unpack f f f; +#X text 547 356 position; +#X text 533 428 size; +#X obj 505 520 unpack f f f; +#N canvas 437 191 389 322 shear 0; +#X obj 37 27 inlet; +#X obj 37 280 outlet; +#X obj 118 31 inlet; +#X obj 215 30 inlet; +#X obj 307 28 inlet; +#X text 127 48 ShearXY; +#X text 227 47 ShearXZ; +#X text 316 46 ShearYZ; +#X obj 37 114 shearXY; +#X obj 37 163 shearXZ; +#X obj 37 222 shearYZ; +#X connect 0 0 8 0; +#X connect 2 0 8 1; +#X connect 3 0 9 1; +#X connect 4 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore 472 237 pd shear; +#X obj 472 285 rotateXYZ; +#X obj 472 189 scaleXYZ; +#X obj 472 144 translateXYZ; +#X floatatom 486 216 5 0 0 0 - - -; +#X floatatom 520 216 5 0 0 0 - - -; +#X floatatom 554 216 5 0 0 0 - - -; +#X floatatom 505 545 5 0 0 0 - - -; +#X floatatom 538 545 5 0 0 0 - - -; +#X floatatom 572 545 5 0 0 0 - - -; +#X text 498 580 orientation; +#X text 514 504 shear (YX \, ZX \, ZY); +#X text 76 349 <- more about gemlist_info; +#X text 18 375 see also :; +#X obj 100 375 gemlist_matrix; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 27 0 56 0; +#X connect 28 0 56 1; +#X connect 29 0 56 2; +#X connect 30 0 56 3; +#X connect 31 0 54 1; +#X connect 32 0 54 2; +#X connect 33 0 54 3; +#X connect 34 0 55 1; +#X connect 35 0 55 2; +#X connect 36 0 55 3; +#X connect 37 1 38 0; +#X connect 37 2 52 0; +#X connect 37 3 48 0; +#X connect 37 4 49 0; +#X connect 38 0 39 0; +#X connect 38 1 40 0; +#X connect 38 2 41 0; +#X connect 48 0 42 0; +#X connect 48 1 43 0; +#X connect 48 2 44 0; +#X connect 49 0 45 0; +#X connect 49 1 46 0; +#X connect 49 2 47 0; +#X connect 52 0 60 0; +#X connect 52 1 61 0; +#X connect 52 2 62 0; +#X connect 53 0 54 0; +#X connect 54 0 37 0; +#X connect 55 0 53 0; +#X connect 56 0 55 0; +#X connect 57 0 53 1; +#X connect 58 0 53 2; +#X connect 59 0 53 3; diff --git a/Gem/gemlist_matrix-help.pd b/Gem/gemlist_matrix-help.pd new file mode 100644 index 0000000..30b6044 --- /dev/null +++ b/Gem/gemlist_matrix-help.pd @@ -0,0 +1,120 @@ +#N canvas 594 117 675 520 10; +#X text 452 8 GEM object; +#X obj 8 206 cnv 15 430 120 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 218 Inlets:; +#X text 63 231 Inlet 1: gemlist; +#X text 38 240 Outlets:; +#X text 62 253 Outlet 1: gemlist; +#X obj 8 156 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X obj 8 76 cnv 15 430 70 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 453 60 Example:; +#X obj 9 385 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 454 304 gemwin 0; +#X obj 132 160 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 133 destroy; +#X obj 288 57 world_light; +#X obj 288 28 gemhead; +#X msg 132 112 create \, 1 \, lighting 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 9 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 8 0 7 0; +#X connect 9 0 0 0; +#X restore 14 424 pd gemwin; +#X msg 14 405 create; +#X text 10 384 Create window:; +#X text 71 31 Class: information object; +#X text 60 174 no argument; +#X obj 9 336 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X obj 449 77 cnv 15 200 400 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 459 310 cnv 15 180 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 472 89 gemhead; +#X floatatom 494 121 5 0 0 0 - - -; +#X floatatom 528 121 5 0 0 0 - - -; +#X floatatom 562 121 5 0 0 0 - - -; +#X floatatom 488 264 5 0 0 0 - - -; +#X floatatom 522 264 5 0 0 0 - - -; +#X floatatom 556 264 5 0 0 0 - - -; +#X floatatom 486 170 5 0 0 0 - - -; +#X floatatom 520 170 5 0 0 0 - - -; +#X floatatom 554 170 5 0 0 0 - - -; +#N canvas 437 191 753 491 shear 0; +#X obj 25 17 inlet; +#X obj 28 270 outlet; +#X obj 108 21 inlet; +#X obj 205 20 inlet; +#X obj 297 18 inlet; +#X text 117 38 ShearXY; +#X text 217 37 ShearXZ; +#X text 306 36 ShearYZ; +#X obj 27 104 shearXY; +#X obj 26 153 shearXZ; +#X obj 26 212 shearYZ; +#X connect 0 0 8 0; +#X connect 2 0 8 1; +#X connect 3 0 9 1; +#X connect 4 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore 472 237 pd shear; +#X obj 472 285 rotateXYZ; +#X obj 472 189 scaleXYZ; +#X obj 472 144 translateXYZ; +#X floatatom 486 216 5 0 0 0 - - -; +#X floatatom 520 216 5 0 0 0 - - -; +#X floatatom 554 216 5 0 0 0 - - -; +#X obj 101 348 gemlist_info; +#X obj 472 320 gemlist_matrix; +#X text 14 351 see also :; +#X text 29 77 Description: get curent transformation matrix of a gemlist +; +#X msg 496 378 \$1 \$2 \$3; +#X msg 503 398 \$5 \$6 \$7; +#X msg 510 419 \$9 \$10 \$11; +#X msg 517 440 \$13 \$14 \$15; +#X text 50 12 Synopsis: [gemlist_matrix]; +#X text 42 94 [gemlist_matrix] accepts a gemList and output the transformation +matrix.; +#X text 62 265 Outlet 2: transformation matrix (16 floats); +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 19 0 32 0; +#X connect 20 0 32 1; +#X connect 21 0 32 2; +#X connect 22 0 32 3; +#X connect 23 0 30 1; +#X connect 24 0 30 2; +#X connect 25 0 30 3; +#X connect 26 0 31 1; +#X connect 27 0 31 2; +#X connect 28 0 31 3; +#X connect 29 0 30 0; +#X connect 30 0 37 0; +#X connect 31 0 29 0; +#X connect 32 0 31 0; +#X connect 33 0 29 1; +#X connect 34 0 29 2; +#X connect 35 0 29 3; +#X connect 37 1 40 0; +#X connect 37 1 41 0; +#X connect 37 1 42 0; +#X connect 37 1 43 0; diff --git a/Gem/gemmouse-help.pd b/Gem/gemmouse-help.pd new file mode 100644 index 0000000..77b243c --- /dev/null +++ b/Gem/gemmouse-help.pd @@ -0,0 +1,115 @@ +#N canvas 179 30 929 414 10; +#X obj 7 65 cnv 15 450 170 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 283 cnv 15 450 120 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 288 Inlets:; +#X obj 8 245 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 244 Arguments:; +#X text 452 8 GEM object; +#X text 9 317 Outlets:; +#X text 475 29 Example:; +#X text 54 30 Class: control object; +#X obj 466 64 cnv 15 170 180 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 466 284 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 471 323 pd gemwin; +#X msg 471 304 create; +#X text 467 283 Create window:; +#X text 27 300 Inlet 1: non - used; +#X text 468 364 see also:; +#X text 33 14 Synopsis: [gemmouse]; +#X text 7 69 Description: mouse events in the GEM window; +#X text 16 86 [gemmouse] sends out mouse events which occur in the +GEM window. The X and Y Position go from 0 to the size of the window +in pixels. The point (0 \, 0) is in the top left of the window.; +#X text 15 141 You can also set some normalization of the output coordinates +with arguments.; +#X text 15 170 The button outlets send a 1 when the specified button +is pressed and a 0 when it is released.; +#X text 63 255 [list : x-normalization y-normalization]; +#X text 21 330 Outlet 1: x position; +#X text 21 343 Outlet 2: y position; +#X text 21 355 Outlet 3: left button state; +#X text 21 368 Outlet 4: middle button state; +#X text 21 381 Outlet 5: right button state; +#X obj 466 385 gemkeyboard; +#X obj 478 82 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 491 93 gemmouse; +#X floatatom 491 218 9 0 0 1 X-position - -; +#X floatatom 502 196 8 0 0 1 Y-position - -; +#X floatatom 513 174 2 0 0 1 left-Button - -; +#X floatatom 524 153 2 0 0 1 middle-Button - -; +#X floatatom 536 129 2 0 0 1 right-Button - -; +#X obj 642 64 cnv 15 280 180 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 654 82 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X floatatom 657 135 9 0 0 1 X-position - -; +#X floatatom 674 113 8 0 0 1 Y-position - -; +#X text 792 134 (normalized to 0..1); +#X obj 657 89 gemmouse 1 1; +#X text 791 111 (normalized to 0..1); +#X obj 656 186 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#N canvas 589 352 498 353 follow_mouse 0; +#X obj 112 29 inlet; +#X obj 168 74 * 8; +#X obj 168 97 - 4; +#X obj 168 31 inlet; +#X obj 112 129 gemhead; +#X obj 112 189 translateXYZ; +#X obj 112 217 colorRGB 1 0 0; +#X obj 112 242 square 0.25; +#X obj 214 139 - 4; +#X obj 214 33 inlet; +#X text 253 76 invert y; +#X obj 214 116 * 8; +#X msg 214 57 1 \$1; +#X obj 214 81 -; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 5 1; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 5 2; +#X connect 9 0 12 0; +#X connect 11 0 8 0; +#X connect 12 0 13 0; +#X connect 13 0 11 0; +#X restore 656 209 pd follow_mouse; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 29 0 30 0; +#X connect 29 1 31 0; +#X connect 29 2 32 0; +#X connect 29 3 33 0; +#X connect 29 4 34 0; +#X connect 37 0 43 1; +#X connect 38 0 43 2; +#X connect 40 0 37 0; +#X connect 40 1 38 0; +#X connect 42 0 43 0; diff --git a/Gem/gemmouse.pd b/Gem/gemmouse.pd new file mode 100644 index 0000000..e718deb --- /dev/null +++ b/Gem/gemmouse.pd @@ -0,0 +1,155 @@ +#N canvas 56 51 1068 713 10; +#X obj 114 477 outlet x; +#X obj 183 477 outlet y; +#X obj 390 477 outlet Left; +#X obj 500 477 outlet Middle; +#X obj 610 477 outlet Right; +#N canvas 336 87 557 430 arguments 0; +#X obj 139 87 inlet reset; +#X obj 139 110 t b; +#N canvas 0 50 877 440 argcount 0; +#X obj 32 46 inlet; +#X obj 50 178 select s; +#X obj 50 128 t b b; +#X obj 156 155 makefilename $%d-test; +#X obj 50 155 symbol \$1-test; +#X msg 156 135 1; +#X obj 570 178 select s; +#X obj 570 128 t b b; +#X obj 676 155 makefilename $%d-test; +#X msg 676 135 3; +#X obj 50 242 t f; +#X obj 32 306 f; +#X obj 32 74 t b b b; +#X msg 78 279 -1; +#X obj 32 360 outlet; +#X obj 570 155 symbol \$3-test; +#X msg 50 199 0; +#X obj 310 178 select s; +#X obj 310 128 t b b; +#X obj 416 155 makefilename $%d-test; +#X msg 416 135 2; +#X obj 310 155 symbol \$2-test; +#X msg 310 199 1; +#X msg 570 199 2; +#X obj 287 101 t b b b; +#X connect 0 0 12 0; +#X connect 1 0 16 0; +#X connect 2 0 4 0; +#X connect 2 1 5 0; +#X connect 3 0 1 1; +#X connect 4 0 1 0; +#X connect 5 0 3 0; +#X connect 6 0 23 0; +#X connect 7 0 15 0; +#X connect 7 1 9 0; +#X connect 8 0 6 1; +#X connect 9 0 8 0; +#X connect 10 0 11 1; +#X connect 11 0 14 0; +#X connect 12 0 11 0; +#X connect 12 1 24 0; +#X connect 12 2 13 0; +#X connect 13 0 11 1; +#X connect 15 0 6 0; +#X connect 16 0 10 0; +#X connect 17 0 22 0; +#X connect 18 0 21 0; +#X connect 18 1 20 0; +#X connect 19 0 17 1; +#X connect 20 0 19 0; +#X connect 21 0 17 0; +#X connect 22 0 10 0; +#X connect 23 0 10 0; +#X connect 24 0 2 0; +#X connect 24 1 18 0; +#X connect 24 2 7 0; +#X restore 139 134 pd argcount; +#X obj 139 182 select 0 1 2; +#X obj 253 352 outlet yscale; +#X obj 139 322 outlet yscale; +#X obj 139 160 i; +#X obj 253 323 /; +#X obj 201 201 t b b; +#X obj 166 223 f \$1; +#X obj 201 223 f \$1; +#X obj 233 223 f \$2; +#X obj 366 142 unpack 0 0; +#X obj 334 121 t b l; +#X obj 166 244 pack 0 500; +#X obj 139 270 pack 500 500; +#X obj 253 300 pack 500 500; +#X obj 139 293 /; +#X obj 334 97 inlet dimen; +#X floatatom 65 186 5 0 0 0 - - -, f 5; +#X msg 77 87 bang; +#X msg 139 203 1 1; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 3 0 21 0; +#X connect 3 1 9 0; +#X connect 3 2 8 0; +#X connect 6 0 3 0; +#X connect 6 0 19 0; +#X connect 7 0 4 0; +#X connect 8 0 10 0; +#X connect 8 1 11 0; +#X connect 9 0 14 0; +#X connect 10 0 15 0; +#X connect 11 0 16 0; +#X connect 12 0 15 1; +#X connect 12 0 17 1; +#X connect 12 1 14 1; +#X connect 12 1 16 1; +#X connect 13 0 6 0; +#X connect 13 1 12 0; +#X connect 14 0 15 0; +#X connect 14 0 16 0; +#X connect 15 0 17 0; +#X connect 16 0 7 0; +#X connect 17 0 5 0; +#X connect 18 0 13 0; +#X connect 20 0 1 0; +#X connect 21 0 15 0; +#X connect 21 0 16 0; +#X restore 187 223 pd arguments; +#X obj 169 281 * 1; +#X obj 239 281 * 1; +#X obj 187 198 loadbang; +#X obj 104 31 r __gem; +#X obj 104 52 route mouse dimen; +#X obj 176 148 route motion button; +#X obj 144 127 t b a; +#X obj 176 171 unpack; +#X obj 144 334 f; +#X obj 144 307 del 0; +#X obj 390 295 route 0 1 2; +#X obj 104 83 list split 1; +#X obj 144 105 list trim; +#X obj 144 393 pack; +#X obj 144 415 unpack; +#X connect 5 0 6 1; +#X connect 5 1 7 1; +#X connect 6 0 14 1; +#X connect 7 0 19 1; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 10 0 17 0; +#X connect 10 1 5 1; +#X connect 11 0 13 0; +#X connect 11 1 16 0; +#X connect 12 0 15 0; +#X connect 12 1 11 0; +#X connect 13 0 6 0; +#X connect 13 1 7 0; +#X connect 14 0 19 0; +#X connect 15 0 14 0; +#X connect 16 0 2 0; +#X connect 16 1 3 0; +#X connect 16 2 4 0; +#X connect 17 1 18 0; +#X connect 18 0 12 0; +#X connect 19 0 20 0; +#X connect 20 0 0 0; +#X connect 20 1 1 0; diff --git a/Gem/gemorb-help.pd b/Gem/gemorb-help.pd new file mode 100644 index 0000000..2894cda --- /dev/null +++ b/Gem/gemorb-help.pd @@ -0,0 +1,32 @@ +#N canvas 293 148 600 556 10; +#X text 135 37 part of GEM; +#X obj 157 187 gemorb 1; +#X text 69 93 respond to events of a SpaceOrb on a specified commport. +; +#X msg 157 290 (X Y Z) Position; +#X msg 182 255 (X Y Z) Rotation; +#X msg 208 219 (a b c d e f g) Button; +#X text 152 70 [gemorb]; +#X text 67 326 [gemorb] connects to a SpaceOrb onthe commport specified +as the creation-argument.; +#X text 70 358 You have to have a SpaceOrb to make serious use of [gemorb] +; +#X text 66 389 Position and Rotation give you float-triplets specifying +the position/rotation at/for the 3 axis; +#X text 66 426 Button gives a 9tupel with the state \, each button +is in; +#X msg 180 118 reset; +#X msg 180 140 timer

[return] + + diff --git a/Gem/manual/BasicObj.html b/Gem/manual/BasicObj.html new file mode 100644 index 0000000..80e5d84 --- /dev/null +++ b/Gem/manual/BasicObj.html @@ -0,0 +1,115 @@ + + + + + + + Basic Objects + + + +