Patch for OpenGL 3+ contexts via OSMesa

Matthew Matl <[email protected]> Sat, 19 Jan 2019 15:42:06 -0800
Newsgroups gmane.comp.python.opengl.devel
Message-ID <CAOu37t0-2KiaUbCRytDDmGH_pdzYLxjByb_vv524P7oxHCZSRg@mail.gmail.com>
--0000000000008aa8d5057fd82d2a
Content-Type: multipart/alternative; boundary="0000000000008aa8d0057fd82d28"

--0000000000008aa8d0057fd82d28
Content-Type: text/plain; charset="UTF-8"

Hi Mike,

Big fan of PyOpenGL! Just wanted to offer this simple patch for the most
recent version of master, which adds a handle for OSMesa's
OSMesaCreateContextAttribs
<https://github.com/anholt/mesa/blob/01e511233b24872b08bff862ff692dfb5b22c1f4/include/GL/osmesa.h#L167>
function.
This function allows for users to create OSMesa contexts with core
profiles, which is hugely useful for supporting offscreen rendering with
modern (>=3.3) shaders.

My only concern is that this function is new in Mesa 11.2, which was
released on April 4, 2016, so this might not work with older Mesa versions.
Not sure if the compilation system will handle this smoothly or not.
Suggestions are welcome, happy to help modify this as needed.

Best,
Matthew Matl
UC Berkeley EECS PhD Candidate

--0000000000008aa8d0057fd82d28
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi Mike,<div><br></div><div>Big fan of PyOpenGL! Just want=
ed to offer this simple patch for the most recent version of master, which =
adds a handle for OSMesa&#39;s=C2=A0<a href=3D"https://github.com/anholt/me=
sa/blob/01e511233b24872b08bff862ff692dfb5b22c1f4/include/GL/osmesa.h#L167" =
target=3D"_blank">OSMesaCreateContextAttribs</a>=C2=A0function. This functi=
on allows for users to create OSMesa contexts with core profiles, which is =
hugely useful for supporting offscreen rendering with modern (&gt;=3D3.3) s=
haders.</div><div><br></div><div>My only concern is that this function is n=
ew in Mesa 11.2, which was released on April 4, 2016, so this might not wor=
k with older Mesa versions. Not sure if the compilation system will handle =
this smoothly or not. Suggestions are welcome, happy to help modify this as=
 needed.</div><div><br></div><div>Best,<br>Matthew Matl</div><div>UC Berkel=
ey EECS PhD Candidate</div></div>

--0000000000008aa8d0057fd82d28--
--0000000000008aa8d5057fd82d2a
Content-Type: text/x-patch; charset="US-ASCII"; name="Add_OSMesaCreateContextAttribs.diff"
Content-Disposition: attachment; 
	filename="Add_OSMesaCreateContextAttribs.diff"
Content-Transfer-Encoding: base64
Content-ID: <f_jr44amsv0>
X-Attachment-Id: f_jr44amsv0

