From Stephan Huber, GraphicsWindowCarbon implementation

This commit is contained in:
Robert Osfield 2007-01-09 10:06:20 +00:00
parent 97f32e635f
commit d6d1a46db9
7 changed files with 1029 additions and 144 deletions

View File

@ -270,7 +270,6 @@
0007B99606C1929E00C884E1 /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
0007B99706C1929E00C884E1 /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
0007B99806C1929E00C884E1 /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
0007B99906C1929E00C884E1 /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
0007B99A06C1929E00C884E1 /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
0007B99E06C192CB00C884E1 /* osganimate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0007B92306C1829E00C884E1 /* osganimate.cpp */; };
0007B9E906C196E400C884E1 /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
@ -393,14 +392,12 @@
000A264306CAE077009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A264406CAE077009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A264506CAE077009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A264606CAE077009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A264706CAE077009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A265C06CAE134009EE43A /* osggeodemo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000A265906CAE134009EE43A /* osggeodemo.cpp */; };
000A266806CAE225009EE43A /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
000A266906CAE225009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A266A06CAE225009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A266B06CAE225009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A266C06CAE225009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A266D06CAE225009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A267706CAE2C2009EE43A /* osggeometry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000A267406CAE2C2009EE43A /* osggeometry.cpp */; };
000A268306CAE333009EE43A /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
@ -420,14 +417,12 @@
000A26BE06CAE489009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A26BF06CAE489009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A26C006CAE489009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A26C106CAE489009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A26C206CAE489009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A26CC06CAE535009EE43A /* osghud.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000A26C906CAE535009EE43A /* osghud.cpp */; };
000A26D806CAE58D009EE43A /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
000A26D906CAE58D009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A26DA06CAE58D009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A26DB06CAE58D009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A26DC06CAE58D009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A26DD06CAE58D009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A26E906CAE64A009EE43A /* osgimpostor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000A26E406CAE649009EE43A /* osgimpostor.cpp */; };
000A26EA06CAE64A009EE43A /* TestManipulator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000A26E506CAE649009EE43A /* TestManipulator.cpp */; };
@ -435,7 +430,6 @@
000A26F806CAE6DA009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A26F906CAE6DA009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A26FA06CAE6DA009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A26FB06CAE6DA009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A26FC06CAE6DA009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A270B06CAE6E6009EE43A /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
000A270C06CAE6E6009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
@ -447,19 +441,16 @@
000A272006CAE6F2009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A272106CAE6F2009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A272206CAE6F2009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A272306CAE6F2009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A272406CAE6F2009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A273306CAE6FE009EE43A /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
000A273406CAE6FE009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A273506CAE6FE009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A273606CAE6FE009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A273706CAE6FE009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A273806CAE6FE009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A274706CAE708009EE43A /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
000A274806CAE708009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A274906CAE708009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A274A06CAE708009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A274B06CAE708009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A274C06CAE708009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A275606CAE7B1009EE43A /* osgkeyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000A275306CAE7B0009EE43A /* osgkeyboard.cpp */; };
000A275D06CAE913009EE43A /* osgkeyboardmouse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000A275A06CAE913009EE43A /* osgkeyboardmouse.cpp */; };
@ -471,19 +462,16 @@
000A279706CAEDDE009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A279806CAEDDE009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A279906CAEDDE009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A279A06CAEDDE009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A279B06CAEDDE009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A27AA06CAEDEC009EE43A /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
000A27AB06CAEDEC009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A27AC06CAEDEC009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A27AD06CAEDEC009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A27AE06CAEDEC009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A27AF06CAEDEC009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A27BE06CAEDF7009EE43A /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
000A27BF06CAEDF7009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A27C006CAEDF7009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A27C106CAEDF7009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A27C206CAEDF7009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A27C306CAEDF7009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A27D206CAEE04009EE43A /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
000A27D306CAEE04009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
@ -495,7 +483,6 @@
000A27E706CAEE13009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
000A27E806CAEE13009EE43A /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
000A27E906CAEE13009EE43A /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
000A27EA06CAEE13009EE43A /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
000A27EB06CAEE13009EE43A /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
000A280E06CAEE2D009EE43A /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
000A280F06CAEE2D009EE43A /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
@ -1171,7 +1158,6 @@
004099650924D09E009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099660924D0A6009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099690924D0B2009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040996A0924D0B8009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040996C0924D0C2009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
0040996D0924D0C6009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040996E0924D0CD009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
@ -1182,51 +1168,34 @@
004099790924D170009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040997A0924D177009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040997C0924D186009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040997D0924D189009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
0040997F0924D199009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099830924D1B2009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099840924D1CB009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099860924D1D1009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099870924D1D6009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099880924D1DC009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099890924D1E0009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
0040998B0924D1E9009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040998C0924D1F1009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040998D0924D1F4009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
0040998E0924D1FD009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
0040998F0924D204009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099900924D20E009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099910924D211009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099920924D219009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099930924D21B009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099940924D223009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099950924D22F009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099970924D249009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099990924D25F009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040999A0924D261009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
0040999B0924D27A009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
0040999C0924D27C009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040999D0924D284009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
0040999E0924D285009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
0040999F0924D28B009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099A00924D290009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099A10924D298009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099A20924D29A009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099A30924D2A2009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099A40924D2A5009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099A50924D2AD009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099A60924D2B1009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099A70924D2BA009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099A80924D2BC009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099A90924D2C4009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099AA0924D2C6009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099AB0924D2CE009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099AC0924D2D0009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099AD0924D2D7009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099AE0924D2DA009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099AF0924D2E4009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099B00924D2E6009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099B10924D2EA009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
004099B20924D2EE009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099B30924D2F5009ADD90 /* OpenThreads.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099300924CC7D009ADD90 /* OpenThreads.framework */; };
004099B40924D2F8009ADD90 /* Producer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 004099480924CE15009ADD90 /* Producer.framework */; };
@ -1488,11 +1457,6 @@
006CE7FF092195B500985402 /* OverlayNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0096C5FA0919637300B255F2 /* OverlayNode.cpp */; };
006CE8260921965100985402 /* osgSim.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 005580E10624BBB3000A808A /* osgSim.framework */; };
006CE834092197C400985402 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1182CF05D64A5900EB53E5 /* OpenGL.framework */; };
006CE9010921A83D00985402 /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
006CE9020921A83D00985402 /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
006CE9030921A83D00985402 /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
006CE9040921A83D00985402 /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
006CE9060921A83D00985402 /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
006CE9160921AA0100985402 /* osgcamera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 006CE9130921AA0100985402 /* osgcamera.cpp */; };
006CE92F0921AA9300985402 /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
006CE9300921AA9300985402 /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
@ -1508,13 +1472,11 @@
006CE9900921AC8700985402 /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
006CE9910921AC8700985402 /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
006CE9920921AC8700985402 /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
006CE9930921AC8700985402 /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
006CE9940921AC8700985402 /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
006CE9AD0921ACED00985402 /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
006CE9AE0921ACED00985402 /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
006CE9AF0921ACED00985402 /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
006CE9B00921ACED00985402 /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
006CE9B10921ACED00985402 /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
006CE9B20921ACED00985402 /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
006CE9CD0921AD3300985402 /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
006CE9CE0921AD3300985402 /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
@ -1867,7 +1829,6 @@
00A14F23084E65B3000150AD /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
00A14F24084E65B3000150AD /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
00A14F25084E65B3000150AD /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
00A14F26084E65B3000150AD /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
00A14F27084E65B3000150AD /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
00A14F88084E66A7000150AD /* osglogicop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00A14F85084E66A7000150AD /* osglogicop.cpp */; };
00A14F8F084E66DB000150AD /* osgparticleeffects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00A14F8C084E66DA000150AD /* osgparticleeffects.cpp */; };
@ -2196,7 +2157,6 @@
00F239050767744100528CDD /* osgDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1188E705D764C400EB53E5 /* osgDB.framework */; };
00F239060767744100528CDD /* osgText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11876A05D75C2700EB53E5 /* osgText.framework */; };
00F239070767744100528CDD /* osgUtil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE11849A05D7126100EB53E5 /* osgUtil.framework */; };
00F239080767744100528CDD /* osgProducer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0098F3140652ED84007615E2 /* osgProducer.framework */; };
00F239090767744100528CDD /* osgGA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00557CE00624A947000A808A /* osgGA.framework */; };
00F239140767768300528CDD /* osglauncher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00F239110767768200528CDD /* osglauncher.cpp */; };
00F23921076776DE00528CDD /* osg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE117FB305D63B3800EB53E5 /* osg.framework */; };
@ -2527,13 +2487,31 @@
D403580A0B511E7600CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D40358180B511E8400CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D403581B0B511E9100CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D40359230B512B6600CB9E15 /* GraphicsWindowCarbon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D40359220B512B6500CB9E15 /* GraphicsWindowCarbon.cpp */; };
D40359250B512BF300CB9E15 /* GraphicsWindowCarbon in Resources */ = {isa = PBXBuildFile; fileRef = D40359240B512BF300CB9E15 /* GraphicsWindowCarbon */; };
D4035B2E0B51522600CB9E15 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1182CF05D64A5900EB53E5 /* OpenGL.framework */; };
D4035EBA0B52E9ED00CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035F5B0B52E9FE00CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035F630B52EA0F00CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035F690B52EA2200CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035F700B52EA3300CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035F770B52EA4900CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035F980B52EA6000CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035F9F0B52EA7700CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035FA60B52EA8600CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035FAF0B52EA9C00CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035FB40B52EABA00CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035FBB0B52EAF300CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035FD40B52EB1100CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035FDA0B52EB2100CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035FE10B52EB3A00CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035FE20B52EB4D00CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D4035FF00B52F10700CB9E15 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D48EC6500B4EBF2F000E05A4 /* CompositeViewer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D48EC64B0B4EBF2E000E05A4 /* CompositeViewer.cpp */; };
D48EC6510B4EBF2F000E05A4 /* GraphicsWindowCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D48EC64C0B4EBF2F000E05A4 /* GraphicsWindowCocoa.cpp */; };
D48EC6520B4EBF2F000E05A4 /* Scene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D48EC64D0B4EBF2F000E05A4 /* Scene.cpp */; };
D48EC6530B4EBF2F000E05A4 /* View.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D48EC64E0B4EBF2F000E05A4 /* View.cpp */; };
D48EC6540B4EBF2F000E05A4 /* Viewer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D48EC64F0B4EBF2F000E05A4 /* Viewer.cpp */; };
D48EC65A0B4EBFCE000E05A4 /* CompositeViewer in Headers */ = {isa = PBXBuildFile; fileRef = D48EC6550B4EBFCD000E05A4 /* CompositeViewer */; settings = {ATTRIBUTES = (Public, ); }; };
D48EC65B0B4EBFCE000E05A4 /* GraphicsWindowCocoa in Headers */ = {isa = PBXBuildFile; fileRef = D48EC6560B4EBFCD000E05A4 /* GraphicsWindowCocoa */; settings = {ATTRIBUTES = (); }; };
D48EC65C0B4EBFCE000E05A4 /* Scene in Headers */ = {isa = PBXBuildFile; fileRef = D48EC6570B4EBFCD000E05A4 /* Scene */; settings = {ATTRIBUTES = (Public, ); }; };
D48EC65D0B4EBFCE000E05A4 /* View in Headers */ = {isa = PBXBuildFile; fileRef = D48EC6580B4EBFCD000E05A4 /* View */; settings = {ATTRIBUTES = (Public, ); }; };
D48EC65E0B4EBFCE000E05A4 /* Viewer in Headers */ = {isa = PBXBuildFile; fileRef = D48EC6590B4EBFCD000E05A4 /* Viewer */; settings = {ATTRIBUTES = (Public, ); }; };
@ -2551,7 +2529,6 @@
D48EC7430B4FBCCB000E05A4 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D48EC7470B4FBD17000E05A4 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D48EC74B0B4FBD56000E05A4 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D48EC74F0B4FBDBF000E05A4 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D48EC76C0B4FBE72000E05A4 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D48EC7750B4FBF43000E05A4 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
D48EC7990B4FC38F000E05A4 /* osgViewer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00FB21010B015CF20052DD79 /* osgViewer.framework */; };
@ -3360,13 +3337,6 @@
remoteGlobalIDString = 00557CDF0624A947000A808A;
remoteInfo = osgGA;
};
006CE98A0921AC8700985402 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 0098F3130652ED84007615E2;
remoteInfo = osgProducer;
};
006CE99E0921ACED00985402 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
@ -3402,13 +3372,6 @@
remoteGlobalIDString = 00557CDF0624A947000A808A;
remoteInfo = osgGA;
};
006CE9A80921ACED00985402 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 0098F3130652ED84007615E2;
remoteInfo = osgProducer;
};
006CE9BE0921AD3300985402 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
@ -6288,13 +6251,14 @@
BE11891B05D7665600EB53E5 /* SharedStateManager */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp; fileEncoding = 30; name = SharedStateManager; path = ../../include/osgDB/SharedStateManager; sourceTree = SOURCE_ROOT; };
BE11891C05D7665600EB53E5 /* Version */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp; fileEncoding = 30; name = Version; path = ../../include/osgDB/Version; sourceTree = SOURCE_ROOT; };
BE11891D05D7665600EB53E5 /* WriteFile */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp; fileEncoding = 30; name = WriteFile; path = ../../include/osgDB/WriteFile; sourceTree = SOURCE_ROOT; };
D40359220B512B6500CB9E15 /* GraphicsWindowCarbon.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsWindowCarbon.cpp; sourceTree = "<group>"; };
D40359240B512BF300CB9E15 /* GraphicsWindowCarbon */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = GraphicsWindowCarbon; sourceTree = "<group>"; };
D48EC64B0B4EBF2E000E05A4 /* CompositeViewer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CompositeViewer.cpp; sourceTree = "<group>"; };
D48EC64C0B4EBF2F000E05A4 /* GraphicsWindowCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsWindowCocoa.cpp; sourceTree = "<group>"; };
D48EC64D0B4EBF2F000E05A4 /* Scene.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Scene.cpp; sourceTree = "<group>"; };
D48EC64E0B4EBF2F000E05A4 /* View.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = View.cpp; sourceTree = "<group>"; };
D48EC64F0B4EBF2F000E05A4 /* Viewer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Viewer.cpp; sourceTree = "<group>"; };
D48EC6550B4EBFCD000E05A4 /* CompositeViewer */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CompositeViewer; sourceTree = "<group>"; };
D48EC6560B4EBFCD000E05A4 /* GraphicsWindowCocoa */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = GraphicsWindowCocoa; sourceTree = "<group>"; };
D48EC6570B4EBFCD000E05A4 /* Scene */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Scene; sourceTree = "<group>"; };
D48EC6580B4EBFCD000E05A4 /* View */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = View; sourceTree = "<group>"; };
D48EC6590B4EBFCD000E05A4 /* Viewer */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Viewer; sourceTree = "<group>"; };
@ -6307,9 +6271,9 @@
D48EC66A0B4EC1C6000E05A4 /* PolytopeIntersector */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = PolytopeIntersector; path = ../../include/osgUtil/PolytopeIntersector; sourceTree = SOURCE_ROOT; };
D48EC6D60B4ECD10000E05A4 /* PointSprite.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PointSprite.cpp; sourceTree = "<group>"; };
D48EC6D70B4ECD10000E05A4 /* PointSprite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PointSprite.h; sourceTree = "<group>"; };
D48EC7B30B4FCA29000E05A4 /* UnitTestFramework.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = UnitTestFramework.cpp; path = ../../examples/osgunittests/UnitTestFramework.cpp; sourceTree = SOURCE_ROOT; };
D48EC7B40B4FCA29000E05A4 /* UnitTestFramework.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = UnitTestFramework.h; path = ../../examples/osgunittests/UnitTestFramework.h; sourceTree = SOURCE_ROOT; };
D48EC7B50B4FCA2A000E05A4 /* UnitTests_osg.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = UnitTests_osg.cpp; path = ../../examples/osgunittests/UnitTests_osg.cpp; sourceTree = SOURCE_ROOT; };
D48EC7B30B4FCA29000E05A4 /* UnitTestFramework.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = UnitTestFramework.cpp; sourceTree = "<group>"; };
D48EC7B40B4FCA29000E05A4 /* UnitTestFramework.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UnitTestFramework.h; sourceTree = "<group>"; };
D48EC7B50B4FCA2A000E05A4 /* UnitTests_osg.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = UnitTests_osg.cpp; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -6346,14 +6310,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035FF00B52F10700CB9E15 /* osgViewer.framework in Frameworks */,
0007B99506C1929E00C884E1 /* osg.framework in Frameworks */,
0007B99606C1929E00C884E1 /* osgDB.framework in Frameworks */,
0007B99706C1929E00C884E1 /* osgText.framework in Frameworks */,
0007B99806C1929E00C884E1 /* osgUtil.framework in Frameworks */,
0007B99906C1929E00C884E1 /* osgProducer.framework in Frameworks */,
0007B99A06C1929E00C884E1 /* osgGA.framework in Frameworks */,
0040997C0924D186009ADD90 /* OpenThreads.framework in Frameworks */,
0040997D0924D189009ADD90 /* Producer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -6613,13 +6576,12 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035EBA0B52E9ED00CB9E15 /* osgViewer.framework in Frameworks */,
000A264206CAE077009EE43A /* osg.framework in Frameworks */,
000A264306CAE077009EE43A /* osgDB.framework in Frameworks */,
000A264406CAE077009EE43A /* osgText.framework in Frameworks */,
000A264506CAE077009EE43A /* osgUtil.framework in Frameworks */,
000A264606CAE077009EE43A /* osgProducer.framework in Frameworks */,
000A264706CAE077009EE43A /* osgGA.framework in Frameworks */,
004099860924D1D1009ADD90 /* Producer.framework in Frameworks */,
004099870924D1D6009ADD90 /* OpenThreads.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -6628,14 +6590,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035F5B0B52E9FE00CB9E15 /* osgViewer.framework in Frameworks */,
000A266806CAE225009EE43A /* osg.framework in Frameworks */,
000A266906CAE225009EE43A /* osgDB.framework in Frameworks */,
000A266A06CAE225009EE43A /* osgText.framework in Frameworks */,
000A266B06CAE225009EE43A /* osgUtil.framework in Frameworks */,
000A266C06CAE225009EE43A /* osgProducer.framework in Frameworks */,
000A266D06CAE225009EE43A /* osgGA.framework in Frameworks */,
004099880924D1DC009ADD90 /* OpenThreads.framework in Frameworks */,
004099890924D1E0009ADD90 /* Producer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -6657,14 +6618,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035F630B52EA0F00CB9E15 /* osgViewer.framework in Frameworks */,
000A26BD06CAE489009EE43A /* osg.framework in Frameworks */,
000A26BE06CAE489009EE43A /* osgDB.framework in Frameworks */,
000A26BF06CAE489009EE43A /* osgText.framework in Frameworks */,
000A26C006CAE489009EE43A /* osgUtil.framework in Frameworks */,
000A26C106CAE489009EE43A /* osgProducer.framework in Frameworks */,
000A26C206CAE489009EE43A /* osgGA.framework in Frameworks */,
0040998C0924D1F1009ADD90 /* OpenThreads.framework in Frameworks */,
0040998D0924D1F4009ADD90 /* Producer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -6672,14 +6632,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035F690B52EA2200CB9E15 /* osgViewer.framework in Frameworks */,
000A26D806CAE58D009EE43A /* osg.framework in Frameworks */,
000A26D906CAE58D009EE43A /* osgDB.framework in Frameworks */,
000A26DA06CAE58D009EE43A /* osgText.framework in Frameworks */,
000A26DB06CAE58D009EE43A /* osgUtil.framework in Frameworks */,
000A26DC06CAE58D009EE43A /* osgProducer.framework in Frameworks */,
000A26DD06CAE58D009EE43A /* osgGA.framework in Frameworks */,
00A14BD3084D64C3000150AD /* osgSim.framework in Frameworks */,
0040998E0924D1FD009ADD90 /* Producer.framework in Frameworks */,
0040998F0924D204009ADD90 /* OpenThreads.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -6688,14 +6647,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035F700B52EA3300CB9E15 /* osgViewer.framework in Frameworks */,
000A26F706CAE6DA009EE43A /* osg.framework in Frameworks */,
000A26F806CAE6DA009EE43A /* osgDB.framework in Frameworks */,
000A26F906CAE6DA009EE43A /* osgText.framework in Frameworks */,
000A26FA06CAE6DA009EE43A /* osgUtil.framework in Frameworks */,
000A26FB06CAE6DA009EE43A /* osgProducer.framework in Frameworks */,
000A26FC06CAE6DA009EE43A /* osgGA.framework in Frameworks */,
004099900924D20E009ADD90 /* OpenThreads.framework in Frameworks */,
004099910924D211009ADD90 /* Producer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -6720,13 +6678,12 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035F980B52EA6000CB9E15 /* osgViewer.framework in Frameworks */,
000A271F06CAE6F2009EE43A /* osg.framework in Frameworks */,
000A272006CAE6F2009EE43A /* osgDB.framework in Frameworks */,
000A272106CAE6F2009EE43A /* osgText.framework in Frameworks */,
000A272206CAE6F2009EE43A /* osgUtil.framework in Frameworks */,
000A272306CAE6F2009EE43A /* osgProducer.framework in Frameworks */,
000A272406CAE6F2009EE43A /* osgGA.framework in Frameworks */,
0040999B0924D27A009ADD90 /* Producer.framework in Frameworks */,
0040999C0924D27C009ADD90 /* OpenThreads.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -6735,15 +6692,14 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035F9F0B52EA7700CB9E15 /* osgViewer.framework in Frameworks */,
000A273306CAE6FE009EE43A /* osg.framework in Frameworks */,
000A273406CAE6FE009EE43A /* osgDB.framework in Frameworks */,
000A273506CAE6FE009EE43A /* osgText.framework in Frameworks */,
000A273606CAE6FE009EE43A /* osgUtil.framework in Frameworks */,
000A273706CAE6FE009EE43A /* osgProducer.framework in Frameworks */,
000A273806CAE6FE009EE43A /* osgGA.framework in Frameworks */,
000A277C06CAEBAF009EE43A /* osgSim.framework in Frameworks */,
0040999D0924D284009ADD90 /* OpenThreads.framework in Frameworks */,
0040999E0924D285009ADD90 /* Producer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -6751,13 +6707,12 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035FAF0B52EA9C00CB9E15 /* osgViewer.framework in Frameworks */,
000A274706CAE708009EE43A /* osg.framework in Frameworks */,
000A274806CAE708009EE43A /* osgDB.framework in Frameworks */,
000A274906CAE708009EE43A /* osgText.framework in Frameworks */,
000A274A06CAE708009EE43A /* osgUtil.framework in Frameworks */,
000A274B06CAE708009EE43A /* osgProducer.framework in Frameworks */,
000A274C06CAE708009EE43A /* osgGA.framework in Frameworks */,
004099A10924D298009ADD90 /* Producer.framework in Frameworks */,
004099A20924D29A009ADD90 /* OpenThreads.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -6766,13 +6721,12 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035FB40B52EABA00CB9E15 /* osgViewer.framework in Frameworks */,
000A279606CAEDDE009EE43A /* osg.framework in Frameworks */,
000A279706CAEDDE009EE43A /* osgDB.framework in Frameworks */,
000A279806CAEDDE009EE43A /* osgText.framework in Frameworks */,
000A279906CAEDDE009EE43A /* osgUtil.framework in Frameworks */,
000A279A06CAEDDE009EE43A /* osgProducer.framework in Frameworks */,
000A279B06CAEDDE009EE43A /* osgGA.framework in Frameworks */,
004099A50924D2AD009ADD90 /* Producer.framework in Frameworks */,
004099A60924D2B1009ADD90 /* OpenThreads.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -6781,13 +6735,12 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035FD40B52EB1100CB9E15 /* osgViewer.framework in Frameworks */,
000A27AA06CAEDEC009EE43A /* osg.framework in Frameworks */,
000A27AB06CAEDEC009EE43A /* osgDB.framework in Frameworks */,
000A27AC06CAEDEC009EE43A /* osgText.framework in Frameworks */,
000A27AD06CAEDEC009EE43A /* osgUtil.framework in Frameworks */,
000A27AE06CAEDEC009EE43A /* osgProducer.framework in Frameworks */,
000A27AF06CAEDEC009EE43A /* osgGA.framework in Frameworks */,
004099A90924D2C4009ADD90 /* Producer.framework in Frameworks */,
004099AA0924D2C6009ADD90 /* OpenThreads.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -6796,14 +6749,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035FDA0B52EB2100CB9E15 /* osgViewer.framework in Frameworks */,
000A27BE06CAEDF7009EE43A /* osg.framework in Frameworks */,
000A27BF06CAEDF7009EE43A /* osgDB.framework in Frameworks */,
000A27C006CAEDF7009EE43A /* osgText.framework in Frameworks */,
000A27C106CAEDF7009EE43A /* osgUtil.framework in Frameworks */,
000A27C206CAEDF7009EE43A /* osgProducer.framework in Frameworks */,
000A27C306CAEDF7009EE43A /* osgGA.framework in Frameworks */,
004099AB0924D2CE009ADD90 /* OpenThreads.framework in Frameworks */,
004099AC0924D2D0009ADD90 /* Producer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -6826,14 +6778,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035FE20B52EB4D00CB9E15 /* osgViewer.framework in Frameworks */,
000A27E606CAEE13009EE43A /* osg.framework in Frameworks */,
000A27E706CAEE13009EE43A /* osgDB.framework in Frameworks */,
000A27E806CAEE13009EE43A /* osgText.framework in Frameworks */,
000A27E906CAEE13009EE43A /* osgUtil.framework in Frameworks */,
000A27EA06CAEE13009EE43A /* osgProducer.framework in Frameworks */,
000A27EB06CAEE13009EE43A /* osgGA.framework in Frameworks */,
000A284506CAF681009EE43A /* osgParticle.framework in Frameworks */,
004099B10924D2EA009ADD90 /* Producer.framework in Frameworks */,
004099B20924D2EE009ADD90 /* OpenThreads.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -7348,20 +7299,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
006CE9000921A83D00985402 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D48EC74F0B4FBDBF000E05A4 /* osgViewer.framework in Frameworks */,
006CE9010921A83D00985402 /* osg.framework in Frameworks */,
006CE9020921A83D00985402 /* osgDB.framework in Frameworks */,
006CE9030921A83D00985402 /* osgText.framework in Frameworks */,
006CE9040921A83D00985402 /* osgUtil.framework in Frameworks */,
006CE9060921A83D00985402 /* osgGA.framework in Frameworks */,
0040996A0924D0B8009ADD90 /* OpenThreads.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
006CE92E0921AA9300985402 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@ -7394,14 +7331,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035FBB0B52EAF300CB9E15 /* osgViewer.framework in Frameworks */,
006CE98F0921AC8700985402 /* osg.framework in Frameworks */,
006CE9900921AC8700985402 /* osgDB.framework in Frameworks */,
006CE9910921AC8700985402 /* osgText.framework in Frameworks */,
006CE9920921AC8700985402 /* osgUtil.framework in Frameworks */,
006CE9930921AC8700985402 /* osgProducer.framework in Frameworks */,
006CE9940921AC8700985402 /* osgGA.framework in Frameworks */,
004099A70924D2BA009ADD90 /* OpenThreads.framework in Frameworks */,
004099A80924D2BC009ADD90 /* Producer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -7409,14 +7345,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035FE10B52EB3A00CB9E15 /* osgViewer.framework in Frameworks */,
006CE9AD0921ACED00985402 /* osg.framework in Frameworks */,
006CE9AE0921ACED00985402 /* osgDB.framework in Frameworks */,
006CE9AF0921ACED00985402 /* osgText.framework in Frameworks */,
006CE9B00921ACED00985402 /* osgUtil.framework in Frameworks */,
006CE9B10921ACED00985402 /* osgProducer.framework in Frameworks */,
006CE9B20921ACED00985402 /* osgGA.framework in Frameworks */,
004099AF0924D2E4009ADD90 /* OpenThreads.framework in Frameworks */,
004099B00924D2E6009ADD90 /* Producer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -7689,14 +7624,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035FA60B52EA8600CB9E15 /* osgViewer.framework in Frameworks */,
00A14F22084E65B3000150AD /* osg.framework in Frameworks */,
00A14F23084E65B3000150AD /* osgDB.framework in Frameworks */,
00A14F24084E65B3000150AD /* osgText.framework in Frameworks */,
00A14F25084E65B3000150AD /* osgUtil.framework in Frameworks */,
00A14F26084E65B3000150AD /* osgProducer.framework in Frameworks */,
00A14F27084E65B3000150AD /* osgGA.framework in Frameworks */,
0040999F0924D28B009ADD90 /* OpenThreads.framework in Frameworks */,
004099A00924D290009ADD90 /* Producer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -8143,14 +8077,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035F770B52EA4900CB9E15 /* osgViewer.framework in Frameworks */,
00F239040767744100528CDD /* osg.framework in Frameworks */,
00F239050767744100528CDD /* osgDB.framework in Frameworks */,
00F239060767744100528CDD /* osgText.framework in Frameworks */,
00F239070767744100528CDD /* osgUtil.framework in Frameworks */,
00F239080767744100528CDD /* osgProducer.framework in Frameworks */,
00F239090767744100528CDD /* osgGA.framework in Frameworks */,
004099940924D223009ADD90 /* OpenThreads.framework in Frameworks */,
004099950924D22F009ADD90 /* Producer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -8189,6 +8122,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D4035B2E0B51522600CB9E15 /* OpenGL.framework in Frameworks */,
00FB20FA0B015CF20052DD79 /* osg.framework in Frameworks */,
00FB20FB0B015CF20052DD79 /* osgUtil.framework in Frameworks */,
00FB20FC0B015CF20052DD79 /* OpenThreads.framework in Frameworks */,
@ -10506,6 +10440,9 @@
00EF4F7B06CB14BB008ACEFF /* osgunittests */ = {
isa = PBXGroup;
children = (
D48EC7B30B4FCA29000E05A4 /* UnitTestFramework.cpp */,
D48EC7B40B4FCA29000E05A4 /* UnitTestFramework.h */,
D48EC7B50B4FCA2A000E05A4 /* UnitTests_osg.cpp */,
00EF4F7E06CB14BE008ACEFF /* osgunittests.cpp */,
0081CFD70A5C556B006D3A13 /* performance.cpp */,
0081CFD80A5C556C006D3A13 /* performance.h */,
@ -10571,6 +10508,7 @@
00FB210F0B015F4A0052DD79 /* osgViewer */ = {
isa = PBXGroup;
children = (
D40359220B512B6500CB9E15 /* GraphicsWindowCarbon.cpp */,
D48EC64B0B4EBF2E000E05A4 /* CompositeViewer.cpp */,
D48EC64C0B4EBF2F000E05A4 /* GraphicsWindowCocoa.cpp */,
D48EC64D0B4EBF2F000E05A4 /* Scene.cpp */,
@ -10586,8 +10524,8 @@
00FB21160B0160380052DD79 /* osgViewer */ = {
isa = PBXGroup;
children = (
D40359240B512BF300CB9E15 /* GraphicsWindowCarbon */,
D48EC6550B4EBFCD000E05A4 /* CompositeViewer */,
D48EC6560B4EBFCD000E05A4 /* GraphicsWindowCocoa */,
D48EC6570B4EBFCD000E05A4 /* Scene */,
D48EC6580B4EBFCD000E05A4 /* View */,
D48EC6590B4EBFCD000E05A4 /* Viewer */,
@ -10756,9 +10694,6 @@
0867D691FE84028FC02AAC07 /* OpenSceneGraph */ = {
isa = PBXGroup;
children = (
D48EC7B30B4FCA29000E05A4 /* UnitTestFramework.cpp */,
D48EC7B40B4FCA29000E05A4 /* UnitTestFramework.h */,
D48EC7B50B4FCA2A000E05A4 /* UnitTests_osg.cpp */,
BE1181EC05D63BD300EB53E5 /* Include */,
08FB77ACFE841707C02AAC07 /* Source */,
00A14C40084E564C000150AD /* Applications */,
@ -12678,7 +12613,6 @@
buildActionMask = 2147483647;
files = (
D48EC65A0B4EBFCE000E05A4 /* CompositeViewer in Headers */,
D48EC65B0B4EBFCE000E05A4 /* GraphicsWindowCocoa in Headers */,
D48EC65C0B4EBFCE000E05A4 /* Scene in Headers */,
D48EC65D0B4EBFCE000E05A4 /* View in Headers */,
D48EC65E0B4EBFCE000E05A4 /* Viewer in Headers */,
@ -14427,7 +14361,6 @@
006CE8FD0921A83D00985402 /* Headers */,
006CE8FE0921A83D00985402 /* Resources */,
006CE8FF0921A83D00985402 /* Sources */,
006CE9000921A83D00985402 /* Frameworks */,
);
buildRules = (
);
@ -14508,7 +14441,6 @@
006CE9830921AC8700985402 /* PBXTargetDependency */,
006CE9850921AC8700985402 /* PBXTargetDependency */,
006CE9870921AC8700985402 /* PBXTargetDependency */,
006CE9890921AC8700985402 /* PBXTargetDependency */,
);
name = osgmultiplecameras;
productName = osgtext;
@ -14532,7 +14464,6 @@
006CE9A10921ACED00985402 /* PBXTargetDependency */,
006CE9A30921ACED00985402 /* PBXTargetDependency */,
006CE9A50921ACED00985402 /* PBXTargetDependency */,
006CE9A70921ACED00985402 /* PBXTargetDependency */,
);
name = osgparametric;
productName = osgtext;
@ -15596,7 +15527,6 @@
00F238FC0767744100528CDD /* PBXTargetDependency */,
00F238FD0767744100528CDD /* PBXTargetDependency */,
00F238FE0767744100528CDD /* PBXTargetDependency */,
00F238FF0767744100528CDD /* PBXTargetDependency */,
);
name = osglauncher;
productName = osgtext;
@ -16665,6 +16595,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D40359250B512BF300CB9E15 /* GraphicsWindowCarbon in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -18351,10 +18282,10 @@
00FB21140B015F4C0052DD79 /* SimpleViewer.cpp in Sources */,
00FB21150B015F4C0052DD79 /* Version.cpp in Sources */,
D48EC6500B4EBF2F000E05A4 /* CompositeViewer.cpp in Sources */,
D48EC6510B4EBF2F000E05A4 /* GraphicsWindowCocoa.cpp in Sources */,
D48EC6520B4EBF2F000E05A4 /* Scene.cpp in Sources */,
D48EC6530B4EBF2F000E05A4 /* View.cpp in Sources */,
D48EC6540B4EBF2F000E05A4 /* Viewer.cpp in Sources */,
D40359230B512B6600CB9E15 /* GraphicsWindowCarbon.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -19248,11 +19179,6 @@
target = 00557CDF0624A947000A808A /* osgGA */;
targetProxy = 006CE9880921AC8700985402 /* PBXContainerItemProxy */;
};
006CE9890921AC8700985402 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 0098F3130652ED84007615E2 /* osgProducer */;
targetProxy = 006CE98A0921AC8700985402 /* PBXContainerItemProxy */;
};
006CE99D0921ACED00985402 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = BE117FB205D63B3800EB53E5 /* osg */;
@ -19278,11 +19204,6 @@
target = 00557CDF0624A947000A808A /* osgGA */;
targetProxy = 006CE9A60921ACED00985402 /* PBXContainerItemProxy */;
};
006CE9A70921ACED00985402 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 0098F3130652ED84007615E2 /* osgProducer */;
targetProxy = 006CE9A80921ACED00985402 /* PBXContainerItemProxy */;
};
006CE9BD0921AD3300985402 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = BE117FB205D63B3800EB53E5 /* osg */;
@ -20403,11 +20324,6 @@
target = 00557CDF0624A947000A808A /* osgGA */;
targetProxy = 001D06E5065AB7A5003310BF /* PBXContainerItemProxy */;
};
00F238FF0767744100528CDD /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 0098F3130652ED84007615E2 /* osgProducer */;
targetProxy = 001D06E7065AB7A5003310BF /* PBXContainerItemProxy */;
};
00F23917076776DE00528CDD /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = BE117FB205D63B3800EB53E5 /* osg */;
@ -36741,6 +36657,10 @@
0x2049a000,
"-framework",
OpenThreads,
"-framework",
Carbon,
"-framework",
AGL,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = osgViewer;
@ -37915,7 +37835,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Default;
};
0011035D08736A190015C576 /* Build configuration list for PBXNativeTarget "osgtessellate" */ = {
0011035D08736A190015C576 /* Build configuration list for PBXNativeTarget "osgtesselate" */ = {
isa = XCConfigurationList;
buildConfigurations = (
0011035E08736A190015C576 /* Development */,

View File

@ -74,6 +74,7 @@ class OSG_EXPORT GraphicsContext : public Referenced
level(0),
face(0),
mipMapGeneration(false),
vsync(true),
sharedContext(0) {}
// graphics context orginal and size
@ -110,6 +111,9 @@ class OSG_EXPORT GraphicsContext : public Referenced
unsigned int face;
unsigned int mipMapGeneration;
// V-sync
bool vsync;
// shared context
GraphicsContext* sharedContext;
};

View File

@ -0,0 +1,113 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
/* Note, elements of GraphicsWindowX11 have used Prodcer/RenderSurface_X11.cpp as both
* a guide to use of X11/GLX and copiying directly in the case of setBorder().
* These elements are license under OSGPL as above, with Copyright (C) 2001-2004 Don Burns.
*/
#ifndef OSGVIEWER_GRAPHICSWINDOWCARBON
#define OSGVIEWER_GRAPHICSWINDOWCARBON 1
#ifdef __APPLE__
#include <osgViewer/GraphicsWindow>
#include <Carbon/Carbon.h>
#include <AGL/agl.h>
namespace osgViewer
{
class GraphicsWindowCarbon : public osgViewer::GraphicsWindow
{
public:
GraphicsWindowCarbon(osg::GraphicsContext::Traits* traits):
_valid(false),
_initialized(false),
_realized(false)
{
_traits = traits;
init();
if (valid())
{
setState( new osg::State );
getState()->setContextID( osg::GraphicsContext::createNewContextID() );
}
}
virtual bool valid() const { return _valid; }
/** Realise the GraphicsContext.*/
virtual bool realizeImplementation();
/** Return true if the graphics context has been realised and is ready to use.*/
virtual bool isRealizedImplementation() const { return _realized; }
/** Close the graphics context.*/
virtual void closeImplementation();
/** Make this graphics context current.*/
virtual bool makeCurrentImplementation();
/** Release the graphics context.*/
virtual bool releaseContextImplementation();
/** Swap the front and back buffers.*/
virtual void swapBuffersImplementation();
/** Check to see if any events have been generated.*/
virtual void checkEvents();
/** Set Window decoration.*/
virtual void setWindowDecoration(bool flag);
/** Get focus.*/
virtual void grabFocus();
/** Get focus on if the pointer is in this window.*/
virtual void grabFocusIfPointerInWindow();
void requestClose() { _closeRequested = true; }
virtual void resizedImplementation(int x, int y, int width, int height);
protected:
void init();
void transformMouseXY(float& x, float& y);
bool _valid;
bool _initialized;
bool _realized;
bool _useWindowDecoration;
WindowRef _window;
AGLContext _context;
AGLPixelFormat _pixelFormat;
private:
void handleMouseEvent(EventRef theEvent);
void handleKeyboardEvent(EventRef theEvent);
bool _closeRequested;
};
}
#endif
#endif

View File

@ -62,9 +62,15 @@ class OSGVIEWER_EXPORT Viewer : public osgViewer::View
* Setting to 0 switches off the feature.*/
void setKeySetsDone(int key) { _keySetsDone = key; }
/** Set the key value that the viewer checks on each frame to see if the viewer's done flag.*/
/** get the key value that the viewer checks on each frame to see if the viewer's done flag.*/
int getKeySetsDone() const { return _keySetsDone; }
/** if the flag is true, the viewer set its done flag when a QUIT_APPLICATION is received, false disables this feature */
void setQuitEventSetsDone(bool flag) { _quitEventSetsDone = flag; }
/** @return true if the viewer respond to the QUIT_APPLICATION-event */
bool getQuitEventSetsDone() const { return _quitEventSetsDone; }
/** Execute a main frame loop.
* Equivialant to while (!viewer.done()) viewer.frame();
* Also calls realize() if the viewer is not already realized,
@ -115,6 +121,7 @@ class OSGVIEWER_EXPORT Viewer : public osgViewer::View
bool _done;
int _keySetsDone;
bool _quitEventSetsDone;
ThreadingModel _threadingModel;

View File

@ -11,12 +11,19 @@ CXXFILES = \
Version.cpp\
CXXFILES += GraphicsWindowX11.cpp\
# CXXFILES += GraphicsWindowWin32.cpp\
# CXXFILES += GraphicsWindowCocoa.cpp\
ifeq ($(OS),Darwin)
CXXFILES += GraphicsWindowCarbon.cpp
else
ifeq ($(OS),MINGW)
CXXFILES += GraphicsWindowWin32.cpp
else
ifeq ($(OS),CYGWIN)
CXXFILES += GraphicsWindowWin32.cpp
else
CXXFILES += GraphicsWindowX11.cpp
endif
endif
endif
DEF += -DOSGVIEWER_LIBRARY

View File

@ -0,0 +1,823 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifdef __APPLE__
#include <osgViewer/GraphicsWindowCarbon>
#include <Carbon/Carbon.h>
#include <OpenGL/OpenGL.h>
using namespace osgViewer;
// Carbon-Eventhandler to handle the click in the close-widget and the resize of windows
static pascal OSStatus GraphicsWindowEventHandler(EventHandlerCallRef myHandler, EventRef event, void* userData)
{
WindowRef window;
Rect bounds;
UInt32 whatHappened;
OSStatus result = eventNotHandledErr; /* report failure by default */
GraphicsWindowCarbon* w = (GraphicsWindowCarbon*)userData;
if (!w)
return result;
GetEventParameter(event, kEventParamDirectObject, typeWindowRef, NULL,
sizeof(window), NULL, &window);
whatHappened = GetEventKind(event);
switch (whatHappened)
{
case kEventWindowBoundsChanging:
// left the code for live-resizing, but it is not used, because of window-refreshing issues...
GetEventParameter( event, kEventParamCurrentBounds, typeQDRectangle, NULL, sizeof(Rect), NULL, &bounds );
w->resized(bounds.left, bounds.top, bounds.right - bounds.left, bounds.bottom - bounds.top);
w->getEventQueue()->windowResize(bounds.left, bounds.top, bounds.right - bounds.left, bounds.bottom - bounds.top, w->getEventQueue()->getTime());
w->requestRedraw();
result = noErr;
break;
case kEventWindowBoundsChanged:
InvalWindowRect(window, GetWindowPortBounds(window, &bounds));
GetWindowBounds(window, kWindowContentRgn, &bounds);
w->resized(bounds.left, bounds.top, bounds.right - bounds.left, bounds.bottom - bounds.top);
w->getEventQueue()->windowResize(bounds.left, bounds.top, bounds.right - bounds.left, bounds.bottom - bounds.top, w->getEventQueue()->getTime());
result = noErr;
break;
case kEventWindowClosed:
w->requestClose();
break;
default:
/* If nobody handled the event, it gets propagated to the */
/* application-level handler. */
break;
}
return result;
}
static bool s_quit_requested = false;
// Application eventhandler -- listens for a quit-event
static pascal OSStatus ApplicationEventHandler(EventHandlerCallRef inHandlerCallRef, EventRef inEvent, void *inUserData)
{
HICommand commandStruct;
OSErr err = eventNotHandledErr;
GetEventParameter (inEvent, kEventParamDirectObject, typeHICommand, NULL, sizeof(HICommand), NULL, &commandStruct);
switch(commandStruct.commandID) {
case kHICommandQuit:
s_quit_requested = true;
err = noErr;
break;
}
return err;
}
// AppleEventHandler, listens to the Quit-AppleEvent
static pascal OSErr QuitAppleEventHandler(const AppleEvent *theAppleEvent, AppleEvent *reply, long handlerRefcon ) {
s_quit_requested = true;
return (noErr);
}
namespace osgViewer
{
// small helper class which maps the raw key codes to osgGA::GUIEventAdapter::Keys
class OSXKeyboardMap {
public:
OSXKeyboardMap()
{
_keymap[53 ] = osgGA::GUIEventAdapter::KEY_Escape;
_keymap[115 ] = osgGA::GUIEventAdapter::KEY_Home;
_keymap[76 ] = osgGA::GUIEventAdapter::KEY_KP_Enter;
_keymap[119 ] = osgGA::GUIEventAdapter::KEY_End;
_keymap[36 ] = osgGA::GUIEventAdapter::KEY_Return;
_keymap[116 ] = osgGA::GUIEventAdapter::KEY_Page_Up;
_keymap[121 ] = osgGA::GUIEventAdapter::KEY_Page_Down;
_keymap[123 ] = osgGA::GUIEventAdapter::KEY_Left;
_keymap[124 ] = osgGA::GUIEventAdapter::KEY_Right;
_keymap[126 ] = osgGA::GUIEventAdapter::KEY_Up;
_keymap[125 ] = osgGA::GUIEventAdapter::KEY_Down;
_keymap[51 ] = osgGA::GUIEventAdapter::KEY_BackSpace;
_keymap[48 ] = osgGA::GUIEventAdapter::KEY_Tab;
_keymap[49 ] = osgGA::GUIEventAdapter::KEY_Space;
_keymap[117 ] = osgGA::GUIEventAdapter::KEY_Delete;
_keymap[122 ] = osgGA::GUIEventAdapter::KEY_F1;
_keymap[120 ] = osgGA::GUIEventAdapter::KEY_F2;
_keymap[99 ] = osgGA::GUIEventAdapter::KEY_F3;
_keymap[118 ] = osgGA::GUIEventAdapter::KEY_F4;
_keymap[96 ] = osgGA::GUIEventAdapter::KEY_F5;
_keymap[97 ] = osgGA::GUIEventAdapter::KEY_F6;
_keymap[98 ] = osgGA::GUIEventAdapter::KEY_F7;
_keymap[100 ] = osgGA::GUIEventAdapter::KEY_F8;
_keymap[101 ] = osgGA::GUIEventAdapter::KEY_F9;
_keymap[109 ] = osgGA::GUIEventAdapter::KEY_F10;
_keymap[103 ] = osgGA::GUIEventAdapter::KEY_F11;
_keymap[111 ] = osgGA::GUIEventAdapter::KEY_F12;
_keymap[75 ] = osgGA::GUIEventAdapter::KEY_KP_Divide;
_keymap[67 ] = osgGA::GUIEventAdapter::KEY_KP_Multiply;
_keymap[78 ] = osgGA::GUIEventAdapter::KEY_KP_Subtract;
_keymap[69 ] = osgGA::GUIEventAdapter::KEY_KP_Add;
_keymap[89 ] = osgGA::GUIEventAdapter::KEY_KP_Home;
_keymap[91 ] = osgGA::GUIEventAdapter::KEY_KP_Up;
_keymap[92 ] = osgGA::GUIEventAdapter::KEY_KP_Page_Up;
_keymap[86 ] = osgGA::GUIEventAdapter::KEY_KP_Left;
_keymap[87 ] = osgGA::GUIEventAdapter::KEY_KP_Begin;
_keymap[88 ] = osgGA::GUIEventAdapter::KEY_KP_Right;
_keymap[83 ] = osgGA::GUIEventAdapter::KEY_KP_End;
_keymap[84 ] = osgGA::GUIEventAdapter::KEY_KP_Down;
_keymap[85 ] = osgGA::GUIEventAdapter::KEY_KP_Page_Down;
_keymap[82 ] = osgGA::GUIEventAdapter::KEY_KP_Insert;
_keymap[65 ] = osgGA::GUIEventAdapter::KEY_KP_Delete;
}
~OSXKeyboardMap() {
}
unsigned int remapKey(unsigned int key, unsigned int rawkey)
{
KeyMap::iterator itr = _keymap.find(rawkey);
if (itr == _keymap.end()) return key;
else return itr->second;
}
private:
typedef std::map<unsigned int, osgGA::GUIEventAdapter::KeySymbol> KeyMap;
KeyMap _keymap;
};
/** remaps a native os x keycode to a GUIEventAdapter-keycode */
static unsigned int remapOSXKey(unsigned int key, unsigned int rawkey)
{
static OSXKeyboardMap s_OSXKeyboardMap;
return s_OSXKeyboardMap.remapKey(key,rawkey);
}
/** creates a pixelformat from a Trait */
static AGLPixelFormat createPixelFormat(osg::GraphicsContext::Traits* traits) {
std::vector<GLint> attributes;
attributes.push_back(AGL_NO_RECOVERY);
attributes.push_back(AGL_RGBA);
attributes.push_back(AGL_COMPLIANT);
if (traits->doubleBuffer) attributes.push_back(AGL_DOUBLEBUFFER);
if (traits->quadBufferStereo) attributes.push_back(AGL_STEREO);
attributes.push_back(AGL_RED_SIZE); attributes.push_back(traits->red);
attributes.push_back(AGL_GREEN_SIZE); attributes.push_back(traits->green);
attributes.push_back(AGL_BLUE_SIZE); attributes.push_back(traits->blue);
attributes.push_back(AGL_DEPTH_SIZE); attributes.push_back(traits->depth);
if (traits->alpha) { attributes.push_back(AGL_ALPHA_SIZE); attributes.push_back(traits->alpha); }
if (traits->stencil) { attributes.push_back(AGL_STENCIL_SIZE); attributes.push_back(traits->stencil); }
// TODO
// missing accumulation-buffer-stuff
#if defined(AGL_SAMPLE_BUFFERS_ARB) && defined (AGL_SAMPLES_ARB)
if (traits->sampleBuffers) { attributes.push_back(AGL_SAMPLE_BUFFERS_ARB); attributes.push_back(traits->sampleBuffers); }
if (traits->sampleBuffers) { attributes.push_back(AGL_SAMPLES_ARB); attributes.push_back(traits->samples); }
#endif
attributes.push_back(AGL_NONE);
return aglChoosePixelFormat(NULL, 0, &(attributes.front()));
}
/** This is the class we need to create for pbuffers, note its not a GraphicsWindow as it won't need any of the event handling and window mapping facilities.*/
class GraphicsContextCarbon : public osg::GraphicsContext
{
public:
GraphicsContextCarbon(osg::GraphicsContext::Traits* traits):
_valid(false)
{
_traits = traits;
}
virtual bool valid() const { return _valid; }
/** Realise the GraphicsContext implementation,
* Pure virtual - must be implemented by concrate implementations of GraphicsContext. */
virtual bool realizeImplementation() { osg::notify(osg::NOTICE)<<"GraphicsWindow::realizeImplementation() not implemented."<<std::endl; return false; }
/** Return true if the graphics context has been realised, and is ready to use, implementation.
* Pure virtual - must be implemented by concrate implementations of GraphicsContext. */
virtual bool isRealizedImplementation() const { osg::notify(osg::NOTICE)<<"GraphicsWindow::isRealizedImplementation() not implemented."<<std::endl; return false; }
/** Close the graphics context implementation.
* Pure virtual - must be implemented by concrate implementations of GraphicsContext. */
virtual void closeImplementation() { osg::notify(osg::NOTICE)<<"GraphicsWindow::closeImplementation() not implemented."<<std::endl; }
/** Make this graphics context current implementation.
* Pure virtual - must be implemented by concrate implementations of GraphicsContext. */
virtual bool makeCurrentImplementation() { osg::notify(osg::NOTICE)<<"GraphicsWindow::makeCurrentImplementation() not implemented."<<std::endl; return false; }
/** Make this graphics context current with specified read context implementation.
* Pure virtual - must be implemented by concrate implementations of GraphicsContext. */
virtual bool makeContextCurrentImplementation(GraphicsContext* /*readContext*/) { osg::notify(osg::NOTICE)<<"GraphicsWindow::makeContextCurrentImplementation(..) not implemented."<<std::endl; return false;}
/** Release the graphics context.*/
virtual bool releaseContextImplementation() { osg::notify(osg::NOTICE)<<"GraphicsWindow::releaseContextImplementation(..) not implemented."<<std::endl; return false; }
/** Pure virtual, Bind the graphics context to associated texture implementation.
* Pure virtual - must be implemented by concrate implementations of GraphicsContext. */
virtual void bindPBufferToTextureImplementation(GLenum /*buffer*/) { osg::notify(osg::NOTICE)<<"GraphicsWindow::void bindPBufferToTextureImplementation(..) not implemented."<<std::endl; }
/** Swap the front and back buffers implementation.
* Pure virtual - must be implemented by Concrate implementations of GraphicsContext. */
virtual void swapBuffersImplementation() { osg::notify(osg::NOTICE)<<"GraphicsWindow:: swapBuffersImplementation() not implemented."<<std::endl; }
protected:
bool _valid;
};
}
void GraphicsWindowCarbon::setWindowDecoration(bool flag)
{
_useWindowDecoration = flag;
}
void GraphicsWindowCarbon::init()
{
_closeRequested = false;
_context = NULL;
_window = NULL;
_pixelFormat = createPixelFormat(_traits.get());
if (!_pixelFormat)
osg::notify(osg::WARN) << "GraphicsWindowCarbon::init could not create a valid pixelformat" << std::endl;
_valid = (_pixelFormat != NULL);
_initialized = true;
}
bool GraphicsWindowCarbon::realizeImplementation()
{
if (!_initialized) init();
if (!_initialized) return false;
if (!_traits) return false;
setWindowDecoration(_traits->windowDecoration);
// create the window
Rect bounds = {_traits->y, _traits->x, _traits->y + _traits->height, _traits->x + _traits->width};
OSStatus err = 0;
WindowAttributes attr;
if (_useWindowDecoration)
if (_traits->supportsResize)
attr = (kWindowStandardDocumentAttributes | kWindowStandardHandlerAttribute);
else
attr = (kWindowStandardDocumentAttributes | kWindowStandardHandlerAttribute) & ~kWindowResizableAttribute;
else {
attr = kWindowStandardHandlerAttribute;
if (_traits->supportsResize)
attr |= kWindowResizableAttribute;
}
err = CreateNewWindow(kDocumentWindowClass, attr, &bounds, &_window);
if (err) {
osg::notify(osg::WARN) << "GraphicsWindowCarbon::realizeImplementation() failed creating a window: " << err << std::endl;
return false;
}
// register window event handler to receive resize-events
EventTypeSpec windEventList[] = {{ kEventClassWindow, kEventWindowBoundsChanged},{ kEventClassWindow, kEventWindowClosed}};
InstallWindowEventHandler(_window, NewEventHandlerUPP(GraphicsWindowEventHandler), 2, windEventList, this, NULL);
// set the window title
if (!_traits->windowName.empty()) {
CFStringRef windowtitle = CFStringCreateWithBytes( kCFAllocatorDefault, (const UInt8*)(_traits->windowName.c_str()), _traits->windowName.length(),kCFStringEncodingUTF8, false );
SetWindowTitleWithCFString( _window, windowtitle );
}
// create the context
_context = aglCreateContext (_pixelFormat, NULL);
if (!_context) {
osg::notify(osg::WARN) << "GraphicsWindowCarbon::realizeImplementation failed creating a context: " << aglGetError() << std::endl;
return false;
}
makeCurrent();
// enable Multi-threaded OpenGL Execution:
CGLError cgerr = kCGLNoError;
CGLContextObj ctx = CGLGetCurrentContext();
cgerr = CGLEnable( ctx, kCGLCEMPEngine);
if (cgerr != kCGLNoError )
{
osg::notify(osg::INFO) << "GraphicsWindowCarbon:: Multi-threaded OpenGL Execution not available" << std::endl;
}
aglSetDrawable(_context, GetWindowPort(_window));
ShowWindow(_window);
//enable vsync
if (_traits->vsync) {
GLint swap = 1;
aglSetInteger (_context, AGL_SWAP_INTERVAL, &swap);
}
_realized = true;
return _realized;
}
bool GraphicsWindowCarbon::makeCurrentImplementation()
{
return (aglSetCurrentContext(_context) == GL_TRUE);
}
bool GraphicsWindowCarbon::releaseContextImplementation()
{
if (!_realized)
{
osg::notify(osg::NOTICE)<<"Warning: GraphicsWindow not realized, cannot do makeCurrent."<<std::endl;
return false;
}
// osg::notify(osg::NOTICE)<<"makeCurrentImplementation "<<this<<" "<<OpenThreads::Thread::CurrentThread()<<std::endl;
// osg::notify(osg::NOTICE)<<" glXMakeCurrent ("<<_display<<","<<_window<<","<<_glxContext<<std::endl;
return (aglSetCurrentContext(NULL) == GL_TRUE);
}
void GraphicsWindowCarbon::closeImplementation()
{
_valid = false;
_realized = false;
if (_pixelFormat)
{
aglDestroyPixelFormat(_pixelFormat);
_pixelFormat = NULL;
}
if (_context)
{
aglSetDrawable(_context, NULL);
aglSetCurrentContext(NULL);
aglDestroyContext(_context);
_context = NULL;
}
if (_window) DisposeWindow(_window);
_window = NULL;
}
void GraphicsWindowCarbon::swapBuffersImplementation()
{
aglSwapBuffers(_context);
}
void GraphicsWindowCarbon::resizedImplementation(int x, int y, int width, int height)
{
aglUpdateContext(_context);
}
void GraphicsWindowCarbon::handleMouseEvent(EventRef theEvent)
{
// mouse down event
Point wheresMyMouse;
GetEventParameter (theEvent, kEventParamMouseLocation, typeQDPoint, NULL, sizeof(wheresMyMouse), NULL, &wheresMyMouse);
EventMouseButton mouseButton = 0;
GetEventParameter (theEvent, kEventParamMouseButton, typeMouseButton, NULL, sizeof(mouseButton), NULL, &mouseButton);
WindowRef win;
int fwres = FindWindow(wheresMyMouse, &win);
if ((fwres == inMenuBar) && (mouseButton >= 1)) {
MenuSelect(wheresMyMouse);
HiliteMenu(0);
return;
}
else if ((fwres != inContent) && (fwres > 0) && (mouseButton >= 1))
{
return;
}
else
{
// swap right and middle buttons so that middle button is 2, right button is 3.
if (mouseButton==3) mouseButton = 2;
else if (mouseButton==2) mouseButton = 3;
// check tablet pointer device and map it to a musebutton
TabletProximityRec theTabletRecord; // The Tablet Proximity Record
// Extract the Tablet Proximity reccord from the event.
if(noErr == GetEventParameter(theEvent, kEventParamTabletProximityRec,
typeTabletProximityRec, NULL,
sizeof(TabletProximityRec),
NULL, (void *)&theTabletRecord))
{
osgGA::GUIEventAdapter::TabletPointerType pointerType;
switch(theTabletRecord.pointerType)
{
case 1: // pen
pointerType = osgGA::GUIEventAdapter::PEN;
break;
case 2: // puck
pointerType = osgGA::GUIEventAdapter::PUCK;
break;
case 3: //eraser
pointerType = osgGA::GUIEventAdapter::ERASER;
break;
default:
pointerType = osgGA::GUIEventAdapter::UNKNOWN;
break;
}
getEventQueue()->penProximity(pointerType, (theTabletRecord.enterProximity != 0));
}
switch(GetEventKind(theEvent))
{
case kEventMouseDown:
{
float mx =wheresMyMouse.h;
float my =wheresMyMouse.v;
transformMouseXY(mx, my);
getEventQueue()->mouseButtonPress(mx, my, mouseButton);
}
break;
case kEventMouseUp:
{
float mx =wheresMyMouse.h;
float my =wheresMyMouse.v;
transformMouseXY(mx, my);
getEventQueue()->mouseButtonRelease(mx, my, mouseButton);
}
break;
case kEventMouseDragged:
{
// get pressure from the pen, only when mouse/pen is dragged
TabletPointRec theTabletRecord;
if(noErr == GetEventParameter(theEvent, kEventParamTabletPointRec, typeTabletPointRec, NULL,
sizeof(TabletPointRec), NULL, (void *)&theTabletRecord)) {
getEventQueue()->penPressure(theTabletRecord.pressure / 65535.0f);
}
float mx =wheresMyMouse.h;
float my =wheresMyMouse.v;
transformMouseXY(mx, my);
getEventQueue()->mouseMotion(mx, my);
}
break;
case kEventMouseMoved:
{
float mx = wheresMyMouse.h;
float my = wheresMyMouse.v;
transformMouseXY(mx, my);
getEventQueue()->mouseMotion(mx, my);
}
break;
// mouse with scroll-wheels
case kEventMouseWheelMoved:
{
EventMouseWheelAxis axis;
SInt32 delta;
if (noErr == GetEventParameter( theEvent, kEventParamMouseWheelAxis, typeMouseWheelAxis, NULL, sizeof(axis), NULL, &axis )) {
if (noErr == GetEventParameter( theEvent, kEventParamMouseWheelDelta, typeLongInteger, NULL, sizeof(delta), NULL, &delta )) {
switch (axis) {
case kEventMouseWheelAxisX:
getEventQueue()->mouseScroll( (delta > 0) ? osgGA::GUIEventAdapter::SCROLL_RIGHT : osgGA::GUIEventAdapter::SCROLL_LEFT);
break;
case kEventMouseWheelAxisY:
getEventQueue()->mouseScroll( (delta < 0) ? osgGA::GUIEventAdapter::SCROLL_DOWN : osgGA::GUIEventAdapter::SCROLL_UP);
break;
}
}
}
}
break;
// new trackpads and mighty mouse, (not officially documented, see http://developer.apple.com/qa/qa2005/qa1453.html )
case 11:
{
enum
{
kEventParamMouseWheelSmoothVerticalDelta = 'saxy', // typeSInt32
kEventParamMouseWheelSmoothHorizontalDelta = 'saxx', // typeSInt32
};
SInt32 scroll_delta_x = 0;
SInt32 scroll_delta_y = 0;
OSErr err = noErr;
err = GetEventParameter( theEvent, kEventParamMouseWheelSmoothVerticalDelta, typeLongInteger, NULL, sizeof(scroll_delta_y), NULL, &scroll_delta_y );
err = GetEventParameter( theEvent, kEventParamMouseWheelSmoothHorizontalDelta, typeLongInteger, NULL, sizeof(scroll_delta_x), NULL, &scroll_delta_x );
if ((scroll_delta_x != 0) || (scroll_delta_y != 0)) {
getEventQueue()->mouseScroll2D( scroll_delta_x, scroll_delta_y);
}
}
break;
default:
return;
}
}
}
void GraphicsWindowCarbon::handleKeyboardEvent(EventRef theEvent)
{
OSStatus status;
// Key modifiers, Numlock not supported...
UInt32 modifierKeys;
unsigned int modifierMask = 0;
GetEventParameter (theEvent,kEventParamKeyModifiers,typeUInt32, NULL,sizeof(modifierKeys), NULL,&modifierKeys);
if( modifierKeys & shiftKey )
{
modifierMask |= osgGA::GUIEventAdapter::MODKEY_SHIFT;
}
if( modifierKeys & alphaLock )
{
modifierMask |= osgGA::GUIEventAdapter::MODKEY_CAPS_LOCK;
}
if( modifierKeys & controlKey )
{
modifierMask |= osgGA::GUIEventAdapter::MODKEY_CTRL;
}
if( modifierKeys & optionKey )
{
modifierMask |= osgGA::GUIEventAdapter::MODKEY_ALT;
}
// we map the command-key to the META-key
if( modifierKeys & cmdKey )
{
modifierMask |= osgGA::GUIEventAdapter::MODKEY_META;
}
UInt32 rawkey;
GetEventParameter (theEvent,kEventParamKeyCode,typeUInt32, NULL,sizeof(rawkey), NULL,&rawkey);
// std::cout << "key code: " << rawkey << " modifiers: " << modifierKeys << std::endl;
UInt32 dataSize;
/* jbw check return status so that we don't allocate a huge array */
status = GetEventParameter( theEvent, kEventParamKeyUnicodes, typeUnicodeText, NULL, 0, &dataSize, NULL );
if (status != noErr) return;
if (dataSize<=1) return;
UniChar* uniChars = new UniChar[dataSize+1];
GetEventParameter( theEvent, kEventParamKeyUnicodes, typeUnicodeText, NULL, dataSize, NULL, (void*)uniChars );
unsigned int keychar = remapOSXKey(static_cast<unsigned long>(uniChars[0]), rawkey);
switch(GetEventKind(theEvent))
{
case kEventRawKeyDown:
case kEventRawKeyRepeat:
{
getEventQueue()->keyPress(keychar);
getEventQueue()->getCurrentEventState()->setModKeyMask(modifierMask);
break;
}
case kEventRawKeyUp:
{
getEventQueue()->keyRelease(keychar);
getEventQueue()->getCurrentEventState()->setModKeyMask(modifierMask);
break;
}
default:
break;
}
delete[] uniChars;
return;
}
void GraphicsWindowCarbon::checkEvents()
{
if (!_realized) return;
EventRef theEvent;
EventTargetRef theTarget = GetEventDispatcherTarget();
while (ReceiveNextEvent(0, NULL, 0,true, &theEvent)== noErr)
{
switch(GetEventClass(theEvent))
{
case kEventClassTablet:
case kEventClassMouse:
handleMouseEvent(theEvent);
break;
case kEventClassKeyboard:
handleKeyboardEvent(theEvent);
break;
case kEventClassApplication:
switch (GetEventKind(theEvent)) {
case kEventAppQuit:
getEventQueue()->quitApplication();
break;
}
break;
case kEventClassAppleEvent:
{
EventRecord eventRecord;
ConvertEventRefToEventRecord(theEvent, &eventRecord);
AEProcessAppleEvent(&eventRecord);
return;
}
break;
}
SendEventToEventTarget (theEvent, theTarget);
ReleaseEvent(theEvent);
}
if (_closeRequested)
close(true);
if (s_quit_requested) {
getEventQueue()->quitApplication();
s_quit_requested = false;
}
}
void GraphicsWindowCarbon::grabFocus()
{
SelectWindow(_window);
}
void GraphicsWindowCarbon::grabFocusIfPointerInWindow()
{
// TODO: implement
}
void GraphicsWindowCarbon::transformMouseXY(float& x, float& y)
{
if (getEventQueue()->getUseFixedMouseInputRange())
{
osgGA::GUIEventAdapter* eventState = getEventQueue()->getCurrentEventState();
x = eventState->getXmin() + (eventState->getXmax()-eventState->getXmin())*x/float(_traits->width);
y = eventState->getYmin() + (eventState->getYmax()-eventState->getYmin())*y/float(_traits->height);
}
}
struct OSXCarbonWindowingSystemInterface : public osg::GraphicsContext::WindowingSystemInterface
{
OSXCarbonWindowingSystemInterface() :
_displayCount(0),
_displayIds(NULL)
{
if( CGGetActiveDisplayList( 0, NULL, &_displayCount ) != CGDisplayNoErr )
osg::notify(osg::WARN) << "OSXCarbonWindowingSystemInterface: could not get # of screens" << std::endl;
_displayIds = new CGDirectDisplayID[_displayCount];
if( CGGetActiveDisplayList( _displayCount, _displayIds, &_displayCount ) != CGDisplayNoErr )
osg::notify(osg::WARN) << "OSXCarbonWindowingSystemInterface: CGGetActiveDisplayList failed" << std::endl;
// register application event handler and AppleEventHandler to get quit-events:
static const EventTypeSpec menueventSpec = {kEventClassCommand, kEventCommandProcess};
OSErr status = InstallEventHandler(GetApplicationEventTarget(), NewEventHandlerUPP(ApplicationEventHandler), 1, &menueventSpec, 0, NULL);
status = AEInstallEventHandler( kCoreEventClass, kAEQuitApplication, NewAEEventHandlerUPP(QuitAppleEventHandler), 0, false);
}
~OSXCarbonWindowingSystemInterface() {
if (_displayIds)
delete[] _displayIds;
_displayIds = NULL;
}
inline CGDirectDisplayID getDisplayID(const osg::GraphicsContext::ScreenIdentifier& si) {
return _displayIds[si.screenNum];
}
virtual unsigned int getNumScreens(const osg::GraphicsContext::ScreenIdentifier& si)
{
return _displayCount;
}
virtual void getScreenResolution(const osg::GraphicsContext::ScreenIdentifier& si, unsigned int& width, unsigned int& height)
{
CGDirectDisplayID id = getDisplayID(si);
width = CGDisplayPixelsWide(id);
height = CGDisplayPixelsHigh(id);
}
virtual osg::GraphicsContext* createGraphicsContext(osg::GraphicsContext::Traits* traits)
{
if (traits->pbuffer)
{
osg::ref_ptr<osgViewer::GraphicsContextCarbon> pbuffer = new GraphicsContextCarbon(traits);
if (pbuffer->valid()) return pbuffer.release();
else return 0;
}
else
{
osg::ref_ptr<osgViewer::GraphicsWindowCarbon> window = new GraphicsWindowCarbon(traits);
if (window->valid()) return window.release();
else return 0;
}
}
private:
CGDisplayCount _displayCount;
CGDirectDisplayID* _displayIds;
};
struct RegisterWindowingSystemInterfaceProxy
{
RegisterWindowingSystemInterfaceProxy()
{
osg::GraphicsContext::setWindowingSystemInterface(new OSXCarbonWindowingSystemInterface);
}
~RegisterWindowingSystemInterfaceProxy()
{
osg::GraphicsContext::setWindowingSystemInterface(0);
}
};
RegisterWindowingSystemInterfaceProxy createWindowingSystemInterfaceProxy;
#endif

View File

@ -27,6 +27,7 @@ Viewer::Viewer():
_firstFrame(true),
_done(false),
_keySetsDone(osgGA::GUIEventAdapter::KEY_Escape),
_quitEventSetsDone(true),
_threadingModel(ThreadPerContext),
_numThreadsOnBarrier(0)
{
@ -789,6 +790,11 @@ void Viewer::eventTraversal()
case(osgGA::GUIEventAdapter::KEYUP):
osg::notify(osg::NOTICE)<<" KEYUP '"<<(char)event->getKey()<<"'"<<std::endl;
break;
*/ case(osgGA::GUIEventAdapter::RESIZE):
osg::notify(osg::NOTICE)<<" RESIZE "<<event->getWindowX()<<"/"<<event->getWindowY()<<" x "<<event->getWindowWidth()<<"/"<<event->getWindowHeight() << std::endl;
break;
case(osgGA::GUIEventAdapter::QUIT_APPLICATION):
osg::notify(osg::NOTICE)<<" QUIT_APPLICATION " << std::endl;
case(osgGA::GUIEventAdapter::RESIZE):
osg::notify(osg::NOTICE)<<" RESIZE "<<std::endl;
break;
@ -804,7 +810,7 @@ void Viewer::eventTraversal()
// osg::notify(osg::NOTICE)<<"Events "<<events.size()<<std::endl;
if (_keySetsDone!=0)
if ((_keySetsDone!=0) || (_quitEventSetsDone))
{
for(osgGA::EventQueue::Events::iterator itr = events.begin();
itr != events.end();
@ -819,6 +825,11 @@ void Viewer::eventTraversal()
else if (event->getKey()=='c') { setThreadingModel(ThreadPerCamera); }
else if (event->getKey()=='w') { setThreadingModel(ThreadPerContext); }
break;
case(osgGA::GUIEventAdapter::QUIT_APPLICATION):
_done = true;
break;
default:
break;
}