{"push_id":777939199,"size":38,"distinct_size":0,"ref":"refs/heads/pulled","head":"8a3b6e38269d54a73a766f79df8d7f037eae823b","before":"14297fc12b7324ce1d2ed76360f228ccb41d9f4a","commits":[{"sha":"8b4f68a3a014c3ae62a64def3011ccc43e8c41c9","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"GLContextImpl.setRendererQuirks(..): Reduce duplicated code of adding quirks","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/8b4f68a3a014c3ae62a64def3011ccc43e8c41c9"},{"sha":"deff49c901915e007f43a1df1a0d217a786e9f06","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1202 - Add support of Adaptive Vsync via [GLX|WGL]_EXT_swap_control_tear\n\n[GLX|WGL]_EXT_swap_control_tear extensions support\nasynchronous buffer swaps, i.e. adaptive Vsync.\n\n<https://www.opengl.org/wiki/SwapInterval_aka_vsync#Adaptive_Vsync>\n<https://www.opengl.org/registry/specs/EXT/wgl_swap_control_tear.txt>\n<https://www.opengl.org/registry/specs/EXT/glx_swap_control_tear.txt>\n\n<http://keithp.com/blogs/async_flip/>\n\nThe extensions utilizes a negative interval value,\nenabling late swaps to occur without synchronization to the video frame.\n\nHence '-1' has new semantics, previously it was the 'default value'\nof 'untouched vsync interval'.\n\nNew default is:\n  - 0 for unrealized context\n  - 1 for realized context\n\n+++\n\nIt requires [GLX|WGL]_EXT_swap_control,\nhence we shall ensure to use use this extension\nin the implementation of GLContext.setSwapInterval(..).\n\n+++\n\nMesa3D seems to support GLX_SGI_swap_control only.\n\n+++\n\nImplemented on Windows and X11.\n\n+++\n\nOn GNU/Linux using NVidia driver w/ my setup(*), sadly the query\n  GLX.glXQueryDrawable(displayHandle, drawable.getHandle(), GLX.GLX_LATE_SWAPS_TEAR_EXT, val);\nalways returns zero here, indicating async vsync is not supported.\n\n(Queried the attribute for every frame in windowed or fullscreen mode)\n\nFullscreen\n(*)\n  - Debian 8\n  - Kernel 3.16\n  - KDE/Kwin\n  - GL Version     4.5 (Core profile, arb, compat[ES2, ES3, ES31], FBO, hardware) - 4.5.0 NVIDIA 355.06 [GL 4.5.0, vendor 355.6.0 (NVIDIA 355.06)]\n  - GL_RENDERER    GeForce GTX 660/PCIe/SSE2\n  - Samsung U28D590 (DFP-4): Internal DisplayPort\n\n+++","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/deff49c901915e007f43a1df1a0d217a786e9f06"},{"sha":"6ab634654f58afcf4549fcd1a796a0f9fd13298c","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1202 - Move GLContextImpl.*SwapInterval* into its own section","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/6ab634654f58afcf4549fcd1a796a0f9fd13298c"},{"sha":"60469c5a09a1e61094a9d0b41db033706e03874d","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203 (Related): Only attempt to retrieve getGLIntVersion(..) if required\n\ni.e. major >= 3 || hasGLVersionByString.compareTo(Version3_0) >= 0.\nOtherwise the 'VersionNumber hasGLVersionByInt' was never used -> reduce possible GL_ERRORs.","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/60469c5a09a1e61094a9d0b41db033706e03874d"},{"sha":"e8d66b1cd2b48899b7a012d54ba83d5c2a449b0a","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203: Properly format DEBUG output related to mapGLVersions: Use '-MapGLVersions' suffix.","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/e8d66b1cd2b48899b7a012d54ba83d5c2a449b0a"},{"sha":"e88216bd03a41480b81345ed9afc45ddea5ecfcd","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1200: Fix crash on GNU/Linux x86_64 'NVidia beta driver 355.06' @ probeSurfacelessCtx\n\nSince no known NVidia driver is know properly supporting surfaceless context,\ni.e. current context w/o drawable attached, we set quirk NoSurfacelessCtx\nfor all NVidia drivers until a 'good one' is known!","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/e88216bd03a41480b81345ed9afc45ddea5ecfcd"},{"sha":"618f6380b6eb6a96f8f1829c1dfb621a71209711","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203: SharedResourceRunner.Implementation impl. shall use AbstractGraphicsDevice's uniqueID instead of connection\n\nAbstractGraphicsDevice's uniqueID supports multiple device types and units while including the connection.\nThis is required for proper EGLDrawableFactory's profile probing on different native platform devices.\n\nUsing common abstract implementation 'AImplementation'\nfor WindowsWGL's, X11GLX's and EGL's DrawableFactory.","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/618f6380b6eb6a96f8f1829c1dfb621a71209711"},{"sha":"c835cdddfb37c5e8df424f984b821163b5645198","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203: Use platform native default display connection\n\nOn networking windowing systems (X11), we shall utilize the real\nnative default display connection.\n\nOn X11, this is X11Util.getNullDisplayName(),\nfor other non networking types, this is AbstractGraphicsDevice.DEFAULT_CONNECTION.","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/c835cdddfb37c5e8df424f984b821163b5645198"},{"sha":"390ccc3e549e4cc13b7dab91387e72c1f10b77a9","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203: GLDrawable-Stateless operations in GLContextImpl, using ctxVersion and ctxOptions\n\n- State-less operation during profile probing (mapGLVersions).\n  While probing the GLDrawable/GLProfile and GL instance\n  may not reflect the currently probed OpenGL profile.\n  Hence stateless operation by passing required information\n  is required for:\n  - GLDynamicLookupHelper must be fetched via\n    'major-version and contextOptions'.\n  - GLContextImpl.resetProcAddress(..)\n  - GLContextImpl.updateGLXProcAddressTable()\n  - GLContextImpl.setGLFunctionAvailability(..)\n  - ExtensionAvailabilityCache\n\nTODO: Add replacement for GLProfile validation,\nwhich is disabled right now.:\n  drawable.getGLProfile().verifyEquality(gl.getGLProfile())\n\nThe GLDrawable.GLProfile maybe less than GL's GLProfile\ndue to current context-version and options.\nHence we would need a 'GLProfile.bwCompatibleWith(GLProfile)'.","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/390ccc3e549e4cc13b7dab91387e72c1f10b77a9"},{"sha":"09b269423f11d0f867831b91d989a6bebbd87738","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203: Fix GLES3Impl.getGLES3(): Test _isES3 and throw GLException if not.","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/09b269423f11d0f867831b91d989a6bebbd87738"},{"sha":"45e58f4884108a300f08fd9af6aee82121376974","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203: EGLGraphicsDevice.nativeDisplayID: Differentiate upstream device's native handle via own ctor, reducing redundancy","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/45e58f4884108a300f08fd9af6aee82121376974"},{"sha":"50d4fd0210a417ba0fcbf73a90e50a86ef076cad","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203: Refine DEBUG output","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/50d4fd0210a417ba0fcbf73a90e50a86ef076cad"},{"sha":"b8ba30a0bc7cbd36abba37d72b45f78eb989e994","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203: Cleanup and Prepare for regular EGL Profile probing\n\n- GLContextImpl\n  - add 'MappedGLVersion' type, preserving information from GL profile mapping\n\n  - add 'MappedGLVersion mapAvailableGLVersion(..)'\n\n  - add 'setMappedGLVersionListener(final MappedGLVersionListener mvl)',\n    allowing implementations to register successfully mapped profiled.\n\n  - add 'void remapAvailableGLVersions(final AbstractGraphicsDevice fromDevice, final AbstractGraphicsDevice toDevice)',\n    allowing implementations to fully map one-devices profiles to another one\n    avoiding a redundant profile mapping (probe operation).\n\n  - 'mapGLVersions(..)'\n    - disable desktop-core profile mapping if GLProfile.disableOpenGLDesktop\n    - disable desktop-desktop profile mapping if GLProfile.disableOpenGLDesktop\n\n- EGLDrawableFactory\n  - remove jogl.debug.EGLDrawableFactory.QueryNativeTK,\n    since it shall not be used anymore.\n\n  - Use 'NativeWindowFactory.getDefaultDisplayConnection(..)'\n    for default EGLGraphicsDevcie\n\n  - add 'hasFullOpenGLAPISupport()'\n\n  - Use 'EGLSurface' return type if appropriate.","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/b8ba30a0bc7cbd36abba37d72b45f78eb989e994"},{"sha":"17af6ed1d0f60c111079ff19c4114fefbfd025fc","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1200: Refine fix for crash on GNU/Linux x86_64 'NVidia beta driver 355.06' @ probeSurfacelessCtx\n\nRefine commit e88216bd03a41480b81345ed9afc45ddea5ecfcd,\ni.e. restrict new 'NoSurfacelessCtx' NVidia-Vendor criteria in GLContextImpl.setRendererQuirks(..) to\n  - isX11 (new)\n  - isDriverNVIDIAGeForce (kept)\n  - !(adevice instanceof EGLGraphicsDevice) (new)\n\nSurfaceless context seems to work on NVidia 355.06 for EGL+[ES+GL].\nIt does not work for GLX+GL though!\n\nTODO: Validate changing a GLContext's GLDrawable from 'onscreen' or 'offscreen'\n      to 'zero' (Surfaceless).","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/17af6ed1d0f60c111079ff19c4114fefbfd025fc"},{"sha":"99a064327bf991318841c858d21d13e55d6b39db","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203: Implement regular EGL OpenGL Profile probing (ES* + GL*)\n\n- GLProfile\n  - Add 'hasGL234OnEGLImpl' handling, i.e. GL* profiles on EGL devices\n\n  - Properly handle EGL's 'GLDynamicLookupHelper' queries for ES2, ES1 and GL* profiles,\n    i.e. allow each one to fail seperately.\n\n  - Merge computed EGL-Profile-Map (1) and Desktop-Profile-Map (2)\n    per device, instead of just using the last computation,\n    preserving and favoratizing the Desktop-Profile-Map.\n\n- GLContextImpl.mapGLVersions(..): Map ES* profiles if having an EGLGraphicsDevice\n  and not disabled via GLProfile.disableOpenGLES.\n\n- EGLContext\n  - createContextARBImpl(..): Use the EGL_CONTEXT_MINOR_VERSION_KHR if supported\n\n  - GLContext* accessibility: Remove unused entries, add newly used ones\n\n- EGLDrawableFactory\n  - Fix a bug regarding detection of 'OpenGL' API for EGL\n\n  - SharedResource: Use detailed knowledge of each profile\n\n  - Only create one drawable and context for probing maximum,\n    utilizing 'GLContextImpl.MappedGLVersionListener'\n    to detect all mapped profiles for 'SharedResource' instance.\n\n  - Detect whether the probed/mapped device\n    can be mapped to the default-EGL-device, i.e.:\n      - current device is not the default-EGL-device\n      - default-EGL-device is valid and could be mapped (beforehand)\n      - same connection\n    In this case, no probing/mapping is performed\n    and the default-EGL-device mapped data being reused and remapped\n    to the requested device.\n\n  - When mapping/probing, attempt to use a surfaceless context first,\n    allowing same codepath for default-EGL-device and native-device (X11, ..).\n    This avoids using pbuffer if using default-EGL-device\n    and a dummy onscreen window if using a native-device (X11, ..).\n    If this fails, continue as usual ..\n      - default-EGL-device -> pbuffer\n      - native-device (X11, ..) -> dummy onscreen window","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/99a064327bf991318841c858d21d13e55d6b39db"},{"sha":"f18b25ca29897615611553a251e8d0ef0154b0e1","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"FloatUtil: Remove '@deprecated' for 'matrixToString' 'FloatBuffer' variant","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/f18b25ca29897615611553a251e8d0ef0154b0e1"},{"sha":"472d97e821520235eb006f3c135df2f629494326","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1203: EGLDrawableFactory.mapAvailableEGLESConfig(..): Add missing close on device (surfaceless); Remove one try-finally block","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/472d97e821520235eb006f3c135df2f629494326"},{"sha":"7140081033444abf95d2f8289eaa62ead41cf2e0","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"*AnimatorImpl: Catch concurrent pulling of GLAutoDrawable instances\n\nIt may happen that an GLAutoDrawable is being pulled concurrently from the\nanimators list, in which case an IndexOutOfBoundsException might be thrown.\n\nExample:\n    [junit] *** AWTRobotUtil: UncaughtException (this Thread main-AWTAnimator#00) : Thread <main-AWTAnimator#00>, java.lang.IndexOutOfBoundsException: Index: 1, Size: 1\n    [junit] java.lang.IndexOutOfBoundsException: Index: 1, Size: 1\n    [junit]     at java.util.ArrayList.rangeCheck(ArrayList.java:653)\n    [junit]     at java.util.ArrayList.get(ArrayList.java:429)\n    [junit]     at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:68)\n    [junit]     at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:451)\n    [junit]     at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:198)\n    [junit]     at java.lang.Thread.run(Thread.java:745)","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/7140081033444abf95d2f8289eaa62ead41cf2e0"},{"sha":"1652c153fdf973fd4292a13c3ddf1f805abf9239","author":{"email":"e6fb06210fafc02fd7479ddbed2d042cc3a5155e@io7m.com","name":"Mark Raynsford"},"message":"Fix JSpatial link","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/1652c153fdf973fd4292a13c3ddf1f805abf9239"},{"sha":"1d1b3f92a7c8021198e44bc4b2d6494ab789ddd3","author":{"email":"690faecc4674c16ce82ecea6483aa60f429b3a8f@jausoft.com","name":"Sven Gothel"},"message":"Bug 1202 (related): Fix SEMVER regressions mostly due to Bug 1202 commits (adding dummy methods)\n\nCommits deff49c901915e007f43a1df1a0d217a786e9f06 and 6ab634654f58afcf4549fcd1a796a0f9fd13298c\nchanged/removed a few protected methods of public classes ..\n\nRe-added dummy methods .. shall be removed for next 2.4.* version","distinct":false,"url":"https://api.github.com/repos/sgothel/jogl/commits/1d1b3f92a7c8021198e44bc4b2d6494ab789ddd3"}]}