{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":22305594,"defaultBranch":"master","name":"glutin","ownerLogin":"rust-windowing","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-07-27T07:13:16.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/49372933?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726072847.0","currentOid":""},"activityList":{"items":[{"before":"c6301f8b19ffae037cabf63ebaed6d70d2b6d32b","after":null,"ref":"refs/heads/glutin-0321","pushedAt":"2024-09-11T16:40:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"}},{"before":"0811b6c753334f1681c7db8a48e407596cfa9366","after":"76dac27b51a9f1619d1098bed777ece7cd2b8c73","ref":"refs/heads/0.32.x","pushedAt":"2024-09-11T16:36:54.000Z","pushType":"pr_merge","commitsCount":10,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"},"commit":{"message":"Glutin version 0.32.1","shortMessageHtmlLink":"Glutin version 0.32.1"}},{"before":"c44a2c7da99887e4b488e193d8e5feb1c544b3ad","after":"c6301f8b19ffae037cabf63ebaed6d70d2b6d32b","ref":"refs/heads/glutin-0321","pushedAt":"2024-09-11T16:29:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"},"commit":{"message":"Glutin version 0.32.1","shortMessageHtmlLink":"Glutin version 0.32.1"}},{"before":"9b7b53467c29dbf7b0c9cd0c0ebfb6d0be15a6be","after":null,"ref":"refs/heads/madsmtm/macos-nsview-setup","pushedAt":"2024-09-11T16:27:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"}},{"before":"f27377a88fe55426dc412c7dbce38a27e00812b5","after":"1b30cd76ee56bd2ec4cd56d0ac437052dc45fd13","ref":"refs/heads/master","pushedAt":"2024-09-11T16:22:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"},"commit":{"message":"cgl: set up `NSView` the way glutin requires it\n\nIn particular `wantsBestResolutionOpenGLSurface` and `wantsLayer`.\r\nThis is currently done by libraries, like winit, but it's really our job to do this.","shortMessageHtmlLink":"cgl: set up NSView the way glutin requires it"}},{"before":"fa3cb12f7189701ccb522c268048ca118705051b","after":"9b7b53467c29dbf7b0c9cd0c0ebfb6d0be15a6be","ref":"refs/heads/madsmtm/macos-nsview-setup","pushedAt":"2024-09-11T11:28:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"madsmtm","name":"Mads Marquart","path":"/madsmtm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10577181?s=80&v=4"},"commit":{"message":"Add changelog entry","shortMessageHtmlLink":"Add changelog entry"}},{"before":"f116b1af351cd8a444cd1f519b8707254198d32d","after":"fa3cb12f7189701ccb522c268048ca118705051b","ref":"refs/heads/madsmtm/macos-nsview-setup","pushedAt":"2024-09-11T10:26:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"madsmtm","name":"Mads Marquart","path":"/madsmtm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10577181?s=80&v=4"},"commit":{"message":"Fix features","shortMessageHtmlLink":"Fix features"}},{"before":null,"after":"f116b1af351cd8a444cd1f519b8707254198d32d","ref":"refs/heads/madsmtm/macos-nsview-setup","pushedAt":"2024-09-11T10:14:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"madsmtm","name":"Mads Marquart","path":"/madsmtm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10577181?s=80&v=4"},"commit":{"message":"Set up NSView the way Glutin requires it\n\nIn particular `wantsBestResolutionOpenGLSurface` and `wantsLayer`.\n\nThis is currently done by Winit, but it's really the job of Glutin to do\nthis, Winit shouldn't be concerned with OpenGL-specific details.","shortMessageHtmlLink":"Set up NSView the way Glutin requires it"}},{"before":"f116b1af351cd8a444cd1f519b8707254198d32d","after":null,"ref":"refs/heads/macos-nsview-setup","pushedAt":"2024-09-11T10:14:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"madsmtm","name":"Mads Marquart","path":"/madsmtm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10577181?s=80&v=4"}},{"before":null,"after":"f116b1af351cd8a444cd1f519b8707254198d32d","ref":"refs/heads/macos-nsview-setup","pushedAt":"2024-09-11T10:14:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"madsmtm","name":"Mads Marquart","path":"/madsmtm","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10577181?s=80&v=4"},"commit":{"message":"Set up NSView the way Glutin requires it\n\nIn particular `wantsBestResolutionOpenGLSurface` and `wantsLayer`.\n\nThis is currently done by Winit, but it's really the job of Glutin to do\nthis, Winit shouldn't be concerned with OpenGL-specific details.","shortMessageHtmlLink":"Set up NSView the way Glutin requires it"}},{"before":null,"after":"c44a2c7da99887e4b488e193d8e5feb1c544b3ad","ref":"refs/heads/glutin-0321","pushedAt":"2024-09-10T15:58:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"},"commit":{"message":"Glutin version 0.32.1","shortMessageHtmlLink":"Glutin version 0.32.1"}},{"before":"eb08a284316f3c1524b7b7b6bd371d4159caf2b1","after":null,"ref":"refs/heads/device-drm","pushedAt":"2024-09-10T15:27:10.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"}},{"before":"dae89a5a9145853220385e0d5036319689afa13c","after":"f27377a88fe55426dc412c7dbce38a27e00812b5","ref":"refs/heads/master","pushedAt":"2024-09-10T15:26:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"},"commit":{"message":"egl: implement interfaces for `EGL_EXT_device_drm` \n\nThis extension (together with the optional\r\n`EGL_EXT_device_drm_render_node` extension) allows querying the DRM\r\nprimary and render device node filenames from `EGLDevice`, to help\r\nassociating them with DRM devices.\r\n\r\nAdditionally a platform display _can_ be created with a DRM file\r\ndescriptor with master permissions, but this is only useful in\r\nsituations where EGL might fail to open a file descriptor itself or will\r\nfail to acquire master permissions (which are only required when the\r\nimplementation needs to \"modify output attributes\": but no behaviour is\r\ndefined by this extension that requires this).\r\n\r\nThis file descriptor will be duplicated by the implementation if it\r\nneeds to use it beyond the call to `eglGetPlatformDisplayEXT()`, and\r\ndoes not need to be kept alive by the caller.\r\n\r\nNote that `EGL_EXT_output_drm` is omitted for now, because it relies on\r\nthe equally unimplemented `EGL_EXT_output_base` extension.","shortMessageHtmlLink":"egl: implement interfaces for EGL_EXT_device_drm"}},{"before":"e095242dff5c4fbe181db4c221e77a97d9545a4a","after":"eb08a284316f3c1524b7b7b6bd371d4159caf2b1","ref":"refs/heads/device-drm","pushedAt":"2024-09-10T15:19:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"},"commit":{"message":"EGL: Implement interfaces for `EGL_EXT_device_drm`\n\nThis extension (together with the optional\n`EGL_EXT_device_drm_render_node` extension) allows querying the DRM\nprimary and render device node filenames from `EGLDevice`, to help\nassociating them with DRM devices.\n\nAdditionally a platform display _can_ be created with a DRM file\ndescriptor with master permissions, but this is only useful in\nsituations where EGL might fail to open a file descriptor itself or will\nfail to acquire master permissions (which are only required when the\nimplementation needs to \"modify output attributes\": but no behaviour is\ndefined by this extension that requires this).\n\nThis file descriptor will be duplicated by the implementation if it\nneeds to use it beyond the call to `eglGetPlatformDisplayEXT()`, and\ndoes not need to be kept alive by the caller.\n\nNote that `EGL_EXT_output_drm` is omitted for now, because it relies on\nthe equally unimplemented `EGL_EXT_output_base` extension.","shortMessageHtmlLink":"EGL: Implement interfaces for EGL_EXT_device_drm"}},{"before":"6eded55ce4c15802e310a65e6cea244cb53ddd0e","after":"dae89a5a9145853220385e0d5036319689afa13c","ref":"refs/heads/master","pushedAt":"2024-09-10T14:51:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"},"commit":{"message":"egl/display: ensure provider after version check\n\nEGL doesn't differentiate between objects created by different extensions,\r\nand the display version check could be done, after we've created it, so\r\nensure what display we actually created and use its functions.","shortMessageHtmlLink":"egl/display: ensure provider after version check"}},{"before":"db350345b7bbe32ab3742099d4fe5c952a7bb500","after":"e095242dff5c4fbe181db4c221e77a97d9545a4a","ref":"refs/heads/device-drm","pushedAt":"2024-09-07T18:30:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"EGL: Implement interfaces for `EGL_EXT_device_drm`\n\nThis extension (together with the optional\n`EGL_EXT_device_drm_render_node` extension) allows querying the DRM\nprimary and render device node filenames from `EGLDevice`, to help\nassociating them with DRM devices.\n\nAdditionally a platform display _can_ be created with a DRM file\ndescriptor with master permissions, but this is only useful in\nsituations where EGL might fail to open a file descriptor itself or will\nfail to acquire master permissions (which are only required when the\nimplementation needs to \"modify output attributes\": but no behaviour is\ndefined by this extension that requires this).\n\nThis file descriptor will be duplicated by the implementation if it\nneeds to use it beyond the call to `eglGetPlatformDisplayEXT()`, and\ndoes not need to be kept alive by the caller.\n\nNote that `EGL_EXT_output_drm` is omitted for now, because it relies on\nthe equally unimplemented `EGL_EXT_output_base` extension (neither of\nwhich are available on my hardware for testing).","shortMessageHtmlLink":"EGL: Implement interfaces for EGL_EXT_device_drm"}},{"before":"497bd8d4142c84347489a44a1b1d259f4d7bd462","after":"db350345b7bbe32ab3742099d4fe5c952a7bb500","ref":"refs/heads/device-drm","pushedAt":"2024-09-07T18:19:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"EGL: Implement interfaces for `EGL_EXT_device_drm`\n\nThis extension (together with the optional\n`EGL_EXT_device_drm_render_node` extension) allows querying the DRM\nprimary and render device node filenames from `EGLDevice`, to help\nassociating them with DRM devices.\n\nAdditionally a platform display _can_ be created with a DRM file\ndescriptor with master permissions, but this is only useful in\nsituations where EGL might fail to open a file descriptor itself or will\nfail to acquire master permissions (which are only required when the\nimplementation needs to \"modify output attributes\": but no behaviour is\ndefined by this extension that requires this).\n\nThis file descriptor will be duplicated by the implementation if it\nneeds to use it beyond the call to `eglGetPlatformDisplayEXT()`, and\ndoes not need to be kept alive by the caller.\n\nNote that `EGL_EXT_output_drm` is omitted for now, because it relies on\nthe equally unimplemented `EGL_EXT_output_base` extension (neither of\nwhich are available on my hardware for testing).","shortMessageHtmlLink":"EGL: Implement interfaces for EGL_EXT_device_drm"}},{"before":"56b6d2c9dd0566c2107153f8588aa14a58e0bb50","after":"497bd8d4142c84347489a44a1b1d259f4d7bd462","ref":"refs/heads/device-drm","pushedAt":"2024-09-05T22:36:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"EGL: Implement interfaces for `EGL_EXT_device_drm`\n\nThis extension (together with the optional\n`EGL_EXT_device_drm_render_node` extension) allows querying the DRM\nprimary and render device node filenames from `EGLDevice`, to help\nassociating them with DRM devices.\n\nAdditionally a platform display _can_ be created with a DRM file\ndescriptor with master permissions, but this is only useful in\nsituations where EGL might fail to open a file descriptor itself or will\nfail to acquire master permissions (which are only required when the\nimplementation needs to \"modify output attributes\": but no behaviour is\ndefined by this extension that requires this).\n\nThis file descriptor will be duplicated by the implementation if it\nneeds to use it beyond the call to `eglGetPlatformDisplayEXT()`, and\ndoes not need to be kept alive by the caller.\n\nNote that `EGL_EXT_output_drm` is omitted for now, because it relies on\nthe equally unimplemented `EGL_EXT_output_base` extension (neither of\nwhich are available on my hardware for testing).","shortMessageHtmlLink":"EGL: Implement interfaces for EGL_EXT_device_drm"}},{"before":"9cd6d4ccc833ec4991e0cb886d82bb1be0507e51","after":"56b6d2c9dd0566c2107153f8588aa14a58e0bb50","ref":"refs/heads/device-drm","pushedAt":"2024-09-05T22:25:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"EGL: Implement interfaces for `EGL_EXT_device_drm`\n\nThis extension (together with the optional\n`EGL_EXT_device_drm_render_node` extension) allows querying the DRM\nprimary and render device node filenames from `EGLDevice`, to help\nassociating them with DRM devices.\n\nAdditionally a platform display _can_ be created with a DRM file\ndescriptor with master permissions, but this is only useful in\nsituations where EGL might fail to open a file descriptor itself or will\nfail to acquire master permissions (which are only required when the\nimplementation needs to \"modify output attributes\": but no behaviour is\ndefined by this extension that requires this).\n\nThis file descriptor will be duplicated by the implementation if it\nneeds to use it beyond the call to `eglGetPlatformDisplayEXT()`, and\ndoes not need to be kept alive by the caller.\n\nNote that `EGL_EXT_output_drm` is omitted for now, because it relies on\nthe equally unimplemented `EGL_EXT_output_base` extension (neither of\nwhich are available on my hardware for testing).","shortMessageHtmlLink":"EGL: Implement interfaces for EGL_EXT_device_drm"}},{"before":"e935d38fd952588490a8c0f658cdf8564cc56bf6","after":null,"ref":"refs/heads/kchibisov/update-example","pushedAt":"2024-09-05T11:48:56.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"}},{"before":"8ee26006f54be3521e569a8f05b90180024f4b74","after":"6eded55ce4c15802e310a65e6cea244cb53ddd0e","ref":"refs/heads/master","pushedAt":"2024-09-05T11:48:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"},"commit":{"message":"examples: clean up examples to not recreate display\n\nIt was incorrectly ported that the display was recreated, though, given\r\nthat passing the same arguments to it will yield the same results it was\r\nstill working as expected.","shortMessageHtmlLink":"examples: clean up examples to not recreate display"}},{"before":"326fd4f789691af1f60da9c2ff21b9740a30374e","after":null,"ref":"refs/heads/egl-display-ptr","pushedAt":"2024-09-05T11:45:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"}},{"before":"39015596f40e952108e027ebed60eb0f16d3d650","after":"e935d38fd952588490a8c0f658cdf8564cc56bf6","ref":"refs/heads/kchibisov/update-example","pushedAt":"2024-09-05T11:44:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"},"commit":{"message":"examples: clean up examples to not recreate display\n\nIt was incorrectly ported that the display was recreated, though, given\nthat passing the same arguments to it will yield the same results it was\nstill working as expected.","shortMessageHtmlLink":"examples: clean up examples to not recreate display"}},{"before":"7ec3bb91b72ba249dff6077c1816bb2b4b626ca9","after":"8ee26006f54be3521e569a8f05b90180024f4b74","ref":"refs/heads/master","pushedAt":"2024-09-05T11:41:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kchibisov","name":"Kirill Chibisov","path":"/kchibisov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27620401?s=80&v=4"},"commit":{"message":"egl/display: Pass *pointer to* output variable when querying `DEVICE_EXT`\n\nBy casting a `null_mut()` ptr and passing it directly _by value_ to\r\n`QueryDisplayAttribEXT()`, the function ignores writing the output as\r\nit didn't receive an address (it received `NULL`) to write the device\r\nto. Instead we should take the _pointer address of this `null_mut()`\r\npointer_ and provide that to the function instead so that it can\r\n_overwrite_ it with a pointer to the requested `eglDevice`.\r\n\r\nThis is even more clear when allocating a `MaybeUninit` in which the\r\npointer will be returned, which has a convenient `.as_mut_ptr()` member\r\nto pass its pointer value directly into `QueryDisplayAttribEXT()`.","shortMessageHtmlLink":"egl/display: Pass *pointer to* output variable when querying `DEVICE_…"}},{"before":"96fc48d4d02589a4a9162fcce014534469826975","after":"326fd4f789691af1f60da9c2ff21b9740a30374e","ref":"refs/heads/egl-display-ptr","pushedAt":"2024-09-05T09:40:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"egl/display: Pass *pointer to* output variable when querying `DEVICE_EXT`\n\nBy casting a `null_mut()` ptr and passing it directly _by value_ to\n`QueryDisplayAttribEXT()`, the function ignores writing the output as\nit didn't receive an address (it received `NULL`) to write the device\nto. Instead we should take the _pointer address of this `null_mut()`\npointer_ and provide that to the function instead so that it can\n_overwrite_ it with a pointer to the requested `eglDevice`.\n\nThis is even more clear when allocating a `MaybeUninit` in which the\npointer will be returned, which has a convenient `.as_mut_ptr()` member\nto pass its pointer value directly into `QueryDisplayAttribEXT()`.","shortMessageHtmlLink":"egl/display: Pass *pointer to* output variable when querying `DEVICE_…"}},{"before":"83618d79ab79d855a94c89ea5d25159cf41e26e9","after":"96fc48d4d02589a4a9162fcce014534469826975","ref":"refs/heads/egl-display-ptr","pushedAt":"2024-09-05T09:36:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"egl/display: Pass *pointer to* output variable when querying `DEVICE_EXT`\n\nBy casting a `null_mut()` ptr and passing it directly _by value_ to\n`QueryDisplayAttribEXT()`, the function ignores writing the output as\nit didn't receive an address (it received `NULL`) to write the device\nto. Instead we should take the _pointer address of this `null_mut()`\npointer_ and provide that to the function instead so that it can\n_overwrite_ it with a pointer to the requested `eglDevice`.\n\nThis is even more clear when allocating a `MaybeUninit` in which the\npointer will be returned, which has a convenient `.as_mut_ptr()` member\nto pass its pointer value directly into `QueryDisplayAttribEXT()`.","shortMessageHtmlLink":"egl/display: Pass *pointer to* output variable when querying `DEVICE_…"}},{"before":"a767995ec3de412fd59a797ae021566544ba3756","after":"83618d79ab79d855a94c89ea5d25159cf41e26e9","ref":"refs/heads/egl-display-ptr","pushedAt":"2024-09-05T09:36:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"egl/display: Pass *pointer to* output variable when querying `DEVICE_EXT`\n\nBy casting a `null_mut()` ptr and passing it directly _by value_ to\n`QueryDisplayAttribEXT()`, the function ignores writing the output as\nit didn't receive an address (it received `NULL`) to write the device\nto. Instead we should take the _pointer address of this `null_mut()`\npointer_ and provide that to the function instead so that it can\n_overwrite_ it with a pointer to the requested `eglDevice`.\n\nThis is even more clear when allocating a `MaybeUninit` in which the\npointer will be returned, which has a convenient `.as_mut_ptr()` member\nto pass its pointer value directly into `QueryDisplayAttribEXT()`.","shortMessageHtmlLink":"egl/display: Pass *pointer to* output variable when querying `DEVICE_…"}},{"before":"4315fae265a8faeb95fa91144e82ad326a043fb8","after":"a767995ec3de412fd59a797ae021566544ba3756","ref":"refs/heads/egl-display-ptr","pushedAt":"2024-09-05T09:35:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"egl/display: Pass *pointer to* output variable when querying `DEVICE_EXT`\n\nBy casting a `null_mut()` ptr and passing it directly _by value_ to\n`QueryDisplayAttribEXT()`, the function ignores writing the output as\nit didn't receive an address (it received `NULL`) to write the device\nto. Instead we should take the _pointer address of this `null_mut()`\npointer_ and provide that to the function instead so that it can\n_overwrite_ it with a pointer to the requested `eglDevice`.\n\nThis is even more clear when allocating a `MaybeUninit` in which the\npointer will be returned, which has a convenient `.as_mut_ptr()` member\nto pass its pointer value directly into `QueryDisplayAttribEXT()`.","shortMessageHtmlLink":"egl/display: Pass *pointer to* output variable when querying `DEVICE_…"}},{"before":"d71531010b034b497479dc807b06cb836a7c9cbc","after":"4315fae265a8faeb95fa91144e82ad326a043fb8","ref":"refs/heads/egl-display-ptr","pushedAt":"2024-09-05T08:13:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"egl/display: Pass *pointer to* output variable when querying `DEVICE_EXT`\n\nBy casting a `null_mut()` ptr and passing it directly _by value_ to\n`QueryDisplayAttribEXT()`, the function ignores writing the output as\nit didn't receive an address (it received `NULL`) to write the device\nto. Instead we should take the _pointer address of this `null_mut()`\npointer_ and provide that to the function instead so that it can\n_overwrite_ it with a pointer to the requested `eglDevice`.\n\nThis is even more clear when allocating a `MaybeUninit` in which the\npointer will be returned, which has a convenient `.as_mut_ptr()` member\nto pass its pointer value directly into `QueryDisplayAttribEXT()`.","shortMessageHtmlLink":"egl/display: Pass *pointer to* output variable when querying `DEVICE_…"}},{"before":null,"after":"d71531010b034b497479dc807b06cb836a7c9cbc","ref":"refs/heads/egl-display-ptr","pushedAt":"2024-09-05T08:04:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"MarijnS95","name":"Marijn Suijten","path":"/MarijnS95","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2325264?s=80&v=4"},"commit":{"message":"egl/display: Pass *pointer to* output variable when querying `DEVICE_EXT`\n\nBy casting a `null_mut()` ptr and passing it directly _by value_ to\n`QueryDisplayAttribEXT()`, the function ignores writing the output as\nit didn't receive an address (it received `NULL`) to write the device\nto. Instead we should take the _pointer address of this `null_mut()`\npointer_ and provide that to the function instead so that it can\n_overwrite_ it with a pointer to the requested `eglDevice`.","shortMessageHtmlLink":"egl/display: Pass *pointer to* output variable when querying `DEVICE_…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEs3KGsAA","startCursor":null,"endCursor":null}},"title":"Activity · rust-windowing/glutin"}