IyBCYXphYXIgbWVyZ2UgZGlyZWN0aXZlIGZvcm1hdCAyIChCYXphYXIgMC45MCkKIyByZXZpc2lv
bl9pZDogbWF0dGhld2NtYXRsQGdtYWlsLmNvbS0yMDE5MDExOTIzMzY0NS0yaW5mamoxMHpwZHEw
dDJnCiMgdGFyZ2V0X2JyYW5jaDogaHR0cDovL2JhemFhci5sYXVuY2hwYWQubmV0L35tY2ZsZXRj
aC9weW9wZW5nbC90cnVuay8KIyB0ZXN0YW1lbnRfc2hhMTogYjg1ZjYyMDMwYjI5NDQyY2ZmOTE2
MjM2ZmE5OGJlMWE1ZGQwODY0YgojIHRpbWVzdGFtcDogMjAxOS0wMS0xOSAxNTozODo0NiAtMDgw
MAojIGJhc2VfcmV2aXNpb25faWQ6IG1jZmxldGNoQHZycGx1bWJlci5jb20tMjAxODExMDUwNzEx
NDMtXAojICAgcjF2dWJqaHJ1d2Q0cm41ZAojIAojIEJlZ2luIHBhdGNoCj09PSBtb2RpZmllZCBm
aWxlICdPcGVuR0wvcmF3L29zbWVzYS9tZXNhLnB5JwotLS0gT3BlbkdML3Jhdy9vc21lc2EvbWVz
YS5weQkyMDE0LTAyLTI0IDE2OjA3OjQyICswMDAwCisrKyBPcGVuR0wvcmF3L29zbWVzYS9tZXNh
LnB5CTIwMTktMDEtMTkgMjM6MzY6NDUgKzAwMDAKQEAgLTEsMyArMSw0IEBACitmcm9tIE9wZW5H
TCBpbXBvcnQgYXJyYXlzCiBmcm9tIE9wZW5HTC5yYXcuR0wuX3R5cGVzIGltcG9ydCBHTGVudW0s
R0xib29sZWFuLEdMc2l6ZWksR0xpbnQKIGZyb20gT3BlbkdMLnJhdy5vc21lc2EuX3R5cGVzIGlt
cG9ydCAqCiBmcm9tIE9wZW5HTC5jb25zdGFudCBpbXBvcnQgQ29uc3RhbnQgYXMgX0MKQEAgLTI2
LDYgKzI3LDE0IEBACiBPU01FU0FfVFlQRSA9IF9DKCdPU01FU0FfVFlQRScsIDB4MjMpCiBPU01F
U0FfTUFYX1dJRFRIID0gX0MoJ09TTUVTQV9NQVhfV0lEVEgnLCAweDI0KQogT1NNRVNBX01BWF9I
RUlHSFQgPSBfQygnT1NNRVNBX01BWF9IRUlHSFQnLCAweDI1KQorT1NNRVNBX0RFUFRIX0JJVFMg
PSBfQygnT1NNRVNBX0RFUFRIX0JJVFMnLCAweDMwKQorT1NNRVNBX1NURU5DSUxfQklUUyA9IF9D
KCdPU01FU0FfU1RFTkNJTF9CSVRTJywgMHgzMSkKK09TTUVTQV9BQ0NVTV9CSVRTID0gX0MoJ09T
TUVTQV9BQ0NVTV9CSVRTJywgMHgzMikKK09TTUVTQV9QUk9GSUxFID0gX0MoJ09TTUVTQV9QUk9G
SUxFJywgMHgzMykKK09TTUVTQV9DT1JFX1BST0ZJTEUgPSBfQygnT1NNRVNBX0NPUkVfUFJPRklM
RScsIDB4MzQpCitPU01FU0FfQ09NUEFUX1BST0ZJTEUgPSBfQygnT1NNRVNBX0NPUkVfUFJPRklM
RScsIDB4MzUpCitPU01FU0FfQ09OVEVYVF9NQUpPUl9WRVJTSU9OID0gX0MoJ09TTUVTQV9DT05U
RVhUX01BSk9SX1ZFUlNJT04nLCAweDM2KQorT1NNRVNBX0NPTlRFWFRfTUlOT1JfVkVSU0lPTiA9
IF9DKCdPU01FU0FfQ09OVEVYVF9NSU5PUl9WRVJTSU9OJywgMHgzNykKIAogT1NNZXNhR2V0Q3Vy
cmVudENvbnRleHQgPSBfcC5HZXRDdXJyZW50Q29udGV4dAogCkBAIC0zOCw2ICs0NywxMCBAQAog
ZGVmIE9TTWVzYUNyZWF0ZUNvbnRleHRFeHQoZm9ybWF0LCBkZXB0aEJpdHMsIHN0ZW5jaWxCaXRz
LGFjY3VtQml0cyxzaGFyZWxpc3QgKTogcGFzcwogCiBAX2YKK0BfcC50eXBlcyhPU01lc2FDb250
ZXh0LGFycmF5cy5HTGludEFycmF5LCBPU01lc2FDb250ZXh0KQorZGVmIE9TTWVzYUNyZWF0ZUNv
bnRleHRBdHRyaWJzKGF0dHJpYkxpc3Qsc2hhcmVsaXN0ICk6IHBhc3MKKworQF9mCiBAX3AudHlw
ZXMoTm9uZSwgT1NNZXNhQ29udGV4dCkKIGRlZiBPU01lc2FEZXN0cm95Q29udGV4dChjdHgpOiBw
YXNzCiAKQEAgLTczLDcgKzg2LDcgQEAKICAgICB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQgPSBHTGlu
dCgpLCBHTGludCgpLCBHTGludCgpCiAgICAgYnVmZmVyID0gY3R5cGVzLmNfdm9pZF9wKCkKIAot
ICAgIGlmIEdMLk9TTWVzYUdldENvbG9yQnVmZmVyKGMsIGN0eXBlcy5ieXJlZih3aWR0aCksCisg
ICAgaWYgX3AuUExBVEZPUk0uR0wuT1NNZXNhR2V0Q29sb3JCdWZmZXIoYywgY3R5cGVzLmJ5cmVm
KHdpZHRoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eXBlcy5ieXJl
ZihoZWlnaHQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R5cGVzLmJ5
cmVmKGZvcm1hdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHlwZXMu
YnlyZWYoYnVmZmVyKSk6CkBAIC04Niw5ICs5OSwxMiBAQAogICAgICdPU01lc2FDcmVhdGVDb250
ZXh0JywKICAgICAnT1NNZXNhQ3JlYXRlQ29udGV4dEV4dCcsICdPU01lc2FNYWtlQ3VycmVudCcs
ICdPU01lc2FHZXRJbnRlZ2VydicsCiAgICAgJ09TTWVzYUdldEN1cnJlbnRDb250ZXh0JywgJ09T
TWVzYURlc3Ryb3lDb250ZXh0JywgJ09TTWVzYVBpeGVsU3RvcmUnLAotICAgICdPU01lc2FHZXRE
ZXB0aEJ1ZmZlcicsICdPU01lc2FHZXRDb2xvckJ1ZmZlcicsCisgICAgJ09TTWVzYUdldERlcHRo
QnVmZmVyJywgJ09TTWVzYUdldENvbG9yQnVmZmVyJywgJ09TTWVzYUNyZWF0ZUNvbnRleHRBdHRy
aWJzJywKICAgICAnT1NNRVNBX0NPTE9SX0lOREVYJywgJ09TTUVTQV9SR0JBJywgJ09TTUVTQV9C
R1JBJywgJ09TTUVTQV9BUkdCJywKICAgICAnT1NNRVNBX1JHQicsICdPU01FU0FfQkdSJywgJ09T
TUVTQV9CR1InLCAnT1NNRVNBX1JPV19MRU5HVEgnLAogICAgICdPU01FU0FfWV9VUCcsICdPU01F
U0FfV0lEVEgnLCAnT1NNRVNBX0hFSUdIVCcsICdPU01FU0FfRk9STUFUJywKICAgICAnT1NNRVNB
X1RZUEUnLCAnT1NNRVNBX01BWF9XSURUSCcsICdPU01FU0FfTUFYX0hFSUdIVCcsCisgICAgJ09T
TUVTQV9ERVBUSF9CSVRTJywgJ09TTUVTQV9TVEVOQ0lMX0JJVFMnLCAnT1NNRVNBX0FDQ1VNX0JJ
VFMnLAorICAgICdPU01FU0FfUFJPRklMRScsICdPU01FU0FfQ09SRV9QUk9GSUxFJywgJ09TTUVT
QV9DT01QQVRfUFJPRklMRScsCisgICAgJ09TTUVTQV9DT05URVhUX01BSk9SX1ZFUlNJT04nLCAn
T1NNRVNBX0NPTlRFWFRfTUlOT1JfVkVSU0lPTicKIF0KCiMgQmVnaW4gYnVuZGxlCkl5QkNZWHBo
WVhJZ2NtVjJhWE5wYjI0Z1luVnVaR3hsSUhZMENpTUtRbHBvT1RGQldTWlRXU3psRGVrQUFncmZn
RUFRVU8vLzkzLzMKMzBDLy8vL3dVQVR0VXcwWGlqdWdidHJkb1NTVXhQVTB5TVRDYVpGUEl5YW5w
UFV3bWdiVUQxTkRRQkpVd21KaUJDbnFmb3A2VGFtagpRTkEwQU5BRFFCSWswU0dwdE5LZWllcHZV
Sm8wQTAwMEF5RElBQU9ZQWpCTVFEQUpnbWpJYUdBVEJHSmhGSWlrL1JUOFRSVFpUeW1RCnpTRFI1
UVkxREVNbUdqMVFjajhHaDdmREdZdWVieE5GVk9HRnFneTF1bHRaR2hpRUUxa2NUVzRZaDg1c29t
MmpkU1ZFUWxuL0czM0cKTEY5YkFkWWJIZFl6VHNldDBtM21wQkJGUEZOQW5OTzNQMjk1Nmh6Tisv
bFBxek41Y0FIYzYrcm05dkwreVcrV25Ga2Y1d2M3UEV6bAoyUGlOUEhsNDQ3S2hveXV5eUhSeGdO
UXFIZjVuelJEYklabWN6RHZBQjQrRFR1MjVPSERiVDFVMzlNa1BxNHFaa2xiMXZKcm9EZUk0ClRD
aE9qRDFyTGtXS2ZIUEh5bTZ2MDdRSEZKNmdybWszN2JvUlhNblR1ZGZTSm1wQy9JeUFPZ3VHeDRu
T1d4UGs4Z3JGaVNPZndTbmIKRnZXSzhCd3JCSFRrKys2czRSVFQydDV0cDBjdldMRlg4Vm1LMkR5
UmEram11Y0d0VUxWdmpoaDZZcmcxTUZBQ1V4b3hwcGxzSXJTVgpwWkY3TnFFME5tNVhDc2ZCK1pE
VmhTMEtFdTRLQ1VaNlVkZTlxL3JGRk96bGpORWlpcmwxRmZxck8zQ1RhK0hzRnhuZWRMSEUwdFVO
Ci9nbWl4RmZzZ3h3eEdRMTlpMFg4VmFXYXhaQm5qemx5ck9ZU2lYbHZGWDFibkMrY3RaWTRXVEZm
anVXL1hsbXE1M3Y4OVF4VlExNnMKU1VvRktLaEtWRFBiS3hpbVRyZ1FJayttTmRsYUdBOUJ5WlpO
Rk5tdXNKanRHazVZdHNpdXUvVk5OVHNLMEV3bk5vcVhCTno5cGdndQo0OGNzSVp2L2pWZ01pNmd2
ZGJyN2pZQTJoWVlJSVBJaHM5MkdKZ2ZwK3pJSG1jQnBNTERRenNRbzJ2VStJNHdHWStBZUNFdEJ5
RmJOCjdVTFdweWo3ME1qM09mYURMa3haV29CaHVQRjA2NlVLQmNLMEtCWmtHb29KaU1mM3dESDIr
c2JiR3h0TmpZNEt6cmxJalBFak1UeG8KV3RxYnFFaGtQblFrQTNETkFLWEcyRG1xY2lGNHpQTTd0
UStVYUcyLzF5aVJFc1lGQ3R3N2tTaVVpQ0c0Yi9Ud2NNQlZSMmV5azU1agpxS0EyYzNLVWdmN2xQ
ckw3aUgxaDJwU3pUelE4WnNhSXZOMkk4SlU1clhKTXlXK05kbVlPVmhQN0xqelhCMWZKZDJDNlBL
QmgyRGRTCmtwaExUUUdSczYwcUpGZENGbDE5MS9LalhqVWthZW1wTUN2c0xHaW5nUHVtRkVmYlg0
MXRHZmpaY2FxRGI5b2FHbzNhdWQ3WlFkbHkKQk50Q3NvME5uelpXeE93Mng0NW13L3h4RmFtUDht
WDFvVlFTVlU2OFNyUFN5WURTNCtpcENVTGFtU2pRUmV5ajBSdTAwVjZEZEJWQwpqcGViMS90Vy84
ck1MWURZQ1NGbmVsSFNob2V4TERXeUdiU2h6MkE0VWNGSUJYQ2Z0YmRLTkxaUFBTbWtmL054U2xj
b0NzNndzRlA3Cis2NnlCNW5Da05yOXNHQzBXUmJFd3AxZVo3QXNVdXRLOEkxV0Zjd3BXbDExaFJu
eVJ3KzB3SEdFZ2FseE55OTV0SXo2TUlRRitzdFoKemliZHk2U1NnWHA0ajRyWDJDWmhLdTl5UlIx
RTA1a3k2S3E5a2tmSWRTQ2VMakFqQkJJMmN4QkdzNmNvNmNzVnhWRFUwTWQ4ekVQWQpWRnBhRk5o
bU1PWFl5djRCNDk3Y0EzbUN3ZE5qb2JabmlrMlZFZG9XWHlyaW9MNGE5d2NwUjVHMnRNdWlhV1Nu
Q3hBN0F3bFY2emVlCkh2NUFpNWIrNFlaN0R6QnV1K3ZhT2NwbDZCVmlWbVVRVmFEbTJLajBTT1ps
ZHJuZ1czMHFiM0lMYWhjb2haU0xGaEJCWXRVZHkwS2IKeFYrWUd5a3FsVTFJZHdkNmNnNkZyOWVv
dHhhN3dPMVNRV3F2RFN3WWIxeXQ0SEcwYlBjbThoT292K0x1U0tjS0VnV2NvYjBnCg==
--0000000000008aa8d5057fd82d2a
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--0000000000008aa8d5057fd82d2a
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
PyOpenGL Homepage
http://pyopengl.sourceforge.net
_______________________________________________
PyOpenGL-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pyopengl-devel

--0000000000008aa8d5057fd82d2a--