[PATCH] Implement CGColorSpaceRef support for cairo quartz image
Fred Bca <[email protected]> Mon, 26 Aug 2019 14:54:35 +0200
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <CAKTSDKb334M5bRoe02YmFcWQLrDMD34Vwo0ciuVrgHG0gUziOA@mail.gmail.com> |
SGksCgpvbiByZWNlbnQgdmVyc2lvbnMgb2YgTWFjIE9TLCBDb3JlIEdyYXBoaWNzIHBlcmZvcm1z IGNvbG9yIHNwYWNlCmNvbnZlcnNpb25zIHdoZW4gdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IGFyZSB1 c2luZyBkaWZmZXJlbnQgY29sb3IKc3BhY2VzICh3aGljaCB0eXBpY2FsbHkgaGFwcGVucyB3aGVu IGRyYXdpbmcgYW4gaW1hZ2UgbG9hZGVkIGZyb20gZmlsZQpvbiBzY3JlZW4pLiBUaGUgcGVyZm9y bWFuY2UgaGl0IGlzIG5vdCBuZWdsaWdpYmxlIChhcm91bmQgMjAlKS4KCkhlcmUgaXMgYSBwYXRj aCBwcm9wb3NhbCB0byBsZXQgeW91IHNwZWNpZnkgYW4gb3B0aW9uYWwgY29sb3Igc3BhY2UKd2hl biBjcmVhdGluZyBhIHF1YXJ0eiBpbWFnZSBzdXJmYWNlIChpbnN0ZWFkIG9mIHVzaW5nIHRoZSBk ZWZhdWx0IFJHQgpjb2xvciBzcGFjZSkuIEl0IGNoYW5nZXMgdGhlIEFQSSwgYnV0IGl0IGNvdWxk IGFsc28gYmUgaW1wbGVtZW50ZWQgYXMKYSBzZXBhcmF0ZSBmdW5jdGlvbiBpZiBwcmVmZXJyZWQu IFRoZSBwYXRjaCBhbHNvIGVuc3VyZXMgdGhhdCB0aGUKYXBwcm9wcmlhdGUgY29sb3Igc3BhY2Ug aXMgdXNlZCB3aGVuIGNyZWF0aW5nIGEgc2ltaWxhciBzdXJmYWNlLgoKV291bGQgeW91IHBsZWFz ZSBjb25zaWRlciBpbmNvcnBvcmF0aW5nIHRoaXMgY2hhbmdlIHRvIGNhaXJvPwoKSW5kZXg6IGNh aXJvLXF1YXJ0ei1pbWFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNhaXJvLXF1YXJ0ei1pbWFnZS5oIChj YWlybyAxNC4xMikKKysrIGNhaXJvLXF1YXJ0ei1pbWFnZS5oIChmaXgpCkBAIC00NSw3ICs0NSw3 IEBACiBDQUlST19CRUdJTl9ERUNMUwoKIGNhaXJvX3B1YmxpYyBjYWlyb19zdXJmYWNlX3QgKgot Y2Fpcm9fcXVhcnR6X2ltYWdlX3N1cmZhY2VfY3JlYXRlIChjYWlyb19zdXJmYWNlX3QgKmltYWdl X3N1cmZhY2UpOworY2Fpcm9fcXVhcnR6X2ltYWdlX3N1cmZhY2VfY3JlYXRlIChjYWlyb19zdXJm YWNlX3QKKmltYWdlX3N1cmZhY2UsQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpOwoKIGNhaXJv X3B1YmxpYyBjYWlyb19zdXJmYWNlX3QgKgogY2Fpcm9fcXVhcnR6X2ltYWdlX3N1cmZhY2VfZ2V0 X2ltYWdlIChjYWlyb19zdXJmYWNlX3QgKnN1cmZhY2UpOwpJbmRleDogY2Fpcm8tcXVhcnR6LWlt YWdlLXN1cmZhY2UuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjYWlyby1xdWFydHotaW1hZ2Utc3VyZmFjZS5j IChjYWlybyAxNC4xMikKKysrIGNhaXJvLXF1YXJ0ei1pbWFnZS1zdXJmYWNlLmMgKGZpeCkKQEAg LTU2LDYgKzU2LDE1IEBACiAgICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95IChzdXJmYWNlKTsKIH0K CitzdGF0aWMgQ0dDb2xvclNwYWNlUmVmCl9jYWlyb19xdWFydHpfaW1hZ2Vfc3VyZmFjZV9nZXRf Y29sb3Jfc3BhY2Uodm9pZCAqYXN1cmZhY2UpCit7CisgICAgY2Fpcm9fcXVhcnR6X2ltYWdlX3N1 cmZhY2VfdCAqc3VyZmFjZSA9CihjYWlyb19xdWFydHpfaW1hZ2Vfc3VyZmFjZV90ICopIGFzdXJm YWNlOworICAgIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlPU5VTEw7CisgICAgaWYoc3VyZmFj ZS0+aW1hZ2UhPU5VTEwpCisgICAgICAgIGNvbG9yU3BhY2U9Q0dJbWFnZUdldENvbG9yU3BhY2Uo c3VyZmFjZS0+aW1hZ2UpOworICAgIHJldHVybiBjb2xvclNwYWNlOworfQorCiBzdGF0aWMgY2Fp cm9fc3VyZmFjZV90ICoKIF9jYWlyb19xdWFydHpfaW1hZ2Vfc3VyZmFjZV9jcmVhdGVfc2ltaWxh ciAodm9pZCAqYXN1cmZhY2UsCiAgICAgIGNhaXJvX2NvbnRlbnRfdCBjb250ZW50LApAQCAtNjQs NyArNzMsNyBAQAogewogICAgIGNhaXJvX3N1cmZhY2VfdCAqaXN1cmYgPQogIF9jYWlyb19pbWFn ZV9zdXJmYWNlX2NyZWF0ZV93aXRoX2NvbnRlbnQgKGNvbnRlbnQsIHdpZHRoLCBoZWlnaHQpOwot ICAgIGNhaXJvX3N1cmZhY2VfdCAqcmVzdWx0ID0gY2Fpcm9fcXVhcnR6X2ltYWdlX3N1cmZhY2Vf Y3JlYXRlIChpc3VyZik7CisgICAgY2Fpcm9fc3VyZmFjZV90ICpyZXN1bHQgPSBjYWlyb19xdWFy dHpfaW1hZ2Vfc3VyZmFjZV9jcmVhdGUKKGlzdXJmLF9jYWlyb19xdWFydHpfaW1hZ2Vfc3VyZmFj ZV9nZXRfY29sb3Jfc3BhY2UoYXN1cmZhY2UpKTsKICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kg KGlzdXJmKTsKCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTc3LDcgKzg2LDcgQEAKICAgIGludCBo ZWlnaHQpCiB7CiAgICAgY2Fpcm9fc3VyZmFjZV90ICppc3VyZiA9IGNhaXJvX2ltYWdlX3N1cmZh Y2VfY3JlYXRlIChmb3JtYXQsCndpZHRoLCBoZWlnaHQpOwotICAgIGNhaXJvX3N1cmZhY2VfdCAq cmVzdWx0ID0gY2Fpcm9fcXVhcnR6X2ltYWdlX3N1cmZhY2VfY3JlYXRlIChpc3VyZik7CisgICAg Y2Fpcm9fc3VyZmFjZV90ICpyZXN1bHQgPSBjYWlyb19xdWFydHpfaW1hZ2Vfc3VyZmFjZV9jcmVh dGUKKGlzdXJmLF9jYWlyb19xdWFydHpfaW1hZ2Vfc3VyZmFjZV9nZXRfY29sb3Jfc3BhY2UoYXN1 cmZhY2UpKTsKICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kgKGlzdXJmKTsKCiAgICAgcmV0dXJu IHJlc3VsdDsKQEAgLTE0NywxMCArMTU2LDEzIEBACiAgICAgY2Fpcm9fcXVhcnR6X2ltYWdlX3N1 cmZhY2VfdCAqc3VyZmFjZSA9CihjYWlyb19xdWFydHpfaW1hZ2Vfc3VyZmFjZV90ICopIGFzdXJm YWNlOwogICAgIENHSW1hZ2VSZWYgb2xkSW1hZ2UgPSBzdXJmYWNlLT5pbWFnZTsKICAgICBDR0lt YWdlUmVmIG5ld0ltYWdlID0gTlVMTDsKLQorICAgIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNl ID0gTlVMTDsKKwogICAgIGlmIChmbGFncykKICByZXR1cm4gQ0FJUk9fU1RBVFVTX1NVQ0NFU1M7 CgorICAgIGlmKG9sZEltYWdlKQorICAgICAgICBjb2xvclNwYWNlPUNHSW1hZ2VHZXRDb2xvclNw YWNlKG9sZEltYWdlKTsKICAgICAvKiBYWFggb25seSBmbHVzaCBpZiB0aGUgaW1hZ2UgaGFzIGJl ZW4gbW9kaWZpZWQuICovCgogICAgIC8qIFRvIGJlIHJlbGVhc2VkIGJ5IHRoZSBSZWxlYXNlQ2Fs bGJhY2sgKi8KQEAgLTE2Miw3ICsxNzQsNyBAQAogIHN1cmZhY2UtPmltYWdlU3VyZmFjZS0+c3Ry aWRlLAogIHN1cmZhY2UtPmltYWdlU3VyZmFjZS0+ZGF0YSwKICBUUlVFLAotIE5VTEwsCisgY29s b3JTcGFjZSwKICBEYXRhUHJvdmlkZXJSZWxlYXNlQ2FsbGJhY2ssCiAgc3VyZmFjZS0+aW1hZ2VT dXJmYWNlKTsKCkBAIC0yODYsNiArMjk4LDcgQEAKIC8qKgogICogY2Fpcm9fcXVhcnR6X2ltYWdl X3N1cmZhY2VfY3JlYXRlOgogICogQGltYWdlX3N1cmZhY2U6IGEgY2Fpcm8gaW1hZ2Ugc3VyZmFj ZSB0byB3cmFwIHdpdGggYSBxdWFydHogaW1hZ2Ugc3VyZmFjZQorICogQGNvbG9yU3BhY2U6IGFu IG9wdGlvbmFsIENHQ29sb3JTcGFjZVJlZiB0byBkZWZpbmUgdGhlIGNvbG9yIHNwYWNlCnVzZWQg YnkgdGhlIENHSW1hZ2VSZWYKICAqCiAgKiBDcmVhdGVzIGEgUXVhcnR6IHN1cmZhY2UgYmFja2Vk IGJ5IGEgQ0dJbWFnZVJlZiB0aGF0IHJlZmVyZW5jZXMgdGhlCiAgKiBnaXZlbiBpbWFnZSBzdXJm YWNlLiBUaGUgcmVzdWx0aW5nIHN1cmZhY2UgY2FuIGJlIHJlbmRlcmVkIHF1aWNrbHkKQEAgLTI5 OSw3ICszMTIsNyBAQAogICogU2luY2U6IDEuNgogICoqLwogY2Fpcm9fc3VyZmFjZV90ICoKLWNh aXJvX3F1YXJ0el9pbWFnZV9zdXJmYWNlX2NyZWF0ZSAoY2Fpcm9fc3VyZmFjZV90ICpzdXJmYWNl KQorY2Fpcm9fcXVhcnR6X2ltYWdlX3N1cmZhY2VfY3JlYXRlIChjYWlyb19zdXJmYWNlX3QKKnN1 cmZhY2UsQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpCiB7CiAgICAgY2Fpcm9fcXVhcnR6X2lt YWdlX3N1cmZhY2VfdCAqcWlzdXJmOwoKQEAgLTM0OSw3ICszNjIsNyBAQAogICAgICAgIHN0cmlk ZSwKICAgICAgICBkYXRhLAogICAgICAgIFRSVUUsCi0gICAgICAgTlVMTCwKKyAgICAgICBjb2xv clNwYWNlLAogICAgICAgIERhdGFQcm92aWRlclJlbGVhc2VDYWxsYmFjaywKICAgICAgICBpbWFn ZV9zdXJmYWNlKTsKLS0gCmNhaXJvIG1haWxpbmcgbGlzdApjYWlyb0BjYWlyb2dyYXBoaWNzLm9y ZwpodHRwczovL2xpc3RzLmNhaXJvZ3JhcGhpY3Mub3JnL21haWxtYW4vbGlzdGluZm8vY2Fpcm8=