RFC: patch to support fullscreen shell wayland compositors
Nathaniel Lewis <[email protected]> Wed, 19 Apr 2017 18:02:35 -0700
| Newsgroups | gmane.comp.lib.sdl |
|---|---|
| Message-ID | <CAJ9A-KZ6ECquPR+Euz71PD4ecBqau3Yq5t03WO+LrF6PhC0JZw@mail.gmail.com> |
--001a114bec4656bc73054d8eb208 Content-Type: multipart/alternative; boundary=001a114bec4656bc6b054d8eb206 --001a114bec4656bc6b054d8eb206 Content-Type: text/plain; charset=UTF-8 Hello all, I created a patch for SDL2 to allow SDL applications to run inside a fullscreen shell wayland compositor. Basically, the goal of fullscreen shell is to nest another wayland compositor underneath it (for providing things like fast shell switching), but another use is for single applications having complete control over the screen without needing to implement all the DRM logic. I made a post on the bugzilla with the patch ( https://bugzilla.libsdl.org/show_bug.cgi?id=3630) and a description of what it does, but I've seen other patches get posted to the mailing list so I figured I'd send it here too. - Nathan --001a114bec4656bc6b054d8eb206 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Hello all,<div><br></div><div>I created a patch for SDL2 t= o allow SDL applications to run inside a fullscreen shell wayland composito= r.=C2=A0 Basically, the goal of fullscreen shell is to nest another wayland= compositor underneath it (for providing things like fast shell switching),= but another use is for single applications having complete control over th= e screen without needing to implement all the DRM logic.</div><div><br></di= v><div>I made a post on the bugzilla with the patch (<a href=3D"https://bug= zilla.libsdl.org/show_bug.cgi?id=3D3630">https://bugzilla.libsdl.org/show_b= ug.cgi?id=3D3630</a>) and a description of what it does, but I've seen = other patches get posted to the mailing list so I figured I'd send it h= ere too.</div><div><br></div><div>- Nathan</div><div><br></div></div> --001a114bec4656bc6b054d8eb206-- --001a114bec4656bc73054d8eb208 Content-Type: text/x-patch; charset=US-ASCII; name="0001-add-support-for-wayland-fullscreen-shell.patch" Content-Disposition: attachment; filename="0001-add-support-for-wayland-fullscreen-shell.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j1ppcqgy0 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIE5hdGhhbmllbCBSLiBMZXdpcyA8bmxld2lzQGdh aWthaS5jb20+CiMgRGF0ZSAxNDkyMjExNzg1IDI1MjAwCiMgICAgICBGcmkgQXByIDE0IDE2OjE2 OjI1IDIwMTcgLTA3MDAKIyBOb2RlIElEIDE4Y2VkMDRhODY1ZjJhOTNkNzk2ZmQxODI3YmUxYTA5 NTExNzMwNzEKIyBQYXJlbnQgIGIxNDEyMTFjNWQwYTJkMzExMGMxYWFlMmMyOTVlYzg4NzQzOGEw MDkKd2F5bGFuZDogQWRkZWQgc3VwcG9ydCBmb3IgZnVsbHNjcmVlbiBzaGVsbCBjb21wb3NpdG9y cwoKZGlmZiAtciBiMTQxMjExYzVkMGEgLXIgMThjZWQwNGE4NjVmIGNtYWtlL3NkbGNoZWNrcy5j bWFrZQotLS0gYS9jbWFrZS9zZGxjaGVja3MuY21ha2UJVGh1IEFwciAxMyAxMzoyODo1MiAyMDE3 IC0wNDAwCisrKyBiL2NtYWtlL3NkbGNoZWNrcy5jbWFrZQlGcmkgQXByIDE0IDE2OjE2OjI1IDIw MTcgLTA3MDAKQEAgLTY1NSw3ICs2NTUsNyBAQAogCiAgICAgICBXYXlsYW5kUHJvdG9jb2xHZW4o IiR7V0FZTEFORF9TQ0FOTkVSfSIgIiR7V0FZTEFORF9DT1JFX1BST1RPQ09MX0RJUn0vd2F5bGFu ZC54bWwiICJ3YXlsYW5kIikKIAotICAgICAgZm9yZWFjaChfUFJPVEwgcmVsYXRpdmUtcG9pbnRl ci11bnN0YWJsZS12MSBwb2ludGVyLWNvbnN0cmFpbnRzLXVuc3RhYmxlLXYxKQorICAgICAgZm9y ZWFjaChfUFJPVEwgcmVsYXRpdmUtcG9pbnRlci11bnN0YWJsZS12MSBwb2ludGVyLWNvbnN0cmFp bnRzLXVuc3RhYmxlLXYxIGZ1bGxzY3JlZW4tc2hlbGwtdW5zdGFibGUtdjEpCiAgICAgICAgIHN0 cmluZyhSRUdFWCBSRVBMQUNFICJcXC11bnN0YWJsZVxcLS4qJCIgIiIgUFJPVFNVQkRJUiAke19Q Uk9UTH0pCiAgICAgICAgIFdheWxhbmRQcm90b2NvbEdlbigiJHtXQVlMQU5EX1NDQU5ORVJ9IiAi JHtXQVlMQU5EX1BST1RPQ09MU19ESVJ9L3Vuc3RhYmxlLyR7UFJPVFNVQkRJUn0vJHtfUFJPVEx9 LnhtbCIgIiR7X1BST1RMfSIpCiAgICAgICBlbmRmb3JlYWNoKCkKZGlmZiAtciBiMTQxMjExYzVk MGEgLXIgMThjZWQwNGE4NjVmIGNvbmZpZ3VyZQotLS0gYS9jb25maWd1cmUJVGh1IEFwciAxMyAx MzoyODo1MiAyMDE3IC0wNDAwCisrKyBiL2NvbmZpZ3VyZQlGcmkgQXByIDE0IDE2OjE2OjI1IDIw MTcgLTA3MDAKQEAgLTE5MDY0LDcgKzE5MDY0LDcgQEAKIAogICAgICAgICAgICAgZmkKIAotICAg ICAgICAgICAgV0FZTEFORF9QUk9UT0NPTFNfVU5TVEFCTEU9InJlbGF0aXZlLXBvaW50ZXItdW5z dGFibGUtdjEgcG9pbnRlci1jb25zdHJhaW50cy11bnN0YWJsZS12MSIKKyAgICAgICAgICAgIFdB WUxBTkRfUFJPVE9DT0xTX1VOU1RBQkxFPSJyZWxhdGl2ZS1wb2ludGVyLXVuc3RhYmxlLXYxIHBv aW50ZXItY29uc3RyYWludHMtdW5zdGFibGUtdjEgZnVsbHNjcmVlbi1zaGVsbC11bnN0YWJsZS12 MSIKIAogICAgICAgICAgICAgU09VUkNFUz0iJFNPVVJDRVMgJHNyY2Rpci9zcmMvdmlkZW8vd2F5 bGFuZC8qLmMiCiAgICAgICAgICAgICBFWFRSQV9DRkxBR1M9IiRFWFRSQV9DRkxBR1MgJFdBWUxB TkRfQ0ZMQUdTIC1JXCQoZ2VuKSIKZGlmZiAtciBiMTQxMjExYzVkMGEgLXIgMThjZWQwNGE4NjVm IGNvbmZpZ3VyZS5pbgotLS0gYS9jb25maWd1cmUuaW4JVGh1IEFwciAxMyAxMzoyODo1MiAyMDE3 IC0wNDAwCisrKyBiL2NvbmZpZ3VyZS5pbglGcmkgQXByIDE0IDE2OjE2OjI1IDIwMTcgLTA3MDAK QEAgLTEzNDEsNyArMTM0MSw3IEBACiAgICAgICAgICAgICAgICAgQUNfREVGSU5FKFNETF9WSURF T19EUklWRVJfV0FZTEFORF9RVF9UT1VDSCwgMSwgWyBdKQogICAgICAgICAgICAgZmkKIAotICAg ICAgICAgICAgV0FZTEFORF9QUk9UT0NPTFNfVU5TVEFCTEU9InJlbGF0aXZlLXBvaW50ZXItdW5z dGFibGUtdjEgcG9pbnRlci1jb25zdHJhaW50cy11bnN0YWJsZS12MSIKKyAgICAgICAgICAgIFdB WUxBTkRfUFJPVE9DT0xTX1VOU1RBQkxFPSJyZWxhdGl2ZS1wb2ludGVyLXVuc3RhYmxlLXYxIHBv aW50ZXItY29uc3RyYWludHMtdW5zdGFibGUtdjEgZnVsbHNjcmVlbi1zaGVsbC11bnN0YWJsZS12 MSIKIAogICAgICAgICAgICAgU09VUkNFUz0iJFNPVVJDRVMgJHNyY2Rpci9zcmMvdmlkZW8vd2F5 bGFuZC8qLmMiCiAgICAgICAgICAgICBFWFRSQV9DRkxBR1M9IiRFWFRSQV9DRkxBR1MgJFdBWUxB TkRfQ0ZMQUdTIC1JXCQoZ2VuKSIKZGlmZiAtciBiMTQxMjExYzVkMGEgLXIgMThjZWQwNGE4NjVm IHNyYy92aWRlby93YXlsYW5kL1NETF93YXlsYW5kZXZlbnRzLmMKLS0tIGEvc3JjL3ZpZGVvL3dh eWxhbmQvU0RMX3dheWxhbmRldmVudHMuYwlUaHUgQXByIDEzIDEzOjI4OjUyIDIwMTcgLTA0MDAK KysrIGIvc3JjL3ZpZGVvL3dheWxhbmQvU0RMX3dheWxhbmRldmVudHMuYwlGcmkgQXByIDE0IDE2 OjE2OjI1IDIwMTcgLTA3MDAKQEAgLTE1Nyw3ICsxNTcsOSBAQAogICAgICAgICB9OwogICAgICAg ICBzd2l0Y2ggKHJjKSB7CiAgICAgICAgICAgICBjYXNlIFNETF9ISVRURVNUX0RSQUdHQUJMRToK LSAgICAgICAgICAgICAgICB3bF9zaGVsbF9zdXJmYWNlX21vdmUod2luZG93X2RhdGEtPnNoZWxs X3N1cmZhY2UsIGlucHV0LT5zZWF0LCBzZXJpYWwpOworICAgICAgICAgICAgICAgIGlmIChpbnB1 dC0+ZGlzcGxheS0+c2hlbGwpIHsKKyAgICAgICAgICAgICAgICAgICAgd2xfc2hlbGxfc3VyZmFj ZV9tb3ZlKHdpbmRvd19kYXRhLT5zaGVsbF9zdXJmYWNlLCBpbnB1dC0+c2VhdCwgc2VyaWFsKTsK KyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmV0dXJuIFNETF9UUlVFOwogCiAg ICAgICAgICAgICBjYXNlIFNETF9ISVRURVNUX1JFU0laRV9UT1BMRUZUOgpAQCAtMTY4LDcgKzE3 MCw5IEBACiAgICAgICAgICAgICBjYXNlIFNETF9ISVRURVNUX1JFU0laRV9CT1RUT006CiAgICAg ICAgICAgICBjYXNlIFNETF9ISVRURVNUX1JFU0laRV9CT1RUT01MRUZUOgogICAgICAgICAgICAg Y2FzZSBTRExfSElUVEVTVF9SRVNJWkVfTEVGVDoKLSAgICAgICAgICAgICAgICB3bF9zaGVsbF9z dXJmYWNlX3Jlc2l6ZSh3aW5kb3dfZGF0YS0+c2hlbGxfc3VyZmFjZSwgaW5wdXQtPnNlYXQsIHNl cmlhbCwgZGlyZWN0aW9uc1tyYyAtIFNETF9ISVRURVNUX1JFU0laRV9UT1BMRUZUXSk7CisgICAg ICAgICAgICAgICAgaWYgKGlucHV0LT5kaXNwbGF5LT5zaGVsbCkgeworICAgICAgICAgICAgICAg ICAgICB3bF9zaGVsbF9zdXJmYWNlX3Jlc2l6ZSh3aW5kb3dfZGF0YS0+c2hlbGxfc3VyZmFjZSwg aW5wdXQtPnNlYXQsIHNlcmlhbCwgZGlyZWN0aW9uc1tyYyAtIFNETF9ISVRURVNUX1JFU0laRV9U T1BMRUZUXSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybiBTRExf VFJVRTsKIAogICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIFNETF9GQUxTRTsKZGlmZiAtciBi MTQxMjExYzVkMGEgLXIgMThjZWQwNGE4NjVmIHNyYy92aWRlby93YXlsYW5kL1NETF93YXlsYW5k dmlkZW8uYwotLS0gYS9zcmMvdmlkZW8vd2F5bGFuZC9TRExfd2F5bGFuZHZpZGVvLmMJVGh1IEFw ciAxMyAxMzoyODo1MiAyMDE3IC0wNDAwCisrKyBiL3NyYy92aWRlby93YXlsYW5kL1NETF93YXls YW5kdmlkZW8uYwlGcmkgQXByIDE0IDE2OjE2OjI1IDIwMTcgLTA3MDAKQEAgLTQzLDYgKzQzLDcg QEAKIAogI2luY2x1ZGUgIlNETF93YXlsYW5kZHluLmgiCiAjaW5jbHVkZSA8d2F5bGFuZC11dGls Lmg+CisjaW5jbHVkZSAiZnVsbHNjcmVlbi1zaGVsbC11bnN0YWJsZS12MS1jbGllbnQtcHJvdG9j b2wuaCIKIAogI2RlZmluZSBXQVlMQU5EVklEX0RSSVZFUl9OQU1FICJ3YXlsYW5kIgogCkBAIC0z MTksNiArMzIwLDggQEAKICAgICAgICAgV2F5bGFuZF9kaXNwbGF5X2FkZF9yZWxhdGl2ZV9wb2lu dGVyX21hbmFnZXIoZCwgaWQpOwogICAgIH0gZWxzZSBpZiAoc3RyY21wKGludGVyZmFjZSwgInp3 cF9wb2ludGVyX2NvbnN0cmFpbnRzX3YxIikgPT0gMCkgewogICAgICAgICBXYXlsYW5kX2Rpc3Bs YXlfYWRkX3BvaW50ZXJfY29uc3RyYWludHMoZCwgaWQpOworICAgIH0gZWxzZSBpZiAoc3RyY21w KGludGVyZmFjZSwgInp3cF9mdWxsc2NyZWVuX3NoZWxsX3YxIikgPT0gMCkgeworICAgICAgICBk LT5mdWxsc2NyZWVuX3NoZWxsID0gd2xfcmVnaXN0cnlfYmluZChkLT5yZWdpc3RyeSwgaWQsICZ6 d3BfZnVsbHNjcmVlbl9zaGVsbF92MV9pbnRlcmZhY2UsIDEpOwogICAgIH0gZWxzZSBpZiAoc3Ry Y21wKGludGVyZmFjZSwgIndsX2RhdGFfZGV2aWNlX21hbmFnZXIiKSA9PSAwKSB7CiAgICAgICAg IGQtPmRhdGFfZGV2aWNlX21hbmFnZXIgPSB3bF9yZWdpc3RyeV9iaW5kKGQtPnJlZ2lzdHJ5LCBp ZCwgJndsX2RhdGFfZGV2aWNlX21hbmFnZXJfaW50ZXJmYWNlLCAzKTsKICNpZmRlZiBTRExfVklE RU9fRFJJVkVSX1dBWUxBTkRfUVRfVE9VQ0gKQEAgLTQyNyw2ICs0MzAsOSBAQAogICAgIFdheWxh bmRfdG91Y2hfZGVzdHJveShkYXRhKTsKICNlbmRpZiAvKiBTRExfVklERU9fRFJJVkVSX1dBWUxB TkRfUVRfVE9VQ0ggKi8KIAorICAgIGlmIChkYXRhLT5mdWxsc2NyZWVuX3NoZWxsKQorICAgICAg ICB6d3BfZnVsbHNjcmVlbl9zaGVsbF92MV9kZXN0cm95KGRhdGEtPmZ1bGxzY3JlZW5fc2hlbGwp OworCiAgICAgaWYgKGRhdGEtPnNobSkKICAgICAgICAgd2xfc2htX2Rlc3Ryb3koZGF0YS0+c2ht KTsKIApkaWZmIC1yIGIxNDEyMTFjNWQwYSAtciAxOGNlZDA0YTg2NWYgc3JjL3ZpZGVvL3dheWxh bmQvU0RMX3dheWxhbmR2aWRlby5oCi0tLSBhL3NyYy92aWRlby93YXlsYW5kL1NETF93YXlsYW5k dmlkZW8uaAlUaHUgQXByIDEzIDEzOjI4OjUyIDIwMTcgLTA0MDAKKysrIGIvc3JjL3ZpZGVvL3dh eWxhbmQvU0RMX3dheWxhbmR2aWRlby5oCUZyaSBBcHIgMTQgMTY6MTY6MjUgMjAxNyAtMDcwMApA QCAtNDQsNiArNDQsNyBAQAogICAgIHN0cnVjdCB3bF9jdXJzb3JfdGhlbWUgKmN1cnNvcl90aGVt ZTsKICAgICBzdHJ1Y3Qgd2xfcG9pbnRlciAqcG9pbnRlcjsKICAgICBzdHJ1Y3Qgd2xfc2hlbGwg KnNoZWxsOworICAgIHN0cnVjdCB6d3BfZnVsbHNjcmVlbl9zaGVsbF92MSAqZnVsbHNjcmVlbl9z aGVsbDsKICAgICBzdHJ1Y3QgendwX3JlbGF0aXZlX3BvaW50ZXJfbWFuYWdlcl92MSAqcmVsYXRp dmVfcG9pbnRlcl9tYW5hZ2VyOwogICAgIHN0cnVjdCB6d3BfcG9pbnRlcl9jb25zdHJhaW50c192 MSAqcG9pbnRlcl9jb25zdHJhaW50czsKICAgICBzdHJ1Y3Qgd2xfZGF0YV9kZXZpY2VfbWFuYWdl ciAqZGF0YV9kZXZpY2VfbWFuYWdlcjsKZGlmZiAtciBiMTQxMjExYzVkMGEgLXIgMThjZWQwNGE4 NjVmIHNyYy92aWRlby93YXlsYW5kL1NETF93YXlsYW5kd2luZG93LmMKLS0tIGEvc3JjL3ZpZGVv L3dheWxhbmQvU0RMX3dheWxhbmR3aW5kb3cuYwlUaHUgQXByIDEzIDEzOjI4OjUyIDIwMTcgLTA0 MDAKKysrIGIvc3JjL3ZpZGVvL3dheWxhbmQvU0RMX3dheWxhbmR3aW5kb3cuYwlGcmkgQXByIDE0 IDE2OjE2OjI1IDIwMTcgLTA3MDAKQEAgLTMzLDYgKzMzLDE2IEBACiAjaW5jbHVkZSAiU0RMX3dh eWxhbmRkeW4uaCIKICNpbmNsdWRlICJTRExfaGludHMuaCIKIAorI2luY2x1ZGUgImZ1bGxzY3Jl ZW4tc2hlbGwtdW5zdGFibGUtdjEtY2xpZW50LXByb3RvY29sLmgiCisKK3N0YXRpYyB2b2lkCitX YXlsYW5kX1ByZXNlbnRXaW5kb3dGdWxsc2NyZWVuKFNETF9WaWRlb0RhdGEgKmRpc3BsYXksIFNE TF9XaW5kb3cgKndpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHdsX291dHB1dCAqb3V0cHV0KTsKKworc3RhdGljIHZvaWQKK1dheWxhbmRfUHJlc2VudFdpbmRv d1dpbmRvd2VkKFNETF9WaWRlb0RhdGEgKmRpc3BsYXksIFNETF9XaW5kb3cgKndpbmRvdywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB3bF9vdXRwdXQgKm91dHB1dCk7CisK IHN0YXRpYyB2b2lkCiBoYW5kbGVfcGluZyh2b2lkICpkYXRhLCBzdHJ1Y3Qgd2xfc2hlbGxfc3Vy ZmFjZSAqc2hlbGxfc3VyZmFjZSwKICAgICAgICAgICAgIHVpbnQzMl90IHNlcmlhbCkKQEAgLTE0 NiwxNCArMTU2LDEzIEBACiAKIHZvaWQgV2F5bGFuZF9TaG93V2luZG93KF9USElTLCBTRExfV2lu ZG93ICp3aW5kb3cpCiB7Ci0gICAgU0RMX1dpbmRvd0RhdGEgKndpbmQgPSB3aW5kb3ctPmRyaXZl cmRhdGE7CisgICAgU0RMX1ZpZGVvRGlzcGxheSAqZGlzcGxheSA9IFNETF9HZXREaXNwbGF5Rm9y V2luZG93KHdpbmRvdyk7CisgICAgc3RydWN0IHdsX291dHB1dCAqb3V0cHV0ID0gZGlzcGxheS0+ ZHJpdmVyZGF0YTsKIAogICAgIGlmICh3aW5kb3ctPmZsYWdzICYgU0RMX1dJTkRPV19GVUxMU0NS RUVOKQotICAgICAgICB3bF9zaGVsbF9zdXJmYWNlX3NldF9mdWxsc2NyZWVuKHdpbmQtPnNoZWxs X3N1cmZhY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0xfU0hF TExfU1VSRkFDRV9GVUxMU0NSRUVOX01FVEhPRF9ERUZBVUxULAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDAsIChzdHJ1Y3Qgd2xfb3V0cHV0ICopd2luZG93LT5mdWxs c2NyZWVuX21vZGUuZHJpdmVyZGF0YSk7CisgICAgICAgIFdheWxhbmRfUHJlc2VudFdpbmRvd0Z1 bGxzY3JlZW4oX3RoaXMtPmRyaXZlcmRhdGEsIHdpbmRvdywgb3V0cHV0KTsKICAgICBlbHNlCi0g ICAgICAgIHdsX3NoZWxsX3N1cmZhY2Vfc2V0X3RvcGxldmVsKHdpbmQtPnNoZWxsX3N1cmZhY2Up OworICAgICAgICBXYXlsYW5kX1ByZXNlbnRXaW5kb3dXaW5kb3dlZChfdGhpcy0+ZHJpdmVyZGF0 YSwgd2luZG93LCBvdXRwdXQpOwogCiAgICAgV0FZTEFORF93bF9kaXNwbGF5X2ZsdXNoKCAoKFNE TF9WaWRlb0RhdGEqKV90aGlzLT5kcml2ZXJkYXRhKS0+ZGlzcGxheSApOwogfQpAQCAtMjI3LDE0 ICsyMzYsMTIgQEAKIFdheWxhbmRfU2V0V2luZG93RnVsbHNjcmVlbihfVEhJUywgU0RMX1dpbmRv dyAqIHdpbmRvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRExfVmlkZW9EaXNwbGF5 ICogX2Rpc3BsYXksIFNETF9ib29sIGZ1bGxzY3JlZW4pCiB7Ci0gICAgU0RMX1dpbmRvd0RhdGEg KndpbmQgPSB3aW5kb3ctPmRyaXZlcmRhdGE7CisgICAgc3RydWN0IHdsX291dHB1dCAqb3V0cHV0 ID0gX2Rpc3BsYXktPmRyaXZlcmRhdGE7CiAKICAgICBpZiAoZnVsbHNjcmVlbikKLSAgICAgICAg d2xfc2hlbGxfc3VyZmFjZV9zZXRfZnVsbHNjcmVlbih3aW5kLT5zaGVsbF9zdXJmYWNlLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdMX1NIRUxMX1NVUkZBQ0VfRlVM TFNDUkVFTl9NRVRIT0RfU0NBTEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMCwgKHN0cnVjdCB3bF9vdXRwdXQgKilfZGlzcGxheS0+ZHJpdmVyZGF0YSk7CisgICAg ICAgIFdheWxhbmRfUHJlc2VudFdpbmRvd0Z1bGxzY3JlZW4oX3RoaXMtPmRyaXZlcmRhdGEsIHdp bmRvdywgb3V0cHV0KTsKICAgICBlbHNlCi0gICAgICAgIHdsX3NoZWxsX3N1cmZhY2Vfc2V0X3Rv cGxldmVsKHdpbmQtPnNoZWxsX3N1cmZhY2UpOworICAgICAgICBXYXlsYW5kX1ByZXNlbnRXaW5k b3dXaW5kb3dlZChfdGhpcy0+ZHJpdmVyZGF0YSwgd2luZG93LCBvdXRwdXQpOwogCiAgICAgV0FZ TEFORF93bF9kaXNwbGF5X2ZsdXNoKCAoKFNETF9WaWRlb0RhdGEqKV90aGlzLT5kcml2ZXJkYXRh KS0+ZGlzcGxheSApOwogfQpAQCAtMjQzLDIwICsyNTAsMjQgQEAKIFdheWxhbmRfUmVzdG9yZVdp bmRvdyhfVEhJUywgU0RMX1dpbmRvdyAqIHdpbmRvdykKIHsKICAgICBTRExfV2luZG93RGF0YSAq d2luZCA9IHdpbmRvdy0+ZHJpdmVyZGF0YTsKKyAgICBTRExfVmlkZW9EYXRhICp2aWQgPSBfdGhp cy0+ZHJpdmVyZGF0YTsKIAotICAgIHdsX3NoZWxsX3N1cmZhY2Vfc2V0X3RvcGxldmVsKHdpbmQt PnNoZWxsX3N1cmZhY2UpOwotCi0gICAgV0FZTEFORF93bF9kaXNwbGF5X2ZsdXNoKCAoKFNETF9W aWRlb0RhdGEqKV90aGlzLT5kcml2ZXJkYXRhKS0+ZGlzcGxheSApOworICAgIGlmICh2aWQtPnNo ZWxsKSB7CisgICAgICAgIHdsX3NoZWxsX3N1cmZhY2Vfc2V0X3RvcGxldmVsKHdpbmQtPnNoZWxs X3N1cmZhY2UpOworICAgICAgICBXQVlMQU5EX3dsX2Rpc3BsYXlfZmx1c2goICgoU0RMX1ZpZGVv RGF0YSopX3RoaXMtPmRyaXZlcmRhdGEpLT5kaXNwbGF5ICk7CisgICAgfQogfQogCiB2b2lkCiBX YXlsYW5kX01heGltaXplV2luZG93KF9USElTLCBTRExfV2luZG93ICogd2luZG93KQogewogICAg IFNETF9XaW5kb3dEYXRhICp3aW5kID0gd2luZG93LT5kcml2ZXJkYXRhOworICAgIFNETF9WaWRl b0RhdGEgKnZpZCA9IF90aGlzLT5kcml2ZXJkYXRhOwogCi0gICAgd2xfc2hlbGxfc3VyZmFjZV9z ZXRfbWF4aW1pemVkKHdpbmQtPnNoZWxsX3N1cmZhY2UsIE5VTEwpOwotCi0gICAgV0FZTEFORF93 bF9kaXNwbGF5X2ZsdXNoKCAoKFNETF9WaWRlb0RhdGEqKV90aGlzLT5kcml2ZXJkYXRhKS0+ZGlz cGxheSApOworICAgIGlmICh2aWQtPnNoZWxsKSB7CisgICAgICAgIHdsX3NoZWxsX3N1cmZhY2Vf c2V0X21heGltaXplZCh3aW5kLT5zaGVsbF9zdXJmYWNlLCBOVUxMKTsKKyAgICAgICAgV0FZTEFO RF93bF9kaXNwbGF5X2ZsdXNoKCAoKFNETF9WaWRlb0RhdGEqKV90aGlzLT5kcml2ZXJkYXRhKS0+ ZGlzcGxheSApOworICAgIH0KIH0KIAogaW50IFdheWxhbmRfQ3JlYXRlV2luZG93KF9USElTLCBT RExfV2luZG93ICp3aW5kb3cpCkBAIC0yOTAsOSArMzAxLDEwIEBACiAgICAgZGF0YS0+c3VyZmFj ZSA9CiAgICAgICAgIHdsX2NvbXBvc2l0b3JfY3JlYXRlX3N1cmZhY2UoYy0+Y29tcG9zaXRvcik7 CiAgICAgd2xfc3VyZmFjZV9zZXRfdXNlcl9kYXRhKGRhdGEtPnN1cmZhY2UsIGRhdGEpOwotICAg IGRhdGEtPnNoZWxsX3N1cmZhY2UgPSB3bF9zaGVsbF9nZXRfc2hlbGxfc3VyZmFjZShjLT5zaGVs bCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YS0+c3VyZmFjZSk7Ci0gICAgd2xfc2hlbGxfc3VyZmFjZV9zZXRfY2xhc3MgKGRhdGEtPnNo ZWxsX3N1cmZhY2UsIGMtPmNsYXNzbmFtZSk7CisKKyAgICBpZiAoYy0+c2hlbGwpIHsKKyAgICAg ICAgZGF0YS0+c2hlbGxfc3VyZmFjZSA9IHdsX3NoZWxsX2dldF9zaGVsbF9zdXJmYWNlKGMtPnNo ZWxsLCBkYXRhLT5zdXJmYWNlKTsKKyAgICB9CiAjaWZkZWYgU0RMX1ZJREVPX0RSSVZFUl9XQVlM QU5EX1FUX1RPVUNICiAgICAgaWYgKGMtPnN1cmZhY2VfZXh0ZW5zaW9uKSB7CiAgICAgICAgIGRh dGEtPmV4dGVuZGVkX3N1cmZhY2UgPSBxdF9zdXJmYWNlX2V4dGVuc2lvbl9nZXRfZXh0ZW5kZWRf c3VyZmFjZSgKQEAgLTMxNCw2ICszMjYsNyBAQAogICAgIH0KIAogICAgIGlmIChkYXRhLT5zaGVs bF9zdXJmYWNlKSB7CisgICAgICAgIHdsX3NoZWxsX3N1cmZhY2Vfc2V0X2NsYXNzKGRhdGEtPnNo ZWxsX3N1cmZhY2UsIGMtPmNsYXNzbmFtZSk7CiAgICAgICAgIHdsX3NoZWxsX3N1cmZhY2Vfc2V0 X3VzZXJfZGF0YShkYXRhLT5zaGVsbF9zdXJmYWNlLCBkYXRhKTsKICAgICAgICAgd2xfc2hlbGxf c3VyZmFjZV9hZGRfbGlzdGVuZXIoZGF0YS0+c2hlbGxfc3VyZmFjZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJnNoZWxsX3N1cmZhY2VfbGlzdGVuZXIsIGRhdGEpOwpA QCAtMzU4LDggKzM3MSw5IEBACiB2b2lkIFdheWxhbmRfU2V0V2luZG93VGl0bGUoX1RISVMsIFNE TF9XaW5kb3cgKiB3aW5kb3cpCiB7CiAgICAgU0RMX1dpbmRvd0RhdGEgKndpbmQgPSB3aW5kb3ct PmRyaXZlcmRhdGE7CisgICAgU0RMX1ZpZGVvRGF0YSAqdmlkID0gX3RoaXMtPmRyaXZlcmRhdGE7 CiAgICAgCi0gICAgaWYgKHdpbmRvdy0+dGl0bGUgIT0gTlVMTCkgeworICAgIGlmICh2aWQtPnNo ZWxsICE9IE5VTEwgJiYgd2luZG93LT50aXRsZSAhPSBOVUxMKSB7CiAgICAgICAgIHdsX3NoZWxs X3N1cmZhY2Vfc2V0X3RpdGxlKHdpbmQtPnNoZWxsX3N1cmZhY2UsIHdpbmRvdy0+dGl0bGUpOwog ICAgIH0KIApAQCAtMzkzLDYgKzQwNyw0NiBAQAogICAgIHdpbmRvdy0+ZHJpdmVyZGF0YSA9IE5V TEw7CiB9CiAKK3N0YXRpYyB2b2lkCitXYXlsYW5kX1ByZXNlbnRXaW5kb3dGdWxsc2NyZWVuKFNE TF9WaWRlb0RhdGEgKmRpc3BsYXksIFNETF9XaW5kb3cgKndpbmRvdywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHdsX291dHB1dCAqb3V0cHV0KQoreworICAgIFNETF9X aW5kb3dEYXRhICp3aW5kID0gd2luZG93LT5kcml2ZXJkYXRhOworCisgICAgLyogU3RhbmRhcmQg Q29tcG9zaXRvciAqLworICAgIGlmIChkaXNwbGF5LT5zaGVsbCkgeworICAgICAgICB3bF9zaGVs bF9zdXJmYWNlX3NldF9mdWxsc2NyZWVuKHdpbmQtPnNoZWxsX3N1cmZhY2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0xfU0hFTExfU1VSRkFDRV9GVUxMU0NSRUVO X01FVEhPRF9TQ0FMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw LCBvdXRwdXQpOworICAgIH0KKworICAgIC8qIEZ1bGxzY3JlZW4gY29tcG9zaXRvciAqLworICAg IGVsc2UgaWYgKGRpc3BsYXktPmZ1bGxzY3JlZW5fc2hlbGwpIHsKKyAgICAgICAgendwX2Z1bGxz Y3JlZW5fc2hlbGxfdjFfcHJlc2VudF9zdXJmYWNlKGRpc3BsYXktPmZ1bGxzY3JlZW5fc2hlbGws IHdpbmQtPnN1cmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBaV1BfRlVMTFNDUkVFTl9TSEVMTF9WMV9QUkVTRU5UX01FVEhPRF9aT09NLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KTsKKyAg ICB9Cit9CisKK3N0YXRpYyB2b2lkCitXYXlsYW5kX1ByZXNlbnRXaW5kb3dXaW5kb3dlZChTRExf VmlkZW9EYXRhICpkaXNwbGF5LCBTRExfV2luZG93ICp3aW5kb3csCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3Qgd2xfb3V0cHV0ICpvdXRwdXQpCit7CisgICAgU0RMX1dpbmRv d0RhdGEgKndpbmQgPSB3aW5kb3ctPmRyaXZlcmRhdGE7CisKKyAgICAvKiBTdGFuZGFyZCBDb21w b3NpdG9yICovCisgICAgaWYgKGRpc3BsYXktPnNoZWxsKSB7CisgICAgICAgIHdsX3NoZWxsX3N1 cmZhY2Vfc2V0X3RvcGxldmVsKHdpbmQtPnNoZWxsX3N1cmZhY2UpOworICAgIH0KKworICAgIC8q IEZ1bGxzY3JlZW4gY29tcG9zaXRvciAqLworICAgIGVsc2UgaWYgKGRpc3BsYXktPmZ1bGxzY3Jl ZW5fc2hlbGwpIHsKKyAgICAgICAgendwX2Z1bGxzY3JlZW5fc2hlbGxfdjFfcHJlc2VudF9zdXJm YWNlKGRpc3BsYXktPmZ1bGxzY3JlZW5fc2hlbGwsIHdpbmQtPnN1cmZhY2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaV1BfRlVMTFNDUkVFTl9TSEVM TF9WMV9QUkVTRU5UX01FVEhPRF9ERUZBVUxULAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KTsKKyAgICB9Cit9CisKICNlbmRpZiAvKiBTRExf VklERU9fRFJJVkVSX1dBWUxBTkQgJiYgU0RMX1ZJREVPX09QRU5HTF9FR0wgKi8KIAogLyogdmk6 IHNldCB0cz00IHN3PTQgZXhwYW5kdGFiOiAqLwo= --001a114bec4656bc73054d8eb208 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ SDL mailing list [email protected] http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org --001a114bec4656bc73054d8eb208--