)]}'
{
  "log": [
    {
      "commit": "6d2fb1462dab8ba0eb10ad08faf50776b779ebec",
      "tree": "b2316782b12da71d8280f598594b515a279bb845",
      "parents": [
        "0de968c5618c2c49d976b725e1b1c1d7762651b8"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Mar 13 16:08:06 2024 +0900"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Mar 13 16:08:06 2024 +0900"
      },
      "message": "Rename README to README.md\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "0de968c5618c2c49d976b725e1b1c1d7762651b8",
      "tree": "5f361145becebd4dbf2a89130cfd0af90adf16af",
      "parents": [
        "22a05b636d38dfd96d48875f1db9d21c107c5e5c"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Oct 12 12:49:06 2016 -0700"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Oct 12 12:49:06 2016 -0700"
      },
      "message": "makefile.am: Fix maintainer-clean target\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "22a05b636d38dfd96d48875f1db9d21c107c5e5c",
      "tree": "910abbc736e14d883bd59d8b6f1129efce177f5a",
      "parents": [
        "6a544068d3ef433ebc1da42b613fce1be6f78299"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Oct 12 12:49:06 2016 -0700"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Oct 12 12:49:06 2016 -0700"
      },
      "message": "Add bootstrap file\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "6a544068d3ef433ebc1da42b613fce1be6f78299",
      "tree": "dcba52e66707054c558bbdd8ec67aebf7d225740",
      "parents": [
        "270023f50ffcd8ade087ddd6dff1881645382d0e"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Oct 12 12:49:06 2016 -0700"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Oct 12 12:49:06 2016 -0700"
      },
      "message": "Update INSTALL file\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "270023f50ffcd8ade087ddd6dff1881645382d0e",
      "tree": "082d9d95503b1b7fe380b79cc5516692076d24e7",
      "parents": [
        "a2cc58ba9161d880f5db8432ea2471a3da48aece"
      ],
      "author": {
        "name": "Antonio Ospite",
        "email": "ao2@ao2.it",
        "time": "Tue Jun 07 23:37:17 2016 +0200"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Oct 12 11:45:07 2016 -0700"
      },
      "message": "configure.ac: enable silent build rules by default if available\n\nSigned-off-by: Antonio Ospite \u003cao2@ao2.it\u003e\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "a2cc58ba9161d880f5db8432ea2471a3da48aece",
      "tree": "14038c5e8752a1a5903a69590cd4bc0f295e500e",
      "parents": [
        "11ce1b4cb2a6e43ed14e8c35027ba699c6912dfc"
      ],
      "author": {
        "name": "Antonio Ospite",
        "email": "ao2@ao2.it",
        "time": "Tue Jun 07 23:37:16 2016 +0200"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Oct 12 11:45:07 2016 -0700"
      },
      "message": "configure.ac: use the subdir-objects option\n\nThis avoids clutter in the top-level dir, and also fixes this automake\nwarning:\n\nMakefile.am:118: warning: source file \u0027twin_demos/twin_calc.c\u0027 is in a subdirectory,\nMakefile.am:118: but option \u0027subdir-objects\u0027 is disabled\nautomake: warning: possible forward-incompatibility.\nautomake: At least a source file is in a subdirectory, but the \u0027subdir-objects\u0027\nautomake: automake option hasn\u0027t been enabled.  For now, the corresponding output\nautomake: object file(s) will be placed in the top-level directory.  However,\nautomake: this behaviour will change in future Automake versions: they will\nautomake: unconditionally cause object files to be placed in the same subdirectory\nautomake: of the corresponding sources.\nautomake: You are advised to start using \u0027subdir-objects\u0027 option throughout your\nautomake: project, to avoid future incompatibilities.\n\nSigned-off-by: Antonio Ospite \u003cao2@ao2.it\u003e\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "11ce1b4cb2a6e43ed14e8c35027ba699c6912dfc",
      "tree": "e48907f91c2cf8fddb2e3a06f3cbec4d00e40c6a",
      "parents": [
        "4231f153617719010cd9d6b17e07f15b0e7cec1e"
      ],
      "author": {
        "name": "Antonio Ospite",
        "email": "ao2@ao2.it",
        "time": "Tue Jun 07 23:37:15 2016 +0200"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Wed Oct 12 11:45:07 2016 -0700"
      },
      "message": "configure.ac: use autoupdate to modernize the syntax\n\nSigned-off-by: Antonio Ospite \u003cao2@ao2.it\u003e\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "4231f153617719010cd9d6b17e07f15b0e7cec1e",
      "tree": "6d0fa1ceae65f011b0019d1586280c6886df99a6",
      "parents": [
        "287d16c4ccce6f85a6f2f5e3b46b4bd7ece1e327"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Mon Nov 04 15:06:44 2013 -0800"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Mon Nov 04 15:06:44 2013 -0800"
      },
      "message": "Updates for libpng-1.4\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "287d16c4ccce6f85a6f2f5e3b46b4bd7ece1e327",
      "tree": "10621d9f9e599faadaf3d8f6a2e77ef4bd67e412",
      "parents": [
        "130ee5f5bec1cc5b893e3fb7c261d1e8ec4da246"
      ],
      "author": {
        "name": "Tyler Hall",
        "email": "tylerwhall@gmail.com",
        "time": "Fri Apr 26 22:15:02 2013 -0400"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Fri May 03 15:06:06 2013 -0700"
      },
      "message": "libtwin: Add touch support\n\nIn a similar fashion as the Linux mouse and joystick, support absolute\npointing devices using /dev/input/eventX. Currently it only handles\nABS_X, ABS_Y, and BTN_TOUCH events.\n\nThe library interface will open the specified device or, if unspecified,\nfind the first device in /dev/input that supports absolute and touch\nevents.\n\nSigned-off-by: Tyler Hall \u003ctylerwhall@gmail.com\u003e\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "130ee5f5bec1cc5b893e3fb7c261d1e8ec4da246",
      "tree": "70fa694a73460db7bcefd4eae1999ed0b4ef14f6",
      "parents": [
        "58b1dfb2b9e1c3aed5f38d53784f3bd6eb2295ad"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Apr 08 18:58:05 2012 -0700"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Fri Apr 13 17:57:17 2012 -0700"
      },
      "message": "Fixups for \u0027make dist\u0027\n\n o Remove old .cvsignore files.\n o Add missing dist files to Makefile.am.\n o Remove generated files from dist.\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "58b1dfb2b9e1c3aed5f38d53784f3bd6eb2295ad",
      "tree": "19aaf5b67072e709704a59f6f70766b07bf5734f",
      "parents": [
        "d0ed472e5b4ba29f02f73adc5f61279a9a136274"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Apr 08 18:14:36 2012 -0700"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Fri Apr 13 17:57:17 2012 -0700"
      },
      "message": "Update maintainer\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "d0ed472e5b4ba29f02f73adc5f61279a9a136274",
      "tree": "98d05db9f289e5aecf57e71531499156fb253c1a",
      "parents": [
        "cc20d5fbf60f494ed49e5380857d8b5852de70c4"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sat Apr 07 17:47:21 2012 -0700"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Apr 08 17:33:43 2012 -0700"
      },
      "message": "Minor cleanup of twin_primitive.c\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "cc20d5fbf60f494ed49e5380857d8b5852de70c4",
      "tree": "d907bcd4802c0909818eee8fcee9d2fb3797e5ba",
      "parents": [
        "5865101c6f04296c790467e7d12fcd75917f29e9"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sat Nov 26 21:18:22 2011 -0800"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Dec 11 15:06:22 2011 -0800"
      },
      "message": "Fix build warnings\n\nFix various unused parameter and type mismatch build\nwarnings.\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "5865101c6f04296c790467e7d12fcd75917f29e9",
      "tree": "ac5edd704594f4c4504b0faea21fee9f82da54a9",
      "parents": [
        "0f572d200f620969b4ed486f1efdb7b0974420cc"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sat Nov 26 21:06:53 2011 -0800"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Dec 11 15:06:22 2011 -0800"
      },
      "message": "Add preprocessor macro maybe_unused\n\nDefine a preprocessor macro maybe_unused and add\nit where needed to remove unused parameter build\nwarnings.\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "0f572d200f620969b4ed486f1efdb7b0974420cc",
      "tree": "5c4f707ee427b32845150691b0fb10b4ef1239a3",
      "parents": [
        "ca81e39bce028e74c27caeb006a5c47dd9337b4f"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sat Nov 26 21:00:55 2011 -0800"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Dec 11 15:06:22 2011 -0800"
      },
      "message": "Remove empty twin_path_bevel_shape\n\nRemove the empty and unused static routine twin_path_bevel_shape().\nFixes unused parameter build warnings.\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "ca81e39bce028e74c27caeb006a5c47dd9337b4f",
      "tree": "970fab280adffcbc08ef956435eb74809c98ae0d",
      "parents": [
        "ea951fb17d38c06d5db4920ef5f2d6e014667c2c"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Fri Nov 25 17:35:28 2011 -0800"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Dec 11 15:06:22 2011 -0800"
      },
      "message": "Remove unneeded call to png_set_swap_alpha\n\nAlpha byte swapping is done in twin_premultiply_alpha(), so\nthe PNG processing overhead can be reduced by removing the\npng_set_swap_alpha() call in twin_png_to_pixmap() and adjusting\ntwin_premultiply_alpha().\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "ea951fb17d38c06d5db4920ef5f2d6e014667c2c",
      "tree": "91a0492ca8a72c32c7d2b6eac1aa9ab9817f7695",
      "parents": [
        "33093a0dff8b8ffceb68f424bcd18cc7eae760a3"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Fri Nov 25 17:16:30 2011 -0800"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Dec 11 15:06:22 2011 -0800"
      },
      "message": "Fix png little endian alpha\n\nAdd a new helper routine _twin_apply_alpha() that handles\nbig and little endian details of alpha multiplication\nfor png to ARGB32.\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "33093a0dff8b8ffceb68f424bcd18cc7eae760a3",
      "tree": "6fe13211e660d65aa29918b10d905f544eac6f23",
      "parents": [
        "6d5763dd4024d6f8416050742964e9b2998eab13"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Tue Dec 06 19:36:10 2011 -0800"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Dec 11 15:06:12 2011 -0800"
      },
      "message": "External fbdev event processing\n\nAdd two new routines twin_fbdev_create_ext() and\ntwin_fbdev_process_events() that allow application\ncontrol of twin event processing.\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "6d5763dd4024d6f8416050742964e9b2998eab13",
      "tree": "22c41930993474096bf825f040490aee973c24f2",
      "parents": [
        "dc83cc05f7b6e672ee0a7e7b0c03b20569ff5f7f"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Fri Nov 25 16:45:57 2011 -0800"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Dec 11 14:57:51 2011 -0800"
      },
      "message": "External X11 event processing\n\nAdd two new routines twin_x11_create_ext() and\ntwin_x11_process_events() that allow application\ncontrol of twin event processing.\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "dc83cc05f7b6e672ee0a7e7b0c03b20569ff5f7f",
      "tree": "d6e280c6e22f7c2ac90c7adbb09212ff5e2ac157",
      "parents": [
        "de823324f469f14ab31651d2d5105597856fbb8d"
      ],
      "author": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Fri Nov 25 15:24:58 2011 -0800"
      },
      "committer": {
        "name": "Geoff Levand",
        "email": "geoff@infradead.org",
        "time": "Sun Dec 11 14:57:33 2011 -0800"
      },
      "message": "Add X11 key event dispatch\n\nSigned-off-by: Geoff Levand \u003cgeoff@infradead.org\u003e\n"
    },
    {
      "commit": "de823324f469f14ab31651d2d5105597856fbb8d",
      "tree": "af2abd9287ddd04b821209b46b7bfe1705da84d4",
      "parents": [
        "b9b2acf28d1ebad52de372a181dadf73455ad4de"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@pasglop.(none)",
        "time": "Tue Jan 08 17:13:40 2008 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@pasglop.(none)",
        "time": "Tue Jan 08 17:13:40 2008 +1100"
      },
      "message": "Bump version to 0.0.3\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@pasglop.(none)\u003e"
    },
    {
      "commit": "b9b2acf28d1ebad52de372a181dadf73455ad4de",
      "tree": "c55a4cd45572dce70362feadb868bceec47c0b43",
      "parents": [
        "6ede3a8b0842a07c97af0f5d0f86ec62af2f0966"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Mon Aug 27 11:43:32 2007 +0800"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Aug 27 08:02:19 2007 +0200"
      },
      "message": "Fix up/down inversion of key events\n\nWe\u0027re currently getting TwinEventKeyDowns for key ups, and vice versa.\nThis change fixes the problem.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "6ede3a8b0842a07c97af0f5d0f86ec62af2f0966",
      "tree": "5a3df89498f0aa953d4f176c10aee295dd7d19e6",
      "parents": [
        "d8a0a0845572dc2a7427bd57b851df7f766a11ab"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Thu Aug 23 16:38:09 2007 +0800"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 23 10:45:48 2007 +0200"
      },
      "message": "twin: add Linux joystick support\n\nAdd a simple event layer for joystick devices.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "d8a0a0845572dc2a7427bd57b851df7f766a11ab",
      "tree": "150ba27197981ccd45c5d55fcfc84b55ae466431",
      "parents": [
        "eeef963212c89bd041042f21c743a74678d059e3"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Apr 09 13:06:54 2007 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Apr 09 13:06:54 2007 +1000"
      },
      "message": "Remove dependency on libm\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "eeef963212c89bd041042f21c743a74678d059e3",
      "tree": "f2c948210b8769c4448a53c36ddc47a7b2b13733",
      "parents": [
        "4baa63366fd5a4a077cb2461496dc45d0a7d0a5c"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sun Apr 08 22:55:49 2007 -0400"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Apr 09 13:04:24 2007 +1000"
      },
      "message": "Avoid use of sqrt for mouse accel.\n\nConvert twin_linux_mouse_accel() to twin_fixed_t arithmetic to avoid\ndependency on libm.\n\nDepends on separate patch which actually fixes twin_fixed_sqrt()\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "4baa63366fd5a4a077cb2461496dc45d0a7d0a5c",
      "tree": "b00ae3827eddcfd7fd84c0756df22918951bda76",
      "parents": [
        "4a5bf1e1705c3921b091e565ef98ca41bc287a47"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sun Apr 08 22:57:12 2007 -0400"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Apr 09 13:03:52 2007 +1000"
      },
      "message": "Fix overflow in twin_fixed_sqrt()\n\nTwin_fixed_sqrt() suffers from overflow. Fix it.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "4a5bf1e1705c3921b091e565ef98ca41bc287a47",
      "tree": "63ab303f90cdbacaa54d06c9791c01f2a5278247",
      "parents": [
        "c6ec5cd14d829dca75b1d64b115489aada694142"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Thu Apr 05 14:52:29 2007 -0400"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Apr 06 08:14:45 2007 +1000"
      },
      "message": "Fix twin non-HAVE_ALTIVEC build.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "c6ec5cd14d829dca75b1d64b115489aada694142",
      "tree": "8c0bc97945ab13f54393fadaa4c09721c6aca7d1",
      "parents": [
        "63c703333a4f211401fa0403783771106b32ae76"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Apr 05 16:31:48 2007 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Apr 05 16:31:48 2007 +1000"
      },
      "message": "Bump libtwin revision\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "63c703333a4f211401fa0403783771106b32ae76",
      "tree": "13a7968b54b287c03d9000d53f9699b82104fc98",
      "parents": [
        "73b1b6aa2d81d1e0df90bf490321dee2a3e4deb6"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Thu Apr 05 11:28:17 2007 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Apr 05 15:47:38 2007 +1000"
      },
      "message": "Add gzip support for cursors\n\nThe cursors used by twin compress well, so allow twin_cursor to load a\ncompressed cursor file when zlib is present. In both cases,\nuncomressed cursors still work.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "73b1b6aa2d81d1e0df90bf490321dee2a3e4deb6",
      "tree": "5af7e02eee213ae620d8c9096a7ec9f2de0f5653",
      "parents": [
        "61dacbd33a231e584bf400c195969d2357feaefc"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Apr 03 14:31:39 2007 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Apr 03 14:31:39 2007 +1000"
      },
      "message": "twin_jpeg: add a query function to get image details from file\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "61dacbd33a231e584bf400c195969d2357feaefc",
      "tree": "27e3426a4d98eb53f4f4ee4501594874d8981f56",
      "parents": [
        "14e4fc659d17649a7575c5f6e53fce0c8927cb68"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Apr 03 13:13:13 2007 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Apr 03 13:13:13 2007 +1000"
      },
      "message": "twin_jpeg: don\u0027t enable DEBUG by default\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "14e4fc659d17649a7575c5f6e53fce0c8927cb68",
      "tree": "29f7b1887e36f9091d949f781dd6858d09a141b6",
      "parents": [
        "a83758e5ab818c6f144f8b7e39f367bb122fd56b"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Apr 03 13:12:35 2007 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Apr 03 13:12:35 2007 +1000"
      },
      "message": "png.h inclusion cleanup\n\nNo need to have it in the user header\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "a83758e5ab818c6f144f8b7e39f367bb122fd56b",
      "tree": "ab75b20eed13db1a95310707f7c40da7af0769a0",
      "parents": [
        "c485ccb40d72cf3ec286af30a66ae68632ed572c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Apr 03 13:11:55 2007 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Apr 03 13:11:55 2007 +1000"
      },
      "message": "Add simple jpeg loader based on libjpeg\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "c485ccb40d72cf3ec286af30a66ae68632ed572c",
      "tree": "9a701175c53107e40d3f21a6f2411b3664119a4b",
      "parents": [
        "3c6e347a1e98b56dea7605330f7d7e124172ea12"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Fri Mar 30 16:29:58 2007 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Mar 30 17:35:55 2007 +1000"
      },
      "message": "Fix make dist\n\ntwin_def.h wasn\u0027t defined in Makefile.am\u0027s sources list correctly, so\nmake dist fails. This change fixes the problem, referring to twin_def.h\nin its proper location.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "3c6e347a1e98b56dea7605330f7d7e124172ea12",
      "tree": "6a194442938d438b948291f890d5a5ff93ff265a",
      "parents": [
        "2ccc4ec8e0662d6afb441b0ed7719495b913578d"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Mar 30 16:50:07 2007 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Mar 30 16:50:07 2007 +1000"
      },
      "message": "Fix glyph width for ttf\n\nAs usual with glyph metrics, I only half understand what\u0027s going on there :-) From trial and error, it looks like the margin thing we apply for stroke font is no good for ttf, at least not using a margin does make things much nicer for me using ttf fonts\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "2ccc4ec8e0662d6afb441b0ed7719495b913578d",
      "tree": "344a83cf229cb6057eb89bbf30628ec256695c32",
      "parents": [
        "7aaf0c93b6030b9789ae481a9a6d1155a9f74ec1"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Mar 30 16:49:02 2007 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Mar 30 16:49:02 2007 +1000"
      },
      "message": "Fix twin_ttf to generate useable #include directive\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "7aaf0c93b6030b9789ae481a9a6d1155a9f74ec1",
      "tree": "010df1b67df34d5b9c3e7a4840b10817717ad884",
      "parents": [
        "c48266b56e7da69fe94785b62ac275517cf33f97"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Fri Jan 12 18:32:10 2007 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jan 22 14:26:14 2007 +1100"
      },
      "message": "Premultiply alpha channel on PNG images\n\nlibtwin expects pixmaps to be premultiplied with their alpha channel,\nbut loaded PNGs aren\u0027t. This change adds a generic function to do alpha\npremulitplication, and uses it on pixmaps loaded from PNG.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "c48266b56e7da69fe94785b62ac275517cf33f97",
      "tree": "97f26594d116f2fc0f960f138da5e96add53a773",
      "parents": [
        "262cbe9e5fa12f8b591756903511d0e15a96185e"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Jan 12 17:22:03 2007 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Jan 12 17:22:03 2007 +1100"
      },
      "message": "Add missing twin_feature.c\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "262cbe9e5fa12f8b591756903511d0e15a96185e",
      "tree": "1ab9a4dec807eb7c626d6a6b4d8fba43286c97fa",
      "parents": [
        "4d75f099fbb83303f67792fbdcd742cac6c9b3e1"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Dec 07 22:21:52 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Dec 07 22:21:52 2006 +1100"
      },
      "message": "Add some basic altivec support\n\nThis adds altivec versions of argb32_over_argb32 and\nargb32_source_argb32 operations and a bit of altivec\noptimisation to the fbdev put span code as well.\n\nIt could probably be further optimized, and with some\npatience, one could implement the full set of primitives\nfor altivec instead of just those two, but that\u0027s at\nleast a beginning. I haven\u0027t properly measured the\ndifference in performances yet. It is definitely faster\non my powerbook though.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "4d75f099fbb83303f67792fbdcd742cac6c9b3e1",
      "tree": "84bd80c935b37cb98acf24d55c2dbfcd6e6a18f8",
      "parents": [
        "5095e87610c4b1f748d15a3840000c3bb8d2a191"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Thu Dec 07 16:56:27 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Dec 07 17:28:36 2006 +1100"
      },
      "message": "Add build system support for altivec\n\nThis change to the libtwin build system detects altivec support, and\nsets cflags and a #define HAVE_ALTIVEC if found.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "5095e87610c4b1f748d15a3840000c3bb8d2a191",
      "tree": "d90d9347ba62584eb8e3b60c8d988770ccf46a31",
      "parents": [
        "0c6a63cd61a66168e7f9f4d4c248e519a920f3fb"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Mon Dec 04 16:45:59 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Dec 05 11:34:20 2006 +1100"
      },
      "message": "libtwin includes are in $(includedir)/libtwin\n\nThis change modifies the twin sources to expect twin libraries in the\nlibtwin/ directory. Consequently, we need to move the headers (and\nsources to keep things clean) into the libtwin/ directory in the source\ntree.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "0c6a63cd61a66168e7f9f4d4c248e519a920f3fb",
      "tree": "aa244a7d6e210ba33cad161dd59b09c326c799e8",
      "parents": [
        "aa7984d147b5ef09ad287a2a2fb034050a5d8e7c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Dec 04 09:35:37 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Dec 04 09:35:37 2006 +1100"
      },
      "message": "Remove -fno-strict-aliasing and fix aliasing issue\n\nRemove -fno-struict-aliasing as I think the code is generally\nsafe due to the proper use of unions when an object can have\nmultiple different types. twin_timeout.c did have some dodgy\ncasts that I removed.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "aa7984d147b5ef09ad287a2a2fb034050a5d8e7c",
      "tree": "095d0963cf4c0d07998200e9708b828f1244248d",
      "parents": [
        "74bc25e9961347b1fce527ae38ac9e73670b6ee7"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Dec 04 08:58:07 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Dec 04 08:58:07 2006 +1100"
      },
      "message": "Stop widgets update flicker with immediate refresh\n\nThis patch disables refresh around widget refresh operations\n(from the toplevel object) so that individual widgets get\nrefreshed at once and thus don\u0027t flicker. This fixes the\nflicker with the demos\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "74bc25e9961347b1fce527ae38ac9e73670b6ee7",
      "tree": "ce0990d215063422dc4030dac44d2893128a76b3",
      "parents": [
        "bac427661968d5960c5942858d03103d0ebd2c35"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Dec 04 08:44:33 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Dec 04 08:44:33 2006 +1100"
      },
      "message": "Add support for immediate damage refresh to fbdev\n\nThis makes the fbdev backend refresh damaged areas directly from\nthe screen-\u003edamaged callback instead of delayed to a \"work\". The\nwork is still there to handle console switches. In order to avoid\nflicker and artifacts, we also disable refresh around cursor\nupdates and window content.\n\nThe demos flicker a lot in this mode, so they\u0027ll have to be fixed\nto disable / enable refresh around some operations too (probably in\nthe widget code), but the overall performances are better for my\napplication as mouse cursor no longer triggers giant updates when\nmoving while something else is updating\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "bac427661968d5960c5942858d03103d0ebd2c35",
      "tree": "2e7816571932d8b1a9484537f116d2ba910cbcc1",
      "parents": [
        "731925e9f86d9c0820cd95d1117fdf549d497ed2"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 19:05:51 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 19:05:51 2006 +1100"
      },
      "message": "Fix cursor image handling bugs\n\nFirst, don\u0027t destroy the previous cursor when relacing it as it\u0027s\ncommon for applications to store a bunch of cursor images and flipping\nthem in, they don\u0027t want to have to re-create them each time.\n\nThen, there was a NULL-deref when setting the cursor to NULL to\nremove it\n\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "731925e9f86d9c0820cd95d1117fdf549d497ed2",
      "tree": "e8ba73ed4499069b26f536a989a6472c16667956",
      "parents": [
        "0b38fab97b33ff625ef8b171176d719d76df951e"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 16:35:43 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 16:35:43 2006 +1100"
      },
      "message": "Space some definitions in twin.h\n\nGives me some air to breath\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "0b38fab97b33ff625ef8b171176d719d76df951e",
      "tree": "2cfd071cc556a71f50b1092f7976eaca5c27dd3a",
      "parents": [
        "ec9d90b809f5ed8507f7e6a5746d2991c54f5912"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 16:34:41 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 16:34:41 2006 +1100"
      },
      "message": "Temporary key events with fbdev\n\nThis is temporary as I need to implement a proper keyboard handling,\nprobably via the event device, and an input method mecanism for\ntranslating unhandled raw key down events into ucs4.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "ec9d90b809f5ed8507f7e6a5746d2991c54f5912",
      "tree": "cadaae5d76e20bec18b4bfb78146b46e6cc88aa0",
      "parents": [
        "c91bf27e592e509639c61dc735fdd7f7e94815fb"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 16:32:37 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 16:32:37 2006 +1100"
      },
      "message": "Add a screen hook that allows to install a toplevel event filter,\ncan be used to handle global application events, like console\nswitch related events (once I take the primitive keyboard stuff\nout of twin_fbdev)\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "c91bf27e592e509639c61dc735fdd7f7e94815fb",
      "tree": "519a89fb760dd714934da788ffb8bec9ba0b511a",
      "parents": [
        "1ef6eaa1c4c6f895546fe9ad42d40e572be4a8aa"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 16:29:38 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 16:29:38 2006 +1100"
      },
      "message": "Add some damage handling to windows, to be typically used by windows\nwho have a drawproc installed. I intend to use that for some apps that\ndirectly paint in windows rather than using the widgets mecanism\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "1ef6eaa1c4c6f895546fe9ad42d40e572be4a8aa",
      "tree": "9a5ca3da3f4f7baa18e54ddbbad6aae712b86e6b",
      "parents": [
        "223adfae7caab8603c22159db00af7c08da9023c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 16:24:28 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun Dec 03 16:24:28 2006 +1100"
      },
      "message": "Rework clip handling. The clip rectangle and the origin of drawing\nare now two different things, so that you can clip drawing within\nchanging your coordinate system.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "223adfae7caab8603c22159db00af7c08da9023c",
      "tree": "fd1db64bd93de378c712c6c455b5b1e77050fe84",
      "parents": [
        "e65dea139ee4917bb87f51254164317952717586"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Dec 01 23:46:54 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Dec 01 23:46:54 2006 +1100"
      },
      "message": "Fix crash in twin_composite if msk \u003d\u003d NULL\n\nOops, introduced by the transform changes, I wasn\u0027t testing\nmsk for NULL before dereferencing it in one spot.\n\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "e65dea139ee4917bb87f51254164317952717586",
      "tree": "6701fe91bd7d080cc129d144bc0c703a5a602328",
      "parents": [
        "0e9d82417bbb8ce7a1ffa97f403a7698ba7e9a6b"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Fri Dec 01 15:25:34 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Dec 01 16:40:12 2006 +1100"
      },
      "message": "Install libtwin.pc\n\nThe existing twin.pc file was generated, but not installed. This change\ninstalls it (as libtwin.pc), and uses the more flexible TWIN_DEP\nvariables.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "0e9d82417bbb8ce7a1ffa97f403a7698ba7e9a6b",
      "tree": "b16d0bbc8c0aaeeef89573dd830a79779848d939",
      "parents": [
        "1650078f6a0aaf062094728c877c3e294611e182"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Fri Dec 01 15:06:27 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Dec 01 16:39:48 2006 +1100"
      },
      "message": "Add png support to libtwin build\n\nThis change adds twin_png to the default build of libtwin.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "1650078f6a0aaf062094728c877c3e294611e182",
      "tree": "255ed573bb777d8eafa65d4e5a8df3e3fbaf54cd",
      "parents": [
        "8b4237f8b2a8de2a986df2af078fec25218394c2"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Fri Dec 01 14:52:41 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Dec 01 16:39:14 2006 +1100"
      },
      "message": "Allow features to be disabled\n\nThis change adds --disable options to prevent building\nthe x11, fbdev, linux-mouse and ttf components, even if\nthey\u0027re found by pkgconfig.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "8b4237f8b2a8de2a986df2af078fec25218394c2",
      "tree": "fde4909221e8cf7d937d0fa4aba9a805a5e27ea7",
      "parents": [
        "6f9746f3041217574205137cba1f279afa5b2a13"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Fri Dec 01 14:13:28 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Dec 01 16:38:34 2006 +1100"
      },
      "message": "Only create one libtwin library\n\nLooks like the idea of splitting up the twin libraries into\ncomponenets (eg, libtwin-x11.so for x11-specific stuff) wasn\u0027t\nworking too well.\n\nInstead, we should stick to the one shared library, whose contents\nchange depending on the available dependencies.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "6f9746f3041217574205137cba1f279afa5b2a13",
      "tree": "98274c963ac18e145a3f47006e4d153bb675a072",
      "parents": [
        "2bc783ef63f68a0a9ab9f2f80b1ceaca39b4a278"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Thu Nov 30 13:34:21 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Dec 01 16:35:16 2006 +1100"
      },
      "message": "Move twin demo binaries to twin_demos/\n\nThis change moved the twin demo binaries to the twin_demos\nsubdirectory.\n\nAlso, don\u0027t include these demos in the install - they can be run from\nthe build directory instead.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "2bc783ef63f68a0a9ab9f2f80b1ceaca39b4a278",
      "tree": "f805ac532b23320cdd84e984dfd4d424c6565e66",
      "parents": [
        "1a9d1d716f6fc188c490f0638eccc57dfb6c10fb"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Thu Nov 30 12:17:01 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Dec 01 14:21:14 2006 +1100"
      },
      "message": "Recursive make considered harmful\n\nChange the Makefile.am to not use recursive make - this will allow\nfuture dependencies on the twin library without too much automake pain.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "1a9d1d716f6fc188c490f0638eccc57dfb6c10fb",
      "tree": "d5480de6efde25dbed814c44c926ad2bac038250",
      "parents": [
        "373a393d3ba79158ece9c120d370f2cccba59fe8"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Wed Nov 29 21:13:41 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Nov 29 21:25:22 2006 +1100"
      },
      "message": "Install libtwin headers\n\nThis patch installs the libtwin headers in\n$prefix/include/libtwin/ during make install\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "373a393d3ba79158ece9c120d370f2cccba59fe8",
      "tree": "d1964948170a4c528f95dc4d9498dae3baebbf07",
      "parents": [
        "fa0e71e0ee22ec9401732d9ac8b3c1d1fd9d2c31"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Wed Nov 29 20:29:00 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Nov 29 21:00:31 2006 +1100"
      },
      "message": "Library version info cleanup\n\nSmall cleanup of libtool version arguments - only specify\n-version-info when building libraries.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "fa0e71e0ee22ec9401732d9ac8b3c1d1fd9d2c31",
      "tree": "a09ecc26c051c7859226e3ccf4d00045be8e1e11",
      "parents": [
        "d575e2b4fd8249e0ae584b0b6401ff6b8dd7d2c4"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Nov 29 20:59:18 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Nov 29 20:59:18 2006 +1100"
      },
      "message": "Add mouse enter/leave events for pixmaps/windows.\n\nThe current \"target\" is the one under the mouse and also\nreceives mouse movements and button down events. However,\nonce the button has been pressed in a window, all subsequent\nmouse events will be sent to that window (and no mouse leave\nwill be generated) until the button has been released.\n\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "d575e2b4fd8249e0ae584b0b6401ff6b8dd7d2c4",
      "tree": "440cfbf14d2dce9c374296a3d078e0ce523b5207",
      "parents": [
        "2f714ca431d6e592c91d55f2c5619afdb4a3b8a1"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Wed Nov 29 19:38:10 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Nov 29 19:51:28 2006 +1100"
      },
      "message": "Move demo applications to twin_demos subdirectory\n\nThis change moves the twin demo applications to a new subdirectory\n(twin_demos), and updates the auto{conf,make} setup to suit.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "2f714ca431d6e592c91d55f2c5619afdb4a3b8a1",
      "tree": "1fca19d8458d48aeb2283a9aaa6d2c56bf6b7d2e",
      "parents": [
        "ce360a000076a8cd38f88ee4c4806fcae4fe02dd"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@ozlabs.org",
        "time": "Wed Nov 29 17:02:13 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Nov 29 17:17:24 2006 +1100"
      },
      "message": "Compile twin as separate libraries.\n\nThis change separates twin into a set of libraries (libtwin,\nlibtwin-x11, libtwin-fbdev and libtwin-mouse).\n\nAlso, generally improve the autoconf magic to make this all work.\n\nSigned-off-by: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "ce360a000076a8cd38f88ee4c4806fcae4fe02dd",
      "tree": "572338929073dc0936cdc08bcdc03b816071420f",
      "parents": [
        "a9ae3dc5ea52621f7092a60168c5da794891847b"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt benh@kernel.crashing.org",
        "email": "benh@tika.localdomain",
        "time": "Tue Nov 28 22:47:49 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Tue Nov 28 22:47:49 2006 +1100"
      },
      "message": "Fix copy/paste bogon on 16 bits tranform\n\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "a9ae3dc5ea52621f7092a60168c5da794891847b",
      "tree": "52357bb5840b60bcb13b615a197fc6e10c5b592f",
      "parents": [
        "56d2a170bcddf2906d7ce6b5ba27a14c44947013"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt benh@kernel.crashing.org",
        "email": "benh@tika.localdomain",
        "time": "Tue Nov 28 19:43:50 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Tue Nov 28 19:43:50 2006 +1100"
      },
      "message": "Add some basic affine transform support to compositing.\n\nThe transform matrix is currently stored in the pixmap, though\nit is only ever used when that pixmap is a source of a composite\noperation (not for windows refresh, damage, etc...) thus I might\nmove it to twin_operand_t.\n\nThe implementation is totally sub-optimal but it gives a working\nbasis. As Keith suggested, we could use a bresenham-type algorithm\nin the transform loop to avoiding having to transform every pixel\nthrough the matrix. That will probably significantly improve\nperformances. There are also minor optimisations that can be done\nin a few corners.\n\nAlso the matrix is used as a reverse transform, which can\nbe confusing. I\u0027ll fix it one of these days to operate on an\ninverted matrix instead.\n\nWhile playing with it, I noticed several issues with the existing\nnon-transform composite function. A bug I fixed related to masks,\nbut also the source clipping seems to be busted.\n\nIt adds the clip top/left to the src_x/y \u0026 msk_x/y which doesn\u0027t\nmake much sense to me and doesn\u0027t clip when fetching pixels, thus\nforcing you to have perfectly adjusted width and height args to\ntwin_composite() that match the source image size (which stops\nmaking sense when using transforms). I haven\u0027t fixed it yet but\nI will do so, possibly by merging xform and simple into one\nfunction (thus always using a temporary span buffer) or by adding\na bit of clipping code to the simple function\u0027s inner loop.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "56d2a170bcddf2906d7ce6b5ba27a14c44947013",
      "tree": "d7c078d0ccc75a629f4fac7741e48bf6bd493a0b",
      "parents": [
        "d05c451f30a391b5fe582fa5a0d5e7a32673b57a"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt benh@kernel.crashing.org",
        "email": "benh@tika.localdomain",
        "time": "Tue Nov 28 12:14:03 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Tue Nov 28 12:14:03 2006 +1100"
      },
      "message": "Fix timeout handling with more than one timeout\n\nThe code would do a delete/insert pass while walking the\nqueue which had the effect of breaking the \"order\" linkage\n(insert re-initializes pretty much everything).\n\nI fixed that by adding a new _twin_queue_reorder() which\nis to be called on an element that is to be re-ordered and\nwhich works at any time, even during a queue walking and\nusing it from the timeout code.\n\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "d05c451f30a391b5fe582fa5a0d5e7a32673b57a",
      "tree": "4c5c9e29ac35f8812dbe4561b1810a48f2a1823a",
      "parents": [
        "f58ed76153b4469c4241003e3371a0a2dfc9bf7e"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt benh@kernel.crashing.org",
        "email": "benh@tika.localdomain",
        "time": "Mon Nov 27 17:29:47 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Mon Nov 27 17:29:47 2006 +1100"
      },
      "message": "Add a basic .png loader using libpng\n\nIf you use that, you also need to link on libpng.\n\nOnly quickly tested for now, there are some weird things with\nlibpng that I might not have gotten right, some comments are\nwelcome.\n\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "f58ed76153b4469c4241003e3371a0a2dfc9bf7e",
      "tree": "c9b6f4c67853967249b838ff3f36e8a7a6a14da9",
      "parents": [
        "edfcd07f8c11d1eea81781d782f6840dfeec8013"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sun Nov 26 19:23:29 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sun Nov 26 19:23:29 2006 +1100"
      },
      "message": "Add back support for pre-converted ttf fonts. The metrics generated by\nthe converter might still be a bit dodgy, I\u0027d appreciate somebody who\nknows that stuff better to have a look :-)\n\nBasically, I added back the type \u00272\u0027 operation to the glyph data parser\nthat was used by the previous ttf parser before it got removed and fixed\nit up to work in the new context. I pondered using the \u0027c\u0027 \"generic\"\ncurve operation instead and put the burden of conversion in the converter\napplication, but that would have caused bigger converted font files,\nso I chose to keep the old op.\n\nVarious bits \u0026 pieces of the font code are modified to cope with the\nnon-stroke fonts (mostly there is no \"pen\" to account for and we don\u0027t\nconvolve but just append the glyph path to the current path).\n\nFull support for unicode pages is back. The stroke font has only page 0\nfor now (the initial code seemed to have more tables I didn\u0027t feel like\nre-converting that so if you want stroke font with more unicode pages,\nit\u0027s up to you to dig the old format and convert it to detect snaps and\nuse curves). We may want to add arguments to twin_ttf converter to only\nconvert a subset of the pages in a font for compactness.\n\nExamples still use the built-in font but it\u0027s easy enough to change the\ng_twin_font global and link a generated font file in (tested with\nVera.ttf). I still need to add a better way to deal with multiple fonts\nat once."
    },
    {
      "commit": "edfcd07f8c11d1eea81781d782f6840dfeec8013",
      "tree": "37ad7aeabdd67cf68fe25273af67c6c08d28e287",
      "parents": [
        "71a507fe21e135b98f6b43325c33e95220399024",
        "ad435d8881c1a09d95d1895ecc11efe601413c2f"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@neko.keithp.com",
        "time": "Sat Nov 25 10:05:58 2006 -0800"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@neko.keithp.com",
        "time": "Sat Nov 25 10:05:58 2006 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://git.freedesktop.org/git/twin\n"
    },
    {
      "commit": "71a507fe21e135b98f6b43325c33e95220399024",
      "tree": "e4c104b83edc07962970c5dac4352db830d0a404",
      "parents": [
        "821e5b92dcd4f118caa234b0ffaa0f59d192e6bf"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@neko.keithp.com",
        "time": "Sat Nov 25 10:05:44 2006 -0800"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@neko.keithp.com",
        "time": "Sat Nov 25 10:05:44 2006 -0800"
      },
      "message": "Change license on Carl\u0027s files\n"
    },
    {
      "commit": "ad435d8881c1a09d95d1895ecc11efe601413c2f",
      "tree": "5c1453cbbe0dbaed16495154346711f829f7333f",
      "parents": [
        "759ca6d1698d7642cd600e8da1544b2e6f552948"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 14:07:25 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 14:07:25 2006 +1100"
      },
      "message": "Remove duplicate twin_cursor.c"
    },
    {
      "commit": "759ca6d1698d7642cd600e8da1544b2e6f552948",
      "tree": "ba5a1e4b8a8065f1c114d81a72eca5f71dce64b6",
      "parents": [
        "2d65ff40ba581ff2f24155eed4e83f56e28c38c3"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 14:03:53 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 14:03:53 2006 +1100"
      },
      "message": "Add ftwin test program for fbdev \u0026 linux mouse\n\nNote the example cursor file is borrowed from bluecurve"
    },
    {
      "commit": "2d65ff40ba581ff2f24155eed4e83f56e28c38c3",
      "tree": "f9423d6944dfabac82148aaae2a9b18f118ea3ac",
      "parents": [
        "8f4bbfd29a7182f1f0b53e1776a330689c9d60a7"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 14:00:09 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 14:00:09 2006 +1100"
      },
      "message": "Simple linux mouse driver\n\nUses /dev/input/mice, uses the accel code from kdrive"
    },
    {
      "commit": "8f4bbfd29a7182f1f0b53e1776a330689c9d60a7",
      "tree": "4be78e2d125afe1f728d778313e21869d4204d33",
      "parents": [
        "8a73742a5ff96cfad0aff4e4fcb9ce1148d05e77"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 13:59:28 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 13:59:28 2006 +1100"
      },
      "message": "Add linux fbdev display and keyboard backend\n\nThe mode is whatever was set when launching, though it would be trivial\nto add support for mode setting.\n\nKeyboard support is very primitive for now, basically it provides an\nESC key to kill the app and F1...F10 to console switch.\n\nNote also that the fbdev is not switched to the front by default, so\nyou can setup your whole windowing system and only activate it all\nat once when ready."
    },
    {
      "commit": "8a73742a5ff96cfad0aff4e4fcb9ce1148d05e77",
      "tree": "8f33a984b51ea77a3eaf2ed85214a6e4230fa0be",
      "parents": [
        "821e5b92dcd4f118caa234b0ffaa0f59d192e6bf"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 13:54:35 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 13:54:35 2006 +1100"
      },
      "message": "Add cursor pixmap support\n\nThis adds support for a cursor pixmap that is always on top and\nfollows mouse movements.\n\nIt also provides a function for importing a cursor image from an\nX.org ARGB cursor file.\n\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "821e5b92dcd4f118caa234b0ffaa0f59d192e6bf",
      "tree": "163aeeee25ccacb7c76d917c6ffcae379cb1289f",
      "parents": [
        "2eac2e0ac2a1f6aa34e58459c40289575ece19af",
        "b8a7711b37148b94649ccbfbc91b2ba8b90a67dd"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 13:30:03 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 13:30:03 2006 +1100"
      },
      "message": "Merge branch \u0027master\u0027 of git+ssh://git.freedesktop.org/git/twin\n"
    },
    {
      "commit": "2eac2e0ac2a1f6aa34e58459c40289575ece19af",
      "tree": "d3b059d8d6061dab2ada075965096bc2e16a65ec",
      "parents": [
        "30abf238994625669eef90b0aa0b7dd209c7a2d9"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 13:25:14 2006 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@tika.localdomain",
        "time": "Sat Nov 25 13:25:14 2006 +1100"
      },
      "message": "Whichever autoconf/automake I\u0027m using likes having AC_CONFIG_AUX_DIR before AM_INIT_AUTOMAKE()\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e"
    },
    {
      "commit": "b8a7711b37148b94649ccbfbc91b2ba8b90a67dd",
      "tree": "1ab96a91ed43fd0b35e8271d4bc02e4a4514b2f5",
      "parents": [
        "30abf238994625669eef90b0aa0b7dd209c7a2d9"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@neko.keithp.com",
        "time": "Fri Nov 24 18:24:47 2006 -0800"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@neko.keithp.com",
        "time": "Fri Nov 24 18:24:47 2006 -0800"
      },
      "message": "Change from MIT to LGPL license\n"
    },
    {
      "commit": "30abf238994625669eef90b0aa0b7dd209c7a2d9",
      "tree": "9595bc5a67aeb7db543cfc259f791c884671a076",
      "parents": [
        "1175bd52f83545cfb2560f4ee25e866974dfc8c4"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Fri Feb 03 06:40:08 2006 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Fri Feb 03 06:40:08 2006 +0000"
      },
      "message": "Eliminate spurious segment by moving to initial arc point (sigh).\n"
    },
    {
      "commit": "1175bd52f83545cfb2560f4ee25e866974dfc8c4",
      "tree": "ffa0dfc64472c7a7cfd789ba24c1b767c1ce0ecb",
      "parents": [
        "d671e983063b71cddc0a2034e51c1fa05d112dc4"
      ],
      "author": {
        "name": "Carl Worth",
        "email": "cworth@cworth.org",
        "time": "Thu Feb 02 23:03:55 2006 +0000"
      },
      "committer": {
        "name": "Carl Worth",
        "email": "cworth@cworth.org",
        "time": "Thu Feb 02 23:03:55 2006 +0000"
      },
      "message": "Add x11 as a required package, (cairo no longer pulls this in by default).\nTrack changes in cairo API to bring forward to be compatible with cairo\n1.0.x. Remove some unused variables.\nAdd missing includes of cairo-xlib.h, X11/Xutil.h, and string.h.\nAdd missing return value and remove unused variables.\n"
    },
    {
      "commit": "d671e983063b71cddc0a2034e51c1fa05d112dc4",
      "tree": "6e441500d25ce1bf29999cf5335f156d42bc046c",
      "parents": [
        "c9e17f96155bed7f32a5dfdf3d5ec7ef902e6ae5"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Fri Oct 29 17:33:03 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Fri Oct 29 17:33:03 2004 +0000"
      },
      "message": "add demoline + demospline\nAdd cap styles, widget shapes, text alignment and arcs Change\n    circle/ellipse API.\nCapture button events.\nUse Lozenge shape for output\nDrag lines with the mouse\ndrag splines with the mouse\nmove \u00271\u0027 right a bit\nConvert dispatch result to boool\nwas mis-computing delegate and crashing when window-\u003eevent was NULL\nMap X button info to twin mask\ndraw different stuff.\n"
    },
    {
      "commit": "c9e17f96155bed7f32a5dfdf3d5ec7ef902e6ae5",
      "tree": "09ec67d0d98cb69a5ed9aa3bec685e3310ab5cb2",
      "parents": [
        "143d1a70aab4e551bccece0fe8845f7be77fb8d9"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 27 20:34:55 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 27 20:34:55 2004 +0000"
      },
      "message": "Boxes have no paint\nConvert to a widget\nAlways paint background, even if transparent\nshow clock widget\n"
    },
    {
      "commit": "143d1a70aab4e551bccece0fe8845f7be77fb8d9",
      "tree": "0803b77840d76b90a401a83e24b275917fd09765",
      "parents": [
        "4e67aeb9a6aaf0852ab9b6aba46c21cb483cdf54"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 27 20:09:36 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 27 20:09:36 2004 +0000"
      },
      "message": "Add calculator and missing header files\nChange type name from twin_layout_t to twin_box_dir_t Create new\n    twin_widget_layout_t holding layout preferences. Add copy_geom field to\n    widget to make widgets look the same Add button signals and signal\n    proc. Fix box layout to sum stretch along axis and minimize normal\nAdd calculator demo\n"
    },
    {
      "commit": "4e67aeb9a6aaf0852ab9b6aba46c21cb483cdf54",
      "tree": "6427b01e01f84eff7f846aa5f7d087d3b4b25f9f",
      "parents": [
        "1b19cddc722e1a4e1d2a7f8d4a8565ee1551d6a9"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 27 06:07:35 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 27 06:07:35 2004 +0000"
      },
      "message": "Move bevel routine to twin_widget for sharing\nChange order of timeout vs work, making work come last as that\u0027s where\n    redisplay occurs.\nOops. Argument order wrong in twin_pixmap_damage call\nMake button italic to test\nChange names of formals to match prototype\n"
    },
    {
      "commit": "1b19cddc722e1a4e1d2a7f8d4a8565ee1551d6a9",
      "tree": "fd710a56e801c4bc7bd4464a4e7fe3b4175cd1d7",
      "parents": [
        "89ad67caa2f0e8454ccacb8efa2bd1eee94c0566"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 27 02:46:40 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 27 02:46:40 2004 +0000"
      },
      "message": "Paint polygons instead of stroked lines for button edges\nSnap origin to pixel grid\nStrip newline from ctime output\n"
    },
    {
      "commit": "89ad67caa2f0e8454ccacb8efa2bd1eee94c0566",
      "tree": "8592d14fbe37f3ebcc825e8ea4b5bf92bf30986d",
      "parents": [
        "c29f62fcb77cd79f4a4739e0cdc241aed539ed4c"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Oct 26 19:56:19 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Oct 26 19:56:19 2004 +0000"
      },
      "message": "Add button widget\nGrab button down inside client area. Add button widget\nTest button widget\nPermit subclassing; add offset to make text shift in button\nAdd _twin_widget_contains to test inclusion\nGrab button down inside client area\nMake hello window larger\n"
    },
    {
      "commit": "c29f62fcb77cd79f4a4739e0cdc241aed539ed4c",
      "tree": "a674611a89967657cc1b4900f17956d75c66f803",
      "parents": [
        "6df04a58f5078741ac7d5a66492814eec66f027a"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Oct 26 06:15:42 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Oct 26 06:15:42 2004 +0000"
      },
      "message": "Add initial widget implementation.\nFix numbers to have the same width.\nAdd new relative-origin clip setting function\nChange enumerated constants to include Twin prefix\nAdd new widget-based demo\nStart widget based demo\n"
    },
    {
      "commit": "6df04a58f5078741ac7d5a66492814eec66f027a",
      "tree": "bd0db1ed504f56b12f116160062d1d7ac5883688",
      "parents": [
        "c905d1c40ad88707f549a56e631c4eaff756378b"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Mon Oct 25 19:09:36 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Mon Oct 25 19:09:36 2004 +0000"
      },
      "message": "Add dispatch stuff to manage timeouts, workprocs and files. Remove thread\n    stuff\nSplit demos into separate files\nMake drawing origin match clip rectangle.\ntwin_fedit Add glyph editor to CVS to preserve it\nAdd scalable icons\nSeparate \u0027closing\u0027 a subpath from \u0027finishing\u0027 a subpath; the former adds a\n    point back to the start while the latter just leaves the path unclosed\n    and prepares for a new subpath.\nEliminate locking, add clipping.\nClean up title drawing, use clipping\nEliminate locking, use dispatch stuff\n"
    },
    {
      "commit": "c905d1c40ad88707f549a56e631c4eaff756378b",
      "tree": "d0fb88cc0092666bece5f2516888ab29d58378b9",
      "parents": [
        "dc7477b9826f7cb6e95d591698daaf5251e65bf4"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 06 06:40:57 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 06 06:40:57 2004 +0000"
      },
      "message": "Add patterns.\nAdd screen backgrounds\nEliminate spurious border bits\nAdd text display applet\n"
    },
    {
      "commit": "dc7477b9826f7cb6e95d591698daaf5251e65bf4",
      "tree": "37bb92d430656e47d9d307cd25cea9822f1a48e4",
      "parents": [
        "a8611583a5e0e2539be9841c8d5a6e37b7cff7a6"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 06 00:11:27 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Wed Oct 06 00:11:27 2004 +0000"
      },
      "message": "Add the beginings of event dispatch and a bit of window management\n    including titles. Default event dispatcher does restacking and motion.\n"
    },
    {
      "commit": "a8611583a5e0e2539be9841c8d5a6e37b7cff7a6",
      "tree": "b32b6bb4ee9d250511beb2d7daf3399f28de1d2b",
      "parents": [
        "2dd498a0b7c3f3e8de3451f881f0e0de62f05ff0"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Oct 05 18:42:53 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Oct 05 18:42:53 2004 +0000"
      },
      "message": "Update API to use twin_ types for most everything.\nRework snapping to correctly snap vertical and horizontal text on pixel\n    boundaries.\nChange clock watermark\n"
    },
    {
      "commit": "2dd498a0b7c3f3e8de3451f881f0e0de62f05ff0",
      "tree": "7147de612ae2e6de9641a4ed344435eee3ee55bb",
      "parents": [
        "3c0c7451e419104918657d05ee9ba86c36315cd7"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Mon Oct 04 20:44:28 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Mon Oct 04 20:44:28 2004 +0000"
      },
      "message": "Recognize a few special cases to speed up operations\nFix angular problems in hand position by rotating everything 90 degrees.\n"
    },
    {
      "commit": "3c0c7451e419104918657d05ee9ba86c36315cd7",
      "tree": "9727f4b2cf9d1a8c7a0b0b3ab0067b95f1a5ff1e",
      "parents": [
        "e27025eda79dbf6428c20d2d0dd635ddffaa3fba"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Mon Oct 04 08:30:35 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Mon Oct 04 08:30:35 2004 +0000"
      },
      "message": "Delete old glyph representation support code.\nOops -- overflow not handled correctly in distance functions.\nReplace new glyphs with versions using splines.\nWhack around the default presentation a bit more\n"
    },
    {
      "commit": "e27025eda79dbf6428c20d2d0dd635ddffaa3fba",
      "tree": "c63fc6037dc2e9c5e92086be642766669a56c11e",
      "parents": [
        "1b7271c78065d6a1ab3396df916529fc7958b0e2"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Mon Oct 04 07:49:49 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Mon Oct 04 07:49:49 2004 +0000"
      },
      "message": "Fix a clipping bug\nChange glyph representation to allow splines and include metrics.\nAdd some new helper functions.\nExpose _twin_path_scurve for glyphs\nIncrease sin table precision.\nFix off-by-one error in y position. Lock screen while adding expose damage\nChange clock appearance. Use corrected glyph metrics\n"
    },
    {
      "commit": "1b7271c78065d6a1ab3396df916529fc7958b0e2",
      "tree": "82c60e56429615c34e52843feb215c510850bf9e",
      "parents": [
        "45152588227377efb4aac96710648d519ccd75dc"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Sat Oct 02 03:07:26 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Sat Oct 02 03:07:26 2004 +0000"
      },
      "message": "Add put_begin to screen structure so that the backend can batch updates.\n    Add twin_int_to_fixed. Inline twin_fixed_mul and twin_fixed_div using\n    int64_t. Add twin_text_metrics_utf8. Hard-code the max number of\n    vertices in a glyph. Set various ICCCM properties to make X wms happy.\nUse better approximation of ellipse major axis radius when drawing circles.\nCompiler warning.\nDelete duplicate twin_over definition\nAllow for multiple clocks, and add watermark. Note that text metrics are\n    quite broken currently.\n"
    },
    {
      "commit": "45152588227377efb4aac96710648d519ccd75dc",
      "tree": "489d74588a78a164c91099dc9e6a8a93bc75399d",
      "parents": [
        "531d39cc7ae4333856661395b0d62f8f7b62c003"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Thu Sep 30 17:23:38 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Thu Sep 30 17:23:38 2004 +0000"
      },
      "message": "Add twin_x11.h\n"
    },
    {
      "commit": "531d39cc7ae4333856661395b0d62f8f7b62c003",
      "tree": "16c51f9a3cbe10448076b9491a807c08b4efb0a1",
      "parents": [
        "c3b1b799fe346ef7211ba614bf6c44396e411590"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Thu Sep 30 17:23:07 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Thu Sep 30 17:23:07 2004 +0000"
      },
      "message": "Handle unhinted text.\nAdd helper functions\nLock pixmaps during drawing\nDisable screen updates while applications are busy\nAdd threads to manage events and redisplay\nPaint a clock\n"
    },
    {
      "commit": "c3b1b799fe346ef7211ba614bf6c44396e411590",
      "tree": "c0c8825a0eadb3d5cc476feb2ea28dac0fd44550",
      "parents": [
        "f60f70c6bb29ac8d59a5416a1bdcd6cc3dd83087"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Sep 28 05:42:36 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Sep 28 05:42:36 2004 +0000"
      },
      "message": "Add some more fixed point functions\nReimplement text snapping. Note that things are snapped to user units, not\n    pixels. Snapping to pixels requires some thought about rotating\n    transformations.\nOops. Closed paths don\u0027t necessarily need to join ends, but circles do.\nRandom new tests.\n"
    },
    {
      "commit": "f60f70c6bb29ac8d59a5416a1bdcd6cc3dd83087",
      "tree": "544f841b972cf2d0ad950d936ad8fb6cf6a33965",
      "parents": [
        "9020db18ff228c628758f4766bad1a148e4dedbc"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Mon Sep 27 21:28:31 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Mon Sep 27 21:28:31 2004 +0000"
      },
      "message": "Add affine transformation support. Fix convex hull to eliminate all points\n    colinear with extreme. Note that text snapping is currently broken.\n"
    },
    {
      "commit": "9020db18ff228c628758f4766bad1a148e4dedbc",
      "tree": "5d2c6ad0896b6020bfdd86a4d673d38882efd63d",
      "parents": [
        "4a7e68c133df46045206d2ab8b21f2f1a6a2dd10"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Sun Sep 26 09:44:29 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Sun Sep 26 09:44:29 2004 +0000"
      },
      "message": "Eliminate special case for closed paths. Just draw caps at both ends and\n    accept that the resulting path isn\u0027t minimal in all cases. This\n    eliminates the weird results from said attempted minimal path with\n    large pens and small curves. It also eliminated a lot of extra code\n    from this function.\nFix font baseline value (should be 9). Take pen size into account when\n    computing positions so that glyphs rest on the baseline instead of\n    painting on top of it.\nShow baseline in huge text sample\n"
    },
    {
      "commit": "4a7e68c133df46045206d2ab8b21f2f1a6a2dd10",
      "tree": "87cc695cd36eb0dc12a25e70010ed473290fc40b",
      "parents": [
        "997dfa18b7a1d01327da597ab4a94eefc95321af"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Sun Sep 26 09:23:23 2004 +0000"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Sun Sep 26 09:23:23 2004 +0000"
      },
      "message": "Hmm. Not sure this is right, but I\u0027m giving it a try. Recognize closed\n    paths and attempt to construct two disjoint paths as their convolution\n    with the pen. This appears to break when the path has a radius of\n    curvature smaller than the radius of the pen. I\u0027m committing it to CVS\n    mostly so I don\u0027t lose the code; I will shortly commit a patch which\n    eliminates the check for a closed path.\nOh, one correct change is to _twin_path_leftpoint which used to try to be\n    clever about point selection. Now that pens are forced to be convex,\n    the correct point to use is the one furthest from the line.\nIgnore subpaths containing a single point. Add \u0027twin_path_append\u0027 to glue\n    one path into another.\nAdd debug output that shows vertices of polygons\nCode to test convolution change mentioned above\n"
    }
  ],
  "next": "997dfa18b7a1d01327da597ab4a94eefc95321af"
}
