Message-ID: <01BB966F.DC056D20@line32.du.tele.net> From: Remo Fleckinger To: "'DJGPP'" Subject: Hi Merlin. Date: Fri, 30 Aug 1996 12:36:06 +-200 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="---- =_NextPart_000_01BB966F.DC4890A0" ------ =_NextPart_000_01BB966F.DC4890A0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Here's again Remo. I thank you very much for your help. I've got the Allegro library now = and I used it in my programm. I think it works now very well. I included = the source code in this E-Mail and may, if you have some time and you're = interrested in it, you will have a look at it. The funktion which = initializes the graphics is called "Init_Grafik ()" and the funktion which does the page flipping thing is = called "Wechsle_Seite ()". (This is German and means something like change = page) May you can tell me if this is page flipping like you told me? You can put it in your sources collection if you like it. By the way... Do you have an own E-Mail address? Hm... enough questions so far. Thanx, ------ =_NextPart_000_01BB966F.DC4890A0 Content-Type: application/octet-stream; name="3dgraf.c" Content-Transfer-Encoding: base64 I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8Y29uaW8uaD4NCiNpbmNsdWRlIDxtYXRoLmg+ DQojaW5jbHVkZSA8ZG9zLmg+DQojaW5jbHVkZSA8YWxsZWdyby5oPg0KDQojaW5jbHVkZSAiM2Rn cmFmLmgiDQoNCg0KLyogR2xvYmFsZSBWYXJpYWJsZW4gKi8NCi8qIC0tLS0tLS0tLS0tLS0tLS0t ICovDQoNCmludCBtb2RlOw0KQklUTUFQICpidWZmZXIxOw0KQklUTUFQICpidWZmZXIyOw0KQklU TUFQICpha3R1ZWxsOw0KDQoNCi8qIERlZmluaXRpb24gZGVyIE9iamVrdGUgKi8NCi8qIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gKi8NCg0Kc3RydWN0IFB1bmt0IFB1bmt0WzhdID0ge3stNDAsIC00 MCwgLTQwfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICB7IDQwLCAtNDAsIC00MH0sDQogICAg ICAgICAgICAgICAgICAgICAgICAgeyA0MCwgIDQwLCAtNDB9LA0KICAgICAgICAgICAgICAgICAg ICAgICAgIHstNDAsICA0MCwgLTQwfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICB7LTQwLCAt NDAsICA0MH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgeyA0MCwgLTQwLCAgNDB9LA0KICAg ICAgICAgICAgICAgICAgICAgICAgIHsgNDAsICA0MCwgIDQwfSwNCiAgICAgICAgICAgICAgICAg ICAgICAgICB7LTQwLCAgNDAsICA0MH19Ow0KDQpzdHJ1Y3QgUHVua3RfMkQgUHVua3QyRFs4XTsN CnN0cnVjdCBQdW5rdF8yRCBQdW5rdDJEMls4XTsNCg0Kc3RydWN0IExpbmllIExpbmllWzEyXSA9 IHt7MCwgMX0sIHsxLCAyfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgezIsIDN9LCB7Mywg MH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgIHs0LCA1fSwgezUsIDZ9LA0KICAgICAgICAg ICAgICAgICAgICAgICAgICB7NiwgN30sIHs3LCA0fSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgezAsIDR9LCB7MSwgNX0sDQogICAgICAgICAgICAgICAgICAgICAgICAgIHsyLCA2fSwgezMs IDd9fTsNCg0Kc3RydWN0IE9iamVrdCBXdWVyZmVsID0NCnsNCiAgIld1ZXJmZWwiLCAgICAgICAv KiBOYW1lIGRlcyBPYmpla3RzICAgICAgICAgICAgICAgKi8NCiAgOCwgUHVua3QsICAgICAgICAv KiBBbnouIFB1bmt0ZSwgemVpZ2VyIGF1ZiBkYXRlbiAgKi8NCiAgUHVua3QyRCwgICAgICAgICAv KiBGZWxkIGaBciBCaWxkc2NoaXJta29vcmRpbmF0ZW4gKi8NCiAgMTIsIExpbmllLCAgICAgICAv KiBBbnouIExpbmllbiwgemVpZ2VyIGF1ZiBkYXRlbiAgKi8NCiAgMCwgTlVMTCwgICAgICAgICAv KiBBbnouIEZshGNoZW4sIHplaWdlciBhdWYgZGF0ZW4gKi8NCiAgMTAwLCAxMDAsIDEwMCwgICAv KiBTa2FsaWVydW5nIGluIHByb3plbnQgICAgICAgICAgKi8NCiAgMTgwLCAxODAsIDE4MCwgICAv KiBUcmFuc2xhdGlvbiB4LCB5LCB6IChwdW5rdGUpICAgKi8NCiAgMCwgMCwgMCwgICAgICAgICAv KiBSb3RhdGlvbiB4LCB5LCB6IChncmFkKSAgICAgICAgKi8NCiAgMCAgICAgICAgICAgICAgICAv KiBNYXRyaXggZGVzIFeBcmZlbHMgICAgICAgICAgICAgKi8NCn07DQoNCnN0cnVjdCBPYmpla3Qg V3VlcmZlbDIgPQ0Kew0KICAiV3VlcmZlbCIsICAgICAgIC8qIE5hbWUgZGVzIE9iamVrdHMgICAg ICAgICAgICAgICAqLw0KICA4LCBQdW5rdCwgICAgICAgIC8qIEFuei4gUHVua3RlLCB6ZWlnZXIg YXVmIGRhdGVuICAqLw0KICBQdW5rdDJEMiwgICAgICAgIC8qIEZlbGQgZoFyIEJpbGRzY2hpcm1r b29yZGluYXRlbiAqLw0KICAxMiwgTGluaWUsICAgICAgIC8qIEFuei4gTGluaWVuLCB6ZWlnZXIg YXVmIGRhdGVuICAqLw0KICAwLCBOVUxMLCAgICAgICAgIC8qIEFuei4gRmyEY2hlbiwgemVpZ2Vy IGF1ZiBkYXRlbiAqLw0KICAxMDAsIDEwMCwgMTAwLCAgIC8qIFNrYWxpZXJ1bmcgaW4gcHJvemVu dCAgICAgICAgICAqLw0KICAxODAsIDE4MCwgMTgwLCAgIC8qIFRyYW5zbGF0aW9uIHgsIHksIHog KHB1bmt0ZSkgICAqLw0KICAwLCAwLCAwLCAgICAgICAgIC8qIFJvdGF0aW9uIHgsIHksIHogKGdy YWQpICAgICAgICAqLw0KICAwICAgICAgICAgICAgICAgIC8qIE1hdHJpeCBkZXMgV4FyZmVscyAg ICAgICAgICAgICAqLw0KfTsNCg0Kc3RydWN0IE9iamVrdCAqQWxsZU9ialsyXSA9IHsmV3VlcmZl bCwgJld1ZXJmZWwyfTsNCg0Kc3RydWN0IFdlbHQgV2VsdCA9DQp7DQogIDIsICAgICAgICAgICAg ICAgLyogQW56YWhsIE9iamVrdGUgICAgICAgICAgKi8NCiAgQWxsZU9iaiwgICAgICAgICAvKiBa ZWlnZXIgYXVmIE9iamVrdGUgICAgICAqLw0KICB7MTgwLCAxODAsIC01MDB9ICAvKiBGbHVjaHRw dW5rdCBkZXMgU3lzdGVtcyAqLw0KfTsNCg0KDQovKiBEaWUgSGF1cHRyb3V0aW5lICovDQovKiAt LS0tLS0tLS0tLS0tLS0tICovDQoNCnZvaWQgbWFpbiAodm9pZCkNCnsNCiAgaW50IHplbnRydW14 ID0gMTgwOw0KICBpbnQgemVudHJ1bXogPSAxODA7DQogIGludCB3aW5rZWwxID0gMjcwOw0KICBp bnQgd2lua2VsMiA9IDkwOw0KICBpbnQgYWRkd2luayA9IDE7DQogIGludCByYWRpdXMgID0gMTUw Ow0KICBmbG9hdCByYWRpYW5zID0gMDsNCiAgaW50IGkgICAgICAgPSAwOw0KICBpbnQgYWRkaSAg ICA9IDE7DQoNCiAgY2xyc2NyICgpOw0KICBJbml0X0dyYWZpayAoKTsNCg0KICB3aGlsZSAoIWti aGl0ICgpKQ0KCXsNCiAgICBpICs9IGFkZGk7DQogICAgaWYgKGkgPiAzNjApIGkgLT0gMzYwOw0K DQogICAgcmFkaWFucyA9ICgoZmxvYXQpd2lua2VsMSAvIDE4MCkgKiBQSTsNCiAgICB3aW5rZWwx ICs9IGFkZHdpbms7DQogICAgV3VlcmZlbC5Sb3RhdGlvbi54ID0gaTsNCiAgICBXdWVyZmVsLlJv dGF0aW9uLnkgPSBpOw0KICAgIFd1ZXJmZWwuVHJhbnNsYXRpb24ueiA9IChpbnQpICh6ZW50cnVt eiArIChjb3MgKHJhZGlhbnMpICogcmFkaXVzKSk7DQogICAgV3VlcmZlbC5UcmFuc2xhdGlvbi54 ID0gKGludCkgKHplbnRydW14ICsgKHNpbiAocmFkaWFucykgKiByYWRpdXMpKTsNCiAgICBCZWFy YmVpdGVfT2JqZWt0ICgmV2VsdCwgJld1ZXJmZWwpOw0KDQogICAgcmFkaWFucyA9ICgoZmxvYXQp d2lua2VsMiAvIDE4MCkgKiBQSTsNCiAgICB3aW5rZWwyICs9IGFkZHdpbms7DQogICAgV3VlcmZl bDIuUm90YXRpb24ueCA9IDM2MCAtIGk7DQogICAgV3VlcmZlbDIuUm90YXRpb24ueSA9IDM2MCAt IGk7DQogICAgV3VlcmZlbDIuVHJhbnNsYXRpb24ueiA9IChpbnQpICh6ZW50cnVteiArIChjb3Mg KHJhZGlhbnMpICogcmFkaXVzKSk7DQogICAgV3VlcmZlbDIuVHJhbnNsYXRpb24ueCA9IChpbnQp ICh6ZW50cnVteCArIChzaW4gKHJhZGlhbnMpICogcmFkaXVzKSk7DQogICAgQmVhcmJlaXRlX09i amVrdCAoJldlbHQsICZXdWVyZmVsMik7DQoNCiAgICBXZWNoc2xlX1NlaXRlICgpOw0KCQlaZWlj aG5lX1dlbHQgKCZXZWx0KTsNCgl9DQoNCiAgYWt0dWVsbCA9IHNjcmVlbjsNCiAgY2xlYXIgKHNj cmVlbik7DQogIGRlc3Ryb3lfYml0bWFwIChidWZmZXIyKTsNCiAgZGVzdHJveV9iaXRtYXAgKGJ1 ZmZlcjEpOw0KDQoJZ2V0Y2ggKCk7DQp9DQoNCg0KLyoqKiBEaWUgUm91dGluZW4gKioqLw0KLyoq KiAtLS0tLS0tLS0tLS0gKioqLw0KDQoNCi8qIEVpbiBPYmpla3QgYXVmIGRlbiBCaWxkc2NoaXJt IGJyaW5nZW4gKi8NCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8N Cg0Kdm9pZCBTY2hyZWliZV9PYmpla3QgKHN0cnVjdCBPYmpla3QgKk9iamVrdCkNCnsNCglpbnQg aSwgaWksIGFuejsNCg0KCXByaW50ZiAoIk5hbWUgZGVzIE9iamVrdGVzOiAlc1xuIiwgT2JqZWt0 LT5OYW1lKTsNCg0KCWFueiA9IE9iamVrdC0+QW56X1B1bmt0ZTsgIC8qIFB1bmt0ZSBhdXNnZWJl biAqLw0KCXByaW50ZiAoIkFuemFobCBkZXIgUHVua3RlOiAlM2RcbiIsIGFueik7DQoJaWYgKGFu eiA+IDApDQoJew0KCQlmb3IgKGk9MDsgaTxhbno7IGkrKykNCgkJew0KCQkJcHJpbnRmICgiJTNk LCAlM2QsICUzZFxuIiwgT2JqZWt0LT5QdW5rdGVbaV0ueCwgT2JqZWt0LT5QdW5rdGVbaV0ueSwg T2JqZWt0LT5QdW5rdGVbaV0ueik7DQoJCX0NCgl9DQoNCglhbnogPSBPYmpla3QtPkFuel9MaW5p ZW47ICAvKiBMaW5pZW4gYXVzZ2ViZW4gKi8NCglwcmludGYgKCJBbnphaGwgZGVyIExpbmllbjog JTNkXG4iLCBhbnopOw0KCWlmIChhbnogPiAwKQ0KCXsNCgkJZm9yIChpPTA7IGk8YW56OyBpKysp DQoJCXsNCgkJCXByaW50ZiAoIiUyZC0+JTJkICAiLCBPYmpla3QtPkxpbmllbltpXS5TdGFydCwg T2JqZWt0LT5MaW5pZW5baV0uRW5kZSk7DQoJCQlpZiAoKCgoaSsxKSAlIDMpID09IDApICYmIChp ICE9IDApKSBwcmludGYgKCJcbiIpOw0KCQl9DQoJCWlmICgoaSAlIDMpICE9IDApIHByaW50ZiAo IlxuIik7DQoJfQ0KDQoJYW56ID0gT2JqZWt0LT5BbnpfRmxhZWNoZW47ICAvKiBGbIRjaGVuIGF1 c2dlYmVuICovDQoJcHJpbnRmICgiQW56YWhsIGRlciBGbIRjaGVuOiAlZFxuIiwgYW56KTsNCglp ZiAoYW56ID4gMCkNCgl7DQoJCWZvciAoaT0wOyBpPGFuejsgaSsrKQ0KCQl7DQoJCQlmb3IgKGlp PTA7IGlpPE9iamVrdC0+RmxhZWNoZW5baV0uQW56X1B1bmt0ZTsgaWkrKykNCgkJCXsNCgkJCQlw cmludGYgKCIlZCwgIiwgT2JqZWt0LT5GbGFlY2hlbltpXS5GZWxkW2lpXSk7DQoJCQl9DQoJCQlw cmludGYgKCJcbiIpOw0KCQl9DQoJfQ0KDQoJcHJpbnRmICgiU2thbGllcnVuZzogJWQsICVkLCAl ZFxuIiwgT2JqZWt0LT5Ta2FsaWVydW5nLngsIE9iamVrdC0+U2thbGllcnVuZy55LCBPYmpla3Qt PlNrYWxpZXJ1bmcueik7DQoNCglwcmludGYgKCJUcmFuc2xhdGlvbjogJWQsICVkLCAlZFxuIiwg T2JqZWt0LT5UcmFuc2xhdGlvbi54LCBPYmpla3QtPlRyYW5zbGF0aW9uLnksIE9iamVrdC0+VHJh bnNsYXRpb24ueik7DQoNCglwcmludGYgKCJSb3RhdGlvbjogJWQsICVkLCAlZFxuIiwgT2JqZWt0 LT5Sb3RhdGlvbi54LCBPYmpla3QtPlJvdGF0aW9uLnksIE9iamVrdC0+Um90YXRpb24ueik7DQp9 DQoNCg0KLyogRWluZSBNYXRyaXggYXVmIGRlbiBCaWxkc2NoaXJtIGJyaW5nZW4gKi8NCi8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCnZvaWQgU2NocmVpYmVf TWF0cml4IChmbG9hdCBNYXRyaXhbNF1bNF0pDQp7DQoJaW50IHgsIHk7DQoNCglmb3IgKHk9MDsg eTw0OyB5KyspDQoJew0KCQlmb3IgKHg9MDsgeDw0OyB4KyspIHByaW50ZiAoIiUzZCAiLCAoaW50 KSBNYXRyaXhbeF1beV0pOw0KCQlwcmludGYgKCJcbiIpOw0KCX0NCn0NCg0KDQovKiBFaW5lciBN YXRyaXggZGllIEVpbmhlaXRzbWF0cml4IHp1d2Vpc2VuICovDQovKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCnZvaWQgTWF0cml4X2xlZXJlbiAoZmxvYXQg TWF0cml4WzRdWzRdKQ0Kew0KCWludCB4LCB5Ow0KDQoJZm9yICh5PTA7IHk8NDsgeSsrKSBmb3Ig KHg9MDsgeDw0OyB4KyspIE1hdHJpeFt4XVt5XSA9IEVpbmhlaXRzbWF0cml4W3hdW3ldOw0KfQ0K DQoNCi8qIEVpbmUgTWF0cml4IG1pdCBOdWxsZW4gZoFsbGVuICovDQovKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSAqLw0KDQp2b2lkIE1hdHJpeF9udWxsZW4gKGZsb2F0IE1hdHJpeFs0 XVs0XSkNCnsNCglpbnQgeCwgeTsNCg0KCWZvciAoeT0wOyB5PDQ7IHkrKykgZm9yICh4PTA7IHg8 NDsgeCsrKSBNYXRyaXhbeF1beV0gPSBOdWxsbWF0cml4W3hdW3ldOw0KfQ0KDQoNCi8qIE11bHRp cGxpa2F0aW9uIHp3ZWllciBNYXRyaXplbiAqLw0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICovDQoNCnZvaWQgTWF0cml4X1hfTWF0cml4IChmbG9hdCB6aWVsWzRdWzRdLCBmbG9h dCBxdWVsbGVbNF1bNF0pDQp7DQoJaW50IHgsIHksIHo7DQogIGZsb2F0IHp3aXNjaGVuWzRdWzRd Ow0KDQoJZm9yICh5PTA7IHk8NDsgeSsrKQ0KCXsNCgkJZm9yICh4PTA7IHg8NDsgeCsrKQ0KCQl7 DQoJCQl6d2lzY2hlblt4XVt5XSA9IDA7DQoJCQlmb3IgKHo9MDsgejw0OyB6KyspICAgICB6d2lz Y2hlblt4XVt5XSArPSB6aWVsW3pdW3ldICogcXVlbGxlW3hdW3pdOw0KCQl9DQoJfQ0KDQogIGZv ciAoeD0wOyB4PDQ7IHgrKykgZm9yICh5PTA7IHk8NDsgeSsrKSB6aWVsW3hdW3ldID0gendpc2No ZW5beF1beV07DQp9DQoNCg0KLyogTXVsdGlwbGlrYXRpb24gZWluZXMgUHVua3RlcyBtaXQgZWlu ZXIgTWF0cml4ICovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gKi8NCg0Kdm9pZCBQdW5rdF9YX01hdHJpeCAoZmxvYXQgUHVua3RbNF0sIGZsb2F0IE1h dHJpeFs0XVs0XSkNCnsNCiAgZmxvYXQgendpc2NoZW5bNF07DQoNCgl6d2lzY2hlblswXSA9IFB1 bmt0WzBdICogTWF0cml4WzBdWzBdICsgUHVua3RbMV0gKiBNYXRyaXhbMF1bMV0gKyBQdW5rdFsy XSAqIE1hdHJpeFswXVsyXSArIFB1bmt0WzNdICogTWF0cml4WzBdWzNdOw0KCXp3aXNjaGVuWzFd ID0gUHVua3RbMF0gKiBNYXRyaXhbMV1bMF0gKyBQdW5rdFsxXSAqIE1hdHJpeFsxXVsxXSArIFB1 bmt0WzJdICogTWF0cml4WzFdWzJdICsgUHVua3RbM10gKiBNYXRyaXhbMV1bM107DQoJendpc2No ZW5bMl0gPSBQdW5rdFswXSAqIE1hdHJpeFsyXVswXSArIFB1bmt0WzFdICogTWF0cml4WzJdWzFd ICsgUHVua3RbMl0gKiBNYXRyaXhbMl1bMl0gKyBQdW5rdFszXSAqIE1hdHJpeFsyXVszXTsNCgl6 d2lzY2hlblszXSA9IFB1bmt0WzBdICogTWF0cml4WzNdWzBdICsgUHVua3RbMV0gKiBNYXRyaXhb M11bMV0gKyBQdW5rdFsyXSAqIE1hdHJpeFszXVsyXSArIFB1bmt0WzNdICogTWF0cml4WzNdWzNd Ow0KDQogIFB1bmt0WzBdID0gendpc2NoZW5bMF07DQoJUHVua3RbMV0gPSB6d2lzY2hlblsxXTsN CglQdW5rdFsyXSA9IHp3aXNjaGVuWzJdOw0KICBQdW5rdFszXSA9IHp3aXNjaGVuWzNdOw0KfQ0K DQoNCi8qIFJvdGF0aW9uIGVpbmVzIE9iamVrdGVzICovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAqLw0KDQp2b2lkIFJvdGF0aW9uIChzdHJ1Y3QgT2JqZWt0ICpPYmpla3QpDQp7DQoJZmxv YXQgYSwgYiwgYywgY29zYSwgY29zYiwgY29zYywgc2luYSwgc2luYiwgc2luYywgTWF0cml4WzRd WzRdOw0KDQoJYSA9ICgoZmxvYXQpT2JqZWt0LT5Sb3RhdGlvbi54IC8gMTgwKSAqIFBJOyAgLyog QmVyZWNobnVuZyBkZXMgUmFkaWFucyAqLw0KCWIgPSAoKGZsb2F0KU9iamVrdC0+Um90YXRpb24u eSAvIDE4MCkgKiBQSTsgIC8qIGRlciBXaW5rZWwgKi8NCgljID0gKChmbG9hdClPYmpla3QtPlJv dGF0aW9uLnogLyAxODApICogUEk7DQoNCglzaW5hID0gc2luIChhKTsgLyogQmVyZWNobnVuZyBk ZXMgU2ludXMgZWluZXMgamVkZW4gV2lua2VscyAqLw0KCXNpbmIgPSBzaW4gKGIpOw0KCXNpbmMg PSBzaW4gKGMpOw0KDQoJY29zYSA9IGNvcyAoYSk7IC8qIEJlcmVjaG51bmcgZGVzIENvc2ludXMg ZWluZXMgamVkZW4gV2lua2VscyAqLw0KCWNvc2IgPSBjb3MgKGIpOw0KCWNvc2MgPSBjb3MgKGMp Ow0KDQoJTWF0cml4WzBdWzBdID0gY29zYiAqIGNvc2M7ICAvKiBCZXJlY2hudW5nIGRlciBSb3Rh dGlvbnNtYXRyaXggKi8NCglNYXRyaXhbMV1bMF0gPSBjb3NiICogc2luYzsgIC8qIGaBciBhbGxl IEFjaHNlbiAqLw0KCU1hdHJpeFsyXVswXSA9IHNpbmIgKiAtMTsNCglNYXRyaXhbM11bMF0gPSAw Ow0KDQoJTWF0cml4WzBdWzFdID0gc2luYSAqIHNpbmIgKiBjb3NjIC0gY29zYSAqIHNpbmM7DQoJ TWF0cml4WzFdWzFdID0gc2luYSAqIHNpbmIgKiBzaW5jICsgY29zYSAqIGNvc2M7DQoJTWF0cml4 WzJdWzFdID0gc2luYSAqIGNvc2I7DQoJTWF0cml4WzNdWzFdID0gMDsNCg0KCU1hdHJpeFswXVsy XSA9IGNvc2EgKiBzaW5iICogY29zYyArIHNpbmEgKiBzaW5jOw0KCU1hdHJpeFsxXVsyXSA9IGNv c2EgKiBzaW5iICogc2luYyAtIHNpbmEgKiBjb3NjOw0KCU1hdHJpeFsyXVsyXSA9IGNvc2EgKiBj b3NiOw0KCU1hdHJpeFszXVsyXSA9IDA7DQoNCglNYXRyaXhbMF1bM10gPSAwOw0KCU1hdHJpeFsx XVszXSA9IDA7DQoJTWF0cml4WzJdWzNdID0gMDsNCglNYXRyaXhbM11bM10gPSAxOw0KDQoJTWF0 cml4X1hfTWF0cml4IChPYmpla3QtPk1hdHJpeCwgTWF0cml4KTsNCn0NCg0KDQovKiBEaWUgU2th bGllcnVuZyBlaW5lcyBPYmpla3RlcyAqLw0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gKi8NCg0Kdm9pZCBTa2FsaWVydW5nIChzdHJ1Y3QgT2JqZWt0ICpPYmpla3QpDQp7DQoJaW50 IHgsIHk7DQoJZmxvYXQgTWF0cml4WzRdWzRdOw0KDQoJTWF0cml4X2xlZXJlbiAoTWF0cml4KTsN Cg0KICBNYXRyaXhbMF1bMF0gPSAoZmxvYXQpT2JqZWt0LT5Ta2FsaWVydW5nLnggLyAxMDA7DQog IE1hdHJpeFsxXVsxXSA9IChmbG9hdClPYmpla3QtPlNrYWxpZXJ1bmcueSAvIDEwMDsNCiAgTWF0 cml4WzJdWzJdID0gKGZsb2F0KU9iamVrdC0+U2thbGllcnVuZy56IC8gMTAwOw0KDQoJTWF0cml4 X1hfTWF0cml4IChPYmpla3QtPk1hdHJpeCwgTWF0cml4KTsNCn0NCg0KDQovKiBEaWUgVmVyc2No aWVidW5nIGVpbmVzIE9iamVrdGVzICovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICovDQoNCnZvaWQgVHJhbnNsYXRpb24gKHN0cnVjdCBPYmpla3QgKk9iamVrdCkNCnsNCglp bnQgeCwgeTsNCglmbG9hdCBNYXRyaXhbNF1bNF07DQoNCglNYXRyaXhfbGVlcmVuIChNYXRyaXgp Ow0KDQoJTWF0cml4WzBdWzNdID0gKGZsb2F0KU9iamVrdC0+VHJhbnNsYXRpb24ueDsNCglNYXRy aXhbMV1bM10gPSAoZmxvYXQpT2JqZWt0LT5UcmFuc2xhdGlvbi55Ow0KCU1hdHJpeFsyXVszXSA9 IChmbG9hdClPYmpla3QtPlRyYW5zbGF0aW9uLno7DQoNCglNYXRyaXhfWF9NYXRyaXggKE9iamVr dC0+TWF0cml4LCBNYXRyaXgpOw0KfQ0KDQoNCi8qIFByb2plemllcmVuIGVpbmVzIE9iamVrdGVz IGF1ZiBkaWUgRWJlbmUgKi8NCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gKi8NCg0Kdm9pZCBQcm9qZWt0aW9uIChzdHJ1Y3QgV2VsdCAqV2VsdCwgc3RydWN0IE9i amVrdCAqT2JqZWt0KQ0Kew0KCWZsb2F0IFB1bmt0WzRdLCBNYXRyaXhbNF1bNF07DQoJaW50IGk7 DQoNCglNYXRyaXhfbnVsbGVuIChNYXRyaXgpOw0KDQoJTWF0cml4WzBdWzBdID0gV2VsdC0+QmVv Yi56ICogLTE7ICAvKiBadXdlaXN1bmcgZGVyIFRyYW5zZm9ybWF0aW9uc21hdHJpeCAqLw0KCU1h dHJpeFsxXVsxXSA9IE1hdHJpeFswXVswXTsNCglNYXRyaXhbMF1bMl0gPSBXZWx0LT5CZW9iLng7 DQoJTWF0cml4WzFdWzJdID0gV2VsdC0+QmVvYi55Ow0KCU1hdHJpeFszXVsyXSA9IDE7DQoJTWF0 cml4WzNdWzNdID0gTWF0cml4WzBdWzBdOw0KDQoJTWF0cml4X1hfTWF0cml4IChPYmpla3QtPk1h dHJpeCwgTWF0cml4KTsNCg0KCWZvciAoaT0wOyBpPE9iamVrdC0+QW56X1B1bmt0ZTsgaSsrKQ0K CXsNCgkJUHVua3RbMF0gPSBPYmpla3QtPlB1bmt0ZVtpXS54Ow0KCQlQdW5rdFsxXSA9IE9iamVr dC0+UHVua3RlW2ldLnk7DQoJCVB1bmt0WzJdID0gT2JqZWt0LT5QdW5rdGVbaV0uejsNCgkJUHVu a3RbM10gPSAxOw0KDQoJCVB1bmt0X1hfTWF0cml4IChQdW5rdCwgT2JqZWt0LT5NYXRyaXgpOw0K DQoJCU9iamVrdC0+QmlsZHNjaGlybVtpXS54ID0gUHVua3RbMF0gLyBQdW5rdFszXTsNCgkJT2Jq ZWt0LT5CaWxkc2NoaXJtW2ldLnkgPSBQdW5rdFsxXSAvIFB1bmt0WzNdOw0KCX0NCn0NCg0KDQov KiBBbGxlIFRyYW5zZm9ybWF0aW9uZW4gZWluZXMgT2JqZWt0ZXMgZHVyY2hmgWhyZW4gKi8NCi8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQp2 b2lkIFRyYW5zZm9ybWF0aW9uIChzdHJ1Y3QgV2VsdCAqV2VsdCwgc3RydWN0IE9iamVrdCAqT2Jq ZWt0KQ0Kew0KCVNrYWxpZXJ1bmcgKE9iamVrdCk7DQoJVHJhbnNsYXRpb24gKE9iamVrdCk7DQoJ Um90YXRpb24gKE9iamVrdCk7DQoJUHJvamVrdGlvbiAoV2VsdCwgT2JqZWt0KTsNCn0NCg0KDQov KiBEaWUgR3JhZmlrIGludGlhbGlzaWVyZW4gKi8NCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAqLw0KDQppbnQgSW5pdF9HcmFmaWsgKHZvaWQpDQp7DQogIGludCBncmFmOw0KDQogIGFsbGVn cm9faW5pdCAoKTsNCg0KICBncmFmID0gc2V0X2dmeF9tb2RlIChHRlhfTU9ERVgsIDM2MCwgMzYw LCAzNjAsIDcyMCk7DQogIGlmIChncmFmIDwgMCkNCiAgew0KICAgIHByaW50ZiAoIkFMTEVHUk8g U0VUX0dGWF9NT0RFIEZFSExFUjogJXMiLCBhbGxlZ3JvX2Vycm9yKTsNCiAgICBleGl0IChUUlVF KTsNCiAgfQ0KDQogIGJ1ZmZlcjEgPSBjcmVhdGVfc3ViX2JpdG1hcCAoc2NyZWVuLCAwLCAwLCAz NjAsIDM2MCk7DQogIGJ1ZmZlcjIgPSBjcmVhdGVfc3ViX2JpdG1hcCAoc2NyZWVuLCAwLCAzNjEs IDM2MCwgMzYwKTsNCg0KICByZXR1cm4gKFRSVUUpOw0KfQ0KDQoNCi8qIEVpbiBPYmpla3QgYmVh cmJlaXRlbiAqLw0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCnZvaWQgQmVhcmJlaXRl X09iamVrdCAoc3RydWN0IFdlbHQgKldlbHQsIHN0cnVjdCBPYmpla3QgKk9iamVrdCkNCnsNCiAg LyogRGllIFJlaWhlbmZvbGdlIHNjaGVpbnQgd2ljaHRpZyB6dSBzZWluISAqLw0KDQogIE1hdHJp eF9sZWVyZW4gKE9iamVrdC0+TWF0cml4KTsNCiAgU2thbGllcnVuZyAoT2JqZWt0KTsNCiAgUm90 YXRpb24gKE9iamVrdCk7DQogIFRyYW5zbGF0aW9uIChPYmpla3QpOw0KICBQcm9qZWt0aW9uIChX ZWx0LCBPYmpla3QpOw0KfQ0KDQoNCi8qIEVpbmUgV2VsdCBhdWYgZGVuIEJpbGRzY2hpcm0gYnJp bmdlbiAqLw0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCnZv aWQgWmVpY2huZV9XZWx0IChzdHJ1Y3QgV2VsdCAqV2VsdCkNCnsNCglpbnQgaSwgaWksIHN0YXJ0 LCBlbmRlOw0KCXN0cnVjdCBPYmpla3QgKk9iamVrdDsNCg0KCWZvciAoaT0wOyBpPFdlbHQtPkFu el9PYmpla3RlOyBpKyspDQoJew0KICAgIE9iamVrdCA9IFdlbHQtPk9iamVrdGVbaV07DQoJCWZv ciAoaWk9MDsgaWk8T2JqZWt0LT5BbnpfTGluaWVuOyBpaSsrKQ0KCQl7DQoJCQlzdGFydCA9IE9i amVrdC0+TGluaWVuW2lpXS5TdGFydDsNCgkJCWVuZGUgID0gT2JqZWt0LT5MaW5pZW5baWldLkVu ZGU7DQogICAgICBsaW5lIChha3R1ZWxsLCBPYmpla3QtPkJpbGRzY2hpcm1bc3RhcnRdLngsIE9i amVrdC0+QmlsZHNjaGlybVtzdGFydF0ueSwgT2JqZWt0LT5CaWxkc2NoaXJtW2VuZGVdLngsIE9i amVrdC0+QmlsZHNjaGlybVtlbmRlXS55LCAxKTsNCgkJfQ0KCX0NCn0NCg0KDQovKiBEb3VibGUg QnVmZmVyaW5nIFJvdXRpbmUgKi8NCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQp2 b2lkIFdlY2hzbGVfU2VpdGUgKHZvaWQpDQp7DQogIGlmIChtb2RlID09IDApDQogIHsNCiAgICBz Y3JvbGxfc2NyZWVuICgwLCAzNjEpOw0KICAgIGFrdHVlbGwgPSBidWZmZXIxOw0KICB9DQoNCiAg aWYgKG1vZGUgPT0gMSkNCiAgew0KICAgIHNjcm9sbF9zY3JlZW4gKDAsIDApOw0KICAgIGFrdHVl bGwgPSBidWZmZXIyOw0KICB9DQoNCiAgY2xlYXIgKGFrdHVlbGwpOw0KICBtb2RlID0gKG1vZGUg KyAxKSAlIDI7DQp9DQo= ------ =_NextPart_000_01BB966F.DC4890A0 Content-Type: application/octet-stream; name="3dgraf.h" Content-Transfer-Encoding: base64 LyogRGVmaW5pdGlvbiBkZXIgR3J1bmRzdHJ1a3R1cmVuIGVpbmVyIDNELUdyYWZpayAqLw0KLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQpzdHJ1 Y3QgUHVua3RfMkQgIC8qIEVpbiB6d2VpZGltZW5zaW9uYWxlciBQdW5rdCBmgXIgZGVuIEJpbGRz Y2hpcm0gKi8NCnsNCglpbnQgeDsNCglpbnQgeTsNCn07DQoNCnN0cnVjdCBQdW5rdCAgLyogRWlu IGRyZWlkaW1lbnNpb25hbGVyIFB1bmt0IGaBciBkaWUgT2JqZWt0ZSAqLw0Kew0KCWludCB4Ow0K CWludCB5Ow0KCWludCB6Ow0KfTsNCg0Kc3RydWN0IExpbmllICAvKiBEaWUgVmVyYmluZHVuZ2Vu IGRlciBQdW5rdGUgaW0gT2JqZWt0ICovDQp7DQoJaW50IFN0YXJ0Ow0KCWludCBFbmRlOw0KfTsN Cg0Kc3RydWN0IEZsYWVjaGUgIC8qIERpZSBEZWZpbml0aW9uIGVpbmVyIEZshGNoZSBlaW5lcyBP Ympla3RlcyAqLw0Kew0KCWludCBGYXJiZTsNCglpbnQgQW56X1B1bmt0ZTsNCglpbnQgKkZlbGQ7 DQp9Ow0KDQpzdHJ1Y3QgT2JqZWt0ICAvKiBEaWUgR3J1bmRzdHJ1a3R1ciBlaW5lcyBPYmpla3Rl cyAqLw0Kew0KCWNoYXIgKk5hbWU7DQoNCglpbnQgQW56X1B1bmt0ZTsNCglzdHJ1Y3QgUHVua3Qg KlB1bmt0ZTsNCglzdHJ1Y3QgUHVua3RfMkQgKkJpbGRzY2hpcm07DQoNCglpbnQgQW56X0xpbmll bjsNCglzdHJ1Y3QgTGluaWUgKkxpbmllbjsNCg0KCWludCBBbnpfRmxhZWNoZW47DQoJc3RydWN0 IEZsYWVjaGUgKkZsYWVjaGVuOw0KDQoJc3RydWN0IFB1bmt0IFNrYWxpZXJ1bmc7DQoJc3RydWN0 IFB1bmt0IFRyYW5zbGF0aW9uOw0KCXN0cnVjdCBQdW5rdCBSb3RhdGlvbjsNCglmbG9hdCBNYXRy aXhbNF1bNF07DQp9Ow0KDQpzdHJ1Y3QgV2VsdCAgLyogRGllIFdlbHQgaW4gZGVyIHNpY2ggYWxs ZSBPYmpla3RlIGJlZmluZGVuICovDQp7DQoJaW50IEFuel9PYmpla3RlOw0KICBzdHJ1Y3QgT2Jq ZWt0ICoqT2JqZWt0ZTsNCg0KCXN0cnVjdCBQdW5rdCBCZW9iOw0KfTsNCg0KDQovKiBEZWZpbml0 aW9uIGVpbmlnZXIgd2ljaHRpZ2VyIE1hdHJpemVuICovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCmZsb2F0IEVpbmhlaXRzbWF0cml4WzRdWzRdID0ge3sx LCAwLCAwLCAwfSwNCgkJCQkJCQkJCQkJCQkJCXswLCAxLCAwLCAwfSwNCgkJCQkJCQkJCQkJCQkJ CXswLCAwLCAxLCAwfSwNCgkJCQkJCQkJCQkJCQkJCXswLCAwLCAwLCAxfX07DQoNCmZsb2F0IE51 bGxtYXRyaXhbNF1bNF0gPSB7ezAsIDAsIDAsIDB9LA0KCQkJCQkJCQkJCQkJCXswLCAwLCAwLCAw fSwNCgkJCQkJCQkJCQkJCQl7MCwgMCwgMCwgMH0sDQoJCQkJCQkJCQkJCQkJezAsIDAsIDAsIDB9 fTsNCg0KDQovKiBEZWZpbml0aW9uIGRlciBQcm96ZWR1cmVuICovDQovKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICovDQoNCnZvaWQgTWF0cml4X1hfTWF0cml4IChmbG9hdCB6aWVsWzRdWzRd LCBmbG9hdCBxdWVsbGVbNF1bNF0pOw0Kdm9pZCBQdW5rdF9YX01hdHJpeCAoZmxvYXQgUHVua3Rb NF0sIGZsb2F0IE1hdHJpeFs0XVs0XSk7DQp2b2lkIE1hdHJpeF9sZWVyZW4gKGZsb2F0IE1hdHJp eFs0XVs0XSk7DQp2b2lkIE1hdHJpeF9udWxsZW4gKGZsb2F0IE1hdHJpeFs0XVs0XSk7DQp2b2lk IFNjaHJlaWJlX01hdHJpeCAoZmxvYXQgTWF0cml4WzRdWzRdKTsNCnZvaWQgU2NocmVpYmVfT2Jq ZWt0IChzdHJ1Y3QgT2JqZWt0ICpPYmpla3QpOw0KaW50ICBJbml0X0dyYWZpayAodm9pZCk7DQp2 b2lkIEJlYXJiZWl0ZV9PYmpla3QgKHN0cnVjdCBXZWx0ICpXZWx0LCBzdHJ1Y3QgT2JqZWt0ICpP Ympla3QpOw0Kdm9pZCBaZWljaG5lX1dlbHQgKHN0cnVjdCBXZWx0ICpXZWx0KTsNCnZvaWQgV2Vj aHNsZV9TZWl0ZSAodm9pZCk7ICAvKiBGgXIgUGFnZSBGbGlwcGluZyAqLw0KDQp2b2lkIFRyYW5z Zm9ybWF0aW9uIChzdHJ1Y3QgV2VsdCAqV2VsdCwgc3RydWN0IE9iamVrdCAqT2JqZWt0KTsgIC8q IEFsbGUgVHJhbnNmb3JtYXRpb25lbiBkdXJjaGaBaHJlbiAqLw0Kdm9pZCBSb3RhdGlvbiAoc3Ry dWN0IE9iamVrdCAqT2JqZWt0KTsgIC8qIFJvdGF0aW9uIGVpbmVzIE9iamVrdGVzICovDQp2b2lk IFNrYWxpZXJ1bmcgKHN0cnVjdCBPYmpla3QgKk9iamVrdCk7ICAvKiBWZXJ6ZXJyZW4gZWluZXMg T2JqZWt0ZXMgKi8NCnZvaWQgVHJhbnNsYXRpb24gKHN0cnVjdCBPYmpla3QgKk9iamVrdCk7ICAv KiBWZXJzY2hpZWJlbiBlaW5lcyBPYmpla3RlcyAqLw0Kdm9pZCBQcm9qZWt0aW9uIChzdHJ1Y3Qg V2VsdCAqV2VsdCwgc3RydWN0IE9iamVrdCAqT2JqZWt0KTsgIC8qIFByb2pla3Rpb24gZWluZXMg T2JqZWt0ZXMgYXVmIGRpZSBFYmVuZSAqLw0KDQoNCi8qIFByb2dyYW1tdGVjaG5pc2NoZSBEZWZp bml0aW9uZW4gKi8NCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCg0KI2Rl ZmluZSBOTCBwcmludGYgKCJcbiIpOyAgLyogTmV1ZSBaZWlsZSBhdWYgQmlsZHNjaGlybSBiZWdp bm5lbiAqLw0KI2RlZmluZSBVQllURSB1bnNpZ25lZCBjaGFyDQojZGVmaW5lIEZBTFNFIDANCg== ------ =_NextPart_000_01BB966F.DC4890A0--